diff --git a/.zed/debug.json b/.zed/debug.json index 87d5346b2f..0aaaf37e33 100644 --- a/.zed/debug.json +++ b/.zed/debug.json @@ -3,6 +3,21 @@ // For more documentation on how to configure debug tasks, // see: https://zed.dev/docs/debugger [ + { + "label": "Run Debugger - Jak X", + // "build": "Build - gk", + "program": "$ZED_WORKTREE_ROOT/out/build/Debug/bin/decompiler.exe", + "args": [ + "./decompiler/config/jakx/jakx_config.jsonc", + "./iso_data", + "./decompiler_out", + "--version ntsc_v1", + "--config-override", + "{\"decompile_code\": true, \"levels_extract\": false}", + ], + "request": "launch", + "adapter": "CodeLLDB", + }, { "label": "Game - Jak 1 (Windows)", "build": "Build - gk", diff --git a/Taskfile.yml b/Taskfile.yml index 4d6a448a32..e5babddad6 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -97,7 +97,7 @@ tasks: build-debug: desc: "Build the project using the generated CMake" cmds: - - "cmake {{.CMAKE_BUILD_DIR_DEBUG}} --parallel 8 --target goalc" + - "cmake {{.CMAKE_BUILD_DIR_DEBUG}} --parallel 8" repl: desc: "Start the REPL" preconditions: diff --git a/decompiler/ObjectFile/ObjectFileDB.cpp b/decompiler/ObjectFile/ObjectFileDB.cpp index 0fc3b6dd46..7fd56bd529 100644 --- a/decompiler/ObjectFile/ObjectFileDB.cpp +++ b/decompiler/ObjectFile/ObjectFileDB.cpp @@ -1124,6 +1124,7 @@ void ObjectFileDB::dump_art_info(const fs::path& output_dir) { ag_result += "\n"; } + file_util::create_dir_if_needed_for_file(ag_fpath); file_util::write_text_file(ag_fpath, ag_result); auto jg_fpath = output_dir / "import" / "joint-nodes.gc"; diff --git a/decompiler/analysis/analyze_inspect_method.cpp b/decompiler/analysis/analyze_inspect_method.cpp index 3039df2ec1..433c26f639 100644 --- a/decompiler/analysis/analyze_inspect_method.cpp +++ b/decompiler/analysis/analyze_inspect_method.cpp @@ -315,6 +315,10 @@ FieldPrint get_field_print(const std::string& str) { if (c1 == '1' || c1 == '2') { c1 = next(); } + if (c1 != 'T' && c1 == 'd') { + printf("HACK: skipping %s\n", str.data()); + return handle_custom_prints(field_print, str); + } ASSERT(c1 == 'T'); // next the name: @@ -336,9 +340,12 @@ FieldPrint get_field_print(const std::string& str) { // (format "~Tstack[~D] @ #x~X~%" (-> obj allocated-length) (-> obj stack)) if (num_char == '~') { num_char = next(); - ASSERT(num_char == 'D'); + if (num_char != 'D') { + return handle_custom_prints(field_print, str); + } + ASSERT_MSG(num_char == 'D', fmt::format("unexpected: {}", num_char)); num_char = next(); - ASSERT(num_char == ']'); + ASSERT_MSG(num_char == ']', fmt::format("unexpected: {}", num_char)); // distinguish from dynamic arrays that are set to size 0 field_print.array_size = size = FieldPrint::DYNAMIC_ARRAY; } @@ -1022,15 +1029,31 @@ bool get_ptr_offset_constant_nonzero(const SimpleExpression& math, Register base bool get_ptr_offset(AtomicOp* ir, Register dst, Register base, int* result) { auto as_set = dynamic_cast(ir); if (!as_set) { + printf("not a set, actual type: %s\n", typeid(*ir).name()); return false; } if (as_set->dst().reg() != dst) { + printf("bad dst"); return false; } return get_ptr_offset_constant_nonzero(as_set->src(), base, result); } +bool get_ptr_offset_load_var_op(AtomicOp* ir, Register dst, Register base, int* result) { + auto as_load = dynamic_cast(ir); + if (!as_load) { + printf("not a set, actual type: %s\n", typeid(*ir).name()); + return false; + } + if (as_load->get_set_destination().reg() != dst) { + printf("bad dst"); + return false; + } + + return get_ptr_offset_constant_nonzero(as_load->src(), base, result); +} + int identify_array_field(int idx, Function& function, TypeInspectorResult* result, @@ -1050,6 +1073,10 @@ int identify_array_field(int idx, ptr = get_ptr_offset(get_op, make_gpr(Reg::A3), make_gpr(Reg::GP), &offset); } else { ptr = get_ptr_offset(get_op, make_gpr(Reg::A2), make_gpr(Reg::GP), &offset); + // maybe they load it the other way (inline?) + if (!ptr) { + ptr = get_ptr_offset_load_var_op(get_op, make_gpr(Reg::A2), make_gpr(Reg::GP), &offset); + } } if (!ptr) { @@ -1352,6 +1379,10 @@ std::string inspect_inspect_method(Function& inspect_method, lg::print(" iim: {}\n", inspect_method.name()); TypeInspectorResult result; ASSERT(type_name == inspect_method.guessed_name.type_name); + if (inspect_method.name() == "(method 3 process-tree)") { + printf("HACK: skipping method\n"); + return fmt::format(";; {} TODO: skipped!\n", type_name); + } TypeFlags flags; flags.flag = 0; result.found_flags = dts.lookup_flags(type_name, &flags.flag); diff --git a/decompiler/config/jakx/all-types.gc b/decompiler/config/jakx/all-types.gc new file mode 100644 index 0000000000..aa444ac8ef --- /dev/null +++ b/decompiler/config/jakx/all-types.gc @@ -0,0 +1,52942 @@ +;; All Types + +;; type system setup +(define-extern object type) +(define-extern type type) +(define-extern structure type) +(define-extern uint128 type) +(define-extern basic type) +(define-extern pair type) +(define-extern array type) +(define-extern symbol type) +(define-extern binteger type) +(define-extern number type) +(define-extern integer type) +(define-extern uinteger type) +(define-extern float type) +(define-extern boolean type) ;; not actually added as a runtime type in jak2, but valid? supports it. +(define-extern uint16 type) +(define-extern uint32 type) +(define-extern int8 type) +(define-extern int16 type) +(define-extern int32 type) +(define-extern int64 type) +(define-extern uint8 type) +(define-extern uint64 type) +(define-extern process-tree type) +(define-extern process type) +(define-extern stack-frame type) +(define-extern global kheap) +(define-extern kheap type) +(define-extern pointer type) +(define-extern string type) + +(define-extern #t symbol) +(define-extern #f symbol) + +;; some types we need. +(declare-type sparticle-launch-group basic) +(declare-type lightning-spec basic) +(declare-type sparticle-launcher basic) +(declare-type state basic) +(declare-type res-lump basic) + +;; kernel types +(defenum link-flag + :bitfield #t + :type int32 + (output-load-msg 0) + (output-load-true-msg 1) + (execute-login 2) + (print-login 3) + (force-debug 4) + (fast-link 5) + ) + +(defenum language-enum + :type uint8 + (english 0) + (french 1) + (german 2) + (spanish 3) + (italian 4) + (commentary 5) + (japanese 6) + (korean 7) + (russian 8) + (portuguese 9) + (dutch 10) + (uk-english 11) + ) + +(define-extern *debug-segment* symbol) +(define-extern nothing (function none)) +(define-extern _format (function _varargs_ object)) +(define-extern method-set! (function type int object none)) ;; may actually return function. +(define-extern malloc (function symbol int pointer)) +(define-extern kmemopen (function kheap string none)) +(define-extern kmemclose (function none)) +(define-extern dgo-load (function string kheap link-flag int none)) +(define-extern *listener-function* (function object)) +(define-extern *enable-method-set* int) +(define-extern *kernel-symbol-warnings* symbol) + +(declare-type cpad-info basic) +(declare-type mouse-info basic) +(define-extern cpad-open (function cpad-info int cpad-info)) +(define-extern cpad-get-data (function cpad-info cpad-info)) +(define-extern scf-get-territory (function int)) ;; not actually a scf function... +(define-extern mouse-get-data (function mouse-info none)) +(define-extern file-stream-open (function file-stream string symbol file-stream)) +(define-extern file-stream-close (function file-stream file-stream)) +(define-extern file-stream-length (function file-stream int)) +(define-extern file-stream-seek (function file-stream int int int)) +(define-extern file-stream-read (function file-stream pointer int int)) +(define-extern file-stream-write (function file-stream pointer uint uint)) +(define-extern reset-path (function none)) +(define-extern flush-cache (function int none)) +(define-extern gs-store-image (function object object object)) +(define-extern sync-path (function int int int)) +(define-extern file-stream-write (function file-stream pointer uint uint)) +(define-extern file-stream-close (function file-stream file-stream)) +(define-extern new-dynamic-structure (function symbol type int structure)) +(define-extern kernel-shutdown (function int none)) +(define-extern scf-get-timeout (function int)) +(define-extern scf-get-inactive-timeout (function int)) +(define-extern syncv (function int int)) +(define-extern string->symbol (function string symbol)) +(define-extern link-begin (function pointer (pointer uint8) int kheap link-flag int)) +(define-extern link-resume (function int)) +(define-extern link-reset (function none)) +(define-extern kset-language (function language-enum int)) +(define-extern reset-graph (function int int int int none)) +(define-extern symbol->string (function symbol string)) +(define-extern loado (function string kheap object)) + +(define-extern loading-level kheap) +(define-extern dma-sync (function pointer int int int)) +(define-extern unload (function string none)) + + +(defenum kmalloc-flags + :bitfield #t + (align-16 4) + (align-64 6) + (align-256 8) + (memset 12) + (top 13) + ) + +(define-extern kmalloc (function kheap int kmalloc-flags string pointer)) + +(define-extern *kernel-boot-message* symbol) +(define-extern *kernel-boot-art-group* string) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gcommon ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +(deftype vec4s (uint128) + "Vector of four floats, packed into a 128-bit integer as bitfields. + This behaves like a value type. + This is not the main vector type." + ((x float :offset 0) + (y float :offset 32) + (z float :offset 64) + (w float :offset 96)) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) + +(deftype vector (structure) + "Vector of four floats, stored in a structure. + This behaves like a reference type. + This is the main vector type." + ((data float 4 :offset-assert 0) ;; guessed by decompiler + (x float :offset 0) + (y float :offset 4) + (z float :offset 8) + (w float :offset 12) + (quad uint128 :score -1 :offset 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) + +(deftype bfloat (basic) + "Boxed (or basic?) float. Just a basic that wraps a single float." + ((data float)) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) + +(deftype inline-array-class (basic) + "Base class for basic inline arrays. + The stride is stored in the heap-base of the inline-array-class child class." + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + ;; this is 16-byte aligned. + ;; children of inline-array-class should define their own data which overlays this one. + (_data uint8 :score -50 :dynamic :offset 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + (:methods + (new (symbol type int) _type_) ;; 0 + (push-back "Copy object to the end, then increment length. No bounds check." (_type_ object) int);; 9 + (inline-array-class-method-10 () none) ;; 10 + (clear-1 "Set length to 0, return #t." (_type_) symbol) ;; 11 + (clear-2 "Set length to 0" (_type_) int) ;; 12 + (pop-front "Remove first object by copying last object to the front, then decrement length." (_type_ int) pointer) ;; 13 + ) + ) + +(deftype inline-array-class-uint64 (inline-array-class) + "Specialization of inline-array-class for uint64. It's unclear why + this would be preferred over a normal (array uint64), since both store data the same way." + ((data uint64 :dynamic :overlay-at _data)) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) + +(deftype inline-array-class-uint32 (inline-array-class) + "Specialization of inline-array-class for uint32. It's unclear why this would be preferred + over a normal (array uint32), since both store data the same way." + ((data uint32 :dynamic :overlay-at _data)) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) + +(deftype int32-array (inline-array-class) + ((data int32 :inline :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) + +#| +(deftype array (UNKNOWN) + ((allocated-length int32 :offset-assert 4) + (length int32 :offset-assert 0) + (content-type type :offset-assert 8) ;; guessed by decompiler + (data uint8 :dynamic :offset-assert 12) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +(define-extern identity + "The identity function." + (function object object)) + +(define-extern 1/ + "Floating point reciprocal." + (function float float)) + +(define-extern + + "64-bit integer addition." + (function int int int)) + +(define-extern - + "64-bit integer subraction." + (function int int int)) + +(define-extern * + "32-bit signed integer multiplication." + (function int int int)) + +(define-extern / + "32-bit signed integer division." + (function int int int)) + +(define-extern ash + "64-bit arithmetic shift. (sign-extends)" + (function int int int)) + +(define-extern mod + "32-bit mod." + (function int int int)) + +(define-extern rem + "32-bit mod (same as mod)." + (function int int int)) + +(define-extern abs + "64-bit integer absolute value." + (function int int)) + +(define-extern min + "64-bit integer minimum." + (function int int int)) + +(define-extern max + "64-bit integer maximum." + (function int int int)) + +(define-extern logior + "64-bit bitwise or." + (function int int int)) + +(define-extern logand + "64-bit bitwise and." + (function int int int)) + +(define-extern lognor + "64-bit bitwise not-or." + (function int int int)) + +(define-extern logxor + "64-bit bitwise exclusive or." + (function int int int)) + +(define-extern lognot + "64-bit bitwise not." + (function int int)) + +(define-extern false-func + "Returns false." + (function symbol)) + +(define-extern true-func + "Returns true." + (function symbol)) + +(define-extern format (function _varargs_ object)) + +(define-extern basic-type? + "Return if the given basic is a given type. A child of the given type is also acceptable." + (function basic type symbol)) + +(define-extern type-type? + "Return if the first type is the second type, or a child of it." + (function type type symbol)) + +(define-extern type? + "Return if the given object is an instance of the given type. + Works on basics, bintegers, or symbols." + (function object type symbol)) + +(define-extern find-parent-method + "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. + This is used to implement call-parent-method." + (function type int function)) + +(define-extern ref& + "Return the n-th pair in a linked list of pairs. No bounds checking. + If it is the null pair, return #f." + (function object int object)) + +(define-extern ref + "Return the n-th item in a proper list. No bounds checking." + (function object int object)) + +(define-extern last + "Return the last object in a proper list." + (function object object)) + +(define-extern member + "See if the first argument is in the proper list of the second argument. + Checked with simple equality. + If so, return the list starting at the at point (a truthy value). + Otherwise, return #f. + (member 'b '(a b c)) -> (b c d). + (member 'w '(a b c)) -> #f" + (function object object object)) + +(define-extern nmember + "Like member, but membership is checked with the name= function to handle symbols or strings." + (function basic object object)) + +(define-extern assoc + "Search an association list for given object. Return #f if not found, otherwise the element with matching car. + (assoc 'a '((a . 1) (b . 2) (c . 3))) -> (a . 1) + (assoc 'x '((a . 1) (b . 2) (c . 3))) -> #f" + (function object object object)) + +(define-extern assoce + "Like assoc, but supports a special `else` key which is always considered a match." + (function object object object)) + +(define-extern nassoc + "Like assoc, but uses name= instead of = to check equality." + (function string object object)) + +(define-extern nassoce + "Like assoce, but uses name= instead of = to check equality." + (function string object object)) + +(define-extern append! + "Append the second argument to the end of the list (or empty pair) in the first argument." + (function object object object)) + +(define-extern delete! + "Remove an element from the given list, return the list." + (function object object pair)) + +(define-extern delete-car! + "Remove an element from the given list with a matching car. Return the list." + (function object object object)) + +(define-extern insert-cons! + "Update an association list to have the given (key . value) pair. + If a previous value exists, it is deleted first. + This function always allocates a pair through `cons` on the global heap, which can never be freed, + so it should almost never be used at runtime." + (function object object pair)) + +(define-extern sort + "Sort a list using the given comparision function. + The function can return a #t/#f value, or a positive/negative value. + For example, you could use either `-` or `<` as functions to sort integers." + (function pair (function object object object) pair)) + +(define-extern string->symbol-debug + "Convert a string to a symbol. The symbol must be known, and this cannot + create a new symbol. (in the PC port, it will still work.) + This is inteded to be used in debug only, and will not trigger a warning. + In debug, this will work for all symbols." + (function string symbol)) + +(define-extern symbol->string-debug + "Get the name of a symbol. This is intended to be used in debug only. + In debug, this will work for all symbols. (In PC port, this works always)" + (function symbol string)) + +(define-extern symbol->hash + "Convert a symbol to a unique integer value, which is just the symbol's address." + (function symbol int)) + +(define-extern quad-copy! + "Optimized memory copy. Must be 16-byte aligned. Size in 16-byte units." + (function pointer pointer int pointer)) + +(define-extern mem-copy! (function pointer pointer int pointer)) + +(define-extern mem-clear! + "Basic memory clear. Size in 1-byte units. Not an optimized version." + (function pointer int symbol)) + +(define-extern qmem-copy<-! + "Copy memory by quadword (16-bytes). Must by 16-byte aligned, size in 16-byte units. Increasing address copy. Not an optimized version." + (function pointer pointer int pointer)) + +(define-extern qmem-copy->! + "Copy memory by quadword (16-bytes). Must by 16-byte aligned, size in 16-byte units. Decreasing address copy. Not an optimized version." + (function pointer pointer int pointer)) + +(define-extern qmem-clear! + "Clear memory by quadword (16-bytes). Must by 16-byte aligned, size in 16-byte units. Not an optimized version." + (function pointer int pointer)) + +(define-extern mem-set32! + "Set memory to the given 32-bit value, repeated n times. (like C memset, but setting int32_t instead of char). + Not an optimized implementation. Must be 4-byte aligned." + (function pointer int int pointer)) + +(define-extern mem-or! + "Set the destiation to `dest = dest | src`. Size in bytes. Not an optimized version." + (function pointer pointer int pointer)) + +(define-extern fact + "Factorial." + (function int int)) + +(define-extern *print-column* binteger) +(define-extern print + "Print any boxed object (symbol, pair, basic, binteger) to #t (the REPL). No newline." + (function object object)) +(define-extern printl + "Print any boxed object (symbol, pair, basic, binteger) to #t (the REPL), followed by a newline." + (function object object)) + +(define-extern inspect + "Inspect any boxed object (symbol, pair, basic, binteger) to #t (the REPL)." + (function object object)) + +(define-extern mem-print + "Print out data in memory in hex." + (function (pointer uint32) int symbol)) +(define-extern *trace-list* pair) +(define-extern print-tree-bitmask + "Print out ASCII-art tree structure, from a bitmask of nesting levels." + (function int int symbol)) +(define-extern breakpoint-range-set! + "Unsupported function to set a CPU breakpoint." + (function uint uint uint int)) +(define-extern valid? (function object type string symbol object symbol)) + +(define-extern atoi (function pointer int)) +(define-extern atoi-string (function string int)) +(define-extern atoi-better (function pointer int)) +(define-extern itoa (function int pointer int)) +(define-extern x8toi (function pointer int)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gstring-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(define-extern strlen (function pointer int)) +(define-extern strncmp (function pointer pointer int symbol)) +(define-extern strstr (function pointer pointer pointer)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gkernel-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(declare-type process-tree basic) +(declare-type process process-tree) +(declare-type thread basic) +(declare-type cpu-thread thread) +(declare-type clock basic) +(declare-type entity res-lump) +(declare-type entity-actor entity) +(declare-type event-message-block structure) +(declare-type level basic) + +(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) + ) + +(deftype kernel-context (basic) + ((prevent-from-run process-mask :offset-assert 4) ;; guessed by decompiler + (require-for-run process-mask :offset-assert 8) ;; guessed by decompiler + (allow-to-run process-mask :offset-assert 12) ;; guessed by decompiler + (next-pid int32 :offset-assert 16) + (fast-stack-top pointer :offset-assert 20) ;; guessed by decompiler + (current-process process :offset-assert 24) ;; guessed by decompiler + (relocating-process basic :offset-assert 28) + (relocating-min int32 :offset-assert 32) + (relocating-max int32 :offset-assert 36) + (relocating-offset int32 :offset-assert 40) + (relocating-level level :offset-assert 44) ;; guessed by decompiler + (low-memory-message symbol :offset-assert 48) ;; guessed by decompiler + (login-object basic :offset-assert 52) + (login-art-group basic :offset-assert 56) + (login-level-index int32 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ;; field relocating-level uses ~A with a signed load. + ) + +(deftype time-frame (int64) + () + :flag-assert #x900000008 + ) + +(deftype clock (basic) + ((index int16 :offset-assert 4) + (ref-count uint16 :offset-assert 6) + (mask process-mask :offset-assert 8) ;; guessed by decompiler + (clock-ratio float :offset-assert 12) + (accum float :offset-assert 16) + (integral-accum float :offset-assert 20) + (frame-counter time-frame :offset-assert 24) ;; time-frame + (old-frame-counter time-frame :offset-assert 32) ;; time-frame + (integral-frame-counter time-frame :offset-assert 40) ;; time-frame + (old-integral-frame-counter time-frame :offset-assert 48) ;; time-frame + (sparticle-data vector :inline :offset-assert 64) + (seconds-per-frame float :offset-assert 80) + (frames-per-second float :offset-assert 84) + (time-adjust-ratio float :offset-assert 88) + ) + :method-count-assert 24 + :size-assert #x5c + :flag-assert #x180000005c + (:methods + (new (symbol type int) _type_) ;; 0 + (update-rates! "Recompute all clock values for the given clock ratio (arg0)." (_type_ float) float) ;; 9 + (advance-by! + "Advance the clock by arg0 timeframes (as a float). + Both counters keep a separate fractional and integer counter." + (_type_ float) clock) ;; 10 + (tick! "Per-game-frame clock tick forward." (_type_) clock) ;; 11 + (save! "Save a clock's state to a buffer, return bytes used." (_type_ (pointer uint64)) int) ;; 12 + (load! "Load a clock's state from a buffer, return bytes used." (_type_ (pointer uint64)) int) ;; 13 + (copy! "Copy the frame counters and ratio from arg0." (_type_ clock) clock) ;; 14 + (reset! "Reset a clock to 1000s, rate of 1." (_type_) none) ;; 15 + (frame-mask-2 "Check if the frame count, xored with `xor-val` has its lowest bit set" (_type_ int) symbol) ;; 16 + (frame-mask-4 "Check if the frame count, xored with `xor-val` has any of its lowest 2 bits set" (_type_ int) symbol) ;; 17 + (frame-mask-8 "Check if the frame count, xored with `xor-val` has any of its lowest 3 bits set" (_type_ int) symbol) ;; 18 + (frame-mask-16 "Check if the frame count, xored with `xor-val` has any of its lowest 4 bits set" (_type_ int) symbol) ;; 19 + (frame-mask-32 "Check if the frame count, xored with `xor-val` has any of its lowest 5 bits set" (_type_ int) symbol) ;; 20 + (frame-mask-64 "Check if the frame count, xored with `xor-val` has any of its lowest 6 bits set" (_type_ int) symbol) ;; 21 + (frame-mask-128 "Check if the frame count, xored with `xor-val` has any of its lowest 7 bits set" (_type_ int) symbol) ;; 22 + (frame-mask-256 "Check if the frame count, xored with `xor-val` has any of its lowest 8 bits set" (_type_ int) symbol) ;; 23 + ) + ) + + +(deftype thread (basic) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (process process :offset-assert 8) ;; guessed by decompiler + (previous thread :offset-assert 12) ;; guessed by decompiler + (suspend-hook (function cpu-thread none) :offset-assert 16) ;; guessed by decompiler + (resume-hook (function cpu-thread none) :offset-assert 20) ;; guessed by decompiler + (pc pointer :offset-assert 24) ;; guessed by decompiler + (sp pointer :offset-assert 28) ;; guessed by decompiler + (stack-top pointer :offset-assert 32) ;; guessed by decompiler + (stack-size int32 :offset-assert 36) + ) + :method-count-assert 12 + :size-assert #x28 + :flag-assert #xc00000028 + (:methods + (stack-size-set! "Adjust the size of the stack that can be stored during a suspend. Must be called before any process allocations." (_type_ int) none) ;; 9 + (thread-suspend "Suspend this thread and jump to the kernel (for use by the kernel only)" (_type_) none) ;; 10 + (thread-resume "Jump from the kernel to the restored thread. (for use by the kernel only)" (_type_) none) ;; 11 + ) + ) + +(deftype cpu-thread (thread) +;; registers modified for PC port. + ((rreg uint64 7) + (freg float 8) + (stack uint8 :dynamic) + ) + :method-count-assert 12 + :size-assert #x80 + :flag-assert #xc00000080 + (:methods + (new "Allocate a thread. If there is already a top-thread for this process, assume this is a temporary thread, and allocate on the bottom of the stack." (symbol type process symbol int pointer) _type_) ;; 0 + ) + ) + +(declare-type view basic) +(deftype process-tree (basic) + ((name string :offset-assert 4) + (mask process-mask :offset-assert 8) + (clock clock :offset-assert 12) ;; guessed by decompiler + (view view :offset-assert 16) + (parent (pointer process-tree) :offset-assert 20) ;; guessed by decompiler + (brother (pointer process-tree) :offset-assert 24) ;; guessed by decompiler + (child (pointer process-tree) :offset-assert 28) ;; guessed by decompiler + (ppointer (pointer process) :offset-assert 32) + (self process-tree :offset-assert 36) + (profile-ticks uint32 :offset-assert 40) + ) + :method-count-assert 14 + :size-assert #x2c + :flag-assert #xe0000002c + :no-runtime-type + (:methods + (new "Allocate a process-tree with the kernel clock." (symbol type string) _type_) ;; 0 + (activate "Move a process from dead to active, moving it to the given tree." (_type_ process-tree string pointer) process-tree) ;; 9 + (deactivate "Make a process dead, clean it up, remove it from the active pool, and return to dead pool." (_type_) none) ;; 10 + (init-from-entity! (_type_ entity-actor) object) ;; 11 + (run-logic? "Should this process be run? Checked by execute-process-tree." (_type_) symbol) ;; 12 + (process-tree-method-13 () none) ;; 13 + ) + ) + + +(deftype dead-pool (process-tree) + () + :method-count-assert 17 + :size-assert #x2c + :flag-assert #x110000002c + (:methods + (new "Allocate a dead pool and set up dead processes" (symbol type int int string) _type_) ;; 0 + (dead-pool-method-14 () none) ;; 14 + (get-process "Allocate a process from the pool, or #f if it fails." (_type_ type int object) process) ;; 15 + (return-process "Return a process to the pool." (_type_ process) int) ;; 16 + ) + ) + +(deftype dead-pool-heap-rec (structure) + ((process process :offset-assert 0) ;; guessed by decompiler + (prev dead-pool-heap-rec :offset-assert 4) + (next dead-pool-heap-rec :offset-assert 8) + ) + :pack-me + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) + +(deftype dead-pool-heap (dead-pool) + ((allocated-length int32 :offset-assert 44) + (compact-time uint32 :offset-assert 48) + (compact-count-targ uint32 :offset-assert 52) + (compact-count uint32 :offset-assert 56) + (fill-percent float :offset-assert 60) + (first-gap dead-pool-heap-rec :offset-assert 64) + (first-shrink dead-pool-heap-rec :offset-assert 68) + (heap kheap :inline :offset-assert 80) + (alive-list dead-pool-heap-rec :inline :offset-assert 96) + (last dead-pool-heap-rec :offset-assert 100 :overlay-at (-> alive-list prev)) + (dead-list dead-pool-heap-rec :inline :offset-assert 108) + (process-list dead-pool-heap-rec :dynamic :offset-assert 120) ;; guessed by decompiler + ) + :method-count-assert 29 + :size-assert #x78 + :flag-assert #x1d00000078 + (:methods + (new "Allocate and initialize a dead-pool-heap." (symbol type string int int) _type_) ;; 0 + (init "Allocate memory for processes and init records." (_type_ symbol int) _type_) ;; 17 + (compact "Relocate process in memory to remove gaps, increasing free memory for this dead-pool-heap." (dead-pool-heap int) int) ;; 18 + (shrink-heap "Shrink the heap of a process, allowing the dead pool heap to later reclaim the memory during a compact." (dead-pool-heap process) dead-pool-heap) ;; 19 + (churn "Relocate process in memory, to trigger memory bugs related to process relocation." (dead-pool-heap int) none) ;; 20 + (memory-used "Get the total memory used. Memory in between processes that is not used by a process is considered used." (_type_) int) ;; 21 + (memory-total "Get the total size of the heap for processes." (_type_) int) ;; 22 + (memory-free "Get the size of the unused part of the heap." (dead-pool-heap) int) ;; 23 + (compact-time "Get the compaction time (never set)." (dead-pool-heap) uint) ;; 24 + (gap-size "Get the size of the gap (possibly zero) after the given process. Use #f for the gap at the start of the pool memory." (dead-pool-heap dead-pool-heap-rec) int) ;; 25 + (gap-location "Get pointer to gap (possibly zero size) after the given process" (dead-pool-heap dead-pool-heap-rec) pointer) ;; 26 + (find-gap "Find the first process with a nonzero gap after it, after the given process." (dead-pool-heap dead-pool-heap-rec) dead-pool-heap-rec) ;; 27 + (find-gap-by-size "Find the first gap with a size at least this big" (dead-pool-heap int) dead-pool-heap-rec) ;; 28 + ) + ) + +(deftype stack-frame (basic) + ((name symbol :offset 4) + (next stack-frame :offset 8) ;; which way does this point? + ) + :size-assert #xc + :method-count-assert 9 + :flag-assert #x90000000c + ) + +(deftype catch-frame (stack-frame) + ((sp int32 :offset-assert 12) + (ra int32 :offset-assert 16) + ; (freg float 6 :offset-assert 20) ;; guessed by decompiler + ; (rreg uint128 8 :offset-assert 48) ;; guessed by decompiler + ;; In OpenGOAL, we swap a rreg for 4 more fregs. + (freg float 10) ;; only use 8 + (rreg uint128 7) ;; only use 5 + ) + :method-count-assert 9 + :size-assert #xb0 + :flag-assert #x9000000b0 + (:methods + (new (symbol type symbol function (pointer uint64)) object) ;; 0 + ) + ) + + +(deftype protect-frame (stack-frame) + ((exit (function object) :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + (:methods + (new "Allocate and set up a protect-frame. This _must_ be used on the stack." (symbol type (function object)) protect-frame) ;; 0 + ) + ) + +(deftype handle (uint64) + ((process (pointer process) :offset 0 :size 32) ;; additional level of indirection to support moving processes + (pid int32 :offset 32 :size 32) ;; unique pid to check if it's the same process or not. + (u64 uint64 :offset 0 :size 64) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) + +(deftype handle-wrapper (structure) + ((handle uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) + +(deftype state (protect-frame) + ((parent state :offset-assert 16) ;; guessed by decompiler + (code function :offset-assert 20) ;; guessed by decompiler + (trans (function object) :offset-assert 24) ;; guessed by decompiler + (post function :offset-assert 28) ;; guessed by decompiler + (enter function :offset-assert 32) ;; guessed by decompiler + (event (function process int symbol event-message-block object) :offset-assert 36) ;; guessed by decompiler + ) + (:methods + (new (symbol type symbol function + (function object) + function + (function object) + (function process int symbol event-message-block object)) _type_) ;; 0 + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) + +(deftype event-message-block (structure) + ((to-handle uint64 :offset-assert 0) ;; handle + (to (pointer process) :offset-assert 0 :overlay-at to-handle) ;; guessed by decompiler + (from-handle uint64 :offset-assert 8) ;; handle + (from (pointer process) :offset-assert 8 :overlay-at from-handle) ;; guessed by decompiler + (param uint64 6 :offset-assert 16) ;; guessed by decompiler + (message symbol :offset-assert 64) ;; guessed by decompiler + (num-params int32 :offset-assert 68) + ) + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ) + +(deftype event-message-block-array (inline-array-class) + ((data event-message-block :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 15 + :size-assert #x10 + :flag-assert #xf00000010 + (:methods + (send-all! (_type_) none) ;; 14 + ) + ) + +(deftype sql-result (array) + ((sql-data object :dynamic :offset 16)) + (:methods + (new (symbol type int) _type_) ;; 0 + ) + :flag-assert #x900000010 + ) + +(define-extern *sql-result* sql-result) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gkernel ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(deftype process (process-tree) + ((self process :override) + (pool dead-pool) + (status symbol :offset-assert 48) ;; guessed by decompiler + (pid int32) + (main-thread cpu-thread :offset-assert 56) ;; guessed by decompiler + (top-thread cpu-thread :offset-assert 60) ;; guessed by decompiler + (entity entity-actor :offset-assert 64) ;; guessed by decompiler + (level level :offset-assert 68) ;; guessed by decompiler + (state state :offset-assert 72) ;; guessed by decompiler + (prev-state state :offset-assert 76) ;; guessed by decompiler + (next-state state :offset-assert 80) ;; guessed by decompiler + (state-stack (array state) :offset-assert 84) ;; guessed by decompiler + (trans-hook function :offset-assert 88) ;; guessed by decompiler + (post-hook function :offset-assert 92) ;; guessed by decompiler + (event-hook (function process int symbol event-message-block object) :offset-assert 96) ;; guessed by decompiler + (allocated-length int32 :offset-assert 100) + (heap-base pointer :offset 112) ;; guessed by decompiler + (heap-top pointer :offset-assert 116) ;; guessed by decompiler + (heap-cur pointer :offset-assert 120) ;; guessed by decompiler + (stack-frame-top stack-frame :offset-assert 124) ;; guessed by decompiler + (connection-list connectable :inline :offset-assert 128) + (stack uint8 :dynamic :offset-assert 144) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x90 + :flag-assert #xe00000090 + (:methods + (new "Allocate a process, set up process heap, self/ppointer, clock." (symbol type string int) _type_) ;; 0 + ) + (:states + dead-state ;; 10 + ) + ) + +;; dead-pool-heap is already defined! + +(define-extern *kernel-version* binteger) +(define-extern *irx-version* binteger) +(define-extern *kernel-boot-mode* symbol) +(define-extern *kernel-boot-level* symbol) +(define-extern *deci-count* int) +(define-extern *last-loado-length* int) +(define-extern *last-loado-global-usage* int) +(define-extern *last-loado-debug-usage* int) +(define-extern *kernel-packages* pair) +(define-extern load-package + "If not already loaded, do a blocking dgo-load to load the given CGO." + (function string kheap pair)) +(define-extern unload-package + "Mark a package as unloaded. Does not actually unload." + (function string pair)) + +(define-extern *kernel-context* kernel-context) +(define-extern *dram-stack* (pointer uint8)) +(define-extern *null-kernel-context* kernel-context) +(define-extern remove-exit + "Remove the top stack frame. If you have no other stack frames, you can use this before a `go` + to skip the `exit` of the state you are currently in." + (function none :behavior process)) +(define-extern stream<-process-mask + "Print out the process-mask as a human readable string." + (function object process-mask process-mask)) +(define-extern *master-mode* symbol) +(define-extern *pause-lock* symbol) +(define-extern inspect-process-heap + "Call the inspect method on every object in the process heap." + (function process symbol)) +(define-extern return-from-thread (function none)) +(define-extern return-from-thread-dead (function none)) +(define-extern reset-and-call (function thread function object)) +(define-extern method-state + "Get a virtual state from this type by name." + (function type symbol state)) +(define-extern *global-search-name* basic) +(define-extern *global-search-count* int) +(define-extern process-by-name + "Find the first process with the given name in the process-tree." + (function string process-tree process)) +(define-extern process-not-name + "Find the first process without the given name in the process-tree." + (function string process-tree process)) +(define-extern process-count + "Count the number of processes in the given process-tree." + (function process-tree int)) +(define-extern kill-by-name "Kill all processes with the given name." (function string process-tree symbol)) +(define-extern kill-by-type "Kill all processes with the given type." (function type process-tree symbol)) +(define-extern kill-not-name "Kill all processes, except ones with the given name." (function string process-tree symbol)) +(define-extern kill-not-type "Kill all processes, except ones with the exact type." (function type process-tree symbol)) +(define-extern kill-by-type-inherited "Kill all processes, except ones that inherit from the given type." (function type process-tree symbol)) +(define-extern iterate-process-tree "Call a function on each not-dead process in the tree." (function process-tree (function object object) kernel-context object)) +(define-extern execute-process-tree "Iterate over all process, calling the run callback on each, if they should run." (function process-tree (function object object) kernel-context object)) +(define-extern search-process-tree "Return the first function in the process-tree which the callback returns #t on." (function process-tree (function process-tree object) process)) +(define-extern kernel-dispatcher "Run the GOAL kernel! Runs the function from the listener (if there is one), then all processes" (function object)) +(define-extern sync-dispatcher "Run the REPL function." (function object)) +(define-extern inspect-process-tree "Display a tree-view of a process-tree." (function process-tree int int symbol process-tree)) +(define-extern throw-dispatch (function catch-frame object none)) +(define-extern throw (function symbol object int)) +(define-extern previous-brother "Get the process before this one, at this level." (function process-tree object)) +(define-extern change-parent "Reparent a process." (function process-tree process-tree process-tree)) +(define-extern change-brother "Unused, and wrong." (function process-tree process-tree object)) +(define-extern change-to-last-brother "Move this process to the end of its brother list." (function process-tree process-tree)) +(define-extern run-function-in-process (function process function object object object object object object object)) +(define-extern set-to-run-bootstrap (function none)) +(define-extern set-to-run "Set up a process to run a given function, with the given arguments when it executes next." (function cpu-thread function object object object object object object pointer)) +(define-extern dead-state (state process)) +(define-extern entity-deactivate-handler (function process entity-actor none)) +(define-extern *deactivate-process-array* (array handle)) +(define-extern *kernel-clock* clock) +(define-extern *vis-boot* symbol) +(define-extern *null-process* process) +(define-extern *listener-process* process) +(define-extern *16k-dead-pool* dead-pool) +(define-extern *4k-dead-pool* dead-pool) +(define-extern *target-dead-pool* dead-pool) +(define-extern *camera-dead-pool* dead-pool) +(define-extern *camera-master-dead-pool* dead-pool) +(define-extern *debug-dead-pool* dead-pool-heap) +(define-extern *nk-dead-pool* dead-pool-heap) +(define-extern *default-dead-pool* dead-pool) +(define-extern *pickup-dead-pool* dead-pool) +(define-extern *dead-pool-list* pair) +(define-extern *active-pool* process-tree) +(define-extern *display-pool* process-tree) +(define-extern *camera-pool* process-tree) +(define-extern *target-pool* process-tree) +(define-extern *entity-pool* process-tree) +(define-extern *mid-pool* process-tree) +(define-extern *locker-pool* process-tree) +(define-extern *pusher-pool* process-tree) +(define-extern *bg-pool* process-tree) +(define-extern *default-pool* process-tree) + +;; !! GENERATED ALL TYPES BEGINS HERE !! + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pskernel ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lowmemmap (structure) + ((irq-info-stack uint32 :offset-assert 0) + (irq2-info-stack uint32 :offset-assert 4) + (kernel-copy-fn uint32 :offset-assert 8) + (kernel-write-fn uint32 :offset-assert 12) + (r1-save uint128 :offset-assert 16) + (last-time uint32 :offset-assert 32) + (high-time uint32 :offset-assert 36) + (dma-status uint32 :offset-assert 40) + (dma-qnext uint32 :offset-assert 44) + (dma-qwc uint32 :offset-assert 48) + (dma-tnext uint32 :offset-assert 52) + (dma-stack0 uint32 :offset-assert 56) + (dma-stack1 uint32 :offset-assert 60) + (kernel-read-fn uint32 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +;; (define-extern kernel-copy-function function) ;; (function object (pointer int32) int32 int32 none) +;; (define-extern kernel-copy-to-kernel-ram function) ;; (function none) +;; (define-extern kernel-write-function function) ;; (function object object object none) +;; (define-extern kernel-write function) ;; (function none) +;; (define-extern kernel-read-function function) ;; (function object (pointer int32) none) +;; (define-extern kernel-read function) ;; (function none) +;; (define-extern kernel-check-hardwired-addresses function) ;; (function none) +;; (define-extern install-default-debug-handler function) ;; (function object none) +;; (define-extern return-from-exception function) ;; (function object none) +;; (define-extern kernel-set-exception-vector function) ;; (function object none) +;; (define-extern kernel-set-interrupt-vector function) ;; (function none) +;; (define-extern kernel-set-level2-vector function) ;; (function object object none) +;; (define-extern deinstall-debug-handler function) ;; (function none) +;; (define-extern deinstall-debug-handlers function) ;; (function none) +;; (define-extern resend-exception function) ;; (function object object object object none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dgo-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dgo-header (structure) + ((length uint32 :offset-assert 0) + (rootname uint8 60 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype dgo-entry (structure) + ((offset uint32 :offset-assert 0) + (length uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype dgo-file (basic) + ((num-go-files uint32 :offset-assert 4) + (total-length uint32 :offset-assert 8) + (rsvd uint32 :offset-assert 12) + (data uint8 :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gstate ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern inherit-state function) ;; (function state state state) +;; (define-extern state-type? function) ;; (function state symbol symbol) +;; (define-extern enter-state function) ;; (function object object object object object object object) +;; (define-extern *event-queue* object) ;; event-message-block-array +;; (define-extern send-event-function function) ;; (function process-tree event-message-block object) +;; (define-extern looping-code function) ;; (function symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; types-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype basic-reserved (basic) + () + :method-count-assert 29 + :size-assert #x4 + :flag-assert #x1d00000004 + (:methods + (basic-reserved-method-9 () none) ;; 9 ;; (basic-reserved-method-9 () none) + (basic-reserved-method-10 () none) ;; 10 ;; (basic-reserved-method-10 () none) + (basic-reserved-method-11 () none) ;; 11 ;; (basic-reserved-method-11 () none) + (basic-reserved-method-12 () none) ;; 12 ;; (basic-reserved-method-12 () none) + (basic-reserved-method-13 () none) ;; 13 ;; (basic-reserved-method-13 () none) + (basic-reserved-method-14 () none) ;; 14 ;; (basic-reserved-method-14 () none) + (basic-reserved-method-15 () none) ;; 15 ;; (basic-reserved-method-15 () none) + (basic-reserved-method-16 () none) ;; 16 ;; (basic-reserved-method-16 () none) + (basic-reserved-method-17 () none) ;; 17 ;; (basic-reserved-method-17 () none) + (basic-reserved-method-18 () none) ;; 18 ;; (basic-reserved-method-18 () none) + (basic-reserved-method-19 () none) ;; 19 ;; (basic-reserved-method-19 () none) + (basic-reserved-method-20 () none) ;; 20 ;; (basic-reserved-method-20 () none) + (basic-reserved-method-21 () none) ;; 21 ;; (basic-reserved-method-21 () none) + (basic-reserved-method-22 () none) ;; 22 ;; (basic-reserved-method-22 () none) + (basic-reserved-method-23 () none) ;; 23 ;; (basic-reserved-method-23 () none) + (basic-reserved-method-24 () none) ;; 24 ;; (basic-reserved-method-24 () none) + (basic-reserved-method-25 () none) ;; 25 ;; (basic-reserved-method-25 () none) + (basic-reserved-method-26 () none) ;; 26 ;; (basic-reserved-method-26 () none) + (basic-reserved-method-27 () none) ;; 27 ;; (basic-reserved-method-27 () none) + (basic-reserved-method-28 () none) ;; 28 ;; (basic-reserved-method-28 () none) + ) + ) +|# + +;; (deftype part-id (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vu1-macros ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; math ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype float-type (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype rgba (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype xyzw (uint128) +;; () +;; :flag-assert #x900000010 +;; ) + +;; (deftype xyzwh (uint128) +;; () +;; :flag-assert #x900000010 +;; ) + +#| +(deftype random-generator (basic) + ((seed uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern truncate function) ;; (function float float) +;; (define-extern round function) ;; (function float float) +;; (define-extern floor function) ;; (function float float) +;; (define-extern ceil function) ;; (function float float) +;; (define-extern integral? function) ;; (function float symbol) +;; (define-extern fractional-part function) ;; (function float float) +;; (define-extern odd? function) ;; (function int symbol) +;; (define-extern even? function) ;; (function int symbol) +;; (define-extern sawtooth-wave function) ;; (function float float) +;; (define-extern triangle-wave function) ;; (function float float) +;; (define-extern log-x-plus-1-order9 function) ;; (function float float) +;; (define-extern logf function) ;; (function float float) +;; (define-extern log2f function) ;; (function float float) +;; (define-extern exp-slead object) ;; (pointer float) +;; (define-extern exp-strail object) ;; (pointer float) +;; (define-extern exp function) ;; (function float float) +;; (define-extern pow function) ;; (function float float float) +;; (define-extern print-exp function) ;; (function float none) +;; (define-extern print-time function) ;; (function object time-frame none) +;; (define-extern log2 function) ;; (function int int) +;; (define-extern seek function) ;; (function float float float float) +;; (define-extern seek-ease function) ;; (function float float float float float float) +;; (define-extern seek-ease-in-out function) ;; (function float float float float float float float float) +;; (define-extern lerp function) ;; (function float float float float) +;; (define-extern lerp-scale-old function) ;; (function float float float float float float) +;; (define-extern lerp-scale function) ;; (function float float float float float float) +;; (define-extern lerp-scale-clamp function) ;; (function float float float float float float) +;; (define-extern lerp-clamp function) ;; (function float float float float) +;; (define-extern rgba-lerp function) ;; (function rgba rgba rgba rgba) +;; (define-extern seekl function) ;; (function int int int int) +;; (define-extern rand-vu-init function) ;; (function float float) +;; (define-extern rand-vu function) ;; (function float) +;; (define-extern rand-vu-nostep function) ;; (function float) +;; (define-extern rand-vu-float-range function) ;; (function float float float) +;; (define-extern rand-vu-percent? function) ;; (function float symbol) +;; (define-extern rand-vu-int-range function) ;; (function int int int) +;; (define-extern rand-vu-int-count function) ;; (function int int) +;; (define-extern rand-vu-int-count-excluding function) ;; (function int int int) +;; (define-extern rand-vu-int-range-exclude function) ;; (function int int int int) +;; (define-extern *random-generator* object) ;; random-generator +;; (define-extern rand-uint31-gen function) ;; (function random-generator uint) +;; (define-extern cube-root function) ;; (function float float) +;; (define-extern int-noise function) ;; (function int float) +;; (define-extern smooth-step function) ;; (function float float) +;; (define-extern smooth-interp function) ;; (function float float float float float float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vector-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bit-array (basic) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + ) + :method-count-assert 13 + :size-assert #xd + :flag-assert #xd0000000d + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int) _type_) + (bit-array-method-9 () none) ;; 9 ;; (get-bit (_type_ int) symbol) + (bit-array-method-10 () none) ;; 10 ;; (clear-bit (_type_ int) int) + (bit-array-method-11 () none) ;; 11 ;; (set-bit (_type_ int) int) + (bit-array-method-12 () none) ;; 12 ;; (clear-all! (_type_) _type_) + ) + ) +|# + +#| +(deftype vector16ub (structure) + ((data uint8 16 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vector4ub (structure) + ((data uint8 4 :offset-assert 0) ;; guessed by decompiler + (x uint8 :offset-assert 0) + (y uint8 :offset-assert 1) + (z uint8 :offset-assert 2) + (w uint8 :offset-assert 3) + (clr uint32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype vector4b (structure) + ((data int8 4 :offset-assert 0) ;; guessed by decompiler + (x int8 :offset-assert 0) + (y int8 :offset-assert 1) + (z int8 :offset-assert 2) + (w int8 :offset-assert 3) + (clr int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype vector2ub (structure) + ((data uint8 2 :offset-assert 0) ;; guessed by decompiler + (x uint8 :offset-assert 0) + (y uint8 :offset-assert 1) + (clr uint16 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype vector2b (structure) + ((data int8 2 :offset-assert 0) ;; guessed by decompiler + (x int8 :offset-assert 0) + (y int8 :offset-assert 1) + (clr int16 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype vector2h (structure) + ((data int16 2 :offset-assert 0) ;; guessed by decompiler + (x int16 :offset-assert 0) + (y int16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype vector2uh (structure) + ((data uint16 2 :offset-assert 0) ;; guessed by decompiler + (x uint16 :offset-assert 0) + (y uint16 :offset-assert 2) + (val uint32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype vector3h (structure) + ((data int16 3 :offset-assert 0) ;; guessed by decompiler + (x int16 :offset-assert 0) + (y int16 :offset-assert 2) + (z int16 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype vector3uh (structure) + ((data uint16 3 :offset-assert 0) ;; guessed by decompiler + (x uint16 :offset-assert 0) + (y uint16 :offset-assert 2) + (z uint16 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype vector2w (structure) + ((data int32 2 :offset-assert 0) ;; guessed by decompiler + (x int32 :offset-assert 0) + (y int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype vector3w (structure) + ((data int32 3 :offset-assert 0) ;; guessed by decompiler + (x int32 :offset-assert 0) + (y int32 :offset-assert 4) + (z int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype vector4w (structure) + ((data int32 4 :offset-assert 0) ;; guessed by decompiler + (x int32 :offset-assert 0) + (y int32 :offset-assert 4) + (z int32 :offset-assert 8) + (w int32 :offset-assert 12) + (dword uint64 2 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vector2 (structure) + ((data float 2 :offset-assert 0) ;; guessed by decompiler + (x float :offset-assert 0) + (y float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype vector3 (structure) + ((data float 3 :offset-assert 0) ;; guessed by decompiler + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype vector4 (structure) + ((data float 4 :offset-assert 0) ;; guessed by decompiler + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + (w float :offset-assert 12) + (dword uint64 2 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vector4w-2 (structure) + ((data int32 8 :offset-assert 0) ;; guessed by decompiler + (quad uint128 2 :offset-assert 0) ;; guessed by decompiler + (vector vector4w 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype vector4w-3 (structure) + ((data int32 12 :offset-assert 0) ;; guessed by decompiler + (quad uint128 3 :offset-assert 0) ;; guessed by decompiler + (vector vector4w 3 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype vector4w-4 (structure) + ((data int32 16 :offset-assert 0) ;; guessed by decompiler + (quad uint128 4 :offset-assert 0) ;; guessed by decompiler + (vector vector4w 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype vector4h (structure) + ((data int16 4 :offset-assert 0) ;; guessed by decompiler + (x int16 :offset-assert 0) + (y int16 :offset-assert 2) + (z int16 :offset-assert 4) + (w int16 :offset-assert 6) + (long uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype vector4uh (structure) + ((data UNKNOWN 4 :offset-assert 0) + (x uint16 :offset-assert 0) + (y uint16 :offset-assert 2) + (z uint16 :offset-assert 4) + (w uint16 :offset-assert 6) + (long uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype vector8h (structure) + ((data int16 8 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vector16b (structure) + ((data int8 16 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vector4s-3 (structure) + ((data float 12 :offset-assert 0) ;; guessed by decompiler + (quad uint128 3 :offset-assert 0) ;; guessed by decompiler + (vector vector 3 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype vector-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data vector :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype rgbaf (vector) + ((r float :offset-assert 0) + (g float :offset-assert 4) + (b float :offset-assert 8) + (a float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype plane (vector) + ((a float :offset-assert 0) + (b float :offset-assert 4) + (c float :offset-assert 8) + (d float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype sphere (vector) + ((r float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (deftype isphere (vec4s) +;; () +;; :flag-assert #x900000010 +;; ) + +#| +(deftype box8s (structure) + ((data float 8 :offset-assert 0) ;; guessed by decompiler + (quad uint128 2 :offset-assert 0) ;; guessed by decompiler + (vector vector 2 :offset-assert 0) ;; guessed by decompiler + (min vector :inline :offset-assert 0) + (max vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype box8s-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data box8s :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype vertical-planes (structure) + ((data uint128 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype vertical-planes-array (basic) + ((length uint32 :offset-assert 4) + (data vertical-planes :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype qword (structure) + ((data uint32 4 :offset-assert 0) ;; guessed by decompiler + (byte uint8 16 :offset-assert 0) ;; guessed by decompiler + (hword uint16 8 :offset-assert 0) ;; guessed by decompiler + (word uint32 4 :offset-assert 0) ;; guessed by decompiler + (dword uint64 2 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + (vector vector :inline :offset-assert 0) + (vector4w vector4w :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vector3s (structure) + ((data float 3 :offset-assert 0) ;; guessed by decompiler + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; vector is already defined! + +;; (define-extern *null-vector* object) ;; vector +;; (define-extern *identity-vector* object) ;; vector +;; (define-extern *x-vector* object) ;; vector +;; (define-extern *y-vector* object) ;; vector +;; (define-extern *z-vector* object) ;; vector +;; (define-extern *up-vector* object) ;; vector +;; (define-extern vector-dot function) ;; (function vector vector float) +;; (define-extern vector-dot-vu function) ;; (function vector vector float) +;; (define-extern vector4-dot function) ;; (function vector vector float) +;; (define-extern vector4-dot-vu function) ;; (function vector vector float) +;; (define-extern vector-xz-dot function) +;; (define-extern vector+! function) ;; (function vector vector vector vector) +;; (define-extern vector-! function) ;; (function vector vector vector vector) +;; (define-extern vector-zero! function) ;; (function vector vector) +;; (define-extern vector-reset! function) ;; (function vector vector) +;; (define-extern vector-copy! function) ;; (function vector vector vector) +;; (define-extern vector-xz-! function) +;; (define-extern vector-xz+! function) +;; (define-extern vector-vector-project-compute-length! function) +;; (define-extern vector-vector-perpendicular! function) +;; (define-extern vector-length< function) ;; (function vector float symbol) +;; (define-extern vector-length> function) ;; (function vector float symbol) +;; (define-extern *zero-vector* object) ;; vector + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gravity-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bounding-box-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bounding-box (structure) + ((min vector :inline :offset-assert 0) + (max vector :inline :offset-assert 16) + ) + :method-count-assert 22 + :size-assert #x20 + :flag-assert #x1600000020 + (:methods + (bounding-box-method-9 () none) ;; 9 ;; (add-spheres! (_type_ (inline-array sphere) int) int) + (bounding-box-method-10 () none) ;; 10 ;; (add-box! (_type_ bounding-box) int) + (bounding-box-method-11 () none) ;; 11 ;; (add-point! (_type_ vector) none) + (bounding-box-method-12 () none) ;; 12 ;; (intersects-line-segment? (_type_ vector vector) symbol) + (bounding-box-method-13 () none) ;; 13 ;; (set-from-point-offset! (_type_ vector vector) none) + (bounding-box-method-14 () none) ;; 14 ;; (set-from-point-offset-pad! (_type_ vector vector float) int) + (bounding-box-method-15 () none) ;; 15 ;; (set-to-point! (_type_ vector) none) + (bounding-box-method-16 () none) ;; 16 ;; (set-from-sphere! (_type_ sphere) none) + (bounding-box-method-17 () none) ;; 17 ;; (set-from-spheres! (_type_ (inline-array sphere) int) int) + (bounding-box-method-18 () none) ;; 18 ;; (get-bounding-sphere (_type_ vector) vector) + (bounding-box-method-19 () none) ;; 19 ;; (inside-xyz? (bounding-box vector) symbol) + (bounding-box-method-20 () none) ;; 20 ;; (inside-xz? (bounding-box vector) symbol) + (bounding-box-method-21 () none) ;; 21 + ) + ) +|# + +#| +(deftype bounding-box2 (structure) + ((min vector2 :inline :offset-assert 0) + (max vector2 :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype bounding-box4w (structure) + ((min vector4w :inline :offset-assert 0) + (max vector4w :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype bounding-box-both (structure) + ((box bounding-box :inline :offset-assert 0) + (box4w bounding-box4w :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype bounding-box-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data bounding-box :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; matrix-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype matrix (structure) + ((data float 16 :offset-assert 0) ;; guessed by decompiler + (vector vector 4 :offset-assert 0) ;; guessed by decompiler + (quad uint128 4 :offset-assert 0) ;; guessed by decompiler + (rvec vector :inline :offset-assert 0) + (uvec vector :inline :offset-assert 16) + (fvec vector :inline :offset-assert 32) + (trans vector :inline :offset-assert 48) + ) + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + (:methods + (matrix-method-9 () none) ;; 9 ;; (transform-vectors! (_type_ (inline-array vector) (inline-array vector) int) none) + ) + ) +|# + +#| +(deftype matrix3 (structure) + ((data float 12 :offset-assert 0) ;; guessed by decompiler + (vector vector 3 :offset-assert 0) ;; guessed by decompiler + (quad uint128 3 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype matrix4h (structure) + ((data int16 16 :offset-assert 0) ;; guessed by decompiler + (vector4h vector4h 4 :offset-assert 0) ;; guessed by decompiler + (long int64 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern matrix-copy! function) ;; (function matrix matrix matrix) +;; (define-extern matrix<-vector-yz-exact! function) ;; (function matrix vector vector matrix) +;; (define-extern matrix<-vector-yz! function) ;; (function matrix vector vector matrix) +;; (define-extern matrix<-vector-z! function) ;; (function matrix vector matrix) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; quaternion-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype quaternion (structure) + ((data float 4 :offset-assert 0) ;; guessed by decompiler + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + (w float :offset-assert 12) + (vec vector :inline :offset-assert 0) + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *unity-quaternion* object) ;; quaternion + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; euler-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype euler-angles (vector) + () + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern EulSafe array) ;; (array int32) +;; (define-extern EulNext array) ;; (array int32) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; transform-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype transformq (structure) + ((trans vector :inline :offset-assert 0) + (rot vector :inline :offset-assert 16) + (scale vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype trsq (basic) + ((trans vector :inline :offset-assert 16) + (rot vector :inline :offset-assert 32) + (scale vector :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trigonometry-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; geometry-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype curve (structure) + ((cverts (inline-array vector) :offset-assert 0) ;; guessed by decompiler + (num-cverts int32 :offset-assert 4) + (knots (pointer float) :offset-assert 8) ;; guessed by decompiler + (num-knots int32 :offset-assert 12) + (length float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype line-intersection-val (structure) + ((tt0 float :offset-assert 0) + (tt1 float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype border-plane (basic) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (action basic :offset-assert 8) + (slot int8 :offset-assert 12) + (trans vector :inline :offset-assert 16) + (normal vector :inline :offset-assert 32) + ) + :method-count-assert 11 + :size-assert #x30 + :flag-assert #xb00000030 + (:methods + (border-plane-method-9 () none) ;; 9 ;; (debug-draw (_type_) int) + (border-plane-method-10 () none) ;; 10 ;; (point-past-plane? (_type_ vector) symbol) + ) + ) +|# + +#| +(deftype lissajous (structure) + ((x-mag float :offset-assert 0) + (y-mag float :offset-assert 4) + (theta float :offset-assert 8) + (wx float :offset-assert 12) + (wy float :offset-assert 16) + (period-shift float :offset-assert 20) + (theta-rate float :offset-assert 24) + ) + :method-count-assert 10 + :size-assert #x1c + :flag-assert #xa0000001c + (:methods + (lissajous-method-9 () none) ;; 9 ;; (evaluate! (_type_ vector) vector) + ) + ) +|# + +#| +(deftype lissajous-interp (structure) + ((current lissajous :inline :offset-assert 0) + (dest lissajous :inline :offset-assert 28) + (rate lissajous :inline :offset-assert 56) + ) + :method-count-assert 11 + :size-assert #x54 + :flag-assert #xb00000054 + (:methods + (lissajous-interp-method-9 () none) ;; 9 ;; (evaluate! (_type_ vector) vector) + (lissajous-interp-method-10 () none) ;; 10 ;; (update! (_type_) float) + ) + ) +|# + +#| +(deftype ellipsoid (vector) + ((height float :offset-assert 4) + (width float :offset-assert 0) + (length float :offset-assert 8) + (h float :offset-assert 4) + (l float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern point-in-ellipsoid? function) +;; (define-extern ellipsoid-random-point-on! function) +;; (define-extern ellipsoid-normal-at! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; transformq-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype trsqv (trsq) + ((pause-adjust-distance meters :offset-assert 4) + (nav-radius meters :offset-assert 8) + (transv vector :inline :offset-assert 64) + (rotv vector :inline :offset-assert 80) + (scalev vector :inline :offset-assert 96) + (dir-targ quaternion :inline :offset-assert 112) + (angle-change-time uint64 :offset-assert 128) ;; time-frame + (old-y-angle-diff float :offset-assert 136) + ) + :method-count-assert 28 + :size-assert #x8c + :flag-assert #x1c0000008c + (:methods + (trsqv-method-9 () none) ;; 9 ;; (seek-toward-heading-vec! (_type_ vector float time-frame) quaternion) + (trsqv-method-10 () none) ;; 10 ;; (set-heading-vec! (_type_ vector) quaternion) + (trsqv-method-11 () none) ;; 11 ;; (seek-to-point-toward-point! (_type_ vector float time-frame) quaternion) + (trsqv-method-12 () none) ;; 12 ;; (point-toward-point! (_type_ vector) quaternion) + (trsqv-method-13 () none) ;; 13 ;; (seek-toward-yaw-angle! (_type_ float float time-frame) quaternion) + (trsqv-method-14 () none) ;; 14 ;; (set-yaw-angle-clear-roll-pitch! (_type_ float) quaternion) + (trsqv-method-15 () none) ;; 15 ;; (set-roll-to-grav! (_type_ float) quaternion) + (trsqv-method-16 () none) ;; 16 ;; (set-roll-to-grav-2! (_type_ float) quaternion) + (trsqv-method-17 () none) ;; 17 ;; (rotate-toward-orientation! (_type_ quaternion float float int int float) quaternion) + (trsqv-method-18 () none) ;; 18 ;; (set-quaternion! (_type_ quaternion) quaternion) + (trsqv-method-19 () none) ;; 19 ;; (set-heading-vec-clear-roll-pitch! (_type_ vector) quaternion) + (trsqv-method-20 () none) ;; 20 ;; (point-toward-point-clear-roll-pitch! (_type_ vector) quaternion) + (trsqv-method-21 () none) ;; 21 ;; (rot->dir-targ! (_type_) quaternion) + (trsqv-method-22 () none) ;; 22 ;; (y-angle (_type_) float) + (trsqv-method-23 () none) ;; 23 ;; (global-y-angle-to-point (_type_ vector) float) + (trsqv-method-24 () none) ;; 24 ;; (relative-y-angle-to-point (_type_ vector) float) + (trsqv-method-25 () none) ;; 25 ;; (roll-relative-to-gravity (_type_) float) + (trsqv-method-26 () none) ;; 26 ;; (set-and-limit-velocity (_type_ int vector float) trsqv) + (trsqv-method-27 () none) ;; 27 ;; (get-quaternion (_type_) quaternion) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bounding-box ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype liang-barsky-line-clip-params (structure) + ((te float :offset-assert 0) + (tl float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern box-vector-enside? function) ;; (function bounding-box vector symbol) +;; (define-extern box-vector-inside? function) ;; (function bounding-box vector symbol) +;; (define-extern liang-barsky-line-clipt function) ;; (function liang-barsky-line-clip-params float float symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; matrix ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; matrix is already defined! + +;; matrix3 is already defined! + +;; (define-extern matrix-identity! function) ;; (function matrix matrix) +;; (define-extern *identity-matrix* object) ;; matrix +;; (define-extern *hermite-matrix* object) ;; matrix +;; (define-extern matrix+! function) ;; (function matrix matrix matrix matrix) +;; (define-extern matrix-! function) ;; (function matrix matrix matrix matrix) +;; (define-extern matrix*! function) ;; (function matrix matrix matrix matrix) +;; (define-extern matrixp*! function) ;; (function matrix matrix matrix matrix) +;; (define-extern vector-matrix*! function) ;; (function vector vector matrix vector) +;; (define-extern vector-norm-matrix*! function) ;; (function vector vector matrix vector) +;; (define-extern vector-rotate*! function) ;; (function vector vector matrix vector) +;; (define-extern vector3s-matrix*! function) ;; (function vector3s vector3s matrix vector3s) +;; (define-extern vector3s-rotate*! function) ;; (function vector3s vector3s matrix vector3s) +;; (define-extern matrix-transpose! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-inverse-of-rot-trans! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-4x4-inverse! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-translate! function) ;; (function matrix vector matrix) +;; (define-extern matrix-translate+! function) ;; (function matrix matrix vector matrix) +;; (define-extern matrix-scale! function) ;; (function matrix vector matrix) +;; (define-extern scale-matrix! function) ;; (function matrix vector matrix matrix) +;; (define-extern matrix-inv-scale! function) ;; (function matrix vector matrix) +;; (define-extern column-scale-matrix! function) ;; (function matrix vector matrix matrix) +;; (define-extern matrix-rotate-x! function) ;; (function matrix float matrix) +;; (define-extern matrix-rotate-y! function) ;; (function matrix float matrix) +;; (define-extern matrix-rotate-z! function) ;; (function matrix float matrix) +;; (define-extern matrix-rotate-zyx! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-xyz-2! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-xyz! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-zxy! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-yxz! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-yzx! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-yxy! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-yx! function) ;; (function matrix float float matrix) +;; (define-extern matrix-axis-sin-cos-vu! function) ;; (function matrix vector float float none) +;; (define-extern matrix-axis-sin-cos! function) ;; (function matrix vector float float matrix) +;; (define-extern matrix-axis-angle! function) ;; (function matrix vector float matrix) +;; (define-extern matrix-lerp! function) ;; (function matrix matrix matrix float matrix) +;; (define-extern matrix-3x3-determinant function) ;; (function matrix float) +;; (define-extern matrix3-determinant function) ;; (function matrix float) +;; (define-extern matrix-3x3-inverse! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-3x3-inverse-transpose! function) ;; (function matrix matrix matrix) +;; (define-extern matrix3-inverse-transpose! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-3x3-normalize! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-4x4-determinant function) ;; (function matrix float) +;; (define-extern matrix-4x4-inverse-transpose! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-y-angle function) ;; (function matrix float) +;; (define-extern matrix->trans function) ;; (function matrix vector vector) +;; (define-extern matrix<-trans function) ;; (function matrix vector matrix) +;; (define-extern matrix->scale function) ;; (function matrix vector vector) +;; (define-extern matrix-remove-scale! function) +;; (define-extern matrix<-scale function) ;; (function matrix vector matrix) +;; (define-extern matrix->quat function) ;; (function matrix quaternion quaternion) +;; (define-extern matrix<-quat function) ;; (function matrix quaternion matrix) +;; (define-extern matrix-extract-rotation! function) +;; (define-extern matrix->transformq function) ;; (function transformq matrix transformq) +;; (define-extern matrix-mirror! function) ;; (function matrix vector vector matrix) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; matrix-compose ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern matrix-fur-compose function) ;; (function matrix vector vector vector matrix) +;; (define-extern matrix-fu-compose function) ;; (function matrix vector vector matrix) +;; (define-extern matrix-fr-compose function) ;; (function matrix vector vector matrix) +;; (define-extern matrix-ur-compose function) ;; (function matrix vector vector vector matrix) +;; (define-extern matrix-f-u-compose function) ;; (function matrix vector vector matrix) +;; (define-extern matrix-f-r-compose function) ;; (function matrix vector vector matrix) +;; (define-extern matrix-u-f-compose function) ;; (function matrix vector vector matrix) +;; (define-extern matrix-u-r-compose function) ;; (function matrix vector vector matrix) +;; (define-extern matrix-r-f-compose function) ;; (function matrix vector vector vector matrix) +;; (define-extern matrix-r-u-compose function) ;; (function matrix vector vector vector matrix) +;; (define-extern matrix-f-compose function) ;; (function matrix vector matrix) +;; (define-extern matrix-u-compose function) ;; (function matrix vector vector vector matrix) +;; (define-extern matrix-r-compose function) ;; (function matrix vector vector vector matrix) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; transform ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; quaternion ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; quaternion is already defined! + +;; (define-extern quaternion-axis-angle! function) ;; (function quaternion float float float float quaternion) +;; (define-extern quaternion-vector-angle! function) ;; (function quaternion vector float quaternion) +;; (define-extern vector-angle<-quaternion! function) ;; (function vector quaternion vector) +;; (define-extern quaternion-look-at! function) ;; (function quaternion vector vector quaternion) +;; (define-extern quaternion-zero! function) ;; (function quaternion quaternion) +;; (define-extern quaternion-identity! function) ;; (function quaternion quaternion) +;; (define-extern quaternion-i! function) ;; (function quaternion quaternion) +;; (define-extern quaternion-j! function) ;; (function quaternion quaternion) +;; (define-extern quaternion-k! function) ;; (function quaternion quaternion) +;; (define-extern quaternion-copy! function) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-set! function) ;; (function quaternion float float float float quaternion) +;; (define-extern quaternion+! function) ;; (function quaternion quaternion quaternion quaternion) +;; (define-extern quaternion-! function) ;; (function quaternion quaternion quaternion quaternion) +;; (define-extern quaternion-negate! function) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-conjugate! function) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-float*! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-float/! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-norm2 function) ;; (function quaternion float) +;; (define-extern quaternion-norm function) ;; (function quaternion float) +;; (define-extern quaternion-normalize! function) ;; (function quaternion quaternion) +;; (define-extern quaternion-inverse! function) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-dot function) ;; (function quaternion quaternion float) +;; (define-extern quaternion*! function) ;; (function quaternion quaternion quaternion quaternion) +;; (define-extern quaternion-right-mult-matrix! function) ;; (function matrix quaternion matrix) +;; (define-extern quaternion-left-mult-matrix! function) ;; (function matrix quaternion matrix) +;; (define-extern quaternion->matrix function) ;; (function matrix quaternion matrix) +;; (define-extern quaternion->matrix-2 function) ;; (function matrix quaternion matrix) +;; (define-extern matrix->quaternion function) ;; (function quaternion matrix quaternion) +;; (define-extern matrix-with-scale->quaternion function) ;; (function quaternion matrix quaternion) +;; (define-extern quaternion-vector-len function) ;; (function quaternion float) +;; (define-extern quaternion-log! function) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-exp! function) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-slerp! function) ;; (function quaternion quaternion quaternion float quaternion) +;; (define-extern quaternion-pseudo-slerp! function) ;; (function quaternion quaternion quaternion float quaternion) +;; (define-extern quaternion-pseudo-seek function) ;; (function quaternion quaternion quaternion float quaternion) +;; (define-extern quaternion-smooth-seek! function) ;; (function quaternion quaternion quaternion float quaternion) +;; (define-extern quaternion-zxy! function) ;; (function quaternion vector quaternion) +;; (define-extern vector-x-quaternion! function) ;; (function vector quaternion vector) +;; (define-extern vector-y-quaternion! function) ;; (function vector quaternion vector) +;; (define-extern vector-z-quaternion! function) ;; (function vector quaternion vector) +;; (define-extern quaternion-x-angle function) ;; (function quaternion float) +;; (define-extern quaternion-y-angle function) ;; (function quaternion float) +;; (define-extern quaternion-z-angle function) ;; (function quaternion float) +;; (define-extern quaternion-vector-y-angle function) ;; (function quaternion vector float) +;; (define-extern quaternion-rotate-local-x! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-local-y! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-local-z! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-y! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-x! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-z! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-delta-y function) ;; (function quaternion quaternion float) +;; (define-extern quaternion-rotate-y-to-vector! function) ;; (function quaternion quaternion quaternion float quaternion) +;; (define-extern vector-rotate-around-axis! function) ;; (function vector vector float vector vector) +;; (define-extern vector-rotate-x! function) ;; (function vector vector float vector) +;; (define-extern vector-rotate-y! function) ;; (function vector vector float vector) +;; (define-extern vector-rotate-y-fast! function) +;; (define-extern vector-rotate-z! function) ;; (function vector vector float vector) +;; (define-extern vector-y-angle function) ;; (function vector float) +;; (define-extern vector-x-angle function) ;; (function vector float) +;; (define-extern quaternion<-rotate-y-vector function) ;; (function quaternion vector quaternion) +;; (define-extern quaternion-validate function) ;; (function quaternion none) +;; (define-extern quaternion-xz-angle function) ;; (function quaternion float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; euler ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern set-eul! function) ;; (function euler-angles float float float int euler-angles) +;; (define-extern eul->matrix function) ;; (function matrix euler-angles matrix) +;; (define-extern matrix->eul function) ;; (function euler-angles matrix int euler-angles) +;; (define-extern eul->quat function) ;; (function quaternion euler-angles quaternion) +;; (define-extern quat->eul function) ;; (function euler-angles quaternion int euler-angles) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trigonometry ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern radmod function) ;; (function float float) +;; (define-extern deg- function) ;; (function float float float) +;; (define-extern deg-diff function) ;; (function float float float) +;; (define-extern deg-seek function) ;; (function float float float float) +;; (define-extern deg-seek-smooth function) ;; (function float float float float float) +;; (define-extern deg-lerp-clamp function) ;; (function float float float float) +;; (define-extern binary-table array) ;; (array float) +;; (define-extern sincos-table array) ;; (array float) +;; (define-extern sin function) ;; (function float float) +;; (define-extern sin-rad function) ;; (function float float) +;; (define-extern *sin-poly-vec* object) ;; vector +;; (define-extern *sin-poly-vec2* object) ;; vector +;; (define-extern vector-sin-rad! function) ;; (function vector vector vector) +;; (define-extern cos-rad function) ;; (function float float) +;; (define-extern *cos-poly-vec* object) ;; vector +;; (define-extern vector-cos-rad! function) ;; (function vector vector vector) +;; (define-extern vector-sincos-rad! function) ;; (function vector vector vector int) +;; (define-extern sincos-rad! function) ;; (function vector float int) +;; (define-extern sincos! function) ;; (function vector float int) +;; (define-extern vector-rad<-vector-deg! function) ;; (function vector vector none) +;; (define-extern vector-rad<-vector-deg/2! function) ;; (function vector vector int) +;; (define-extern vector-sincos! function) ;; (function vector vector vector int) +;; (define-extern tan-rad function) ;; (function float float) +;; (define-extern cos function) ;; (function float float) +;; (define-extern tan function) ;; (function float float) +;; (define-extern atan0 function) ;; (function float float float) +;; (define-extern atan-series-rad function) ;; (function float float) +;; (define-extern atan-rad function) ;; (function float float) +;; (define-extern sign-bit function) ;; (function int int) +;; (define-extern sign-float function) ;; (function float float) +;; (define-extern sign function) ;; (function float float) +;; (define-extern atan2-rad function) ;; (function float float float) +;; (define-extern atan function) ;; (function float float float) +;; (define-extern asin function) ;; (function float float) +;; (define-extern acos function) ;; (function float float) +;; (define-extern acos-rad function) ;; (function float float) +;; (define-extern sinerp function) ;; (function float float float float) +;; (define-extern sinerp-clamp function) ;; (function float float float float) +;; (define-extern coserp function) ;; (function float float float float) +;; (define-extern coserp-clamp function) ;; (function float float float float) +;; (define-extern coserp180 function) ;; (function float float float float) +;; (define-extern coserp180-clamp function) ;; (function float float float float) +;; (define-extern ease-in-out function) ;; (function int int float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; math-fx ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; res-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype res-tag (uint128) +;; () +;; :flag-assert #x900000010 +;; ) + +#| +(deftype res-lump (basic) + ((length int32 :offset-assert 4) + (allocated-length int16 :offset-assert 8) + (flags uint16 :offset-assert 10) ;; res-lump-flags + (data-base pointer :offset-assert 12) ;; guessed by decompiler + (data-top pointer :offset-assert 16) ;; guessed by decompiler + (data-size int32 :offset-assert 20) + (extra entity-links :offset-assert 24) ;; guessed by decompiler + (tag (pointer res-tag) :offset-assert 28) ;; guessed by decompiler + ) + :method-count-assert 22 + :size-assert #x20 + :flag-assert #x1600000020 + ;; field extra uses ~A with a signed load. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int int) _type_) + (res-lump-method-9 () none) ;; 9 ;; (get-property-data (_type_ symbol symbol float pointer (pointer res-tag) pointer) pointer) + (res-lump-method-10 () none) ;; 10 ;; (get-property-struct (_type_ symbol symbol float structure (pointer res-tag) pointer) structure) + (res-lump-method-11 () none) ;; 11 ;; (get-property-value (_type_ symbol symbol float uint128 (pointer res-tag) pointer) uint128) + (res-lump-method-12 () none) ;; 12 ;; (get-property-value-float (_type_ symbol symbol float float (pointer res-tag) pointer) float) + (res-lump-method-13 () none) ;; 13 ;; (get-tag-index-data (_type_ int) pointer) + (res-lump-method-14 () none) ;; 14 ;; (get-tag-data (_type_ res-tag) pointer) + (res-lump-method-15 () none) ;; 15 ;; (allocate-data-memory-for-tag! (_type_ res-tag) res-tag) + (res-lump-method-16 () none) ;; 16 ;; (sort! (_type_) _type_) + (res-lump-method-17 () none) ;; 17 ;; (add-data! (_type_ res-tag pointer) res-lump) + (res-lump-method-18 () none) ;; 18 ;; (add-32bit-data! (_type_ res-tag object) res-lump) + (res-lump-method-19 () none) ;; 19 ;; (lookup-tag-idx (_type_ symbol symbol float) res-tag-pair) + (res-lump-method-20 () none) ;; 20 ;; (make-property-data (_type_ float res-tag-pair pointer) pointer) + (res-lump-method-21 () none) ;; 21 ;; (get-curve-data! (_type_ curve symbol symbol float) symbol) + ) + ) +|# + +;; (define-extern *res-key-string* object) ;; string + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gsound-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sound-stream-name (structure) + ((name uint8 48 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +;; (deftype sound-id (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype sound-bank-id (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype sound-name (uint128) +;; () +;; :flag-assert #x900000010 +;; ) + +#| +(deftype sound-rpc-cmd (structure) + ((rsvd1 uint16 :offset-assert 0) + (command uint16 :offset-assert 2) ;; sound-command + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype sound-play-params (structure) + ((mask uint8 :offset-assert 0) ;; uint16 + (group uint8 :offset-assert 1) + (volume int16 :offset-assert 2) ;; int32 + (pitch-mod int16 :offset-assert 4) + (bend int16 :offset-assert 6) + (pan int16 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xa + :flag-assert #x90000000a + ) +|# + +#| +(deftype sound-rpc-bank-cmd (sound-rpc-cmd) + ((bank-name uint128 :offset-assert 16) ;; sound-name + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sound-rpc-test-cmd (sound-rpc-cmd) + ((ee-addr pointer :offset-assert 4) ;; guessed by decompiler + (param0 uint16 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xa + :flag-assert #x90000000a + ) +|# + +#| +(deftype sound-rpc-sound-cmd (sound-rpc-cmd) + ((id sound-id :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-group-cmd (sound-rpc-cmd) + ((group uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-load-bank (sound-rpc-bank-cmd) + ((ee-addr pointer :offset-assert 32) ;; guessed by decompiler + (mode uint32 :offset-assert 36) + (priority uint32 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype sound-rpc-load-music (sound-rpc-bank-cmd) + () + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sound-rpc-unload-bank (sound-rpc-cmd) + ((mode uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-play (sound-rpc-sound-cmd) + ((name uint128 :offset-assert 16) ;; sound-name + (params sound-play-params :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x2a + :flag-assert #x90000002a + ) +|# + +#| +(deftype sound-rpc-pause-sound (sound-rpc-sound-cmd) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-stop-sound (sound-rpc-sound-cmd) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-continue-sound (sound-rpc-sound-cmd) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-set-param (sound-rpc-sound-cmd) + ((params sound-play-params :inline :offset-assert 16) + (auto-time int32 :offset-assert 28) + (auto-from int32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype sound-rpc-set-master-volume (sound-rpc-group-cmd) + ((volume int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype sound-rpc-pause-group (sound-rpc-group-cmd) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-stop-group (sound-rpc-group-cmd) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-continue-group (sound-rpc-group-cmd) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-cancel-dgo (sound-rpc-group-cmd) + ((id uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype sound-rpc-get-irx-version (sound-rpc-cmd) + ((major uint32 :offset-assert 4) + (minor uint32 :offset-assert 8) + (ee-addr pointer :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype sound-rpc-set-language (sound-rpc-cmd) + ((lang uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-set-stereo-mode (sound-rpc-cmd) + ((mode int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-set-reverb (sound-rpc-cmd) + ((core uint8 :offset-assert 4) + (reverb int32 :offset-assert 8) + (left uint32 :offset-assert 12) + (right uint32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype sound-rpc-set-ear-trans (sound-rpc-cmd) + ((ear-trans1 int32 3 :offset-assert 4) ;; guessed by decompiler + (ear-trans0 int32 3 :offset-assert 16) ;; guessed by decompiler + (cam-trans int32 3 :offset-assert 28) ;; guessed by decompiler + (cam-forward int32 3 :offset-assert 40) ;; guessed by decompiler + (cam-left int32 3 :offset-assert 52) ;; guessed by decompiler + (cam-scale int32 :offset-assert 64) + (cam-inverted int32 :offset-assert 68) + ) + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ) +|# + +#| +(deftype sound-rpc-shutdown (sound-rpc-cmd) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype sound-rpc-set-fps (sound-rpc-cmd) + ((fps uint8 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x5 + :flag-assert #x900000005 + ) +|# + +#| +(deftype sound-rpc-set-globals (sound-rpc-cmd) + ((cam-inverted uint8 :offset-assert 4) + (music-pitch-mod int16 :offset-assert 6) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-list-sounds (sound-rpc-cmd) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype sound-rpc-unload-music (sound-rpc-cmd) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype sound-rpc-union (structure) + ((data uint32 12 :offset-assert 0) ;; guessed by decompiler + (load-bank sound-rpc-load-bank :offset-assert 0) + (unload-bank sound-rpc-unload-bank :offset-assert 0) + (play sound-rpc-play :offset-assert 0) + (pause-sound sound-rpc-pause-sound :offset-assert 0) + (stop-sound sound-rpc-stop-sound :offset-assert 0) + (continue-sound sound-rpc-continue-sound :offset-assert 0) + (set-param sound-rpc-set-param :offset-assert 0) + (set-master-volume sound-rpc-set-master-volume :offset-assert 0) + (pause-group sound-rpc-pause-group :offset-assert 0) + (stop-group sound-rpc-stop-group :offset-assert 0) + (continue-group sound-rpc-continue-group :offset-assert 0) + (get-irx-version sound-rpc-get-irx-version :offset-assert 0) + (set-language sound-rpc-set-language :offset-assert 0) + (set-reverb sound-rpc-set-reverb :offset-assert 0) + (set-fps sound-rpc-set-fps :offset-assert 0) + (set-globals sound-rpc-set-globals :offset-assert 0) + (shutdown sound-rpc-shutdown :offset-assert 0) + (list-sounds sound-rpc-list-sounds :offset-assert 0) + (unload-music sound-rpc-unload-music :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype sound-info (structure) + ((flags uint32 :offset-assert 0) + (num-instances uint32 :offset-assert 4) + (index uint32 :offset-assert 8) + (name uint128 :offset-assert 16) + (group uint8 :offset-assert 32) + (fo-power float :offset-assert 36) + (fo-min float :offset-assert 40) + (fo-max float :offset-assert 44) + (volume float :offset-assert 48) + (pan float :offset-assert 52) + (priority int8 :offset-assert 56) + (duck-amount float :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype sound-spec (sound-play-params) + ((auto-time int32 :offset-assert 12) + (auto-from int32 :offset-assert 16) + (info sound-info :offset-assert 20) + (info-index uint32 :offset-assert 24) + (trans vector :inline :offset-assert 32) ;; int32 4 + (flags uint16 :offset-assert 48) + (fo-min float :offset-assert 52) ;; int16 + (fo-max float :offset-assert 56) ;; int16 + (fo-power float :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype sound-handle (structure) + ((proc uint64 :offset-assert 0) + (flags uint64 :offset-assert 8) + (fader-cur float :offset-assert 16) + (fader-targ float :offset-assert 20) + (dist float :offset-assert 24) + (viewport int8 :offset-assert 28) + (num-instances uint8 :offset-assert 29) + (svc uint8 :offset-assert 30) + (index uint8 :offset-assert 31) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sound-instance (sound-spec) + ((last-update uint64 :offset-assert 64) + (joint uint8 :offset-assert 72) + (sh sound-handle :offset-assert 76) + (id uint32 :offset-assert 80) + (pan-angle float :offset-assert 84) + (volumef float :offset-assert 88) + ) + :method-count-assert 9 + :size-assert #x5c + :flag-assert #x90000005c + ) +|# + +#| +(deftype sound-bank-state (structure) + ((name symbol :offset-assert 0) ;; guessed by decompiler + (mode sound-bank-mode :offset-assert 4) ;; guessed by decompiler + (high basic :offset-assert 8) + (str-name basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype sound-iop-info (structure) + ((freemem uint32 :offset-assert 0) + (freemem2 uint32 :offset-assert 4) + (nocd uint32 :offset-assert 8) + (dirtycd uint32 :offset-assert 12) + (chinfo uint8 48 :offset-assert 16) ;; guessed by decompiler + (id-info UNKNOWN 48 :offset-assert 64) + (pad UNKNOWN 2 :offset-assert 256) + (music-position integer :offset-assert 264) + (music-status uint32 :offset-assert 268) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (stream-position uint32 4 :offset-assert 320) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (stream-status stream-status 4 :offset-assert 336) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (stream-name sound-stream-name 4 :offset-assert 352) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (stream-id sound-id 4 :offset-assert 544) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x2c0 + :flag-assert #x9000002c0 + ) +|# + +#| +(deftype ambient-sound (basic) + ((playing-id sound-id :offset-assert 4) ;; guessed by decompiler + (entity entity :offset-assert 8) ;; guessed by decompiler + (sound-count int32 :offset-assert 12) + (spec sound-spec :inline :offset-assert 16) + (play-time uint64 :offset-assert 80) ;; time-frame + (time-base uint64 :offset-assert 88) ;; time-frame + (time-random uint64 :offset-assert 96) ;; time-frame + ) + :method-count-assert 17 + :size-assert #x68 + :flag-assert #x1100000068 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type basic vector float) _type_) + (ambient-sound-method-9 () none) ;; 9 ;; (update! (_type_) int) + (ambient-sound-method-10 () none) ;; 10 ;; (change-sound! (_type_ sound-name) int) + (ambient-sound-method-11 () none) ;; 11 ;; (update-trans! (_type_ vector) int) + (ambient-sound-method-12 () none) ;; 12 ;; (update-vol! (_type_ float) int) + (ambient-sound-method-13 () none) ;; 13 ;; (update-pitch-mod! (_type_ float) none) + (ambient-sound-method-14 () none) ;; 14 ;; (set-falloff-far! (_type_ float) none) + (ambient-sound-method-15 () none) ;; 15 ;; (set-falloff-mode! (_type_ int) none) + (ambient-sound-method-16 () none) ;; 16 ;; (stop! (_type_) int) + ) + ) +|# + +;; (define-extern *debug-sound-sliders* object) +;; (define-extern *music-volume-ducked-by-sound* object) +;; (define-extern *music-lock* object) +;; (define-extern *current-sound-id* object) ;; sound-id +;; (define-extern *sound-iop-info* object) ;; sound-iop-info +;; (define-extern *jukebox-time* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sound-info ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sound-info* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; timer-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype timer-mode (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype timer-bank (structure) + ((count uint32 :offset-assert 0) + (mode timer-mode :offset-assert 16) ;; guessed by decompiler + (comp uint32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype timer-hold-bank (timer-bank) + ((hold uint32 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype stopwatch (basic) + ((prev-time-elapsed uint64 :offset-assert 8) ;; time-frame + (start-time uint64 :offset-assert 16) ;; time-frame + (begin-level int32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype sce-cd-clock (structure) + ((stat uint8 :offset-assert 0) + (second uint8 :offset-assert 1) + (minute uint8 :offset-assert 2) + (hour uint8 :offset-assert 3) + (pad uint8 :offset-assert 4) + (day uint8 :offset-assert 5) + (month uint8 :offset-assert 6) + (year uint8 :offset-assert 7) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern *ticks-per-frame* object) ;; int +;; (define-extern timer-init function) ;; (function timer-bank timer-mode int) +;; (define-extern bcd-conv function) +;; (define-extern *month-days* object) +;; (define-extern is-leap function) +;; (define-extern mdy-to-day function) +;; (define-extern rtclock-to-secs function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vif-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vif-stat (uint32) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (deftype vif-fbrst (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype vif-err (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype vif-bank (structure) + ((stat uint32 :offset-assert 0) + (fbrst uint32 :offset-assert 16) + (err vif-err :offset-assert 32) ;; guessed by decompiler + (mark uint32 :offset-assert 48) + (cycle uint32 :offset-assert 64) + (mode uint32 :offset-assert 80) + (num uint32 :offset-assert 96) + (mask uint32 :offset-assert 112) + (code uint32 :offset-assert 128) + (itops uint32 :offset-assert 144) + (base uint32 :offset-assert 160) + (offset uint32 :offset-assert 176) + (tops uint32 :offset-assert 192) + (itop uint32 :offset-assert 208) + (top uint32 :offset-assert 224) + (r0 uint32 :offset-assert 256) + (r1 uint32 :offset-assert 272) + (r2 uint32 :offset-assert 288) + (r3 uint32 :offset-assert 304) + (c0 uint32 :offset-assert 320) + (c1 uint32 :offset-assert 336) + (c2 uint32 :offset-assert 352) + (c3 uint32 :offset-assert 368) + ) + :method-count-assert 9 + :size-assert #x174 + :flag-assert #x900000174 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dma-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dma-chcr (uint32) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype dma-bank (structure) + ((chcr dma-chcr :offset-assert 0) ;; guessed by decompiler + (madr uint32 :offset-assert 16) + (qwc uint32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype dma-bank-source (dma-bank) + ((tadr uint32 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype dma-bank-vif (dma-bank-source) + ((as0 uint32 :offset-assert 64) + (as1 uint32 :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x54 + :flag-assert #x900000054 + ) +|# + +#| +(deftype dma-bank-spr (dma-bank-source) + ((sadr uint32 :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x84 + :flag-assert #x900000084 + ) +|# + +;; (deftype dma-ctrl (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype dma-enable (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype dma-sqwc (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype dma-bank-control (structure) + ((ctrl dma-ctrl :offset-assert 0) ;; guessed by decompiler + (stat uint32 :offset-assert 16) + (pcr uint32 :offset-assert 32) + (sqwc dma-sqwc :offset-assert 48) ;; guessed by decompiler + (rbsr uint32 :offset-assert 64) + (rbor uint32 :offset-assert 80) + (stadr uint32 :offset-assert 96) + (enabler uint32 :offset-assert 5408) + (enablew uint32 :offset-assert 5520) + ) + :method-count-assert 9 + :size-assert #x1594 + :flag-assert #x900001594 + ) +|# + +#| +(deftype vu-code-block (basic) + ((name basic :offset-assert 4) + (code uint32 :offset-assert 8) + (size int32 :offset-assert 12) + (dest-address uint32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +;; (deftype vu-stat (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +#| +(deftype dma-tag (uint64) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype dma-bucket (structure) + ((tag uint64 :offset-assert 0) ;; dma-tag + (last (pointer dma-tag) :offset-assert 8) ;; guessed by decompiler + (dummy uint32 :offset-assert 12) + (next uint32 :offset-assert 4) + (clear uint64 :offset-assert 8) + (vif0 uint32 :offset-assert 8) + (vif1 uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (deftype vif-mask (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype vif-stcycl-imm (uint16) +;; () +;; :flag-assert #x900000002 +;; ) + +;; (deftype vif-unpack-imm (uint16) +;; () +;; :flag-assert #x900000002 +;; ) + +#| +(deftype vif-tag (uint32) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern dma-sync-fast function) ;; (function dma-bank none) +;; (define-extern dma-send-no-scratch function) ;; (function dma-bank uint32 uint32 none) +;; (define-extern dma-sync-with-count function) ;; (function dma-bank (pointer int32) int) +;; (define-extern dma-count-until-done function) ;; (function dma-bank (pointer int32) int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; video-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype video-params (structure) + ((set-video-mode symbol :offset-assert 0) ;; guessed by decompiler + (reset-video-mode symbol :offset-assert 4) ;; guessed by decompiler + (relative-x-scale float :offset-assert 16) + (display-dx int32 :offset-assert 20) + (display-dy int32 :offset-assert 24) + (display-sy int32 :offset-assert 28) + (relative-x-scale-reciprical float :offset-assert 32) + (smode2 uint64 :offset-assert 40) + (aspect-ratio basic :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +;; (define-extern *video-params* object) ;; video-params + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vu1-user-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dma-foreground-sink (basic) + ((bucket int32 :offset-assert 4) ;; bucket-id + (foreground-texture-page int8 :offset-assert 8) ;; tpage-category + (foreground-texture-level int8 :offset-assert 9) + (foreground-output-bucket int8 :offset-assert 10) + ) + :method-count-assert 9 + :size-assert #xb + :flag-assert #x90000000b + ) +|# + +#| +(deftype generic-bucket-state (structure) + ((gifbuf-adr uint32 :offset-assert 0) + (inbuf-adr uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype generic-dma-foreground-sink (dma-foreground-sink) + ((state generic-bucket-state :inline :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; profile-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype profile-segment (structure) + ((name symbol :offset-assert 0) ;; guessed by decompiler + (start-time int16 :offset-assert 4) + (end-time int16 :offset-assert 6) + (count uint8 :offset-assert 8) + (vu-count uint8 :offset-assert 9) + (depth uint16 :offset-assert 10) + (color rgba :offset-assert 12) ;; guessed by decompiler + (code-time uint16 :offset-assert 4) + (vu-time uint16 :offset-assert 6) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype profile-collapse (structure) + ((count int32 :offset-assert 0) + (data profile-segment 48 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x304 + :flag-assert #x900000304 + ) +|# + +#| +(deftype profile-segment-array (basic) + ((count int16 :offset-assert 4) + (depth int8 :offset-assert 6) + (max-depth int8 :offset-assert 7) + (base-time int16 :offset-assert 8) + (segment profile-segment 9 :offset-assert 12) ;; guessed by decompiler + (data profile-segment 2100 :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #x8370 + :flag-assert #xd00008370 + (:methods + (profile-segment-array-method-9 () none) ;; 9 ;; (get-total-time (_type_) int) + (profile-segment-array-method-10 () none) ;; 10 ;; (start-frame! (_type_) none) + (profile-segment-array-method-11 () none) ;; 11 ;; (start-segment! (_type_ symbol rgba) none) + (profile-segment-array-method-12 () none) ;; 12 ;; (end-segment! (_type_) none) + ) + ) +|# + +#| +(deftype profile-array (structure) + ((data profile-segment-array 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x8 + :flag-assert #xc00000008 + (:methods + (profile-array-method-9 () none) ;; 9 ;; (postprocess-data! (_type_) none) + (profile-array-method-10 () none) ;; 10 ;; (draw-bars! (_type_ dma-buffer int) none) + (profile-array-method-11 () none) ;; 11 ;; (draw-text! (_type_) none) + ) + ) +|# + +#| +(deftype profile-spec (structure) + ((name symbol :offset-assert 0) ;; guessed by decompiler + (color rgba :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern *profile-gap-color* object) ;; rgba +;; (define-extern *profile-all-color* object) ;; rgba +;; (define-extern *profile-blit-color* object) ;; rgba +;; (define-extern *profile-sky-color* object) ;; rgba +;; (define-extern *profile-ocean-color* object) ;; rgba +;; (define-extern *profile-tfrag-color* object) ;; rgba +;; (define-extern *profile-texture-color* object) ;; rgba +;; (define-extern *profile-tie-color* object) ;; rgba +;; (define-extern *profile-generic-color* object) ;; rgba +;; (define-extern *profile-merc-color* object) ;; rgba +;; (define-extern *profile-shrubbery-color* object) ;; rgba +;; (define-extern *profile-particle-color* object) ;; rgba +;; (define-extern *profile-debug-color* object) ;; rgba +;; (define-extern *profile-other-color* object) ;; rgba +;; (define-extern *profile-joints-color* object) ;; rgba +;; (define-extern *profile-draw-hook-color* object) ;; rgba +;; (define-extern *profile-background-color* object) ;; rgba +;; (define-extern *profile-foreground-color* object) ;; rgba +;; (define-extern *profile-bones-color* object) ;; rgba +;; (define-extern *profile-actors-color* object) ;; rgba +;; (define-extern *profile-collide-color* object) ;; rgba +;; (define-extern *profile-nav-color* object) ;; rgba +;; (define-extern *profile-camera-color* object) ;; rgba +;; (define-extern *profile-gs-sync-color* object) ;; rgba +;; (define-extern *profile-array* object) ;; profile-array +;; (define-extern *profile-collapse* object) ;; profile-collapse +;; (define-extern *profile-interrupt-segment* object) ;; profile-segment-array +;; (define-extern *profile-interrupt-start* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dma-buffer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dma-packet (structure) + ((dma uint64 :offset-assert 0) ;; dma-tag + (vif0 vif-tag :offset-assert 8) ;; guessed by decompiler + (vif1 vif-tag :offset-assert 12) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype dma-packet-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data dma-packet :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype dma-gif (structure) + ((gif uint64 2 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype dma-gif-packet (structure) + ((dma-vif dma-packet :inline :offset-assert 0) + (gif uint64 2 :offset-assert 16) ;; guessed by decompiler + (quad uint128 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype dma-buffer (basic) + ((allocated-length int32 :offset-assert 4) + (base pointer :offset-assert 8) ;; guessed by decompiler + (end pointer :offset-assert 12) ;; guessed by decompiler + (real-buffer-end int32 :offset-assert 16) + (data uint64 1 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +;; (define-extern dma-buffer-inplace-new function) ;; (function dma-buffer int dma-buffer) +;; (define-extern dma-buffer-length function) ;; (function dma-buffer int) +;; (define-extern dma-buffer-free function) ;; (function dma-buffer int) +;; (define-extern dma-buffer-add-vu-function function) ;; (function dma-buffer vu-function int symbol) +;; (define-extern dma-buffer-send function) ;; (function dma-bank dma-buffer none) +;; (define-extern dma-buffer-send-chain function) ;; (function dma-bank-source dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dma-bucket ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern dma-buffer-add-buckets function) ;; (function dma-buffer int (inline-array dma-bucket)) +;; (define-extern dma-buffer-patch-buckets function) ;; (function dma-bucket int dma-bucket) +;; (define-extern dma-bucket-insert-tag function) ;; (function (inline-array dma-bucket) bucket-id pointer (pointer dma-tag) pointer) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dma-disasm ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vif-disasm-element (structure) + ((mask uint32 :offset-assert 0) + (tag vif-cmd-32 :offset-assert 4) ;; guessed by decompiler + (val uint32 :offset-assert 8) + (print uint32 :offset-assert 12) + (string1 string :offset-assert 16) ;; guessed by decompiler + (string2 string :offset-assert 20) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern *vif-disasm-table* array) ;; (array vif-disasm-element) +;; (define-extern disasm-vif-details function) ;; (function symbol (pointer uint8) vif-cmd int symbol) +;; (define-extern disasm-vif-tag function) ;; (function (pointer vif-tag) int symbol symbol int) +;; (define-extern disasm-dma-tag function) ;; (function dma-tag symbol none) +;; (define-extern *dma-disasm* object) ;; symbol +;; (define-extern disasm-dma-list function) ;; (function dma-packet symbol symbol symbol int symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; view-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype view (basic) + ((index int8 :offset-assert 4) + (control-scheme uint8 :offset-assert 5) + (camera basic :offset-assert 8) + (camera-combiner basic :offset-assert 12) + (target basic :offset-assert 16) + (math-camera basic :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern *view-count* object) +;; (define-extern *view-assert* object) +;; (define-extern *views* array) +;; (define-extern *view-context-stack* array) +;; (define-extern *view-context-stack-ptr* object) +;; (define-extern *view-default* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pad ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype scf-time (structure) + ((stat uint8 :offset-assert 0) + (second uint8 :offset-assert 1) + (minute uint8 :offset-assert 2) + (hour uint8 :offset-assert 3) + (week uint8 :offset-assert 4) + (day uint8 :offset-assert 5) + (month uint8 :offset-assert 6) + (year uint8 :offset-assert 7) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(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 + ) +|# + +#| +(deftype mouse-info (basic) + ((active symbol :offset-assert 4) ;; guessed by decompiler + (cursor symbol :offset-assert 8) ;; guessed by decompiler + (valid symbol :offset-assert 12) ;; guessed by decompiler + (id uint8 :offset-assert 16) + (status uint16 :offset-assert 18) + (button0 uint16 :offset-assert 20) + (deltax int8 :offset-assert 22) + (deltay int8 :offset-assert 23) + (wheel uint8 :offset-assert 24) + (change-time uint64 :offset-assert 32) ;; time-frame + (button0-abs mouse-buttons 3 :offset-assert 40) ;; guessed by decompiler + (button0-shadow-abs mouse-buttons 1 :offset-assert 52) ;; guessed by decompiler + (button0-rel mouse-buttons 3 :offset-assert 56) ;; guessed by decompiler + (pos vector 2 :offset-assert 80) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (posx float :offset-assert 80) + (posy float :offset-assert 84) + (oldposx float :offset-assert 96) + (oldposy float :offset-assert 100) + (speedx float :offset-assert 92) + (speedy float :offset-assert 108) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype keybd-info (basic) + ((active symbol :offset-assert 4) ;; guessed by decompiler + (valid symbol :offset-assert 8) ;; guessed by decompiler + (kdata uint8 16 :offset-assert 12) ;; guessed by decompiler + (keys uint8 256 :offset-assert 28) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x11c + :flag-assert #x90000011c + ) +|# + +;; (define-extern *cheat-mode* object) ;; 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* object) ;; cpad-list +;; (define-extern *cpad-debug* object) ;; symbol +;; (define-extern service-cpads function) ;; (function cpad-list) +;; (define-extern buzz-stop! function) ;; (function int none) +;; (define-extern *mouse* object) ;; mouse-info +;; (define-extern service-mouse function) ;; (function none) +;; (define-extern *keybd* object) ;; keybd-info +;; (define-extern service-keybd function) ;; (function none) +;; (define-extern *usb-to-ascii-map* object) +;; (define-extern *keybd-last-key* object) +;; (define-extern *keybd-hold-ct* object) +;; (define-extern *keybd-ungetc* object) +;; (define-extern keybd-read-ascii function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype gs-pmode (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-smode2 (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-display-fb (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-display (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-bgcolor (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-csr (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +#| +(deftype gs-bank (structure) + ((pmode uint64 :offset-assert 0) ;; gs-pmode + (smode2 uint64 :offset-assert 32) ;; gs-smode2 + (dspfb1 uint64 :offset-assert 112) ;; gs-display-fb + (display1 uint64 :offset-assert 128) ;; gs-display + (dspfb2 uint64 :offset-assert 144) ;; gs-display-fb + (display2 uint64 :offset-assert 160) ;; gs-display + (extbuf uint64 :offset-assert 176) + (extdata uint64 :offset-assert 192) + (extwrite uint64 :offset-assert 208) + (bgcolor uint64 :offset-assert 224) ;; gs-bgcolor + (csr uint64 :offset-assert 4096) ;; gs-csr + (imr uint64 :offset-assert 4112) + (busdir uint64 :offset-assert 4160) + ) + :method-count-assert 9 + :size-assert #x1048 + :flag-assert #x900001048 + ) +|# + +;; (deftype gs-frame (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-zbuf (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-xy-offset (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-scissor (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-prmode-cont (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-color-clamp (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-dthe (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-test (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-prim (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-rgbaq (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-xyz (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-uv (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-st (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-xyzf (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +#| +(deftype gs-adcmd (structure) + ((word uint32 4 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + (data uint64 :offset-assert 0) + (cmds uint64 :offset-assert 8) ;; gs-reg64 + (cmd uint8 :offset-assert 8) + (x uint32 :offset-assert 0) + (y uint32 :offset-assert 4) + (z uint32 :offset-assert 8) + (w uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (deftype gs-trxpos (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-trxreg (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-trxdir (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-bitbltbuf (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-tex0 (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-tex1 (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-texa (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-texclut (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-miptbp (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +#| +(deftype gs-alpha (uint64) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (deftype gs-clamp (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +#| +(deftype gs-fog (uint64) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype gs-fogcol (uint64) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (deftype gif-ctrl (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-mode (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-stat (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-cnt (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-p3cnt (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-p3tag (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype gif-bank (structure) + ((ctrl gif-ctrl :offset-assert 0) ;; guessed by decompiler + (mode gif-mode :offset-assert 16) ;; guessed by decompiler + (stat gif-stat :offset-assert 32) ;; guessed by decompiler + (tag0 uint32 :offset-assert 64) + (tag1 uint32 :offset-assert 80) + (tag2 uint32 :offset-assert 96) + (tag3 uint32 :offset-assert 112) + (cnt gif-cnt :offset-assert 128) ;; guessed by decompiler + (p3cnt gif-p3cnt :offset-assert 144) ;; guessed by decompiler + (p3tag gif-p3tag :offset-assert 160) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xa4 + :flag-assert #x9000000a4 + ) +|# + +;; (deftype gif-tag-prim (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-tag-count (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-tag64 (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +#| +(deftype gif-tag (uint128) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gs-gif-tag (structure) + ((qword qword :inline :offset-assert 0) ;; uint128 + (dword uint64 2 :offset-assert 0) ;; guessed by decompiler + (word uint32 4 :offset-assert 0) ;; guessed by decompiler + (tag uint64 :offset-assert 0) ;; gif-tag64 + (regs uint64 :offset-assert 8) ;; gif-tag-regs + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gif-packet (basic) + ((reg-count int32 :offset-assert 4) + (gif-tag0 uint128 :offset-assert 16) + (args uint64 1 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype draw-context (basic) + ((orgx int32 :offset-assert 4) + (orgy int32 :offset-assert 8) + (orgz int32 :offset-assert 12) + (width int32 :offset-assert 16) + (height int32 :offset-assert 20) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype gs-packed-rgba (vector4w) + ((r int32 :offset-assert 0) + (g int32 :offset-assert 4) + (b int32 :offset-assert 8) + (a int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gs-packed-xyzw (vector) + ((ix int32 :offset-assert 0) + (iy int32 :offset-assert 4) + (iz int32 :offset-assert 8) + (iw int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gs-packed-stq (vector) + ((tex-s float :offset-assert 0) + (tex-t float :offset-assert 4) + (tex-q float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gs-packed-uv (vector) + ((u int16 :offset-assert 0) + (v int16 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gs-packed-gt (structure) + ((stq gs-packed-stq :inline :offset-assert 0) + (rgba gs-packed-rgba :inline :offset-assert 16) + (xyzw gs-packed-xyzw :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype gs-packed-gt4 (structure) + ((data gs-packed-gt 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +;; (define-extern psm-size function) ;; (function gs-psm int) +;; (define-extern psm-page-height function) ;; (function gs-psm int) +;; (define-extern psm->string function) ;; (function gs-psm string) +;; (define-extern *fog-color* object) ;; rgba +;; (define-extern open-gif-packet function) ;; (function gif-packet gif-packet) +;; (define-extern add-reg-gif-packet function) ;; (function gif-packet int int none) +;; (define-extern close-gif-packet function) ;; (function gif-packet int gif-packet) +;; (define-extern draw-context-set-xy function) ;; (function draw-context int int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; display-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype display-frame (basic) + ((buffer dma-buffer 11 :offset-assert 4) ;; guessed by decompiler + (calc-buf dma-buffer :offset-assert 8) ;; guessed by decompiler + (vu1-buf dma-buffer :offset-assert 8) ;; guessed by decompiler + (debug-buf dma-buffer :offset-assert 36) ;; guessed by decompiler + (global-buf dma-buffer :offset-assert 40) ;; guessed by decompiler + (bucket-group dma-bucket :offset-assert 44) ;; (inline-array dma-bucket) + (profile-array profile-array :inline :offset-assert 48) + (start-time uint64 :offset-assert 56) + (run-time uint64 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ) +|# + +#| +(deftype display (basic) + ((on-screen int32 :offset-assert 4) + (last-screen int32 :offset-assert 8) + (frames display-frame 2 :offset-assert 12) ;; guessed by decompiler + (bgcolor uint64 :offset-assert 24) ;; gs-bgcolor + (pmode uint64 :offset-assert 32) ;; gs-pmode + (clock clock 22 :offset-assert 40) ;; guessed by decompiler + (session-clock clock :offset-assert 40) ;; guessed by decompiler + (game-clock clock :offset-assert 44) ;; guessed by decompiler + (base-clock clock :offset-assert 48) ;; guessed by decompiler + (real-clock clock :offset-assert 52) ;; guessed by decompiler + (frame-clock clock :offset-assert 56) ;; guessed by decompiler + (real-frame-clock clock :offset-assert 60) ;; guessed by decompiler + (target-clock clock :offset-assert 64) ;; guessed by decompiler + (entity-clock clock :offset-assert 68) ;; guessed by decompiler + (part-clock clock :offset-assert 72) ;; guessed by decompiler + (bg-clock clock :offset-assert 76) ;; guessed by decompiler + (camera-clock clock :offset-assert 80) ;; guessed by decompiler + (total-game-clock clock :offset-assert 84) ;; guessed by decompiler + (user0-clock clock :offset-assert 88) ;; guessed by decompiler + (user1-clock clock :offset-assert 92) ;; guessed by decompiler + (user2-clock clock :offset-assert 96) ;; guessed by decompiler + (user3-clock clock :offset-assert 100) ;; guessed by decompiler + (user4-clock clock :offset-assert 104) ;; guessed by decompiler + (user5-clock clock :offset-assert 108) ;; guessed by decompiler + (user6-clock clock :offset-assert 112) ;; guessed by decompiler + (user7-clock clock :offset-assert 116) ;; guessed by decompiler + (user8-clock clock :offset-assert 120) ;; guessed by decompiler + (user9-clock clock :offset-assert 124) ;; guessed by decompiler + (time-factor float :offset-assert 128) + (dog-ratio float :offset-assert 132) + (vblank-start-time int64 2 :offset-assert 136) ;; guessed by decompiler + (total-run-time uint64 :offset-assert 152) + (run-half-speed symbol :offset-assert 160) ;; guessed by decompiler + (vu1-enable-user uint64 :offset-assert 168) ;; vu1-renderer-mask + (vu1-enable-user-menu uint64 :offset-assert 176) ;; vu1-renderer-mask + (force-sync uint32 :offset-assert 184) + (mem-reserve-size uint32 :offset-assert 188) + (dma-buffer-overflow symbol :offset-assert 192) ;; guessed by decompiler + (default-end-buffer basic :offset-assert 196) + (init-buffer-zbuf-on basic :offset-assert 200) + (init-buffer-zbuf-off basic :offset-assert 204) + ) + :method-count-assert 10 + :size-assert #xd0 + :flag-assert #xa000000d0 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int int int int int) _type_) + (display-method-9 () none) ;; 9 ;; (set-time-ratios (_type_ float) float) + ) + ) +|# + +;; (define-extern *pre-draw-hook* object) ;; (function object none) +;; (define-extern *post-draw-hook* object) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; geometry ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern vector-flatten! function) ;; (function vector vector vector vector) +;; (define-extern vector-reflect! function) ;; (function vector vector vector vector) +;; (define-extern vector-reflect-flat! function) ;; (function vector vector vector vector) +;; (define-extern vector-reflect-flat-above! function) ;; (function vector vector vector vector) +;; (define-extern vector-reflect-flat-gravity! function) ;; (function vector vector vector vector vector) +;; (define-extern vector-segment-distance-point! function) ;; (function vector vector vector vector float) +;; (define-extern vector-segment-xz-distance-point! function) ;; (function vector vector vector vector float) +;; (define-extern vector-line-distance function) ;; (function vector vector vector float) +;; (define-extern vector-line-distance-point! function) ;; (function vector vector vector vector float) +;; (define-extern vector-line-xz-distance-point! function) ;; (function vector vector vector vector float) +;; (define-extern vector-segment-overlap function) ;; (function vector vector vector float) +;; (define-extern line-sphere-intersection? function) ;; (function vector vector vector symbol) +;; (define-extern nearest-dist2-between-moving-points function) ;; (function vector vector vector vector float float) +;; (define-extern vector-orient-by-quat! function) ;; (function vector vector quaternion vector) +;; (define-extern vector-inv-orient-by-quat! function) ;; (function vector vector quaternion vector) +;; (define-extern vector-cap-rotation! function) +;; (define-extern vector-interp-angle! function) +;; (define-extern forward-down->inv-matrix function) ;; (function matrix vector vector matrix) +;; (define-extern forward-down-nopitch->inv-matrix function) ;; (function matrix vector vector matrix) +;; (define-extern forward-up->inv-matrix function) ;; (function matrix vector vector matrix) +;; (define-extern forward-up-nopitch->inv-matrix function) ;; (function matrix vector vector matrix) +;; (define-extern forward-up-nopitch->quaternion function) ;; (function quaternion vector vector quaternion) +;; (define-extern forward-up->quaternion function) ;; (function quaternion vector vector quaternion) +;; (define-extern quaternion-from-two-vectors! function) ;; (function quaternion vector vector quaternion) +;; (define-extern quaternion-from-two-vectors-partial! function) ;; (function quaternion vector vector float quaternion) +;; (define-extern quaternion-from-two-vectors-max-angle! function) ;; (function quaternion vector vector float quaternion) +;; (define-extern quaternion-from-two-vectors-max-angle-partial! function) ;; (function quaternion vector vector float float quaternion) +;; (define-extern matrix-from-two-vectors! function) ;; (function matrix vector vector matrix) +;; (define-extern matrix-from-two-vectors-max-angle! function) ;; (function matrix vector vector float matrix) +;; (define-extern matrix-from-two-vectors-smooth! function) ;; (function matrix vector vector float int matrix) +;; (define-extern matrix-from-two-vectors-the-long-way-smooth! function) ;; (function matrix vector vector float int matrix) +;; (define-extern quaternion-from-two-vectors-smooth! function) ;; (function quaternion vector vector float int quaternion) +;; (define-extern matrix-from-two-vectors-max-angle-partial! function) ;; (function matrix vector vector float float matrix) +;; (define-extern matrix-from-two-vectors-partial-linear! function) ;; (function matrix vector vector float matrix) +;; (define-extern matrix-remove-z-rot function) ;; (function matrix vector matrix) +;; (define-extern matrix-rot-diff! function) ;; (function quaternion matrix matrix float) +;; (define-extern quaternion-seek function) ;; (function quaternion quaternion quaternion float float quaternion) +;; (define-extern vector-deg-seek function) ;; (function vector vector vector float vector) +;; (define-extern vector-deg-slerp function) ;; (function vector vector vector float vector) +;; (define-extern vector-vector-deg-slerp! function) ;; (function vector vector vector float vector vector) +;; (define-extern normal-of-plane function) ;; (function vector vector vector vector vector) +;; (define-extern vector-3pt-cross! function) ;; (function vector vector vector vector vector) +;; (define-extern closest-pt-in-triangle function) ;; (function vector vector matrix vector none) +;; (define-extern point-in-triangle-cross function) ;; (function vector vector vector vector vector symbol) +;; (define-extern point-in-plane-<-point+normal! function) ;; (function vector vector vector vector) +;; (define-extern circle-circle-xz-intersect function) ;; (function sphere sphere vector vector int) +;; (define-extern circle-test function) ;; (function none) +;; (define-extern vector-circle-tangent-new function) ;; (function vector vector vector vector none) +;; (define-extern vector-circle-tangent function) ;; (function vector vector vector vector none) +;; (define-extern find-knot-span function) ;; (function int int float (inline-array vector) int) +;; (define-extern calculate-basis-functions-vector! function) ;; (function vector int float (pointer float) vector) +;; (define-extern curve-evaluate! function) ;; (function vector float (inline-array vector) int (pointer float) int vector) +;; (define-extern curve-get-pos! function) ;; (function vector float curve vector) +;; (define-extern curve-length function) ;; (function curve float) +;; (define-extern curve-copy! function) ;; (function curve curve curve) +;; (define-extern curve-closest-point function) ;; (function curve vector float float int float float) +;; (define-extern vector-plane-distance function) ;; (function vector plane vector float) +;; (define-extern intersect-ray-plane function) ;; (function vector vector vector vector float) +;; (define-extern line-line-find-intersection-xz function) ;; (function vector vector vector vector vector float) +;; (define-extern segment-segment-find-intersection-xz function) ;; (function vector vector vector vector float) +;; (define-extern generate-rand-vector-on-sphere function) ;; (function vector vector) +;; (define-extern ellipsoid-get-foci function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; timer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern timer-count function) ;; (function timer-bank uint) +;; (define-extern disable-irq function) ;; (function none) +;; (define-extern enable-irq function) ;; (function none) +;; (define-extern stopwatch-init function) ;; (function stopwatch int) +;; (define-extern stopwatch-reset function) ;; (function stopwatch int) +;; (define-extern stopwatch-start function) ;; (function stopwatch int) +;; (define-extern stopwatch-stop function) ;; (function stopwatch none) +;; (define-extern stopwatch-begin function) ;; (function stopwatch int) +;; (define-extern stopwatch-end function) ;; (function stopwatch none) +;; (define-extern stopwatch-elapsed-ticks function) ;; (function stopwatch time-frame) +;; (define-extern stopwatch-elapsed-seconds function) ;; (function stopwatch float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vector ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern vector-cross! function) ;; (function vector vector vector vector) +;; (define-extern vector-xz-cross! function) ;; (function vector vector vector vector) +;; (define-extern vector+float! function) ;; (function vector vector float vector) +;; (define-extern vector*! function) ;; (function vector vector vector vector) +;; (define-extern vector+*! function) ;; (function vector vector vector float vector) +;; (define-extern vector-*! function) ;; (function vector vector vector float vector) +;; (define-extern vector/! function) ;; (function vector vector vector vector) +;; (define-extern vector-float*! function) ;; (function vector vector float vector) +;; (define-extern vector-average! function) ;; (function vector vector vector vector) +;; (define-extern vector+float*! function) ;; (function vector vector vector float vector) +;; (define-extern vector--float*! function) ;; (function vector vector vector float vector) +;; (define-extern vector-min! function) ;; (function vector vector vector vector) +;; (define-extern vector-max! function) ;; (function vector vector vector vector) +;; (define-extern vector-float/! function) ;; (function vector vector float vector) +;; (define-extern vector-negate! function) ;; (function vector vector vector) +;; (define-extern vector-negate-in-place! function) ;; (function vector vector) +;; (define-extern vector= function) ;; (function vector vector symbol) +;; (define-extern vector-delta function) ;; (function vector vector float) +;; (define-extern vector-seek! function) ;; (function vector vector float vector) +;; (define-extern vector-smooth-seek! function) ;; (function vector vector float vector) +;; (define-extern vector-seek-2d-xz-smooth! function) ;; (function vector vector float float vector) +;; (define-extern vector-seek-2d-yz-smooth! function) ;; (function vector vector float float vector) +;; (define-extern vector-seek-3d-smooth! function) ;; (function vector vector float float vector) +;; (define-extern seek-with-smooth function) ;; (function float float float float float float) +;; (define-extern vector-identity! function) ;; (function vector vector) +;; (define-extern vector-seconds function) ;; (function vector vector vector) +;; (define-extern vector-seconds! function) ;; (function vector vector) +;; (define-extern vector-v! function) ;; (function vector vector) +;; (define-extern vector-v+! function) ;; (function vector vector vector vector) +;; (define-extern vector-v*float+! function) ;; (function vector vector vector float vector) +;; (define-extern vector-v++! function) ;; (function vector vector vector) +;; (define-extern vector-v*float! function) ;; (function vector vector float vector) +;; (define-extern vector-v*float++! function) ;; (function vector vector float vector) +;; (define-extern vector-to-ups! function) ;; (function vector vector vector) +;; (define-extern vector-from-ups! function) ;; (function vector vector vector) +;; (define-extern vector-length function) ;; (function vector float) +;; (define-extern vector-length-squared function) ;; (function vector float) +;; (define-extern vector-xz-length-squared function) ;; (function vector float) +;; (define-extern vector-xz-length function) ;; (function vector float) +;; (define-extern vector-vector-distance function) ;; (function vector vector float) +;; (define-extern vector-vector-distance-squared function) ;; (function vector vector float) +;; (define-extern vector-vector-xz-distance function) ;; (function vector vector float) +;; (define-extern vector-vector-xy-distance function) ;; (function vector vector float) +;; (define-extern vector-vector-xz-distance-squared function) ;; (function vector vector float) +;; (define-extern vector-vector-planar-distance function) ;; (function vector vector vector float) +;; (define-extern vector-normalize! function) ;; (function vector float vector) +;; (define-extern vector-normalize-ret-len! function) ;; (function vector float float) +;; (define-extern vector-normalize-copy! function) ;; (function vector vector float vector) +;; (define-extern vector-xz-normalize! function) ;; (function vector float vector) +;; (define-extern vector-xz-normalize-copy! function) ;; (function vector vector float vector) +;; (define-extern vector-length-max! function) ;; (function vector float vector) +;; (define-extern vector-xz-length-max! function) ;; (function vector float vector) +;; (define-extern vector-rotate-around-x! function) ;; (function vector vector float vector) +;; (define-extern vector-rotate-around-y! function) ;; (function vector vector float vector) +;; (define-extern vector-rotate90-around-y! function) ;; (function vector vector vector) +;; (define-extern vector-rotate-around-z! function) ;; (function vector vector float vector) +;; (define-extern rotate-y<-vector+vector function) ;; (function vector vector float) +;; (define-extern rotate-x<-vector+vector function) ;; (function vector vector float) +;; (define-extern rotate-z<-vector+vector function) ;; (function vector vector float) +;; (define-extern rotate-vector-to-vector function) ;; (function vector vector vector vector) +;; (define-extern vector-cvt.w.s! function) ;; (function vector vector vector) +;; (define-extern vector-cvt.s.w! function) ;; (function vector vector vector) +;; (define-extern rot-zxy-from-vector! function) ;; (function vector vector vector) +;; (define-extern rot-zyx-from-vector! function) ;; (function vector vector vector) +;; (define-extern vector-world-to-local! function) +;; (define-extern vector-local-to-world! function) +;; (define-extern vector-lerp! function) ;; (function vector vector vector float vector) +;; (define-extern vector-lerp-clamp! function) ;; (function vector vector vector float vector) +;; (define-extern vector4-lerp! function) ;; (function vector vector vector float vector) +;; (define-extern vector4-lerp-clamp! function) ;; (function vector vector vector float vector) +;; (define-extern vector4w-lerp! function) +;; (define-extern vector-degi function) ;; (function vector vector vector) +;; (define-extern vector-degf function) ;; (function vector vector vector) +;; (define-extern vector-degmod function) ;; (function vector vector vector) +;; (define-extern vector-deg-diff function) ;; (function vector vector vector none) +;; (define-extern vector-deg-lerp-clamp! function) ;; (function vector vector vector float vector) +;; (define-extern vector3s-copy! function) ;; (function vector vector vector) +;; (define-extern vector3s+! function) ;; (function vector vector vector vector) +;; (define-extern vector3s*float! function) ;; (function vector vector float vector) +;; (define-extern vector3s-! function) ;; (function vector vector vector vector) +;; (define-extern vector4-add! function) ;; (function vector4 vector4 vector4 none) +;; (define-extern vector4-sub! function) ;; (function vector4 vector4 vector4 none) +;; (define-extern vector4-mul! function) ;; (function vector4 vector4 vector4 none) +;; (define-extern vector4-scale! function) ;; (function vector4 vector4 float none) +;; (define-extern vector4-madd! function) ;; (function vector4 vector4 vector4 float none) +;; (define-extern vector4-msub! function) ;; (function vector4 vector4 vector4 float none) +;; (define-extern vector4-array-add! function) ;; (function (inline-array vector4) (inline-array vector4) (inline-array vector4) int none) +;; (define-extern vector4-array-sub! function) ;; (function (inline-array vector4) (inline-array vector4) (inline-array vector4) int none) +;; (define-extern vector4-array-mul! function) ;; (function (inline-array vector4) (inline-array vector4) (inline-array vector4) int none) +;; (define-extern vector4-array-scale! function) ;; (function (inline-array vector4) (inline-array vector4) float int none) +;; (define-extern vector4-array-madd! function) ;; (function (inline-array vector4) (inline-array vector4) (inline-array vector4) float int none) +;; (define-extern vector4-array-msub! function) ;; (function (inline-array vector4) (inline-array vector4) (inline-array vector4) float int none) +;; (define-extern vector4-array-lerp! function) ;; (function (inline-array vector4) (inline-array vector4) (inline-array vector4) float int symbol) +;; (define-extern spheres-overlap? function) ;; (function sphere sphere symbol) +;; (define-extern sphere<-vector! function) ;; (function sphere vector sphere) +;; (define-extern sphere<-vector+r! function) ;; (function sphere vector float sphere) +;; (define-extern rand-vu-sphere-point! function) ;; (function vector float vector) +;; (define-extern rand-vu-sphere-point-uniform! function) ;; (function vector float vector) +;; (define-extern vector-vector-angle-safe function) ;; (function vector vector float) +;; (define-extern vector-get-unique! function) ;; (function vector vector vector) +;; (define-extern vector-get-closest-perpendicular! function) ;; (function vector vector vector vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; file-io ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype file-stream (basic) + () + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ;; Failed to read fields. + ) +|# + +#| +(deftype file-info (basic) + ((file-type (pointer string) :offset-assert 4) ;; guessed by decompiler + (file-name string :offset-assert 8) ;; guessed by decompiler + (major-version uint32 :offset-assert 12) + (minor-version uint32 :offset-assert 16) + (maya-file-name string :offset-assert 20) ;; guessed by decompiler + (tool-debug string :offset-assert 24) ;; guessed by decompiler + (mdb-file-name string :offset-assert 28) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern file-stream-read-string function) ;; (function file-stream string string) +;; (define-extern *file-temp-string* object) ;; string +;; (define-extern make-file-name function) ;; (function file-kind string int symbol string) +;; (define-extern make-vfile-name function) ;; (function file-kind string string) +;; (define-extern file-info-correct-version? function) ;; (function file-info file-kind int symbol) +;; (define-extern *sqlpipe-file-path-send* object) +;; (define-extern *sqlpipe-file-path-recv* object) +;; (define-extern *sqlpipe-file-buffer* object) +;; (define-extern file-stream-read-complete function) +;; (define-extern sqlpipe-query function) +;; (define-extern old-sql-query object) +;; (define-extern sql-query object) ;; (function string sql-result) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; loader-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype load-dir (basic) +;; () +;; :flag-assert #xb00000010 +;; ) + +;; (deftype load-dir-art-group (load-dir) +;; () +;; :flag-assert #xb00000010 +;; ) + +#| +(deftype external-art-buffer (basic) + ((index int32 :offset-assert 4) + (other external-art-buffer :offset-assert 8) ;; guessed by decompiler + (status symbol :offset-assert 12) ;; guessed by decompiler + (locked? symbol :offset-assert 16) ;; guessed by decompiler + (login? symbol :offset-assert 20) ;; guessed by decompiler + (frame-lock symbol :offset-assert 24) ;; guessed by decompiler + (init-heap (function external-art-buffer object) :offset-assert 28) ;; guessed by decompiler + (heap kheap :inline :offset-assert 32) + (pending-load-file string :offset-assert 48) ;; guessed by decompiler + (pending-load-file-part int32 :offset-assert 52) + (pending-load-file-owner uint64 :offset-assert 56) ;; handle + (pending-load-file-priority float :offset-assert 64) + (load-file string :offset-assert 68) ;; guessed by decompiler + (load-file-part int32 :offset-assert 72) + (load-file-owner uint64 :offset-assert 80) ;; handle + (load-file-priority float :offset-assert 88) + (buf pointer :offset-assert 92) ;; guessed by decompiler + (len int32 :offset-assert 96) + (art-group art-group :offset-assert 100) ;; guessed by decompiler + (art-data uint32 :offset-assert 100) + ) + :method-count-assert 16 + :size-assert #x68 + :flag-assert #x1000000068 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int function symbol) _type_) + (external-art-buffer-method-9 () none) ;; 9 ;; (set-pending-file (_type_ string int handle float) int) + (external-art-buffer-method-10 () none) ;; 10 ;; (update (_type_) int) + (external-art-buffer-method-11 () none) ;; 11 ;; (inactive? (_type_) symbol) + (external-art-buffer-method-12 () none) ;; 12 ;; (file-status (_type_ string int) symbol) + (external-art-buffer-method-13 () none) ;; 13 ;; (link-file (_type_ art-group) art-group) + (external-art-buffer-method-14 () none) ;; 14 ;; (unlink-file (_type_ art-group) int) + (external-art-buffer-method-15 () none) ;; 15 ;; (unlock! (_type_) int) + ) + ) +|# + +#| +(deftype spool-anim (basic) + ((name string :offset-assert 16) ;; guessed by decompiler + (anim-name string :offset-assert 20) ;; guessed by decompiler + (parts int32 :offset-assert 24) + (hint-id int32 :offset-assert 24) + (priority float :offset-assert 28) + (owner uint64 :offset-assert 32) ;; handle + (command-list pair :offset-assert 40) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype external-art-control (basic) + ((buffer external-art-buffer 2 :offset-assert 4) ;; guessed by decompiler + (rec spool-anim 3 :offset-assert 20) ;; guessed by decompiler + (spool-lock uint64 :offset-assert 160) ;; handle + (reserve-buffer external-art-buffer :offset-assert 168) ;; guessed by decompiler + (reserve-buffer-count int16 :offset-assert 172) + (dma-reserve-buffer-count int16 :offset-assert 174) + (active-stream string :offset-assert 176) ;; guessed by decompiler + (queue-stream (array spool-anim) :offset-assert 180) ;; guessed by decompiler + (frame-mask uint32 :offset-assert 184) + (dma-reserve-heap kheap :inline :offset-assert 192) + ) + :method-count-assert 16 + :size-assert #xd0 + :flag-assert #x10000000d0 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + (external-art-control-method-9 () none) ;; 9 ;; (update (_type_ symbol) int) + (external-art-control-method-10 () none) ;; 10 ;; (clear-rec (_type_) int) + (external-art-control-method-11 () none) ;; 11 ;; (spool-push (_type_ string int process float) int) + (external-art-control-method-12 () none) ;; 12 ;; (file-status (_type_ string int) symbol) + (external-art-control-method-13 () none) ;; 13 ;; (reserve-alloc (_type_) kheap) + (external-art-control-method-14 () none) ;; 14 ;; (reserve-free (_type_ kheap) int) + (external-art-control-method-15 () none) ;; 15 ;; (none-reserved? (_type_) symbol) + ) + ) +|# + +#| +(deftype subtitle-range (basic) + ((start-frame float :offset-assert 4) + (end-frame float :offset-assert 8) + (message basic 12 :offset-assert 12) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +#| +(deftype subtitle-image (basic) + ((width uint16 :offset-assert 4) + (height uint16 :offset-assert 6) + (palette rgba 16 :offset-assert 16) ;; guessed by decompiler + (data uint8 :dynamic :offset-assert 80) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype texture-id (uint32) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype texture-pool-segment (structure) + ((dest uint32 :offset-assert 0) + (size uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype texture-pool (basic) + ((top int32 :offset-assert 4) + (cur int32 :offset-assert 8) + (allocate-func (function texture-pool texture-page kheap int texture-page) :offset-assert 12) ;; guessed by decompiler + (font-palette int32 :offset-assert 16) + (segment texture-pool-segment 4 :offset-assert 20) ;; guessed by decompiler + (segment-near texture-pool-segment :inline :offset-assert 20) + (segment-common texture-pool-segment :inline :offset-assert 28) + (common-page texture-page 32 :offset-assert 52) ;; guessed by decompiler + (common-page-mask int32 :offset-assert 180) + (update-sprites-flag symbol :offset-assert 184) ;; guessed by decompiler + (update-flag symbol :offset-assert 188) ;; guessed by decompiler + (texture-enable-user uint64 :offset-assert 192) ;; texture-enable-mask + (texture-enable-user-menu uint64 :offset-assert 200) ;; texture-enable-mask + (ids uint32 128 :offset-assert 208) ;; guessed by decompiler + ) + :method-count-assert 28 + :size-assert #x2d0 + :flag-assert #x1c000002d0 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + (texture-pool-method-9 () none) ;; 9 ;; (initialize! (_type_) _type_) + (texture-pool-method-10 () none) ;; 10 ;; (print-usage (_type_) _type_) + (texture-pool-method-11 () none) ;; 11 ;; (setup-font-texture (_type_) none) + (texture-pool-method-12 () none) ;; 12 ;; (allocate-defaults (_type_) none) + (texture-pool-method-13 () none) ;; 13 ;; (login-level-textures (_type_ level int (pointer texture-id)) none) + (texture-pool-method-14 () none) ;; 14 ;; (add-level-tpage-dma (_type_ level tpage-category bucket-id) none) + (texture-pool-method-15 () none) ;; 15 ;; (allocate-vram-words! (_type_ int) int) + (texture-pool-method-16 () none) ;; 16 ;; (allocate-segment (_type_ texture-pool-segment int) texture-pool-segment) + (texture-pool-method-17 () none) ;; 17 ;; (unload-page (_type_ texture-page) none) + (texture-pool-method-18 () none) ;; 18 ;; (get-common-page-slot-by-id (_type_ int) int) + (texture-pool-method-19 () none) ;; 19 ;; (update-warp-and-hud (_type_) none) + (texture-pool-method-20 () none) ;; 20 ;; (update-sprites (_type_) none) + (texture-pool-method-21 () none) ;; 21 ;; (mark-hud-warp-sprite-dirty (_type_) none) + (texture-pool-method-22 () none) ;; 22 ;; (lay-out-sprite-tex (_type_) none) + (texture-pool-method-23 () none) ;; 23 ;; (lay-out-hud-tex (_type_) none) + (texture-pool-method-24 () none) ;; 24 ;; (lay-out-warp-tex (_type_) none) + (texture-pool-method-25 () none) ;; 25 ;; (clear-ids (_type_) none) + (texture-pool-method-26 () none) ;; 26 + (texture-pool-method-27 () none) ;; 27 + ) + ) +|# + +#| +(deftype texture-mask (structure) + ((mask vector4w :inline :offset-assert 0) + (dist float :offset-assert 12) + (long uint64 2 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype texture-masks (structure) + ((data texture-mask 3 :offset-assert 0) ;; guessed by decompiler + (level basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype texture-masks-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data texture-masks :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype texture (basic) + ((w int16 :offset-assert 4) + (h int16 :offset-assert 6) + (num-mips uint8 :offset-assert 8) + (tex1-control uint8 :offset-assert 9) + (psm uint8 :offset-assert 10) ;; gs-psm + (mip-shift uint8 :offset-assert 11) + (clutpsm uint16 :offset-assert 12) + (dest uint16 7 :offset-assert 14) ;; guessed by decompiler + (clutdest uint16 :offset-assert 28) + (width uint8 7 :offset-assert 30) ;; guessed by decompiler + (name string :offset-assert 40) ;; guessed by decompiler + (size uint32 :offset-assert 44) + (uv-dist float :offset-assert 48) + (pad uint32 3 :offset-assert 52) ;; guessed by decompiler + (masks texture-masks :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype texture-page-segment (structure) + ((block-data pointer :offset-assert 0) ;; guessed by decompiler + (size uint32 :offset-assert 4) + (dest uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype texture-page (basic) + ((info file-info :offset-assert 4) ;; guessed by decompiler + (name string :offset-assert 8) ;; guessed by decompiler + (id uint32 :offset-assert 12) + (length int32 :offset-assert 16) + (mip0-size uint32 :offset-assert 20) + (size uint32 :offset-assert 24) + (segment texture-page-segment 3 :offset-assert 28) ;; guessed by decompiler + (dram-size uint32 :offset-assert 64) + (vram-size uint32 :offset-assert 68) + (pad uint32 14 :offset-assert 72) ;; guessed by decompiler + (data texture :dynamic :offset-assert 128) ;; guessed by decompiler + ) + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + (:methods + (texture-page-method-9 () none) ;; 9 ;; (remove-data-from-heap (_type_ kheap) _type_) + (texture-page-method-10 () none) ;; 10 ;; (get-leftover-block-count (_type_ int int) int) + (texture-page-method-11 () none) ;; 11 ;; (relocate-dests! (_type_ int int) none) + (texture-page-method-12 () none) ;; 12 ;; (add-to-dma-buffer (_type_ dma-buffer tex-upload-mode) int) + (texture-page-method-13 () none) ;; 13 ;; (upload-now! (_type_ tex-upload-mode) none) + (texture-page-method-14 () none) ;; 14 + ) + ) +|# + +;; (deftype shader-ptr (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype texture-link (structure) + ((next shader-ptr :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype texture-page-dir-entry (structure) + ((length int16 :offset-assert 0) + (status uint16 :offset-assert 2) + (page texture-page :offset-assert 4) ;; guessed by decompiler + (link texture-link :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; (deftype texture-page-dir (basic) +;; () +;; :flag-assert #xb00000014 +;; ) + +#| +(deftype texture-relocate-later (basic) + ((memcpy symbol :offset-assert 4) ;; guessed by decompiler + (dest uint32 :offset-assert 8) + (source uint32 :offset-assert 12) + (move uint32 :offset-assert 16) + (entry texture-page-dir-entry :offset-assert 20) + (page texture-page :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype adgif-shader (structure) + ((quad qword 5 :offset-assert 0) ;; guessed by decompiler + (prims gs-reg64 10 :offset-assert 0) ;; guessed by decompiler + (reg-0 uint8 :offset-assert 8) ;; gs-reg + (reg-1 uint8 :offset-assert 24) ;; gs-reg + (reg-2 uint8 :offset-assert 40) ;; gs-reg + (reg-3 uint8 :offset-assert 56) ;; gs-reg + (reg-4 uint8 :offset-assert 72) ;; gs-reg + (tex0 uint64 :offset-assert 0) ;; gs-tex0 + (tex1 uint64 :offset-assert 16) ;; gs-tex1 + (miptbp1 uint64 :offset-assert 32) ;; gs-miptbp + (clamp uint64 :offset-assert 48) ;; gs-clamp + (clamp-reg uint64 :offset-assert 56) ;; gs-reg64 + (alpha uint64 :offset-assert 64) ;; gs-miptbp + (link-test link-test-flags :offset-assert 8) ;; guessed by decompiler + (texture-id texture-id :offset-assert 24) ;; guessed by decompiler + (next shader-ptr :offset-assert 40) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype adgif-shader-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data adgif-shader :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype texture-base (structure) + ((vram-page uint32 :offset-assert 0) + (vram-block uint32 :offset-assert 4) + (vram-word uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype texture-page-translate-item (structure) + ((bucket int32 :offset-assert 0) ;; bucket-id + (level-index uint32 :offset-assert 4) + (level-texture-page tpage-category-u32 :offset-assert 8) ;; guessed by decompiler + (texture-user texture-enable-mask-u32 :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *texture-masks* object) ;; texture-masks +;; (define-extern *texture-masks-array* object) ;; texture-masks-array +;; (define-extern texture-mip->segment function) ;; (function int int int) +;; (define-extern *texture-relocate-later* object) ;; texture-relocate-later +;; (define-extern *texture-page-dir* object) ;; texture-page-dir +;; (define-extern ct32-24-block-table array) ;; (array int32) +;; (define-extern mz32-24-block-table array) ;; (array int32) +;; (define-extern ct16-block-table array) ;; (array int32) +;; (define-extern ct16s-block-table array) ;; (array int32) +;; (define-extern mz16-block-table array) ;; (array int32) +;; (define-extern mz16s-block-table array) ;; (array int32) +;; (define-extern mt8-block-table array) ;; (array int32) +;; (define-extern mt4-block-table array) ;; (array int32) +;; (define-extern *texture-page-translate* array) ;; (array texture-page-translate-item) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-anim-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype texture-anim-layer (structure) + ((extra vector :inline :offset-assert 240) + (func (function dma-buffer uint int int texture-anim-layer float int) :offset-assert 256) ;; guessed by decompiler + (func-id symbol :offset-assert 256) ;; guessed by decompiler + (init-func (function texture-anim-layer int) :offset-assert 260) ;; guessed by decompiler + (init-func-id symbol :offset-assert 260) ;; guessed by decompiler + (tex texture :offset-assert 264) ;; guessed by decompiler + (start-time float :offset-assert 268) + (end-time float :offset-assert 272) + (tex-name string :offset-assert 276) ;; guessed by decompiler + (test uint64 :offset-assert 280) ;; gs-test + (alpha uint64 :offset-assert 288) ;; gs-alpha + (clamp uint64 :offset-assert 296) ;; gs-clamp + (start-color vector :inline :offset-assert 80) + (start-scale vector2 :inline :offset-assert 96) + (start-offset vector2 :inline :offset-assert 104) + (start-st-scale vector2 :inline :offset-assert 112) + (start-st-offset vector2 :inline :offset-assert 120) + (start-qs vector :inline :offset-assert 128) + (start-rot deg :offset-assert 144) ;; degrees + (start-st-rot deg :offset-assert 148) ;; degrees + (end-color vector :inline :offset-assert 160) + (end-scale vector2 :inline :offset-assert 176) + (end-offset vector2 :inline :offset-assert 184) + (end-st-scale vector2 :inline :offset-assert 192) + (end-st-offset vector2 :inline :offset-assert 200) + (end-qs vector :inline :offset-assert 208) + (end-rot deg :offset-assert 224) ;; degrees + (end-st-rot deg :offset-assert 228) ;; degrees + ) + :method-count-assert 11 + :size-assert #x130 + :flag-assert #xb00000130 + (:methods + (texture-anim-layer-method-9 () none) ;; 9 ;; (initialize-texture! (_type_) _type_) + (texture-anim-layer-method-10 () none) ;; 10 ;; (clear-texture! (_type_) _type_) + ) + ) +|# + +#| +(deftype texture-anim (structure) + ((num-layers uint32 :offset-assert 0) + (func (function dma-buffer texture-anim int) :offset-assert 4) ;; guessed by decompiler + (func-id symbol :offset-assert 4) ;; guessed by decompiler + (init-func (function texture-anim int) :offset-assert 8) ;; guessed by decompiler + (init-func-id symbol :offset-assert 8) ;; guessed by decompiler + (mip-func basic :offset-assert 12) + (mip-func-id basic :offset-assert 12) + (time-func basic :offset-assert 16) + (time-func-id basic :offset-assert 16) + (tex texture :offset-assert 20) ;; guessed by decompiler + (tex-name string :offset-assert 24) ;; guessed by decompiler + (extra vector :inline :offset-assert 32) + (color rgba :offset-assert 48) ;; guessed by decompiler + (frame-time float :offset-assert 52) + (frame-delta float :offset-assert 56) + (frame-mod float :offset-assert 60) + (test uint64 :offset-assert 64) ;; gs-test + (alpha uint64 :offset-assert 72) ;; gs-alpha + (clamp uint64 :offset-assert 80) ;; gs-clamp + (data texture-anim-layer :dynamic :offset-assert 88) ;; guessed by decompiler + ) + :method-count-assert 11 + :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_) + ) + ) +|# + +#| +(deftype texture-anim-array (array) + ((type type :offset-assert 0) ;; guessed by decompiler + (length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (content-type type :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + (:methods + (texture-anim-array-method-9 () none) ;; 9 ;; (init! (_type_) _type_) + (texture-anim-array-method-10 () none) ;; 10 ;; (clear! (_type_) _type_) + ) + ) +|# + +#| +(deftype texture-anim-work (structure) + ((erase-tmpl dma-gif-packet :inline :offset-assert 0) + (draw-tmpl dma-gif-packet :inline :offset-assert 32) + (draw2-tmpl dma-gif-packet :inline :offset-assert 64) + (sprite-tmpl dma-gif-packet :inline :offset-assert 96) + (fill-tmpl dma-gif-packet :inline :offset-assert 128) + (adgif-tmpl dma-gif-packet :inline :offset-assert 160) + (corner0 vector :inline :offset-assert 192) + (corner1 vector :inline :offset-assert 208) + (corner2 vector :inline :offset-assert 224) + (corner3 vector :inline :offset-assert 240) + (const vector :inline :offset-assert 256) + (color vector4w :inline :offset-assert 272) + (random vector4w 8 :offset-assert 288) ;; guessed by decompiler + (random-index uint8 :offset-assert 416) + (color80808040 vector4w :inline :offset-assert 432) + (color80808060 vector4w :inline :offset-assert 448) + (color80808000 vector4w :inline :offset-assert 464) + (st0000 vector :inline :offset-assert 480) + (st0505 vector :inline :offset-assert 496) + (st1010 vector :inline :offset-assert 512) + (uv00 vector4w :inline :offset-assert 528) + (uv44 vector4w :inline :offset-assert 544) + (uv88 vector4w :inline :offset-assert 560) + (uv1010 vector4w :inline :offset-assert 576) + (uv2020 vector4w :inline :offset-assert 592) + (uv4040 vector4w :inline :offset-assert 608) + (uv8080 vector4w :inline :offset-assert 624) + (xy0000 vector4w :inline :offset-assert 640) + (xy4040 vector4w :inline :offset-assert 656) + (xy0040 vector4w :inline :offset-assert 672) + (xy2060 vector4w :inline :offset-assert 688) + (xy2040 vector4w :inline :offset-assert 704) + (xy3050 vector4w :inline :offset-assert 720) + (xy3040 vector4w :inline :offset-assert 736) + (xy3848 vector4w :inline :offset-assert 752) + (xy3840 vector4w :inline :offset-assert 768) + (xy4048 vector4w :inline :offset-assert 784) + (xy3048 vector4w :inline :offset-assert 800) + (xy3850 vector4w :inline :offset-assert 816) + (xy4060 vector4w :inline :offset-assert 832) + ) + :method-count-assert 9 + :size-assert #x350 + :flag-assert #x900000350 + ) +|# + +#| +(deftype clut16x16 (structure) + ((clut rgba 256 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x400 + :flag-assert #x900000400 + ) +|# + +#| +(deftype noise8x8 (structure) + ((image uint8 64 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype noise16x16 (structure) + ((image uint8 256 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype noise32x32 (structure) + ((image uint8 1024 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x400 + :flag-assert #x900000400 + ) +|# + +#| +(deftype noise64x64 (structure) + ((image uint8 4096 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1000 + :flag-assert #x900001000 + ) +|# + +#| +(deftype noise128x128 (structure) + ((image uint8 16384 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4000 + :flag-assert #x900004000 + ) +|# + +#| +(deftype fog8x256 (structure) + ((image uint8 256 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype fog-texture-work (structure) + ((fog-height float :offset-assert 0) + (fog-near float :offset-assert 4) + (fog-far float :offset-assert 8) + (fog-delta float :offset-assert 12) + (alpha-near float :offset-assert 16) + (alpha-far float :offset-assert 20) + (alpha-delta float :offset-assert 24) + (color rgba :offset-assert 28) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern *clut-translate* object) ;; (pointer uint8) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lights-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vu-lights (structure) + ((direction vector 3 :offset-assert 0) ;; guessed by decompiler + (color vector 3 :offset-assert 48) ;; guessed by decompiler + (ambient vector :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype light (structure) + ((direction vector :inline :offset-assert 0) + (color rgbaf :inline :offset-assert 16) + (extra vector :inline :offset-assert 32) + (level float :offset-assert 32) + (luminance float :offset-assert 40) + (priority float :offset-assert 44) + (bytes uint8 4 :offset-assert 36) ;; guessed by decompiler + (mask uint16 :offset-assert 36) + (palette-index int8 :offset-assert 39) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +;; (deftype light-shadow-mask (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype light-sphere (structure) + ((name string :offset-assert 0) ;; guessed by decompiler + (bsphere vector :inline :offset-assert 16) + (direction vector :inline :offset-assert 32) + (color vector :inline :offset-assert 48) + (decay-start float :offset-assert 4) + (ambient-point-ratio float :offset-assert 8) + (brightness float :offset-assert 12) + (bytes uint8 4 :offset-assert 60) ;; guessed by decompiler + (mask uint16 :offset-assert 60) + (palette-index int8 :offset-assert 63) + (shadow uint32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype light-hash-bucket (structure) + ((index uint16 :offset-assert 0) + (count uint16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype light-hash (basic) + ((num-lights uint16 :offset-assert 4) + (num-indices uint16 :offset-assert 6) + (num-buckets uint16 :offset-assert 8) + (bucket-step uint8 2 :offset-assert 10) ;; guessed by decompiler + (base-trans vector :inline :offset-assert 16) + (axis-scale vector :inline :offset-assert 32) + (dimension-array vector4w :inline :offset-assert 48) + (bucket-array (inline-array light-hash-bucket) :offset-assert 64) ;; guessed by decompiler + (index-array pointer :offset-assert 68) ;; guessed by decompiler + (light-sphere-array (inline-array light-sphere) :offset-assert 72) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype light-hash-work (structure) + ((ones vector4w :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype light-group (structure) + ((dir0 light :inline :offset-assert 0) + (dir1 light :inline :offset-assert 48) + (dir2 light :inline :offset-assert 96) + (ambi light :inline :offset-assert 144) + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +;; (define-extern *light-hash* object) ;; light-hash + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trail-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype trail-node (structure) + ((next-id int16 :offset-assert 0) + (prev-id int16 :offset-assert 2) + (parent-id int16 :offset-assert 4) + (x int16 :offset-assert 6) + (y int16 :offset-assert 8) + (z int16 :offset-assert 10) + (first-conn uint16 :offset-assert 12) + (cost-from-start uint16 :offset-assert 14) + (cost-to-goal uint16 :offset-assert 16) + (flags uint8 :offset-assert 18) ;; trail-node-flag + (conn-count uint8 :offset-assert 19) + ) + :method-count-assert 12 + :size-assert #x14 + :flag-assert #xc00000014 + (:methods + (trail-node-method-9 () none) ;; 9 ;; (get-dist-score (_type_ vector) uint) + (trail-node-method-10 () none) ;; 10 ;; (debug-draw (_type_ int) symbol) + (trail-node-method-11 () none) ;; 11 ;; (get-position (_type_ vector) vector) + ) + ) +|# + +#| +(deftype trail-visgroup (structure) + ((first-node uint16 :offset-assert 0) + (node-count uint8 :offset-assert 2) + (pad uint8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype trail-blocker (structure) + ((plane plane :inline :offset-assert 0) + (center vector :inline :offset-assert 16) + (radius-squared float :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype trail-conn (structure) + ((head-id uint16 :offset-assert 0) + (tail-id uint16 :offset-assert 2) + (flags uint8 :offset-assert 4) ;; conn-flag + (visgroup-id uint8 :offset-assert 5) + (cost uint16 :offset-assert 6) + ) + :method-count-assert 10 + :size-assert #x8 + :flag-assert #xa00000008 + (:methods + (trail-conn-method-9 () none) ;; 9 ;; (debug-draw (_type_ trail-graph int) none) + ) + ) +|# + +#| +(deftype trail-conn-hash-cell (structure) + ((first-conn uint16 :offset-assert 0) + (conn-count uint8 :offset-assert 2) + (pov-count uint8 :offset-assert 3) + (first-pov uint16 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype trail-conn-search (structure) + ((best-conn-id int32 :offset-assert 0) + (best-dist float :offset-assert 4) + (src-pos vector :offset-assert 8) + (conn-pos vector :offset-assert 12) + (debug-cells-searched int32 :offset-assert 16) + (debug-conns-searched int32 :offset-assert 20) + (bounds bounding-box4w :inline :offset-assert 32) + (cell-quads qword 2 :offset-assert 64) ;; guessed by decompiler + (conn-quads qword 7 :offset-assert 96) ;; guessed by decompiler + (cell-bits vector16ub 2 :offset-assert 64) ;; guessed by decompiler + (conn-bits vector16ub 2 :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xd0 + :flag-assert #x9000000d0 + ) +|# + +#| +(deftype trail-conn-hash (basic) + ((cell-width meters :offset-assert 4) + (origin vector :inline :offset-assert 16) + (cell (inline-array trail-conn-hash-cell) :offset-assert 32) ;; guessed by decompiler + (conn-ids (pointer uint16) :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype trail-cached-search-info (structure) + ((goal-conn-id int16 :offset-assert 0) + (orig-goal-pos vector :inline :offset-assert 16) + (conn-goal-pos vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype trail-cached-start-pov (structure) + ((last-updated uint64 :offset-assert 0) ;; time-frame + (pov-can-see-start uint64 :offset-assert 8) + (next-node-id int32 :offset-assert 16) + (start-pos vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype trail-graph (basic) + ((mode uint8 :offset-assert 4) + (search-id uint32 :offset-assert 8) + (open-head-id int16 :offset-assert 12) + (goal-conn-id int16 :offset-assert 14) + (goal-node-id int16 :offset-assert 16) + (over-under-thresh float :offset-assert 20) + (over-under-above-too-low float :offset-assert 24) + (over-under-below-too-high float :offset-assert 28) + (pov-node-count uint16 :offset-assert 32) + (node-count uint16 :offset-assert 34) + (conn-count uint16 :offset-assert 36) + (blocker-count uint16 :offset-assert 38) + (conn-mask uint8 :offset-assert 40) + (node (inline-array trail-node) :offset-assert 44) ;; guessed by decompiler + (conn (inline-array trail-conn) :offset-assert 48) ;; guessed by decompiler + (blocker (inline-array trail-blocker) :offset-assert 52) ;; guessed by decompiler + (conn-ids (pointer uint16) :offset-assert 56) ;; guessed by decompiler + (visgroup (inline-array trail-conn-hash-cell) :offset-assert 60) ;; guessed by decompiler + (visnode-ids (pointer uint16) :offset-assert 64) ;; guessed by decompiler + (conn-hash trail-conn-hash :offset-assert 68) ;; guessed by decompiler + (cell-pov-bit-arrays (pointer uint64) :offset-assert 72) ;; guessed by decompiler + (pov-can-see-goal uint64 :offset-assert 80) + (cached-start-pov trail-cached-start-pov :inline :offset-assert 96) + (orig-start-pos vector :inline :offset-assert 144) + (orig-goal-pos vector :inline :offset-assert 160) + (conn-start-pos vector :inline :offset-assert 176) + (conn-goal-pos vector :inline :offset-assert 192) + (open-quads qword 6 :offset-assert 208) ;; guessed by decompiler + (closed-quads qword 6 :offset-assert 304) ;; guessed by decompiler + (open-bits vector16ub 2 :offset-assert 208) ;; guessed by decompiler + (closed-bits vector16ub 2 :offset-assert 304) ;; guessed by decompiler + ) + :method-count-assert 34 + :size-assert #x190 + :flag-assert #x2200000190 + (:methods + (trail-graph-method-9 () none) ;; 9 ;; (trail-graph-method-9 (_type_ int) int) + (trail-graph-method-10 () none) ;; 10 ;; (trail-graph-method-10 (_type_ int) symbol) + (trail-graph-method-11 () none) ;; 11 ;; (trail-graph-method-11 (_type_ int int) trail-node) + (trail-graph-method-12 () none) ;; 12 ;; (trail-graph-method-12 (_type_ trail-node vector) symbol) + (trail-graph-method-13 () none) ;; 13 ;; (trail-graph-method-13 (_type_ vector vector) symbol) + (trail-graph-method-14 () none) ;; 14 ;; (debug-draw (_type_) symbol) + (trail-graph-method-15 () none) ;; 15 ;; (trail-graph-method-15 (_type_ int) symbol) + (trail-graph-method-16 () none) ;; 16 ;; (trail-graph-method-16 (_type_ int (pointer uint16) vector vector rgba float) symbol) + (trail-graph-method-17 () none) ;; 17 ;; (trail-graph-method-17 (_type_ vector vector) int) + (trail-graph-method-18 () none) ;; 18 ;; (trail-graph-method-18 (_type_ vector) int) + (trail-graph-method-19 () none) ;; 19 ;; (trail-graph-method-19 (_type_) none) + (trail-graph-method-20 () none) ;; 20 ;; (trail-graph-method-20 (_type_ uint vector) vector) + (trail-graph-method-21 () none) ;; 21 ;; (trail-graph-method-21 (_type_ (pointer uint16) int (pointer int32) (pointer float)) int) + (trail-graph-method-22 () none) ;; 22 ;; (trail-graph-method-22 (_type_ int int) symbol) + (trail-graph-method-23 () none) ;; 23 ;; (trail-graph-method-23 (_type_) symbol) + (trail-graph-method-24 () none) ;; 24 ;; (trail-graph-method-24 (_type_ uint vector int int) symbol) + (trail-graph-method-25 () none) ;; 25 ;; (trail-graph-method-25 (_type_ int) int) + (trail-graph-method-26 () none) ;; 26 ;; (trail-graph-method-26 (_type_) int) + (trail-graph-method-27 () none) ;; 27 ;; (trail-graph-method-27 (_type_) int) + (trail-graph-method-28 () none) ;; 28 ;; (trail-graph-method-28 (_type_ trail-conn-search int int) symbol) + (trail-graph-method-29 () none) ;; 29 ;; (trail-graph-method-29 (_type_ vector vector trail-cached-search-info) int) + (trail-graph-method-30 () none) ;; 30 ;; (trail-graph-method-30 (_type_) int) + (trail-graph-method-31 () none) ;; 31 ;; (trail-graph-method-31 (_type_ int) none) + (trail-graph-method-32 () none) ;; 32 ;; (trail-graph-method-32 (_type_) uint) + (trail-graph-method-33 () none) ;; 33 ;; (trail-graph-method-33 (_type_ int) symbol) + ) + ) +|# + +;; (define-extern *trail-graph* object) ;; trail-graph + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; connect ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype connectable (structure) + ((next0 connectable :offset-assert 0) + (prev0 connectable :offset-assert 4) + (next1 connectable :offset-assert 8) + (prev1 connectable :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype connection (connectable) + ((param0 basic :offset-assert 16) + (param1 basic :offset-assert 20) + (param2 int32 :offset-assert 24) ;; guessed by decompiler + (param3 int32 :offset-assert 28) ;; guessed by decompiler + (quad uint128 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x20 + :flag-assert #xe00000020 + ;; field param1 uses ~A with a signed load. field param2 uses ~A with a signed load. field param3 uses ~A with a signed load. + (:methods + (connection-method-9 () none) ;; 9 ;; (get-engine (connection) engine) + (connection-method-10 () none) ;; 10 ;; (get-process (connection) process) + (connection-method-11 () none) ;; 11 ;; (belongs-to-engine? (connection engine) symbol) + (connection-method-12 () none) ;; 12 ;; (belongs-to-process? (connection process) symbol) + (connection-method-13 () none) ;; 13 ;; (move-to-dead (connection) connection) + ) + ) +|# + +#| +(deftype engine (basic) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (engine-time uint64 :offset-assert 16) ;; time-frame + (allocated-length int16 :offset-assert 10) + (length int16 :offset-assert 8) + (element-type type :offset-assert 12) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (data connection :dynamic :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 26 + :size-assert #x60 + :flag-assert #x1a00000060 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type symbol int type) _type_) + (engine-method-9 () none) ;; 9 ;; (inspect-all-connections (engine) engine) + (engine-method-10 () none) ;; 10 ;; (apply-to-connections (engine (function connectable none)) int) + (engine-method-11 () none) ;; 11 ;; (apply-to-connections-reverse (engine (function connectable none)) int) + (engine-method-12 () none) ;; 12 ;; (execute-connections (engine object) int) + (engine-method-13 () none) ;; 13 ;; (execute-connections-and-move-to-dead (engine object) int) + (engine-method-14 () none) ;; 14 ;; (execute-connections-if-needed (engine object) int) + (engine-method-15 () none) ;; 15 ;; (add-connection (engine process object object object object) connection) + (engine-method-16 () none) ;; 16 ;; (remove-from-process (engine process) int) + (engine-method-17 () none) ;; 17 ;; (remove-matching (engine (function connection engine symbol)) int) + (engine-method-18 () none) ;; 18 ;; (remove-all (engine) int) + (engine-method-19 () none) ;; 19 ;; (remove-by-param0 (engine object) int) + (engine-method-20 () none) ;; 20 ;; (remove-by-param1 (engine int) int) + (engine-method-21 () none) ;; 21 ;; (remove-by-param2 (engine int) int) + (engine-method-22 () none) ;; 22 ;; (get-first-connectable (engine) connectable) + (engine-method-23 () none) ;; 23 ;; (get-last-connectable (engine) connectable) + (engine-method-24 () none) ;; 24 ;; (get-next-connectable (_type_ connectable) connectable) + (engine-method-25 () none) ;; 25 ;; (get-prev-connectable (_type_ connectable) connectable) + ) + ) +|# + +#| +(deftype connection-pers (structure) + ((next connection-pers :offset-assert 0) + (key object :offset-assert 4) ;; guessed by decompiler + (update-time uint64 :offset-assert 8) ;; time-frame + (param object 4 :offset-assert 16) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (param-int32 int32 4 :offset-assert 16) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (param-int64 int64 2 :offset-assert 16) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (param-float float 4 :offset-assert 16) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (param-quat uint128 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ;; field key uses ~A with a signed load. + ) +|# + +#| +(deftype engine-pers (basic) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (length int16 :offset-assert 8) + (allocated-length int16 :offset-assert 10) + (element-type type :offset-assert 12) ;; guessed by decompiler + (execute-time uint64 :offset-assert 16) ;; time-frame + (alive-list connection-pers :offset-assert 24) + (dead-list connection-pers :offset-assert 28) + (data connection-pers :dynamic :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type symbol int type) _type_) + (engine-pers-method-9 () none) ;; 9 ;; (schedule-callback (_type_ object time-frame) connection-pers) + (engine-pers-method-10 () none) ;; 10 ;; (kill-callback (_type_ connection-pers) none) + (engine-pers-method-11 () none) ;; 11 ;; (kill-by-key (_type_ object) none) + (engine-pers-method-12 () none) ;; 12 ;; (kill-matching (_type_ (function engine-pers connection-pers object object symbol) object object) none) + (engine-pers-method-13 () none) ;; 13 ;; (update-callback (_type_) none) + (engine-pers-method-14 () none) ;; 14 ;; (run-pending-updates! (_type_ time-frame) none) + ) + ) +|# + +;; (define-extern connection-process-apply function) ;; (function process (function object none) symbol) +;; (define-extern process-disconnect function) ;; (function process int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mood-channel (structure) + ((data float 24 :offset-assert 0) ;; guessed by decompiler + (vecs vector4 6 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype mood-channel-group (structure) + ((data mood-channel 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x180 + :flag-assert #x900000180 + ) +|# + +#| +(deftype mood-fog (structure) + ((fog-color vector :inline :offset-assert 0) + (fog-dists vector :inline :offset-assert 16) + (fog-start meters :offset-assert 16) + (fog-end meters :offset-assert 20) + (fog-max float :offset-assert 24) + (fog-min float :offset-assert 28) + (erase-color vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype mood-fog-table (structure) + ((data mood-fog 8 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x180 + :flag-assert #x900000180 + ) +|# + +#| +(deftype mood-color (structure) + ((lgt-color vector :inline :offset-assert 0) + (amb-color vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype mood-direction-table (structure) + ((data vector 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype mood-color-table (structure) + ((data mood-color 8 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype mood-sky-table (structure) + ((data vector 8 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype mood-clouds (structure) + ((cloud-min float :offset-assert 0) + (cloud-max float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype mood-weather (structure) + ((data float 2 :offset-assert 0) ;; guessed by decompiler + (cloud float :offset-assert 0) + (fog float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype mood-iweather (structure) + ((data int32 2 :offset-assert 0) ;; guessed by decompiler + (cloud int32 :offset-assert 0) + (fog int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype mood-range (structure) + ((data float 4 :offset-assert 0) ;; guessed by decompiler + (min-cloud float :offset-assert 0) + (max-cloud float :offset-assert 4) + (min-fog float :offset-assert 8) + (max-fog float :offset-assert 12) + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype mood-filters-table (structure) + ((data vector 8 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype mood-table (basic) + ((mood-fog-table mood-fog-table :offset-assert 4) + (mood-color-table mood-color-table :offset-assert 8) + (mood-channel-group mood-channel-group :offset-assert 12) + (mood-direction-table mood-direction-table :offset-assert 16) + (mood-sky-table mood-sky-table :offset-assert 20) + (mood-interp-table sky-color-day :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype light-state (structure) + ((time float :offset-assert 0) + (fade float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype flicker-state (structure) + ((flicker-off uint8 :offset-assert 0) + (flicker-on uint8 :offset-assert 1) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype florescent-state (structure) + ((value float :offset-assert 0) + (delay int8 :offset-assert 4) + (delay2 int8 :offset-assert 5) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype electricity-state (structure) + ((value float :offset-assert 0) + (scale float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype pulse-state (structure) + ((pulse float :offset-assert 0) + (brightness float :offset-assert 4) + (target-brightness float :offset-assert 8) + (speed float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype strobe-state (structure) + ((time float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype flames-state (structure) + ((time float :offset-assert 0) + (index uint8 :offset-assert 4) + (length uint8 :offset-assert 5) + (height uint8 :offset-assert 6) + ) + :method-count-assert 9 + :size-assert #x7 + :flag-assert #x900000007 + ) +|# + +#| +(deftype mood-context-core (structure) + ((current-fog mood-fog :inline :offset-assert 0) + (current-sky-color vector :inline :offset-assert 48) + (current-env-color vector :inline :offset-assert 64) + (current-prt-color vector :inline :offset-assert 80) + (current-shadow-color vector :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype mood-context-core2 (mood-context-core) + ((light-group light-group 8 :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x670 + :flag-assert #x900000670 + ) +|# + +#| +(deftype mood-context-core3 (mood-context-core2) + ((times vector 8 :offset-assert 1648) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x6f0 + :flag-assert #x9000006f0 + ) +|# + +#| +(deftype mood-context (mood-context-core3) + ((itimes vector4w 4 :offset-assert 1776) ;; guessed by decompiler + (state uint32 32 :offset-assert 1840) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x7b0 + :flag-assert #x9000007b0 + ) +|# + +#| +(deftype mood-control-work (structure) + ((color vector4w :inline :offset-assert 0) + (weather mood-weather :inline :offset-assert 16) + (iweather mood-iweather :inline :offset-assert 24) + (interp mood-weather :inline :offset-assert 32) + (index int32 4 :offset-assert 40) ;; guessed by decompiler + (color-interp float :offset-assert 56) + (color-index int32 2 :offset-assert 60) ;; guessed by decompiler + (channel-interp float :offset-assert 68) + (channel-index int32 2 :offset-assert 72) ;; guessed by decompiler + (cloud-interp float :offset-assert 80) + (cloud-index int32 2 :offset-assert 84) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x5c + :flag-assert #x90000005c + ) +|# + +#| +(deftype mood-control (mood-table) + ((mood-clouds mood-clouds :offset-assert 28) + (current-interp mood-weather :inline :offset-assert 32) + (target-interp mood-weather :inline :offset-assert 40) + (speed-interp mood-weather :inline :offset-assert 48) + (range mood-range :inline :offset-assert 64) + (time-until-random mood-weather :inline :offset-assert 80) + (time-until-random-min mood-weather :inline :offset-assert 88) + (time-until-random-max mood-weather :inline :offset-assert 96) + (current-special-interp float :offset-assert 104) + (target-special-interp float :offset-assert 108) + (rate-special-interp float :offset-assert 112) + (display-flag symbol :offset-assert 116) ;; guessed by decompiler + (override-weather-flag basic :offset-assert 120) + (override mood-weather :inline :offset-assert 128) + (lightning-index int32 :offset-assert 136) + (lightning-val int32 :offset-assert 140) + (lightning-time int32 :offset-assert 144) + (lightning-time2 float :offset-assert 148) + (lightning-time3 float :offset-assert 152) + (lightning-flash float :offset-assert 156) + (lightning-id sound-id :offset-assert 160) ;; guessed by decompiler + (lightning-count0 uint32 :offset-assert 164) + (lightning-count1 uint32 :offset-assert 168) + (lightning-count2 uint32 :offset-assert 172) + (rain-id sound-id :offset-assert 176) ;; guessed by decompiler + (sound-pitch float :offset-assert 180) + (fogs mood-fog-table 9 :offset-assert 184) ;; guessed by decompiler + (colors mood-color-table 3 :offset-assert 220) ;; guessed by decompiler + (channels mood-channel-group 3 :offset-assert 232) ;; guessed by decompiler + (clouds mood-clouds 9 :offset-assert 244) ;; guessed by decompiler + ) + :method-count-assert 25 + :size-assert #x118 + :flag-assert #x1900000118 + (:methods + (mood-control-method-9 () none) ;; 9 ;; (init-weather! (_type_) none) + (mood-control-method-10 () none) ;; 10 ;; (set-cloud-and-fog-interp! (_type_ float float float float) none) + (mood-control-method-11 () none) ;; 11 ;; (update-mood-range! (_type_ float float float float) none) + (mood-control-method-12 () none) ;; 12 ;; (set-time-for-random-weather! (_type_ float float) none) + (mood-control-method-13 () none) ;; 13 ;; (set-special-interps! (_type_ float float symbol) none) + (mood-control-method-14 () none) ;; 14 ;; (weather-event-concluded? (_type_) symbol) + (mood-control-method-15 () none) ;; 15 ;; (set-lightning-time! (_type_ int int float) none) + (mood-control-method-16 () none) ;; 16 ;; (apply-mood-clouds-and-fog (_type_ mood-control-work) none) + (mood-control-method-17 () none) ;; 17 ;; (apply-mood-fog (_type_ mood-control-work mood-color-table mood-color-table mood-color-table float) none) + (mood-control-method-18 () none) ;; 18 ;; (apply-fog-height (_type_ mood-control-work float float float float) none) + (mood-control-method-19 () none) ;; 19 ;; (apply-mood-colors (_type_ mood-control-work) none) + (mood-control-method-20 () none) ;; 20 ;; (mood-control-method-20 (_type_ mood-control-work mood-color-table mood-color-table mood-color-table float) none) + (mood-control-method-21 () none) ;; 21 ;; (apply-mood-channels (_type_ mood-control-work) none) + (mood-control-method-22 () none) ;; 22 ;; (adjust-num-clouds (_type_ mood-control-work) none) + (mood-control-method-23 () none) ;; 23 ;; (gen-lightning-and-thunder! (_type_ int) none) + (mood-control-method-24 () none) ;; 24 ;; (play-or-stop-lightning-sfx! (_type_ sound-spec vector) none) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; level-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype level-vis-info (basic) + ((level level :offset-assert 4) ;; guessed by decompiler + (from-level symbol :offset-assert 8) ;; guessed by decompiler + (from-bsp bsp-header :offset-assert 12) ;; guessed by decompiler + (flags vis-info-flag :offset-assert 16) + (length uint32 :offset-assert 20) + (allocated-length uint32 :offset-assert 24) + (dictionary-length uint32 :offset-assert 28) + (dictionary uint32 :offset-assert 32) + (string-block uint32 :offset-assert 36) + (ramdisk uint32 :offset-assert 40) + (vis-bits uint32 4 :offset-assert 44) ;; guessed by decompiler + (current-vis-string uint32 4 :offset-assert 60) ;; guessed by decompiler + (vis-string uint32 :dynamic :offset-assert 76) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype level-borrow-info (basic) + ((borrow-size uint16 3 :offset-assert 4) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (borrow-info object 3 :offset-assert 12) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype level-load-info (basic) + ((name-list symbol 4 :offset-assert 4) ;; guessed by decompiler + (name symbol :offset-assert 4) ;; guessed by decompiler + (visname symbol :offset-assert 8) ;; guessed by decompiler + (nickname symbol :offset-assert 12) ;; guessed by decompiler + (dbname symbol :offset-assert 4) ;; guessed by decompiler + (taskname symbol :offset-assert 16) ;; guessed by decompiler + (index int16 :offset-assert 20) + (task-level uint8 :offset-assert 22) + (race-minimap uint8 :offset-assert 23) + (level-flags level-flags :offset-assert 24) ;; guessed by decompiler + (packages pair :offset-assert 28) ;; guessed by decompiler + (memory-mode level-memory-mode :offset-assert 32) ;; guessed by decompiler + (mood-func symbol :offset-assert 36) ;; guessed by decompiler + (special-mood symbol :offset-assert 40) ;; guessed by decompiler + (ocean symbol :offset-assert 44) ;; guessed by decompiler + (ocean-height float :offset-assert 48) + (status-cache uint16 :offset-assert 52) + (status-cache-sync uint16 :offset-assert 54) + (draw-priority float :offset-assert 56) + (base-task-mask task-mask :offset-assert 60) + (continues pair :offset-assert 64) ;; guessed by decompiler + (callback-list pair :offset-assert 68) ;; guessed by decompiler + (borrow level-borrow-info :offset-assert 72) ;; guessed by decompiler + (bottom-height meters :offset-assert 76) + (mood-range mood-range :offset-assert 80) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x54 + :flag-assert #xb00000054 + (:methods + (level-load-info-method-9 () none) ;; 9 ;; (get-callback-symbol-value-by-slot! (_type_ int) object) + (level-load-info-method-10 () none) ;; 10 ;; (get-callback-by-slot! (_type_ int) object) + ) + ) +|# + +#| +(deftype login-state (basic) + ((state int32 :offset-assert 4) + (pos uint32 :offset-assert 8) + (elts uint32 :offset-assert 12) + (elt drawable 16 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype level (basic) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (load-name symbol :offset-assert 8) ;; guessed by decompiler + (nickname symbol :offset-assert 12) ;; guessed by decompiler + (index int32 :offset-assert 16) + (status symbol :offset-assert 20) ;; guessed by decompiler + (borrow-level level 3 :offset-assert 24) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (borrow-from-level level :offset-assert 36) ;; guessed by decompiler + (heap kheap :inline :offset-assert 48) + (borrow-heap kheap 3 :offset-assert 64) ;; guessed by decompiler + (bsp bsp-header :offset-assert 112) ;; guessed by decompiler + (art-group load-dir-art-group :offset-assert 116) ;; guessed by decompiler + (info level-load-info :offset-assert 120) ;; guessed by decompiler + (texture-page-dir UNKNOWN 11 :offset-assert 128) + (loaded-texture-page texture-page 16 :offset-assert 260) ;; guessed by decompiler + (loaded-texture-page-count int32 :offset-assert 324) + (entity entity-links-array :offset-assert 328) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (upload-size int32 19 :offset-assert 408) ;; guessed by decompiler + (inside-boxes? basic :offset-assert 484) + (display? symbol :offset-assert 488) ;; guessed by decompiler + (render? symbol :offset-assert 492) ;; guessed by decompiler + (meta-inside? symbol :offset-assert 496) ;; guessed by decompiler + (force-inside? symbol :offset-assert 500) ;; guessed by decompiler + (load-id uint32 :offset-assert 504) + (mood-context mood-context :offset-assert 508) + (mood-func (function mood-context float int none) :offset-assert 512) ;; guessed by decompiler + (mood-init (function mood-context none) :offset-assert 516) ;; guessed by decompiler + (vis-bits pointer 2 :offset-assert 520) ;; guessed by decompiler + (all-visible? symbol :offset-assert 528) ;; guessed by decompiler + (force-all-visible? symbol :offset-assert 532) ;; guessed by decompiler + (linking symbol :offset-assert 536) ;; guessed by decompiler + (vis-info level-vis-info 8 :offset-assert 540) ;; guessed by decompiler + (vis-self-index int32 :offset-assert 572) + (vis-adj-index int32 :offset-assert 576) + (vis-buffer uint8 :offset-assert 580) ;; guessed by decompiler + (mem-usage-block memory-usage-block :offset-assert 584) ;; guessed by decompiler + (mem-usage int32 :offset-assert 588) + (code-memory-start pointer :offset-assert 592) ;; guessed by decompiler + (code-memory-end pointer :offset-assert 596) ;; guessed by decompiler + (load-start-time uint64 :offset-assert 600) + (load-stop-time uint64 :offset-assert 608) + (load-buffer uint32 2 :offset-assert 616) ;; guessed by decompiler + (load-buffer-size uint32 :offset-assert 624) + (load-buffer-last dgo-header :offset-assert 628) + (load-buffer-mode level-memory-mode :offset-assert 632) ;; guessed by decompiler + (display-start-time uint64 :offset-assert 640) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (task-mask task-mask :offset-assert 652) + (tfrag-gs-test uint64 :offset-assert 656) ;; gs-test + (texture-dirty-masks texture-mask 11 :offset-assert 672) ;; guessed by decompiler + (texture-mask texture-mask 19 :offset-assert 848) ;; guessed by decompiler + (tfrag-last-calls uint32 6 :offset-assert 1152) ;; guessed by decompiler + (texture-anim-array texture-anim-array 11 :offset-assert 1176) ;; guessed by decompiler + (light-hash light-hash :offset-assert 1220) ;; guessed by decompiler + (draw-priority float :offset-assert 1224) + (draw-index int32 :offset-assert 1228) + (part-engine engine :offset-assert 1232) ;; guessed by decompiler + (user-object basic 4 :offset-assert 1236) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (loaded-text-info-count int32 :offset-assert 1252) + (loaded-text-info game-text-info 16 :offset-assert 1256) ;; guessed by decompiler + (level-type type :offset-assert 1320) ;; guessed by decompiler + (load-order uint64 :offset-assert 1328) + (slot int32 :offset-assert 1336) + (filter-num uint32 :offset-assert 1340) + (filter-name UNKNOWN 16 :offset-assert 1344) + (filter-look UNKNOWN 16 :offset-assert 1408) + (buffer kheap :offset-assert 1424) + ) + :method-count-assert 30 + :size-assert #x594 + :flag-assert #x1e00000594 + (:methods + (level-method-9 () none) ;; 9 ;; (deactivate (_type_) _type_) + (level-method-10 () none) ;; 10 ;; (unload! (_type_) _type_) + (level-method-11 () none) ;; 11 ;; (is-object-visible? (_type_ int) symbol) + (level-method-12 () none) ;; 12 ;; (level-method-12 () none) + (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) + (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) + (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_) + (level-method-27 () none) ;; 27 ;; (load-common-package (_type_) none) + (level-method-28 () none) ;; 28 ;; (init-vis-from-bsp (_type_) none) + (level-method-29 () none) ;; 29 ;; (vis-clear (_type_) none) + ) + ) +|# + +#| +(deftype level-group (basic) + ((length int32 :offset-assert 4) + (entity-link entity-links :offset-assert 16) + (border? symbol :offset-assert 20) ;; guessed by decompiler + (vis? symbol :offset-assert 24) ;; guessed by decompiler + (want-level basic :offset-assert 28) + (receiving-level basic :offset-assert 32) + (load-commands pair :offset-assert 36) ;; guessed by decompiler + (play? symbol :offset-assert 40) ;; guessed by decompiler + (prev-target-pos UNKNOWN 2 :offset-assert 48) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (curr-target-pos UNKNOWN 2 :offset-assert 80) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (prev-camera-pos UNKNOWN 2 :offset-assert 112) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (curr-camera-pos UNKNOWN 2 :offset-assert 144) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (heap kheap :inline :offset-assert 176) + (car-heap kheap :inline :offset-assert 192) + (driver-heap kheap :inline :offset-assert 208) + (cars-heap kheap :inline :offset-assert 224) + (sound-bank sound-bank-state 7 :offset-assert 240) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (disk-load-timing? symbol :offset-assert 352) ;; guessed by decompiler + (load-level symbol :offset-assert 356) ;; guessed by decompiler + (load-size uint32 :offset-assert 360) + (load-time float :offset-assert 364) + (load-login-time float :offset-assert 368) + (draw-level-count int32 :offset-assert 372) + (draw-level level 19 :offset-assert 376) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (draw-index-map uint8 19 :offset-assert 452) ;; guessed by decompiler + (shared-ties basic :offset-assert 472) + (status-cache-sync uint16 :offset-assert 476) + (load-order uint64 :offset-assert 480) + (wide-level UNKNOWN 2 :offset-assert 488) + (tfrag-login-level basic :offset-assert 496) + (level level 19 :offset-assert 548) ;; guessed by decompiler + (data UNKNOWN 19 :offset-assert 548) + (level0 level :inline :offset-assert 548) + (level1 level :inline :offset-assert 1988) + (level2 level :inline :offset-assert 3428) + (level3 level :inline :offset-assert 4868) + (level4 level :inline :offset-assert 6308) + (level5 level :inline :offset-assert 7748) + (car0 level :inline :offset-assert 9188) + (car1 level :inline :offset-assert 10628) + (car2 level :inline :offset-assert 12068) + (car3 level :inline :offset-assert 13508) + (car4 level :inline :offset-assert 14948) + (car5 level :inline :offset-assert 16388) + (driver0 level :inline :offset-assert 17828) + (driver1 level :inline :offset-assert 19268) + (driver2 level :inline :offset-assert 20708) + (driver3 level :inline :offset-assert 22148) + (driver4 level :inline :offset-assert 23588) + (driver5 level :inline :offset-assert 25028) + (level-default level :inline :offset-assert 26468) + ) + :method-count-assert 34 + :size-assert #x6d04 + :flag-assert #x2200006d04 + (:methods + (level-group-method-9 () none) ;; 9 ;; (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) + (level-group-method-13 () none) ;; 13 ;; (activate-levels! (_type_) int) + (level-group-method-14 () none) ;; 14 ;; (debug-print-entities (_type_ symbol type string) none) + (level-group-method-15 () none) ;; 15 ;; (debug-draw-actors (_type_ symbol) none) + (level-group-method-16 () none) ;; 16 ;; (assign-draw-indices (_type_) none) + (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-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) + (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) + (level-group-method-26 () none) ;; 26 ;; (level-status? (_type_ symbol symbol) symbol) + (level-group-method-27 () none) ;; 27 ;; (do-nothing (_type_) none) + (level-group-method-28 () none) ;; 28 ;; (load-in-progress? (_type_) symbol) + (level-group-method-29 () none) ;; 29 ;; (is-load-allowed? (_type_ (pointer symbol)) symbol) + (level-group-method-30 () none) ;; 30 ;; (level-get-most-disposable (_type_) level) + (level-group-method-31 () none) ;; 31 + (level-group-method-32 () none) ;; 32 + (level-group-method-33 () none) ;; 33 + ) + ) +|# + +;; (define-extern *level* level-group) ;; level-group +;; (define-extern *draw-index* object) ;; int +;; (define-extern *level-index* object) ;; int +;; (define-extern *city-mode* object) ;; symbol +;; (define-extern *lobby-levels* array) +;; (define-extern *lobby-levels-display* array) +;; (define-extern *lobby-levels-tmp* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; minimap-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype minimap-class-node (structure) + ((default-position vector :inline :offset-assert 0) + (flags minimap-flag :offset-assert 16) + (name string :offset-assert 20) ;; guessed by decompiler + (icon-xy vector2ub :inline :offset-assert 24) + (class uint16 :offset-assert 26) ;; minimap-class + (scale float :offset-assert 28) + (color rgba :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype connection-minimap (connection-pers) + ((next connection-minimap :offset-assert 0) + (handle uint64 :offset-assert 8) ;; handle + (position vector :offset-assert 16) + (alpha float :offset-assert 20) + (flags minimap-flag :offset-assert 24) + (class minimap-class-node :offset-assert 28) + (node uint16 :offset-assert 32) + (edge-ry int16 :offset-assert 34) + (last-world-pos vector :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ;; field key uses ~A with a signed load. + ) +|# + +#| +(deftype engine-minimap (engine-pers) + ((alive-list connection-minimap :offset-assert 24) + (dead-list connection-minimap :offset-assert 28) + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + ) +|# + +#| +(deftype minimap-draw-work (structure) + ((buf dma-buffer :offset-assert 0) ;; guessed by decompiler + (global-flags uint32 :offset-assert 4) + (draw-pos vector4w :inline :offset-assert 16) + (mat matrix :inline :offset-assert 32) + (corner vector 4 :offset-assert 96) ;; guessed by decompiler + (vec vector :inline :offset-assert 160) + (pos vector :inline :offset-assert 176) + (mid-val float :offset-assert 192) + ) + :method-count-assert 9 + :size-assert #xc4 + :flag-assert #x9000000c4 + ) +|# + +#| +(deftype minimap (structure) + ((draw-tmpl dma-gif-packet :inline :offset-assert 0) + (sprite-tmpl dma-gif-packet :inline :offset-assert 32) + (sprite2-tmpl dma-gif-packet :inline :offset-assert 64) + (adgif-tmpl dma-gif-packet :inline :offset-assert 96) + (color vector4w :inline :offset-assert 128) + (tex-coords bounding-box2 :inline :offset-assert 144) + (race-corner vector :inline :offset-assert 160) + (mat matrix :inline :offset-assert 176) + (tex-offset vector2 :inline :offset-assert 240) + (race-tex texture :offset-assert 248) ;; guessed by decompiler + (race-scale float :offset-assert 252) + (meters-per-texel float :offset-assert 256) + (icon-inv-scale float :offset-assert 260) + (fade float :offset-assert 264) + (goal-time float :offset-assert 268) + (engine engine-minimap :offset-assert 272) ;; guessed by decompiler + (engine-key uint32 :offset-assert 276) + ) + :method-count-assert 16 + :size-assert #x118 + :flag-assert #x1000000118 + (:methods + (minimap-method-9 () none) ;; 9 ;; (debug-draw (_type_) none) + (minimap-method-10 () none) ;; 10 ;; (get-trail-for-connection (_type_ connection-minimap symbol) minimap-trail) + (minimap-method-11 () none) ;; 11 ;; (get-icon-draw-pos (_type_ connection-minimap minimap-trail vector float vector) symbol) + (minimap-method-12 () none) ;; 12 ;; (add-icon! (_type_ process uint int vector int) connection-minimap) + (minimap-method-13 () none) ;; 13 ;; (free-trail-by-connection (_type_ connection-minimap) none) + (minimap-method-14 () none) ;; 14 ;; (update-trails (_type_) none) + (minimap-method-15 () none) ;; 15 ;; (draw-1 (_type_ dma-buffer vector4w symbol) none) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; main-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype frame-stats (structure) + ((field-time time-frame 2 :offset-assert 0) ;; guessed by decompiler + (field int32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype screen-filter (basic) + ((draw? symbol :offset-assert 4) ;; guessed by decompiler + (bucket int32 :offset-assert 8) ;; bucket-id + (depth int32 :offset-assert 12) + (ztest uint64 :offset-assert 16) + (color vector :inline :offset-assert 32) + (color-src vector :inline :offset-assert 48) + (color-dest vector :inline :offset-assert 64) + (extra vector :inline :offset-assert 80) + (speed float :offset-assert 80) + (current-interp float :offset-assert 84) + (lock-vsync? symbol :offset-assert 96) ;; guessed by decompiler + (idx int32 :offset-assert 100) + (frames int32 :offset-assert 104) + ) + :method-count-assert 12 + :size-assert #x6c + :flag-assert #xc0000006c + (:methods + (screen-filter-method-9 () none) ;; 9 ;; (draw (_type_) none) + (screen-filter-method-10 () none) ;; 10 ;; (setup (_type_ vector vector float bucket-id int int symbol) none) + (screen-filter-method-11 () none) ;; 11 ;; (disable (_type_) none) + ) + ) +|# + +#| +(deftype col-rend (basic) + ((draw? symbol :offset-assert 4) ;; guessed by decompiler + (outline? symbol :offset-assert 8) ;; guessed by decompiler + (show-back-faces? symbol :offset-assert 12) ;; guessed by decompiler + (show-normals? symbol :offset-assert 16) ;; guessed by decompiler + (ghost-hidden? symbol :offset-assert 20) ;; guessed by decompiler + (show-only uint32 :offset-assert 24) + (show-only-mask uint32 :offset-assert 28) + (cspec collide-spec :offset-assert 32) ;; guessed by decompiler + (track uint8 :offset-assert 36) + (bbox-radius float :offset-assert 40) + (bbox-center vector :inline :offset-assert 48) + (camera-to-bbox-dist float :offset-assert 64) + ) + :method-count-assert 10 + :size-assert #x44 + :flag-assert #xa00000044 + (:methods + (col-rend-method-9 () none) ;; 9 ;; (draw (_type_) none) + ) + ) +|# + +;; (define-extern *stats-poly* object) ;; symbol +;; (define-extern *stats-memory* object) ;; symbol +;; (define-extern *stats-memory-short* object) ;; symbol +;; (define-extern *stats-memory-level-index* object) ;; int +;; (define-extern *stats-collide* object) ;; symbol +;; (define-extern *stats-bsp* object) ;; symbol +;; (define-extern *stats-buffer* object) ;; symbol +;; (define-extern *stats-target* object) ;; symbol +;; (define-extern *stats-profile-bars* object) ;; symbol +;; (define-extern *stats-perf* object) ;; symbol +;; (define-extern *stats-sound* object) +;; (define-extern *artist-all-visible* object) ;; symbol +;; (define-extern *artist-flip-visible* object) ;; symbol +;; (define-extern *artist-fix-visible* object) ;; symbol +;; (define-extern *artist-fix-frustum* object) ;; symbol +;; (define-extern *artist-error-spheres* object) ;; symbol +;; (define-extern *artist-use-menu-subdiv* object) ;; symbol +;; (define-extern *display-profile* object) ;; symbol +;; (define-extern *display-sidekick-stats* object) ;; symbol +;; (define-extern *display-quad-stats* object) ;; symbol +;; (define-extern *display-tri-stats* object) ;; symbol +;; (define-extern *display-ground-stats* object) ;; symbol +;; (define-extern *display-collision-marks* object) ;; symbol +;; (define-extern *display-collide-cache* object) ;; symbol +;; (define-extern *display-render-collision* object) ;; symbol +;; (define-extern *display-hipri-collision-marks* object) ;; symbol +;; (define-extern *display-edge-collision-marks* object) ;; symbol +;; (define-extern *display-geo-marks* object) ;; symbol +;; (define-extern *display-target-marks* object) ;; symbol +;; (define-extern *target-rc-board-controls* object) ;; symbol +;; (define-extern *display-collide-history* object) ;; int +;; (define-extern *amy-cam* object) ;; symbol +;; (define-extern *display-xyz-axes* object) ;; symbol +;; (define-extern *display-cam-collide-history* object) ;; symbol +;; (define-extern *record-cam-collide-history* object) ;; symbol +;; (define-extern *display-cam-master-marks* object) ;; symbol +;; (define-extern *display-cam-other* object) ;; symbol +;; (define-extern *display-camera-marks* object) ;; symbol +;; (define-extern *camera-no-mip-correction* object) ;; symbol +;; (define-extern *camera-turbo-free* object) ;; symbol +;; (define-extern *suppress-vehicle-respawn* object) +;; (define-extern *display-cam-los-info* object) ;; symbol +;; (define-extern *display-cam-los-debug* object) ;; symbol +;; (define-extern *display-cam-los-marks* object) ;; symbol +;; (define-extern *display-cam-coll-marks* object) ;; symbol +;; (define-extern *display-camera-info* object) ;; symbol +;; (define-extern *display-camera-old-stats* object) ;; symbol +;; (define-extern *display-camera-last-attacker* object) ;; symbol +;; (define-extern *display-file-info* object) ;; symbol +;; (define-extern *display-actor-marks* object) ;; symbol +;; (define-extern *display-sprite-info* object) ;; symbol +;; (define-extern *display-sprite-marks* object) ;; symbol +;; (define-extern *display-sprite-spheres* object) ;; symbol +;; (define-extern *display-bsp-errors* object) +;; (define-extern *display-entity-errors* object) ;; symbol +;; (define-extern *display-capture-mode* object) ;; symbol +;; (define-extern *display-instance-info* object) ;; symbol +;; (define-extern *display-deci-count* object) ;; symbol +;; (define-extern *sync-dma* object) ;; symbol +;; (define-extern *display-strip-lines* object) ;; strip-lines-controls +;; (define-extern *display-battle-marks* object) ;; symbol +;; (define-extern *display-joint-axes* object) ;; symbol +;; (define-extern *display-nav-marks* object) ;; symbol +;; (define-extern *display-nav-network* object) ;; symbol +;; (define-extern *display-path-marks* object) ;; symbol +;; (define-extern *display-vol-marks* object) ;; symbol +;; (define-extern *display-water-marks* object) ;; symbol +;; (define-extern *display-nav-mesh* object) ;; symbol +;; (define-extern *display-race-mesh* object) ;; symbol +;; (define-extern *display-ai-tuning* object) +;; (define-extern *display-actor-pointer* object) ;; symbol +;; (define-extern *display-actor-vis* object) ;; symbol +;; (define-extern *display-actor-graph* object) ;; symbol +;; (define-extern *display-traffic-height-map* object) ;; symbol +;; (define-extern *display-trail-graph* object) ;; symbol +;; (define-extern *display-color-bars* object) ;; symbol +;; (define-extern *display-bug-report* object) ;; symbol +;; (define-extern *display-level-border* object) ;; symbol +;; (define-extern *display-memcard-info* object) ;; symbol +;; (define-extern *display-split-boxes* object) ;; symbol +;; (define-extern *display-split-box-info* object) ;; symbol +;; (define-extern *display-texture-distances* object) ;; symbol +;; (define-extern *display-texture-download* object) ;; symbol +;; (define-extern *display-art-control* object) ;; symbol +;; (define-extern *display-gui-control* object) ;; symbol +;; (define-extern *display-level-spheres* object) ;; symbol +;; (define-extern *time-of-day-fast* object) ;; symbol +;; (define-extern *display-iop-info* object) ;; symbol +;; (define-extern *slow-frame-rate* object) ;; symbol +;; (define-extern *display-region-marks* object) ;; symbol +;; (define-extern *execute-regions* object) ;; symbol +;; (define-extern *disable-bot* object) +;; (define-extern *debug-reverb* object) +;; (define-extern *debug-whoosh* object) +;; (define-extern *debug-engine-sounds* object) +;; (define-extern *debug-pause* object) ;; symbol +;; (define-extern *debug-view-anims* object) ;; symbol +;; (define-extern *debug-unkillable* object) ;; symbol +;; (define-extern *debug-player-vehicle-unkillable* object) ;; symbol +;; (define-extern *debug-actor* object) ;; process +;; (define-extern *debug-force-highspeed* object) +;; (define-extern *gun-marks* object) ;; symbol +;; (define-extern *debug-split-screen* object) +;; (define-extern *ignore-want-load-display* object) +;; (define-extern *bug-report-output-mode* object) ;; symbol +;; (define-extern *draw-debug-boxes* object) +;; (define-extern *hide-menus* object) +;; (define-extern *list-all-scenes* object) +;; (define-extern *display-scene-control* object) ;; scene-controls +;; (define-extern *display-bot-marks* object) ;; bot-marks-controls +;; (define-extern *display-race-marks* object) ;; race-marks-controls +;; (define-extern *race-record-path* object) ;; symbol +;; (define-extern *select-race* object) ;; race-selection +;; (define-extern *select-race-path* object) ;; int +;; (define-extern *bot-record-path* object) ;; int +;; (define-extern *subdivide-draw-mode* object) ;; subdivide-setting +;; (define-extern *subdivide-scissor-draw-mode* object) ;; subdivide-setting +;; (define-extern *subdivide-foreground-draw-mode* object) ;; subdivide-setting +;; (define-extern *subdivide-ocean-draw-mode* object) ;; subdivide-setting +;; (define-extern *dproc* object) ;; process +;; (define-extern *run* object) ;; symbol +;; (define-extern *teleport* object) ;; symbol +;; (define-extern *teleport-count* object) ;; int +;; (define-extern *draw-hook* object) ;; (function none) +;; (define-extern *debug-hook* object) ;; pair +;; (define-extern *menu-hook* object) ;; (function debug-menu-context) +;; (define-extern *progress-hook* object) ;; (function none) +;; (define-extern *dma-timeout-hook* object) ;; (function none) +;; (define-extern *frame-stats* object) ;; frame-stats +;; (define-extern *col-rend* col-rend) ;; col-rend +;; (define-extern debug-actor? function) ;; (function object symbol) +;; (define-extern *record-fma* object) +;; (define-extern *record-fma-use-path* object) +;; (define-extern *record-fma-path-mode* object) +;; (define-extern *record-fma-path-high-res* object) +;; (define-extern *record-fma-path-dry-run* object) +;; (define-extern *record-fma-real* object) +;; (define-extern *record-fma-low-res* object) +;; (define-extern *record-fma-start* object) +;; (define-extern *record-fma-end* object) +;; (define-extern *record-fma-pal* object) +;; (define-extern *profile-slot* object) +;; (define-extern *game-mode* object) +;; (define-extern *lobby-local-players* object) +;; (define-extern *first-boot* object) ;; symbol +;; (define-extern *cheat-temp* object) ;; (pointer int32) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; traffic-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-spawn-params (structure) + ((behavior uint64 :offset-assert 0) + (nav-mesh basic :offset-assert 8) + (position vector :inline :offset-assert 16) + (rotation quaternion :inline :offset-assert 32) + (velocity vector :inline :offset-assert 48) + (handle uint64 :offset-assert 64) + (handle-parent uint64 :offset-assert 72) + (user-data uint32 :offset-assert 80) + (entity basic :offset-assert 84) + (flags uint32 :offset-assert 88) + (player-id int8 :offset-assert 92) + (level-slot int8 :offset-assert 93) + (driver-type uint8 :offset-assert 94) + (driver-slot int8 :offset-assert 95) + (impact-callback basic :offset-assert 96) + (proc basic :offset-assert 100) + ) + :method-count-assert 9 + :size-assert #x68 + :flag-assert #x900000068 + ) +|# + +;; (define-extern *vehicle-manager* object) ;; vehicle-manager +;; (define-extern vehicle-type->string function) +;; (define-extern driver-type->string function) +;; (define-extern type-from-driver-type function) +;; (define-extern level-from-driver-type function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-task-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-level-info (structure) + ((flags uint32 :offset-assert 0) + (text-id uint32 :offset-assert 4) + (venue-text-id uint32 :offset-assert 8) + (caps-text-id uint32 :offset-assert 12) + (tex-name basic :offset-assert 16) + (race-mesh-name basic :offset-assert 20) + (race-banner-name basic :offset-assert 24) + (race-ai-tuning-name basic :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern *net-play-mode-names* array) +;; (define-extern *net-play-mode-text-ids* object) +;; (define-extern *net-play-mode-icon-string* array) +;; (define-extern *task-level* array) ;; (array symbol) +;; (define-extern *task-level-info* array) +;; (define-extern *driver-list-cup1* array) +;; (define-extern *driver-list-cup1-gp* array) +;; (define-extern *driver-list-cup1-temp* array) +;; (define-extern *driver-list-cup2* array) +;; (define-extern *driver-list-cup2-gp* array) +;; (define-extern *driver-list-cup3* array) +;; (define-extern *driver-list-cup3-capture* array) +;; (define-extern *driver-list-cup3-gp* array) +;; (define-extern *driver-list-cup4-capture* array) +;; (define-extern *driver-list-cup4-gp* array) +;; (define-extern *driver-list-boss* array) +;; (define-extern *driver-list-training* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; task-control-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype game-task-event (basic) + ((flags uint8 :offset-assert 7) ;; game-task-flags + (icon uint16 :offset-assert 6) + (skull-cost uint8 :offset-assert 6) + (scene string :offset-assert 8) ;; guessed by decompiler + (distance meters :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype game-task-node-stats (structure) + ((death-count uint8 :offset-assert 0) + (vehicle uint8 :offset-assert 1) + (medal uint8 :offset-assert 2) + (ranking uint8 :offset-assert 3) + (score float :offset-assert 4) + (time float :offset-assert 8) + (duration float :offset-assert 12) + (order uint16 :offset-assert 16) + (end-mode uint16 :offset-assert 18) + (cash uint32 :offset-assert 20) + (tuning uint32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype game-task-advanced-options (structure) + ((data UNKNOWN 8 :offset-assert 0) + (weapons uint32 :offset-assert 0) + (flags uint8 :offset-assert 4) + (param1 uint8 :offset-assert 5) + (param2 uint8 :offset-assert 6) + (param3 uint8 :offset-assert 7) + (lword uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype game-task-node-info (basic) + ((level symbol :offset-assert 4) ;; guessed by decompiler + (net-play-mode uint8 :offset-assert 9) + (name string :offset-assert 12) ;; guessed by decompiler + (max-humans int8 :offset-assert 16) + (max-cpu int8 :offset-assert 17) + (min-players int8 :offset-assert 18) + (when-open (array game-task-event) :offset-assert 20) ;; guessed by decompiler + (flags game-task-node-flag :offset-assert 24) + (task-mask task-mask :offset-assert 28) + (borrow pair :offset-assert 32) ;; guessed by decompiler + (close-time uint32 :offset-assert 36) + (description text-id :offset-assert 40) ;; guessed by decompiler + (intro-scene basic :offset-assert 44) + (outro-scene basic :offset-assert 48) + (time-of-day int32 :offset-assert 52) + (task-sound-description basic :offset-assert 56) + (ipu basic :offset-assert 60) + (gold-array UNKNOWN 2 :offset-assert 64) + (silver-array UNKNOWN 2 :offset-assert 72) + (bronze-array UNKNOWN 2 :offset-assert 80) + (gold float :offset-assert 64) + (silver float :offset-assert 72) + (bronze float :offset-assert 80) + (gold-hero float :offset-assert 68) + (silver-hero float :offset-assert 76) + (bronze-hero float :offset-assert 84) + (medals-data uint32 :offset-assert 88) + (medals UNKNOWN 4 :offset-assert 88) + (unlocked uint8 :offset-assert 90) + (game-score-index uint8 :offset-assert 91) + (adv-score int16 :offset-assert 92) + (exb-score int16 :offset-assert 94) + (ai-tuning-indices basic :offset-assert 96) + (sound-bank basic :offset-assert 100) + (play-count uint32 :offset-assert 104) + (time-limit uint32 :offset-assert 108) + (ai-difficulty uint8 :offset-assert 112) + (ai-easier-after uint8 :offset-assert 113) + (ai-min-difficulty uint8 :offset-assert 114) + (ai-difficulty-step uint8 :offset-assert 115) + (default-advanced-options game-task-advanced-options :inline :offset-assert 120) + (user-advanced-options game-task-advanced-options :inline :offset-assert 128) + (default-advanced-options-adventure game-task-advanced-options :inline :offset-assert 136) + (adventure-drivers basic :offset-assert 144) + (race-start-speech basic :offset-assert 148) + (gp-start-speech basic :offset-assert 152) + (gp-win-speech basic :offset-assert 156) + (gp-finish-speech basic :offset-assert 160) + (high-scores-default basic :offset-assert 164) + (high-scores basic :offset-assert 168) + ) + :method-count-assert 14 + :size-assert #xac + :flag-assert #xe000000ac + (:methods + (game-task-node-info-method-9 () none) ;; 9 ;; (get-idx-in-task-list (_type_) int) + (game-task-node-info-method-10 () none) ;; 10 ;; (open! (_type_ symbol) int) + (game-task-node-info-method-11 () none) ;; 11 ;; (game-task-node-info-method-11 (_type_ symbol) none) + (game-task-node-info-method-12 () none) ;; 12 ;; (game-task-node-info-method-12 (_type_) symbol) + (game-task-node-info-method-13 () none) ;; 13 ;; (eval-game-task-cmd! (_type_) none) + ) + ) +|# + +#| +(deftype game-task-info (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (task-level uint8 :offset-assert 8) + (text-name text-id :offset-assert 12) ;; guessed by decompiler + (text-id-long uint32 :offset-assert 16) + (single-player basic :offset-assert 20) + (kiosk-play-node uint16 :offset-assert 24) ;; game-task-node + (play-node uint16 :offset-assert 26) ;; game-task-node + (play-continue string :offset-assert 28) ;; guessed by decompiler + (split-continue basic :offset-assert 32) + (kiosk-play-continue object :offset-assert 36) ;; guessed by decompiler + (kiosk-online-play-continue basic :offset-assert 40) + ) + :method-count-assert 10 + :size-assert #x2c + :flag-assert #xa0000002c + ;; field kiosk-play-continue uses ~A with a signed load. field kiosk-online-play-continue uses ~A with a signed load. + (:methods + (game-task-info-method-9 () none) ;; 9 ;; (get-play-list-idx (_type_) int) + ) + ) +|# + +#| +(deftype game-task-control (basic) + ((counter uint32 :offset-assert 4) + (current-node uint16 :offset-assert 10) ;; game-task-node + (current-event game-task-event :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type game-task-actor) _type_) + (game-task-control-method-9 () none) ;; 9 ;; (get-current-task-event (_type_) game-task-event) + ) + ) +|# + +#| +(deftype ambient-control (structure) + ((last-ambient-time uint64 :offset-assert 0) ;; time-frame + (last-ambient string :offset-assert 8) ;; guessed by decompiler + (last-ambient-id sound-id :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x10 + :flag-assert #xc00000010 + (:methods + (ambient-control-method-9 () none) ;; 9 ;; (ambient-control-method-9 () none) + (ambient-control-method-10 () none) ;; 10 ;; (ambient-control-method-10 () none) + (ambient-control-method-11 () none) ;; 11 ;; (ambient-control-method-11 () none) + ) + ) +|# + +#| +(deftype game-movie (structure) + ((name basic :offset-assert 0) + (score uint16 :offset-assert 4) + (flags uint16 :offset-assert 6) + (cup uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype grand-prix (structure) + ((name basic :offset-assert 0) + (score uint16 :offset-assert 4) + (flags uint16 :offset-assert 6) + (saved-data2 UNKNOWN 2 :offset-assert 8) + (saved-data uint32 :offset-assert 8) + (trophy uint16 :offset-assert 8) + (play-count uint16 :offset-assert 10) + (drivers basic :offset-assert 12) + (task UNKNOWN 3 :offset-assert 16) + (task1 uint16 :offset-assert 16) + (task2 uint16 :offset-assert 18) + (task3 uint16 :offset-assert 20) + (cup uint32 :offset-assert 24) + (intro basic :offset-assert 28) + (outro basic :offset-assert 32) + (ai-tuning-indices1 basic :offset-assert 36) + (ai-tuning-indices2 basic :offset-assert 40) + (ai-tuning-indices3 basic :offset-assert 44) + (sound-description basic :offset-assert 48) + (boss uint16 :offset-assert 52) + (boss-drivers basic :offset-assert 56) + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +;; (define-extern game-task->string function) ;; (function game-task string) +;; (define-extern c-string->game-task function) ;; (function string game-task) +;; (define-extern game-task-actor->string function) ;; (function game-task-actor string) +;; (define-extern game-task-action->string function) ;; (function game-task-action string) +;; (define-extern game-task-medal->string function) +;; (define-extern game-task-node-flag->string function) ;; (function game-task-node-flag object) +;; (define-extern game-task-node-command->string function) ;; (function game-task-node-command string) +;; (define-extern *traffic-engine* object) ;; traffic-engine +;; (define-extern *game-movie* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; car-info-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype car-layer-textures (structure) + ((data UNKNOWN 6 :offset-assert 0) + (dest basic :offset-assert 0) + (base basic :offset-assert 4) + (stripe basic :offset-assert 8) + (detail basic :offset-assert 12) + (damage basic :offset-assert 16) + (wheel-dest basic :offset-assert 0) + (wheel-base basic :offset-assert 4) + (wheel-blur basic :offset-assert 8) + (tread-dest basic :offset-assert 12) + (tread-base basic :offset-assert 16) + (tread-blur basic :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype car-textures (structure) + ((data UNKNOWN 14 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x150 + :flag-assert #x900000150 + ) +|# + +#| +(deftype car-rgb-color (vector4w) + ((red int32 :offset-assert 0) + (green int32 :offset-assert 4) + (blue int32 :offset-assert 8) + (alpha int32 :offset-assert 12) + ) + :method-count-assert 12 + :size-assert #x10 + :flag-assert #xc00000010 + (:methods + (car-rgb-color-method-9 () none) ;; 9 + (car-rgb-color-method-10 () none) ;; 10 + (car-rgb-color-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype car-hsv-color (vector) + ((hue float :offset-assert 0) + (saturation float :offset-assert 4) + (value float :offset-assert 8) + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (car-hsv-color-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype car-part-info (structure) + ((short-name-id uint32 :offset-assert 0) + (name-id uint32 :offset-assert 4) + (task uint16 :offset-assert 8) + (flags uint8 :offset-assert 10) + (medal uint8 :offset-assert 11) + (part-id uint8 :offset-assert 12) + (pad uint8 :offset-assert 13) + ) + :method-count-assert 9 + :size-assert #xe + :flag-assert #x90000000e + ) +|# + +;; (deftype tuning-info (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype upgrade-info (structure) + ((cost float :offset-assert 0) + (base uint8 :offset-assert 4) + (max uint8 :offset-assert 5) + (rookie uint8 :offset-assert 6) + (pro uint8 :offset-assert 7) + (cost-increment float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype upgrade-info-array (structure) + ((data UNKNOWN 4 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype car-upgrade-info-array (structure) + ((data UNKNOWN 15 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x3c0 + :flag-assert #x9000003c0 + ) +|# + +#| +(deftype car-info (structure) + ((base-color car-rgb-color :inline :offset-assert 0) + (stripe-color car-rgb-color :inline :offset-assert 16) + (car-type int8 :offset-assert 32) + (current-parts UNKNOWN 11 :offset-assert 33) + (tuning uint32 :offset-assert 44) + (flags uint32 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype car-info-save (structure) + ((car-type int8 :offset-assert 0) + (base-color uint32 :offset-assert 4) + (stripe-color uint32 :offset-assert 8) + (parts UNKNOWN 11 :offset-assert 12) + (tuning uint32 :offset-assert 24) + (flags uint32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype car-info-full (car-info) + ((level basic :offset-assert 52) + (wheel-blur float :offset-assert 56) + (tread-texture basic :offset-assert 60) + (textures car-textures :offset-assert 64) + (first-tbp uint32 :offset-assert 68) + (last-tbp uint32 :offset-assert 72) + (damage UNKNOWN 14 :offset-assert 76) + (lights vu-lights :inline :offset-assert 96) + (shield-vu-lights vu-lights :inline :offset-assert 208) + (shield-light-group light-group :inline :offset-assert 320) + ) + :method-count-assert 22 + :size-assert #x200 + :flag-assert #x1600000200 + (:methods + (car-info-full-method-9 () none) ;; 9 + (car-info-full-method-10 () none) ;; 10 + (car-info-full-method-11 () none) ;; 11 + (car-info-full-method-12 () none) ;; 12 + (car-info-full-method-13 () none) ;; 13 + (car-info-full-method-14 () none) ;; 14 + (car-info-full-method-15 () none) ;; 15 + (car-info-full-method-16 () none) ;; 16 + (car-info-full-method-17 () none) ;; 17 + (car-info-full-method-18 () none) ;; 18 + (car-info-full-method-19 () none) ;; 19 + (car-info-full-method-20 () none) ;; 20 + (car-info-full-method-21 () none) ;; 21 + ) + ) +|# + +#| +(deftype car-info-array (structure) + ((data UNKNOWN 15 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x3c0 + :flag-assert #x9000003c0 + ) +|# + +#| +(deftype car-level-array (basic) + ((data UNKNOWN 6 :offset-assert 16) + (textures UNKNOWN 6 :offset-assert 3088) + ) + :method-count-assert 10 + :size-assert #x13f0 + :flag-assert #xa000013f0 + (:methods + (car-level-array-method-9 () none) ;; 9 + ) + ) +|# + +;; (define-extern *car-type-names* array) +;; (define-extern type-from-vehicle-type function) ;; (function vehicle-type type) +;; (define-extern level-name-from-vehicle-type function) +;; (define-extern car-type-from-vehicle-type function) +;; (define-extern vehicle-type-from-car-type function) +;; (define-extern car-type-from-level-name function) +;; (define-extern vehicle-type-from-level-name function) +;; (define-extern vehicle-type-from-name function) +;; (define-extern *car-part-names* array) +;; (define-extern *car-part-translate-array* array) +;; (define-extern *car-part-translate-names* array) +;; (define-extern *car-look-names* array) +;; (define-extern *car-layer-names* array) +;; (define-extern *car-string-name* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; car-tables ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *car-look-mask-array* array) +;; (define-extern *car-part-info-arrays* array) +;; (define-extern *car-level-array* car-level-array) +;; (define-extern *car-default-base-color* array) +;; (define-extern *car-default-stripe-color* array) +;; (define-extern *car-upgrade-info* object) +;; (define-extern *car-part-type-to-text-table* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; capture-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gs-store-image-packet (structure) + ((vifcode vif-tag 4 :offset-assert 0) ;; guessed by decompiler + (giftag uint128 :offset-assert 16) ;; gif-tag + (bitbltbuf uint64 :offset-assert 32) ;; gs-bitbltbuf + (bitbltbuf-addr uint64 :offset-assert 40) ;; gs-reg64 + (trxpos uint64 :offset-assert 48) ;; gs-trxpos + (trxpos-addr uint64 :offset-assert 56) ;; gs-reg64 + (trxreg uint64 :offset-assert 64) ;; gs-trxreg + (trxreg-addr uint64 :offset-assert 72) ;; gs-reg64 + (finish uint64 :offset-assert 80) + (finish-addr uint64 :offset-assert 88) ;; gs-reg64 + (trxdir uint64 :offset-assert 96) ;; gs-trxdir + (trxdir-addr uint64 :offset-assert 104) ;; gs-reg64 + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype screen-shot-work (structure) + ((count int16 :offset-assert 0) + (size int16 :offset-assert 2) + (name string :offset-assert 4) ;; guessed by decompiler + (highres-enable symbol :offset-assert 8) ;; guessed by decompiler + (highres-objects-enable basic :offset-assert 12) + (hud-enable symbol :offset-assert 16) ;; guessed by decompiler + (letterbox-enable basic :offset-assert 20) + (debug-enable basic :offset-assert 24) + (dir basic :offset-assert 28) + (dir-checked? basic :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +;; (define-extern *screen-shot-work* object) ;; screen-shot-work +;; (define-extern *image-name* object) ;; string +;; (define-extern *capture-tga-buffer* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; math-camera-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vis-gif-tag (structure) + ((fog0 uint32 :offset-assert 0) + (strip uint32 :offset-assert 4) + (regs uint32 :offset-assert 8) + (fan uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype cull-info (structure) + ((x-fact float :offset-assert 0) + (y-fact float :offset-assert 4) + (z-fact float :offset-assert 8) + (cam-radius float :offset-assert 12) + (cam-x float :offset-assert 16) + (cam-y float :offset-assert 20) + (xz-dir-ax float :offset-assert 24) + (xz-dir-az float :offset-assert 28) + (xz-dir-bx float :offset-assert 32) + (xz-dir-bz float :offset-assert 36) + (xz-cross-ab float :offset-assert 40) + (yz-dir-ay float :offset-assert 44) + (yz-dir-az float :offset-assert 48) + (yz-dir-by float :offset-assert 52) + (yz-dir-bz float :offset-assert 56) + (yz-cross-ab float :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype math-camera (basic) + ((d meters :offset-assert 4) + (f meters :offset-assert 8) + (fov deg :offset-assert 12) ;; degrees + (x-ratio float :offset-assert 16) + (y-ratio float :offset-assert 20) + (x-pix float :offset-assert 24) + (x-clip float :offset-assert 28) + (x-clip-ratio-in float :offset-assert 32) + (x-clip-ratio-over float :offset-assert 36) + (y-pix float :offset-assert 40) + (y-clip float :offset-assert 44) + (y-clip-ratio-in float :offset-assert 48) + (y-clip-ratio-over float :offset-assert 52) + (cull-info cull-info :inline :offset-assert 56) + (fog-start meters :offset-assert 120) + (fog-end meters :offset-assert 124) + (fog-max float :offset-assert 128) + (fog-min float :offset-assert 132) + (reset int32 :offset-assert 136) + (smooth-step float :offset-assert 140) + (smooth-t float :offset-assert 144) + (perspective matrix :inline :offset-assert 160) + (isometric matrix :inline :offset-assert 224) + (sprite-2d matrix :inline :offset-assert 288) + (sprite-2d-hvdf vector :inline :offset-assert 352) + (camera-rot matrix :inline :offset-assert 368) + (inv-camera-rot matrix :inline :offset-assert 432) + (inv-camera-rot-smooth matrix :inline :offset-assert 496) + (inv-camera-rot-smooth-from quaternion :inline :offset-assert 560) + (camera-temp matrix :inline :offset-assert 576) + (prev-camera-temp matrix :inline :offset-assert 640) + (prev-inv-camera-rot matrix :inline :offset-assert 704) + (prev-trans vector :inline :offset-assert 768) + (hmge-scale vector :inline :offset-assert 784) + (inv-hmge-scale vector :inline :offset-assert 800) + (hvdf-off vector :inline :offset-assert 816) + (guard vector :inline :offset-assert 832) + (vis-gifs vis-gif-tag 4 :offset-assert 848) ;; guessed by decompiler + (giftex uint128 :offset-assert 848) + (gifgr uint128 :offset-assert 864) + (giftex-trans uint128 :offset-assert 880) + (gifgr-trans uint128 :offset-assert 896) + (pfog0 float :offset-assert 912) + (pfog1 float :offset-assert 916) + (trans vector :inline :offset-assert 928) + (plane plane 4 :offset-assert 944) ;; guessed by decompiler + (guard-plane plane 4 :offset-assert 1008) ;; guessed by decompiler + (shrub-mat matrix :inline :offset-assert 1072) + (quat-other quaternion :inline :offset-assert 1136) + (trans-other vector :inline :offset-assert 1152) + (shrub-mat-other matrix :inline :offset-assert 1168) + (camera-temp-other matrix :inline :offset-assert 1232) + (camera-rot-other matrix :inline :offset-assert 1296) + (camera-rot-other-sky matrix :inline :offset-assert 1360) + (camera-rot-other-sprite matrix :inline :offset-assert 1424) + (inv-camera-rot-other matrix :inline :offset-assert 1488) + (plane-other plane 4 :offset-assert 1552) ;; guessed by decompiler + (guard-plane-other plane 4 :offset-assert 1616) ;; guessed by decompiler + (mirror-trans vector :inline :offset-assert 1680) + (mirror-normal vector :inline :offset-assert 1696) + (fov-correction-factor float :offset-assert 1712) + ) + :method-count-assert 10 + :size-assert #x6b4 + :flag-assert #xa000006b4 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + (math-camera-method-9 () none) ;; 9 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; viewport-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype viewport (structure) + ((fog-corner UNKNOWN 4 :offset-assert 0) + (min-fog-corner vector :inline :offset-assert 64) + (max-fog-corner vector :inline :offset-assert 80) + (prev-inv-camera-rot matrix :inline :offset-assert 96) + (motion-vector vector :inline :offset-assert 160) + (math-camera basic :offset-assert 176) + (index int32 :offset-assert 180) + (frame uint64 :offset-assert 184) + (frame-a uint64 :offset-assert 192) + (zbuf-on uint64 :offset-assert 200) + (zbuf-off uint64 :offset-assert 208) + (scissor uint64 :offset-assert 216) + (clamp uint64 :offset-assert 224) + (tex0 uint64 :offset-assert 232) + (tex0-24 uint64 :offset-assert 240) + (copy-frame uint64 :offset-assert 248) + (copy-tex0 uint64 :offset-assert 256) + (copy-dma basic :offset-assert 264) + (hflip-zbuf-dma basic :offset-assert 268) + (glow-frame-1 uint64 :offset-assert 272) + (glow-tex0-1 uint64 :offset-assert 280) + (glow-frame-2 uint64 :offset-assert 288) + (glow-tex0-2 uint64 :offset-assert 296) + (shadow-texoffset vector :inline :offset-assert 304) + (shadow-texscale vector :inline :offset-assert 320) + (shadow-invert-frame uint64 :offset-assert 336) + (shadow-dma-frame uint64 :offset-assert 344) + (shadow-dma-tex0 uint64 :offset-assert 352) + (shadow-dma basic :offset-assert 360) + (warp-shader adgif-shader :inline :offset-assert 368) + (blur-forward-dma basic :offset-assert 448) + (blur-reverse-dma basic :offset-assert 452) + (blur-finish-dma basic :offset-assert 456) + (blur-sx int32 :offset-assert 460) + (blur-sy int32 :offset-assert 464) + (blur-hx int32 :offset-assert 468) + (blur-hy int32 :offset-assert 472) + (blur-cx int32 :offset-assert 476) + (blur-cy int32 :offset-assert 480) + (blur-frame-0 uint64 :offset-assert 488) + (blur-frame-1 uint64 :offset-assert 496) + (blur-frame-a uint64 :offset-assert 504) + (blur-tex0-0 uint64 :offset-assert 512) + (blur-tex0-1 uint64 :offset-assert 520) + (blur-tex0-a uint64 :offset-assert 528) + (blur-clamp uint64 :offset-assert 536) + (blur-scissor uint64 :offset-assert 544) + (blur-scale float :offset-assert 552) + (screen-maxx int32 :offset-assert 556) + (screen-maxy int32 :offset-assert 560) + (screen-sx int32 :offset-assert 564) + (screen-sy int32 :offset-assert 568) + (screen-hx int32 :offset-assert 572) + (screen-hy int32 :offset-assert 576) + (screen-qx int32 :offset-assert 580) + (screen-qy int32 :offset-assert 584) + (screen-cx int32 :offset-assert 588) + (screen-cy int32 :offset-assert 592) + (ratio-x float :offset-assert 596) + (ratio-y float :offset-assert 600) + (prev-inv-camera-rot matrix :inline :offset-assert 96) + (minx-on-screen int32 :offset-assert 672) + (miny-on-screen int32 :offset-assert 676) + (scissor-on-screen uint64 :offset-assert 680) + ) + :method-count-assert 16 + :size-assert #x2b0 + :flag-assert #x10000002b0 + (:methods + (viewport-method-9 () none) ;; 9 + (viewport-method-10 () none) ;; 10 + (viewport-method-11 () none) ;; 11 + (viewport-method-12 () none) ;; 12 + (viewport-method-13 () none) ;; 13 + (viewport-method-14 () none) ;; 14 + (viewport-method-15 () none) ;; 15 + ) + ) +|# + +#| +(deftype viewport-array (structure) + ((mode uint32 :offset-assert 0) + (num-viewports uint32 :offset-assert 4) + (current-viewport-index uint32 :offset-assert 8) + (data UNKNOWN 3 :offset-assert 16) + (default viewport :inline :offset-assert 1392) + ) + :method-count-assert 12 + :size-assert #x820 + :flag-assert #xc00000820 + (:methods + (viewport-array-method-9 () none) ;; 9 + (viewport-array-method-10 () none) ;; 10 + (viewport-array-method-11 () none) ;; 11 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; blit-displays-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype blit-displays-work (structure) + ((adgif-tmpl dma-gif-packet :inline :offset-assert 0) + (sprite-tmpl dma-gif-packet :inline :offset-assert 32) + (contrast-tmpl dma-gif-packet :inline :offset-assert 64) + (sprite-slow-tmpl dma-gif-packet :inline :offset-assert 96) + (screen-tmpl dma-gif-packet :inline :offset-assert 128) + (blur-tmpl dma-gif-packet :inline :offset-assert 160) + (blur-tmpl2 dma-gif-packet :inline :offset-assert 192) + (line-tmpl dma-gif-packet :inline :offset-assert 224) + (scan-tmpl dma-gif-packet :inline :offset-assert 256) + (color vector4w :inline :offset-assert 288) + (line-color uint64 :offset-assert 304) ;; gs-rgbaq + (scan-colors vector4w 15 :offset-assert 320) ;; guessed by decompiler + (vu1-enable-user-menu uint64 :offset-assert 560) ;; vu1-renderer-mask + (texture-enable-user-menu uint32 :offset-assert 568) + (horizontal-flip-flag symbol :offset-assert 572) ;; guessed by decompiler + (scan-alpha float :offset-assert 576) + (scanline uint32 :offset-assert 580) + (progress-interp float :offset-assert 584) + (progress-interp-dest float :offset-assert 588) + (progress-interp-speed float :offset-assert 592) + ) + :method-count-assert 27 + :size-assert #x254 + :flag-assert #x1b00000254 + (:methods + (blit-displays-work-method-9 () none) ;; 9 ;; (blit-standard (_type_ dma-buffer int int int) none) + (blit-displays-work-method-10 () none) ;; 10 ;; (blit-slow-time (_type_ dma-buffer int int int) none) + (blit-displays-work-method-11 () none) ;; 11 ;; (draw-sprite-color (_type_ dma-buffer int) none) + (blit-displays-work-method-12 () none) ;; 12 ;; (draw-letterbox (_type_ dma-buffer float int float) none) + (blit-displays-work-method-13 () none) ;; 13 ;; (draw-antialias (_type_ dma-buffer int int int) none) + (blit-displays-work-method-14 () none) ;; 14 ;; (draw-color-filter (_type_ dma-buffer vector) none) + (blit-displays-work-method-15 () none) ;; 15 ;; (fx-to-raster-flipped (_type_ dma-buffer) none) + (blit-displays-work-method-16 () none) ;; 16 ;; (draw-zoom-blur (_type_ dma-buffer int) none) + (blit-displays-work-method-17 () none) ;; 17 ;; (setup-zoom-blur-2d (_type_ vector int float symbol) none) + (blit-displays-work-method-18 () none) ;; 18 ;; (draw-brightness-and-contrast (_type_ dma-buffer float float) none) + (blit-displays-work-method-19 () none) ;; 19 ;; (do-blit-displays (_type_) none) + (blit-displays-work-method-20 () none) ;; 20 ;; (blit-menu-mode (_type_ dma-buffer) none) + (blit-displays-work-method-21 () none) ;; 21 ;; (get-menu-mode (_type_) symbol) + (blit-displays-work-method-22 () none) ;; 22 ;; (get-screen-copied (_type_) symbol) + (blit-displays-work-method-23 () none) ;; 23 ;; (get-horizontal-flip-flag (_type_) symbol) + (blit-displays-work-method-24 () none) ;; 24 ;; (set-menu-mode (_type_ symbol) symbol) + (blit-displays-work-method-25 () none) ;; 25 ;; (set-screen-copied (_type_ symbol) symbol) + (blit-displays-work-method-26 () none) ;; 26 ;; (set-horizontal-flip-flag (_type_ symbol) symbol) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sparks-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype spark (structure) + ((pos vector :inline :offset-assert 0) + (age float :offset-assert 12) + (vel vector :inline :offset-assert 16) + (length float :offset-assert 28) + (accel vector :inline :offset-assert 32) + (alpha float :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype spark-vport (structure) + ((mat UNKNOWN 4 :offset-assert 0) + (hvdf-offset vector :inline :offset-assert 256) + (hmge-scale vector :inline :offset-assert 272) + (frame qword :inline :offset-assert 288) + (zbuf qword :inline :offset-assert 304) + (scissor qword :inline :offset-assert 320) + (pfog0 vector :inline :offset-assert 336) + ) + :method-count-assert 9 + :size-assert #x160 + :flag-assert #x900000160 + ) +|# + +#| +(deftype spark-color-group (structure) + ((colors UNKNOWN 4 :offset-assert 0) + (alpha gs-adcmd :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype spark-constants (structure) + ((vport UNKNOWN 2 :offset-assert 0) + (adgif-tag qword :inline :offset-assert 704) + (prim-tags UNKNOWN 3 :offset-assert 720) + (color-groups UNKNOWN 13 :offset-assert 768) + (friction float :offset-assert 1808) + (scale float :offset-assert 1812) + (matrix-count int32 :offset-assert 1816) + (set-matrix-time int32 :offset-assert 1820) + ) + :method-count-assert 9 + :size-assert #x720 + :flag-assert #x900000720 + ) +|# + +#| +(deftype spark-vert (structure) + ((color vector :inline :offset-assert 0) + (pos vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype spark-line-packet (structure) + ((tag qword :inline :offset-assert 0) + (alpha qword :inline :offset-assert 16) + (verts UNKNOWN 4 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype spark-viewport-packet (structure) + ((tag qword :inline :offset-assert 0) + (frame qword :inline :offset-assert 16) + (zbuf qword :inline :offset-assert 32) + (scissor qword :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype spark-launch-params (structure) + ((pos vector :inline :offset-assert 0) + (vel vector :inline :offset-assert 16) + (accel vector :inline :offset-assert 32) + (age float :offset-assert 48) + (alpha float :offset-assert 52) + (y-floor float :offset-assert 56) + (length float :offset-assert 60) + (color-index uint32 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype sparks-work (basic) + ((next-free int32 :offset-assert 4) + (constants spark-constants :inline :offset-assert 16) + (start vector :inline :offset-assert 1840) + (vel vector :inline :offset-assert 1856) + (accel vector :inline :offset-assert 1872) + (test basic :offset-assert 1888) + (vecs UNKNOWN 4 :offset-assert 1904) + (y-floor UNKNOWN 512 :offset-assert 1968) + (data UNKNOWN 512 :offset-assert 4016) + ) + :method-count-assert 20 + :size-assert #x6fb0 + :flag-assert #x1400006fb0 + (:methods + (sparks-work-method-9 () none) ;; 9 + (sparks-work-method-10 () none) ;; 10 + (sparks-work-method-11 () none) ;; 11 + (sparks-work-method-12 () none) ;; 12 + (sparks-work-method-13 () none) ;; 13 + (sparks-work-method-14 () none) ;; 14 + (sparks-work-method-15 () none) ;; 15 + (sparks-work-method-16 () none) ;; 16 + (sparks-work-method-17 () none) ;; 17 + (sparks-work-method-18 () none) ;; 18 + (sparks-work-method-19 () none) ;; 19 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; math-camera ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fog-corrector (structure) + ((fog-end float :offset-assert 0) + (fog-start float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (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 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) +;; (define-extern transform-point-qword! function) ;; (function vector4w vector symbol) +;; (define-extern transform-point-vector-scale! function) ;; (function vector vector float) +;; (define-extern reverse-transform-point! function) ;; (function vector vector vector vector none) +;; (define-extern init-for-transform function) ;; (function matrix none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; view ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern view-push-context function) +;; (define-extern view-pop-context function) +;; (define-extern view-get-active-target function) +;; (define-extern view-get-target function) +;; (define-extern view-set-active-target function) +;; (define-extern view-get-active-camera function) +;; (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-camera-combiner function) +;; (define-extern view-set-active-camera-combiner function) +;; (define-extern view-get-active-math-camera function) +;; (define-extern view-get-math-camera function) +;; (define-extern view-set-active-math-camera function) +;; (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-real-active-index function) +;; (define-extern view-print function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; viewport ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *viewport-array* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; font-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype font-char-effect (structure) + ((scale-x float :offset-assert 0) + (scale-y float :offset-assert 4) + (angle float :offset-assert 8) + (trans-x float :offset-assert 12) + (trans-y float :offset-assert 16) + (color vector4w :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype char-color (structure) + ((color rgba 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype font-context (basic) + ((y-spacing float :offset-assert 4) + (alpha float :offset-assert 8) + (ialpha int32 :offset-assert 12) + (flags font-flags :offset-assert 16) ;; guessed by decompiler + (origin vector :inline :offset-assert 32) + (calc-origin vector :inline :offset-assert 48) + (strip-gif vector :inline :offset-assert 64) + (calc-mat matrix :inline :offset-assert 80) + (width float :offset-assert 144) + (height float :offset-assert 148) + (meters-per-texel float :offset-assert 152) + (start-line uint32 :offset-assert 156) + (scaled-width float :offset-assert 160) + (scaled-height float :offset-assert 164) + (projection float :offset-assert 168) + (scale float :offset-assert 172) + (mat matrix :offset-assert 176) + (effect-time float :offset-assert 180) + (color uint8 :offset-assert 184) ;; font-color + (effect uint8 :offset-assert 185) + (effect-color uint8 :offset-assert 186) + ) + :method-count-assert 30 + :size-assert #xbb + :flag-assert #x1e000000bb + (:methods + (new (symbol type) _type_) ;; 0 ;; (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) + (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) + (font-context-method-13 () none) ;; 13 ;; (set-width! (font-context int) font-context) + (font-context-method-14 () none) ;; 14 ;; (set-height! (font-context int) font-context) + (font-context-method-15 () none) ;; 15 ;; (set-projection! (font-context float) font-context) + (font-context-method-16 () none) ;; 16 ;; (set-color! (font-context font-color) font-context) + (font-context-method-17 () none) ;; 17 ;; (set-flags! (font-context font-flags) font-context) + (font-context-method-18 () none) ;; 18 ;; (set-start-line! (font-context uint) font-context) + (font-context-method-19 () none) ;; 19 ;; (set-scale! (font-context float) font-context) + (font-context-method-20 () none) ;; 20 ;; (set-alpha! (font-context float) font-context) + (font-context-method-21 () none) ;; 21 + (font-context-method-22 () none) ;; 22 + (font-context-method-23 () none) ;; 23 + (font-context-method-24 () none) ;; 24 + (font-context-method-25 () none) ;; 25 + (font-context-method-26 () none) ;; 26 + (font-context-method-27 () none) ;; 27 + (font-context-method-28 () none) ;; 28 + (font-context-method-29 () none) ;; 29 + ) + ) +|# + +#| +(deftype char-packet (structure) + ((tag dma-gif-packet :inline :offset-assert 0) + (font dma-packet :inline :offset-assert 32) + (color0 vector :inline :offset-assert 48) + (st0 vector :inline :offset-assert 64) + (pos0 vector :inline :offset-assert 80) + (st1 vector :inline :offset-assert 96) + (pos1 vector :inline :offset-assert 112) + (color2 vector :inline :offset-assert 128) + (st2 vector :inline :offset-assert 144) + (pos2 vector :inline :offset-assert 160) + (st3 vector :inline :offset-assert 176) + (pos3 vector :inline :offset-assert 192) + ) + :method-count-assert 9 + :size-assert #xd0 + :flag-assert #x9000000d0 + ) +|# + +#| +(deftype char-ad-packet (structure) + ((tag dma-gif-packet :inline :offset-assert 0) + (font dma-packet :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype char-2d-packet (structure) + ((tag dma-gif-packet :inline :offset-assert 0) + (font dma-packet :inline :offset-assert 32) + (color vector :inline :offset-assert 48) + (st0 vector :inline :offset-assert 64) + (pos0 vector :inline :offset-assert 80) + (st1 vector :inline :offset-assert 96) + (pos1 vector :inline :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype char-2d-packet-no-packed (structure) + ((tag dma-gif-packet :inline :offset-assert 0) + (color0 uint64 :offset-assert 32) + (st0 uint64 :offset-assert 40) + (pos0 uint64 :offset-assert 48) + (st1 uint64 :offset-assert 56) + (pos1 uint64 :offset-assert 64) + (color1 uint64 :offset-assert 72) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype char-packet-no-packed (structure) + ((tag dma-gif-packet :inline :offset-assert 0) + (prim uint64 :offset-assert 32) + (color0 uint64 :offset-assert 40) + (st0 uint64 :offset-assert 48) + (pos0 uint64 :offset-assert 56) + (st1 uint64 :offset-assert 64) + (pos1 uint64 :offset-assert 72) + (st2 uint64 :offset-assert 80) + (pos2 uint64 :offset-assert 88) + (st3 uint64 :offset-assert 96) + (pos3 uint64 :offset-assert 104) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype char-3d-packet (structure) + ((tag dma-gif-packet :inline :offset-assert 0) + (font dma-packet :inline :offset-assert 32) + (color vector :inline :offset-assert 48) + (st0 vector :inline :offset-assert 64) + (pos0 vector :inline :offset-assert 80) + (st1 vector :inline :offset-assert 96) + (pos1 vector :inline :offset-assert 112) + (color2 vector :inline :offset-assert 128) + (st2 vector :inline :offset-assert 144) + (pos2 vector :inline :offset-assert 160) + (st3 vector :inline :offset-assert 176) + (pos3 vector :inline :offset-assert 192) + ) + :method-count-assert 9 + :size-assert #xd0 + :flag-assert #x9000000d0 + ) +|# + +#| +(deftype font-work (structure) + ((char-2d-tmpl dma-gif-packet :inline :offset-assert 0) + (char-2d-no-packed-tmpl dma-gif-packet :inline :offset-assert 32) + (char-3d-tmpl dma-gif-packet :inline :offset-assert 64) + (char-ad-tmpl dma-gif-packet :inline :offset-assert 96) + (char-no-packed-tmpl dma-gif-packet :inline :offset-assert 128) + (char-tmpl dma-gif-packet :inline :offset-assert 160) + (small-font-0-tmpl uint64 2 :offset-assert 192) ;; guessed by decompiler + (small-font-1-tmpl uint64 2 :offset-assert 208) ;; guessed by decompiler + (small-font-2-tmpl uint64 2 :offset-assert 224) ;; guessed by decompiler + (small-font-3-tmpl uint64 2 :offset-assert 240) ;; guessed by decompiler + (large-font-0-tmpl uint64 2 :offset-assert 256) ;; guessed by decompiler + (large-font-1-tmpl uint64 2 :offset-assert 272) ;; guessed by decompiler + (large-font-2-tmpl uint64 2 :offset-assert 288) ;; guessed by decompiler + (large-font-3-tmpl uint64 2 :offset-assert 304) ;; guessed by decompiler + (size1-small vector :inline :offset-assert 320) + (size2-small vector :inline :offset-assert 336) + (size3-small vector :inline :offset-assert 352) + (size1-large vector :inline :offset-assert 368) + (size2-large vector :inline :offset-assert 384) + (size3-large vector :inline :offset-assert 400) + (size-st1 vector :inline :offset-assert 416) + (size-st2 vector :inline :offset-assert 432) + (size-st3 vector :inline :offset-assert 448) + (origin-right vector :inline :offset-assert 464) + (origin-center vector :inline :offset-assert 480) + (save vector :inline :offset-assert 496) + (save-color vector :inline :offset-assert 512) + (save-color2 vector :inline :offset-assert 528) + (current-color vector4w :inline :offset-assert 544) + (current-colorq uint64 :offset-assert 544) + (current-color2 vector4w :inline :offset-assert 560) + (current-color2q uint64 :offset-assert 560) + (effect-colors UNKNOWN 2 :offset-assert 576) + (color-shadow vector4w :inline :offset-assert 608) + (color-outline vector4w :inline :offset-assert 624) + (justify vector 256 :offset-assert 640) ;; guessed by decompiler + (hvdf-offset vector :inline :offset-assert 4736) + (hvdf-shadow vector :inline :offset-assert 4752) + (hvdf-outline UNKNOWN 4 :offset-assert 4768) + (hvdf-outline0 vector :inline :offset-assert 4768) + (hvdf-outline1 vector :inline :offset-assert 4784) + (hvdf-outline2 vector :inline :offset-assert 4800) + (hvdf-outline3 vector :inline :offset-assert 4816) + (save-pos0 vector :inline :offset-assert 4832) + (save-pos1 vector :inline :offset-assert 4848) + (save-pos2 vector :inline :offset-assert 4864) + (save-pos3 vector :inline :offset-assert 4880) + (color-table char-color 74 :offset-assert 4896) ;; guessed by decompiler + (current-font-0-tmpl uint64 2 :offset-assert 6080) ;; guessed by decompiler + (current-font-1-tmpl uint64 2 :offset-assert 6096) ;; guessed by decompiler + (current-font-2-tmpl uint64 2 :offset-assert 6112) ;; guessed by decompiler + (current-font-3-tmpl uint64 2 :offset-assert 6128) ;; guessed by decompiler + (screen-min vector2w :inline :offset-assert 6144) + (screen-max vector2w :inline :offset-assert 6160) + (last-color uint8 :offset-assert 6168) ;; font-color + (save-last-color uint8 :offset-assert 6169) ;; font-color + (buf basic :offset-assert 6172) + (str-ptr uint32 :offset-assert 6176) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1824 + :flag-assert #x900001824 + ) +|# + +;; (define-extern *font-work* object) ;; font-work +;; (define-extern font-set-tex0 function) ;; (function (pointer gs-tex0) texture int int int none) +;; (define-extern set-font-color function) ;; (function font-color rgba rgba rgba rgba int) +;; (define-extern *font-default-matrix* object) ;; matrix +;; (define-extern *font-default-matrix-3d* object) +;; (define-extern *font-context* object) ;; font-context +;; (define-extern *font-context-3d* object) +;; (define-extern *font-char-effect* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; decomp-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype decomp-work (structure) + ((buffer0 uint8 2048 :offset-assert 0) ;; guessed by decompiler + (buffer1 uint8 2048 :offset-assert 2048) ;; guessed by decompiler + (indices uint16 2048 :offset-assert 4096) ;; guessed by decompiler + (temp-indices uint16 2048 :offset-assert 8192) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x3000 + :flag-assert #x900003000 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; time-of-day-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype palette-fade-control (structure) + ((trans vector :inline :offset-assert 0) + (fade float :offset-assert 16) + (actor-dist float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype palette-fade-controls (basic) + ((control palette-fade-control 8 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x110 + :flag-assert #xb00000110 + (:methods + (palette-fade-controls-method-9 () none) ;; 9 ;; (reset! (_type_) none) + (palette-fade-controls-method-10 () none) ;; 10 ;; (set-fade! (_type_ int float float vector) object) + ) + ) +|# + +#| +(deftype time-of-day-proc (process) + ((hours int32 :offset-assert 144) + (minutes int32 :offset-assert 148) + (seconds int32 :offset-assert 152) + (old-frame uint64 :offset-assert 160) + (current-frame uint64 :offset-assert 168) + (frames uint64 :offset-assert 176) + (time-of-day float :offset-assert 184) + (old-frame-save uint64 :offset-assert 192) + (current-frame-save uint64 :offset-assert 200) + (frames-save uint64 :offset-assert 208) + (time-of-day-save float :offset-assert 216) + (time-ratio float :offset-assert 220) + (dest-time-ratio float :offset-assert 224) + (dest-time-delta float :offset-assert 228) + (sun-count int32 :offset-assert 232) + (sun sparticle-launch-control :offset-assert 236) ;; guessed by decompiler + (green-sun-count int32 :offset-assert 240) + (green-sun sparticle-launch-control :offset-assert 244) ;; guessed by decompiler + (moon-count int32 :offset-assert 248) + (moon sparticle-launch-control :offset-assert 252) ;; guessed by decompiler + (start-timer int32 :offset-assert 256) + ) + :method-count-assert 15 + :size-assert #x104 + :flag-assert #xf00800104 + (:methods + (time-of-day-proc-method-9 () none) ;; 9 + (time-of-day-proc-method-10 () none) ;; 10 + (time-of-day-proc-method-11 () none) ;; 11 + (time-of-day-proc-method-12 () none) ;; 12 + (time-of-day-proc-method-13 () none) ;; 13 + (time-of-day-proc-method-14 () none) ;; 14 + ) + ) +|# + +#| +(deftype time-of-day-palette (basic) + ((width int32 :offset-assert 4) + (height int32 :offset-assert 8) + (pad int32 :offset-assert 12) + (data int32 1 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype time-of-day-context (basic) + ((interp float 18 :offset-assert 4) ;; guessed by decompiler + (current-fog mood-fog :inline :offset-assert 80) + (current-sky-color vector :inline :offset-assert 128) + (current-env-color vector :inline :offset-assert 144) + (current-prt-color vector :inline :offset-assert 160) + (current-shadow-color vector :inline :offset-assert 176) + (light-group light-group 8 :offset-assert 192) ;; guessed by decompiler + (current-clouds mood-clouds :inline :offset-assert 1728) + (times vector 8 :offset-assert 1744) ;; guessed by decompiler + (title-light-group light-group :inline :offset-assert 1872) + (rim-light-group light-group :inline :offset-assert 2064) + (front-rear-light-group light-group :inline :offset-assert 2256) + (fog-override mood-fog :inline :offset-assert 2448) + (filter vector :inline :offset-assert 2496) + (filter-color vector :inline :offset-assert 2512) + (time float :offset-assert 2528) + (target-interp float :offset-assert 2532) + (erase-color rgba :offset-assert 2536) ;; guessed by decompiler + (sky symbol :offset-assert 2540) ;; guessed by decompiler + (special-mood basic :offset-assert 2544) + (use-camera-other basic :offset-assert 2548) + (title-updated symbol :offset-assert 2552) ;; guessed by decompiler + (mode time-of-day-palette-id :offset-assert 2556) ;; guessed by decompiler + (override-enable basic :offset-assert 2560) + (override-palette uint32 :offset-assert 2564) + (max-rain float :offset-assert 2568) + (exterior-level basic :offset-assert 2572) + (ocean-alpha float :offset-assert 2576) + (shadow-override float :offset-assert 2580) + (fog-override-interp float :offset-assert 2584) + ) + :method-count-assert 9 + :size-assert #xa1c + :flag-assert #x900000a1c + ) +|# + +#| +(deftype time-of-day-dma (structure) + ((outa uint32 256 :offset-assert 0) ;; guessed by decompiler + (outb uint32 256 :offset-assert 1024) ;; guessed by decompiler + (banka uint32 256 :offset-assert 2048) ;; guessed by decompiler + (bankb uint32 256 :offset-assert 3072) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1000 + :flag-assert #x900001000 + ) +|# + +;; (define-extern *palette-fade-controls* object) ;; palette-fade-controls +;; (define-extern *time-of-day-context* time-of-day-context) ;; time-of-day-context + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; profile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype profile-work (structure) + ((sprite-tmpl dma-gif-packet :inline :offset-assert 0) + (line-tmpl dma-gif-packet :inline :offset-assert 32) + (last-index int32 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +;; (define-extern *profile-spec-array* object) ;; (inline-array profile-spec) +;; (define-extern *profile-translate-array* array) ;; (pointer uint64) +;; (define-extern *profile-work* object) ;; profile-work +;; (define-extern *profile-x* object) ;; int +;; (define-extern *profile-y* object) ;; int +;; (define-extern *profile-w* object) ;; int +;; (define-extern *profile-h* object) ;; int +;; (define-extern *profile-ticks* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; display ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern get-current-time function) ;; (function time-frame) +;; (define-extern get-integral-current-time function) ;; (function time-frame) +;; (define-extern get-real-current-time function) ;; (function time-frame) +;; (define-extern set-display function) ;; (function display display) +;; (define-extern allocate-dma-buffers function) ;; (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 reset-display-gs-state function) ;; (function display dma-buffer display) +;; (define-extern *vu0-dma-list* object) ;; dma-buffer +;; (define-extern *display* object) ;; display + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; text-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype game-text (structure) + ((id text-id :offset-assert 0) ;; guessed by decompiler + (index uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype game-text-info (basic) + ((length int32 :offset-assert 4) + (language-id int32 :offset-assert 8) + (group-name string :offset-assert 12) ;; guessed by decompiler + (dic-index uint32 :offset-assert 16) + (dic-data uint32 :offset-assert 20) + (text uint32 :offset-assert 24) + (text-data uint32 :offset-assert 28) + ) + :method-count-assert 13 + :size-assert #x20 + :flag-assert #xd00000020 + (:methods + (game-text-info-method-9 () none) ;; 9 ;; (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 + ) + ) +|# + +;; (define-extern *text-group-names* array) ;; (array string) +;; (define-extern *common-text-heap* object) ;; kheap +;; (define-extern *common-text* object) ;; game-text-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; camera-defs-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype camera-bank (basic) + ((collide-move-rad float :offset-assert 4) + (joypad uint32 :offset-assert 8) + (min-detectable-velocity float :offset-assert 12) + (attack-timeout uint64 :offset-assert 16) ;; time-frame + (default-string-max-y meters :offset-assert 24) + (default-string-min-y meters :offset-assert 28) + (default-string-max-z meters :offset-assert 32) + (default-string-min-z meters :offset-assert 36) + (default-string-push-z meters :offset-assert 40) + (default-tilt-adjust deg :offset-assert 44) ;; degrees + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype camera-master-bank (basic) + ((onscreen-head-height meters :offset-assert 4) + (onscreen-foot-height meters :offset-assert 8) + (target-height meters :offset-assert 12) + (up-move-to-pitch-ratio-in-air float :offset-assert 16) + (down-move-to-pitch-ratio-in-air float :offset-assert 20) + (up-move-to-pitch-on-ground float :offset-assert 24) + (down-move-to-pitch-on-ground float :offset-assert 28) + (pitch-off-blend float :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +;; (define-extern *CAMERA-bank* camera-bank) ;; camera-bank +;; (define-extern *CAMERA_MASTER-bank* camera-master-bank) ;; camera-master-bank + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; settings-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype user-setting-data (structure) + ((border-mode symbol :offset-assert 0) ;; guessed by decompiler + (process-mask process-mask :offset-assert 4) ;; guessed by decompiler + (language uint8 :offset-assert 12) ;; language-enum + (movie (pointer process) :offset-assert 32) ;; guessed by decompiler + (talking (pointer process) :offset-assert 36) ;; guessed by decompiler + (spooling (pointer process) :offset-assert 40) ;; guessed by decompiler + (hint (pointer process) :offset-assert 44) ;; guessed by decompiler + (ambient (pointer process) :offset-assert 48) ;; guessed by decompiler + (video-mode symbol :offset-assert 52) ;; guessed by decompiler + (aspect-ratio symbol :offset-assert 56) ;; guessed by decompiler + (auto-save symbol :offset-assert 72) ;; guessed by decompiler + (bg-r float :offset-assert 80) + (bg-g float :offset-assert 84) + (bg-b float :offset-assert 88) + (bg-a float :offset-assert 92) + (bg-a-speed float :offset-assert 96) + (bg-a-force float :offset-assert 100) + (blur-a float :offset-assert 104) + (blur-a-speed float :offset-assert 108) + (allow-progress symbol :offset-assert 112) ;; guessed by decompiler + (allow-in-game-menu basic :offset-assert 116) + (allow-pause symbol :offset-assert 120) ;; guessed by decompiler + (movie-name symbol :offset-assert 136) ;; guessed by decompiler + (weather symbol :offset-assert 140) ;; guessed by decompiler + (task-mask task-mask :offset-assert 156) + (speed-mult float :offset-assert 164) + (features uint64 :offset-assert 168) ;; game-feature + (vehicles uint64 :offset-assert 176) ;; game-vehicles + (sfx-volume float :offset-assert 184) + (sfx-volume-movie float :offset-assert 188) + (music-volume float :offset-assert 192) + (music-volume-movie float :offset-assert 196) + (dialog-volume float :offset-assert 200) + (dialog-volume-talker float :offset-assert 204) + (ambient-volume float :offset-assert 208) + (ambient-volume-movie float :offset-assert 212) + (dynamic-ambient-volume float :offset-assert 216) + (talker-volume float :offset-assert 220) + (mode-sound-bank uint32 :offset-assert 224) ;; guessed by decompiler + (sound-reverb float :offset-assert 228) + (sound-reverb-mode int32 :offset-assert 232) + (sound-reverb-seek-speed float :offset-assert 236) + (stereo-mode int32 :offset-assert 240) + (music symbol :offset-assert 244) ;; guessed by decompiler + (spool-anim spool-anim :offset-assert 248) ;; guessed by decompiler + (task-manager (pointer process) :offset-assert 252) ;; guessed by decompiler + (task symbol :offset-assert 256) ;; guessed by decompiler + (airlock symbol :offset-assert 260) ;; guessed by decompiler + (minimap uint32 :offset-assert 264) + (allow-continue symbol :offset-assert 268) ;; guessed by decompiler + (subtitle symbol :offset-assert 280) ;; guessed by decompiler + (doorway symbol :offset-assert 284) ;; guessed by decompiler + (gem symbol :offset-assert 288) ;; guessed by decompiler + (half-speed symbol :offset-assert 292) ;; guessed by decompiler + (gun-buoy symbol :offset-assert 296) ;; guessed by decompiler + (double-jump symbol :offset-assert 300) ;; guessed by decompiler + (pilot symbol :offset-assert 304) ;; guessed by decompiler + (pilot-exit symbol :offset-assert 308) ;; guessed by decompiler + (pilot-death symbol :offset-assert 312) ;; guessed by decompiler + (speech-control symbol :offset-assert 316) ;; guessed by decompiler + (vehicle-hijacking symbol :offset-assert 320) ;; guessed by decompiler + (endlessfall symbol :offset-assert 324) ;; guessed by decompiler + (rain float :offset-assert 328) + (snow float :offset-assert 332) + (exclusive-load symbol :offset-assert 336) ;; guessed by decompiler + (render symbol :offset-assert 340) ;; guessed by decompiler + (allow-timeout symbol :offset-assert 344) ;; guessed by decompiler + (mirror symbol :offset-assert 348) ;; guessed by decompiler + (movie-skip-frame float :offset-assert 352) + (allow-blackout symbol :offset-assert 356) ;; guessed by decompiler + (race-minimap int32 :offset-assert 360) + (beard symbol :offset-assert 364) ;; guessed by decompiler + (ignore-target symbol :offset-assert 368) ;; guessed by decompiler + (subtitle-language uint8 :offset-assert 372) ;; language-enum + (sound-bank-load symbol :offset-assert 376) ;; guessed by decompiler + (allow-error symbol :offset-assert 380) ;; guessed by decompiler + (under-water-pitch-mod float :offset-assert 384) + (restart-info resetter-spec :offset-assert 392) ;; guessed by decompiler + (fail-info resetter-spec :offset-assert 396) ;; guessed by decompiler + (death-info resetter-spec :offset-assert 400) ;; guessed by decompiler + (quit-info resetter-spec :offset-assert 404) ;; guessed by decompiler + (extra-bank-count uint32 :offset-assert 408) + (extra-bank pair 3 :offset-assert 412) ;; guessed by decompiler + (borrow-count uint32 :offset-assert 424) + (borrow pair 3 :offset-assert 428) ;; guessed by decompiler + (exclusive-task-count uint32 :offset-assert 440) + (exclusive-task int32 3 :offset-assert 444) ;; guessed by decompiler + (level-trans-time int32 :offset-assert 456) + (letterbox float :offset-assert 480) + (letterbox-speed float :offset-assert 484) + (borrow-city-count uint32 :offset-assert 524) + (borrow-city pair 3 :offset-assert 528) ;; guessed by decompiler + (audio-language uint8 :offset-assert 652) ;; language-enum + (special-volume float :offset-assert 700) + ) + :method-count-assert 11 + :size-assert #x304 + :flag-assert #xb00000304 + (:methods + (user-setting-data-method-9 () none) ;; 9 ;; (user-setting-data-method-9 (_type_ engine engine-pers engine) user-setting-data) + (user-setting-data-method-10 () none) ;; 10 ;; (user-setting-data-method-10 (_type_ object symbol float uint) user-setting-data) + ) + ) +|# + +#| +(deftype cam-setting-data (structure) + ((fov deg :offset-assert 0) ;; degrees + (pov-handle uint64 :offset-assert 16) ;; handle + (pov-bone int32 :offset-assert 24) + (pov-offset vector :inline :offset-assert 32) + (string-default boolean :offset-assert 48) ;; symbol + (string-max-length meters :offset-assert 52) + (string-min-length meters :offset-assert 56) + (string-max-height meters :offset-assert 60) + (string-min-height meters :offset-assert 64) + (string-cliff-height meters :offset-assert 68) + (string-camera-floor meters :offset-assert 72) + (string-camera-ceiling meters :offset-assert 76) + (gun-max-height meters :offset-assert 80) + (gun-min-height meters :offset-assert 84) + (string-local-down vector :inline :offset-assert 96) + (slave-options cam-slave-options :offset-assert 112) + (matrix-blend-max-angle deg :offset-assert 120) ;; degrees + (matrix-blend-max-partial float :offset-assert 124) + (string-spline-max-move meters :offset-assert 128) + (string-spline-accel meters :offset-assert 132) + (string-spline-max-move-player meters :offset-assert 136) + (string-spline-accel-player meters :offset-assert 140) + (string-startup-vector vector :inline :offset-assert 144) + (use-string-startup-vector symbol :offset-assert 160) ;; guessed by decompiler + (look-at-point vector :inline :offset-assert 176) + (use-look-at-point symbol :offset-assert 192) ;; guessed by decompiler + (target-height meters :offset-assert 196) + (foot-offset meters :offset-assert 200) + (head-offset meters :offset-assert 204) + (teleport-on-entity-change boolean :offset-assert 208) ;; symbol + (entity-name string :offset-assert 212) + (cam-slope string :offset-assert 216) + (entity-or-mode-changed boolean :offset-assert 220) ;; symbol + (master-options cam-master-options :offset-assert 224) + (entity-mask uint32 :offset-assert 232) + (mode-name symbol :offset-assert 236) ;; guessed by decompiler + (real-entity-name string :offset-assert 240) + (cam-mode symbol :offset-assert 244) ;; guessed by decompiler + (interp-time uint32 :offset-assert 248) + (no-intro symbol :offset-assert 252) ;; guessed by decompiler + (use-point-of-interest symbol :offset-assert 256) ;; guessed by decompiler + (point-of-interest vector :inline :offset-assert 272) + (handle-of-interest uint64 :offset-assert 288) ;; handle + (mouse-tumble-point vector :inline :offset-assert 304) + (use-mouse-tumble-point symbol :offset-assert 320) ;; guessed by decompiler + (mouse-input symbol :offset-assert 324) ;; guessed by decompiler + (cpad1-skip-buttons symbol :offset-assert 328) ;; guessed by decompiler + (butt-handle uint64 :offset-assert 336) ;; handle + (butt-angle float :offset-assert 344) + (extra-follow-height float :offset-assert 348) + (interp-time-priority uint32 :offset-assert 352) + (string-max-length-default symbol :offset-assert 356) ;; guessed by decompiler + (string-min-length-default symbol :offset-assert 360) ;; guessed by decompiler + (string-max-height-default symbol :offset-assert 364) ;; guessed by decompiler + (string-min-height-default symbol :offset-assert 368) ;; guessed by decompiler + (flip-vertical symbol :offset-assert 372) ;; guessed by decompiler + (flip-horizontal symbol :offset-assert 376) ;; guessed by decompiler + (fov-priority float :offset-assert 384) + (ocean-off basic :offset-assert 388) + (ocean-override basic :offset-assert 392) + (crash-cam-force-freeze basic :offset-assert 396) + ) + :method-count-assert 11 + :size-assert #x190 + :flag-assert #xb00000190 + ;; field cam-slave-options is likely a value type. field cam-master-options is likely a value type. + (:methods + (cam-setting-data-method-9 () none) ;; 9 ;; (cam-setting-data-method-9 (_type_ engine engine-pers engine) _type_) + (cam-setting-data-method-10 () none) ;; 10 ;; (cam-setting-data-method-10 (_type_ object (pointer process) float int) _type_) + ) + ) +|# + +#| +(deftype cam-setting-state (structure) + ((current cam-setting-data :inline :offset-assert 0) + (target cam-setting-data :inline :offset-assert 400) + (default cam-setting-data :inline :offset-assert 800) + ) + :method-count-assert 9 + :size-assert #x4b0 + :flag-assert #x9000004b0 + ) +|# + +#| +(deftype engine-group (structure) + ((engine basic :offset-assert 0) + (engine-pers basic :offset-assert 4) + (engine-hi basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(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 UNKNOWN 4 :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 UNKNOWN 4 :offset-assert 7180) + ) + :method-count-assert 25 + :size-assert #x1c1c + :flag-assert #x1900001c1c + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int) _type_) + (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 () 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 + ) + ) +|# + +;; (define-extern *settings-dialog-volume* object) +;; (define-extern *settings-music-volume* object) +;; (define-extern *settings-sfx-volume* object) +;; (define-extern *settings-music-seek-speed* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; memory-usage-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype memory-usage-info (structure) + ((name string :offset-assert 0) ;; guessed by decompiler + (count int32 :offset-assert 4) + (used int32 :offset-assert 8) + (total int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype memory-usage-block (basic) + ((work-bsp basic :offset-assert 4) + (length int32 :offset-assert 8) + (data memory-usage-info 112 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x710 + :flag-assert #xc00000710 + (:methods + (memory-usage-block-method-9 () none) ;; 9 ;; (reset! (_type_) _type_) + (memory-usage-block-method-10 () none) ;; 10 ;; (calculate-total (_type_) int) + (memory-usage-block-method-11 () none) ;; 11 ;; (print-mem-usage (_type_ level object) _type_) + ) + ) +|# + +;; (define-extern *mem-usage* object) ;; memory-usage-block +;; (define-extern *dma-mem-usage* object) ;; memory-usage-block +;; (define-extern *temp-mem-usage* object) ;; memory-usage-block + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sky-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sky-color-hour (structure) + ((snapshot1 int32 :offset-assert 0) + (snapshot2 int32 :offset-assert 4) + (morph-start float :offset-assert 8) + (morph-end float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype sky-color-day (structure) + ((hour sky-color-hour 24 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x180 + :flag-assert #x900000180 + ) +|# + +#| +(deftype sky-sun-data (structure) + ((data uint128 4 :offset-assert 0) ;; guessed by decompiler + (pos vector :inline :offset-assert 0) + (r-sun float :offset-assert 16) + (r-halo float :offset-assert 20) + (r-aurora float :offset-assert 24) + (c-sun-start rgba :offset-assert 32) ;; guessed by decompiler + (c-sun-end rgba :offset-assert 48) ;; guessed by decompiler + (c-halo-start rgba :offset-assert 36) ;; guessed by decompiler + (c-halo-end rgba :offset-assert 52) ;; guessed by decompiler + (c-aurora-start rgba :offset-assert 40) ;; guessed by decompiler + (c-aurora-end rgba :offset-assert 56) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype sky-moon-data (structure) + ((data uint128 2 :offset-assert 0) ;; guessed by decompiler + (pos vector :inline :offset-assert 0) + (scale vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sky-orbit (structure) + ((high-noon float :offset-assert 0) + (tilt float :offset-assert 4) + (rise float :offset-assert 8) + (dist float :offset-assert 12) + (min-halo float :offset-assert 16) + (max-halo float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype sky-upload-data (structure) + ((data uint128 12 :offset-assert 0) ;; guessed by decompiler + (sun sky-sun-data 2 :offset-assert 0) ;; guessed by decompiler + (moon sky-moon-data :inline :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +#| +(deftype sky-vertex (structure) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype cloud-vertex (structure) + ((pos vector :inline :offset-assert 0) + (stq vector :inline :offset-assert 16) + (col vector :inline :offset-assert 32) + (nrm vector :inline :offset-assert 48) + (stq2 vector :inline :offset-assert 64) + (col2 vector :inline :offset-assert 80) + (nrm2 vector :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype cloud-vert-array (structure) + ((data cloud-vertex 100 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2bc0 + :flag-assert #x900002bc0 + ) +|# + +#| +(deftype haze-vertex (structure) + ((pos vector :inline :offset-assert 0) + (nrm vector :inline :offset-assert 16) + (col vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype haze-vert-array (structure) + ((data haze-vertex 36 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x6c0 + :flag-assert #x9000006c0 + ) +|# + +#| +(deftype cloud-lights (structure) + ((sun0-normal vector :inline :offset-assert 0) + (sun1-normal vector :inline :offset-assert 16) + (moon-normal vector :inline :offset-assert 32) + (ambi-color vector :inline :offset-assert 48) + (ambi-color-lower vector :inline :offset-assert 64) + (sun0-color vector :inline :offset-assert 80) + (sun1-color vector :inline :offset-assert 96) + (moon-color vector :inline :offset-assert 112) + (sun0-color-lower vector :inline :offset-assert 128) + (sun0-scale float :offset-assert 144) + (sun1-scale float :offset-assert 148) + (moon-scale float :offset-assert 152) + ) + :method-count-assert 9 + :size-assert #x9c + :flag-assert #x90000009c + ) +|# + +#| +(deftype haze-lights (structure) + ((sun0-normal vector :inline :offset-assert 0) + (sun1-normal vector :inline :offset-assert 16) + (moon-normal vector :inline :offset-assert 32) + (ambi-color vector :inline :offset-assert 48) + (sun0-color vector :inline :offset-assert 64) + (sun1-color vector :inline :offset-assert 80) + (moon-color vector :inline :offset-assert 96) + (sun0-scale float :offset-assert 112) + (sun1-scale float :offset-assert 116) + (moon-scale float :offset-assert 120) + ) + :method-count-assert 9 + :size-assert #x7c + :flag-assert #x90000007c + ) +|# + +#| +(deftype sky-work (structure) + ((adgif-tmpl dma-gif-packet :inline :offset-assert 0) + (draw-tmpl dma-gif-packet :inline :offset-assert 32) + (draw-tmpl2 dma-gif-packet :inline :offset-assert 64) + (fog-tmpl dma-gif-packet :inline :offset-assert 96) + (blend-tmpl dma-gif-packet :inline :offset-assert 128) + (sprite-tmpl dma-gif-packet :inline :offset-assert 160) + (sprite-tmpl2 dma-gif-packet :inline :offset-assert 192) + (sun-coords vector 2 :offset-assert 224) ;; guessed by decompiler + (green-coords vector 2 :offset-assert 256) ;; guessed by decompiler + (moon0-coords vector 2 :offset-assert 288) ;; guessed by decompiler + (moon1-coords vector 2 :offset-assert 320) ;; guessed by decompiler + (moon2-coords vector 2 :offset-assert 352) ;; guessed by decompiler + (star-coords vector 2 :offset-assert 384) ;; guessed by decompiler + (sun-colors vector4w 2 :offset-assert 416) ;; guessed by decompiler + (green-colors vector4w 2 :offset-assert 448) ;; guessed by decompiler + (moon-colors vector4w 3 :offset-assert 480) ;; guessed by decompiler + (star-colors vector4w 16 :offset-assert 528) ;; guessed by decompiler + (st-coords vector 2 :offset-assert 784) ;; guessed by decompiler + (random vector4w 8 :offset-assert 816) ;; guessed by decompiler + (giftag-base dma-gif :inline :offset-assert 944) + (giftag-haze dma-gif :inline :offset-assert 960) + (giftag-roof dma-gif :inline :offset-assert 976) + (giftag-clouds dma-gif :inline :offset-assert 992) + (giftag-ocean dma-gif :inline :offset-assert 1008) + (fog vector :inline :offset-assert 1024) + (sky float 8 :offset-assert 1040) ;; guessed by decompiler + (time float :offset-assert 1072) + (off-s uint16 :offset-assert 1076) + (off-t uint16 :offset-assert 1078) + (orbit sky-orbit 3 :offset-assert 1080) ;; guessed by decompiler + (upload-data sky-upload-data :inline :offset-assert 1184) + (ambi-color vector :inline :offset-assert 1376) + (ambi-color-lower vector :inline :offset-assert 1392) + (sun0-color vector :inline :offset-assert 1408) + (sun1-color vector :inline :offset-assert 1424) + (moon-color vector :inline :offset-assert 1440) + (sun0-color-lower vector :inline :offset-assert 1456) + (cam-mat matrix :inline :offset-assert 1472) + (star-mat matrix :inline :offset-assert 1536) + (vec0 vector4w :inline :offset-assert 1600) + (vec1 vector4w :inline :offset-assert 1616) + (cloud-lights cloud-lights :inline :offset-assert 1632) + (haze-lights haze-lights :inline :offset-assert 1792) + (buf dma-buffer :offset-assert 1916) ;; guessed by decompiler + (stars vector 512 :offset-assert 1920) ;; guessed by decompiler + (disable-day-star basic :offset-assert 10112) + ) + :method-count-assert 37 + :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) + (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) + (sky-work-method-14 () none) ;; 14 ;; (draw (_type_) none) + (sky-work-method-15 () none) ;; 15 ;; (update-camera-matrix (_type_ matrix) none) + (sky-work-method-16 () none) ;; 16 ;; (update-template-colors (_type_) none) + (sky-work-method-17 () none) ;; 17 ;; (init-regs-for-large-polygon-draw (_type_) none) + (sky-work-method-18 () none) ;; 18 ;; (init-regs-for-sky-asm (_type_) none) + (sky-work-method-19 () none) ;; 19 ;; (cloud-vtx-light-update (_type_ vector vector cloud-lights vector vector) none) + (sky-work-method-20 () none) ;; 20 ;; (cloud-vtx-tex-update (_type_ vector vector vector cloud-lights) none) + (sky-work-method-21 () none) ;; 21 ;; (adjust-cloud-lighting (_type_) none) + (sky-work-method-22 () none) ;; 22 ;; (cloud-vtx1-to-sky (_type_ sky-vertex cloud-vertex) none) + (sky-work-method-23 () none) ;; 23 ;; (cloud-vtx2-to-sky (_type_ sky-vertex cloud-vertex) none) + (sky-work-method-24 () none) ;; 24 ;; (draw-clouds (_type_ dma-buffer) none) + (sky-work-method-25 () none) ;; 25 ;; (apply-haze-light (_type_ vector vector haze-lights float) none) + (sky-work-method-26 () none) ;; 26 ;; (adjust-haze-lighting (_type_) none) + (sky-work-method-27 () none) ;; 27 ;; (haze-vtx-to-sky (_type_ sky-vertex sky-vertex haze-vertex) none) + (sky-work-method-28 () none) ;; 28 ;; (draw-haze (_type_ dma-buffer) none) + (sky-work-method-29 () none) ;; 29 ;; (sun-dma (_type_ dma-buffer) none) + (sky-work-method-30 () none) ;; 30 ;; (green-sun-dma (_type_ dma-buffer) none) + (sky-work-method-31 () none) ;; 31 ;; (moon-dma (_type_ dma-buffer) none) + (sky-work-method-32 () none) ;; 32 ;; (day-star-dma (_type_ dma-buffer) none) + (sky-work-method-33 () none) ;; 33 ;; (setup-stars (_type_ matrix sky-upload-data) none) + (sky-work-method-34 () none) ;; 34 ;; (stars-transform-asm (_type_) none) + (sky-work-method-35 () none) ;; 35 ;; (stars-dma (_type_ dma-buffer) none) + (sky-work-method-36 () none) ;; 36 ;; (draw-roof (_type_ dma-buffer) none) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ocean-corner (structure) + ((bsphere sphere :inline :offset-assert 0) + (start-corner vector :inline :offset-assert 16) + (y-scales vector :inline :offset-assert 32) + (alphas vector :inline :offset-assert 48) + (colors uint32 4 :offset-assert 64) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype ocean-wave-info (structure) + ((frequency float :offset-assert 0) + (amplitude float :offset-assert 4) + (wave-speed float :offset-assert 8) + (angle float :offset-assert 12) + (kx float :offset-assert 16) + (ky float :offset-assert 20) + (w float :offset-assert 24) + (flags int32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype ocean-vertex (structure) + ((pos vector :inline :offset-assert 0) + (stq vector :inline :offset-assert 16) + (col vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype ocean-spheres (structure) + ((spheres sphere 36 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x240 + :flag-assert #x900000240 + ) +|# + +#| +(deftype ocean-colors (structure) + ((colors rgba 2548 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x27d0 + :flag-assert #x9000027d0 + ) +|# + +#| +(deftype ocean-colors-float (structure) + ((colors vector 2548 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x9f40 + :flag-assert #x900009f40 + ) +|# + +#| +(deftype ocean-mid-mask (structure) + ((mask uint8 8 :offset-assert 0) ;; guessed by decompiler + (dword uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype ocean-mid-indices (basic) + ((data uint16 36 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype ocean-mid-masks (basic) + ((data (inline-array ocean-mid-mask) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype ocean-trans-mask (structure) + ((mask uint8 4 :offset-assert 0) ;; guessed by decompiler + (word int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype ocean-trans-index (structure) + ((parent int16 :offset-assert 0) + (child int16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype ocean-trans-indices (basic) + ((data ocean-trans-index 2304 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2404 + :flag-assert #x900002404 + ) +|# + +#| +(deftype ocean-near-index (structure) + ((data uint16 16 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype ocean-near-indices (basic) + ((data (inline-array ocean-near-index) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype ocean-near-colors (structure) + ((color0 vector :inline :offset-assert 0) + (color1 vector :inline :offset-assert 16) + (color2 vector :inline :offset-assert 32) + (color3 vector :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype ocean-trans-strip (structure) + ((verts uint128 10 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype ocean-trans-strip-array (structure) + ((data ocean-trans-strip 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x280 + :flag-assert #x900000280 + ) +|# + +#| +(deftype ocean-wave-data (structure) + ((data uint8 1024 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x400 + :flag-assert #x900000400 + ) +|# + +#| +(deftype ocean-wave-frames (structure) + ((frame ocean-wave-data 64 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x0 + :heap-base #x1 + :flag-assert #x900010000 + ) +|# + +#| +(deftype ocean-texture-constants (structure) + ((giftag qword :inline :offset-assert 0) ;; gs-gif-tag :inline + (buffers vector4w :inline :offset-assert 16) + (dests vector4w :inline :offset-assert 32) + (start vector :inline :offset-assert 48) + (offsets vector :inline :offset-assert 64) + (constants vector :inline :offset-assert 80) + (cam-nrm vector :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype ocean-mid-vertex (structure) + ((stq vector :inline :offset-assert 0) + (col vector :inline :offset-assert 16) + (pos vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype ocean-mid-constants (structure) + ((hmge-scale vector :inline :offset-assert 0) + (inv-hmge-scale vector :inline :offset-assert 16) + (hvdf-offset vector :inline :offset-assert 32) + (fog vector :inline :offset-assert 48) + (constants vector :inline :offset-assert 64) + (constants2 vector :inline :offset-assert 80) + (drw-fan qword :inline :offset-assert 96) ;; gs-gif-tag :inline + (env-fan qword :inline :offset-assert 112) ;; gs-gif-tag :inline + (drw-adgif qword :inline :offset-assert 128) ;; gs-gif-tag :inline + (drw-texture adgif-shader :inline :offset-assert 144) + (drw-strip-0 qword :inline :offset-assert 224) ;; gs-gif-tag :inline + (drw-strip-1 qword :inline :offset-assert 240) ;; gs-gif-tag :inline + (env-adgif qword :inline :offset-assert 256) ;; gs-gif-tag :inline + (env-texture adgif-shader :inline :offset-assert 272) + (env-strip qword :inline :offset-assert 352) ;; gs-gif-tag :inline + (env-color vector :inline :offset-assert 368) + (index-table vector4w 8 :offset-assert 384) ;; guessed by decompiler + (pos0 vector :inline :offset-assert 512) + (pos1 vector :inline :offset-assert 528) + (pos2 vector :inline :offset-assert 544) + (pos3 vector :inline :offset-assert 560) + ) + :method-count-assert 9 + :size-assert #x240 + :flag-assert #x900000240 + ) +|# + +#| +(deftype ocean-mid-upload (structure) + ((rot matrix :inline :offset-assert 0) + (matrix matrix :inline :offset-assert 64) + (colors uint128 108 :offset-assert 128) ;; guessed by decompiler + (masks uint128 2 :offset-assert 1856) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x760 + :flag-assert #x900000760 + ) +|# + +#| +(deftype ocean-mid-upload2 (structure) + ((rot matrix :inline :offset-assert 0) + (matrix matrix :inline :offset-assert 64) + (count vector4w :inline :offset-assert 128) + (tex0 vector :inline :offset-assert 144) + (tex1 vector :inline :offset-assert 160) + (tex2 vector :inline :offset-assert 176) + (tex3 vector :inline :offset-assert 192) + (clr0 vector :inline :offset-assert 208) + (clr1 vector :inline :offset-assert 224) + (clr2 vector :inline :offset-assert 240) + (clr3 vector :inline :offset-assert 256) + (verts uint128 18 :offset-assert 272) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x230 + :flag-assert #x900000230 + ) +|# + +#| +(deftype ocean-mid-work (structure) + ((env0 vector :inline :offset-assert 0) + (env1 vector :inline :offset-assert 16) + (env2 vector :inline :offset-assert 32) + (hmg0 vector :inline :offset-assert 48) + (hmg1 vector :inline :offset-assert 64) + (hmg2 vector :inline :offset-assert 80) + (indices uint128 16 :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x160 + :flag-assert #x900000160 + ) +|# + +#| +(deftype ocean-near-constants (structure) + ((hmge-scale vector :inline :offset-assert 0) + (inv-hmge-scale vector :inline :offset-assert 16) + (hvdf-offset vector :inline :offset-assert 32) + (fog vector :inline :offset-assert 48) + (constants vector :inline :offset-assert 64) + (constants2 vector :inline :offset-assert 80) + (constants3 vector :inline :offset-assert 96) + (constants4 vector :inline :offset-assert 112) + (constants5 vector :inline :offset-assert 128) + (drw-fan qword :inline :offset-assert 144) ;; gs-gif-tag :inline + (drw2-fan qword :inline :offset-assert 160) ;; gs-gif-tag :inline + (env-fan qword :inline :offset-assert 176) ;; gs-gif-tag :inline + (drw-adgif qword :inline :offset-assert 192) ;; gs-gif-tag :inline + (drw-texture adgif-shader :inline :offset-assert 208) + (drw-strip qword :inline :offset-assert 288) ;; gs-gif-tag :inline + (env-adgif qword :inline :offset-assert 304) ;; gs-gif-tag :inline + (env-texture adgif-shader :inline :offset-assert 320) + (env-strip qword :inline :offset-assert 400) ;; gs-gif-tag :inline + (env-color vector :inline :offset-assert 416) + (drw2-adgif qword :inline :offset-assert 432) ;; gs-gif-tag :inline + (drw2-tex0 qword :inline :offset-assert 448) + (drw2-frame qword :inline :offset-assert 464) + (drw2-strip qword :inline :offset-assert 480) ;; gs-gif-tag :inline + (drw3-adgif qword :inline :offset-assert 496) ;; gs-gif-tag :inline + (drw3-frame qword :inline :offset-assert 512) ;; gs-adcmd :inline + (index-table vector4w 4 :offset-assert 528) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x250 + :flag-assert #x900000250 + ) +|# + +#| +(deftype ocean-near-upload (structure) + ((rot matrix :inline :offset-assert 0) + (matrix matrix :inline :offset-assert 64) + (masks uint128 2 :offset-assert 128) ;; guessed by decompiler + (start-height vector4w :inline :offset-assert 160) + (start-st vector :inline :offset-assert 176) + (near-colors ocean-near-colors :inline :offset-assert 192) + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype ocean-near-vertex (structure) + ((stq vector :inline :offset-assert 0) + (clr vector :inline :offset-assert 16) + (pos vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype ocean-near-work (structure) + ((verts-ptr vector :inline :offset-assert 0) + (indices uint128 16 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x110 + :flag-assert #x900000110 + ) +|# + +#| +(deftype ocean-height-array (structure) + ((data float 1024 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1000 + :flag-assert #x900001000 + ) +|# + +#| +(deftype ocean-map (structure) + ((start-corner vector :inline :offset-assert 0) + (far-color vector :inline :offset-assert 16) + (ocean-colors ocean-colors :offset-assert 32) + (ocean-mid-indices ocean-mid-indices :offset-assert 36) ;; guessed by decompiler + (ocean-trans-indices ocean-trans-indices :offset-assert 40) ;; guessed by decompiler + (ocean-near-indices ocean-near-indices :offset-assert 44) ;; guessed by decompiler + (ocean-mid-masks ocean-mid-masks :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x34 + :flag-assert #xb00000034 + (:methods + (ocean-map-method-9 () none) ;; 9 ;; (set-height! (_type_ float) none) + (ocean-map-method-10 () none) ;; 10 ;; (get-base-height (_type_) float) + ) + ) +|# + +#| +(deftype ocean (ocean-map) + ((off symbol :offset-assert 52) ;; guessed by decompiler + (near-off symbol :offset-assert 56) ;; guessed by decompiler + (far-on symbol :offset-assert 60) ;; guessed by decompiler + (all-on symbol :offset-assert 64) ;; guessed by decompiler + (ocean-facing uint32 :offset-assert 68) + (mid-mask-ptrs pointer 36 :offset-assert 72) ;; guessed by decompiler + (mid-camera-masks uint64 36 :offset-assert 216) ;; guessed by decompiler + (trans-mask-ptrs pointer 64 :offset-assert 504) ;; guessed by decompiler + (trans-camera-masks ocean-trans-mask 16 :offset-assert 760) ;; guessed by decompiler + (trans-temp-masks uint32 16 :offset-assert 824) ;; guessed by decompiler + (haze-lights haze-lights :inline :offset-assert 896) + (near-mask-indices uint16 16 :offset-assert 1020) ;; guessed by decompiler + (mid-minx uint8 :offset-assert 1052) + (mid-maxx uint8 :offset-assert 1053) + (mid-minz uint8 :offset-assert 1054) + (mid-maxz uint8 :offset-assert 1055) + (near-minx uint8 :offset-assert 1056) + (near-maxx uint8 :offset-assert 1057) + (near-minz uint8 :offset-assert 1058) + (near-maxz uint8 :offset-assert 1059) + (temp-minx uint8 :offset-assert 1060) + (temp-maxx uint8 :offset-assert 1061) + (temp-minz uint8 :offset-assert 1062) + (temp-maxz uint8 :offset-assert 1063) + (tex1 uint64 :offset-assert 1064) ;; gs-tex1 + (tex1-near uint64 :offset-assert 1072) ;; gs-tex1 + (wait-to-vu0 uint32 :offset-assert 1080) + ) + :method-count-assert 84 + :size-assert #x43c + :flag-assert #x540000043c + (:methods + (ocean-method-11 () none) ;; 11 ;; (get-height (_type_ vector symbol) float) + (ocean-method-12 () none) ;; 12 ;; (draw! (_type_) none) + (ocean-method-13 () none) ;; 13 ;; (update-map (_type_) none) + (ocean-method-14 () none) ;; 14 ;; (interp-wave (_type_ ocean-wave-info uint float) none) + (ocean-method-15 () none) ;; 15 ;; (ocean-method-15 (_type_ matrix matrix) none) + (ocean-method-16 () none) ;; 16 ;; (generate-verts (_type_ ocean-vert-array ocean-height-array) none) + (ocean-method-17 () none) ;; 17 ;; (add-colors! (_type_ vector ocean-vertex) none) + (ocean-method-18 () none) ;; 18 ;; (ocean-method-18 (_type_ (pointer ocean-colors) (pointer ocean-colors)) none) + (ocean-method-19 () none) ;; 19 ;; (init-buffer! (_type_ dma-buffer) none) + (ocean-method-20 () none) ;; 20 ;; (end-buffer! (_type_ dma-buffer) none) + (ocean-method-21 () none) ;; 21 ;; (set-corners! (_type_ float float) float) + (ocean-method-22 () none) ;; 22 ;; (ocean-near-add-call (_type_ dma-buffer int) none) + (ocean-method-23 () none) ;; 23 ;; (ocean-near-add-call-flush (_type_ dma-buffer int) none) + (ocean-method-24 () none) ;; 24 ;; (ocean-near-setup-constants (_type_ ocean-near-constants) none) + (ocean-method-25 () none) ;; 25 ;; (ocean-near-add-constants (_type_ dma-buffer) none) + (ocean-method-26 () none) ;; 26 ;; (ocean-near-add-heights (_type_ dma-buffer) none) + (ocean-method-27 () none) ;; 27 ;; (ocean-near-add-matrices (_type_ dma-buffer vector) none) + (ocean-method-28 () none) ;; 28 ;; (ocean-near-add-upload (_type_ dma-buffer uint uint) none) + (ocean-method-29 () none) ;; 29 ;; (draw-ocean-near (_type_ dma-buffer) none) + (ocean-method-30 () none) ;; 30 ;; (ocean-trans-camera-masks-bit? (_type_ uint uint) symbol) + (ocean-method-31 () none) ;; 31 ;; (ocean-trans-mask-ptrs-bit? (_type_ int int) symbol) + (ocean-method-32 () none) ;; 32 ;; (ocean-trans-mask-ptrs-set! (_type_ uint uint) symbol) + (ocean-method-33 () none) ;; 33 ;; (ocean-trans-add-upload-table (_type_ dma-buffer uint uint int int symbol) none) + (ocean-method-34 () none) ;; 34 ;; (ocean-trans-add-upload-strip (_type_ dma-buffer uint uint int int int) none) + (ocean-method-35 () none) ;; 35 ;; (ocean-transition-check (_type_ ocean-trans-mask int int vector) none) + (ocean-method-36 () none) ;; 36 ;; (ocean-make-trans-camera-masks (_type_ uint uint uint uint) none) + (ocean-method-37 () none) ;; 37 ;; (ocean-trans-add-upload (_type_ dma-buffer uint uint) none) + (ocean-method-38 () none) ;; 38 ;; (draw-ocean-transition-seams (_type_ dma-buffer) none) + (ocean-method-39 () none) ;; 39 ;; (ocean-trans-add-constants (_type_ dma-buffer) none) + (ocean-method-40 () none) ;; 40 ;; (draw-ocean-transition (_type_ dma-buffer) none) + (ocean-method-41 () none) ;; 41 ;; (ocean-mid-add-call (_type_ dma-buffer int) none) + (ocean-method-42 () none) ;; 42 ;; (ocean-mid-add-call-flush (_type_ dma-buffer uint) none) + (ocean-method-43 () none) ;; 43 ;; (ocean-matrix*! (_type_ matrix matrix matrix) matrix) + (ocean-method-44 () none) ;; 44 ;; (ocean-vector-matrix*! (_type_ vector vector matrix) vector) + (ocean-method-45 () none) ;; 45 ;; (ocean-mid-add-matrices (_type_ dma-buffer vector) none) + (ocean-method-46 () none) ;; 46 ;; (ocean-mid-check (_type_ pointer int int vector) symbol) + (ocean-method-47 () none) ;; 47 ;; (ocean-mid-setup-constants (_type_ ocean-mid-constants) none) + (ocean-method-48 () none) ;; 48 ;; (ocean-mid-add-constants (_type_ dma-buffer) none) + (ocean-method-49 () none) ;; 49 ;; (ocean-mid-camera-masks-bit? (_type_ uint uint) symbol) + (ocean-method-50 () none) ;; 50 ;; (ocean-mid-mask-ptrs-bit? (_type_ uint uint) symbol) + (ocean-method-51 () none) ;; 51 ;; (ocean-mid-camera-masks-set! (_type_ uint uint) symbol) + (ocean-method-52 () none) ;; 52 ;; (ocean-mid-add-upload (_type_ dma-buffer int int int int float) none) + (ocean-method-53 () none) ;; 53 ;; (ocean-mid-add-upload-table (_type_ dma-buffer uint uint (pointer float) int symbol) none) + (ocean-method-54 () none) ;; 54 ;; (ocean-mid-add-upload-top (_type_ dma-buffer uint uint) none) + (ocean-method-55 () none) ;; 55 ;; (ocean-mid-add-upload-middle (_type_ dma-buffer uint uint) none) + (ocean-method-56 () none) ;; 56 ;; (ocean-mid-add-upload-bottom (_type_ dma-buffer uint uint) none) + (ocean-method-57 () none) ;; 57 ;; (ocean-seams-add-constants (_type_ dma-buffer) none) + (ocean-method-58 () none) ;; 58 ;; (draw-ocean-mid-seams (_type_ dma-buffer) none) + (ocean-method-59 () none) ;; 59 ;; (draw-ocean-mid (_type_ dma-buffer) none) + (ocean-method-60 () none) ;; 60 ;; (ocean-method-60 (_type_ dma-buffer) none) + (ocean-method-61 () none) ;; 61 ;; (ocean-method-61 (_type_ dma-buffer) none) + (ocean-method-62 () none) ;; 62 ;; (ocean-method-62 (_type_ dma-buffer) none) + (ocean-method-63 () none) ;; 63 ;; (ocean-method-63 (_type_ dma-buffer) none) + (ocean-method-64 () none) ;; 64 ;; (ocean-method-64 (_type_ dma-buffer) none) + (ocean-method-65 () none) ;; 65 ;; (ocean-method-65 (_type_ dma-buffer) none) + (ocean-method-66 () none) ;; 66 ;; (ocean-method-66 (_type_ dma-buffer) none) + (ocean-method-67 () none) ;; 67 ;; (ocean-method-67 (_type_ dma-buffer) none) + (ocean-method-68 () none) ;; 68 ;; (render-ocean-far (_type_ dma-buffer int) none) + (ocean-method-69 () none) ;; 69 ;; (draw-ocean-far (_type_ dma-buffer) none) + (ocean-method-70 () none) ;; 70 ;; (ocean-texture-setup-constants (_type_ ocean-texture-constants) none) + (ocean-method-71 () none) ;; 71 ;; (ocean-texture-add-constants (_type_ dma-buffer) none) + (ocean-method-72 () none) ;; 72 ;; (ocean-texture-add-envmap (_type_ dma-buffer) none) + (ocean-method-73 () none) ;; 73 ;; (ocean-texture-add-verts (_type_ dma-buffer int) none) + (ocean-method-74 () none) ;; 74 ;; (ocean-texture-add-verts-last (_type_ dma-buffer int int) none) + (ocean-method-75 () none) ;; 75 ;; (ocean-texture-add-call-start (_type_ dma-buffer) none) + (ocean-method-76 () none) ;; 76 ;; (ocean-texture-add-call-rest (_type_ dma-buffer) none) + (ocean-method-77 () none) ;; 77 ;; (ocean-texture-add-call-done (_type_ dma-buffer) none) + (ocean-method-78 () none) ;; 78 ;; (draw-ocean-texture (_type_ dma-buffer int) none) + (ocean-method-79 () none) ;; 79 ;; (ocean-method-79 (_type_ (pointer rgba)) none) + (ocean-method-80 () none) ;; 80 ;; (ocean-method-80 (_type_ dma-buffer) none) + (ocean-method-81 () none) ;; 81 ;; (draw-envmap-debug (_type_ dma-buffer) none) + (ocean-method-82 () none) ;; 82 ;; (ocean-method-82 (_type_ dma-buffer float) int) + (ocean-method-83 () none) ;; 83 ;; (ocean-method-83 (_type_ dma-buffer sky-upload-data vector4w float) none) + ) + ) +|# + +;; (define-extern *ocean-map* object) ;; ocean-map +;; (define-extern *ocean* object) ;; ocean + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; car-textures ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype car-texture-work (structure) + ((adgif-tmpl dma-gif-packet :inline :offset-assert 0) + (sprite-tmpl dma-gif-packet :inline :offset-assert 32) + (white vector4w :inline :offset-assert 64) + (blur vector4w :inline :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype car-name-info (structure) + ((name basic :offset-assert 0) + (part-dest-name basic :offset-assert 4) + (part-source-name basic :offset-assert 8) + (look-name basic :offset-assert 12) + (layer-name basic :offset-assert 16) + (damage int32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern *car-texture-work* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype texture-page-dir (basic) + () + :method-count-assert 11 + :size-assert #x14 + :flag-assert #xb00000014 + (:methods + (texture-page-dir-method-9 () none) ;; 9 ;; (unlink-shaders-in-heap (_type_ kheap) int) + (texture-page-dir-method-10 () none) ;; 10 + ) + ) +|# + +;; (define-extern texture-bpp function) ;; (function gs-psm int) +;; (define-extern texture-qwc function) ;; (function int int gs-psm int) +;; (define-extern physical-address function) ;; (function pointer pointer) +;; (define-extern dma-buffer-add-ref-texture function) ;; (function dma-buffer pointer int int gs-psm none) +;; (define-extern gs-find-block function) ;; (function int int gs-psm int) +;; (define-extern gs-page-width function) ;; (function gs-psm int) +;; (define-extern gs-page-height function) ;; (function gs-psm int) +;; (define-extern gs-block-width function) ;; (function gs-psm int) +;; (define-extern gs-block-height function) ;; (function gs-psm int) +;; (define-extern gs-largest-block function) ;; (function int int gs-psm int) +;; (define-extern gs-blocks-used function) ;; (function int int gs-psm int) +;; (define-extern texture-page-default-allocate function) ;; (function texture-pool texture-page kheap int texture-page) +;; (define-extern texture-page-common-allocate function) ;; (function texture-pool texture-page kheap int texture-page) +;; (define-extern texture-page-font-allocate function) ;; (function texture-pool texture-page kheap int texture-page) +;; (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-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) +;; (define-extern upload-vram-pages-pris function) ;; (function texture-pool texture-pool-segment texture-page bucket-id (pointer int32) int) +;; (define-extern texture-page-level-allocate function) ;; (function texture-pool texture-page kheap int texture-page) +;; (define-extern texture-page-size-check function) ;; (function texture-pool level symbol int) +;; (define-extern upload-textures function) ;; (function texture-pool none) +;; (define-extern *txt-dma-list* object) ;; dma-buffer +;; (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-id-by-name function) ;; (function string string texture-id) +;; (define-extern lookup-level-texture-by-name function) ;; (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 +;; (define-extern *edit-shader* object) ;; texture-id +;; (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<-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-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 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 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mspace-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype joint (basic) + ((name basic :offset-assert 4) + (number int32 :offset-assert 8) + (parent joint :offset-assert 12) ;; guessed by decompiler + (bind-pose matrix :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype bone-cache (structure) + ((bone-matrix uint32 :offset-assert 0) + (parent-matrix uint32 :offset-assert 4) + (dummy uint32 :offset-assert 8) + (frame uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype bone (structure) + ((transform matrix :inline :offset-assert 0) + (position vector :inline :offset-assert 48) + (scale vector :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype skeleton (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype cspace (structure) + ((parent cspace :offset-assert 0) + (joint joint :offset-assert 4) ;; guessed by decompiler + (joint-num int16 :offset-assert 8) + (geo drawable :offset-assert 12) ;; guessed by decompiler + (bone bone :offset-assert 16) + (param0 (function cspace transformq none) :offset-assert 20) ;; guessed by decompiler + (param1 basic :offset-assert 24) + (param2 basic :offset-assert 28) + ) + :method-count-assert 10 + :size-assert #x20 + :flag-assert #xa00000020 + ;; field param1 uses ~A with a signed load. field param2 uses ~A with a signed load. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type drawable) _type_) + (cspace-method-9 () none) ;; 9 ;; (reset-and-assign-geo! (_type_ drawable) _type_) + ) + ) +|# + +#| +(deftype cspace-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data cspace :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable (basic) + ((id int16 :offset-assert 4) + (bsphere vector :inline :offset-assert 16) + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + (:methods + (drawable-method-9 () none) ;; 9 ;; (login (_type_) _type_) + (drawable-method-10 () none) ;; 10 ;; (draw (_type_) none) + (drawable-method-11 () none) ;; 11 ;; (drawable-method-11 (_type_) none) + (drawable-method-12 () none) ;; 12 ;; (drawable-method-12 (_type_) none) + (drawable-method-13 () none) ;; 13 ;; (collect-stats (_type_) none) + (drawable-method-14 () none) ;; 14 ;; (debug-draw (_type_) none) + (drawable-method-15 () none) ;; 15 ;; (unpack-vis (_type_ (pointer int8) (pointer int8)) (pointer int8)) + (drawable-method-16 () none) ;; 16 ;; (collect-regions (_type_ sphere int region-prim-list) none) + ) + ) +|# + +#| +(deftype drawable-error (drawable) + ((name string :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x24 + :flag-assert #x1100000024 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-group-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-group (drawable) + ((id int16 :offset-assert 0) + (bsphere vector :inline :offset-assert 12) + (length int16 :offset-assert 2) + (data drawable :dynamic :offset-assert 28) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int) _type_) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-inline-array-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-inline-array (drawable) + ((length int16 :offset-assert 6) + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; draw-node-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype draw-node (drawable) + ((child-count uint8 :offset-assert 6) + (flags uint8 :offset-assert 7) + (child drawable :offset-assert 8) ;; guessed by decompiler + (distance float :offset-assert 12) + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ;; field distance is a float printed as hex? + ) +|# + +;; (deftype drawable-inline-array-node (drawable-inline-array) +;; () +;; :flag-assert #x1100000044 +;; ) + +#| +(deftype draw-node-dma (structure) + ((banka draw-node 32 :offset-assert 4) ;; guessed by decompiler + (bankb draw-node 32 :offset-assert 1028) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x800 + :flag-assert #x900000800 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-tree-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype drawable-tree (drawable-group) +;; () +;; :flag-assert #x1100000020 +;; ) + +;; (deftype drawable-tree-array (drawable-group) +;; () +;; :flag-assert #x1100000020 +;; ) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-actor-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-actor (drawable) + ((actor entity-actor :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ) +|# + +;; (deftype drawable-tree-actor (drawable-tree) +;; () +;; :flag-assert #x1100000020 +;; ) + +;; (deftype drawable-inline-array-actor (drawable-inline-array) +;; () +;; :flag-assert #x1100000044 +;; ) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; region-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype region (structure) + ((id uint32 :offset-assert 0) + (on-enter pair :offset-assert 4) ;; guessed by decompiler + (on-inside pair :offset-assert 8) ;; guessed by decompiler + (on-exit pair :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + ;; field on-enter uses ~A with a signed load. field on-inside uses ~A with a signed load. field on-exit uses ~A with a signed load. + (:methods + (region-method-9 () none) ;; 9 ;; (point-in-region-debug! (_type_ vector) symbol) + ) + ) +|# + +#| +(deftype region-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data region :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype drawable-region-prim (drawable) + ((region region :offset-assert 8) + ) + :method-count-assert 20 + :size-assert #x20 + :flag-assert #x1400000020 + (:methods + (drawable-region-prim-method-17 () none) ;; 17 ;; (debug-draw-region (_type_ int) none) + (drawable-region-prim-method-18 () none) ;; 18 ;; (track-region (_type_ region-prim-area) symbol) + (drawable-region-prim-method-19 () none) ;; 19 ;; (within-area? (_type_ region-prim-area) symbol) + ) + ) +|# + +#| +(deftype drawable-tree-region-prim (drawable-tree) + ((id int16 :offset-assert 0) + (bsphere vector :inline :offset-assert 12) + (length int16 :offset-assert 2) + (data drawable :dynamic :offset-assert 28) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (name symbol :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 19 + :size-assert #x20 + :flag-assert #x1300000020 + (:methods + (drawable-tree-region-prim-method-17 () none) ;; 17 ;; (drawable-tree-region-prim-method-17 (_type_ vector) symbol) + (drawable-tree-region-prim-method-18 () none) ;; 18 ;; (debug-print (_type_ vector object) none) + ) + ) +|# + +;; (deftype drawable-inline-array-region-prim (drawable-inline-array) +;; () +;; :flag-assert #x1100000044 +;; ) + +#| +(deftype drawable-region-sphere (drawable-region-prim) + () + :method-count-assert 20 + :size-assert #x20 + :flag-assert #x1400000020 + ) +|# + +#| +(deftype region-face-data (structure) + ((normal vector :inline :offset-assert 0) + (normal-offset float :offset-assert 12) + (num-points uint32 :offset-assert 16) + (points vector :dynamic :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype drawable-region-face (drawable-region-prim) + ((data region-face-data :offset-assert 12) + ) + :method-count-assert 20 + :size-assert #x20 + :flag-assert #x1400000020 + ) +|# + +#| +(deftype region-face-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data drawable-region-face :dynamic :offset-assert 20) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x14 + :flag-assert #xe00000014 + ) +|# + +#| +(deftype drawable-region-volume (drawable-region-prim) + ((faces region-face-array :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 20 + :size-assert #x20 + :flag-assert #x1400000020 + ) +|# + +#| +(deftype region-prim-list (structure) + ((num-items int32 :offset-assert 0) + (items drawable-region-prim 320 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x504 + :flag-assert #x900000504 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; advanced-options ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gsf-vertex (structure) + ((data uint32 8 :offset-assert 0) ;; guessed by decompiler + (byte uint8 32 :offset-assert 0) ;; guessed by decompiler + (quad uint128 2 :offset-assert 0) ;; guessed by decompiler + (vt qword :inline :offset-assert 0) + (pos vector3s :inline :offset-assert 0) + (tex vector2uh :inline :offset-assert 12) + (nrm vector3s :inline :offset-assert 16) + (nc qword :inline :offset-assert 16) + (clr vector4ub :inline :offset-assert 28) + (dtex vector2uh :inline :offset-assert 16) + (dclr vector4ub :inline :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype gsf-fx-vertex (structure) + ((clr vector4ub :inline :offset-assert 0) + (tex vector2uh :inline :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype gsf-header (structure) + ((num-strips uint8 :offset-assert 0) + (num-new-vtxs uint8 :offset-assert 1) + (num-dps uint16 :offset-assert 2) + (num-vtxs uint16 :offset-assert 4) + (strip-table uint8 10 :offset-assert 6) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gsf-ik (structure) + ((index uint8 :offset-assert 0) + (no-kick uint8 :offset-assert 1) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype gsf-info (structure) + ((ptr-iks uint32 :offset-assert 0) + (ptr-verts uint32 :offset-assert 4) + (ptr-fx uint32 :offset-assert 8) + (dummy2 uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gsf-buffer (structure) + ((data uint8 8192 :offset-assert 0) ;; guessed by decompiler + (info gsf-info :inline :offset-assert 0) + (header gsf-header :inline :offset-assert 16) + (work-area uint8 :dynamic :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2000 + :flag-assert #x900002000 + ) +|# + +#| +(deftype generic-frag (structure) + ((start-pos uint16 :offset-assert 0) + (end-pos uint16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype generic-strip (structure) + ((pos uint16 :offset-assert 0) + (len uint16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype generic-envmap-saves (structure) + ((index-mask vector4w :inline :offset-assert 0) + (verts uint128 12 :offset-assert 16) ;; guessed by decompiler + (kicks uint128 4 :offset-assert 208) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x110 + :flag-assert #x900000110 + ) +|# + +#| +(deftype generic-interp-job (structure) + ((job-type uint16 :offset-assert 0) + (num uint16 :offset-assert 2) + (first uint16 :offset-assert 4) + (pad uint16 :offset-assert 6) + (ptr-data uint32 :offset-assert 8) + (morph-z uint16 :offset-assert 12) + (morph-w uint16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype generic-saves (structure) + ((ptr-dma uint32 :offset-assert 0) + (ptr-vtxs uint32 :offset-assert 4) + (ptr-clrs uint32 :offset-assert 8) + (ptr-texs uint32 :offset-assert 12) + (ptr-env-clrs uint32 :offset-assert 16) + (ptr-env-texs uint32 :offset-assert 20) + (cur-outbuf uint32 :offset-assert 24) + (ptr-fx-buf uint32 :offset-assert 28) + (xor-outbufs uint32 :offset-assert 32) + (num-dps uint32 :offset-assert 36) + (qwc uint32 :offset-assert 40) + (gsf-buf gsf-buffer :offset-assert 44) + (ptr-shaders uint32 :offset-assert 48) + (ptr-env-shader uint32 :offset-assert 52) + (is-envmap uint16 :offset-assert 56) + (is-translucent uint16 :offset-assert 58) + (basep uint32 :offset-assert 60) + (ptr-interp-job generic-interp-job :offset-assert 64) + (gifbuf-adr uint32 :offset-assert 68) + (inbuf-adr uint32 :offset-assert 72) + (fade-val uint32 :offset-assert 76) + (time-of-day-color rgba :offset-assert 80) ;; guessed by decompiler + (to-vu0-waits uint32 :offset-assert 84) + (to-spr-waits uint32 :offset-assert 88) + (from-spr-waits uint32 :offset-assert 92) + (envmap generic-envmap-saves :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x170 + :flag-assert #x900000170 + ) +|# + +#| +(deftype generic-gif-tag (structure) + ((data uint32 4 :offset-assert 0) ;; guessed by decompiler + (qword qword :inline :offset-assert 0) + (fan-prim gif-tag-prim :offset-assert 0) ;; guessed by decompiler + (str-prim gif-tag-prim :offset-assert 4) ;; guessed by decompiler + (regs gif-tag-regs-32 :offset-assert 8) ;; guessed by decompiler + (num-strips uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype generic-envmap-consts (structure) + ((consts vector :inline :offset-assert 0) + (strgif generic-gif-tag :inline :offset-assert 16) + (colors vector4w :inline :offset-assert 32) + (shader adgif-shader :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype generic-consts (structure) + ((dma-header dma-packet :inline :offset-assert 0) + (vif-header uint32 4 :offset-assert 16) ;; guessed by decompiler + (dma-ref-vtxs dma-packet :inline :offset-assert 32) + (dma-cnt-call dma-packet :inline :offset-assert 48) + (matrix matrix :inline :offset-assert 64) + (base-strgif generic-gif-tag :inline :offset-assert 128) + (alpha-opaque gs-adcmd :inline :offset-assert 144) + (alpha-translucent gs-adcmd :inline :offset-assert 160) + (ztest-normal gs-adcmd :inline :offset-assert 176) + (ztest-opaque gs-adcmd :inline :offset-assert 192) + (adcmd-offsets uint8 16 :offset-assert 208) ;; guessed by decompiler + (adcmds UNKNOWN 4 :offset-assert 144) + (stcycle-tag uint32 :offset-assert 224) + (unpack-vtx-tag uint32 :offset-assert 228) + (unpack-clr-tag uint32 :offset-assert 232) + (unpack-tex-tag uint32 :offset-assert 236) + (mscal-tag uint32 :offset-assert 240) + (flush-tag uint32 :offset-assert 244) + (reset-cycle-tag uint32 :offset-assert 248) + (dummy0 uint32 :offset-assert 252) + (dma-tag-cnt uint64 :offset-assert 256) + (envmap generic-envmap-consts :inline :offset-assert 272) + (light-consts vector :inline :offset-assert 400) + (texture-offset uint16 8 :offset-assert 416) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1b0 + :flag-assert #x9000001b0 + ) +|# + +#| +(deftype generic-storage (structure) + ((data uint128 16 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype gsf-vertex-array (UNKNOWN) + ((vtx gsf-vertex :dynamic :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype gsf-fx-vertex-array (UNKNOWN) + ((data gsf-fx-vertex :dynamic :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern *gsf-buffer* object) ;; object + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cloth-art-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cloth-pt (structure) + ((pt vector :inline :offset-assert 0) + (u float :offset-assert 16) + (v float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype anchor-transform (structure) + ((offset vector :inline :offset-assert 0) + (joint-name string :offset-assert 16) ;; guessed by decompiler + (joint int16 :offset-assert 20) + (constraint-index int16 :offset-assert 22) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype sphere-transform (structure) + ((offset vector :inline :offset-assert 0) + (joint-name string :offset-assert 16) ;; guessed by decompiler + (radius float :offset-assert 20) + (joint int16 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1a + :flag-assert #x90000001a + ) +|# + +#| +(deftype disc-transform (structure) + ((offset vector :inline :offset-assert 0) + (normal vector :inline :offset-assert 16) + (joint-name basic :offset-assert 32) + (radius float :offset-assert 36) + (joint int16 :offset-assert 40) + (start-particle-index int16 :offset-assert 42) + (end-particle-index int16 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x2e + :flag-assert #x90000002e + ) +|# + +#| +(deftype anchor-transform-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data anchor-transform :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype sphere-transform-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data sphere-transform :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype disc-transform-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data disc-transform :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype cloth-thickness-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data uint8 :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype cloth-params (structure) + ((mesh int16 :offset-assert 0) + (gravity-constant float :offset-assert 4) ;; meters + (wind-constant float :offset-assert 8) + (cloth-width uint16 :offset-assert 12) + (num-sphere-constraints uint16 :offset-assert 14) + (num-disc-constraints uint16 :offset-assert 16) + (num-anchor-points uint16 :offset-assert 18) + (flags uint64 :offset-assert 24) ;; cloth-flag + (tex-name string :offset-assert 32) ;; guessed by decompiler + (tex-name2 string :offset-assert 36) ;; guessed by decompiler + (tex-name3 string :offset-assert 40) ;; guessed by decompiler + (alt-tex-name string :offset-assert 44) ;; guessed by decompiler + (alt-tex-name2 string :offset-assert 48) ;; guessed by decompiler + (alt-tex-name3 string :offset-assert 52) ;; guessed by decompiler + (cloth-thickness float :offset-assert 56) + (initial-xform int16 :offset-assert 60) + (drag float :offset-assert 64) + (ball-collision-radius float :offset-assert 68) ;; meters + (num-iterations int8 :offset-assert 72) + (timestep-frequency int8 :offset-assert 73) + (secret-disable uint64 :offset-assert 80) ;; game-secrets + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +#| +(deftype cloth-base (basic) + () + :method-count-assert 11 + :size-assert #x4 + :flag-assert #xb00000004 + (:methods + (cloth-base-method-9 () none) ;; 9 ;; (update! (_type_) int) + (cloth-base-method-10 () none) ;; 10 ;; (setup-from-params! (_type_ cloth-params handle) int) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; art-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype joint-anim (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (number int16 :offset-assert 8) + (length int16 :offset-assert 10) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; (deftype joint-anim-matrix (joint-anim) +;; () +;; :flag-assert #x900000010 +;; ) + +#| +(deftype joint-anim-transformq (joint-anim) + ((name string :offset-assert 0) ;; guessed by decompiler + (number int16 :offset-assert 4) + (length int16 :offset-assert 6) + (data transformq :dynamic :offset-assert 12) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype joint-anim-drawable (joint-anim) + ((data drawable :dynamic :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype joint-anim-frame (structure) + ((matrices matrix 2 :offset-assert 0) ;; guessed by decompiler + (data transformq :dynamic :offset-assert 128) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype joint-anim-compressed-hdr (structure) + ((control-bits uint32 14 :offset-assert 0) ;; guessed by decompiler + (num-joints uint32 :offset-assert 56) + (matrix-bits uint32 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype joint-anim-compressed-fixed (structure) + ((hdr joint-anim-compressed-hdr :inline :offset-assert 0) + (offset-64 uint32 :offset-assert 64) + (offset-32 uint32 :offset-assert 68) + (offset-16 uint32 :offset-assert 72) + (reserved uint32 :offset-assert 76) + (data vector 133 :offset-assert 80) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8a0 + :flag-assert #x9000008a0 + ) +|# + +#| +(deftype joint-anim-compressed-frame (structure) + ((offset-64 uint32 :offset-assert 0) + (offset-32 uint32 :offset-assert 4) + (offset-16 uint32 :offset-assert 8) + (reserved uint32 :offset-assert 12) + (data vector 133 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x860 + :flag-assert #x900000860 + ) +|# + +#| +(deftype joint-anim-compressed-control (structure) + ((num-frames uint16 :offset-assert 0) + (flags uint16 :offset-assert 2) + (fixed-qwc uint32 :offset-assert 4) + (frame-qwc uint32 :offset-assert 8) + (fixed joint-anim-compressed-fixed :offset-assert 12) + (data joint-anim-compressed-frame :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype art (basic) + ((name string :offset-assert 8) ;; guessed by decompiler + (length int32 :offset-assert 12) + (extra res-lump :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x14 + :flag-assert #xe00000014 + (:methods + (art-method-9 () none) ;; 9 ;; (login (_type_) _type_) + (art-method-10 () none) ;; 10 ;; (art-method-10 (_type_) _type_) + (art-method-11 () none) ;; 11 ;; (get-art-by-name-method (_type_ string type) basic) + (art-method-12 () none) ;; 12 ;; (get-art-idx-by-name-method (_type_ string type) int) + (art-method-13 () none) ;; 13 ;; (contains-art-for-other-group? (_type_) symbol) + ) + ) +|# + +#| +(deftype art-element (art) + ((master-art-group-name string :offset-assert 20) ;; guessed by decompiler + (master-art-group-index int32 :offset-assert 24) + ) + :method-count-assert 14 + :size-assert #x30 + :flag-assert #xe00000030 + ) +|# + +;; (deftype art-mesh-anim (art-element) +;; () +;; :flag-assert #xe00000030 +;; ) + +#| +(deftype art-joint-anim (art-element) + ((eye-anim merc-eye-anim-block :offset-assert 28) + (blend-shape-anim (pointer int8) :offset-assert 32) ;; guessed by decompiler + (frames joint-anim-compressed-control :offset-assert 36) + (speed float :offset-assert 48) + (artist-base float :offset-assert 52) + (artist-step float :offset-assert 56) + ) + :method-count-assert 14 + :size-assert #x3c + :flag-assert #xe0000003c + ;; field blend-shape-anim uses ~A with a signed load. + ) +|# + +;; (deftype art-group (art) +;; () +;; :flag-assert #x1000000020 +;; ) + +;; (deftype art-mesh-geo (art-element) +;; () +;; :flag-assert #xe00000030 +;; ) + +;; (deftype art-joint-geo (art-element) +;; () +;; :flag-assert #xe00000030 +;; ) + +#| +(deftype art-cloth-geo (art-element) + ((anchor-transforms anchor-transform-array :offset-assert 48) ;; guessed by decompiler + (sphere-transforms sphere-transform-array :offset-assert 52) ;; guessed by decompiler + (disc-transforms disc-transform-array :offset-assert 56) ;; guessed by decompiler + (cloth-thickness cloth-thickness-array :offset-assert 60) ;; guessed by decompiler + (thickness-scalar float :offset-assert 64) + (num-points int32 :offset-assert 12) + (mesh cloth-pt :dynamic :offset-assert 80) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x50 + :flag-assert #xe00000050 + ) +|# + +#| +(deftype skeleton-group (art-group) + ((name string :offset-assert 8) ;; guessed by decompiler + (length int32 :offset-assert 12) + (extra res-lump :offset-assert 16) ;; guessed by decompiler + (info file-info :offset-assert 4) ;; guessed by decompiler + (data art-element :dynamic :offset-assert 32) ;; guessed by decompiler + (art-group-name string :offset-assert 32) ;; guessed by decompiler + (jgeo int16 :offset-assert 36) + (janim int16 :offset-assert 38) + (bounds vector :inline :offset-assert 48) + (radius meters :offset-assert 60) + (mgeo int16 6 :offset-assert 64) ;; guessed by decompiler + (max-lod int32 :offset-assert 76) + (lod-dist float 6 :offset-assert 80) ;; guessed by decompiler + (longest-edge meters :offset-assert 104) + (texture-level int8 :offset-assert 108) + (version int8 :offset-assert 109) + (shadow int16 :offset-assert 110) + (shadow-joint-index int8 :offset-assert 112) + (origin-joint-index int8 :offset-assert 113) + (sort int8 :offset-assert 114) + (light-index uint8 :offset-assert 115) + (clothing (array cloth-params) :offset-assert 116) ;; guessed by decompiler + (global-effects uint8 :offset-assert 120) + ) + :method-count-assert 17 + :size-assert #x79 + :flag-assert #x1100000079 + (:methods + (skeleton-group-method-16 () none) ;; 16 ;; (add-to-loading-level (_type_) skeleton-group) + ) + ) +|# + +#| +(deftype lod-group (structure) + ((geo merc-ctrl :offset-assert 0) ;; guessed by decompiler + (dist meters :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype lod-set (structure) + ((lod lod-group 6 :offset-assert 0) ;; guessed by decompiler + (max-lod int8 :offset-assert 48) + ) + :method-count-assert 10 + :size-assert #x31 + :flag-assert #xa00000031 + (:methods + (lod-set-method-9 () none) ;; 9 ;; (setup-lods! (_type_ skeleton-group art-group entity) _type_) + ) + ) +|# + +#| +(deftype draw-control (basic) + ((process process-drawable :offset-assert 4) ;; guessed by decompiler + (status draw-control-status :offset-assert 8) + (data-format uint8 :offset-assert 12) ;; draw-control-data-format + (global-effect draw-control-global-effect :offset-assert 13) + (art-group art-group :offset-assert 16) ;; guessed by decompiler + (jgeo art-joint-geo :offset-assert 20) ;; guessed by decompiler + (mgeo merc-ctrl :offset-assert 24) ;; guessed by decompiler + (dma-add-func (function process-drawable draw-control symbol object none) :offset-assert 28) ;; guessed by decompiler + (skeleton skeleton :offset-assert 32) ;; guessed by decompiler + (lod-set lod-set :inline :offset-assert 36) + (lod UNKNOWN 6 :offset-assert 36) + (max-lod int8 :offset-assert 84) + (force-lod int8 :offset-assert 85) + (cur-lod int8 :offset-assert 86) + (cur-lods UNKNOWN 2 :offset-assert 87) + (effect-masks UNKNOWN 2 :offset-assert 96) + (prev-seg-mask uint64 :offset-assert 112) + (want-lod int8 :offset-assert 120) + (ripple ripple-control :offset-assert 124) ;; guessed by decompiler + (longest-edge meters :offset-assert 128) + (longest-edge? uint32 :offset-assert 128) + (light-index uint8 :offset-assert 132) + (shadow-mask uint8 :offset-assert 133) + (level-index uint8 :offset-assert 134) + (death-draw-overlap uint8 :offset-assert 135) + (death-timer uint8 :offset-assert 136) + (death-timer-org uint8 :offset-assert 137) + (death-vertex-skip uint16 :offset-assert 138) + (death-effect uint32 :offset-assert 140) + (shadow shadow-geo :offset-assert 144) ;; guessed by decompiler + (shadow-ctrl shadow-control :offset-assert 148) ;; guessed by decompiler + (distance meters :offset-assert 152) + (origin vector :inline :offset-assert 160) + (bounds vector :inline :offset-assert 176) + (radius meters :offset-assert 188) + (color-mult rgbaf :inline :offset-assert 192) + (color-emissive rgbaf :inline :offset-assert 208) + (effect-mask uint64 :offset-assert 224) + (seg-mask uint64 :offset-assert 232) + (origin-joint-index uint8 :offset-assert 240) + (shadow-joint-index uint8 :offset-assert 241) + (force-fade uint8 :offset-assert 242) + (default-texture-page uint8 :offset-assert 243) + (shadow-values uint32 :offset-assert 244) + (cloth-instances (array cloth-system) :offset-assert 248) ;; guessed by decompiler + (lights vu-lights :offset-assert 252) + (envmap-override float :offset-assert 256) + ) + :method-count-assert 16 + :size-assert #x104 + :flag-assert #x1000000104 + ;; field draw-control-global-effect is likely a value type. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type process symbol) _type_) + (draw-control-method-9 () none) ;; 9 ;; (get-skeleton-origin (_type_) vector) + (draw-control-method-10 () none) ;; 10 ;; (lod-set! (_type_ int) none) + (draw-control-method-11 () none) ;; 11 ;; (lods-assign! (_type_ lod-set) none) + (draw-control-method-12 () none) ;; 12 ;; (setup-masks (_type_ int int) none) + (draw-control-method-13 () none) ;; 13 ;; (setup-cspace-and-add (_type_ art-joint-geo symbol) cspace-array) + (draw-control-method-14 () none) ;; 14 ;; (draw-control-method-14 (_type_ cspace-array joint-control) none) + (draw-control-method-15 () none) ;; 15 ;; (do-joint-math (_type_ cspace-array joint-control) none) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-vu1-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pris-mtx (structure) + ((data float 32 :offset-assert 0) ;; guessed by decompiler + (vector vector 8 :offset-assert 0) ;; guessed by decompiler + (t-mtx matrix :inline :offset-assert 0) + (n-mtx matrix3 :inline :offset-assert 64) + (scale vector :inline :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype generic-pris-mtx-save (structure) + ((loc-mtx pris-mtx :inline :offset-assert 0) + (par-mtx pris-mtx :inline :offset-assert 128) + (dif-mtx pris-mtx :inline :offset-assert 256) + ) + :method-count-assert 9 + :size-assert #x180 + :flag-assert #x900000180 + ) +|# + +#| +(deftype generic-constants (structure) + ((fog vector :inline :offset-assert 0) + (adgif qword :inline :offset-assert 16) ;; gs-gif-tag :inline + (hvdf-offset vector :inline :offset-assert 32) + (hmge-scale vector :inline :offset-assert 48) + (invh-scale vector :inline :offset-assert 64) + (guard vector :inline :offset-assert 80) + (flush qword :inline :offset-assert 96) + (stores qword :inline :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype generic-shrub-constants (structure) + ((shrub-giftag generic-gif-tag :inline :offset-assert 0) + (shrub-adnop qword :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype gcf-shader (structure) + ((adgif uint128 5 :offset-assert 0) ;; guessed by decompiler + (shader adgif-shader :inline :offset-assert 0) + (pos uint32 :offset-assert 12) + (num uint32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype gcf-control (structure) + ((matrix matrix :inline :offset-assert 0) + (giftag generic-gif-tag :inline :offset-assert 64) + (adnops gs-adcmd 2 :offset-assert 80) ;; guessed by decompiler + (num-strips uint32 :offset-assert 76) + (num-dps uint32 :offset-assert 92) + (kick-offset uint32 :offset-assert 108) + (shader gcf-shader :dynamic :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype gcf-vertex (structure) + ((tex vector4w :inline :offset-assert 0) + (clr gs-packed-rgba :inline :offset-assert 16) + (pos gs-packed-xyzw :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; merc-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ripple-merc-query (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (start-vertex int32 :offset-assert 16) + (vertex-skip int32 :offset-assert 20) + (vertex-count int32 :offset-assert 24) + (current-loc int32 :offset-assert 28) + (data vector :dynamic :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x20 + :flag-assert #xe00000020 + ) +|# + +#| +(deftype merc-byte-header (structure) + ((srcdest-off uint8 :offset-assert 0) + (rgba-off uint8 :offset-assert 1) + (lump-off uint8 :offset-assert 2) + (fp-off uint8 :offset-assert 3) + (mat1-cnt uint8 :offset-assert 4) + (mat2-cnt uint8 :offset-assert 5) + (mat3-cnt uint8 :offset-assert 6) + (samecopy-cnt uint8 :offset-assert 7) + (crosscopy-cnt uint8 :offset-assert 8) + (strip-len uint8 :offset-assert 9) + (mm-quadword-fp-off uint8 :offset-assert 10) + (mm-quadword-size uint8 :offset-assert 11) + (perc-off uint8 :offset-assert 12) + (mat-slot uint8 10 :offset-assert 13) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x17 + :flag-assert #x900000017 + ) +|# + +#| +(deftype merc-fragment (structure) + ((header merc-byte-header :inline :offset-assert 0) + (rest uint8 1 :offset-assert 23) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x18 + :flag-assert #xa00000018 + (:methods + (merc-fragment-method-9 () none) ;; 9 ;; (login-adgifs (_type_) merc-fragment) + ) + ) +|# + +#| +(deftype merc-vtx (structure) + ((mat-0 uint8 :offset-assert 0) + (mat-1 uint8 :offset-assert 1) + (nrm-x uint8 :offset-assert 2) + (pos-x uint8 :offset-assert 3) + (dst-0 uint8 :offset-assert 4) + (dst-1 uint8 :offset-assert 5) + (nrm-y uint8 :offset-assert 6) + (pos-y uint8 :offset-assert 7) + (tex-s uint8 :offset-assert 8) + (tex-t uint8 :offset-assert 9) + (nrm-z uint8 :offset-assert 10) + (pos-z uint8 :offset-assert 11) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype merc-fp-header (structure) + ((x-add float :offset-assert 0) + (y-add float :offset-assert 4) + (z-add float :offset-assert 8) + (shader-cnt uint8 :offset-assert 12) + (kick-info-offset uint8 :offset-assert 13) + (kick-info-step uint8 :offset-assert 14) + (hword-cnt uint8 :offset-assert 15) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype merc-mat-dest (structure) + ((matrix-number uint8 :offset-assert 0) + (matrix-dest uint8 :offset-assert 1) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype merc-fragment-control (structure) + ((unsigned-four-count uint8 :offset-assert 0) + (lump-four-count uint8 :offset-assert 1) + (fp-qwc uint8 :offset-assert 2) + (mat-xfer-count uint8 :offset-assert 3) + (mat-dest-data merc-mat-dest :dynamic :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype merc-blend-ctrl (structure) + ((blend-vtx-count uint8 :offset-assert 0) + (nonzero-index-count uint8 :offset-assert 1) + (bt-index uint8 :dynamic :offset-assert 2) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype mei-envmap-tint (structure) + ((fade0 float :offset-assert 0) + (fade1 float :offset-assert 4) + (tint rgba :offset-assert 8) ;; guessed by decompiler + (dummy int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype mei-texture-scroll (structure) + ((max-dist float :offset-assert 0) + (st-int-scale uint8 :offset-assert 4) + (time-factor uint8 :offset-assert 5) + (scroll-dir uint8 :offset-assert 6) + (cached-time uint8 :offset-assert 7) + (time-delta uint8 :offset-assert 8) + (dummy uint8 7 :offset-assert 9) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype mei-ripple (structure) + ((x-base float :offset-assert 0) + (z-base float :offset-assert 4) + (grid-size float :offset-assert 8) + (angle float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype merc-extra-info (structure) + ((envmap-tint-offset uint8 :offset-assert 0) + (shader-offset uint8 :offset-assert 1) + (texture-scroll-offset uint8 :offset-assert 2) + (ripple-offset uint8 :offset-assert 3) + (dummy uint8 12 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype merc-effect (structure) + ((frag-geo merc-fragment :offset-assert 0) + (frag-ctrl merc-fragment-control :offset-assert 4) + (blend-data merc-blend-data :offset-assert 8) + (blend-ctrl merc-blend-ctrl :offset-assert 12) + (merc-effect-version uint8 :offset-assert 16) + (effect-bits uint8 :offset-assert 17) ;; effect-bits + (frag-count uint16 :offset-assert 18) + (blend-frag-count uint16 :offset-assert 20) + (tri-count uint16 :offset-assert 22) + (dvert-count uint16 :offset-assert 24) + (texture-index uint8 :offset-assert 26) + (effect-usage uint8 :offset-assert 27) + (extra-info merc-extra-info :offset-assert 28) + ) + :method-count-assert 10 + :size-assert #x20 + :flag-assert #xa00000020 + (:methods + (merc-effect-method-9 () none) ;; 9 ;; (login-adgifs (_type_) none) + ) + ) +|# + +#| +(deftype merc-eye-ctrl (structure) + ((eye-slot int8 :offset-assert 0) + (shader-offset int8 :offset-assert 1) + (shader-count int8 :offset-assert 2) + (eye-ctrl-index int8 :offset-assert 3) + (shader adgif-shader 6 :offset-assert 16) ;; guessed by decompiler + (left-iris-shader adgif-shader :inline :offset-assert 16) + (left-pupil-shader adgif-shader :inline :offset-assert 96) + (left-lid-shader adgif-shader :inline :offset-assert 176) + (right-iris-shader adgif-shader :inline :offset-assert 256) + (right-pupil-shader adgif-shader :inline :offset-assert 336) + (right-lid-shader adgif-shader :inline :offset-assert 416) + ) + :method-count-assert 9 + :size-assert #x1f0 + :flag-assert #x9000001f0 + ) +|# + +#| +(deftype merc-eye-anim-frame (structure) + ((pupil-trans-x int8 :offset-assert 0) + (pupil-trans-y int8 :offset-assert 1) + (blink int8 :offset-assert 2) + (iris-scale int8 :offset-assert 4) + (pupil-scale int8 :offset-assert 5) + (lid-scale int8 :offset-assert 6) + (dword uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype merc-eye-anim-block (structure) + ((max-frame int16 :offset-assert 0) + (data merc-eye-anim-frame :dynamic :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype texture-usage-group (structure) + ((data texture-masks 7 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x150 + :flag-assert #x900000150 + ) +|# + +#| +(deftype merc-ctrl-header (structure) + ((xyz-scale float :offset-assert 0) + (st-magic uint32 :offset-assert 4) + (st-out-a uint32 :offset-assert 8) + (st-out-b uint32 :offset-assert 12) + (st-vif-add uint32 :offset-assert 16) + (st-int-off uint16 :offset-assert 20) + (st-int-scale uint16 :offset-assert 22) + (effect-count uint32 :offset-assert 24) + (blend-target-count uint32 :offset-assert 28) + (fragment-count uint16 :offset-assert 32) + (tri-count uint16 :offset-assert 34) + (matrix-count uint8 :offset-assert 36) + (shader-count uint8 :offset-assert 37) + (transform-vertex-count uint16 :offset-assert 38) + (dvert-count uint16 :offset-assert 40) + (one-mat-count uint16 :offset-assert 42) + (two-mat-count uint16 :offset-assert 44) + (two-mat-reuse-count uint16 :offset-assert 46) + (three-mat-count uint16 :offset-assert 48) + (three-mat-reuse-count uint16 :offset-assert 50) + (shader-upload-count uint8 :offset-assert 52) + (matrix-upload-count uint8 :offset-assert 53) + (same-copy-count uint16 :offset-assert 54) + (cross-copy-count uint16 :offset-assert 56) + (num-verts uint16 :offset-assert 58) + (longest-edge float :offset-assert 60) + (eye-ctrl merc-eye-ctrl :offset-assert 64) + (pad uint32 3 :offset-assert 68) ;; guessed by decompiler + (masks-padding texture-masks :inline :offset-assert 80) + (texture-usage-group texture-usage-group :offset-assert 80) + (dummy-bytes uint8 :dynamic :offset-assert 32) ;; guessed by decompiler + (envmap-tint uint32 :offset-assert 32) + (query basic :offset-assert 36) + (needs-clip uint8 :offset-assert 40) + (use-isometric uint8 :offset-assert 41) + (use-attached-shader uint8 :offset-assert 42) + (display-triangles uint8 :offset-assert 43) + (death-vertex-skip uint16 :offset-assert 44) + (death-start-vertex uint16 :offset-assert 46) + (death-effect uint32 :offset-assert 48) + (use-translucent uint8 :offset-assert 52) + (display-this-fragment uint8 :offset-assert 53) + (use-warp uint8 :offset-assert 54) + (ignore-alpha uint8 :offset-assert 55) + (force-fade uint8 :offset-assert 56) + (disable-fog uint8 :offset-assert 57) + (disable-envmap uint8 :offset-assert 58) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ;; field xyz-scale is a float printed as hex? + ) +|# + +#| +(deftype merc-ctrl (art-element) + ((num-joints int32 :offset-assert 12) + (seg-table (array uint64) :offset-assert 28) ;; guessed by decompiler + (header merc-ctrl-header :inline :offset-assert 48) + (effect merc-effect :dynamic :offset-assert 176) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #xb0 + :flag-assert #xe000000b0 + ) +|# + +#| +(deftype merc-vu1-low-mem (structure) + ((tri-strip-gif qword :inline :offset-assert 0) ;; gs-gif-tag :inline + (ad-gif qword :inline :offset-assert 16) ;; gs-gif-tag :inline + (hvdf-offset vector :inline :offset-assert 32) + (perspective uint128 4 :offset-assert 48) ;; guessed by decompiler + (fog vector :inline :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype emerc-vu1-low-mem (structure) + ((tri-strip-gif qword :inline :offset-assert 0) ;; gs-gif-tag :inline + (ad-gif qword :inline :offset-assert 16) ;; gs-gif-tag :inline + (hvdf-offset vector :inline :offset-assert 32) + (perspective vector 4 :offset-assert 48) ;; guessed by decompiler + (fog vector :inline :offset-assert 112) + (unperspect vector :inline :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +#| +(deftype texture-login-data (structure) + ((default-texture-index int32 :offset-assert 0) + (current-texture-index int32 :offset-assert 4) + (texture-usage-group texture-usage-group :offset-assert 8) + (merc-ctrl-header merc-ctrl-header :offset-assert 12) + (name basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype ripple-wave (structure) + ((scale float :offset-assert 0) + (offs float :offset-assert 4) + (xdiv int16 :offset-assert 8) + (zdiv int16 :offset-assert 10) + (speed float :offset-assert 12) + (xmul float :offset-assert 16) + (zmul float :offset-assert 20) + (delta float :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype ripple-wave-set (basic) + ((count int32 :offset-assert 4) + (converted basic :offset-assert 8) + (normal-scale float :offset-assert 12) + (wave ripple-wave 4 :offset-assert 16) ;; guessed by decompiler + (frame-save uint64 :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x88 + :flag-assert #x900000088 + ) +|# + +#| +(deftype ripple-control (basic) + ((global-scale float :offset-assert 4) + (last-frame-scale float :offset-assert 8) + (close-fade-dist float :offset-assert 12) + (far-fade-dist float :offset-assert 16) + (faded-scale float :offset-assert 20) + (individual-normal-scale float :offset-assert 24) + (waveform ripple-wave-set :offset-assert 28) ;; guessed by decompiler + (send-query symbol :offset-assert 32) ;; guessed by decompiler + (query ripple-merc-query :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype death-info (basic) + ((vertex-skip uint16 :offset-assert 4) + (timer uint8 :offset-assert 6) + (overlap uint8 :offset-assert 7) + (effect uint32 :offset-assert 8) + (sound string :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype merc-blend-data (UNKNOWN) + ((int8-data int8 :dynamic :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern merc-fragment-fp-data function) ;; (function merc-fragment merc-fp-header) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-merc-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype merc-matrix (structure) + ((quad uint128 8 :offset-assert 0) ;; guessed by decompiler + (vector vector 8 :offset-assert 0) ;; guessed by decompiler + (tag uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype generic-merc-tag (dma-packet) + ((next-ptr uint32 :offset-assert 12) + (size uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype generic-merc-ctrl (structure) + ((tag generic-merc-tag :inline :offset-assert 0) + (lights vu-lights :inline :offset-assert 16) + (header merc-ctrl-header :inline :offset-assert 128) + (effect merc-effect :inline :offset-assert 256) + ) + :method-count-assert 9 + :size-assert #x120 + :flag-assert #x900000120 + ) +|# + +#| +(deftype generic-merc-ctrl-with-sfx (generic-merc-ctrl) + ((sfx-data uint128 11 :offset-assert 288) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1d0 + :flag-assert #x9000001d0 + ) +|# + +#| +(deftype generic-merc-input (structure) + ((geo-tag generic-merc-tag :inline :offset-assert 0) + (geo-block uint8 1296 :offset-assert 16) ;; guessed by decompiler + (byte-header merc-byte-header :inline :offset-assert 16) + (matrix merc-matrix 9 :offset-assert 1312) ;; guessed by decompiler + (control generic-merc-ctrl-with-sfx :inline :offset-assert 2464) + (end-tag generic-merc-tag :inline :offset-assert 2928) + (shader adgif-shader :inline :offset-assert 2944) + ) + :method-count-assert 9 + :size-assert #xbd0 + :flag-assert #x900000bd0 + ) +|# + +#| +(deftype generic-merc-output (structure) + ((info gsf-info :inline :offset-assert 0) + (header gsf-header :inline :offset-assert 16) + (index-kick-table uint16 80 :offset-assert 32) ;; guessed by decompiler + (index-table uint8 160 :offset-assert 32) ;; guessed by decompiler + (inverse-table uint8 256 :offset-assert 192) ;; guessed by decompiler + (vertex-table gsf-vertex 72 :offset-assert 448) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xac0 + :flag-assert #x900000ac0 + ) +|# + +#| +(deftype generic-merc-dcache (structure) + ((output-a generic-merc-output :inline :offset-assert 0) + (output-b generic-merc-output :inline :offset-assert 2752) + (inv-table-1 uint8 544 :offset-assert 5504) ;; guessed by decompiler + (inv-table-7 uint8 544 :offset-assert 6048) ;; guessed by decompiler + (inv-safety uint8 16 :offset-assert 6592) ;; guessed by decompiler + (effect-data uint8 1584 :offset-assert 6608) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2000 + :flag-assert #x900002000 + ) +|# + +#| +(deftype gm-shadow (structure) + ((perspective matrix :inline :offset-assert 0) + (isometric matrix :inline :offset-assert 64) + (inv-camera-rot matrix :inline :offset-assert 128) + (envmap-shader adgif-shader :inline :offset-assert 192) + (current-chain uint32 :offset-assert 272) + (next-chain uint32 :offset-assert 276) + (buf-index uint32 :offset-assert 280) + (fragment-count uint32 :offset-assert 284) + (write-limit int32 :offset-assert 288) + (indexed-input-base generic-merc-input :offset-assert 292) + (other-input-base generic-merc-input :offset-assert 296) + (indexed-output-base generic-merc-output :offset-assert 300) + (other-output-base generic-merc-output :offset-assert 304) + (p-input uint32 :offset-assert 308) + (gsf-buf generic-merc-dcache :offset-assert 312) + (p-fheader merc-fp-header :offset-assert 316) + (curr-chain basic :offset-assert 320) + (mercneric-convert basic :offset-assert 324) + (generic-prepare-dma-single basic :offset-assert 328) + (generic-prepare-dma-double basic :offset-assert 332) + (generic-light-proc basic :offset-assert 336) + (generic-envmap-proc basic :offset-assert 340) + (high-speed-reject basic :offset-assert 344) + (dummy-0 uint32 :offset-assert 348) + (hsr-xmult vector :inline :offset-assert 352) + (hsr-ymult vector :inline :offset-assert 368) + (warp-consts vector :inline :offset-assert 384) + (warp-nums vector :inline :offset-assert 400) + ) + :method-count-assert 9 + :size-assert #x1a0 + :flag-assert #x9000001a0 + ) +|# + +#| +(deftype generic-merc-work (structure) + ((input-a generic-merc-input :inline :offset-assert 0) + (input-b generic-merc-input :inline :offset-assert 3024) + (ctrl generic-merc-ctrl-with-sfx :inline :offset-assert 6048) + (shadow gm-shadow :inline :offset-assert 6512) + (stack uint128 16 :offset-assert 6928) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c10 + :flag-assert #x900001c10 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-tie-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype generic-tie-instance (structure) + ((matrix-tag dma-packet :inline :offset-assert 0) + (matrix-data vector 6 :offset-assert 16) ;; guessed by decompiler + (index-tag dma-packet :inline :offset-assert 112) + (indices uint8 224 :offset-assert 128) ;; guessed by decompiler + (end-tag dma-packet :inline :offset-assert 352) + ) + :method-count-assert 9 + :size-assert #x170 + :flag-assert #x900000170 + ) +|# + +#| +(deftype generic-tie-input (structure) + ((palette-tag dma-packet :inline :offset-assert 0) + (palette rgba 128 :offset-assert 16) ;; guessed by decompiler + (model-tag dma-packet :inline :offset-assert 528) + (model vector 146 :offset-assert 544) ;; guessed by decompiler + (matrix-tag dma-packet :inline :offset-assert 2880) + (matrix-data vector 6 :offset-assert 2896) ;; guessed by decompiler + (index-tag dma-packet :inline :offset-assert 2992) + (indices uint8 224 :offset-assert 3008) ;; guessed by decompiler + (end-tag dma-packet :inline :offset-assert 3232) + ) + :method-count-assert 9 + :size-assert #xcb0 + :flag-assert #x900000cb0 + ) +|# + +#| +(deftype generic-tie-run-control (structure) + ((skip-bp2 uint8 :offset-assert 0) + (skip-ips uint8 :offset-assert 1) + (gifbuf-skip uint8 :offset-assert 2) + (strips uint8 :offset-assert 3) + (target-bp1 uint8 :offset-assert 4) + (target-bp2 uint8 :offset-assert 5) + (target-ip1 uint8 :offset-assert 6) + (target-ip2 uint8 :offset-assert 7) + (target-bps uint8 :offset-assert 8) + (target-ips uint8 :offset-assert 9) + (is-generic uint8 :offset-assert 10) + (reserved uint8 :offset-assert 11) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype generic-tie-base-point (structure) + ((data uint16 8 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + (x int16 :offset-assert 0) + (y int16 :offset-assert 2) + (z int16 :offset-assert 4) + (d0 int16 :offset-assert 6) + (vtx uint64 :offset-assert 0) + (u int16 :offset-assert 8) + (v int16 :offset-assert 10) + (tex uint32 :offset-assert 8) + (w int16 :offset-assert 12) + (d1 int16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype generic-tie-bps (structure) + ((bp generic-tie-base-point 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype generic-tie-interp-point (structure) + ((data uint16 12 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + (x int16 :offset-assert 0) + (y int16 :offset-assert 2) + (z int16 :offset-assert 4) + (d0 int16 :offset-assert 6) + (vtx0 uint64 :offset-assert 0) + (dx int16 :offset-assert 8) + (dy int16 :offset-assert 10) + (dz int16 :offset-assert 12) + (unused int16 :offset-assert 14) + (vtx1 uint64 :offset-assert 8) + (u int16 :offset-assert 16) + (v int16 :offset-assert 18) + (tex uint32 :offset-assert 16) + (w int16 :offset-assert 20) + (d1 int16 :offset-assert 22) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype generic-tie-ips (structure) + ((ip generic-tie-interp-point 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype generic-tie-header (structure) + ((effect uint8 :offset-assert 0) + (interp-table-size uint8 :offset-assert 1) + (num-bps uint8 :offset-assert 2) + (num-ips uint8 :offset-assert 3) + (tint-color uint32 :offset-assert 4) + (index-table-offset uint16 :offset-assert 8) + (kick-table-offset uint16 :offset-assert 10) + (normal-table-offset uint16 :offset-assert 12) + (interp-table-offset uint16 :offset-assert 14) + (gsf-header gsf-header :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype generic-tie-matrix (structure) + ((matrix matrix :inline :offset-assert 0) + (morph vector :inline :offset-assert 64) + (fog qword :inline :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype generic-tie-normal (structure) + ((x int8 :offset-assert 0) + (y int8 :offset-assert 1) + (z int8 :offset-assert 2) + (dummy int8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype generic-tie-control (structure) + ((ptr-palette uint32 :offset-assert 0) + (ptr-shaders uint32 :offset-assert 4) + (ptr-runctrl generic-tie-run-control :offset-assert 8) + (ptr-verts uint32 :offset-assert 12) + (ptr-generic generic-tie-header :offset-assert 16) + (ptr-dps uint32 :offset-assert 20) + (ptr-kicks uint32 :offset-assert 24) + (ptr-normals uint32 :offset-assert 28) + (ptr-interp uint32 :offset-assert 32) + (ptr-mtxs generic-tie-matrix :offset-assert 36) + (ptr-cinds uint32 :offset-assert 40) + (next-instance uint32 :offset-assert 44) + (next-model uint32 :offset-assert 48) + (next-is-model uint32 :offset-assert 52) + (tie-type uint32 :offset-assert 56) + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +#| +(deftype generic-tie-stats (structure) + ((num-bps uint32 :offset-assert 0) + (num-ips uint32 :offset-assert 4) + (num-dps uint32 :offset-assert 8) + (num-shaders uint32 :offset-assert 12) + (num-models uint32 :offset-assert 16) + (num-instances uint32 :offset-assert 20) + (num-waits uint32 :offset-assert 24) + (num-qwc uint32 :offset-assert 28) + (max-qwc uint32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype generic-tie-calls (structure) + ((generic-prepare-dma-double basic :offset-assert 0) + (generic-envmap-dproc basic :offset-assert 4) + (generic-interp-dproc basic :offset-assert 8) + (generic-no-light-dproc basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype generic-tie-shadow (structure) + ((out-buf gsf-buffer :offset-assert 0) + (cur-buf uint32 :offset-assert 4) + (tie-type int32 :offset-assert 8) + (ptr-inst uint32 :offset-assert 12) + (ptr-buf uint32 :offset-assert 16) + (inst-xor int32 :offset-assert 20) + (end-of-chain uint32 :offset-assert 24) + (write-limit uint32 :offset-assert 28) + (calls generic-tie-calls :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype generic-tie-work (structure) + ((control generic-tie-control :inline :offset-assert 0) + (interp-job generic-interp-job :inline :offset-assert 60) + (shadow generic-tie-shadow :inline :offset-assert 76) + (input-a generic-tie-input :inline :offset-assert 128) + (input-b generic-tie-input :inline :offset-assert 3376) + (inst-buf generic-tie-instance :inline :offset-assert 6624) + (palette-buf rgba 128 :offset-assert 6992) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1d50 + :flag-assert #x900001d50 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-work-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype generic-input-buffer (structure) + ((data uint128 473 :offset-assert 0) ;; guessed by decompiler + (merc generic-merc-work :inline :offset-assert 0) + (tie generic-tie-work :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x1d90 + :flag-assert #x900001d90 + ) +|# + +#| +(deftype generic-debug (structure) + ((locks uint32 4 :offset-assert 0) ;; guessed by decompiler + (timer uint32 32 :offset-assert 16) ;; guessed by decompiler + (count uint32 32 :offset-assert 144) ;; guessed by decompiler + (vps uint32 32 :offset-assert 272) ;; guessed by decompiler + (buffer int32 :offset-assert 400) + (start-addr int32 :offset-assert 404) + (lock int32 :offset-assert 408) + ) + :method-count-assert 9 + :size-assert #x19c + :flag-assert #x90000019c + ) +|# + +#| +(deftype generic-vu1-header (structure) + ((matrix matrix :inline :offset-assert 0) + (strgif generic-gif-tag :inline :offset-assert 64) + (adcmds gs-adcmd 2 :offset-assert 80) ;; guessed by decompiler + (adnop1 gs-adcmd :inline :offset-assert 80) + (adnop2 gs-adcmd :inline :offset-assert 96) + (dps uint16 :offset-assert 92) + (kickoff uint16 :offset-assert 108) + (strips uint16 :offset-assert 76) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype generic-vu1-texbuf (structure) + ((header generic-vu1-header :inline :offset-assert 0) + (shader uint32 :dynamic :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype generic-texbuf (structure) + ((tag dma-packet :inline :offset-assert 0) + (header generic-vu1-header :inline :offset-assert 16) + (shader uint32 :dynamic :offset-assert 128) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype generic-effect-work (structure) + ((consts generic-consts :inline :offset-assert 0) + (storage generic-storage :inline :offset-assert 432) + (storage2 generic-storage :inline :offset-assert 688) + (lights vu-lights :inline :offset-assert 944) + ) + :method-count-assert 9 + :size-assert #x420 + :flag-assert #x900000420 + ) +|# + +#| +(deftype generic-effect-buffer (structure) + ((outbuf-0 uint8 3552 :offset-assert 0) ;; guessed by decompiler + (work generic-effect-work :inline :offset-assert 3552) + (outbuf-1 uint8 3552 :offset-assert 4608) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1fe0 + :flag-assert #x900001fe0 + ) +|# + +#| +(deftype generic-work (structure) + ((saves generic-saves :inline :offset-assert 0) + (storage generic-storage :inline :offset-assert 368) + (in-buf generic-input-buffer :inline :offset-assert 624) + (fx-buf generic-effect-buffer :inline :offset-assert 8192) + ) + :method-count-assert 9 + :size-assert #x3fe0 + :flag-assert #x900003fe0 + ) +|# + +;; (define-extern *generic-debug* object) ;; generic-debug + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shadow-cpu-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype shadow-settings (structure) + ((center vector :inline :offset-assert 0) + (flags int32 :offset-assert 12) ;; shadow-flags + (shadow-dir vector :inline :offset-assert 16) + (dist-to-locus float :offset-assert 28) + (bot-plane plane :inline :offset-assert 32) + (top-plane plane :inline :offset-assert 48) + (fade-dist float :offset-assert 64) + (fade-start float :offset-assert 68) + (dummy-2 int32 :offset-assert 72) + (shadow-type int32 :offset-assert 76) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype shadow-control (basic) + ((settings shadow-settings :inline :offset-assert 16) + ) + :method-count-assert 15 + :size-assert #x60 + :flag-assert #xf00000060 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type float float float vector shadow-flags float) _type_) + (shadow-control-method-9 () none) ;; 9 ;; (enable-draw (shadow-control) int) + (shadow-control-method-10 () none) ;; 10 ;; (disable-draw (shadow-control) int) + (shadow-control-method-11 () none) ;; 11 ;; (set-top-plane-offset (shadow-control float) int) + (shadow-control-method-12 () none) ;; 12 ;; (set-bottom-plane-offset (shadow-control float) int) + (shadow-control-method-13 () none) ;; 13 ;; (probe-line-for-shadow (_type_ vector float float float) none) + (shadow-control-method-14 () none) ;; 14 ;; (shadow-control-method-14 (_type_ vector vector float float float) none) + ) + ) +|# + +#| +(deftype shadow-data (structure) + ((dma-unpack-template dma-packet :inline :offset-assert 0) + (dma-cnt uint64 :offset-assert 16) ;; dma-tag + (vif-nop vif-tag :offset-assert 24) ;; guessed by decompiler + (vif-unpack-v4-8 vif-tag :offset-assert 28) ;; guessed by decompiler + (pdc basic :offset-assert 32) + (dist float :offset-assert 36) + (waits uint32 :offset-assert 40) + (inside-volume? uint32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype shadow-work (structure) + ((shadow-data shadow-data :inline :offset-assert 0) + (inbuf uint128 600 :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x25b0 + :flag-assert #x9000025b0 + ) +|# + +#| +(deftype shadow-bucket (structure) + ((first pointer :offset-assert 0) ;; guessed by decompiler + (next pointer :offset-assert 4) ;; guessed by decompiler + (bucket-id int32 :offset-assert 8) ;; bucket-id + (shadow-color rgba :offset-assert 12) ;; guessed by decompiler + (constants shadow-vu1-constants :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype shadow-bucket-views (structure) + ((data UNKNOWN 2 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype shadow-globals (structure) + ((num-buckets uint32 :offset-assert 0) + (cur-bucket uint32 :offset-assert 4) + (data UNKNOWN 3 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc8 + :flag-assert #x9000000c8 + ) +|# + +#| +(deftype shadow-vertex (structure) + ((x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + (weight float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype shadow-matrix-ref (structure) + ((joint-0 uint8 :offset-assert 0) + (joint-1 uint8 :offset-assert 1) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype shadow-edge (structure) + ((ind-0 uint8 :offset-assert 0) + (ind-1 uint8 :offset-assert 1) + (tri-0 uint8 :offset-assert 2) + (tri-1 uint8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype shadow-tri (structure) + ((ind-0 uint8 :offset-assert 0) + (ind-1 uint8 :offset-assert 1) + (ind-2 uint8 :offset-assert 2) + (faces uint8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype shadow-frag-header (structure) + ((qwc-data uint32 :offset-assert 0) + (num-joints uint32 :offset-assert 4) + (num-verts uint16 :offset-assert 8) + (num-twos uint16 :offset-assert 10) + (num-single-tris uint16 :offset-assert 12) + (num-single-edges uint16 :offset-assert 14) + (num-double-tris uint16 :offset-assert 16) + (num-double-edges uint16 :offset-assert 18) + (ofs-verts uint32 :offset-assert 20) + (ofs-refs uint32 :offset-assert 24) + (ofs-single-tris uint32 :offset-assert 28) + (ofs-single-edges uint32 :offset-assert 32) + (ofs-double-tris uint32 :offset-assert 36) + (ofs-double-edges uint32 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype shadow-frag-ref (structure) + ((header shadow-frag-header :offset-assert 0) + (qwc uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype shadow-geo (art-element) + ((version uint32 :offset-assert 28) + (total-size uint32 :offset-assert 32) + (total-qwc uint32 :offset-assert 48) + (num-joints uint32 :offset-assert 52) + (num-fragments uint32 :offset-assert 56) + (frags shadow-frag-ref :dynamic :offset-assert 60) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x3c + :flag-assert #xe0000003c + ) +|# + +;; (define-extern *shadow-globals* object) ;; shadow-globals +;; (define-extern *shadow* object) ;; symbol +;; (define-extern *shadow-object* object) ;; symbol +;; (define-extern *shadow-debug* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shadow-vu1-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prim-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype prim-vertex (structure) + ((stq vector :inline :offset-assert 0) + (nokick uint32 :offset-assert 8) + (col rgba :offset-assert 12) ;; guessed by decompiler + (pos vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype prim-base (basic) + () + :method-count-assert 10 + :size-assert #x4 + :flag-assert #xa00000004 + (:methods + (prim-base-method-9 () none) ;; 9 ;; (generate-dma! (_type_ matrix) none) + ) + ) +|# + +#| +(deftype prim-client (basic) + () + :method-count-assert 10 + :size-assert #x4 + :flag-assert #xa00000004 + (:methods + (prim-client-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype prim-strip (prim-base) + ((flags prim-flags :offset-assert 4) ;; guessed by decompiler + (tex-name basic :offset-assert 8) + (tex basic :offset-assert 12) + (tex-id texture-id :offset-assert 16) ;; guessed by decompiler + (adnops gs-adcmd 2 :offset-assert 32) ;; guessed by decompiler + (data0 uint64 :offset-assert 32) ;; gs-test + (reg0 uint64 :offset-assert 40) ;; gs-reg64 + (data1 uint64 :offset-assert 48) ;; gs-test + (reg1 uint64 :offset-assert 56) ;; gs-reg64 + (clamp uint64 :offset-assert 64) ;; gs-clamp + (alpha uint64 :offset-assert 72) ;; gs-alpha + (level level :offset-assert 80) ;; guessed by decompiler + (texture-index int8 :offset-assert 84) ;; uint32 + (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 + ) + :method-count-assert 11 + :size-assert #x60 + :flag-assert #xb00000060 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int texture-id string) _type_) + (prim-strip-method-10 () none) ;; 10 ;; (setup-dma-and-tex (_type_ draw-control) none) + ) + ) +|# + +#| +(deftype prim-sink (structure) + ((vertex-count uint8 :offset-assert 0) + (control-count uint8 :offset-assert 1) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype prim-work (structure) + ((vertex-tmpl dma-packet 3 :offset-assert 0) ;; guessed by decompiler + (control-tmpl dma-packet 2 :offset-assert 48) ;; guessed by decompiler + (giftag generic-gif-tag :inline :offset-assert 80) + (call-scissor dma-packet :inline :offset-assert 96) + (call-noclip dma-packet :inline :offset-assert 112) + (shader adgif-shader :inline :offset-assert 128) + (mask vector4w :inline :offset-assert 208) + (in-verts int32 :offset-assert 224) + (num-verts int32 :offset-assert 228) + (vert-ptr prim-vertex :offset-assert 232) ;; (inline-array prim-vertex) + (sinks prim-sink 114 :offset-assert 236) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x80c + :flag-assert #xa0000080c + (:methods + (prim-work-method-9 () none) ;; 9 ;; (reset! (_type_) none) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; memcard-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype mc-handle (int32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype mc-file-info (structure) + ((present int32 :offset-assert 0) + (blind-data float 24 :offset-assert 4) ;; guessed by decompiler + (blind-data-int8 int8 96 :offset-assert 4) ;; guessed by decompiler + (level-index int32 :offset-assert 4) + (gem-count float :offset-assert 8) + (skill-count float :offset-assert 12) + (completion-percentage float :offset-assert 16) + (minute uint8 :offset-assert 24) + (hour uint8 :offset-assert 25) + (week uint8 :offset-assert 26) + (day uint8 :offset-assert 27) + (month uint8 :offset-assert 28) + (year uint8 :offset-assert 29) + (language uint8 :offset-assert 30) + (game-time0 uint32 :offset-assert 36) + (game-time1 uint32 :offset-assert 40) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (name UNKNOWN 16 :offset-assert 68) + ) + :method-count-assert 9 + :size-assert #x64 + :flag-assert #x900000064 + ) +|# + +#| +(deftype mc-slot-info (structure) + ((handle int32 :offset-assert 0) ;; mc-handle + (known int32 :offset-assert 4) + (formatted int32 :offset-assert 8) + (inited int32 :offset-assert 12) + (last-file int32 :offset-assert 16) + (mem-required int32 :offset-assert 20) + (mem-actual int32 :offset-assert 24) + (file mc-file-info 4 :offset-assert 28) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1ac + :flag-assert #x9000001ac + ) +|# + +#| +(deftype stored-network-account (structure) + ((name UNKNOWN 64 :offset-assert 0) + (password UNKNOWN 64 :offset-assert 64) + ) + :method-count-assert 11 + :size-assert #x80 + :flag-assert #xb00000080 + (:methods + (stored-network-account-method-9 () none) ;; 9 + (stored-network-account-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype stored-network-accounts (structure) + ((accounts UNKNOWN 4 :offset-assert 0) + (default-idx int8 :offset-assert 512) + (ct int8 :offset-assert 513) + ) + :method-count-assert 10 + :size-assert #x202 + :flag-assert #xa00000202 + (:methods + (stored-network-accounts-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype mc-common-data (structure) + ((magic uint32 :offset-assert 0) + (crc uint32 :offset-assert 4) + (version uint32 :offset-assert 8) + (data UNKNOWN 1012 :offset-assert 12) + (net-accounts stored-network-accounts :inline :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x400 + :flag-assert #x900000400 + ) +|# + +#| +(deftype mc-patch-data (structure) + ((magic uint32 :offset-assert 0) + (crc uint32 :offset-assert 4) + (version uint32 :offset-assert 8) + (size uint32 :offset-assert 12) + (data UNKNOWN 524272 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x0 + :heap-base #x8 + :flag-assert #x900080000 + ) +|# + +;; (define-extern mc-sync function) ;; (function int) +;; (define-extern show-mc-info function) ;; (function dma-buffer none) +;; (define-extern *mc-common-data* object) +;; (define-extern *mc-patch-data* object) +;; (define-extern *mc-last-result* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-info-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype game-bank (basic) + ((life-max-default float :offset-assert 4) + (life-start-default float :offset-assert 8) + (life-single-inc float :offset-assert 12) + (money-task-inc float :offset-assert 16) + (money-oracle-inc float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (deftype actor-id (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype highscore-info (structure) + ((flags uint8 :offset-assert 0) ;; highscore-flags + ) + :method-count-assert 9 + :size-assert #x1 + :flag-assert #x900000001 + ) +|# + +#| +(deftype level-buffer-state (structure) + ((name symbol :offset-assert 0) ;; guessed by decompiler + (display? symbol :offset-assert 4) ;; guessed by decompiler + (force-vis? symbol :offset-assert 8) ;; guessed by decompiler + (force-inside? symbol :offset-assert 12) ;; guessed by decompiler + (slot int32 :offset-assert 16) + (force-reload basic :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype level-buffer-state-small (structure) + ((name symbol :offset-assert 0) ;; guessed by decompiler + (display? symbol :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype level-buffer-state-split (structure) + ((name basic :offset-assert 0) + (display? UNKNOWN 2 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype load-state (basic) + ((want level-buffer-state 18 :offset-assert 4) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (want-exp level-buffer-state 18 :offset-assert 580) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (want-split UNKNOWN 18 :offset-assert 1156) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (target level-buffer-state 18 :offset-assert 1372) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (want-sound sound-bank-state 7 :offset-assert 1948) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (target-sound sound-bank-state 7 :offset-assert 2060) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (vis-nick symbol :offset-assert 2172) ;; guessed by decompiler + (command-list pair :offset-assert 2176) ;; guessed by decompiler + (object-name string 256 :offset-assert 2180) ;; guessed by decompiler + (object-status basic 256 :offset-assert 3204) ;; guessed by decompiler + (update-callback (function load-state object) :offset-assert 4228) ;; guessed by decompiler + ) + :method-count-assert 27 + :size-assert #x1088 + :flag-assert #x1b00001088 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + (load-state-method-9 () none) ;; 9 ;; (reset! (_type_) _type_) + (load-state-method-10 () none) ;; 10 ;; (update! (_type_) int) + (load-state-method-11 () none) ;; 11 ;; (want-levels (_type_ (pointer symbol)) int) + (load-state-method-12 () none) ;; 12 ;; (want-sound-banks (_type_ (pointer symbol)) none) + (load-state-method-13 () none) ;; 13 ;; (want-display-level (_type_ symbol symbol) int) + (load-state-method-14 () none) ;; 14 ;; (want-vis-level (_type_ symbol) none) + (load-state-method-15 () none) ;; 15 ;; (want-force-vis (_type_ symbol symbol) int) + (load-state-method-16 () none) ;; 16 ;; (want-force-inside (_type_ symbol symbol) none) + (load-state-method-17 () none) ;; 17 ;; (execute-commands-up-to (_type_ float) none) + (load-state-method-18 () none) ;; 18 ;; (backup-load-state-and-set-cmds (_type_ pair) int) + (load-state-method-19 () none) ;; 19 ;; (restore-load-state-and-cleanup (_type_) int) + (load-state-method-20 () none) ;; 20 ;; (restore-load-state (_type_) int) + (load-state-method-21 () none) ;; 21 ;; (add-borrow-levels (_type_) none) + (load-state-method-22 () none) ;; 22 + (load-state-method-23 () none) ;; 23 + (load-state-method-24 () none) ;; 24 + (load-state-method-25 () none) ;; 25 + (load-state-method-26 () none) ;; 26 + ) + ) +|# + +#| +(deftype continue-point (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (level symbol :offset-assert 8) ;; guessed by decompiler + (flags continue-flags :offset-assert 12) ;; guessed by decompiler + (trans vector :inline :offset-assert 16) + (velocity vector :inline :offset-assert 32) + (camera-trans vector :inline :offset-assert 48) + (quat vector4h :inline :offset-assert 64) + (camera-rot int16 9 :offset-assert 72) ;; guessed by decompiler + (on-goto object :offset-assert 92) ;; guessed by decompiler + (vis-nick symbol :offset-assert 96) ;; guessed by decompiler + (vehicle-type uint8 :offset-assert 100) + (want-count int8 :offset-assert 101) + (want (inline-array level-buffer-state-small) :offset-assert 104) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (want-sound symbol 1 :offset-assert 108) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 12 + :size-assert #x70 + :flag-assert #xc00000070 + ;; field on-goto uses ~A with a signed load. + (:methods + (continue-point-method-9 () none) ;; 9 ;; (debug-draw (_type_) int) + (continue-point-method-10 () none) ;; 10 ;; (continue-point-method-10 (_type_ load-state) continue-point) + (continue-point-method-11 () none) ;; 11 ;; (move-camera! (_type_) none) + ) + ) +|# + +#| +(deftype game-info-player (structure) + ((current-continue basic :offset-assert 0) + (last-continue basic :offset-assert 4) + (vehicle uint64 :offset-assert 8) + (cash float :offset-assert 16) + (camera-inside-view basic :offset-assert 20) + (last-selected-vehicle uint8 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x19 + :flag-assert #x900000019 + ) +|# + +#| +(deftype game-info (basic) + ((mode symbol :offset-assert 4) ;; guessed by decompiler + (save-name string :offset-assert 8) ;; guessed by decompiler + (player-info UNKNOWN 2 :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 + (task-node-commands (array game-task-node-command) :offset-assert 1164) ;; guessed by decompiler + (task-counter uint32 :offset-assert 1168) + (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 UNKNOWN 4 :offset-assert 1484) + (music-info uint32 :offset-assert 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 UNKNOWN 23 :offset-assert 1512) + (cumulative-grand-prix-score UNKNOWN 23 :offset-assert 1604) + (driver-info uint64 :offset-assert 1696) + (driver-info2 UNKNOWN 2 :offset-assert 1696) + (driver-unlock uint32 :offset-assert 1696) + (driver-award uint32 :offset-assert 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) + ) + ) +|# + +;; (define-extern *GAME-bank* game-bank) ;; game-bank +;; (define-extern *static-continues* array) +;; (define-extern continue-point-copy! function) +;; (define-extern *game-info* object) ;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gui-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gui-connection (connection) + ((priority float :offset-assert 16) + (action uint8 :offset-assert 20) ;; gui-action + (channel uint8 :offset-assert 21) ;; gui-channel + (anim-part uint8 :offset-assert 22) + (flags uint8 :offset-assert 23) ;; gui-connection-flags + (name string :offset-assert 24) ;; guessed by decompiler + (id sound-id :offset-assert 28) ;; guessed by decompiler + (handle uint64 :offset-assert 0) ;; handle + (time-stamp uint64 :offset-assert 8) ;; time-frame + (hold-time uint64 :offset-assert 32) ;; time-frame + (fo-min float :offset-assert 40) ;; int16 + (fo-max float :offset-assert 44) ;; int16 + (fo-power float :offset-assert 48) + (fade uint8 :offset-assert 52) + (volume float :offset-assert 56) ;; int16 + (qw-pad UNKNOWN 4 :offset-assert 60) + ) + :method-count-assert 14 + :size-assert #x40 + :flag-assert #xe00000040 + ;; field param1 uses ~A with a signed load. field param2 uses ~A with a signed load. field param3 uses ~A with a signed load. + ) +|# + +;; (deftype gui-control (basic) +;; () +;; :flag-assert #x1a00001080 +;; ) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ambient-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype talker-speech-class (structure) + ((name string :offset-assert 0) ;; guessed by decompiler + (channel uint8 :offset-assert 4) ;; gui-channel + (flags uint16 :offset-assert 6) ;; talker-flags + (speech uint16 :offset-assert 8) + (text-duration uint16 :offset-assert 10) + (delay uint16 :offset-assert 12) + (pos uint16 :offset-assert 14) + (neg uint16 :offset-assert 16) + (text-message text-id :offset-assert 20) ;; guessed by decompiler + (on-close pair :offset-assert 24) ;; guessed by decompiler + (camera string :offset-assert 28) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x20 + :flag-assert #xe00000020 + ;; field on-close uses ~A with a signed load. + (:methods + (talker-speech-class-method-9 () none) ;; 9 ;; (should-play? (_type_) symbol) + (talker-speech-class-method-10 () none) ;; 10 ;; (mark-played! (_type_) none) + (talker-speech-class-method-11 () none) ;; 11 ;; (reset-state! (_type_) none) + (talker-speech-class-method-12 () none) ;; 12 ;; (yes-play! (_type_ int) none) + (talker-speech-class-method-13 () none) ;; 13 ;; (no-play! (_type_ int) none) + ) + ) +|# + +#| +(deftype talker (process) + ((trans vector :inline :offset-assert 144) + (message talker-speech-class :offset-assert 160) + (total-time uint64 :offset-assert 168) ;; time-frame + (total-off-time uint64 :offset-assert 176) ;; time-frame + (start-time uint64 :offset-assert 184) ;; time-frame + (state-time uint64 :offset-assert 192) ;; time-frame + (voicebox uint64 :offset-assert 200) ;; handle + (voice-id sound-id :offset-assert 208) ;; guessed by decompiler + (message-id sound-id :offset-assert 212) ;; guessed by decompiler + (region region :offset-assert 216) + (interp float :offset-assert 220) + (save? symbol :offset-assert 224) ;; guessed by decompiler + (grab? symbol :offset-assert 228) ;; guessed by decompiler + ) + :method-count-assert 19 + :size-assert #xe8 + :flag-assert #x13006000e8 + (:methods + (talker-method-9 () none) ;; 9 + (talker-method-10 () none) ;; 10 + (talker-method-11 () none) ;; 11 + (talker-method-12 () none) ;; 12 + (talker-method-13 () none) ;; 13 + (talker-method-14 () none) ;; 14 ;; (idle () _type_ :state) + (talker-method-15 () none) ;; 15 ;; (active () _type_ :state) + (talker-method-16 () none) ;; 16 ;; (exit () _type_ :state) + (talker-method-17 () none) ;; 17 ;; (draw-text (_type_) none) + (talker-method-18 () none) ;; 18 + ) + ) +|# + +;; (define-extern *talker-speech* object) ;; (inline-array talker-speech-class) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype speech-info-item (structure) + ((name basic :offset-assert 0) + (flags uint64 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype speech-info (structure) + ((list basic :offset-assert 0) + (flags uint64 :offset-assert 8) ;; speech-info-flag + ) + :method-count-assert 13 + :size-assert #x10 + :flag-assert #xd00000010 + (:methods + (speech-info-method-9 () none) ;; 9 + (speech-info-method-10 () none) ;; 10 + (speech-info-method-11 () none) ;; 11 + (speech-info-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype speech-request (structure) + ((handle uint64 :offset-assert 0) ;; handle + (req-time uint64 :offset-assert 8) + (start-time uint64 :offset-assert 16) + (name basic :offset-assert 24) + (speech-type uint8 :offset-assert 28) ;; speech-type + (flags uint8 :offset-assert 29) + (max-delay uint64 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype speech-channel (structure) + ((flags speech-channel-flag :offset-assert 0) + (gui-channel uint8 :offset-assert 1) ;; gui-channel + (delay uint16 :offset-assert 2) + (id sound-id :offset-assert 4) ;; guessed by decompiler + (time uint64 :offset-assert 8) + (current-request speech-request :offset-assert 16) + (requests basic :offset-assert 20) + (speeches UNKNOWN 31 :offset-assert 24) + ) + :method-count-assert 17 + :size-assert #x94 + :flag-assert #x1100000094 + ;; field speech-channel-flag is likely a value type. + (:methods + (speech-channel-method-9 () none) ;; 9 ;; (speech-channel-method-9 (_type_ process-drawable speech-type) int) + (speech-channel-method-10 () none) ;; 10 ;; (speech-channel-method-10 (_type_ handle) none) + (speech-channel-method-11 () none) ;; 11 ;; (speech-channel-method-11 (_type_) none) + (speech-channel-method-12 () none) ;; 12 ;; (reset-channel! (_type_) none) + (speech-channel-method-13 () none) ;; 13 ;; (init! (_type_) none) + (speech-channel-method-14 () none) ;; 14 ;; (speech-channel-method-14 (_type_ speech-type float) none) + (speech-channel-method-15 () none) ;; 15 + (speech-channel-method-16 () none) ;; 16 + ) + ) +|# + +#| +(deftype speech-control (structure) + ((channels UNKNOWN 22 :offset-assert 0) + ) + :method-count-assert 17 + :size-assert #xdc0 + :flag-assert #x1100000dc0 + (:methods + (speech-control-method-9 () none) ;; 9 ;; (speech-table-reset! (_type_) none) + (speech-control-method-10 () none) ;; 10 ;; (speech-table-set! (_type_ speech-type speech-type-info) none) + (speech-control-method-11 () none) ;; 11 ;; (speech-control-method-11 (_type_) none) + (speech-control-method-12 () none) ;; 12 ;; (speech-control-method-12 (_type_ process-drawable speech-type) none) + (speech-control-method-13 () none) ;; 13 ;; (speech-control-method-13 (_type_ process-drawable speech-type int) none) + (speech-control-method-14 () none) ;; 14 ;; (speech-control-method-14 (_type_ handle) none) + (speech-control-method-15 () none) ;; 15 ;; (speech-control-method-15 (_type_) none) + (speech-control-method-16 () none) ;; 16 ;; (speech-control-method-16 (_type_) none) + ) + ) +|# + +;; (define-extern *music-volume-during-speech* object) +;; (define-extern *sfx-volume-during-speech* object) +;; (define-extern pecker-can-speak? function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wind-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wind-vector (structure) + ((wind-pos vector4w :inline :offset-assert 0) + (wind-vel vector4w :inline :offset-assert 16) + (stiffness float :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype wind-work (basic) + ((wind-array vector 64 :offset-assert 16) ;; guessed by decompiler + (wind-normal vector :inline :offset-assert 1040) + (wind-temp vector :inline :offset-assert 1056) + (wind-force float 64 :offset-assert 1072) ;; guessed by decompiler + (wind-const vector :inline :offset-assert 1328) + (wind-time uint32 :offset-assert 1344) + (wait-to-vu0 uint32 :offset-assert 1348) + (wait-to-spr uint32 :offset-assert 1352) + (wait-from-spr uint32 :offset-assert 1356) + (spr-index uint32 :offset-assert 1360) + (count uint32 :offset-assert 1364) + (next-count uint32 :offset-assert 1368) + (last-count uint32 :offset-assert 1372) + (to-spr uint32 :offset-assert 1376) + (from-spr uint32 :offset-assert 1380) + (next-mem uint32 :offset-assert 1384) + (last-mem uint32 :offset-assert 1388) + (next-spr uint32 :offset-assert 1392) + (last-spr uint32 :offset-assert 1396) + (to-ptrs uint32 3 :offset-assert 1400) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x584 + :flag-assert #x900000584 + ) +|# + +#| +(deftype wind-dma (structure) + ((buffer0 wind-vector 128 :offset-assert 0) ;; guessed by decompiler + (buffer1 wind-vector 128 :offset-assert 4096) ;; guessed by decompiler + (buffer2 wind-vector 128 :offset-assert 8192) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x3000 + :flag-assert #x900003000 + ) +|# + +;; (define-extern *wind-scales* array) ;; (array uint8) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prototype-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype prototype-bucket (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (flags uint16 :offset-assert 8) ;; prototype-flags + (texture-masks-index uint16 :offset-assert 10) + (in-level uint16 :offset-assert 12) + (utextures uint16 :offset-assert 14) + (wide-level-index uint16 :offset-assert 14) + (geometry drawable 4 :offset-assert 16) ;; guessed by decompiler + (dists vector :inline :offset-assert 32) + (rdists vector :inline :offset-assert 48) + (near-plane meters :offset-assert 32) + (near-stiff meters :offset-assert 36) + (mid-plane meters :offset-assert 40) + (far-plane meters :offset-assert 44) + (rlength-near float :offset-assert 48) + (rlength-stiff float :offset-assert 52) + (rlength-mid float :offset-assert 56) + (stiffness float :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype prototype-bucket-shrub (prototype-bucket) + ((next uint32 4 :offset-assert 64) ;; guessed by decompiler + (count uint16 4 :offset-assert 80) ;; guessed by decompiler + (mod-count uint16 4 :offset-assert 88) ;; guessed by decompiler + (last dma-packet 4 :offset-assert 96) ;; guessed by decompiler + (next-clear uint128 :offset-assert 64) + (count-clear uint64 :offset-assert 80) + (last-clear uint128 :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype prototype-inline-array-shrub (drawable) + ((length int16 :offset-assert 6) + (data prototype-bucket-shrub 1 :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x94 + :flag-assert #x1100000094 + ) +|# + +#| +(deftype prototype-array-shrub-info (basic) + ((prototype-inline-array-shrub prototype-inline-array-shrub :offset-assert 4) ;; guessed by decompiler + (wind-vectors uint32 :offset-assert 8) + (wind-count int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype prototype-bucket-tie (prototype-bucket) + ((next uint32 12 :offset-assert 64) ;; guessed by decompiler + (count uint16 12 :offset-assert 112) ;; guessed by decompiler + (frag-count uint8 4 :offset-assert 136) ;; guessed by decompiler + (index-start uint8 4 :offset-assert 140) ;; guessed by decompiler + (base-qw uint16 4 :offset-assert 144) ;; guessed by decompiler + (tie-rvanish float :offset-assert 152) + (tie-vanish-far float :offset-assert 156) + (envmap-rfade float :offset-assert 160) + (envmap-fade-far float :offset-assert 164) + (envmap-shader adgif-shader :offset-assert 168) + (tint-color uint32 :offset-assert 172) + (collide-hash-fragment-array collide-hash-fragment-array :offset-assert 176) ;; guessed by decompiler + (tie-colors time-of-day-palette :offset-assert 180) ;; guessed by decompiler + (data uint32 :dynamic :offset-assert 184) ;; guessed by decompiler + (color-index-qwc uint32 :dynamic :offset-assert 184) ;; guessed by decompiler + (scissor-frag-count uint8 :offset-assert 136) + (near-frag-count uint8 :offset-assert 137) + (mid-frag-count uint8 :offset-assert 138) + (far-frag-count uint8 :offset-assert 139) + (scissor-index-start uint8 :offset-assert 140) + (near-index-start uint8 :offset-assert 141) + (mid-index-start uint8 :offset-assert 142) + (far-index-start uint8 :offset-assert 143) + (scissor-base-qw uint16 :offset-assert 144) + (near-base-qw uint16 :offset-assert 146) + (mid-base-qw uint16 :offset-assert 148) + (far-base-qw uint16 :offset-assert 150) + (tie-next uint32 4 :offset-assert 64) ;; guessed by decompiler + (tie-scissor-next uint32 :offset-assert 64) + (tie-near-next uint32 :offset-assert 68) + (tie-mid-next uint32 :offset-assert 72) + (tie-far-next uint32 :offset-assert 76) + (trans-next uint32 4 :offset-assert 64) ;; guessed by decompiler + (trans-scissor-next uint32 4 :offset-assert 64) ;; guessed by decompiler + (trans-near-next uint32 :offset-assert 68) + (trans-mid-next uint32 :offset-assert 72) + (trans-far-next uint32 :offset-assert 76) + (water-next uint32 4 :offset-assert 64) ;; guessed by decompiler + (water-scissor-next uint32 4 :offset-assert 64) ;; guessed by decompiler + (water-near-next uint32 :offset-assert 68) + (water-mid-next uint32 :offset-assert 72) + (water-far-next uint32 :offset-assert 76) + (envmap-next uint32 4 :offset-assert 80) ;; guessed by decompiler + (envmap-scissor-next uint32 4 :offset-assert 80) ;; guessed by decompiler + (envmap-near-next uint32 :offset-assert 84) + (envmap-mid-next uint32 :offset-assert 88) + (envmap-far-next uint32 :offset-assert 92) + (generic-next uint32 3 :offset-assert 96) ;; guessed by decompiler + (generic-near-next uint32 :offset-assert 96) + (generic-mid-next uint32 :offset-assert 100) + (generic-far-next uint32 :offset-assert 104) + (vanish-next uint32 :offset-assert 108) + (tie-count uint16 4 :offset-assert 112) ;; guessed by decompiler + (tie-scissor-count uint16 :offset-assert 112) + (tie-near-count uint16 :offset-assert 114) + (tie-mid-count uint16 :offset-assert 116) + (tie-far-count uint16 :offset-assert 118) + (trans-count uint16 4 :offset-assert 112) ;; guessed by decompiler + (trans-scissor-count uint16 :offset-assert 112) + (trans-near-count uint16 :offset-assert 114) + (trans-mid-count uint16 :offset-assert 116) + (trans-far-count uint16 :offset-assert 118) + (water-count uint16 4 :offset-assert 112) ;; guessed by decompiler + (water-scissor-count uint16 :offset-assert 112) + (water-near-count uint16 :offset-assert 114) + (water-mid-count uint16 :offset-assert 116) + (water-far-count uint16 :offset-assert 118) + (envmap-count uint16 4 :offset-assert 120) ;; guessed by decompiler + (envmap-scissor-count uint16 :offset-assert 120) + (envmap-near-count uint16 :offset-assert 122) + (envmap-mid-count uint16 :offset-assert 124) + (envmap-far-count uint16 :offset-assert 126) + (generic-count uint16 3 :offset-assert 128) ;; guessed by decompiler + (generic-near-count uint16 :offset-assert 128) + (generic-mid-count uint16 :offset-assert 130) + (generic-far-count uint16 :offset-assert 132) + (vanish-count uint16 :offset-assert 134) + (next-clear uint128 3 :offset-assert 64) ;; guessed by decompiler + (count-clear uint64 3 :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xb8 + :flag-assert #x9000000b8 + ) +|# + +#| +(deftype prototype-array-tie (array) + ((type type :offset-assert 0) ;; guessed by decompiler + (length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (content-type type :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (prototype-array-tie-method-9 () none) ;; 9 ;; (prototype-array-tie-method-9 () none) + ) + ) +|# + +#| +(deftype proxy-prototype-array-tie (basic) + ((prototype-array-tie prototype-array-tie :offset-assert 4) ;; guessed by decompiler + (wind-vectors uint32 :offset-assert 8) + (wind-count uint16 :offset-assert 12) + (prototype-max-qwc uint16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype prototype-node (structure) + ((prototype basic :offset-assert 0) + (level basic :offset-assert 4) + (id int16 :offset-assert 8) + (next-prototype int16 :offset-assert 10) + (next-child int16 :offset-assert 12) + (prev-child int16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype prototype-node-group (basic) + ((next-prototype int16 :offset-assert 4) + (next-free int16 :offset-assert 6) + (next-child-prototype UNKNOWN 19 :offset-assert 8) + (data UNKNOWN 512 :offset-assert 48) + ) + :method-count-assert 15 + :size-assert #x2030 + :flag-assert #xf00002030 + (:methods + (prototype-node-group-method-9 () none) ;; 9 + (prototype-node-group-method-10 () none) ;; 10 + (prototype-node-group-method-11 () none) ;; 11 + (prototype-node-group-method-12 () none) ;; 12 + (prototype-node-group-method-13 () none) ;; 13 + (prototype-node-group-method-14 () none) ;; 14 + ) + ) +|# + +#| +(deftype instance (drawable) + ((bucket-index uint16 :offset-assert 6) + (origin matrix4h :inline :offset-assert 32) + (flags uint16 :offset-assert 46) ;; instance-flags + (wind-index uint16 :offset-assert 62) + ) + :method-count-assert 17 + :size-assert #x40 + :flag-assert #x1100000040 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; joint-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype joint-control-channel (structure) + ((parent joint-control :offset-assert 0) ;; guessed by decompiler + (frame-group art-joint-anim :offset-assert 4) ;; guessed by decompiler + (frame-num float :offset-assert 8) + (dist meters :offset-assert 12) + (num-func (function joint-control-channel float float float float) :offset-assert 16) ;; guessed by decompiler + (param float 3 :offset-assert 20) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (frame-interp float 2 :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (inspector-amount uint8 :offset-assert 40) + (command uint64 :offset-assert 48) ;; joint-control-command + (group-sub-index int8 :offset-assert 56) + (group-size int8 :offset-assert 57) + (eval-time uint32 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype top-anim-joint-control (basic) + ((process (pointer process-drawable) :offset-assert 4) ;; guessed by decompiler + (interp-select uint64 2 :offset-assert 8) ;; guessed by decompiler + (base-anim basic :offset-assert 24) + (base-anim-speed float :offset-assert 28) + (base-anim-blend float :offset-assert 32) + (interp float :offset-assert 36) + (frame-group art-joint-anim :offset-assert 40) ;; guessed by decompiler + (frame-group-push art-joint-anim :offset-assert 44) ;; guessed by decompiler + (frame-num float :offset-assert 48) + (frame-targ art-joint-anim :offset-assert 52) ;; guessed by decompiler + (frame-speed float :offset-assert 56) + (frame-blend float :offset-assert 60) + (frame-cur-blend float :offset-assert 64) + (frame-start float :offset-assert 68) + (frame-post-blend float :offset-assert 72) + (frame-post-end float :offset-assert 76) + (frame-push-time uint64 :offset-assert 80) ;; time-frame + (frame-post-put-away basic :offset-assert 88) + (update-time uint64 :offset-assert 96) ;; time-frame + ) + :method-count-assert 13 + :size-assert #x68 + :flag-assert #xd00000068 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type process-drawable) _type_) + (top-anim-joint-control-method-9 () none) ;; 9 ;; (reset (_type_) none) + (top-anim-joint-control-method-10 () none) ;; 10 ;; (update (_type_) none) + (top-anim-joint-control-method-11 () none) ;; 11 ;; (get-channel (_type_ int) joint-control-channel) + (top-anim-joint-control-method-12 () none) ;; 12 ;; (push-anim-to-targ (_type_ art-joint-anim float int int float float symbol) none) + ) + ) +|# + +#| +(deftype joint-control (basic) + ((status joint-control-status :offset-assert 4) + (allocated-length uint8 :offset-assert 6) + (active-channels uint8 :offset-assert 7) + (root-channel (inline-array joint-control-channel) :offset-assert 16) ;; guessed by decompiler + (blend-index uint8 :offset-assert 20) + (active-frame-interp uint8 :offset-assert 21) + (float-channels uint8 :offset-assert 22) + (generate-frame-function (function joint-anim-frame int joint-control int) :offset-assert 24) ;; guessed by decompiler + (prebind-function (function joint-anim-frame int joint-control int) :offset-assert 28) ;; guessed by decompiler + (postbind-function (function draw-control cspace-array joint-control none) :offset-assert 32) ;; guessed by decompiler + (effect effect-control :offset-assert 36) ;; guessed by decompiler + (interp-select int64 2 :offset-assert 40) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (top-anim top-anim-joint-control :offset-assert 56) ;; guessed by decompiler + (override (array float) :offset-assert 60) ;; guessed by decompiler + (channel joint-control-channel :dynamic :offset-assert 64) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 13 + :size-assert #x40 + :flag-assert #xd00000040 + ;; field joint-control-status is likely a value type. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int) _type_) + (joint-control-method-9 () none) ;; 9 ;; (current-cycle-distance (_type_) float) + (joint-control-method-10 () none) ;; 10 ;; (update-anim-data (_type_) none) + (joint-control-method-11 () none) ;; 11 ;; (debug-print-channels (_type_ symbol) int) + (joint-control-method-12 () none) ;; 12 ;; (joint-control-method-12 (_type_ int) joint-control-channel) + ) + ) +|# + +#| +(deftype matrix-stack (structure) + ((top matrix :offset-assert 0) + (data matrix 24 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x610 + :flag-assert #x900000610 + ) +|# + +#| +(deftype channel-upload-info (structure) + ((fixed joint-anim-compressed-fixed :offset-assert 0) + (fixed-qwc int32 :offset-assert 4) + (frame joint-anim-compressed-frame :offset-assert 8) + (frame-qwc int32 :offset-assert 12) + (amount float :offset-assert 16) + (interp float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype joint-work (structure) + ((temp-mtx matrix :inline :offset-assert 0) + (joint-stack matrix-stack :inline :offset-assert 64) + (fix-jmp-table (function none) 16 :offset-assert 1616) ;; guessed by decompiler + (frm-jmp-table (function none) 16 :offset-assert 1680) ;; guessed by decompiler + (pair-jmp-table (function none) 16 :offset-assert 1744) ;; guessed by decompiler + (uploads channel-upload-info 24 :offset-assert 1808) ;; guessed by decompiler + (num-uploads int32 :offset-assert 2384) + (mtx-acc matrix 2 :offset-assert 2400) ;; guessed by decompiler + (tq-acc transformq 100 :offset-assert 2528) ;; guessed by decompiler + (jacp-hdr joint-anim-compressed-hdr :inline :offset-assert 7328) + (fixed-data joint-anim-compressed-fixed :inline :offset-assert 7392) + (frame-data joint-anim-compressed-frame 2 :offset-assert 9600) ;; guessed by decompiler + (flatten-array float 576 :offset-assert 2400) ;; guessed by decompiler + (flattened vector 24 :offset-assert 2400) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x3640 + :flag-assert #x900003640 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bones-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bone-buffer (structure) + ((joint matrix 16 :offset-assert 0) ;; guessed by decompiler + (bone bone 16 :offset-assert 1024) ;; guessed by decompiler + (output pris-mtx 16 :offset-assert 2304) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1100 + :flag-assert #x900001100 + ) +|# + +#| +(deftype bone-layout (structure) + ((data uint16 8 :offset-assert 0) ;; guessed by decompiler + (joint (inline-array matrix) 2 :offset-assert 0) ;; guessed by decompiler + (bone (inline-array bone) 2 :offset-assert 8) ;; guessed by decompiler + (output (inline-array pris-mtx) 2 :offset-assert 16) ;; guessed by decompiler + (unused uint32 2 :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype bone-regs (structure) + ((dma-buf dma-buffer :offset-assert 0) ;; guessed by decompiler + (wait-count uint32 :offset-assert 4) + (in-count uint32 :offset-assert 8) + (sp-size uint32 :offset-assert 12) + (sp-bufnum uint32 :offset-assert 16) + (joint-ptr (inline-array joint) :offset-assert 20) ;; guessed by decompiler + (bone-ptr (inline-array bone) :offset-assert 24) ;; guessed by decompiler + (num-bones uint32 :offset-assert 28) + (mtxs (inline-array pris-mtx) :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype bone-work (structure) + ((layout bone-layout :inline :offset-assert 0) + (regs bone-regs :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype bone-debug (structure) + ((time-ctr uint32 :offset-assert 0) + (timing uint32 360 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x5a4 + :flag-assert #x9000005a4 + ) +|# + +#| +(deftype bone-memory (structure) + ((work bone-work :inline :offset-assert 0) + (buffer bone-buffer 2 :offset-assert 80) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2250 + :flag-assert #x900002250 + ) +|# + +#| +(deftype bone-calculation (structure) + ((flags uint16 :offset-assert 0) ;; bone-calc-flags + (num-bones uint16 :offset-assert 2) + (matrix-area (inline-array pris-mtx) :offset-assert 4) ;; guessed by decompiler + (joints (inline-array joint) :offset-assert 8) ;; guessed by decompiler + (bones (inline-array bone) :offset-assert 12) ;; guessed by decompiler + (ripple-scale float :offset-assert 16) + (ripple-y-scale float :offset-assert 20) + (ripple-normal-scale float :offset-assert 24) + (ripple-area (inline-array vector) :offset-assert 28) ;; guessed by decompiler + (next bone-calculation :offset-assert 32) + (dummy-1 uint32 :offset-assert 36) + (dummy-2 uint32 :offset-assert 40) + (dummy-3 uint32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype bone-calculation-list (structure) + ((first bone-calculation :offset-assert 0) + (next bone-calculation :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; foreground-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mercneric-chain (structure) + ((first uint32 :offset-assert 0) + (next uint32 :offset-assert 4) + (state generic-bucket-state :inline :offset-assert 8) + (vu1-bucket int32 :offset-assert 16) ;; bucket-id + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype merc-chain (structure) + ((first dma-packet :offset-assert 0) + (patch dma-packet :offset-assert 4) + (vu1-bucket int32 :offset-assert 8) ;; bucket-id + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype foreground-bucket (structure) + ((merc merc-chain :inline :offset-assert 0) + (emerc merc-chain :inline :offset-assert 12) + (mercneric mercneric-chain :inline :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype foreground-level-buckets (structure) + ((data foreground-bucket 10 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1e0 + :flag-assert #x9000001e0 + ) +|# + +#| +(deftype foreground-bucket-grid (structure) + ((level-buckets foreground-level-buckets 19 :offset-assert 0) ;; guessed by decompiler + (warp-chain mercneric-chain :inline :offset-assert 9120) + ) + :method-count-assert 9 + :size-assert #x23b4 + :flag-assert #x9000023b4 + ) +|# + +#| +(deftype foreground-regs (structure) + ((dist float :offset-assert 0) + (merc-used uint32 :offset-assert 4) + (emerc-used uint32 :offset-assert 8) + (mercneric-used uint32 :offset-assert 12) + (use-isometric uint32 :offset-assert 16) + (base-start dma-packet :offset-assert 20) + (joint-ptr (inline-array joint) :offset-assert 24) ;; guessed by decompiler + (bone-ptr (inline-array bone) :offset-assert 28) ;; guessed by decompiler + (num-bones uint32 :offset-assert 32) + (mtxs (inline-array pris-mtx) :offset-assert 36) ;; guessed by decompiler + (dma-buf dma-buffer :offset-assert 40) ;; guessed by decompiler + (default-texture-index uint32 :offset-assert 44) + (mercneric-chain mercneric-chain :offset-assert 48) + (level-buckets foreground-level-buckets :offset-assert 52) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ) +|# + +#| +(deftype foreground-work (structure) + ((regs foreground-regs :inline :offset-assert 0) + (draw-index-map uint8 19 :offset-assert 64) ;; guessed by decompiler + (grid foreground-bucket-grid :inline :offset-assert 96) + (bounds sphere :inline :offset-assert 9248) + (lights vu-lights :inline :offset-assert 9264) + (distance vector :inline :offset-assert 9376) + (next-tmpl dma-packet :inline :offset-assert 9392) + ) + :method-count-assert 9 + :size-assert #x24c0 + :flag-assert #x9000024c0 + ) +|# + +#| +(deftype texscroll-globals (structure) + ((requests int32 :offset-assert 0) + (effects merc-effect 32 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x84 + :flag-assert #x900000084 + ) +|# + +#| +(deftype merc-effect-bucket-info (structure) + ((color-fade rgba :offset-assert 0) ;; guessed by decompiler + (merc-path uint8 :offset-assert 4) + (ignore-alpha uint8 :offset-assert 5) + (disable-draw uint8 :offset-assert 6) + (disable-envmap uint8 :offset-assert 7) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype merc-bucket-info (structure) + ((light vu-lights :inline :offset-assert 0) + (needs-clip int32 :offset-assert 112) + (need-mercprime-if-merc int32 :offset-assert 116) + (must-use-mercneric-for-clip int32 :offset-assert 120) + (effect merc-effect-bucket-info 64 :offset-assert 124) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x27c + :flag-assert #x90000027c + ) +|# + +#| +(deftype foreground-globals (structure) + ((foreground-grid foreground-bucket-grid :inline :offset-assert 0) + (merc-bucket-info merc-bucket-info :inline :offset-assert 9152) + (texscroll texscroll-globals :inline :offset-assert 9792) + ) + :method-count-assert 9 + :size-assert #x26c4 + :flag-assert #x9000026c4 + ) +|# + +#| +(deftype shadow-dma-packet (structure) + ((tag generic-merc-tag :inline :offset-assert 0) + (settings shadow-settings :inline :offset-assert 16) + (geo-ref dma-packet :inline :offset-assert 96) + (mtx-ref dma-packet :inline :offset-assert 112) + (end-tag dma-packet :inline :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +;; (define-extern invalidate-cache-line function) ;; (function pointer int) +;; (define-extern *bucket-map* object) ;; (pointer bucket-id-16) +;; (define-extern vu1-bucket-map function) ;; (function int int merc-mode bucket-id) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; engines ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype particle-local-space-info (connection) + ((params basic 3 :offset-assert 20) ;; guessed by decompiler + (mat-prev matrix :inline :offset-assert 32) + (mat-new matrix :inline :offset-assert 96) + (hand uint64 :offset-assert 160) ;; handle + (flags part-local-space-flags :offset-assert 168) ;; guessed by decompiler + (pad uint32 1 :offset-assert 172) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #xb0 + :flag-assert #xe000000b0 + ;; field param1 uses ~A with a signed load. field param2 uses ~A with a signed load. field param3 uses ~A with a signed load. + ) +|# + +;; (define-extern *background-draw-engine* object) ;; engine +;; (define-extern *matrix-engine* object) ;; (array handle) +;; (define-extern *cloth-engine* object) ;; (array handle) +;; (define-extern *part-engine* object) ;; engine +;; (define-extern *cam-post-hook-engine* object) ;; engine +;; (define-extern *part-local-space-engine* object) ;; engine +;; (define-extern *camera-engine* object) ;; engine +;; (define-extern *debug-engine* object) ;; engine +;; (define-extern *pad-engine* object) ;; engine +;; (define-extern *lightning-engine* object) ;; engine +;; (define-extern *hud-engine* object) ;; engine +;; (define-extern *prim-client-engine* object) +;; (define-extern *prim-engine* object) ;; engine +;; (define-extern *task-manager-engine* object) ;; engine + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lightning-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lightning-spec (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (flags uint16 :offset-assert 8) ;; lightning-spec-flags + (rand-func uint8 :offset-assert 10) + (adjust-distance uint8 :offset-assert 11) + (start-color rgba :offset-assert 12) ;; guessed by decompiler + (end-color rgba :offset-assert 16) ;; guessed by decompiler + (fade-to-color rgba :offset-assert 20) ;; guessed by decompiler + (fade-start-factor float :offset-assert 24) + (fade-time float :offset-assert 28) + (texture texture-id :offset-assert 32) ;; guessed by decompiler + (reduction float :offset-assert 36) + (num-points int32 :offset-assert 40) + (box-size float :offset-assert 44) + (merge-factor float :offset-assert 48) + (merge-count int32 :offset-assert 52) + (radius float :offset-assert 56) + (duration float :offset-assert 60) + (duration-rand float :offset-assert 64) + (sound sound-spec :offset-assert 68) + (delay float :offset-assert 72) + (delay-rand float :offset-assert 76) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype lightning-state (structure) + ((mode uint8 :offset-assert 0) + (counter float :offset-assert 4) + (points-to-draw int32 :offset-assert 8) + (box-size float :offset-assert 12) + (gcf-control gcf-control :inline :offset-assert 16) + (line vector-array :offset-assert 128) ;; guessed by decompiler + (meet vector-array :offset-assert 132) ;; guessed by decompiler + (path vector-array :offset-assert 136) ;; guessed by decompiler + (start-color rgba :offset-assert 140) ;; guessed by decompiler + (end-color rgba :offset-assert 144) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x94 + :flag-assert #x900000094 + ) +|# + +#| +(deftype lightning-control (basic) + ((spec lightning-spec :offset-assert 4) ;; guessed by decompiler + (process (pointer process) :offset-assert 8) ;; guessed by decompiler + (state lightning-state :inline :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #xa4 + :flag-assert #xe000000a4 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type lightning-spec process float) _type_) + (lightning-control-method-9 () none) ;; 9 ;; (change-mode (_type_ lightning-mode) lightning-mode) + (lightning-control-method-10 () none) ;; 10 ;; (get-mode (_type_) lightning-mode) + (lightning-control-method-11 () none) ;; 11 ;; (set-point! (_type_ int vector) none) + (lightning-control-method-12 () none) ;; 12 ;; (set-first-meet-point (_type_ vector) none) + (lightning-control-method-13 () none) ;; 13 ;; (set-last-meet-point (_type_ vector) none) + ) + ) +|# + +#| +(deftype lightning-probe-vars (basic) + ((src-joint-index uint32 :offset-assert 4) + (next-spawn-time uint64 :offset-assert 8) ;; time-frame + (last-valid-time uint64 :offset-assert 16) ;; time-frame + (point vector 2 :offset-assert 32) ;; guessed by decompiler + (start-pos vector :inline :offset-assert 32) + (end-pos vector :inline :offset-assert 48) + (probe-dirs (inline-array vector) :offset-assert 64) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +;; (define-extern lookup-lightning-spec-by-name function) ;; (function string lightning-spec) +;; (define-extern *lightning-probe-vars* lightning-probe-vars) ;; lightning-probe-vars + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; res ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; res-lump is already defined! + +;; (define-extern *res-static-buf* object) ;; pointer + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lights ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *light-hash-work* object) ;; light-hash-work +;; (define-extern light-slerp function) ;; (function light light light float light) +;; (define-extern light-group-slerp function) ;; (function light-group light-group light-group float light-group) +;; (define-extern light-group-process! function) ;; (function vu-lights light-group vector vector none) +;; (define-extern *default-lights* object) ;; vu-lights +;; (define-extern vu-lights-default! function) ;; (function vu-lights vu-lights) +;; (define-extern init-light-hash function) ;; (function none) +;; (define-extern light-hash-count-items function) ;; (function light-hash light-sphere none) +;; (define-extern light-hash-add-items function) ;; (function light-hash light-sphere integer object) +;; (define-extern reset-light-hash function) ;; (function light-hash none) +;; (define-extern update-light-hash function) ;; (function light-hash none) +;; (define-extern lookup-light-sphere-by-name function) ;; (function string light-hash light-sphere) +;; (define-extern light-hash-get-bucket-index function) ;; (function light-hash vector int) +;; (define-extern add-light-sphere-to-light-group function) ;; (function object object object object object) +;; (define-extern light-merge! function) ;; (function light-group light-group none) +;; (define-extern light-group-scale! function) ;; (function light-group (pointer light-group) float none) +;; (define-extern light-group-madd! function) ;; (function light-group (pointer light-group) light-group float none) +;; (define-extern light-group-lerp! function) ;; (function light-group (pointer light-group) light-group float none) +;; (define-extern shadow-info-copy! function) ;; (function light-group light-group none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dynamics-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dynamics (basic) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (gravity-max meters :offset-assert 8) + (gravity-length meters :offset-assert 12) + (gravity vector :inline :offset-assert 16) + (gravity-normal vector :inline :offset-assert 32) + (walk-distance meters :offset-assert 48) + (run-distance meters :offset-assert 52) + ) + :method-count-assert 10 + :size-assert #x38 + :flag-assert #xa00000038 + (:methods + (dynamics-method-9 () none) ;; 9 ;; (set-gravity-length (_type_ float) none) + ) + ) +|# + +;; (define-extern time-to-apex function) ;; (function float float int) +;; (define-extern time-to-ground function) ;; (function float float float int) +;; (define-extern *standard-dynamics* dynamics) ;; dynamics + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pat-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pat-surface (uint32) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype pat-mode-info (structure) + ((name string :offset-assert 0) ;; guessed by decompiler + (wall-angle float :offset-assert 4) + (color rgba :offset-assert 8) ;; guessed by decompiler + (hilite-color rgba :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern pat-material->string function) ;; (function pat-surface string) +;; (define-extern pat-mode->string function) ;; (function pat-surface string) +;; (define-extern pat-event->string function) ;; (function pat-surface string) +;; (define-extern *pat-mode-info* object) ;; (inline-array pat-mode-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fact-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fact-bank (basic) + ((eco-level-max float :offset-assert 4) + (eco-single-inc float :offset-assert 8) + (eco-full-inc float :offset-assert 12) + (eco-single-timeout seconds :offset-assert 16) + (eco-full-timeout seconds :offset-assert 24) + (dummy seconds :offset-assert 32) + (health-max-default float :offset-assert 40) + (health-max-max float :offset-assert 44) + (health-small-inc float :offset-assert 48) + (health-single-inc float :offset-assert 52) + (health-default-inc float :offset-assert 56) + (eco-pill-green-max-default float :offset-assert 60) + (eco-pill-dark-max-default float :offset-assert 64) + (eco-pill-light-max-default float :offset-assert 68) + (eco-green-max-default float :offset-assert 72) + (default-eco-pill-green-inc float :offset-assert 76) + (default-eco-pill-dark-inc float :offset-assert 80) + (default-eco-pill-light-inc float :offset-assert 84) + (buzzer-max-default float :offset-assert 88) + (buzzer-single-inc float :offset-assert 92) + (suck-bounce-dist meters :offset-assert 96) + (suck-suck-dist meters :offset-assert 100) + (shield-max float :offset-assert 104) + (shield-use-speed float :offset-assert 108) + (shield-time-min seconds :offset-assert 112) + (trick-point-max float :offset-assert 120) + (super-skill-inc float :offset-assert 124) + (darkjak-spin-inc float :offset-assert 128) + (darkjak-punch-inc float :offset-assert 132) + (darkjak-flop-inc float :offset-assert 136) + (darkjak-uppercut-inc float :offset-assert 140) + (darkjak-bomb0-inc float :offset-assert 144) + (darkjak-bomb1-inc float :offset-assert 148) + (darkjak-smack-inc float :offset-assert 152) + (darkjak-bomb-min float :offset-assert 156) + (darkjak-button-invis-inc float :offset-assert 160) + ) + :method-count-assert 9 + :size-assert #xa4 + :flag-assert #x9000000a4 + ) +|# + +#| +(deftype fact-info (basic) + ((process process :offset-assert 4) ;; guessed by decompiler + (pickup-amount float :offset-assert 12) + (pickup-spawn-amount float :offset-assert 16) + (options actor-option :offset-assert 24) + (fade-time uint64 :offset-assert 32) ;; time-frame + ) + :method-count-assert 12 + :size-assert #x28 + :flag-assert #xc00000028 + ;; field actor-option is likely a value type. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type process pickup-type float) _type_) + (fact-info-method-9 () none) ;; 9 ;; (drop-pickup (_type_ symbol process-tree fact-info int symbol) (pointer process)) + (fact-info-method-10 () none) ;; 10 ;; (reset! (_type_ symbol) none) + (fact-info-method-11 () none) ;; 11 ;; (pickup-collectable! (_type_ pickup-type float handle) float) + ) + ) +|# + +#| +(deftype fact-info-enemy (fact-info) + ((process process :offset-assert 0) ;; guessed by decompiler + (pickup-amount float :offset-assert 8) + (pickup-spawn-amount float :offset-assert 12) + (options actor-option :offset-assert 20) + (fade-time uint64 :offset-assert 28) ;; time-frame + (speed float :offset-assert 36) + (idle-distance meters :offset-assert 40) + (notice-top meters :offset-assert 44) + (notice-bottom meters :offset-assert 48) + (cam-horz meters :offset-assert 52) + (cam-vert meters :offset-assert 56) + (cam-notice-dist meters :offset-assert 60) + (enemy-options enemy-option :offset-assert 64) + (trig-dist meters :offset-assert 68) + (trig-actor-group (pointer actor-group) :offset-assert 72) ;; guessed by decompiler + (trig-mask-count int8 :offset-assert 76) + (trig-mask uint8 2 :offset-assert 77) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #x53 + :flag-assert #xd00000053 + ;; field actor-option is likely a value type. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type process (pointer float)) _type_) + (fact-info-enemy-method-12 () none) ;; 12 ;; (clear-mask-bits (_type_ int) none) + ) + ) +|# + +#| +(deftype fact-info-crate (fact-info) + ((process process :offset-assert 0) ;; guessed by decompiler + (pickup-amount float :offset-assert 8) + (pickup-spawn-amount float :offset-assert 12) + (options actor-option :offset-assert 20) + (fade-time uint64 :offset-assert 28) ;; time-frame + (suck-count int32 :offset-assert 36) + ) + :method-count-assert 12 + :size-assert #x2c + :flag-assert #xc0000002c + ;; field actor-option is likely a value type. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type process pickup-type float) _type_) + ) + ) +|# + +#| +(deftype fact-info-enemy-defaults (basic) + ((idle-distance meters :offset-assert 4) + (pickup-type int32 :offset-assert 8) + (pickup-amount float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *FACT-bank* fact-bank) ;; fact-bank +;; (define-extern pickup-type->string function) ;; (function pickup-type string) +;; (define-extern *fact-info-enemy-defaults* fact-info-enemy-defaults) ;; fact-info-enemy-defaults + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; penetrate-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern penetrate->string function) ;; (function penetrate string) +;; (define-extern penetrate-using->damage function) ;; (function penetrate float) +;; (define-extern penetrated-by-all&hit-points->penetrated-by function) ;; (function penetrate int penetrate) +;; (define-extern pu->knocked-type function) ;; (function penetrate knocked-type) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; scert-1-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; scert-2-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; scert-3-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-localization-params (structure) + ((character-encoding-type int32 :offset-assert 0) + (language-type int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype net-memory-callback-params (structure) + ((pf-malloc-callback basic :offset-assert 0) + (pf-realloc-callback basic :offset-assert 4) + (pf-free-callback basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype net-dme-version (structure) + ((n-version uint32 :offset-assert 0) + (sz-version UNKNOWN 16 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype net-type-system-message-data (structure) + ((connection-handle basic :offset-assert 0) + (severity uint8 :offset-assert 4) + (e-encoding-type int32 :offset-assert 8) + (e-language-type int32 :offset-assert 12) + (b-end-of-message uint8 :offset-assert 16) + (n-message-length uint16 :offset-assert 18) + (p-message uint32 :offset-assert 20) + (p-user-data basic :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ;; field connection-handle uses ~A with a signed load. field p-user-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-update-error (structure) + ((connection-handle basic :offset-assert 0) + (net-error int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ;; field connection-handle uses ~A with a signed load. + ) +|# + +#| +(deftype net-update-conn-errors (structure) + ((sizeof-net-update-errors uint32 :offset-assert 0) + (a-errors UNKNOWN 4 :offset-assert 4) + (udperror int32 :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype net-data (structure) + ((n-size int32 :offset-assert 0) + (p-data basic :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ;; field p-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-initialize-out-params (structure) + ((b-is-set int32 :offset-assert 0) + (error-code int32 :offset-assert 4) + (sz-version UNKNOWN 16 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype net-connect-out-params (structure) + ((b-is-set int32 :offset-assert 0) + (error-code int32 :offset-assert 4) + (connection-handle basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ;; field connection-handle uses ~A with a signed load. + ) +|# + +#| +(deftype net-host-peer-to-peer-out-params (structure) + ((b-is-set int32 :offset-assert 0) + (error-code int32 :offset-assert 4) + (connection-handle basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ;; field connection-handle uses ~A with a signed load. + ) +|# + +#| +(deftype net-resolve-addr-out-params (structure) + ((b-is-set int32 :offset-assert 0) + (error-code int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype net-incoming-client-out-params (structure) + ((b-is-set int32 :offset-assert 0) + (error-code int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype net-client-metric (structure) + ((average-rate float :offset-assert 0) + (max-average-rate float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype net-bandwidth-info (structure) + ((sends net-client-metric :inline :offset-assert 0) + (send-bytes net-client-metric :inline :offset-assert 8) + (recvs net-client-metric :inline :offset-assert 16) + (recv-bytes net-client-metric :inline :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype net-connection-status (structure) + ((my-connect-status int32 :offset-assert 0) + (n-valid-client-count int32 :offset-assert 4) + (n-connected-client-count int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype sz-ipaddress (structure) + ((data UNKNOWN 16 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype net-type-lookup-response (structure) + ((asz-ipaddresses UNKNOWN 16 :offset-assert 0) + (n-ipaddresses uint32 :offset-assert 256) + (error-code int32 :offset-assert 260) + ) + :method-count-assert 9 + :size-assert #x108 + :flag-assert #x900000108 + ) +|# + +#| +(deftype net-type-lookup-params (structure) + ((sz-host-name UNKNOWN 256 :offset-assert 0) + (sz-server-ip UNKNOWN 16 :offset-assert 256) + (pf-lookup-response basic :offset-assert 272) + ) + :method-count-assert 9 + :size-assert #x114 + :flag-assert #x900000114 + ) +|# + +#| +(deftype rsa-key (structure) + ((key UNKNOWN 16 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype rsa-keypair (structure) + ((public-key rsa-key :inline :offset-assert 0) + (private-key rsa-key :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype net-type-connect-callback-data (structure) + ((connection-handle basic :offset-assert 0) + (connect-status int32 :offset-assert 4) + (failure-reason int32 :offset-assert 8) + (error-code int32 :offset-assert 12) + (p-user-data basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :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-client-connect-callback-data (structure) + ((connection-handle basic :offset-assert 0) + (client-index int32 :offset-assert 4) + (client-ip-string uint32 :offset-assert 8) + (client-status int32 :offset-assert 12) + (user-specified int32 :offset-assert 16) + (p-user-data basic :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ;; field connection-handle uses ~A with a signed load. field p-user-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-peer-to-peer-host-change-data (structure) + ((connection-handle basic :offset-assert 0) + (host-client-index int32 :offset-assert 4) + (p-user-data basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ;; field connection-handle uses ~A with a signed load. field p-user-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-token-ownership-notify-data (structure) + ((connection-handle basic :offset-assert 0) + (token-id int32 :offset-assert 4) + (owner-client-index int32 :offset-assert 8) + (error-code int32 :offset-assert 12) + (p-user-data basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ;; field connection-handle uses ~A with a signed load. field p-user-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-token-params (structure) + ((pf-token-ownership-notify-callback basic :offset-assert 0) + (p-token-ownership-notify-callback-data basic :offset-assert 4) + (b-use-token int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ;; field p-token-ownership-notify-callback-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-system-status-data (structure) + ((connection-handle basic :offset-assert 0) + (status int32 :offset-assert 4) + (error-code int32 :offset-assert 8) + (p-user-data basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ;; field connection-handle uses ~A with a signed load. field p-user-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-stream-media-audio-record-data (structure) + ((audio-type int32 :offset-assert 0) + (p-buffer uint32 :offset-assert 4) + (buf-size uint32 :offset-assert 8) + (bytes-stored uint32 :offset-assert 12) + (transport-flags int8 :offset-assert 16) + (p-user-data basic :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ;; field p-user-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-stream-media-audio-play-data (structure) + ((audio-type int32 :offset-assert 0) + (client-index int32 :offset-assert 4) + (p-buffer uint32 :offset-assert 8) + (buf-size uint32 :offset-assert 12) + (bytes-read uint32 :offset-assert 16) + (p-user-data basic :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ;; field p-user-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-audio-data-characteristics (structure) + ((n-channels-in int32 :offset-assert 0) + (n-bits-per-sample-in int32 :offset-assert 4) + (n-sample-rate-in int32 :offset-assert 8) + (n-channels-out int32 :offset-assert 12) + (n-bits-per-sample-out int32 :offset-assert 16) + (n-sample-rate-out int32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype net-color-array (structure) + ((cb-size int32 :offset-assert 0) + (line-size int32 :offset-assert 4) + (xsize int32 :offset-assert 8) + (ysize int32 :offset-assert 12) + (data UNKNOWN 16 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype net-stream-media-video-record-data (structure) + ((p-y net-color-array :offset-assert 0) + (p-cr net-color-array :offset-assert 4) + (p-cb net-color-array :offset-assert 8) + (b-data-stored int32 :offset-assert 12) + (p-user-data basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ;; field p-user-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-rgbarray (structure) + ((cb-size int32 :offset-assert 0) + (line-size int32 :offset-assert 4) + (xsize int32 :offset-assert 8) + (ysize int32 :offset-assert 12) + (data UNKNOWN 16 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype net-stream-media-video-play-data (structure) + ((client-index int32 :offset-assert 0) + (p-rgbarray net-rgbarray :offset-assert 4) + (b-data-processed int32 :offset-assert 8) + (p-user-data basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ;; field p-user-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-video-data-characteristics (structure) + ((xsize int32 :offset-assert 0) + (ysize int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype net-stream-media-custom-video-record-data (structure) + ((p-buffer uint32 :offset-assert 0) + (n-buffer-size uint32 :offset-assert 4) + (n-bytes-stored uint32 :offset-assert 8) + (transport-flags int8 :offset-assert 12) + (p-user-data basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ;; field p-user-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-stream-media-custom-video-play-data (structure) + ((client-index int32 :offset-assert 0) + (p-buffer uint32 :offset-assert 4) + (n-bytes-available uint32 :offset-assert 8) + (n-bytes-processed uint32 :offset-assert 12) + (p-user-data basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ;; field p-user-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-stream-media-params (structure) + ((b-default-set int32 :offset-assert 0) + (b-use-stream-media int32 :offset-assert 4) + (num-channels uint32 :offset-assert 8) + (max-incoming-audio-streams uint32 :offset-assert 12) + (record-no-data-timeout uint32 :offset-assert 16) + (send-buffer-size uint32 :offset-assert 20) + (recv-buffer-size uint32 :offset-assert 24) + (grid-type int32 :offset-assert 28) + (audio-data-characteristics net-audio-data-characteristics :inline :offset-assert 32) + (pf-audio-record-callback basic :offset-assert 56) + (p-audio-record-callback-data basic :offset-assert 60) + (pf-audio-play-callback basic :offset-assert 64) + (p-audio-play-callback-data basic :offset-assert 68) + (video-data-characteristics net-video-data-characteristics :inline :offset-assert 72) + (pf-video-record-callback basic :offset-assert 80) + (p-video-record-callback-data basic :offset-assert 84) + (pf-video-play-callback basic :offset-assert 88) + (p-video-play-callback-data basic :offset-assert 92) + (pf-custom-video-record-callback basic :offset-assert 96) + (p-custom-video-record-callback-data basic :offset-assert 100) + (pf-custom-video-play-callback basic :offset-assert 104) + (p-custom-video-play-callback-data basic :offset-assert 108) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ;; field p-audio-record-callback-data uses ~A with a signed load. field p-audio-play-callback-data uses ~A with a signed load. field p-video-record-callback-data uses ~A with a signed load. field p-video-play-callback-data uses ~A with a signed load. field p-custom-video-record-callback-data uses ~A with a signed load. field p-custom-video-play-callback-data uses ~A with a signed load. + ) +|# + +#| +(deftype net-address (structure) + ((address-type int32 :offset-assert 0) + (address UNKNOWN 16 :offset-assert 4) + (port uint32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype net-address-list (structure) + ((a-address-list UNKNOWN 2 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype net-connection-info (structure) + ((e-type int32 :offset-assert 0) + (address-list net-address-list :inline :offset-assert 4) + (world-id int32 :offset-assert 52) + (server-key rsa-key :inline :offset-assert 56) + (a-session-key UNKNOWN 17 :offset-assert 120) + (a-access-key UNKNOWN 17 :offset-assert 137) + ) + :method-count-assert 9 + :size-assert #x9a + :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-bit-mask (structure) + ((bitmask UNKNOWN 8 :offset-assert 0) + (base-id int32 :offset-assert 32) + (max-id int32 :offset-assert 36) + ) + :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) + ) + :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) + (message-type int32 :offset-assert 8) + (dest-client net-client-list :inline :offset-assert 12) + (message-length int32 :offset-assert 56) + (message-data uint32 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :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) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype net-disconnect-params (structure) + ((connection-handle basic :offset-assert 0) + (reason int32 :offset-assert 4) + (pf-local-disconnect-callback basic :offset-assert 8) + (p-user-data basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :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) + ) + :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) + (latency-metrics-info net-latency-metrics-info :inline :offset-assert 8) + (error-code int32 :offset-assert 20) + (p-user-data basic :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :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) + (pf-latency-metrics-callback basic :offset-assert 48) + (p-user-data basic :offset-assert 52) + ) + :method-count-assert 9 + :size-assert #x38 + :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) + (field-size int32 :offset-assert 8) + (field-count int32 :offset-assert 12) + (p-current-data basic :offset-assert 16) + (p-last-update-data basic :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :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) + (client-index int32 :offset-assert 8) + (p-user-data basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :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) + (fields-updated net-bit-mask :inline :offset-assert 48) + (update-type int32 :offset-assert 88) + (p-user-data basic :offset-assert 92) + ) + :method-count-assert 9 + :size-assert #x60 + :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) + (object-index int32 :offset-assert 8) + (state int32 :offset-assert 12) + (p-user-data basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :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) + (object-index int32 :offset-assert 8) + (p-user-data basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :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) + ) + :method-count-assert 9 + :size-assert #x8 + :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) + (p-user-data basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :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) + (net-object-count int32 :offset-assert 20) + (data-stream-count int32 :offset-assert 24) + (session-master-status int32 :offset-assert 28) + (pf-local-join-callback basic :offset-assert 32) + (p-join-callback-data basic :offset-assert 36) + (pf-remote-client-event-callback basic :offset-assert 40) + (p-remote-client-event-callback-data basic :offset-assert 44) + (pf-smchange-callback basic :offset-assert 48) + (p-smchange-callback-data basic :offset-assert 52) + (pf-ownership-update-callback basic :offset-assert 56) + (p-ownership-update-callback-data basic :offset-assert 60) + (pf-ownership-request-callback basic :offset-assert 64) + (p-ownership-request-callback-data basic :offset-assert 68) + ) + :method-count-assert 9 + :size-assert #x48 + :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) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype anonymous-0 (structure) + ((error-threshold-magnitude float :offset-assert 0) + (pf-threshold-callback basic :offset-assert 0) + ) + :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) + (net-object-buffer-start int32 :offset-assert 8) + (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) + ) + :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) + (remote-buffer uint8 :offset-assert 2) + (stream-type uint8 :offset-assert 3) + (buffer-complete uint8 :offset-assert 4) + (send-to-all uint8 :offset-assert 5) + (target-client-index int32 :offset-assert 8) + (owner-client-index int32 :offset-assert 12) + (buffer-start uint32 :offset-assert 16) + (buffer-end uint32 :offset-assert 20) + (read-ptr uint32 :offset-assert 24) + (write-ptr uint32 :offset-assert 28) + (data-rate int32 :offset-assert 32) + (min-packet-size uint16 :offset-assert 36) + (max-packet-size uint16 :offset-assert 38) + (time-of-last-update uint32 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype net-type-short-vector2 (structure) + ((x int16 :offset-assert 0) + (y int16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype net-type-short-vector3 (structure) + ((x int16 :offset-assert 0) + (y int16 :offset-assert 2) + (z int16 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype net-type-int-vector2 (structure) + ((x int32 :offset-assert 0) + (y int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype net-type-int-vector3 (structure) + ((x int32 :offset-assert 0) + (y int32 :offset-assert 4) + (z int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype net-type-float-vector2 (structure) + ((x float :offset-assert 0) + (y float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype net-type-float-vector3 (structure) + ((x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype net-type-object (structure) + ((structure-index uint8 :offset-assert 0) + (filter-type uint8 :offset-assert 1) + (lifespan-type uint8 :offset-assert 2) + (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) + (current-object-data uint32 :offset-assert 28) + (last-global-object-data-update uint32 :offset-assert 32) + (hi-field-change-set uint32 :offset-assert 36) + (lo-field-change-set uint32 :offset-assert 40) + (time-of-expiration uint32 :offset-assert 44) + (max-update-interval uint32 :offset-assert 48) + (time-of-last-global-update uint32 :offset-assert 52) + (time-of-last-client-update uint32 :offset-assert 56) + (time-of-last-client-field-update uint32 :offset-assert 60) + (local-user-data basic :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :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) + ) + :method-count-assert 9 + :size-assert #x8 + :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) + ) + :method-count-assert 9 + :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) + ) + :method-count-assert 9 + :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) + (filter uint32 :offset-assert 8) + (details net-data :inline :offset-assert 12) + (udpport uint32 :offset-assert 20) + (pfn-lanfind-callback basic :offset-assert 24) + (p-user-data basic :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :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) + (client-count uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :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) + (b-joined-to-channel int32 :offset-assert 8) + (channel-num uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :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) + ) + :method-count-assert 9 + :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) + (client-index int32 :offset-assert 8) + (b-ignore int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :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) + ) + :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) + ) + :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) + ) + :method-count-assert 9 + :size-assert #x46 + :flag-assert #x900000046 + ) +|# + +#| +(deftype medius-account-get-idresponse (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (account-id int32 :offset-assert 24) + (status-code int32 :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) + ) + :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) + (account-status int32 :offset-assert 28) + (account-name UNKNOWN 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) + ) + :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) + ) + :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) + (account-id int32 :offset-assert 28) + (account-type int32 :offset-assert 32) + (medius-world-id int32 :offset-assert 36) + (connect-info net-connection-info :inline :offset-assert 40) + ) + :method-count-assert 9 + :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) + ) + :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) + (account-type int32 :offset-assert 40) + (account-name UNKNOWN 32 :offset-assert 44) + (password UNKNOWN 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) + (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) + ) + :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) + (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) + ) + :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) + ) + :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) + (player-account-id int32 :offset-assert 40) + (welcome-message UNKNOWN 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) + ) + :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) + (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) + (target-account-id int32 :offset-assert 40) + (add-type int32 :offset-assert 44) + ) + :method-count-assert 9 + :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) + (target-account-id int32 :offset-assert 28) + (target-account-name UNKNOWN 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) + (originator-account-id int32 :offset-assert 24) + (originator-account-name UNKNOWN 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) + (originator-account-id int32 :offset-assert 24) + (originator-account-name UNKNOWN 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) + (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) + (originator-account-id int32 :offset-assert 48) + (add-type int32 :offset-assert 52) + ) + :method-count-assert 9 + :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) + (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) + ) + :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) + (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) + ) + :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) + ) + :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) + (ban-account-id int32 :offset-assert 40) + (ban-minutes int32 :offset-assert 44) + (medius-world-id int32 :offset-assert 48) + (app-type int32 :offset-assert 52) + ) + :method-count-assert 9 + :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) + ) + :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) + (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) + (active-player-count int32 :offset-assert 92) + (max-players int32 :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x64 + :flag-assert #x900000064 + ) +|# + +#| +(deftype medius-channel-list-extra-info-request (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (page-id uint16 :offset-assert 22) + (page-size uint16 :offset-assert 24) + ) + :method-count-assert 9 + :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) + (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) + (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) + (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) + (generic-field2 uint32 :offset-assert 44) + (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) + (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) + (medius-world-id int32 :offset-assert 28) + (player-count uint16 :offset-assert 32) + (max-players uint16 :offset-assert 34) + (game-world-count uint16 :offset-assert 36) + (security-level int32 :offset-assert 40) + (generic-field1 uint32 :offset-assert 44) + (generic-field2 uint32 :offset-assert 48) + (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) + (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) + (page-id int16 :offset-assert 38) + (page-size int16 :offset-assert 40) + ) + :method-count-assert 9 + :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) + (medius-world-id int32 :offset-assert 28) + (lobby-name UNKNOWN 64 :offset-assert 32) + (player-count int32 :offset-assert 96) + (end-of-list int8 :offset-assert 100) + ) + :method-count-assert 9 + :size-assert #x65 + :flag-assert #x900000065 + ) +|# + +#| +(deftype medius-chat-fwd-message (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (originator-account-id int32 :offset-assert 24) + (originator-account-name UNKNOWN 32 :offset-assert 28) + (message-type int32 :offset-assert 60) + (message UNKNOWN 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-type int32 :offset-assert 40) + (target-account-id int32 :offset-assert 44) + (message UNKNOWN 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) + (originator-account-id int32 :offset-assert 24) + (message-type int32 :offset-assert 28) + (message UNKNOWN 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-type int32 :offset-assert 40) + (target-account-id int32 :offset-assert 44) + (message UNKNOWN 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) + (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) + ) + :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) + (start int32 :offset-assert 40) + (page-size int32 :offset-assert 44) + ) + :method-count-assert 9 + :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) + (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) + (leader-account-id int32 :offset-assert 240) + (leader-account-name UNKNOWN 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) + (clan-ladder-stat-index int32 :offset-assert 24) + (sort-order int32 :offset-assert 28) + (start-position uint32 :offset-assert 32) + (page-size uint32 :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype medius-clan-ladder-list-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (clan-id int32 :offset-assert 24) + (clan-name UNKNOWN 32 :offset-assert 28) + (ladder-position uint32 :offset-assert 60) + (status-code int32 :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) + (clan-id int32 :offset-assert 24) + (clan-ladder-stat-index int32 :offset-assert 28) + (sort-order int32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype medius-clan-ladder-position-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (ladder-position uint32 :offset-assert 24) + (total-rankings uint32 :offset-assert 28) + (status-code int32 :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) + (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) + ) + :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) + (card-slot int32 :offset-assert 8) + (account-id int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype medius-clear-stored-account-info-response (structure) + ((confirmation int32 :offset-assert 0) + ) + :method-count-assert 9 + :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) + (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) + ) + :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) + (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) + ) + :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) + (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) + (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) + (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) + (generic-field1 uint32 :offset-assert 144) + (generic-field2 uint32 :offset-assert 148) + (generic-field3 uint32 :offset-assert 152) + (generic-field4 uint32 :offset-assert 156) + (generic-field-level int32 :offset-assert 160) + ) + :method-count-assert 9 + :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) + (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) + (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) + (player-skill-level int32 :offset-assert 160) + (rules-set int32 :offset-assert 164) + (generic-field1 int32 :offset-assert 168) + (generic-field2 int32 :offset-assert 172) + (generic-field3 int32 :offset-assert 176) + (port int32 :offset-assert 180) + (game-host-type int32 :offset-assert 184) + (address-list net-address-list :inline :offset-assert 188) + ) + :method-count-assert 9 + :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) + (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) + (application-id int32 :offset-assert 40) + (clan-name UNKNOWN 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) + (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) + (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) + (player-skill-level int32 :offset-assert 152) + (rules-set int32 :offset-assert 156) + (generic-field1 int32 :offset-assert 160) + (generic-field2 int32 :offset-assert 164) + (generic-field3 int32 :offset-assert 168) + (game-host-type int32 :offset-assert 172) + ) + :method-count-assert 9 + :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) + (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) + (player-skill-level int32 :offset-assert 184) + (rules-set int32 :offset-assert 188) + (generic-field1 int32 :offset-assert 192) + (generic-field2 int32 :offset-assert 196) + (generic-field3 int32 :offset-assert 200) + (game-host-type int32 :offset-assert 204) + (attributes int32 :offset-assert 208) + ) + :method-count-assert 9 + :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) + (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) + (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) + ) + :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) + (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) + ) + :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) + (dnas-signature-type int32 :offset-assert 40) + (dnas-signature-length int8 :offset-assert 44) + (dnas-signature UNKNOWN 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) + (medius-world-id int32 :offset-assert 20) + (winning-team UNKNOWN 64 :offset-assert 24) + (winning-player UNKNOWN 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) + ) + :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) + (search-type int32 :offset-assert 40) + (id int32 :offset-assert 44) + (name UNKNOWN 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) + (application-id int32 :offset-assert 28) + (application-name UNKNOWN 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) + (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) + (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) + (application-id int32 :offset-assert 28) + (application-name UNKNOWN 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-status int32 :offset-assert 136) + (end-of-list int8 :offset-assert 140) + ) + :method-count-assert 9 + :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) + (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) + (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) + (rules-set int32 :offset-assert 372) + (generic-field1 int32 :offset-assert 376) + (generic-field2 int32 :offset-assert 380) + (generic-field3 int32 :offset-assert 384) + (world-status int32 :offset-assert 388) + (game-host-type int32 :offset-assert 392) + ) + :method-count-assert 9 + :size-assert #x18c + :flag-assert #x90000018c + ) +|# + +#| +(deftype medius-game-list-extra-info-request (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (page-id uint16 :offset-assert 22) + (page-size uint16 :offset-assert 24) + ) + :method-count-assert 9 + :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) + (medius-world-id int32 :offset-assert 28) + (player-count uint16 :offset-assert 32) + (min-players uint16 :offset-assert 34) + (max-players uint16 :offset-assert 36) + (game-level int32 :offset-assert 40) + (player-skill-level int32 :offset-assert 44) + (rules-set int32 :offset-assert 48) + (generic-field1 int32 :offset-assert 52) + (generic-field2 int32 :offset-assert 56) + (generic-field3 int32 :offset-assert 60) + (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) + (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) + (application-id int32 :offset-assert 40) + (page-id int16 :offset-assert 44) + (page-size int16 :offset-assert 46) + ) + :method-count-assert 9 + :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) + (medius-world-id int32 :offset-assert 28) + (game-name UNKNOWN 64 :offset-assert 32) + (world-status int32 :offset-assert 96) + (game-host-type int32 :offset-assert 100) + (player-count int32 :offset-assert 104) + (end-of-list int8 :offset-assert 108) + ) + :method-count-assert 9 + :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) + (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) + (account-id int32 :offset-assert 28) + (account-name UNKNOWN 32 :offset-assert 32) + (stats UNKNOWN 256 :offset-assert 64) + (connection-class int32 :offset-assert 320) + (end-of-list int8 :offset-assert 324) + ) + :method-count-assert 9 + :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) + (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) + (start int32 :offset-assert 40) + (page-size int32 :offset-assert 44) + ) + :method-count-assert 9 + :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) + (clan-message-id int32 :offset-assert 28) + (message UNKNOWN 200 :offset-assert 32) + (status int32 :offset-assert 232) + (end-of-list int8 :offset-assert 236) + ) + :method-count-assert 9 + :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) + (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) + (announcement-id int32 :offset-assert 28) + (announcement UNKNOWN 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) + ) + :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) + (account-id int32 :offset-assert 28) + (account-name UNKNOWN 32 :offset-assert 32) + (add-type int32 :offset-assert 64) + (end-of-list int8 :offset-assert 68) + ) + :method-count-assert 9 + :size-assert #x45 + :flag-assert #x900000045 + ) +|# + +#| +(deftype medius-get-buddy-list-extra-info-request (structure) + ((message-id UNKNOWN 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) + (account-id int32 :offset-assert 28) + (account-name UNKNOWN 32 :offset-assert 32) + (online-state medius-player-online-state :inline :offset-assert 64) + (end-of-list int8 :offset-assert 204) + ) + :method-count-assert 9 + :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) + ) + :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) + (account-id int32 :offset-assert 28) + (account-name UNKNOWN 32 :offset-assert 32) + (player-status int32 :offset-assert 64) + (end-of-list int8 :offset-assert 68) + ) + :method-count-assert 9 + :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) + ) + :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) + (ignore-account-id int32 :offset-assert 28) + (ignore-account-name UNKNOWN 32 :offset-assert 32) + (player-status int32 :offset-assert 64) + (end-of-list int8 :offset-assert 68) + ) + :method-count-assert 9 + :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) + (account-id int32 :offset-assert 40) + (clan-id int32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype medius-get-clan-by-idresponse (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (status-code int32 :offset-assert 24) + (application-id int32 :offset-assert 28) + (clan-name UNKNOWN 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) + (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) + (application-id int32 :offset-assert 40) + (clan-name UNKNOWN 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) + (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) + (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) + (start int32 :offset-assert 40) + (page-size int32 :offset-assert 44) + ) + :method-count-assert 9 + :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) + (account-id int32 :offset-assert 28) + (account-name UNKNOWN 32 :offset-assert 32) + (response-msg UNKNOWN 200 :offset-assert 64) + (response-status int32 :offset-assert 264) + (response-time int32 :offset-assert 268) + (end-of-list int8 :offset-assert 272) + ) + :method-count-assert 9 + :size-assert #x111 + :flag-assert #x900000111 + ) +|# + +#| +(deftype medius-get-clan-member-list-extra-info-request (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (clan-id int32 :offset-assert 24) + (ladder-stat-index int32 :offset-assert 28) + (sort-order int32 :offset-assert 32) + ) + :method-count-assert 9 + :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) + (account-id int32 :offset-assert 28) + (account-name UNKNOWN 32 :offset-assert 32) + (stats UNKNOWN 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) + (total-rankings uint32 :offset-assert 468) + (end-of-list int8 :offset-assert 472) + ) + :method-count-assert 9 + :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) + (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) + (account-id int32 :offset-assert 24) + (account-name UNKNOWN 32 :offset-assert 28) + (status-code int32 :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) + (clan-id int32 :offset-assert 40) + (this-clan-is-challenger int32 :offset-assert 44) + (start int32 :offset-assert 48) + (page-size int32 :offset-assert 52) + ) + :method-count-assert 9 + :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) + (against-clan-id int32 :offset-assert 28) + (status int32 :offset-assert 32) + (end-of-list int8 :offset-assert 36) + ) + :method-count-assert 9 + :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) + (clan-id int32 :offset-assert 40) + (start int32 :offset-assert 44) + (page-size int32 :offset-assert 48) + (status int32 :offset-assert 52) + (challenged-only int32 :offset-assert 56) + ) + :method-count-assert 9 + :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) + (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) + (end-of-list int8 :offset-assert 444) + (clan-challenge-id int32 :offset-assert 448) + ) + :method-count-assert 9 + :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) + ) + :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) + (filter-field int32 :offset-assert 28) + (comparison-operator int32 :offset-assert 32) + (baseline-value int32 :offset-assert 36) + (end-of-list int8 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x29 + :flag-assert #x900000029 + ) +|# + +#| +(deftype medius-get-ladder-stats-request (structure) + ((message-id UNKNOWN 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) + ) + :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) + (account-id-or-clan-id int32 :offset-assert 24) + (ladder-type int32 :offset-assert 28) + ) + :method-count-assert 9 + :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) + (account-id-or-clan-id int32 :offset-assert 28) + (stats UNKNOWN 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) + (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) + (account-id-or-clan-id int32 :offset-assert 28) + (stats UNKNOWN 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) + (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) + (account-id int32 :offset-assert 28) + (account-name UNKNOWN 32 :offset-assert 32) + (online-state medius-player-online-state :inline :offset-assert 64) + (end-of-list int8 :offset-assert 204) + ) + :method-count-assert 9 + :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) + (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) + (account-id int32 :offset-assert 28) + (account-name UNKNOWN 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) + ) + :method-count-assert 9 + :size-assert #x26 + :flag-assert #x900000026 + ) +|# + +#| +(deftype medius-get-locations-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (location-id int32 :offset-assert 24) + (location-name UNKNOWN 64 :offset-assert 28) + (status-code int32 :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) + (clan-id int32 :offset-assert 40) + (start int32 :offset-assert 44) + (page-size int32 :offset-assert 48) + ) + :method-count-assert 9 + :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) + (clan-id int32 :offset-assert 28) + (message UNKNOWN 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) + (start int32 :offset-assert 40) + (page-size int32 :offset-assert 44) + ) + :method-count-assert 9 + :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) + (clan-id int32 :offset-assert 28) + (application-id int32 :offset-assert 32) + (clan-name UNKNOWN 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) + (status int32 :offset-assert 360) + (end-of-list int8 :offset-assert 364) + ) + :method-count-assert 9 + :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) + ) + :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) + ) + :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) + (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) + (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) + (card-slot int32 :offset-assert 8) + (account-id int32 :offset-assert 12) + ) + :method-count-assert 9 + :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) + ) + :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) + (card-slot int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype medius-get-stored-account-list-response (structure) + ((account-list UNKNOWN 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) + (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) + (total uint32 :offset-assert 24) + (status-code int32 :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) + (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) + (total uint32 :offset-assert 24) + (status-code int32 :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) + (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) + (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) + (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) + (total-in-system uint32 :offset-assert 24) + (total-in-game uint32 :offset-assert 28) + (status-code int32 :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) + (medius-world-id int32 :offset-assert 40) + (app-type int32 :offset-assert 44) + ) + :method-count-assert 9 + :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) + (medius-world-id int32 :offset-assert 28) + (app-type int32 :offset-assert 32) + (security-level int32 :offset-assert 36) + ) + :method-count-assert 9 + :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) + (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) + ) + :method-count-assert 9 + :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) + ) + :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) + (player-account-id int32 :offset-assert 40) + (invite-message UNKNOWN 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) + ) + :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) + ) + :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) + ) + :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) + (medius-world-id int32 :offset-assert 40) + (lobby-channel-password UNKNOWN 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) + (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) + (medius-world-id int32 :offset-assert 40) + (game-password UNKNOWN 32 :offset-assert 44) + (game-host-type int32 :offset-assert 76) + (address-list net-address-list :inline :offset-assert 80) + ) + :method-count-assert 9 + :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) + (medius-world-id int32 :offset-assert 40) + (join-type int32 :offset-assert 44) + (game-password UNKNOWN 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) + ) + :method-count-assert 9 + :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) + (game-host-type int32 :offset-assert 28) + (connect-info net-connection-info :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #xba + :flag-assert #x9000000ba + ) +|# + +#| +(deftype medius-ladder-list-extra-info-request (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (ladder-stat-index int32 :offset-assert 24) + (sort-order int32 :offset-assert 28) + (start-position uint32 :offset-assert 32) + (page-size uint32 :offset-assert 36) + ) + :method-count-assert 9 + :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) + (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) + (online-state medius-player-online-state :inline :offset-assert 324) + (end-of-list int8 :offset-assert 464) + ) + :method-count-assert 9 + :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) + (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) + (online-state medius-player-online-state :inline :offset-assert 328) + (end-of-list int8 :offset-assert 468) + ) + :method-count-assert 9 + :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) + (start-byte uint32 :offset-assert 40) + (end-byte uint32 :offset-assert 44) + (sort-order int32 :offset-assert 48) + (start-position uint32 :offset-assert 52) + (page-size uint32 :offset-assert 56) + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +#| +(deftype medius-ladder-list-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (account-id int32 :offset-assert 24) + (account-name UNKNOWN 32 :offset-assert 28) + (ladder-position uint32 :offset-assert 60) + (status-code int32 :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) + (account-id int32 :offset-assert 24) + (ladder-stat-index int32 :offset-assert 28) + (sort-order int32 :offset-assert 32) + ) + :method-count-assert 9 + :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) + (ladder-position uint32 :offset-assert 28) + (total-rankings uint32 :offset-assert 32) + ) + :method-count-assert 9 + :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) + (account-id int32 :offset-assert 40) + (start-byte uint32 :offset-assert 44) + (end-byte uint32 :offset-assert 48) + (sort-order int32 :offset-assert 52) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ) +|# + +#| +(deftype medius-ladder-position-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (ladder-position uint32 :offset-assert 24) + (status-code int32 :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) + (account-id int32 :offset-assert 40) + (new-stats-score int32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype medius-ladder-position-fast-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (ladder-position uint32 :offset-assert 24) + (status-code int32 :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) + (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) + (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) + (connection-class int32 :offset-assert 324) + (end-of-list int8 :offset-assert 328) + ) + :method-count-assert 9 + :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) + ) + :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) + (clan-message-id int32 :offset-assert 40) + (new-message UNKNOWN 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) + ) + :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) + (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) + ) + :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) + (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) + (application-id int32 :offset-assert 60) + (player-status int32 :offset-assert 64) + (connection-class int32 :offset-assert 68) + (stats UNKNOWN 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) + (medius-world-id int32 :offset-assert 20) + (stats UNKNOWN 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) + ) + :method-count-assert 9 + :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) + (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) + ) + :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) + (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) + ) + :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) + (player-account-id int32 :offset-assert 40) + (clan-id int32 :offset-assert 44) + ) + :method-count-assert 9 + :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) + ) + :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) + (clan-id int32 :offset-assert 40) + (message UNKNOWN 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) + ) + :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) + (clan-invitation-id int32 :offset-assert 40) + (response int32 :offset-assert 44) + (message UNKNOWN 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) + ) + :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) + (clan-challenge-id int32 :offset-assert 40) + (challenge-status int32 :offset-assert 44) + (message UNKNOWN 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) + ) + :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) + (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) + ) + :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) + (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) + ) + :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) + ) + :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) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype medius-session-begin-request (structure) + ((message-id UNKNOWN 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) + ) + :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) + ) + :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) + ) + :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) + (filter-field int32 :offset-assert 40) + (comparison-operator int32 :offset-assert 44) + (baseline-value int32 :offset-assert 48) + ) + :method-count-assert 9 + :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) + ) + :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) + (filter-mask1 uint32 :offset-assert 24) + (filter-mask2 uint32 :offset-assert 28) + (filter-mask3 uint32 :offset-assert 32) + (filter-mask4 uint32 :offset-assert 36) + (lobby-filter-type int32 :offset-assert 40) + (filter-mask-level int32 :offset-assert 44) + ) + :method-count-assert 9 + :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) + (filter-mask1 uint32 :offset-assert 28) + (filter-mask2 uint32 :offset-assert 32) + (filter-mask3 uint32 :offset-assert 36) + (filter-mask4 uint32 :offset-assert 40) + (lobby-filter-type int32 :offset-assert 44) + (filter-mask-level int32 :offset-assert 48) + ) + :method-count-assert 9 + :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) + (character-encoding int32 :offset-assert 40) + (language int32 :offset-assert 44) + ) + :method-count-assert 9 + :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-type int32 :offset-assert 40) + (message-idto-tag int32 :offset-assert 44) + ) + :method-count-assert 9 + :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) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype medius-set-stored-account-info-response (structure) + ((confirmation int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype medius-status-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (status-code int32 :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) + (text-filter-type int32 :offset-assert 40) + (text UNKNOWN 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) + ) + :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) + (new-leader-account-id int32 :offset-assert 40) + (new-leader-account-name UNKNOWN 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) + ) + :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) + (clan-id int32 :offset-assert 40) + (stats UNKNOWN 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) + ) + :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) + (medius-world-id int32 :offset-assert 40) + (game-name UNKNOWN 64 :offset-assert 44) + (min-players int16 :offset-assert 108) + (max-players int16 :offset-assert 110) + (game-level int16 :offset-assert 112) + (player-skill-level int16 :offset-assert 114) + ) + :method-count-assert 9 + :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) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype medius-update-ladder-stats-request (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (ladder-type int32 :offset-assert 24) + (stats UNKNOWN 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) + (ladder-type int32 :offset-assert 24) + (stats UNKNOWN 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) + (clan-id int32 :offset-assert 24) + (stats UNKNOWN 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) + (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) + ) + :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) + ) + :method-count-assert 9 + :size-assert #x4d + :flag-assert #x90000004d + ) +|# + +#| +(deftype medius-world-report (structure) + ((session-key UNKNOWN 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) + (min-players int32 :offset-assert 348) + (max-players int32 :offset-assert 352) + (game-level int32 :offset-assert 356) + (player-skill-level int32 :offset-assert 360) + (rules-set int32 :offset-assert 364) + (generic-field1 int32 :offset-assert 368) + (generic-field2 int32 :offset-assert 372) + (generic-field3 int32 :offset-assert 376) + (world-status int32 :offset-assert 380) + ) + :method-count-assert 9 + :size-assert #x180 + :flag-assert #x900000180 + ) +|# + +#| +(deftype medius-get-universe-information-request (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (info-type uint32 :offset-assert 24) + (character-encoding int32 :offset-assert 28) + (language int32 :offset-assert 32) + ) + :method-count-assert 9 + :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) + (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) + (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) + (port int32 :offset-assert 292) + (universe-description UNKNOWN 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) + (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) + ) + :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) + (port int32 :offset-assert 284) + (universe-description UNKNOWN 256 :offset-assert 288) + (status int32 :offset-assert 544) + (user-count int32 :offset-assert 548) + (max-users int32 :offset-assert 552) + (end-of-list int8 :offset-assert 556) + ) + :method-count-assert 9 + :size-assert #x22d + :flag-assert #x90000022d + ) +|# + +#| +(deftype medius-get-universe-extra-info-request (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (info-type uint32 :offset-assert 24) + (character-encoding int32 :offset-assert 28) + (language int32 :offset-assert 32) + ) + :method-count-assert 9 + :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) + (port int32 :offset-assert 284) + (universe-description UNKNOWN 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) + (end-of-list int8 :offset-assert 692) + (extended-info UNKNOWN 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) + ) + :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) + ) + :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) + (max-clients-per-connection uint32 :offset-assert 268) + (my-connect-callback basic :offset-assert 272) + (pf-remote-client-connect-callback basic :offset-assert 276) + (pf-remote-client-disconnect-callback basic :offset-assert 280) + ) + :method-count-assert 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) + ) + :method-count-assert 9 + :size-assert #x8 + :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) + (my-disconnect-callback basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :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) + (my-chat-fwd-message-callback-user-data basic :offset-assert 8) + (my-binary-fwd-message-callback basic :offset-assert 12) + (my-binary-fwd-message-callback-user-data basic :offset-assert 16) + (my-add-to-buddy-list-fwd-confirmation-request-callback basic :offset-assert 20) + (my-add-to-buddy-list-fwd-confirmation-request-callback-user-data basic :offset-assert 24) + (my-error-message-callback basic :offset-assert 28) + (my-error-message-callback-user-data basic :offset-assert 32) + (my-reassign-game-medius-world-idcallback basic :offset-assert 36) + (my-reassign-game-medius-world-idcallback-user-data basic :offset-assert 40) + (pf-system-message-callback basic :offset-assert 44) + (p-system-message-callback-data basic :offset-assert 48) + (application-id int32 :offset-assert 52) + (p-application-key-pair rsa-keypair :offset-assert 56) + (idf-compliance int32 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :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) + ) + :method-count-assert 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) + (my-binary-fwd-message-callback basic :offset-assert 8) + (my-binary-fwd-message-callback-user-data basic :offset-assert 12) + (my-add-to-buddy-list-fwd-confirmation-request-callback basic :offset-assert 16) + (my-add-to-buddy-list-fwd-confirmation-request-callback-user-data basic :offset-assert 20) + (my-error-message-callback basic :offset-assert 24) + (my-error-message-callback-user-data basic :offset-assert 28) + (my-reassign-game-medius-world-idcallback basic :offset-assert 32) + (my-reassign-game-medius-world-idcallback-user-data basic :offset-assert 36) + (idf-compliance int32 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :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) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype medius-file (structure) + ((filename UNKNOWN 128 :offset-assert 0) + (server-checksum UNKNOWN 16 :offset-assert 128) + (file-id uint32 :offset-assert 144) + (file-size uint32 :offset-assert 148) + (creation-time-stamp uint32 :offset-assert 152) + (owner-id uint32 :offset-assert 156) + (group-id uint32 :offset-assert 160) + (owner-permission-rwx uint16 :offset-assert 164) + (group-permission-rwx uint16 :offset-assert 166) + (global-permission-rwx uint16 :offset-assert 168) + (server-operation-id uint16 :offset-assert 170) + ) + :method-count-assert 9 + :size-assert #xac + :flag-assert #x9000000ac + ) +|# + +#| +(deftype medius-file-attributes (structure) + ((description UNKNOWN 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) + ) + :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) + ) + :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) + ) + :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) + ) + :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) + ) + :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) + ) + :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) + ) + :method-count-assert 9 + :size-assert #x25 + :flag-assert #x900000025 + ) +|# + +#| +(deftype medius-file-upload-response (structure) + ((data UNKNOWN 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) + ) + :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) + ) + :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) + ) + :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) + ) + :method-count-assert 9 + :size-assert #xc1 + :flag-assert #x9000000c1 + ) +|# + +#| +(deftype medius-file-download-response (structure) + ((data UNKNOWN 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) + ) + :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) + ) + :method-count-assert 9 + :size-assert #xc1 + :flag-assert #x9000000c1 + ) +|# + +#| +(deftype medius-file-download-stream-response (structure) + ((data UNKNOWN 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) + ) + :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) + ) + :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) + ) + :method-count-assert 9 + :size-assert #x19 + :flag-assert #x900000019 + ) +|# + +#| +(deftype medius-file-list-request (structure) + ((filename-begins-with UNKNOWN 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) + ) + :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) + (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) + ) + :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) + ) + :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) + ) + :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) + ) + :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) + ) + :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) + ) + :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) + ) + :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) + (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) + ) + :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) + (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) + ) + :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) + ) + :method-count-assert 9 + :size-assert #x19 + :flag-assert #x900000019 + ) +|# + +#| +(deftype medius-server-authentication-request (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (trust-level int32 :offset-assert 24) + (address-list net-address-list :inline :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype medius-server-authentication-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (confirmation int8 :offset-assert 21) + (connect-info net-connection-info :inline :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #xb2 + :flag-assert #x9000000b2 + ) +|# + +#| +(deftype medius-server-set-attributes-request (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (attributes int32 :offset-assert 24) + (listen-server-address net-address :inline :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype medius-server-set-attributes-response (structure) + ((message-id UNKNOWN 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) + (application-id int32 :offset-assert 376) + (max-clients int32 :offset-assert 380) + (min-clients int32 :offset-assert 384) + (game-level int32 :offset-assert 388) + (player-skill-level int32 :offset-assert 392) + (rules-set int32 :offset-assert 396) + (generic-field1 int32 :offset-assert 400) + (generic-field2 int32 :offset-assert 404) + (generic-field3 int32 :offset-assert 408) + (game-host-type int32 :offset-assert 412) + (address-list net-address-list :inline :offset-assert 416) + (world-id int32 :offset-assert 464) + (account-id int32 :offset-assert 468) + ) + :method-count-assert 9 + :size-assert #x1d8 + :flag-assert #x9000001d8 + ) +|# + +#| +(deftype medius-server-create-game-on-me-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (confirmation int8 :offset-assert 21) + (medius-world-id int32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype medius-server-create-game-request (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (application-id int32 :offset-assert 24) + (max-clients int32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype medius-server-create-game-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (confirmation int8 :offset-assert 21) + (world-id int32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype medius-server-create-game-with-attributes-request (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (application-id int32 :offset-assert 24) + (max-clients int32 :offset-assert 28) + (attributes int32 :offset-assert 32) + (medius-world-uid uint32 :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype medius-server-create-game-with-attributes-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (confirmation int8 :offset-assert 21) + (world-id int32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype medius-server-end-game-on-me-request (structure) + ((message-id UNKNOWN 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) + (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) + (world-id int32 :offset-assert 24) + (brutal-flag int8 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x1d + :flag-assert #x90000001d + ) +|# + +#| +(deftype medius-server-end-game-response (structure) + ((message-id UNKNOWN 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) + (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) + (confirmation int8 :offset-assert 21) + (access-key UNKNOWN 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) + (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) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype medius-server-move-game-world-on-me-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (confirmation int8 :offset-assert 21) + (medius-world-id int32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype medius-server-report-type (structure) + ((session-key UNKNOWN 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) + (total-active-players int16 :offset-assert 24) + (alert-level int32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype medius-server-session-begin-request (structure) + ((message-id UNKNOWN 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) + (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) + (confirmation int8 :offset-assert 21) + (connect-info net-connection-info :inline :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #xb2 + :flag-assert #x9000000b2 + ) +|# + +#| +(deftype medius-server-session-end-request (structure) + ((message-id UNKNOWN 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) + (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) + (application-id int32 :offset-assert 376) + (max-clients int32 :offset-assert 380) + (min-clients int32 :offset-assert 384) + (player-count int32 :offset-assert 388) + (game-level int32 :offset-assert 392) + (player-skill-level int32 :offset-assert 396) + (rules-set int32 :offset-assert 400) + (generic-field1 int32 :offset-assert 404) + (generic-field2 int32 :offset-assert 408) + (generic-field3 int32 :offset-assert 412) + (medius-world-id int32 :offset-assert 416) + (world-status int32 :offset-assert 420) + ) + :method-count-assert 9 + :size-assert #x1a8 + :flag-assert #x9000001a8 + ) +|# + +#| +(deftype medius-server-world-status-request (structure) + ((message-id UNKNOWN 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) + (application-id int32 :offset-assert 24) + (max-clients int32 :offset-assert 28) + (active-clients int32 :offset-assert 32) + (confirmation int8 :offset-assert 36) + ) + :method-count-assert 9 + :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) + (server-port int32 :offset-assert 44) + (game-world-id int32 :offset-assert 48) + (spectator-world-id int32 :offset-assert 52) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ) +|# + +#| +(deftype medius-server-connect-games-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (game-world-id int32 :offset-assert 24) + (spectator-world-id int32 :offset-assert 28) + (confirmation int8 :offset-assert 32) + ) + :method-count-assert 9 + :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) + ) + :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) + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype mgclconnect-out-params (structure) + ((error-code int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype mgcldisconnect-params (structure) + ((connection-handle basic :offset-assert 0) + (disconnect-reason int32 :offset-assert 4) + (my-disconnect-callback basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :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) + (my-server-create-game-callback basic :offset-assert 8) + (my-server-create-game-callback-user-data basic :offset-assert 12) + (my-server-create-game-with-attributes-callback basic :offset-assert 16) + (my-server-create-game-with-attributes-user-data basic :offset-assert 20) + (my-server-join-game-callback basic :offset-assert 24) + (my-server-join-game-callback-user-data basic :offset-assert 28) + (my-server-end-game-callback basic :offset-assert 32) + (my-server-end-game-callback-user-data basic :offset-assert 36) + (my-server-world-status-callback basic :offset-assert 40) + (my-server-world-status-callback-user-data basic :offset-assert 44) + (my-server-connect-games-callback basic :offset-assert 48) + (my-server-connect-games-user-data basic :offset-assert 52) + (max-clients-per-connection int32 :offset-assert 56) + (application-id int32 :offset-assert 60) + (p-application-key-pair rsa-keypair :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :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) + ) + :method-count-assert 9 + :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) + ) + :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) + (p-local-key-pair rsa-keypair :offset-assert 88) + (p-application-key-pair rsa-keypair :offset-assert 92) + (connectivity-type int32 :offset-assert 96) + (udp-bind-port int32 :offset-assert 100) + (upn-pmemory-ceiling int32 :offset-assert 104) + (b-enable-lanbroadcast-comms int32 :offset-assert 108) + (pf-system-message-callback basic :offset-assert 112) + (p-system-message-callback-data basic :offset-assert 116) + ) + :method-count-assert 9 + :size-assert #x78 + :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) + (p-local-connect-callback-data basic :offset-assert 8) + (pf-local-disconnect-callback basic :offset-assert 12) + (p-local-disconnect-callback-data basic :offset-assert 16) + (pf-remote-client-connect-callback basic :offset-assert 20) + (p-remote-client-connect-callback-data basic :offset-assert 24) + (pf-remote-client-disconnect-callback basic :offset-assert 28) + (p-remote-client-disconnect-callback-data basic :offset-assert 32) + (pf-system-status-callback basic :offset-assert 36) + (p-system-status-callback-data basic :offset-assert 40) + (max-clients uint32 :offset-assert 44) + (stream-media-params net-stream-media-params :inline :offset-assert 48) + (user-specified int32 :offset-assert 160) + (b-enab-disconnect-fwd int32 :offset-assert 164) + (token-params net-token-params :inline :offset-assert 168) + (b-use-time-base int32 :offset-assert 180) + (send-buffer-size uint32 :offset-assert 184) + (recv-buffer-size uint32 :offset-assert 188) + ) + :method-count-assert 9 + :size-assert #xc0 + :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) + (address-list net-address-list :inline :offset-assert 8) + ) + :method-count-assert 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) + (nat-service-address net-address :inline :offset-assert 8) + ) + :method-count-assert 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) + (pub-key rsa-key :inline :offset-assert 52) + ) + :method-count-assert 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) + (threshold-data anonymous-0 :inline :offset-assert 8) + (transport-flags int8 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #xd + :flag-assert #x90000000d + ) +|# + +#| +(deftype net-type-field (structure) + ((offset int32 :offset-assert 0) + (element-size int32 :offset-assert 4) + (element-count int32 :offset-assert 8) + (e-type int32 :offset-assert 12) + (update-schedule net-type-broadcast-schedule :inline :offset-assert 16) + ) + :method-count-assert 9 + :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) + ) + :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) + (peer-desc net-lanpeer-desc :inline :offset-assert 8) + (details net-data :inline :offset-assert 172) + (p-user-data basic :offset-assert 180) + ) + :method-count-assert 9 + :size-assert #xb8 + :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) + (session-type int32 :offset-assert 4) + (peer-desc net-lanpeer-desc :inline :offset-assert 8) + (details net-data :inline :offset-assert 172) + (p-user-data basic :offset-assert 180) + ) + :method-count-assert 9 + :size-assert #xb8 + :flag-assert #x9000000b8 + ;; field p-user-data uses ~A with a signed load. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; scert-funcs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *scert-function-id* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mem-buffer-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mem-buffer (structure) + ((base uint32 :offset-assert 0) + (ptr uint32 :offset-assert 4) + (limit uint32 :offset-assert 8) + (in-use basic :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-50 () none) ;; 50 + (mem-buffer-method-51 () none) ;; 51 + ) + ) +|# + +#| +(deftype level-bounding-box (structure) + ((bmin vector :inline :offset-assert 0) + (bsz vector :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x20 + :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 + ) + ) +|# + +;; (define-extern *level-bounding-box* object) +;; (define-extern *msg-buffers* object) +;; (define-extern alloc-msg-buffer function) +;; (define-extern free-msg-buffer function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(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) + ) + :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) + ) + :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-9 () none) ;; 9 + (net-mgr-method-10 () none) ;; 10 + (net-mgr-method-11 () none) ;; 11 + (net-mgr-method-12 () none) ;; 12 + (net-mgr-method-13 () none) ;; 13 + (net-mgr-method-14 () none) ;; 14 + (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 + ) + ) +|# + +#| +(deftype net-available-game-info (structure) + ((game-name UNKNOWN 64 :offset-assert 0) + (player-count uint8 :offset-assert 64) + (min-players uint8 :offset-assert 65) + (max-players uint8 :offset-assert 66) + (in-staging basic :offset-assert 68) + (event uint8 :offset-assert 72) + (location uint8 :offset-assert 73) + (task-node uint8 :offset-assert 74) + (generic-1 int32 :offset-assert 76) + (generic-2 int32 :offset-assert 80) + (generic-3 int32 :offset-assert 84) + (burn-version uint32 :offset-assert 76) + (lobby-world int32 :offset-assert 80) + (class-type int32 :offset-assert 84) + (clan-1 int32 :offset-assert 88) + (clan-2 int32 :offset-assert 92) + (skill-level int32 :offset-assert 96) + (avg-ping int32 :offset-assert 100) + ) + :method-count-assert 9 + :size-assert #x68 + :flag-assert #x900000068 + ) +|# + +#| +(deftype net-available-game (structure) + ((info net-available-game-info :inline :offset-assert 0) + (connect-info net-connection-info :inline :offset-assert 104) + (medius-world-id int32 :offset-assert 260) + (format-game-name UNKNOWN 64 :offset-assert 264) + ) + :method-count-assert 15 + :size-assert #x148 + :flag-assert #xf00000148 + (:methods + (net-available-game-method-9 () none) ;; 9 + (net-available-game-method-10 () none) ;; 10 + (net-available-game-method-11 () none) ;; 11 + (net-available-game-method-12 () none) ;; 12 + (net-available-game-method-13 () none) ;; 13 + (net-available-game-method-14 () none) ;; 14 + ) + ) +|# + +;; (define-extern *net-aux-msg-handlers* object) +;; (define-extern *net-mgr-startup-status* object) +;; (define-extern *net-mgr* object) +;; (define-extern *net-error* object) +;; (define-extern *medius-world-status* object) +;; (define-extern *dme-initted* object) +;; (define-extern *medius-initted* object) +;; (define-extern *mgcl-initted* object) +;; (define-extern encode-net-available-game-info function) +;; (define-extern decode-net-available-game-info function) +;; (define-extern *net-mgr-scratch* object) +;; (define-extern *net-available-game-ct* object) +;; (define-extern *net-available-games* object) +;; (define-extern *net-active-game* object) +;; (define-extern net-mgr-notify-connect function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; obj-list ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype list-link (structure) + ((prev list-link :offset-assert 0) + (next list-link :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype linked-list (structure) + ((head list-link :offset-assert 0) + (tail list-link :offset-assert 4) + ) + :method-count-assert 12 + :size-assert #x8 + :flag-assert #xc00000008 + (:methods + (linked-list-method-9 () none) ;; 9 + (linked-list-method-10 () none) ;; 10 + (linked-list-method-11 () none) ;; 11 + ) + ) +|# + +;; (define-extern fixup-relocated-link function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; process-nettable-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-process-class-info (structure) + ((msg-map basic :offset-assert 0) + (msg-count int32 :offset-assert 4) + (send-packet-count int32 :offset-assert 8) + (recv-packet-count int32 :offset-assert 12) + (send-byte-count int32 :offset-assert 16) + (recv-byte-count int32 :offset-assert 20) + (owner-type basic :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +;; (deftype net-process-id (uint16) +;; () +;; :flag-assert #x900000002 +;; ) + +#| +(deftype proximity-ownership-params (basic) + ((ownable-radius float :offset-assert 4) + (force-local basic :offset-assert 8) + (last-ownership-req-time int32 :offset-assert 12) + (min-ownership-req-delay int32 :offset-assert 16) + (consider-ai-players basic :offset-assert 20) + ) + :method-count-assert 10 + :size-assert #x18 + :flag-assert #xa00000018 + (:methods + (proximity-ownership-params-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype process-nettable (process) + ((owner-idx int8 :offset-assert 144) + (net-flags uint64 :offset-assert 152) + (desired-owner-idx int8 :offset-assert 160) + (net-id uint16 :offset-assert 162) + (jump-in-send-pending uint16 :offset-assert 164) + (prox basic :offset-assert 168) + (owner-link list-link :inline :offset-assert 172) + (active-link list-link :inline :offset-assert 180) + ) + :method-count-assert 42 + :size-assert #xbc + :flag-assert #x2a003000bc + (:methods + (process-nettable-method-9 () none) ;; 9 + (process-nettable-method-10 () none) ;; 10 + (process-nettable-method-11 () none) ;; 11 + (process-nettable-method-12 () none) ;; 12 + (process-nettable-method-13 () none) ;; 13 + (process-nettable-method-14 () none) ;; 14 + (process-nettable-method-15 () none) ;; 15 + (process-nettable-method-16 () none) ;; 16 + (process-nettable-method-17 () none) ;; 17 + (process-nettable-method-18 () none) ;; 18 + (process-nettable-method-19 () none) ;; 19 + (process-nettable-method-20 () none) ;; 20 + (process-nettable-method-21 () none) ;; 21 + (process-nettable-method-22 () none) ;; 22 + (process-nettable-method-23 () none) ;; 23 + (process-nettable-method-24 () none) ;; 24 + (process-nettable-method-25 () none) ;; 25 + (process-nettable-method-26 () none) ;; 26 + (process-nettable-method-27 () none) ;; 27 + (process-nettable-method-28 () none) ;; 28 + (process-nettable-method-29 () none) ;; 29 + (process-nettable-method-30 () none) ;; 30 + (process-nettable-method-31 () none) ;; 31 + (process-nettable-method-32 () none) ;; 32 + (process-nettable-method-33 () none) ;; 33 + (process-nettable-method-34 () none) ;; 34 + (process-nettable-method-35 () none) ;; 35 + (process-nettable-method-36 () none) ;; 36 + (process-nettable-method-37 () none) ;; 37 + (process-nettable-method-38 () none) ;; 38 + (process-nettable-method-39 () none) ;; 39 + (process-nettable-method-40 () none) ;; 40 + (process-nettable-method-41 () none) ;; 41 + ) + ) +|# + +;; (define-extern *net-process-class-count* object) +;; (define-extern *net-process-class-array* array) +;; (define-extern *net-process-class-names* object) +;; (define-extern net-process-class-register function) +;; (define-extern write-msg-map-rec function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype process-drawable (process-nettable) + ((root trsqv :offset-assert 188) ;; guessed by decompiler + (node-list cspace-array :offset-assert 192) ;; guessed by decompiler + (draw draw-control :offset-assert 196) ;; guessed by decompiler + (skel joint-control :offset-assert 200) ;; guessed by decompiler + (nav nav-control :offset-assert 204) ;; guessed by decompiler + (path path-control :offset-assert 208) ;; guessed by decompiler + (vol vol-control :offset-assert 212) ;; guessed by decompiler + (fact fact-info :offset-assert 216) ;; guessed by decompiler + (link actor-link-info :offset-assert 220) ;; guessed by decompiler + (part sparticle-launch-control :offset-assert 224) ;; guessed by decompiler + (sound ambient-sound :offset-assert 228) ;; guessed by decompiler + (rbody rigid-body-control :offset-assert 232) ;; guessed by decompiler + (state-flags state-flags :offset-assert 236) ;; guessed by decompiler + (state-time uint64 :offset-assert 240) ;; time-frame + ) + :method-count-assert 50 + :size-assert #xf8 + :flag-assert #x32007000f8 + (:methods + (process-drawable-method-42 () none) ;; 42 + (process-drawable-method-43 () none) ;; 43 + (process-drawable-method-44 () none) ;; 44 + (process-drawable-method-45 () none) ;; 45 + (process-drawable-method-46 () none) ;; 46 + (process-drawable-method-47 () none) ;; 47 + (process-drawable-method-48 () none) ;; 48 + (process-drawable-method-49 () none) ;; 49 + ) + (:states + process-drawable-art-error ;; associated process guessed by decompiler, old: (state string process-drawable) + process-drawable-idle ;; associated process guessed by decompiler, old: (state process-drawable) + ) + ) +|# + +#| +(deftype process-drawable-reserved (process-drawable) + () + :method-count-assert 248 + :size-assert #xf8 + :flag-assert #xf8007000f8 + (:methods + (process-drawable-reserved-method-50 () none) ;; 50 ;; (process-drawable-reserved-method-50 () none) + (process-drawable-reserved-method-51 () none) ;; 51 ;; (process-drawable-reserved-method-51 () none) + (process-drawable-reserved-method-52 () none) ;; 52 ;; (process-drawable-reserved-method-52 () none) + (process-drawable-reserved-method-53 () none) ;; 53 ;; (process-drawable-reserved-method-53 () none) + (process-drawable-reserved-method-54 () none) ;; 54 ;; (process-drawable-reserved-method-54 () none) + (process-drawable-reserved-method-55 () none) ;; 55 ;; (process-drawable-reserved-method-55 () none) + (process-drawable-reserved-method-56 () none) ;; 56 ;; (process-drawable-reserved-method-56 () none) + (process-drawable-reserved-method-57 () none) ;; 57 ;; (process-drawable-reserved-method-57 () none) + (process-drawable-reserved-method-58 () none) ;; 58 ;; (process-drawable-reserved-method-58 () none) + (process-drawable-reserved-method-59 () none) ;; 59 ;; (process-drawable-reserved-method-59 () none) + (process-drawable-reserved-method-60 () none) ;; 60 ;; (process-drawable-reserved-method-60 () none) + (process-drawable-reserved-method-61 () none) ;; 61 ;; (process-drawable-reserved-method-61 () none) + (process-drawable-reserved-method-62 () none) ;; 62 ;; (process-drawable-reserved-method-62 () none) + (process-drawable-reserved-method-63 () none) ;; 63 ;; (process-drawable-reserved-method-63 () none) + (process-drawable-reserved-method-64 () none) ;; 64 ;; (process-drawable-reserved-method-64 () none) + (process-drawable-reserved-method-65 () none) ;; 65 ;; (process-drawable-reserved-method-65 () none) + (process-drawable-reserved-method-66 () none) ;; 66 ;; (process-drawable-reserved-method-66 () none) + (process-drawable-reserved-method-67 () none) ;; 67 ;; (process-drawable-reserved-method-67 () none) + (process-drawable-reserved-method-68 () none) ;; 68 ;; (process-drawable-reserved-method-68 () none) + (process-drawable-reserved-method-69 () none) ;; 69 ;; (process-drawable-reserved-method-69 () none) + (process-drawable-reserved-method-70 () none) ;; 70 ;; (process-drawable-reserved-method-70 () none) + (process-drawable-reserved-method-71 () none) ;; 71 ;; (process-drawable-reserved-method-71 () none) + (process-drawable-reserved-method-72 () none) ;; 72 ;; (process-drawable-reserved-method-72 () none) + (process-drawable-reserved-method-73 () none) ;; 73 ;; (process-drawable-reserved-method-73 () none) + (process-drawable-reserved-method-74 () none) ;; 74 ;; (process-drawable-reserved-method-74 () none) + (process-drawable-reserved-method-75 () none) ;; 75 ;; (process-drawable-reserved-method-75 () none) + (process-drawable-reserved-method-76 () none) ;; 76 ;; (process-drawable-reserved-method-76 () none) + (process-drawable-reserved-method-77 () none) ;; 77 ;; (process-drawable-reserved-method-77 () none) + (process-drawable-reserved-method-78 () none) ;; 78 ;; (process-drawable-reserved-method-78 () none) + (process-drawable-reserved-method-79 () none) ;; 79 ;; (process-drawable-reserved-method-79 () none) + (process-drawable-reserved-method-80 () none) ;; 80 ;; (process-drawable-reserved-method-80 () none) + (process-drawable-reserved-method-81 () none) ;; 81 ;; (process-drawable-reserved-method-81 () none) + (process-drawable-reserved-method-82 () none) ;; 82 ;; (process-drawable-reserved-method-82 () none) + (process-drawable-reserved-method-83 () none) ;; 83 ;; (process-drawable-reserved-method-83 () none) + (process-drawable-reserved-method-84 () none) ;; 84 ;; (process-drawable-reserved-method-84 () none) + (process-drawable-reserved-method-85 () none) ;; 85 ;; (process-drawable-reserved-method-85 () none) + (process-drawable-reserved-method-86 () none) ;; 86 ;; (process-drawable-reserved-method-86 () none) + (process-drawable-reserved-method-87 () none) ;; 87 ;; (process-drawable-reserved-method-87 () none) + (process-drawable-reserved-method-88 () none) ;; 88 ;; (process-drawable-reserved-method-88 () none) + (process-drawable-reserved-method-89 () none) ;; 89 ;; (process-drawable-reserved-method-89 () none) + (process-drawable-reserved-method-90 () none) ;; 90 ;; (process-drawable-reserved-method-90 () none) + (process-drawable-reserved-method-91 () none) ;; 91 ;; (process-drawable-reserved-method-91 () none) + (process-drawable-reserved-method-92 () none) ;; 92 ;; (process-drawable-reserved-method-92 () none) + (process-drawable-reserved-method-93 () none) ;; 93 ;; (process-drawable-reserved-method-93 () none) + (process-drawable-reserved-method-94 () none) ;; 94 ;; (process-drawable-reserved-method-94 () none) + (process-drawable-reserved-method-95 () none) ;; 95 ;; (process-drawable-reserved-method-95 () none) + (process-drawable-reserved-method-96 () none) ;; 96 ;; (process-drawable-reserved-method-96 () none) + (process-drawable-reserved-method-97 () none) ;; 97 ;; (process-drawable-reserved-method-97 () none) + (process-drawable-reserved-method-98 () none) ;; 98 ;; (process-drawable-reserved-method-98 () none) + (process-drawable-reserved-method-99 () none) ;; 99 ;; (process-drawable-reserved-method-99 () none) + (process-drawable-reserved-method-100 () none) ;; 100 ;; (process-drawable-reserved-method-100 () none) + (process-drawable-reserved-method-101 () none) ;; 101 ;; (process-drawable-reserved-method-101 () none) + (process-drawable-reserved-method-102 () none) ;; 102 ;; (process-drawable-reserved-method-102 () none) + (process-drawable-reserved-method-103 () none) ;; 103 ;; (process-drawable-reserved-method-103 () none) + (process-drawable-reserved-method-104 () none) ;; 104 ;; (process-drawable-reserved-method-104 () none) + (process-drawable-reserved-method-105 () none) ;; 105 ;; (process-drawable-reserved-method-105 () none) + (process-drawable-reserved-method-106 () none) ;; 106 ;; (process-drawable-reserved-method-106 () none) + (process-drawable-reserved-method-107 () none) ;; 107 ;; (process-drawable-reserved-method-107 () none) + (process-drawable-reserved-method-108 () none) ;; 108 ;; (process-drawable-reserved-method-108 () none) + (process-drawable-reserved-method-109 () none) ;; 109 ;; (process-drawable-reserved-method-109 () none) + (process-drawable-reserved-method-110 () none) ;; 110 ;; (process-drawable-reserved-method-110 () none) + (process-drawable-reserved-method-111 () none) ;; 111 ;; (process-drawable-reserved-method-111 () none) + (process-drawable-reserved-method-112 () none) ;; 112 ;; (process-drawable-reserved-method-112 () none) + (process-drawable-reserved-method-113 () none) ;; 113 ;; (process-drawable-reserved-method-113 () none) + (process-drawable-reserved-method-114 () none) ;; 114 ;; (process-drawable-reserved-method-114 () none) + (process-drawable-reserved-method-115 () none) ;; 115 ;; (process-drawable-reserved-method-115 () none) + (process-drawable-reserved-method-116 () none) ;; 116 ;; (process-drawable-reserved-method-116 () none) + (process-drawable-reserved-method-117 () none) ;; 117 ;; (process-drawable-reserved-method-117 () none) + (process-drawable-reserved-method-118 () none) ;; 118 ;; (process-drawable-reserved-method-118 () none) + (process-drawable-reserved-method-119 () none) ;; 119 ;; (process-drawable-reserved-method-119 () none) + (process-drawable-reserved-method-120 () none) ;; 120 ;; (process-drawable-reserved-method-120 () none) + (process-drawable-reserved-method-121 () none) ;; 121 ;; (process-drawable-reserved-method-121 () none) + (process-drawable-reserved-method-122 () none) ;; 122 ;; (process-drawable-reserved-method-122 () none) + (process-drawable-reserved-method-123 () none) ;; 123 ;; (process-drawable-reserved-method-123 () none) + (process-drawable-reserved-method-124 () none) ;; 124 ;; (process-drawable-reserved-method-124 () none) + (process-drawable-reserved-method-125 () none) ;; 125 ;; (process-drawable-reserved-method-125 () none) + (process-drawable-reserved-method-126 () none) ;; 126 ;; (process-drawable-reserved-method-126 () none) + (process-drawable-reserved-method-127 () none) ;; 127 ;; (process-drawable-reserved-method-127 () none) + (process-drawable-reserved-method-128 () none) ;; 128 ;; (process-drawable-reserved-method-128 () none) + (process-drawable-reserved-method-129 () none) ;; 129 ;; (process-drawable-reserved-method-129 () none) + (process-drawable-reserved-method-130 () none) ;; 130 ;; (process-drawable-reserved-method-130 () none) + (process-drawable-reserved-method-131 () none) ;; 131 ;; (process-drawable-reserved-method-131 () none) + (process-drawable-reserved-method-132 () none) ;; 132 ;; (process-drawable-reserved-method-132 () none) + (process-drawable-reserved-method-133 () none) ;; 133 ;; (process-drawable-reserved-method-133 () none) + (process-drawable-reserved-method-134 () none) ;; 134 ;; (process-drawable-reserved-method-134 () none) + (process-drawable-reserved-method-135 () none) ;; 135 ;; (process-drawable-reserved-method-135 () none) + (process-drawable-reserved-method-136 () none) ;; 136 ;; (process-drawable-reserved-method-136 () none) + (process-drawable-reserved-method-137 () none) ;; 137 ;; (process-drawable-reserved-method-137 () none) + (process-drawable-reserved-method-138 () none) ;; 138 ;; (process-drawable-reserved-method-138 () none) + (process-drawable-reserved-method-139 () none) ;; 139 ;; (process-drawable-reserved-method-139 () none) + (process-drawable-reserved-method-140 () none) ;; 140 ;; (process-drawable-reserved-method-140 () none) + (process-drawable-reserved-method-141 () none) ;; 141 ;; (process-drawable-reserved-method-141 () none) + (process-drawable-reserved-method-142 () none) ;; 142 ;; (process-drawable-reserved-method-142 () none) + (process-drawable-reserved-method-143 () none) ;; 143 ;; (process-drawable-reserved-method-143 () none) + (process-drawable-reserved-method-144 () none) ;; 144 ;; (process-drawable-reserved-method-144 () none) + (process-drawable-reserved-method-145 () none) ;; 145 ;; (process-drawable-reserved-method-145 () none) + (process-drawable-reserved-method-146 () none) ;; 146 ;; (process-drawable-reserved-method-146 () none) + (process-drawable-reserved-method-147 () none) ;; 147 ;; (process-drawable-reserved-method-147 () none) + (process-drawable-reserved-method-148 () none) ;; 148 ;; (process-drawable-reserved-method-148 () none) + (process-drawable-reserved-method-149 () none) ;; 149 ;; (process-drawable-reserved-method-149 () none) + (process-drawable-reserved-method-150 () none) ;; 150 ;; (process-drawable-reserved-method-150 () none) + (process-drawable-reserved-method-151 () none) ;; 151 ;; (process-drawable-reserved-method-151 () none) + (process-drawable-reserved-method-152 () none) ;; 152 ;; (process-drawable-reserved-method-152 () none) + (process-drawable-reserved-method-153 () none) ;; 153 ;; (process-drawable-reserved-method-153 () none) + (process-drawable-reserved-method-154 () none) ;; 154 ;; (process-drawable-reserved-method-154 () none) + (process-drawable-reserved-method-155 () none) ;; 155 ;; (process-drawable-reserved-method-155 () none) + (process-drawable-reserved-method-156 () none) ;; 156 ;; (process-drawable-reserved-method-156 () none) + (process-drawable-reserved-method-157 () none) ;; 157 ;; (process-drawable-reserved-method-157 () none) + (process-drawable-reserved-method-158 () none) ;; 158 ;; (process-drawable-reserved-method-158 () none) + (process-drawable-reserved-method-159 () none) ;; 159 ;; (process-drawable-reserved-method-159 () none) + (process-drawable-reserved-method-160 () none) ;; 160 ;; (process-drawable-reserved-method-160 () none) + (process-drawable-reserved-method-161 () none) ;; 161 ;; (process-drawable-reserved-method-161 () none) + (process-drawable-reserved-method-162 () none) ;; 162 ;; (process-drawable-reserved-method-162 () none) + (process-drawable-reserved-method-163 () none) ;; 163 ;; (process-drawable-reserved-method-163 () none) + (process-drawable-reserved-method-164 () none) ;; 164 ;; (process-drawable-reserved-method-164 () none) + (process-drawable-reserved-method-165 () none) ;; 165 ;; (process-drawable-reserved-method-165 () none) + (process-drawable-reserved-method-166 () none) ;; 166 ;; (process-drawable-reserved-method-166 () none) + (process-drawable-reserved-method-167 () none) ;; 167 ;; (process-drawable-reserved-method-167 () none) + (process-drawable-reserved-method-168 () none) ;; 168 ;; (process-drawable-reserved-method-168 () none) + (process-drawable-reserved-method-169 () none) ;; 169 ;; (process-drawable-reserved-method-169 () none) + (process-drawable-reserved-method-170 () none) ;; 170 ;; (process-drawable-reserved-method-170 () none) + (process-drawable-reserved-method-171 () none) ;; 171 ;; (process-drawable-reserved-method-171 () none) + (process-drawable-reserved-method-172 () none) ;; 172 ;; (process-drawable-reserved-method-172 () none) + (process-drawable-reserved-method-173 () none) ;; 173 ;; (process-drawable-reserved-method-173 () none) + (process-drawable-reserved-method-174 () none) ;; 174 ;; (process-drawable-reserved-method-174 () none) + (process-drawable-reserved-method-175 () none) ;; 175 ;; (process-drawable-reserved-method-175 () none) + (process-drawable-reserved-method-176 () none) ;; 176 ;; (process-drawable-reserved-method-176 () none) + (process-drawable-reserved-method-177 () none) ;; 177 ;; (process-drawable-reserved-method-177 () none) + (process-drawable-reserved-method-178 () none) ;; 178 ;; (process-drawable-reserved-method-178 () none) + (process-drawable-reserved-method-179 () none) ;; 179 ;; (process-drawable-reserved-method-179 () none) + (process-drawable-reserved-method-180 () none) ;; 180 ;; (process-drawable-reserved-method-180 () none) + (process-drawable-reserved-method-181 () none) ;; 181 ;; (process-drawable-reserved-method-181 () none) + (process-drawable-reserved-method-182 () none) ;; 182 ;; (process-drawable-reserved-method-182 () none) + (process-drawable-reserved-method-183 () none) ;; 183 ;; (process-drawable-reserved-method-183 () none) + (process-drawable-reserved-method-184 () none) ;; 184 ;; (process-drawable-reserved-method-184 () none) + (process-drawable-reserved-method-185 () none) ;; 185 ;; (process-drawable-reserved-method-185 () none) + (process-drawable-reserved-method-186 () none) ;; 186 ;; (process-drawable-reserved-method-186 () none) + (process-drawable-reserved-method-187 () none) ;; 187 ;; (process-drawable-reserved-method-187 () none) + (process-drawable-reserved-method-188 () none) ;; 188 ;; (process-drawable-reserved-method-188 () none) + (process-drawable-reserved-method-189 () none) ;; 189 ;; (process-drawable-reserved-method-189 () none) + (process-drawable-reserved-method-190 () none) ;; 190 ;; (process-drawable-reserved-method-190 () none) + (process-drawable-reserved-method-191 () none) ;; 191 ;; (process-drawable-reserved-method-191 () none) + (process-drawable-reserved-method-192 () none) ;; 192 ;; (process-drawable-reserved-method-192 () none) + (process-drawable-reserved-method-193 () none) ;; 193 ;; (process-drawable-reserved-method-193 () none) + (process-drawable-reserved-method-194 () none) ;; 194 ;; (process-drawable-reserved-method-194 () none) + (process-drawable-reserved-method-195 () none) ;; 195 ;; (process-drawable-reserved-method-195 () none) + (process-drawable-reserved-method-196 () none) ;; 196 ;; (process-drawable-reserved-method-196 () none) + (process-drawable-reserved-method-197 () none) ;; 197 ;; (process-drawable-reserved-method-197 () none) + (process-drawable-reserved-method-198 () none) ;; 198 ;; (process-drawable-reserved-method-198 () none) + (process-drawable-reserved-method-199 () none) ;; 199 ;; (process-drawable-reserved-method-199 () none) + (process-drawable-reserved-method-200 () none) ;; 200 ;; (process-drawable-reserved-method-200 () none) + (process-drawable-reserved-method-201 () none) ;; 201 ;; (process-drawable-reserved-method-201 () none) + (process-drawable-reserved-method-202 () none) ;; 202 ;; (process-drawable-reserved-method-202 () none) + (process-drawable-reserved-method-203 () none) ;; 203 ;; (process-drawable-reserved-method-203 () none) + (process-drawable-reserved-method-204 () none) ;; 204 ;; (process-drawable-reserved-method-204 () none) + (process-drawable-reserved-method-205 () none) ;; 205 ;; (process-drawable-reserved-method-205 () none) + (process-drawable-reserved-method-206 () none) ;; 206 ;; (process-drawable-reserved-method-206 () none) + (process-drawable-reserved-method-207 () none) ;; 207 ;; (process-drawable-reserved-method-207 () none) + (process-drawable-reserved-method-208 () none) ;; 208 ;; (process-drawable-reserved-method-208 () none) + (process-drawable-reserved-method-209 () none) ;; 209 ;; (process-drawable-reserved-method-209 () none) + (process-drawable-reserved-method-210 () none) ;; 210 ;; (process-drawable-reserved-method-210 () none) + (process-drawable-reserved-method-211 () none) ;; 211 ;; (process-drawable-reserved-method-211 () none) + (process-drawable-reserved-method-212 () none) ;; 212 ;; (process-drawable-reserved-method-212 () none) + (process-drawable-reserved-method-213 () none) ;; 213 ;; (process-drawable-reserved-method-213 () none) + (process-drawable-reserved-method-214 () none) ;; 214 ;; (process-drawable-reserved-method-214 () none) + (process-drawable-reserved-method-215 () none) ;; 215 ;; (process-drawable-reserved-method-215 () none) + (process-drawable-reserved-method-216 () none) ;; 216 ;; (process-drawable-reserved-method-216 () none) + (process-drawable-reserved-method-217 () none) ;; 217 ;; (process-drawable-reserved-method-217 () none) + (process-drawable-reserved-method-218 () none) ;; 218 + (process-drawable-reserved-method-219 () none) ;; 219 + (process-drawable-reserved-method-220 () none) ;; 220 + (process-drawable-reserved-method-221 () none) ;; 221 + (process-drawable-reserved-method-222 () none) ;; 222 + (process-drawable-reserved-method-223 () none) ;; 223 + (process-drawable-reserved-method-224 () none) ;; 224 + (process-drawable-reserved-method-225 () none) ;; 225 + (process-drawable-reserved-method-226 () none) ;; 226 + (process-drawable-reserved-method-227 () none) ;; 227 + (process-drawable-reserved-method-228 () none) ;; 228 + (process-drawable-reserved-method-229 () none) ;; 229 + (process-drawable-reserved-method-230 () none) ;; 230 + (process-drawable-reserved-method-231 () none) ;; 231 + (process-drawable-reserved-method-232 () none) ;; 232 + (process-drawable-reserved-method-233 () none) ;; 233 + (process-drawable-reserved-method-234 () none) ;; 234 + (process-drawable-reserved-method-235 () none) ;; 235 + (process-drawable-reserved-method-236 () none) ;; 236 + (process-drawable-reserved-method-237 () none) ;; 237 + (process-drawable-reserved-method-238 () none) ;; 238 + (process-drawable-reserved-method-239 () none) ;; 239 + (process-drawable-reserved-method-240 () none) ;; 240 + (process-drawable-reserved-method-241 () none) ;; 241 + (process-drawable-reserved-method-242 () none) ;; 242 + (process-drawable-reserved-method-243 () none) ;; 243 + (process-drawable-reserved-method-244 () none) ;; 244 + (process-drawable-reserved-method-245 () none) ;; 245 + (process-drawable-reserved-method-246 () none) ;; 246 + (process-drawable-reserved-method-247 () none) ;; 247 + ) + ) +|# + +#| +(deftype attack-dir-info (structure) + ((dir vector :inline :offset-assert 0) + (xz-dir vector :inline :offset-assert 16) + (attacker-velocity vector :inline :offset-assert 32) + (pos vector :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype attack-info (structure) + ((trans vector :inline :offset-assert 0) + (vector vector :inline :offset-assert 16) + (attacker-velocity vector :inline :offset-assert 32) + (intersection vector :inline :offset-assert 48) + (attacker handle :offset-assert 64) + (attack-time uint64 :offset-assert 72) ;; time-frame + (invinc-time uint64 :offset-assert 80) ;; time-frame + (mask attack-info-mask :offset-assert 88) ;; attack-mask + (mode symbol :offset-assert 92) ;; guessed by decompiler + (shove-back meters :offset-assert 96) + (shove-up meters :offset-assert 100) + (speed meters :offset-assert 104) + (dist meters :offset-assert 108) + (control float :offset-assert 112) + (angle symbol :offset-assert 116) ;; guessed by decompiler + (rotate-to deg :offset-assert 120) ;; degrees + (prev-state state :offset-assert 124) ;; guessed by decompiler + (id uint32 :offset-assert 128) + (wpn-type uint8 :offset-assert 132) + (penetrate-using uint64 :offset-assert 136) ;; penetrate + (damage float :offset-assert 144) + (shield-damage float :offset-assert 148) + (vehicle-damage-factor float :offset-assert 152) + (vehicle-impulse-factor float :offset-assert 156) + (knock uint8 :offset-assert 160) ;; knocked-type + (test symbol :offset-assert 164) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #xa8 + :flag-assert #xa000000a8 + ;; field handle is likely a value type. + (:methods + (attack-info-method-9 () none) ;; 9 ;; (attack-info-method-9 (_type_ attack-info process-drawable process-drawable) none) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; script-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype script-form (structure) + ((name symbol :offset-assert 0) ;; guessed by decompiler + (spec pair :offset-assert 4) ;; guessed by decompiler + (func (function script-context object) :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #xc + :flag-assert #xa0000000c + (:methods + (script-form-method-9 () none) ;; 9 ;; (script-form-method-9 () none) + ) + ) +|# + +#| +(deftype script-context (structure) + ((load-state load-state :offset-assert 0) ;; guessed by decompiler + (key object :offset-assert 4) ;; guessed by decompiler + (process process :offset-assert 8) ;; guessed by decompiler + (trans vector :offset-assert 12) + (side-effect? symbol :offset-assert 16) ;; guessed by decompiler + (got-error? symbol :offset-assert 20) ;; guessed by decompiler + (expr pair :offset-assert 24) ;; guessed by decompiler + (param-count int32 :offset-assert 28) + (param object 16 :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (param-type object 16 :offset-assert 96) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 12 + :size-assert #xa0 + :flag-assert #xc000000a0 + ;; field key uses ~A with a signed load. field expr uses ~A with a signed load. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type object process vector) _type_) + (script-context-method-9 () none) ;; 9 ;; (eval! (_type_ pair) object) + (script-context-method-10 () none) ;; 10 ;; (script-context-method-10 (_type_ object pair) object) + (script-context-method-11 () none) ;; 11 ;; (script-context-method-11 (_type_ pair pair symbol) symbol) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; scene-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype scene-actor (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (level symbol :offset-assert 8) ;; guessed by decompiler + (art-group string :offset-assert 12) ;; guessed by decompiler + (prefix string :offset-assert 16) ;; guessed by decompiler + (draw-frames pair :offset-assert 20) ;; guessed by decompiler + (scissor-frames pair :offset-assert 24) ;; guessed by decompiler + (shadow-frames pair :offset-assert 28) ;; guessed by decompiler + (cloth-reset-frames pair :offset-assert 32) ;; guessed by decompiler + (cloth-commands pair :offset-assert 36) ;; guessed by decompiler + (camera int16 :offset-assert 40) + (light-index uint8 :offset-assert 42) + (shadow-mask uint8 :offset-assert 43) + (shadow-values uint32 :offset-assert 44) + (flags uint32 :offset-assert 48) + (command-list pair :offset-assert 52) ;; guessed by decompiler + (shadow-flags int32 :offset-assert 56) + (shadow-volume-joint basic :offset-assert 60) + (draw-seg uint64 :offset-assert 64) + (no-draw-seg uint64 :offset-assert 72) + (last-frame float :offset-assert 80) + (process uint64 :offset-assert 88) ;; handle + ) + :method-count-assert 10 + :size-assert #x60 + :flag-assert #xa00000060 + (:methods + (scene-actor-method-9 () none) ;; 9 ;; (setup-manipy-for-scene! (_type_ scene-player) (pointer process)) + ) + ) +|# + +#| +(deftype scene (art-group) + ((name string :offset-assert 8) ;; guessed by decompiler + (length int32 :offset-assert 12) + (extra res-lump :offset-assert 16) ;; guessed by decompiler + (info file-info :offset-assert 4) ;; guessed by decompiler + (data art-element :dynamic :offset-assert 32) ;; guessed by decompiler + (scene-flags scene-flags :offset-assert 32) ;; guessed by decompiler + (mask-to-clear process-mask :offset-assert 36) ;; guessed by decompiler + (entity string :offset-assert 40) ;; guessed by decompiler + (art-group string :offset-assert 44) ;; guessed by decompiler + (anim string :offset-assert 48) ;; guessed by decompiler + (parts int32 :offset-assert 52) + (command-list pair :offset-assert 56) ;; guessed by decompiler + (cut-list pair :offset-assert 60) ;; guessed by decompiler + (wait-max-time uint64 :offset-assert 64) ;; time-frame + (wait-air-time uint64 :offset-assert 72) ;; time-frame + (wait-ground-time uint64 :offset-assert 80) ;; time-frame + (actor (array scene-actor) :offset-assert 88) ;; guessed by decompiler + (load-point basic :offset-assert 92) + (end-point basic :offset-assert 96) + (borrow pair :offset-assert 100) ;; guessed by decompiler + (sfx-volume float :offset-assert 104) + (ambient-volume float :offset-assert 108) + (music-volume float :offset-assert 112) + (music-delay float :offset-assert 116) + (scene-task uint16 :offset-assert 120) + (on-running pair :offset-assert 124) ;; guessed by decompiler + (on-complete pair :offset-assert 128) ;; guessed by decompiler + (vehicles basic :offset-assert 132) + (ipu basic :offset-assert 136) + ) + :method-count-assert 18 + :size-assert #x8c + :flag-assert #x120000008c + ;; field on-running uses ~A with a signed load. field on-complete uses ~A with a signed load. + (:methods + (scene-method-16 () none) ;; 16 ;; (init-spool-by-scene! (_type_ spool-anim) spool-anim) + (scene-method-17 () none) ;; 17 ;; (load-scene (_type_) scene) + ) + ) +|# + +#| +(deftype scene-player (process-drawable) + ((scene-list (array scene) :offset-assert 248) ;; guessed by decompiler + (scene scene :offset-assert 252) ;; guessed by decompiler + (scene-index int32 :offset-assert 256) + (anim spool-anim :offset-assert 260) ;; guessed by decompiler + (next-anim spool-anim :offset-assert 264) ;; guessed by decompiler + (camera uint64 :offset-assert 272) ;; handle + (main-entity entity-actor :offset-assert 280) ;; guessed by decompiler + (wait symbol :offset-assert 284) ;; guessed by decompiler + (old-target-pos transformq :inline :offset-assert 288) + (pre-cut-frame basic :offset-assert 336) + (preload-continue string :offset-assert 340) ;; guessed by decompiler + (preload-sound basic :offset-assert 344) + (dma-max uint32 :offset-assert 348) + (gui-id sound-id :offset-assert 352) ;; guessed by decompiler + (aborted? symbol :offset-assert 356) ;; guessed by decompiler + (scene-start-time uint64 :offset-assert 360) ;; time-frame + (targ-speed float :offset-assert 368) + (cur-speed float :offset-assert 372) + (speed-change-time uint64 :offset-assert 376) ;; time-frame + (speed-press-time uint64 :offset-assert 384) ;; time-frame + (speed-change-speed float :offset-assert 392) + (subtitle-change-time uint64 :offset-assert 400) ;; time-frame + (user-sound sound-id 4 :offset-assert 408) ;; guessed by decompiler + (last-frame float :offset-assert 424) + (end-point basic :offset-assert 428) + (blackout-end basic :offset-assert 432) + (new-trans-hook (function none) :offset-assert 436) ;; guessed by decompiler + (cur-trans-hook (function none) :offset-assert 440) ;; guessed by decompiler + (user-data uint64 :offset-assert 448) + ) + :method-count-assert 56 + :size-assert #x1c8 + :flag-assert #x38014001c8 + ;; field user-data uses ~A with a 64-bit load. + (:methods + (scene-player-method-50 () none) ;; 50 + (scene-player-method-51 () none) ;; 51 + (scene-player-method-52 () none) ;; 52 + (scene-player-method-53 () none) ;; 53 + (scene-player-method-54 () none) ;; 54 + (scene-player-method-55 () none) ;; 55 + ) + ) +|# + +;; (define-extern *scene-player* object) ;; (pointer scene-player) +;; (define-extern *debug-menu-scene-play* object) ;; object + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pov-camera-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pov-camera (process-drawable) + ((flags int32 :offset-assert 248) ;; pov-camera-flag + (debounce-start-time uint64 :offset-assert 256) ;; time-frame + (notify-handle uint64 :offset-assert 264) ;; handle + (anim-name string :offset-assert 272) ;; guessed by decompiler + (command-list pair :offset-assert 276) ;; guessed by decompiler + (mask-to-clear process-mask :offset-assert 280) ;; guessed by decompiler + (music-volume-movie float :offset-assert 284) + (sfx-volume-movie float :offset-assert 288) + ) + :method-count-assert 60 + :size-assert #x124 + :flag-assert #x3c00a00124 + (:methods + (pov-camera-method-50 () none) ;; 50 + (pov-camera-method-51 () none) ;; 51 + (pov-camera-method-52 () none) ;; 52 + (pov-camera-method-53 () none) ;; 53 + (pov-camera-method-54 () none) ;; 54 + (pov-camera-method-55 () none) ;; 55 + (pov-camera-method-56 () none) ;; 56 + (pov-camera-method-57 () none) ;; 57 + (pov-camera-method-58 () none) ;; 58 + (pov-camera-method-59 () none) ;; 59 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; smush-control-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype smush-control (structure) + ((start-time uint64 :offset-assert 0) ;; time-frame + (period float :offset-assert 8) + (duration float :offset-assert 12) + (amp float :offset-assert 16) + (damp-amp float :offset-assert 20) + (damp-period float :offset-assert 24) + (ticks float :offset-assert 28) + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + (:methods + (smush-control-method-9 () none) ;; 9 ;; (set-zero! (_type_) _type_) + (smush-control-method-10 () none) ;; 10 ;; (update! (_type_) float) + (smush-control-method-11 () none) ;; 11 ;; (get-no-update (_type_) float) + (smush-control-method-12 () none) ;; 12 ;; (activate! (_type_ float int int float float clock) _type_) + (smush-control-method-13 () none) ;; 13 ;; (nonzero-amplitude? (_type_) symbol) + (smush-control-method-14 () none) ;; 14 ;; (die-on-next-update! (_type_) _type_) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debug-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pos-history (structure) + ((points (inline-array vector) :offset-assert 0) ;; guessed by decompiler + (num-points int32 :offset-assert 4) + (h-first int32 :offset-assert 8) + (h-last int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype debug-vertex (structure) + ((trans vector4w :inline :offset-assert 0) + (normal vector3h :inline :offset-assert 16) + (st vector2h :inline :offset-assert 22) + (color uint32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype debug-vertex-stats (basic) + ((length int32 :offset-assert 4) + (pos-count int32 :offset-assert 8) + (vertex debug-vertex 600 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4b10 + :flag-assert #x900004b10 + ) +|# + +#| +(deftype stack-debug (structure) + ((r29 uint128 :offset-assert 0) + (r31 uint128 :offset-assert 16) + (test-count int32 :offset-assert 32) + (visit int32 :offset-assert 36) + (obj basic :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ;; field obj uses ~A with a signed load. + ) +|# + +;; (define-extern *color-black* object) ;; rgba +;; (define-extern *color-white* object) ;; rgba +;; (define-extern *color-gray* object) ;; rgba +;; (define-extern *color-red* object) ;; rgba +;; (define-extern *color-green* object) ;; rgba +;; (define-extern *color-blue* object) ;; rgba +;; (define-extern *color-cyan* object) ;; rgba +;; (define-extern *color-magenta* object) ;; rgba +;; (define-extern *color-yellow* object) ;; rgba +;; (define-extern *color-purple* object) +;; (define-extern *color-light-gray* object) +;; (define-extern *color-light-red* object) ;; rgba +;; (define-extern *color-light-green* object) ;; rgba +;; (define-extern *color-light-blue* object) ;; rgba +;; (define-extern *color-light-cyan* object) ;; rgba +;; (define-extern *color-light-magenta* object) ;; rgba +;; (define-extern *color-light-yellow* object) ;; rgba +;; (define-extern *color-dark-red* object) ;; rgba +;; (define-extern *color-dark-green* object) ;; rgba +;; (define-extern *color-dark-blue* object) ;; rgba +;; (define-extern *color-dark-cyan* object) ;; rgba +;; (define-extern *color-dark-magenta* object) ;; rgba +;; (define-extern *color-dark-yellow* object) ;; rgba +;; (define-extern *color-orange* object) ;; rgba +;; (define-extern draw-debug-text-3d function) +;; (define-extern draw-debug-x function) +;; (define-extern draw-debug-line function) +;; (define-extern draw-debug-vector function) +;; (define-extern draw-debug-flat-triangle function) +;; (define-extern draw-debug-sphere function) +;; (define-extern draw-debug-matrix function) +;; (define-extern draw-debug-box-with-transform function) +;; (define-extern draw-debug-line-sphere function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; joint-mod-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype joint-mod (basic) + ((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 deg :offset-assert 40) ;; degrees + (track-mode track-mode :offset-assert 44) + (look-at-count uint16 :offset-assert 46) + (twist-range-x meters :offset-assert 56) + (twist-range-y meters :offset-assert 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-assert 80) + (smushy-off float :offset-assert 84) + (smushyv float :offset-assert 88) + (quat quaternion :inline :offset-assert 96) + (scale vector :inline :offset-assert 112) + (notice-time uint64 :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 deg :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 + ) + :method-count-assert 16 + :size-assert #xac + :flag-assert #x10000000ac + ;; field track-mode is likely a value type. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type joint-mod-mode process-drawable int) _type_) + (joint-mod-method-9 () none) ;; 9 ;; (mode-set! (_type_ joint-mod-mode) none) + (joint-mod-method-10 () none) ;; 10 ;; (target-set! (_type_ vector) none) + (joint-mod-method-11 () none) ;; 11 ;; (look-at! (_type_ vector symbol process) none) + (joint-mod-method-12 () none) ;; 12 ;; (reset-blend! (_type_) _type_) + (joint-mod-method-13 () none) ;; 13 ;; (twist-set! (_type_ float float float) vector) + (joint-mod-method-14 () none) ;; 14 ;; (trs-set! (_type_ vector quaternion vector) none) + (joint-mod-method-15 () none) ;; 15 ;; (shut-down (_type_) none) + ) + ) +|# + +#| +(deftype try-to-look-at-info (basic) + ((who uint64 :offset-assert 8) ;; handle + (horz float :offset-assert 16) + (vert float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype joint-mod-spinner (basic) + ((spin-axis vector :inline :offset-assert 16) + (angle float :offset-assert 32) + (spin-rate float :offset-assert 36) + (enable symbol :offset-assert 40) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype joint-mod-base (structure) + ((flags uint16 :offset-assert 0) ;; joint-mod-base-flags + (node-index int16 :offset-assert 2) + (proc (pointer process-drawable) :offset-assert 4) ;; guessed by decompiler + (callback (function cspace transformq none) :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #xc + :flag-assert #xc0000000c + (:methods + (joint-mod-base-method-9 () none) ;; 9 ;; (init (_type_ process-drawable uint joint-mod-base-flags) none) + (joint-mod-base-method-10 () none) ;; 10 ;; (attach-callback (_type_) none) + (joint-mod-base-method-11 () none) ;; 11 ;; (remove-callback (_type_) none) + ) + ) +|# + +#| +(deftype joint-mod-rotate-local (joint-mod-base) + ((rotation quaternion :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x20 + :flag-assert #xc00000020 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + ) + ) +|# + +#| +(deftype joint-mod-trans-rot-local (joint-mod-base) + ((trans vector :inline :offset-assert 16) + (rot quaternion :inline :offset-assert 32) + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype joint-mod-rotate-world (joint-mod-base) + ((rotation quaternion :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x20 + :flag-assert #xc00000020 + ) +|# + +#| +(deftype joint-mod-set-local (joint-mod-base) + ((transform transformq :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + ) + ) +|# + +#| +(deftype joint-mod-add-local (joint-mod-base) + ((transform transformq :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + ) + ) +|# + +#| +(deftype joint-mod-set-world (joint-mod-base) + ((transform transformq :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + ) + ) +|# + +#| +(deftype joint-mod-set-world-no-trans (joint-mod-base) + ((transform transformq :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + ) +|# + +#| +(deftype joint-mod-blend-local (joint-mod-base) + ((transform transformq :inline :offset-assert 16) + (blend-transform transformq :inline :offset-assert 64) + (blend float :offset-assert 112) + ) + :method-count-assert 12 + :size-assert #x74 + :flag-assert #xc00000074 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + ) + ) +|# + +#| +(deftype joint-mod-blend-world (joint-mod-base) + ((transform transformq :inline :offset-assert 16) + (blend-transform transformq :inline :offset-assert 64) + (blend float :offset-assert 112) + ) + :method-count-assert 12 + :size-assert #x74 + :flag-assert #xc00000074 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + ) + ) +|# + +#| +(deftype joint-mod-ik (basic) + ((flags uint8 :offset-assert 4) ;; joint-mod-ik-flags + (elbow-pole-vector-axis int8 :offset-assert 5) ;; uint32 + (elbow-rotation-axis int8 :offset-assert 6) ;; uint32 + (elbow-node int8 :offset-assert 7) + (process process-drawable :offset-assert 8) ;; guessed by decompiler + (callback (function joint-mod-ik matrix matrix vector object) :offset-assert 12) ;; guessed by decompiler + (handle-pos vector :inline :offset-assert 16) + (hand-dist float :offset-assert 32) + (blend float :offset-assert 36) + ) + :method-count-assert 11 + :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) + ) + ) +|# + +#| +(deftype ik-limb-setup (structure) + ((elbow-index int32 :offset-assert 0) + (hand-dist float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype joint-mod-polar-look-at (basic) + ((flags joint-mod-polar-flags :offset-assert 4) ;; guessed by decompiler + (ear int8 :offset-assert 8) + (up int8 :offset-assert 9) + (nose int8 :offset-assert 10) + (polar-internal-tilt-max float :offset-assert 12) + (polar-internal-radius float :offset-assert 16) + (polar-external-tilt-max float :offset-assert 20) + (polar-external-radius float :offset-assert 24) + (upward-tilt float :offset-assert 28) + (downward-tilt float :offset-assert 32) + (forward-twist float :offset-assert 36) + (backward-twist float :offset-assert 40) + (target vector :inline :offset-assert 48) + (blend-duration uint64 :offset-assert 64) ;; time-frame + (blend-start-time uint64 :offset-assert 72) ;; time-frame + (blend-start-value float :offset-assert 80) + (blend-max float :offset-assert 84) + ) + :method-count-assert 15 + :size-assert #x58 + :flag-assert #xf00000058 + (:methods + (joint-mod-polar-look-at-method-9 () none) ;; 9 ;; (initialize (_type_ process-drawable int) none) + (joint-mod-polar-look-at-method-10 () none) ;; 10 ;; (set-target! (_type_ vector) none) + (joint-mod-polar-look-at-method-11 () none) ;; 11 ;; (set-both-targets! (_type_ joint-mod-polar-look-at vector) none) + (joint-mod-polar-look-at-method-12 () none) ;; 12 ;; (blend-on! (_type_ time-frame float symbol) none) + (joint-mod-polar-look-at-method-13 () none) ;; 13 ;; (blend-to-off! (_type_ time-frame symbol) none) + (joint-mod-polar-look-at-method-14 () none) ;; 14 ;; (get-start-blend! (_type_) float) + ) + ) +|# + +;; (define-extern joint-mod-debug-draw function) ;; (function joint-mod none) +;; (define-extern joint-mod-spinner-callback function) ;; (function cspace transformq none) +;; (define-extern joint-mod-rotate-local-callback function) ;; (function cspace transformq none) +;; (define-extern joint-mod-trans-rot-local-callback function) +;; (define-extern vector<-cspace2! function) ;; (function vector cspace vector) +;; (define-extern joint-mod-rotate-world-callback function) ;; (function cspace transformq none) +;; (define-extern joint-mod-set-local-callback function) ;; (function cspace transformq none) +;; (define-extern joint-mod-add-local-callback function) ;; (function cspace transformq none) +;; (define-extern joint-mod-set-world-callback function) ;; (function cspace transformq none) +;; (define-extern joint-mod-set-world-no-trans-callback function) ;; (function cspace transformq none) +;; (define-extern joint-mod-blend-local-callback function) ;; (function cspace transformq none) +;; (define-extern joint-mod-blend-world-callback function) ;; (function cspace transformq none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-func-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-mesh-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-tri-result (structure) + ((vertex vector 3 :offset-assert 0) ;; guessed by decompiler + (intersect vector :inline :offset-assert 48) + (normal vector :inline :offset-assert 64) + (pat pat-surface :offset-assert 80) ;; guessed by decompiler + (collide-ptr basic :offset-assert 84) + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +#| +(deftype collide-mesh-tri (structure) + ((vertex-index uint8 3 :offset-assert 0) ;; guessed by decompiler + (unused uint8 :offset-assert 3) + (pat pat-surface :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype collide-mesh (basic) + ((joint-id int32 :offset-assert 4) + (num-tris uint32 :offset-assert 8) + (num-verts uint32 :offset-assert 12) + (vertex-data (inline-array vector) :offset-assert 16) ;; guessed by decompiler + (tris collide-mesh-tri 1 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 15 + :size-assert #x28 + :flag-assert #xf00000028 + (:methods + (collide-mesh-method-9 () none) ;; 9 ;; (debug-draw-tris (_type_ process-drawable int) none) + (collide-mesh-method-10 () none) ;; 10 ;; (overlap-test (_type_ collide-mesh-cache-tri vector) symbol) + (collide-mesh-method-11 () none) ;; 11 ;; (should-push-away-test (_type_ collide-mesh-cache-tri collide-tri-result vector float) float) + (collide-mesh-method-12 () none) ;; 12 ;; (sphere-on-platform-test (_type_ collide-mesh-cache-tri collide-tri-result vector float) float) + (collide-mesh-method-13 () none) ;; 13 ;; (unpack-mesh-to-cache! (_type_ (inline-array collide-mesh-cache-tri) matrix) none) + (collide-mesh-method-14 () none) ;; 14 ;; (collide-mesh-math-1 (_type_ object object) none) + ) + ) +|# + +#| +(deftype collide-mesh-cache-tri (structure) + ((vertex vector 3 :offset-assert 0) ;; guessed by decompiler + (normal vector :inline :offset-assert 48) + (bbox4w bounding-box4w :inline :offset-assert 64) + (pat pat-surface :offset-assert 60) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype collide-mesh-cache-entry (structure) + ((mat matrix :inline :offset-assert 0) + (tris collide-mesh-cache-tri :dynamic :offset-assert 64) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype collide-mesh-cache (basic) + ((used-size uint32 :offset-assert 4) + (max-size uint32 :offset-assert 8) + (id uint32 :offset-assert 12) + (data uint8 48000 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #xbb90 + :flag-assert #xd0000bb90 + (:methods + (collide-mesh-cache-method-9 () none) ;; 9 ;; (populate-for-prim-mesh (_type_ collide-shape-prim-mesh) collide-mesh-cache-entry) + (collide-mesh-cache-method-10 () none) ;; 10 ;; (is-id? (_type_ int) symbol) + (collide-mesh-cache-method-11 () none) ;; 11 ;; (next-id! (_type_) uint) + (collide-mesh-cache-method-12 () none) ;; 12 ;; (allocate! (_type_ int) collide-mesh-cache-entry) + ) + ) +|# + +;; (define-extern *collide-mesh-cache* object) ;; collide-mesh-cache + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-shape-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-rider (structure) + ((rider-handle uint64 :offset-assert 0) ;; handle + (sticky-prim collide-shape-prim :offset-assert 8) ;; guessed by decompiler + (prim-ry float :offset-assert 12) + (rider-local-pos vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype collide-rider-pool (basic) + ((alloc-count int32 :offset-assert 4) + (riders collide-rider 20 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x290 + :flag-assert #xb00000290 + (:methods + (collide-rider-pool-method-9 () none) ;; 9 ;; (add-rider (_type_ handle) collide-rider) + (collide-rider-pool-method-10 () none) ;; 10 ;; (prepare (_type_) none) + ) + ) +|# + +#| +(deftype pull-rider-info (structure) + ((rider collide-rider :offset-assert 0) + (rider-cshape collide-shape-moving :offset-assert 4) ;; guessed by decompiler + (rider-delta-ry float :offset-assert 8) + (rider-dest vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype overlaps-others-params (structure) + ((options overlaps-others-options :offset-assert 0) ;; guessed by decompiler + (collide-with-filter collide-spec :offset-assert 4) ;; guessed by decompiler + (tlist touching-list :offset-assert 8) ;; guessed by decompiler + (filtered-root-collide-with collide-spec :offset-assert 12) ;; guessed by decompiler + (filtered-child-collide-with collide-spec :offset-assert 16) ;; guessed by decompiler + (filtered-other-collide-as collide-spec :offset-assert 20) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype move-above-ground-params (structure) + ((gnd-collide-with collide-spec :offset-assert 0) ;; guessed by decompiler + (popup float :offset-assert 4) + (dont-move-if-overlaps? symbol :offset-assert 8) ;; guessed by decompiler + (hover-if-no-ground? symbol :offset-assert 12) ;; guessed by decompiler + (overlaps-params overlaps-others-params :inline :offset-assert 16) + (new-pos vector :inline :offset-assert 48) + (old-gspot-pos vector :inline :offset-assert 64) + (old-gspot-normal vector :inline :offset-assert 80) + (pat pat-surface :offset-assert 96) ;; guessed by decompiler + (on-ground? symbol :offset-assert 100) ;; guessed by decompiler + (do-move? symbol :offset-assert 104) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x6c + :flag-assert #x90000006c + ) +|# + +#| +(deftype collide-prim-core (structure) + ((world-sphere vector :inline :offset-assert 0) + (collide-as collide-spec :offset-assert 16) ;; guessed by decompiler + (collide-with collide-spec :offset-assert 20) ;; guessed by decompiler + (action collide-action :offset-assert 24) ;; guessed by decompiler + (prim-type int8 :offset-assert 28) + (unused1 uint8 3 :offset-assert 29) ;; guessed by decompiler + (quad uint128 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype collide-shape-prim (basic) + ((cshape collide-shape :offset-assert 4) ;; guessed by decompiler + (prim-id uint32 :offset-assert 8) + (transform-index int8 :offset-assert 12) + (unused2 int8 3 :offset-assert 13) ;; guessed by decompiler + (prim-core collide-prim-core :inline :offset-assert 16) + (local-sphere vector :inline :offset-assert 48) + (specific uint8 16 :offset-assert 64) ;; guessed by decompiler + (world-sphere vector :inline :offset-assert 16) + (collide-as collide-spec :offset-assert 32) + (collide-with collide-spec :offset-assert 36) + (action collide-action :offset-assert 40) + (prim-type int8 :offset-assert 44) + (radius meters :offset-assert 60) + ) + :method-count-assert 20 + :size-assert #x50 + :flag-assert #x1400000050 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type collide-shape uint int) _type_) + (collide-shape-prim-method-9 () none) ;; 9 ;; (debug-draw (_type_) none) + (collide-shape-prim-method-10 () none) ;; 10 ;; (add-fg-prim-using-box (_type_ collide-cache) none) + (collide-shape-prim-method-11 () none) ;; 11 ;; (add-fg-prim-using-line-sphere (_type_ collide-cache object) none) + (collide-shape-prim-method-12 () none) ;; 12 ;; (overlaps-others-test (_type_ overlaps-others-params collide-shape-prim) symbol) + (collide-shape-prim-method-13 () none) ;; 13 ;; (overlaps-others-group (_type_ overlaps-others-params collide-shape-prim-group) symbol) + (collide-shape-prim-method-14 () none) ;; 14 ;; (collide-shape-prim-method-14 () none) + (collide-shape-prim-method-15 () none) ;; 15 ;; (collide-with-collide-cache-prim-mesh (_type_ collide-query collide-cache-prim) none) + (collide-shape-prim-method-16 () none) ;; 16 ;; (collide-with-collide-cache-prim-sphere (_type_ collide-query collide-cache-prim) none) + (collide-shape-prim-method-17 () none) ;; 17 ;; (on-platform-test (_type_ collide-shape-prim collide-query float) none) + (collide-shape-prim-method-18 () none) ;; 18 ;; (should-push-away-test (_type_ collide-shape-prim collide-query) none) + (collide-shape-prim-method-19 () none) ;; 19 ;; (should-push-away-a-group-test (_type_ collide-shape-prim-group collide-query) none) + ) + ) +|# + +#| +(deftype collide-shape-prim-sphere (collide-shape-prim) + ((cshape collide-shape :offset-assert 0) ;; guessed by decompiler + (prim-id uint32 :offset-assert 4) + (transform-index int8 :offset-assert 8) + (unused2 int8 3 :offset-assert 9) ;; guessed by decompiler + (prim-core collide-prim-core :inline :offset-assert 12) + (local-sphere vector :inline :offset-assert 44) + (specific uint8 16 :offset-assert 60) ;; guessed by decompiler + (world-sphere vector :inline :offset-assert 12) + (collide-as collide-spec :offset-assert 28) + (collide-with collide-spec :offset-assert 32) + (action collide-action :offset-assert 36) + (prim-type int8 :offset-assert 40) + (radius meters :offset-assert 56) + (pat pat-surface :offset-assert 60) ;; guessed by decompiler + (nav-radius float :offset-assert 64) + (line-sphere-count int8 :offset-assert 68) + (line-sphere-prim-id int8 :offset-assert 69) + ) + :method-count-assert 20 + :size-assert #x50 + :flag-assert #x1400000050 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type collide-shape uint) _type_) + ) + ) +|# + +#| +(deftype collide-shape-prim-mesh (collide-shape-prim) + ((cshape collide-shape :offset-assert 0) ;; guessed by decompiler + (prim-id uint32 :offset-assert 4) + (transform-index int8 :offset-assert 8) + (unused2 int8 3 :offset-assert 9) ;; guessed by decompiler + (prim-core collide-prim-core :inline :offset-assert 12) + (local-sphere vector :inline :offset-assert 44) + (specific uint8 16 :offset-assert 60) ;; guessed by decompiler + (world-sphere vector :inline :offset-assert 12) + (collide-as collide-spec :offset-assert 28) + (collide-with collide-spec :offset-assert 32) + (action collide-action :offset-assert 36) + (prim-type int8 :offset-assert 40) + (radius meters :offset-assert 56) + (mesh collide-mesh :offset-assert 60) ;; guessed by decompiler + (mesh-id int32 :offset-assert 64) + (mesh-cache-id uint32 :offset-assert 68) + (mesh-cache-entry collide-mesh-cache-entry :offset-assert 72) + ) + :method-count-assert 20 + :size-assert #x50 + :flag-assert #x1400000050 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type collide-shape uint uint) _type_) + ) + ) +|# + +#| +(deftype collide-shape-prim-group (collide-shape-prim) + ((cshape collide-shape :offset-assert 0) ;; guessed by decompiler + (prim-id uint32 :offset-assert 4) + (transform-index int8 :offset-assert 8) + (unused2 int8 3 :offset-assert 9) ;; guessed by decompiler + (prim-core collide-prim-core :inline :offset-assert 12) + (local-sphere vector :inline :offset-assert 44) + (specific uint8 16 :offset-assert 60) ;; guessed by decompiler + (world-sphere vector :inline :offset-assert 12) + (collide-as collide-spec :offset-assert 28) + (collide-with collide-spec :offset-assert 32) + (action collide-action :offset-assert 36) + (prim-type int8 :offset-assert 40) + (radius meters :offset-assert 56) + (num-children uint8 :offset-assert 60) + (num-alloc-children uint8 :offset-assert 61) + (child (inline-array collide-shape-prim) :offset-assert 64) ;; guessed by decompiler + ) + :method-count-assert 20 + :size-assert #x50 + :flag-assert #x1400000050 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type collide-shape uint int) _type_) + ) + ) +|# + +#| +(deftype collide-shape (trsqv) + ((actor-hash-index int16 :offset-assert 12) + (process process-drawable :offset-assert 140) ;; guessed by decompiler + (max-iteration-count uint8 :offset-assert 144) + (nav-flags uint8 :offset-assert 145) ;; nav-flags + (total-prims uint8 :offset-assert 146) + (num-riders uint8 :offset-assert 147) + (event-self symbol :offset-assert 152) ;; guessed by decompiler + (event-other symbol :offset-assert 156) ;; guessed by decompiler + (root-prim collide-shape-prim :offset-assert 160) ;; guessed by decompiler + (riders (inline-array collide-rider) :offset-assert 164) ;; guessed by decompiler + (penetrate-using penetrate :offset-assert 168) + (penetrated-by penetrate :offset-assert 176) + (event-priority uint8 :offset-assert 192) + (rider-max-momentum float :offset-assert 196) + ) + :method-count-assert 55 + :size-assert #xc8 + :flag-assert #x37000000c8 + ;; field penetrate is likely a value type. field penetrate is likely a value type. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type process-drawable collide-list-enum) _type_) + (collide-shape-method-28 () none) ;; 28 ;; (move-by-vector! (_type_ vector) none) + (collide-shape-method-29 () none) ;; 29 ;; (move-to-point! (_type_ vector) none) + (collide-shape-method-30 () none) ;; 30 ;; (debug-draw (_type_) none) + (collide-shape-method-31 () none) ;; 31 ;; (fill-cache-for-shape (_type_ float collide-query) none) + (collide-shape-method-32 () none) ;; 32 ;; (fill-cache-integrate-and-collide (_type_ vector collide-query meters) none) + (collide-shape-method-33 () none) ;; 33 ;; (find-prim-by-id (_type_ uint) collide-shape-prim) + (collide-shape-method-34 () none) ;; 34 ;; (find-prim-by-id-logtest (_type_ uint) collide-shape-prim) + (collide-shape-method-35 () none) ;; 35 ;; (detect-riders! (_type_) symbol) + (collide-shape-method-36 () none) ;; 36 ;; (build-bounding-box-for-shape (_type_ bounding-box float collide-spec) symbol) + (collide-shape-method-37 () none) ;; 37 ;; (integrate-and-collide! (_type_ vector) none) + (collide-shape-method-38 () none) ;; 38 ;; (find-collision-meshes (_type_) none) + (collide-shape-method-39 () none) ;; 39 ;; (on-platform (_type_ collide-shape collide-query) symbol) + (collide-shape-method-40 () none) ;; 40 ;; (find-overlapping-shapes (_type_ overlaps-others-params) symbol) + (collide-shape-method-41 () none) ;; 41 ;; (shove-to-closest-point-on-path (_type_ attack-info float) vector) + (collide-shape-method-42 () none) ;; 42 ;; (should-push-away (_type_ collide-shape collide-query) symbol) + (collide-shape-method-43 () none) ;; 43 ;; (pull-rider! (_type_ pull-rider-info) none) + (collide-shape-method-44 () none) ;; 44 ;; (pull-riders! (_type_) symbol) + (collide-shape-method-45 () none) ;; 45 ;; (do-push-aways (_type_) collide-spec) + (collide-shape-method-46 () none) ;; 46 ;; (update-transforms (_type_) none) + (collide-shape-method-47 () none) ;; 47 ;; (set-collide-with! (_type_ collide-spec) none) + (collide-shape-method-48 () none) ;; 48 ;; (set-collide-as! (_type_ collide-spec) none) + (collide-shape-method-49 () none) ;; 49 ;; (modify-collide-as! (_type_ int collide-spec collide-spec) none) + (collide-shape-method-50 () none) ;; 50 ;; (send-shoves (_type_ process touching-shapes-entry float float float) symbol) + (collide-shape-method-51 () none) ;; 51 ;; (above-ground? (_type_ collide-query vector collide-spec float float float) symbol) + (collide-shape-method-52 () none) ;; 52 ;; (water-info-init! (_type_ water-info collide-action) water-info) + (collide-shape-method-53 () none) ;; 53 ;; (iterate-prims (_type_ (function collide-shape-prim none)) none) + (collide-shape-method-54 () none) ;; 54 ;; (pusher-init (_type_) none) + ) + ) +|# + +#| +(deftype collide-shape-moving (collide-shape) + ((rider-time uint64 :offset-assert 200) ;; time-frame + (rider-last-move vector :inline :offset-assert 208) + (trans-old vector :inline :offset-assert 224) + (poly-pat pat-surface :offset-assert 272) ;; guessed by decompiler + (cur-pat pat-surface :offset-assert 276) ;; guessed by decompiler + (ground-pat pat-surface :offset-assert 280) ;; guessed by decompiler + (status uint64 :offset-assert 288) ;; collide-status + (reaction (function control-info collide-query vector vector collide-status) :offset-assert 316) ;; guessed by decompiler + (no-reaction (function collide-shape-moving collide-query vector vector object) :offset-assert 320) ;; guessed by decompiler + (local-normal vector :inline :offset-assert 336) + (surface-normal vector :inline :offset-assert 352) + (poly-normal vector :inline :offset-assert 368) + (ground-poly-normal vector :inline :offset-assert 384) + (gspot-pos vector :inline :offset-assert 400) + (gspot-normal vector :inline :offset-assert 416) + (ground-touch-point vector :inline :offset-assert 432) + (ground-impact-vel meters :offset-assert 448) + (surface-angle float :offset-assert 452) + (poly-angle float :offset-assert 456) + (touch-angle float :offset-assert 460) + (coverage float :offset-assert 464) + (dynam dynamics :offset-assert 468) ;; guessed by decompiler + ) + :method-count-assert 67 + :size-assert #x1d8 + :flag-assert #x43000001d8 + ;; field penetrate is likely a value type. field penetrate is likely a value type. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type process-drawable collide-list-enum) _type_) + (collide-shape-moving-method-55 () none) ;; 55 ;; (find-ground (_type_ collide-query collide-spec float float float process) symbol) + (collide-shape-moving-method-56 () none) ;; 56 ;; (react-to-pat! (_type_ pat-surface) cshape-reaction-flags) + (collide-shape-moving-method-57 () none) ;; 57 ;; (integrate-no-collide! (_type_ vector) none) + (collide-shape-moving-method-58 () none) ;; 58 ;; (integrate-for-enemy-no-mtg (_type_ vector overlaps-others-params) symbol) + (collide-shape-moving-method-59 () none) ;; 59 ;; (move-above-ground (_type_ vector move-above-ground-params) none) + (collide-shape-moving-method-60 () none) ;; 60 ;; (move-to-ground (_type_ float float symbol collide-spec) none) + (collide-shape-moving-method-61 () none) ;; 61 ;; (move-to-ground-point (_type_ vector vector vector) none) + (collide-shape-moving-method-62 () none) ;; 62 ;; (compute-acc-due-to-gravity (_type_ vector float) vector) + (collide-shape-moving-method-63 () none) ;; 63 ;; (rbody-collision (_type_ rigid-body-control float) none) + (collide-shape-moving-method-64 () none) ;; 64 ;; (try-snap-to-surface (_type_ vector float float float) symbol) + (collide-shape-moving-method-65 () none) ;; 65 ;; (fill-and-try-snap-to-surface (_type_ vector float float float collide-query) symbol) + (collide-shape-moving-method-66 () none) ;; 66 ;; (step-collision! (_type_ vector vector float int) float) + ) + ) +|# + +;; (define-extern *collide-hit-by-player-list* object) ;; engine +;; (define-extern *collide-hit-by-others-list* object) ;; engine +;; (define-extern *collide-player-list* object) ;; engine +;; (define-extern *collide-shape-prim-backgnd* collide-shape-prim-mesh) ;; collide-shape-prim-mesh +;; (define-extern *collide-shape-prim-water* collide-shape-prim-mesh) ;; collide-shape-prim-mesh +;; (define-extern *collide-shape-prim-nav-mesh* collide-shape-prim-mesh) +;; (define-extern *collide-rider-pool* object) ;; collide-rider-pool + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-obs-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(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 part-spawner (process) + ((root trsqv :offset-assert 144) ;; guessed by decompiler + (part sparticle-launch-control :offset-assert 148) ;; guessed by decompiler + (path path-control :offset-assert 152) ;; guessed by decompiler + (sound ambient-sound :offset-assert 156) ;; guessed by decompiler + (sound-extra ambient-sound :offset-assert 160) ;; guessed by decompiler + (mode (pointer sparticle-launch-group) :offset-assert 164) ;; guessed by decompiler + (enable symbol :offset-assert 168) ;; guessed by decompiler + (path-pos float :offset-assert 172) + (path-speed float :offset-assert 176) + (last-velocity vector :inline :offset-assert 192) + (radius meters :offset-assert 208) + (world-sphere sphere :inline :offset-assert 224) + ) + :method-count-assert 17 + :size-assert #xf0 + :flag-assert #x11006000f0 + (:methods + (part-spawner-method-9 () none) ;; 9 + (part-spawner-method-10 () none) ;; 10 + (part-spawner-method-11 () none) ;; 11 + (part-spawner-method-12 () none) ;; 12 + (part-spawner-method-13 () none) ;; 13 + (part-spawner-method-14 () none) ;; 14 ;; (active () _type_ :state) + (part-spawner-method-15 () none) ;; 15 ;; (is-in-view? (_type_) symbol) + (part-spawner-method-16 () none) ;; 16 + ) + ) +|# + +#| +(deftype part-tracker (process) + ((root trsqv :offset-assert 144) ;; guessed by decompiler + (mat matrix :inline :offset-assert 160) + (offset vector :inline :offset-assert 224) + (local-offset vector :inline :offset-assert 240) + (userdata uint64 :offset-assert 256) + (user-time time-frame 2 :offset-assert 264) ;; guessed by decompiler + (user-vector vector :inline :offset-assert 288) + (user-handle uint32 2 :offset-assert 320) ;; guessed by decompiler + (part sparticle-launch-control :offset-assert 328) ;; guessed by decompiler + (callback (function part-tracker vector) :offset-assert 332) ;; guessed by decompiler + (linger-callback (function part-tracker vector) :offset-assert 336) ;; guessed by decompiler + (duration uint64 :offset-assert 344) ;; time-frame + (linger-duration uint64 :offset-assert 352) ;; time-frame + (state-time uint64 :offset-assert 360) ;; time-frame + (target uint64 :offset-assert 368) ;; handle + (target-joint int32 :offset-assert 376) + ) + :method-count-assert 19 + :size-assert #x17c + :flag-assert #x1300f0017c + ;; field userdata uses ~A with a 64-bit load. + (:methods + (part-tracker-method-9 () none) ;; 9 + (part-tracker-method-10 () none) ;; 10 + (part-tracker-method-11 () none) ;; 11 + (part-tracker-method-12 () none) ;; 12 + (part-tracker-method-13 () none) ;; 13 + (part-tracker-method-14 () none) ;; 14 ;; (active () _type_ :state) + (part-tracker-method-15 () none) ;; 15 ;; (linger () _type_ :state) + (part-tracker-method-16 () none) ;; 16 ;; (die () _type_ :state) + (part-tracker-method-17 () none) ;; 17 ;; (notify-parent-of-death (_type_) none) + (part-tracker-method-18 () none) ;; 18 + ) + ) +|# + +#| +(deftype part-tracker-init-params (structure) + ((local-offset vector :inline :offset-assert 0) + (userdata uint64 :offset-assert 16) + (duration time-frame :offset-assert 24) ;; guessed by decompiler + (local-space-param int32 :offset-assert 28) + (group sparticle-launch-group :offset-assert 32) ;; guessed by decompiler + (callback (function part-tracker vector) :offset-assert 36) ;; guessed by decompiler + (local-space-callback basic :offset-assert 40) + (target process-drawable :offset-assert 44) ;; guessed by decompiler + (mat-joint object :offset-assert 48) ;; guessed by decompiler + (subsampler-num float :offset-assert 52) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ;; field userdata uses ~A with a 64-bit load. field mat-joint uses ~A with a signed load. + ) +|# + +#| +(deftype part-tracker-subsampler (part-tracker) + ((subsampler sparticle-subsampler :offset-assert 380) ;; guessed by decompiler + ) + :method-count-assert 19 + :size-assert #x180 + :flag-assert #x1300f00180 + ) +|# + +#| +(deftype lightning-tracker (process) + ((root trsqv :offset-assert 144) ;; guessed by decompiler + (lightning lightning-control :offset-assert 148) ;; guessed by decompiler + (callback (function lightning-tracker none) :offset-assert 152) ;; guessed by decompiler + (duration uint64 :offset-assert 160) ;; time-frame + (start-time uint64 :offset-assert 168) ;; time-frame + (offset0 vector :inline :offset-assert 176) + (offset1 vector :inline :offset-assert 192) + (target0 uint64 :offset-assert 208) ;; handle + (target1 uint64 :offset-assert 216) ;; handle + (target-joint0 int32 :offset-assert 224) + (target-joint1 int32 :offset-assert 228) + (sound sound-id :offset-assert 232) ;; guessed by decompiler + (userdata uint64 :offset-assert 240) + (user-time time-frame 2 :offset-assert 248) ;; guessed by decompiler + (user-vector vector :inline :offset-assert 272) + (user-handle handle 2 :offset-assert 304) ;; guessed by decompiler + ) + :method-count-assert 18 + :size-assert #x140 + :flag-assert #x1200b00140 + ;; field userdata uses ~A with a 64-bit load. + (:methods + (lightning-tracker-method-9 () none) ;; 9 + (lightning-tracker-method-10 () none) ;; 10 + (lightning-tracker-method-11 () none) ;; 11 + (lightning-tracker-method-12 () none) ;; 12 + (lightning-tracker-method-13 () none) ;; 13 + (lightning-tracker-method-14 () none) ;; 14 ;; (active () _type_ :state) + (lightning-tracker-method-15 () none) ;; 15 ;; (notify-parent-of-death (_type_) none) + (lightning-tracker-method-16 () none) ;; 16 ;; (update (_type_) none) + (lightning-tracker-method-17 () none) ;; 17 + ) + ) +|# + +#| +(deftype touch-tracker (process-drawable) + ((duration uint64 :offset-assert 248) ;; time-frame + (target uint64 :offset-assert 256) ;; handle + (event symbol :offset-assert 264) ;; guessed by decompiler + (run-function (function object) :offset-assert 268) ;; guessed by decompiler + (callback (function touch-tracker none) :offset-assert 272) ;; guessed by decompiler + (event-mode symbol :offset-assert 276) ;; guessed by decompiler + ) + :method-count-assert 51 + :size-assert #x118 + :flag-assert #x3300900118 + (:methods + (touch-tracker-method-50 () none) ;; 50 + ) + ) +|# + +#| +(deftype gui-query (structure) + ((x-position int32 :offset-assert 0) + (y-position int32 :offset-assert 4) + (message string :offset-assert 8) ;; guessed by decompiler + (decision symbol :offset-assert 12) ;; guessed by decompiler + (only-allow-cancel symbol :offset-assert 16) ;; guessed by decompiler + (no-msg string :offset-assert 20) ;; guessed by decompiler + (message-space int32 :offset-assert 24) + ) + :method-count-assert 11 + :size-assert #x1c + :flag-assert #xb0000001c + (:methods + (gui-query-method-9 () none) ;; 9 ;; (gui-query-method-9 () none) + (gui-query-method-10 () none) ;; 10 ;; (gui-query-method-10 () none) + ) + ) +|# + +#| +(deftype othercam (process) + ((hand uint64 :offset-assert 144) ;; handle + (old-global-mask process-mask :offset-assert 152) ;; guessed by decompiler + (mask-to-clear process-mask :offset-assert 156) ;; guessed by decompiler + (cam-joint-index int32 :offset-assert 160) + (old-pos vector :inline :offset-assert 176) + (old-mat-z vector :inline :offset-assert 192) + (had-valid-frame symbol :offset-assert 208) ;; guessed by decompiler + (border-value basic :offset-assert 212) + (die? symbol :offset-assert 216) ;; guessed by decompiler + (survive-anim-end? symbol :offset-assert 220) ;; guessed by decompiler + (spooling? symbol :offset-assert 224) ;; guessed by decompiler + (fov float :offset-assert 228) + ) + :method-count-assert 15 + :size-assert #xe8 + :flag-assert #xf006000e8 + (:methods + (othercam-method-9 () none) ;; 9 + (othercam-method-10 () none) ;; 10 + (othercam-method-11 () none) ;; 11 + (othercam-method-12 () none) ;; 12 + (othercam-method-13 () none) ;; 13 + (othercam-method-14 () none) ;; 14 + ) + (:states + othercam-running ;; associated process guessed by decompiler, old: (state othercam) + ) + ) +|# + +#| +(deftype explosion-init-params (structure) + ((spawn-point vector :inline :offset-assert 0) + (spawn-quat quaternion :inline :offset-assert 16) + (radius float :offset-assert 32) + (scale float :offset-assert 36) + (group sparticle-launch-group :offset-assert 40) ;; guessed by decompiler + (group-on-kill basic :offset-assert 44) + (collide-with collide-spec :offset-assert 48) ;; guessed by decompiler + (collide-lof-check? basic :offset-assert 52) + (damage float :offset-assert 56) + (damage-scale float :offset-assert 60) + (vehicle-damage-factor float :offset-assert 64) + (vehicle-impulse-factor float :offset-assert 68) + (velocity vector :inline :offset-assert 80) + (ignore-proc uint64 :offset-assert 96) ;; handle + (attacker uint64 :offset-assert 104) + (wpn-type int8 :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x71 + :flag-assert #x900000071 + ) +|# + +#| +(deftype explosion (process-drawable) + ((start-time uint64 :offset-assert 248) ;; time-frame + (duration uint32 :offset-assert 256) + (linger-duration uint32 :offset-assert 260) + (attack-id uint32 :offset-assert 264) + (mat matrix :inline :offset-assert 272) + (params explosion-init-params :inline :offset-assert 336) + (killed-someone? basic :offset-assert 452) + (spawn-proc uint64 :offset-assert 456) + (spawn-type basic :offset-assert 464) + ) + :method-count-assert 53 + :size-assert #x1d4 + :flag-assert #x35015001d4 + (:methods + (explosion-method-50 () none) ;; 50 + (explosion-method-51 () none) ;; 51 + (explosion-method-52 () none) ;; 52 + ) + ) +|# + +#| +(deftype process-hidden (process) + ((name string :offset-assert 0) ;; guessed by decompiler + (mask process-mask :offset-assert 4) + (clock clock :offset-assert 8) ;; guessed by decompiler + (view basic :offset-assert 12) + (parent (pointer process-tree) :offset-assert 16) ;; guessed by decompiler + (brother (pointer process-tree) :offset-assert 20) ;; guessed by decompiler + (child (pointer process-tree) :offset-assert 24) ;; guessed by decompiler + (ppointer (pointer process) :offset-assert 28) ;; guessed by decompiler + (self process :offset-assert 32) ;; guessed by decompiler + (profile-ticks uint32 :offset-assert 36) + (pool dead-pool :offset-assert 40) ;; guessed by decompiler + (status symbol :offset-assert 44) ;; guessed by decompiler + (pid int32 :offset-assert 48) + (main-thread cpu-thread :offset-assert 52) ;; guessed by decompiler + (top-thread cpu-thread :offset-assert 56) ;; guessed by decompiler + (entity entity-actor :offset-assert 60) ;; guessed by decompiler + (level level :offset-assert 64) ;; guessed by decompiler + (state state :offset-assert 68) ;; guessed by decompiler + (prev-state state :offset-assert 72) ;; guessed by decompiler + (next-state state :offset-assert 76) ;; guessed by decompiler + (state-stack (array state) :offset-assert 80) ;; guessed by decompiler + (trans-hook function :offset-assert 84) ;; guessed by decompiler + (post-hook function :offset-assert 88) ;; guessed by decompiler + (event-hook (function process int symbol event-message-block object) :offset-assert 92) ;; guessed by decompiler + (allocated-length int32 :offset-assert 96) + (heap-base pointer :offset-assert 108) ;; guessed by decompiler + (heap-top pointer :offset-assert 112) ;; guessed by decompiler + (heap-cur pointer :offset-assert 116) ;; guessed by decompiler + (stack-frame-top stack-frame :offset-assert 120) ;; guessed by decompiler + (heap kheap :inline :offset-assert 108) + (connection-list connectable :inline :offset-assert 124) + (stack uint8 :dynamic :offset-assert 140) ;; guessed by decompiler + ) + :method-count-assert 16 + :size-assert #x90 + :flag-assert #x1000000090 + (:methods + (process-hidden-method-9 () none) ;; 9 + (process-hidden-method-10 () none) ;; 10 + (process-hidden-method-11 () none) ;; 11 + (process-hidden-method-12 () none) ;; 12 + (process-hidden-method-13 () none) ;; 13 + (process-hidden-method-14 () none) ;; 14 ;; (die () _type_ :state) + (process-hidden-method-15 () none) ;; 15 + ) + ) +|# + +#| +(deftype simple-prim (process-drawable) + ((strip prim-strip :offset-assert 248) ;; guessed by decompiler + ) + :method-count-assert 56 + :size-assert #xfc + :flag-assert #x38007000fc + (:methods + (simple-prim-method-50 () none) ;; 50 + (simple-prim-method-51 () none) ;; 51 + (simple-prim-method-52 () none) ;; 52 + (simple-prim-method-53 () none) ;; 53 + (simple-prim-method-54 () none) ;; 54 + (simple-prim-method-55 () none) ;; 55 + ) + ) +|# + +#| +(deftype task-arrow-params (structure) + ((flags task-arrow-flags :offset-assert 0) ;; guessed by decompiler + (map-icon uint16 :offset-assert 4) + (pos vector :inline :offset-assert 16) + (quat quaternion :inline :offset-assert 32) + (color uint32 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype external-camera-controller (process) + ((pause-time uint64 :offset-assert 144) ;; time-frame + (blur symbol :offset-assert 152) ;; guessed by decompiler + ) + :method-count-assert 16 + :size-assert #x9c + :flag-assert #x100010009c + (:methods + (external-camera-controller-method-9 () none) ;; 9 + (external-camera-controller-method-10 () none) ;; 10 + (external-camera-controller-method-11 () none) ;; 11 + (external-camera-controller-method-12 () none) ;; 12 + (external-camera-controller-method-13 () none) ;; 13 + (external-camera-controller-method-14 () none) ;; 14 ;; (active () _type_ :state) + (external-camera-controller-method-15 () none) ;; 15 + ) + ) +|# + +;; (define-extern *simple-prim-additive* object) ;; gs-alpha +;; (define-extern *simple-prim-alpha-blend* object) ;; gs-alpha +;; (define-extern *simple-prim-subtractive* object) ;; gs-alpha + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trajectory-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype trajectory (structure) + ((initial-position vector :inline :offset-assert 0) + (initial-velocity vector :inline :offset-assert 16) + (time float :offset-assert 32) + (gravity meters :offset-assert 36) + ) + :method-count-assert 18 + :size-assert #x28 + :flag-assert #x1200000028 + (:methods + (trajectory-method-9 () none) ;; 9 ;; (compute-trans-at-time (_type_ float vector) vector) + (trajectory-method-10 () none) ;; 10 ;; (compute-transv-at-time (_type_ float vector) vector) + (trajectory-method-11 () none) ;; 11 ;; (compute-time-until-apex (_type_) float) + (trajectory-method-12 () none) ;; 12 ;; (setup-from-to-duration! (_type_ vector vector float float) none) + (trajectory-method-13 () none) ;; 13 ;; (setup-from-to-xz-vel! (_type_ vector vector float float) none) + (trajectory-method-14 () none) ;; 14 ;; (setup-from-to-y-vel! (_type_ vector vector float float) none) + (trajectory-method-15 () none) ;; 15 ;; (setup-from-to-height! (_type_ vector vector float float) none) + (trajectory-method-16 () none) ;; 16 ;; (setup-from-to-duration-and-height! (_type_ vector vector float float) none) + (trajectory-method-17 () none) ;; 17 ;; (debug-draw (_type_) none) + ) + ) +|# + +#| +(deftype impact-control (structure) + ((process (pointer process-drawable) :offset-assert 0) ;; guessed by decompiler + (radius meters :offset-assert 4) + (joint int32 :offset-assert 8) + (collide-with collide-spec :offset-assert 12) ;; guessed by decompiler + (start-time uint64 :offset-assert 16) + (trans vector 2 :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (dir vector :inline :offset-assert 64) + ) + :method-count-assert 12 + :size-assert #x50 + :flag-assert #xc00000050 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type process-drawable int float collide-spec) _type_) + (impact-control-method-9 () none) ;; 9 ;; (initialize (_type_ process-drawable int float collide-spec) impact-control) + (impact-control-method-10 () none) ;; 10 ;; (update-from-cspace (_type_) none) + (impact-control-method-11 () none) ;; 11 ;; (impact-control-method-11 (_type_ collide-query process pat-surface) float) + ) + ) +|# + +#| +(deftype point-tracker (structure) + ((trans vector 2 :offset-assert 0) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 12 + :size-assert #x20 + :flag-assert #xc00000020 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type vector vector) _type_) + (point-tracker-method-9 () none) ;; 9 ;; (initialize (_type_ vector vector) point-tracker) + (point-tracker-method-10 () none) ;; 10 ;; (point-tracker-method-10 (_type_ vector vector vector float) vector) + (point-tracker-method-11 () none) ;; 11 ;; (point-tracker-method-11 (_type_ vector vector vector float) vector) + ) + ) +|# + +#| +(deftype combo-tracker (point-tracker) + ((target uint64 :offset-assert 32) ;; handle + (move-start-time uint64 :offset-assert 40) ;; time-frame + ) + :method-count-assert 14 + :size-assert #x30 + :flag-assert #xe00000030 + (:methods + (combo-tracker-method-12 () none) ;; 12 ;; (combo-tracker-method-12 (_type_ vector vector process time-frame) combo-tracker) + (combo-tracker-method-13 () none) ;; 13 ;; (combo-tracker-method-13 (_type_ handle vector float vector float) process-focusable) + ) + ) +|# + +#| +(deftype traj2d-params (structure) + ((x float :offset-assert 0) + (y float :offset-assert 4) + (gravity float :offset-assert 8) + (initial-tilt float :offset-assert 12) + (initial-speed float :offset-assert 16) + (time float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype traj3d-params (structure) + ((gravity float :offset-assert 0) + (initial-tilt float :offset-assert 4) + (initial-speed float :offset-assert 8) + (time float :offset-assert 12) + (src vector :inline :offset-assert 16) + (dest vector :inline :offset-assert 32) + (diff vector :inline :offset-assert 48) + (initial-velocity vector :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype cubic-curve (structure) + ((mat matrix :inline :offset-assert 0) + ) + :method-count-assert 14 + :size-assert #x40 + :flag-assert #xe00000040 + (:methods + (cubic-curve-method-9 () none) ;; 9 ;; (cubic-curve-method-9 (_type_ vector vector vector vector) none) + (cubic-curve-method-10 () none) ;; 10 ;; (cubic-curve-method-10 (_type_ vector float) vector) + (cubic-curve-method-11 () none) ;; 11 ;; (cubic-curve-method-11 (_type_ vector float) vector) + (cubic-curve-method-12 () none) ;; 12 ;; (cubic-curve-method-12 (_type_ vector float) vector) + (cubic-curve-method-13 () none) ;; 13 ;; (debug-draw-curve (_type_) none) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-touch-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype touching-prim (structure) + ((cprim collide-shape-prim :offset-assert 0) ;; guessed by decompiler + (has-tri? symbol :offset-assert 4) ;; guessed by decompiler + (tri collide-tri-result :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x68 + :flag-assert #x900000068 + ) +|# + +#| +(deftype touching-prims-entry (structure) + ((next touching-prims-entry :offset-assert 0) + (prev touching-prims-entry :offset-assert 4) + (allocated? symbol :offset-assert 8) ;; guessed by decompiler + (u float :offset-assert 12) + (prim1 touching-prim :inline :offset-assert 16) + (prim2 touching-prim :inline :offset-assert 128) + ) + :method-count-assert 13 + :size-assert #xe8 + :flag-assert #xd000000e8 + (:methods + (touching-prims-entry-method-9 () none) ;; 9 ;; (touching-prims-entry-method-9 (_type_ vector) vector) + (touching-prims-entry-method-10 () none) ;; 10 ;; (get-middle-of-bsphere-overlap (_type_ vector) vector) + (touching-prims-entry-method-11 () none) ;; 11 ;; (get-touched-prim (_type_ collide-shape touching-shapes-entry) collide-shape-prim) + (touching-prims-entry-method-12 () none) ;; 12 ;; (get-touched-tri (_type_ collide-shape touching-shapes-entry) collide-tri-result) + ) + ) +|# + +#| +(deftype touching-prims-entry-pool (structure) + ((head touching-prims-entry :offset-assert 0) + (nodes touching-prims-entry 64 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #x3c10 + :flag-assert #xd00003c10 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + (touching-prims-entry-pool-method-9 () none) ;; 9 ;; (alloc-node (_type_) touching-prims-entry) + (touching-prims-entry-pool-method-10 () none) ;; 10 ;; (get-free-node-count (_type_) int) + (touching-prims-entry-pool-method-11 () none) ;; 11 ;; (init-list! (_type_) none) + (touching-prims-entry-pool-method-12 () none) ;; 12 ;; (free-node (_type_ touching-prims-entry) touching-prims-entry) + ) + ) +|# + +#| +(deftype touching-shapes-entry (structure) + ((cshape1 collide-shape :offset-assert 0) ;; guessed by decompiler + (cshape2 collide-shape :offset-assert 4) ;; guessed by decompiler + (resolve-u int8 :offset-assert 8) + (head touching-prims-entry :offset-assert 12) + (handle1 uint64 :offset-assert 16) ;; handle + (handle2 uint64 :offset-assert 24) ;; handle + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + (:methods + (touching-shapes-entry-method-9 () none) ;; 9 ;; (get-head (_type_) touching-prims-entry) + (touching-shapes-entry-method-10 () none) ;; 10 ;; (get-next (_type_ touching-shapes-entry) touching-prims-entry) + (touching-shapes-entry-method-11 () none) ;; 11 ;; (get-touched-shape (_type_ collide-shape) collide-shape) + (touching-shapes-entry-method-12 () none) ;; 12 ;; (prims-touching? (_type_ collide-shape uint) touching-prims-entry) + (touching-shapes-entry-method-13 () none) ;; 13 ;; (prims-touching-action? (_type_ collide-shape collide-action collide-action) basic) + (touching-shapes-entry-method-14 () none) ;; 14 ;; (free-touching-prims-list (_type_) none) + ) + ) +|# + +#| +(deftype touching-list (structure) + ((num-touching-shapes int32 :offset-assert 0) + (resolve-u int8 :offset-assert 4) + (touching-shapes touching-shapes-entry 32 :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x408 + :flag-assert #xe00000408 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + (touching-list-method-9 () none) ;; 9 ;; (add-touching-prims (_type_ collide-shape-prim collide-shape-prim float collide-tri-result collide-tri-result) none) + (touching-list-method-10 () none) ;; 10 ;; (free-nodes (_type_) none) + (touching-list-method-11 () none) ;; 11 ;; (update-from-step-size (_type_ float) none) + (touching-list-method-12 () none) ;; 12 ;; (send-events-for-touching-shapes (_type_) none) + (touching-list-method-13 () none) ;; 13 ;; (get-shapes-entry (_type_ collide-shape collide-shape) touching-shapes-entry) + ) + ) +|# + +;; (define-extern *touching-prims-entry-pool* object) ;; touching-prims-entry-pool +;; (define-extern *touching-list* object) ;; touching-list + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; process-drawable-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cspace-by-name-no-fail function) ;; (function process-drawable string cspace) +;; (define-extern cspace-index-by-name-no-fail function) ;; (function process-drawable string int) +;; (define-extern num-func-none function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-+! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func--! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-loop! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-loop-speedless! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-loop-set! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-seek! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-blend-in! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern joint-channel-float-delete! function) ;; (function joint-control-channel none) +;; (define-extern num-func-interp-play! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-interp1-play! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-chan function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-identity function) ;; (function joint-control-channel float float float float :behavior process) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; process-focusable ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype process-focusable (process-drawable) + ((focus-status uint64 :offset-assert 248) ;; focus-status + ) + :method-count-assert 59 + :size-assert #x100 + :flag-assert #x3b00700100 + (:methods + (process-focusable-method-50 () none) ;; 50 + (process-focusable-method-51 () none) ;; 51 + (process-focusable-method-52 () none) ;; 52 + (process-focusable-method-53 () none) ;; 53 + (process-focusable-method-54 () none) ;; 54 + (process-focusable-method-55 () none) ;; 55 + (process-focusable-method-56 () none) ;; 56 + (process-focusable-method-57 () none) ;; 57 + (process-focusable-method-58 () none) ;; 58 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; focus ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype focus (structure) + ((handle uint64 :offset-assert 0) ;; handle + (collide-with collide-spec :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #xc + :flag-assert #xd0000000c + (:methods + (focus-method-9 () none) ;; 9 ;; (clear-focused (_type_) none) + (focus-method-10 () none) ;; 10 ;; (collide-spec-match? (_type_ process-focusable) object) + (focus-method-11 () none) ;; 11 ;; (reset-to-collide-spec (_type_ collide-spec) none) + (focus-method-12 () none) ;; 12 ;; (focus-on! (_type_ process-focusable) symbol) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; effect-control-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype effect-control (basic) + ((process process-drawable :offset-assert 4) ;; guessed by decompiler + (flags effect-control-flag :offset-assert 8) ;; guessed by decompiler + (last-frame-group art-joint-anim :offset-assert 12) ;; guessed by decompiler + (last-frame-num float :offset-assert 16) + (channel-offset int32 :offset-assert 20) + (res res-lump :offset-assert 24) ;; guessed by decompiler + (name (pointer res-tag) :offset-assert 28) ;; guessed by decompiler + (param uint32 :offset-assert 32) + ) + :method-count-assert 15 + :size-assert #x24 + :flag-assert #xf00000024 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type process-drawable) _type_) + (effect-control-method-9 () none) ;; 9 ;; (effect-control-method-9 (_type_) none) + (effect-control-method-10 () none) ;; 10 ;; (do-effect (_type_ string float int) none) + (effect-control-method-11 () none) ;; 11 ;; (do-effect-for-surface (_type_ symbol float int basic pat-surface) none) + (effect-control-method-12 () none) ;; 12 ;; (play-effect-sound (_type_ symbol float int basic sound-name) int) + (effect-control-method-13 () none) ;; 13 ;; (set-channel-offset! (_type_ int) none) + (effect-control-method-14 () none) ;; 14 ;; (play-effects-from-res-lump (_type_ float float float) none) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-frag-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-frag-vertex (vector) + () + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype collide-frag-mesh (basic) + ((packed-data uint32 :offset-assert 4) + (pat-array uint32 :offset-assert 8) + (strip-data-len uint16 :offset-assert 12) + (poly-count uint16 :offset-assert 14) + (base-trans vector4w :inline :offset-assert 16) + (vertex-count uint8 :offset-assert 28) + (vertex-data-qwc uint8 :offset-assert 29) + (total-qwc uint8 :offset-assert 30) + (unused uint8 :offset-assert 31) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype collide-fragment (drawable) + ((mesh collide-frag-mesh :offset-assert 8) ;; guessed by decompiler + (collide-new basic :offset-assert 12) + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ) +|# + +#| +(deftype drawable-inline-array-collide-fragment (drawable-inline-array) + ((data collide-fragment 1 :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x44 + :flag-assert #x1100000044 + ) +|# + +;; (deftype drawable-tree-collide-fragment (drawable-tree) +;; () +;; :flag-assert #x1100000020 +;; ) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-hash-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-hash-scratch (structure) + ((collidable-bits uint128 128 :offset-assert 0) ;; guessed by decompiler + (poly-bits uint64 2 :offset-assert 0) ;; guessed by decompiler + (id-bits uint32 512 :offset-assert 0) ;; guessed by decompiler + (tris uint32 :offset-assert 2048) + ) + :method-count-assert 9 + :size-assert #x804 + :flag-assert #x900000804 + ) +|# + +#| +(deftype collide-hash-bucket (structure) + ((index int16 :offset-assert 0) + (count int16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype collide-hash-item (structure) + ((id uint32 :offset-assert 0) + (collidable basic :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype collide-hash-poly (structure) + ((data uint8 4 :offset-assert 0) ;; guessed by decompiler + (vert-index0 uint8 :offset-assert 0) + (vert-index1 uint8 :offset-assert 1) + (vert-index2 uint8 :offset-assert 2) + (pat-index uint8 :offset-assert 3) + (word uint32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype collide-hash-fragment-stats (structure) + ((num-verts uint16 :offset-assert 0) + (num-polys uint8 :offset-assert 2) + (poly-count uint8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype collide-hash-fragment (drawable) + ((num-buckets uint16 :offset-assert 4) + (num-indices uint16 :offset-assert 6) + (pat-array uint32 :offset-assert 8) + (bucket-array uint32 :offset-assert 12) + (grid-step vector :inline :offset-assert 32) + (bbox bounding-box :inline :offset-assert 48) + (bbox4w bounding-box4w :inline :offset-assert 80) + (axis-scale vector :inline :offset-assert 64) + (avg-extents vector :inline :offset-assert 80) + (dimension-array uint32 4 :offset-assert 44) ;; guessed by decompiler + (stats collide-hash-fragment-stats :inline :offset-assert 60) + (num-verts uint16 :offset-assert 60) + (num-polys uint8 :offset-assert 62) + (poly-count uint8 :offset-assert 63) + (poly-array uint32 :offset-assert 76) + (vert-array uint32 :offset-assert 92) + (index-array uint32 :offset-assert 108) + ) + :method-count-assert 17 + :size-assert #x70 + :flag-assert #x1100000070 + ) +|# + +#| +(deftype collide-hash-fragment-array (array) + ((type type :offset-assert 0) ;; guessed by decompiler + (length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (content-type type :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype collide-hash (drawable) + ((num-ids uint16 :offset-assert 4) + (id-count uint16 :offset-assert 6) + (num-buckets uint32 :offset-assert 8) + (qwc-id-bits uint32 :offset-assert 12) + (grid-step vector :inline :offset-assert 16) + (bbox bounding-box :inline :offset-assert 32) + (bbox4w bounding-box4w :inline :offset-assert 64) + (axis-scale vector :inline :offset-assert 48) + (avg-extents vector :inline :offset-assert 64) + (bucket-array uint32 :offset-assert 44) + (item-array (inline-array collide-hash-item) :offset-assert 60) ;; guessed by decompiler + (dimension-array uint32 3 :offset-assert 76) ;; guessed by decompiler + (num-items uint32 :offset-assert 92) + ) + :method-count-assert 17 + :size-assert #x60 + :flag-assert #x1100000060 + ) +|# + +;; (define-extern *collide-list-boxes* object) ;; symbol +;; (define-extern *collide-hash-fragments* object) ;; int +;; (define-extern *collide-hash-fragments-tfrag* object) ;; int +;; (define-extern *collide-hash-fragments-instance* object) ;; int +;; (define-extern *already-printed-exeeded-max-cache-tris* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; water-info-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype water-info (structure) + ((trans vector :inline :offset-assert 0) + (normal vector :inline :offset-assert 16) + (base-height meters :offset-assert 32) + (depth meters :offset-assert 36) + (handle uint64 :offset-assert 40) ;; handle + (flags water-flag :offset-assert 48) + (prim drawable-region-prim :offset-assert 52) ;; guessed by decompiler + (extra-flags uint32 :offset-assert 56) + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +#| +(deftype water-sphere (structure) + ((sphere sphere :inline :offset-assert 0) + (flags water-flag :offset-assert 16) + (user0 int32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ragdoll-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ragdoll-edit-info (structure) + ((editing symbol :offset-assert 0) ;; guessed by decompiler + (current-func uint64 :offset-assert 8) + (analog-func uint64 :offset-assert 16) + (affect uint64 :offset-assert 24) + (single-step uint64 :offset-assert 32) + (collision symbol :offset-assert 40) ;; guessed by decompiler + (gravity symbol :offset-assert 44) ;; guessed by decompiler + (skel-visible uint64 :offset-assert 48) + (current-joint int8 :offset-assert 56) + (auto-setup-now basic :offset-assert 60) + (child-stack ragdoll-joint 60 :offset-assert 64) ;; guessed by decompiler + (child-stack-num int8 :offset-assert 304) + (last-frame uint64 :offset-assert 312) ;; time-frame + (last-frame-dur uint64 :offset-assert 320) ;; time-frame + ) + :method-count-assert 18 + :size-assert #x148 + :flag-assert #x1200000148 + (:methods + (ragdoll-edit-info-method-9 () none) ;; 9 ;; (has-joint? (_type_ ragdoll-joint) symbol) + (ragdoll-edit-info-method-10 () none) ;; 10 ;; (ragdoll-edit-info-method-10 (_type_ object ragdoll-joint) symbol) + (ragdoll-edit-info-method-11 () none) ;; 11 ;; (fill-child-stack! (_type_ ragdoll) none) + (ragdoll-edit-info-method-12 () none) ;; 12 ;; (ragdoll-edit-info-method-12 (_type_) none) + (ragdoll-edit-info-method-13 () none) ;; 13 ;; (cycle-joints! (_type_ ragdoll) none) + (ragdoll-edit-info-method-14 () none) ;; 14 ;; (ragdoll-edit-info-method-14 (_type_ matrix vector (inline-array ragdoll-joint) ragdoll process-drawable) vector) + (ragdoll-edit-info-method-15 () none) ;; 15 ;; (ragdoll-edit-info-method-15 (_type_) none) + (ragdoll-edit-info-method-16 () none) ;; 16 ;; (ragdoll-edit-info-method-16 (_type_ ragdoll process-drawable) none) + (ragdoll-edit-info-method-17 () none) ;; 17 ;; (ragdoll-edit-info-method-17 (_type_ ragdoll process-drawable) none) + ) + ) +|# + +#| +(deftype ragdoll-joint-setup (structure) + ((joint-index int32 :offset-assert 0) + (parent-joint int32 :offset-assert 4) + (joint-type uint64 :offset-assert 8) + (pre-tform vector :inline :offset-assert 16) + (geo-tform vector :inline :offset-assert 32) + (axial-slop float :offset-assert 48) + (max-angle float :offset-assert 52) + (coll-rad float :offset-assert 56) + (hit-sound uint16 :offset-assert 60) ;; sound-name + ) + :method-count-assert 9 + :size-assert #x3e + :flag-assert #x90000003e + ) +|# + +#| +(deftype ragdoll-setup (structure) + ((orient-tform vector :inline :offset-assert 0) + (scale vector :inline :offset-assert 16) + (bg-collide-with collide-spec :offset-assert 32) ;; guessed by decompiler + (joint-setup (array ragdoll-joint-setup) :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype ragdoll-joint (structure) + ((quat quaternion :inline :offset-assert 0) + (position vector :inline :offset-assert 16) + (velocity vector :inline :offset-assert 32) + (bounce vector :inline :offset-assert 48) + (old-x vector :inline :offset-assert 64) + (pre-tform vector :inline :offset-assert 80) + (geo-tform vector :inline :offset-assert 96) + (axial-slop float :offset-assert 112) + (max-angle float :offset-assert 116) ;; degrees + (joint-length float :offset-assert 120) + (coll-rad float :offset-assert 124) + (ragdoll-joint-flags ragdoll-joint-flag :offset-assert 128) ;; guessed by decompiler + (joint-type uint64 :offset-assert 136) + (joint-index int8 :offset-assert 144) + (parent-joint int8 :offset-assert 145) + (parent-index int8 :offset-assert 146) + (num-children int8 :offset-assert 147) + (old-param0 basic :offset-assert 148) + (hit-sound uint128 :offset-assert 160) ;; sound-name + (ground-pat pat-surface :offset-assert 176) ;; guessed by decompiler + (user0 int32 :offset-assert 180) + (original-speed float :offset-assert 184) + ) + :method-count-assert 9 + :size-assert #xbc + :flag-assert #x9000000bc + ) +|# + +#| +(deftype ragdoll (basic) + ((ragdoll-joints ragdoll-joint 60 :offset-assert 16) ;; guessed by decompiler + (num-joints uint8 :offset-assert 11536) + (mirror matrix :inline :offset-assert 11552) + (gravity vector :inline :offset-assert 11616) + (gravity-target vector :inline :offset-assert 11632) + (orient-tform vector :inline :offset-assert 11648) + (scale vector :inline :offset-assert 11664) + (stretch-vel float :offset-assert 11680) + (stretch-vel-parallel float :offset-assert 11684) + (compress-vel float :offset-assert 11688) + (compress-vel-parallel float :offset-assert 11692) + (momentum float :offset-assert 11696) + (maximum-stretch float :offset-assert 11700) + (turn-off-start uint64 :offset-assert 11704) ;; time-frame + (turn-off-duration uint64 :offset-assert 11712) ;; time-frame + (copy-velocity-start uint64 :offset-assert 11720) ;; time-frame + (root-offset vector :inline :offset-assert 11728) + (rotate-vel quaternion :inline :offset-assert 11744) + (rotate-adj quaternion :inline :offset-assert 11760) + (rotate-adj-count int8 :offset-assert 11776) + (ragdoll-flags ragdoll-flag :offset-assert 11780) ;; guessed by decompiler + (flex-blend float :offset-assert 11784) + (stable-joints int8 :offset-assert 11788) + (ragdoll-joint-remap uint8 100 :offset-assert 11789) ;; guessed by decompiler + (allow-destabilize uint64 :offset-assert 11896) + (bg-collide-with uint32 :offset-assert 11904) + (water-info water-info :inline :offset-assert 11920) + ) + :method-count-assert 26 + :size-assert #x2ecc + :flag-assert #x1a00002ecc + (:methods + (ragdoll-method-9 () none) ;; 9 ;; (ragdoll-method-9 (_type_ matrix process-drawable) none) + (ragdoll-method-10 () none) ;; 10 ;; (ragdoll-method-10 (_type_ process-drawable symbol vector symbol) none) + (ragdoll-method-11 () none) ;; 11 ;; (turn-off-for-duration! (_type_ time-frame) none) + (ragdoll-method-12 () none) ;; 12 ;; (get-parent-joint (_type_ (inline-array ragdoll-joint)) ragdoll-joint) + (ragdoll-method-13 () none) ;; 13 ;; (ragdoll-method-13 (_type_ ragdoll-edit-info ragdoll-joint matrix matrix) none) + (ragdoll-method-14 () none) ;; 14 ;; (ragdoll-method-14 (_type_ process-drawable ragdoll-joint object matrix) none) + (ragdoll-method-15 () none) ;; 15 ;; (ragdoll-method-15 (_type_ process-drawable ragdoll-edit-info) none) + (ragdoll-method-16 () none) ;; 16 ;; (ragdoll-setup! (_type_ process-drawable ragdoll-setup) none) + (ragdoll-method-17 () none) ;; 17 ;; (ragdoll-method-17 (_type_ process-drawable) none) + (ragdoll-method-18 () none) ;; 18 ;; (ragdoll-method-18 (_type_) none) + (ragdoll-method-19 () none) ;; 19 ;; (ragdoll-method-19 (_type_ vector int object matrix) none) + (ragdoll-method-20 () none) ;; 20 ;; (reset-vec! (_type_ vector) none) + (ragdoll-method-21 () none) ;; 21 ;; (ragdoll-method-21 (_type_ vector vector float) vector) + (ragdoll-method-22 () none) ;; 22 ;; (get-max-angle-for-joint-idx (_type_ int) degrees) + (ragdoll-method-23 () none) ;; 23 ;; (ragdoll-method-23 (_type_ vector vector float symbol) none) + (ragdoll-method-24 () none) ;; 24 ;; (ragdoll-method-24 (_type_ vector int) none) + (ragdoll-method-25 () none) ;; 25 ;; (enable-ragdoll! (_type_ process-drawable) none) + ) + ) +|# + +#| +(deftype ragdoll-proc (process) + ((ragdoll ragdoll :offset-assert 144) ;; guessed by decompiler + (last-attack-id uint32 :offset-assert 148) + ) + :method-count-assert 21 + :size-assert #x98 + :flag-assert #x1500100098 + (:methods + (ragdoll-proc-method-9 () none) ;; 9 + (ragdoll-proc-method-10 () none) ;; 10 + (ragdoll-proc-method-11 () none) ;; 11 + (ragdoll-proc-method-12 () none) ;; 12 + (ragdoll-proc-method-13 () none) ;; 13 + (ragdoll-proc-method-14 () none) ;; 14 ;; (idle () _type_ :state) + (ragdoll-proc-method-15 () none) ;; 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) + (ragdoll-proc-method-19 () none) ;; 19 ;; (ragdoll-proc-method-19 (_type_) symbol) + (ragdoll-proc-method-20 () none) ;; 20 + ) + ) +|# + +;; (define-extern *ragdoll-edit-info* object) ;; ragdoll-edit-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; projectile-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(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 uint64 :offset-assert 336) ;; time-frame + (spawn-time uint64 :offset-assert 344) ;; time-frame + (options uint64 :offset-assert 352) ;; projectile-options + (last-target uint64 :offset-assert 360) ;; handle + (notify-handle uint64 :offset-assert 368) ;; handle + (owner-handle uint64 :offset-assert 376) ;; handle + (ignore-handle uint64 :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 uint64 :offset-assert 520) ;; time-frame + (desired-target uint64 :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 uint64 :offset-assert 48) ;; handle + (ent entity :offset-assert 56) ;; guessed by decompiler + (charge float :offset-assert 60) + (attack-id uint32 :offset-assert 64) + (options uint64 :offset-assert 72) ;; projectile-options + (notify-handle uint64 :offset-assert 80) ;; handle + (owner-handle uint64 :offset-assert 88) ;; handle + (ignore-handle uint64 :offset-assert 96) ;; handle + (timeout uint64 :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 uint64 :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) ;; (function type projectile-init-by-other-params process-tree dead-pool (pointer process)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; find-nearest-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype find-sorted-targets-params (structure) + ((near-point vector :inline :offset-assert 0) + (in-dir vector :inline :offset-assert 16) + (reject-team int8 :offset-assert 32) + (min-dist float :offset-assert 36) + (max-dist float :offset-assert 40) + (inv-slope-dist float :offset-assert 44) + (reject-inside-dist float :offset-assert 48) + (min-angle-cos float :offset-assert 52) + (max-angle-cos float :offset-assert 56) + (inv-slope-ang float :offset-assert 60) + (required-flags uint32 :offset-assert 64) + (priority-flags uint32 :offset-assert 68) + (weights vector :inline :offset-assert 80) + (validate basic :offset-assert 96) + (validator-params basic :offset-assert 100) + ) + :method-count-assert 9 + :size-assert #x68 + :flag-assert #x900000068 + ;; field validator-params uses ~A with a signed load. + ) +|# + +;; (define-extern *HACK-find-nearest-focusable-ignore* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype target (process-focusable) + ((vehicle uint64 :offset-assert 256) + (target-flags target-flags :offset-assert 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 UNKNOWN 4 :offset-assert 560) + (state-uint32 UNKNOWN 4 :offset-assert 560) + (state-float UNKNOWN 4 :offset-assert 560) + (state-button UNKNOWN 4 :offset-assert 576) + (state-vector UNKNOWN 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 UNKNOWN 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) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stats-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tr-stat (structure) + ((groups uint16 :offset-assert 0) + (fragments uint16 :offset-assert 2) + (tris uint32 :offset-assert 4) + (dverts uint32 :offset-assert 8) + (instances uint16 :offset-assert 12) + (pad uint16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype merc-global-stats (structure) + ((merc tr-stat :inline :offset-assert 0) + (emerc tr-stat :inline :offset-assert 16) + (mercneric tr-stat :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype perf-stat (structure) + ((frame-number uint32 :offset-assert 0) + (count uint32 :offset-assert 4) + (cycles uint32 :offset-assert 8) + (instructions uint32 :offset-assert 12) + (icache uint32 :offset-assert 16) + (dcache uint32 :offset-assert 20) + (select uint32 :offset-assert 24) + (ctrl uint32 :offset-assert 28) + (accum0 uint32 :offset-assert 32) + (accum1 uint32 :offset-assert 36) + (to-vu0-waits uint32 :offset-assert 40) + (to-spr-waits uint32 :offset-assert 44) + (from-spr-waits uint32 :offset-assert 48) + ) + :method-count-assert 14 + :size-assert #x34 + :flag-assert #xe00000034 + (:methods + (perf-stat-method-9 () none) ;; 9 ;; (perf-stat-method-9 () none) + (perf-stat-method-10 () none) ;; 10 ;; (print-to-stream (_type_ string basic) none) + (perf-stat-method-11 () none) ;; 11 ;; (start-profiling! (_type_) none) + (perf-stat-method-12 () none) ;; 12 ;; (stop-profiling! (_type_) none) + (perf-stat-method-13 () none) ;; 13 ;; (update-wait-stats (_type_ uint uint uint) none) + ) + ) +|# + +#| +(deftype perf-stat-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data perf-stat :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +;; (define-extern perf-stat-bucket->string function) ;; (function perf-stat-bucket string) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bsp-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bsp-node (structure) + ((front int16 :offset-assert 0) + (back int16 :offset-assert 2) + (front-box-min vector4b :inline :offset-assert 4) + (front-box-max vector4b :inline :offset-assert 8) + (back-box-min vector4b :inline :offset-assert 12) + (back-box-max vector4b :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype bsp-header (drawable) + ((all-visible-list (pointer uint8) :offset-assert 28) ;; guessed by decompiler + (visible-list-length int16 :offset-assert 32) + (drawable-trees drawable-tree-array :offset-assert 36) ;; guessed by decompiler + (pat pointer :offset-assert 40) ;; guessed by decompiler + (pat-length int32 :offset-assert 44) + ) + :method-count-assert 19 + :size-assert #x190 + :flag-assert #x1300000190 + (:methods + (bsp-header-method-17 () none) ;; 17 ;; (birth (_type_) none) + (bsp-header-method-18 () none) ;; 18 ;; (deactivate-entities (_type_) none) + ) + ) +|# + +#| +(deftype game-level (basic) + ((master-bsp basic :offset-assert 4) + ) + :method-count-assert 9 + :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) + (hither-bottom-left vector :inline :offset-assert 32) + (hither-bottom-right vector :inline :offset-assert 48) + (yon-top-left vector :inline :offset-assert 64) + (yon-top-right vector :inline :offset-assert 80) + (yon-bottom-left vector :inline :offset-assert 96) + (yon-bottom-right vector :inline :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype collide-stats (structure) + ((calls uint32 :offset-assert 0) + (spheres uint32 :offset-assert 4) + (nodes uint32 :offset-assert 8) + (frags uint32 :offset-assert 12) + (tris uint32 :offset-assert 16) + (output uint32 :offset-assert 20) + (total-target stopwatch :inline :offset-assert 28) + (target-cache-fill stopwatch :inline :offset-assert 60) + (target-ray-poly stopwatch :inline :offset-assert 92) + ) + :method-count-assert 9 + :size-assert #x78 + :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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-cache-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-puss-sphere (structure) + ((bsphere sphere :inline :offset-assert 0) + (bbox4w bounding-box4w :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype collide-puss-work (structure) + ((closest-pt vector :inline :offset-assert 0) + (tri-normal vector :inline :offset-assert 16) + (tri-bbox4w bounding-box4w :inline :offset-assert 32) + (spheres-bbox4w bounding-box4w :inline :offset-assert 64) + (spheres collide-puss-sphere 64 :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #xc60 + :flag-assert #xb00000c60 + (:methods + (collide-puss-work-method-9 () none) ;; 9 ;; (check-mesh-prim-against-spheres (_type_ collide-cache-prim collide-using-spheres-params) symbol) + (collide-puss-work-method-10 () none) ;; 10 ;; (check-sphere-prim-against-spheres (_type_ collide-cache-prim collide-using-spheres-params) symbol) + ) + ) +|# + +#| +(deftype collide-cache-tri (structure) + ((vertex vector 3 :offset-assert 0) ;; guessed by decompiler + (extra-quad uint8 16 :offset-assert 48) ;; guessed by decompiler + (pat pat-surface :offset-assert 48) ;; guessed by decompiler + (collide-ptr basic :offset-assert 52) + (prim-index uint16 :offset-assert 56) + (user16 uint16 :offset-assert 58) + (user32 uint32 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype collide-cache-prim (structure) + ((prim-core collide-prim-core :inline :offset-assert 0) + (extra-quad uint8 16 :offset-assert 32) ;; guessed by decompiler + (ccache collide-cache :offset-assert 32) ;; guessed by decompiler + (prim collide-shape-prim :offset-assert 36) ;; guessed by decompiler + (first-tri uint16 :offset-assert 40) + (num-tris uint16 :offset-assert 42) + (extra basic :offset-assert 44) + (world-sphere vector :inline :offset-assert 0) + (collide-as collide-spec :offset-assert 16) ;; guessed by decompiler + (action collide-action :offset-assert 24) ;; guessed by decompiler + (prim-type int8 :offset-assert 28) ;; prim-type + ) + :method-count-assert 11 + :size-assert #x30 + :flag-assert #xb00000030 + (:methods + (collide-cache-prim-method-9 () none) ;; 9 ;; (resolve-moving-sphere-tri (_type_ collide-query sphere vector float collide-action) float) + (collide-cache-prim-method-10 () none) ;; 10 ;; (resolve-moving-sphere-sphere (_type_ collide-query sphere vector float collide-action) float) + ) + ) +|# + +#| +(deftype collide-cache (basic) + ((num-tris int32 :offset-assert 4) + (max-tris int32 :offset-assert 8) + (num-prims int32 :offset-assert 12) + (max-prims int32 :offset-assert 16) + (ignore-mask pat-surface :offset-assert 20) ;; guessed by decompiler + (ignore-processes process 2 :offset-assert 24) ;; guessed by decompiler + (collide-box bounding-box :inline :offset-assert 32) + (collide-box4w bounding-box4w :inline :offset-assert 64) + (collide-with collide-spec :offset-assert 96) ;; guessed by decompiler + (unused uint32 :offset-assert 100) + (prims collide-cache-prim :offset-assert 112) ;; guessed by decompiler + (tris collide-cache-tri :offset-assert 128) ;; guessed by decompiler + ) + :method-count-assert 28 + :size-assert #x84 + :flag-assert #x1c00000084 + (:methods + (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) + (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) + (collide-cache-method-14 () none) ;; 14 ;; (fill-using-spheres (_type_ collide-query) none) + (collide-cache-method-15 () none) ;; 15 ;; (reset (_type_) none) + (collide-cache-method-16 () none) ;; 16 ;; (probe-using-line-sphere (_type_ collide-query) float) + (collide-cache-method-17 () none) ;; 17 ;; (probe-using-spheres (_type_ collide-query) symbol) + (collide-cache-method-18 () none) ;; 18 ;; (fill-from-bg (_type_ (function collide-hash int collide-list collide-query int) (function collide-cache collide-list collide-query none) collide-query) none) + (collide-cache-method-19 () none) ;; 19 ;; (fill-from-fg-boxes (_type_) none) + (collide-cache-method-20 () none) ;; 20 ;; (fill-from-fg-line-sphere (_type_ collide-query) none) + (collide-cache-method-21 () none) ;; 21 ;; (fill-from-water (_type_ water-control) none) + (collide-cache-method-22 () none) ;; 22 ;; (collide-cache-method-22 () none) + (collide-cache-method-23 () none) ;; 23 ;; (collide-cache-method-23 () none) + (collide-cache-method-24 () none) ;; 24 ;; (collide-cache-method-24 () none) + (collide-cache-method-25 () none) ;; 25 ;; (collide-cache-method-25 () none) + (collide-cache-method-26 () none) ;; 26 + (collide-cache-method-27 () none) ;; 27 + ) + ) +|# + +#| +(deftype collide-list-item (structure) + ((mesh instance-tie :offset-assert 0) ;; guessed by decompiler + (inst basic :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype collide-list (structure) + ((num-items int32 :offset-assert 0) + (items collide-list-item 256 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x810 + :flag-assert #x900000810 + ) +|# + +;; (define-extern *collide-cache* object) ;; collide-cache +;; (define-extern *collide-list* object) ;; collide-list + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-query (structure) + ((best-other-tri collide-tri-result :inline :offset-assert 0) + (best-my-tri collide-tri-result :inline :offset-assert 0) + (ignore-processes process-tree 2 :offset-assert 88) ;; guessed by decompiler + (ignore-process0 process-tree :offset-assert 88) ;; guessed by decompiler + (ignore-process1 process-tree :offset-assert 92) ;; guessed by decompiler + (ignore-pat pat-surface :offset-assert 96) ;; guessed by decompiler + (collide-with collide-spec :offset-assert 100) ;; guessed by decompiler + (overlay-params uint32 3 :offset-assert 112) ;; guessed by decompiler + (bbox bounding-box :inline :offset-assert 128) + (bbox4w bounding-box4w :inline :offset-assert 160) + (bsphere sphere :inline :offset-assert 192) + (start-pos vector :inline :offset-assert 208) + (move-dist vector :inline :offset-assert 224) + (rlength vector :inline :offset-assert 240) + (exit-planes plane 2 :offset-assert 256) ;; guessed by decompiler + (radius float :offset-assert 268) + (inv-mat matrix :inline :offset-assert 288) + (final-pos vector :inline :offset-assert 240) + (spheres (inline-array sphere) :offset-assert 112) ;; guessed by decompiler + (num-spheres uint32 :offset-assert 116) + (solid-only symbol :offset-assert 120) ;; guessed by decompiler + (best-dist float :offset-assert 112) + (best-other-prim collide-shape-prim :offset-assert 116) ;; guessed by decompiler + (best-my-prim collide-shape-prim :offset-assert 120) ;; guessed by decompiler + (move-vec vector :inline :offset-assert 224) + (best-u float :offset-assert 112) + (action-mask collide-action :offset-assert 352) ;; guessed by decompiler + (nav-mesh basic :offset-assert 116) + (best-ccache-prim collide-cache-prim :offset-assert 116) + (local-box4w bounding-box4w :inline :offset-assert 368) + (search-box bounding-box4w :inline :offset-assert 400) + (search-vector vector4w :inline :offset-assert 432) + (instance-mat matrix :inline :offset-assert 448) + (instance-ptr basic :offset-assert 512) + (x-addr uint32 :offset-assert 516) + (x-step uint32 :offset-assert 520) + (y-addr uint32 :offset-assert 524) + (y-step uint32 :offset-assert 528) + (z-addr uint32 :offset-assert 532) + (z-step uint32 :offset-assert 536) + ) + :method-count-assert 9 + :size-assert #x21c + :flag-assert #x90000021c + ) +|# + +;; (define-extern *collide-test-flag* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shrubbery-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype billboard (drawable) + ((flat adgif-shader :inline :offset-assert 32) + ) + :method-count-assert 17 + :size-assert #x70 + :flag-assert #x1100000070 + ) +|# + +#| +(deftype shrub-view-data (structure) + ((data uint128 3 :offset-assert 0) ;; guessed by decompiler + (texture-giftag qword :inline :offset-assert 0) ;; gs-gif-tag :inline + (consts vector :inline :offset-assert 16) + (fog-clamp vector :inline :offset-assert 32) + (tex-start-ptr int32 :offset-assert 16) + (gifbufsum float :offset-assert 16) + (mtx-buf-ptr int32 :offset-assert 20) + (exp23 float :offset-assert 20) + (fog-0 float :offset-assert 24) + (fog-1 float :offset-assert 28) + (fog-min float :offset-assert 32) + (fog-max float :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype shrubbery (drawable) + ((textures (inline-array adgif-shader) :offset-assert 4) ;; guessed by decompiler + (header qword :offset-assert 8) + (obj-qwc uint8 :offset-assert 12) + (vtx-qwc uint8 :offset-assert 13) + (col-qwc uint8 :offset-assert 14) + (stq-qwc uint8 :offset-assert 15) + (obj uint32 :offset-assert 16) + (vtx uint32 :offset-assert 20) + (col uint32 :offset-assert 24) + (stq uint32 :offset-assert 28) + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ) +|# + +#| +(deftype instance-shrubbery (instance) + ((flat-normal vector :inline :offset-assert 64) + (flat-hwidth float :offset-assert 76) + (color uint32 :offset-assert 8) + ) + :method-count-assert 17 + :size-assert #x50 + :flag-assert #x1100000050 + ) +|# + +;; (deftype drawable-inline-array-instance-shrub (drawable-inline-array) +;; () +;; :flag-assert #x1100000074 +;; ) + +;; (deftype drawable-tree-instance-shrub (drawable-tree) +;; () +;; :flag-assert #x1100000020 +;; ) + +#| +(deftype generic-shrub-fragment (drawable) + ((textures (inline-array adgif-shader) :offset-assert 4) ;; guessed by decompiler + (vtx-cnt uint32 :offset-assert 8) + (cnt-qwc uint8 :offset-assert 12) + (vtx-qwc uint8 :offset-assert 13) + (col-qwc uint8 :offset-assert 14) + (stq-qwc uint8 :offset-assert 15) + (cnt uint32 :offset-assert 16) + (vtx uint32 :offset-assert 20) + (col uint32 :offset-assert 24) + (stq uint32 :offset-assert 28) + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ) +|# + +;; (deftype prototype-shrubbery (drawable-inline-array) +;; () +;; :flag-assert #x1100000044 +;; ) + +;; (deftype prototype-trans-shrubbery (prototype-shrubbery) +;; () +;; :flag-assert #x1100000044 +;; ) + +;; (deftype prototype-generic-shrub (drawable-group) +;; () +;; :flag-assert #x1100000020 +;; ) + +#| +(deftype shrubbery-matrix (structure) + ((mat matrix :inline :offset-assert 0) + (color qword :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype shrub-near-packet (structure) + ((matrix-tmpl dma-packet :inline :offset-assert 0) + (header-tmpl dma-packet :inline :offset-assert 16) + (stq-tmpl dma-packet :inline :offset-assert 32) + (color-tmpl dma-packet :inline :offset-assert 48) + (vertex-tmpl dma-packet :inline :offset-assert 64) + (mscal-tmpl dma-packet :inline :offset-assert 80) + (init-tmpl dma-packet :inline :offset-assert 96) + (init-data qword 8 :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +#| +(deftype instance-shrub-work (structure) + ((dummy qword 3 :offset-assert 0) ;; guessed by decompiler + (chaina qword 8 :offset-assert 48) ;; guessed by decompiler + (chainb qword 8 :offset-assert 176) ;; guessed by decompiler + (colors rgba 1024 :offset-assert 304) ;; guessed by decompiler + (matrix-tmpl qword 20 :offset-assert 4400) ;; guessed by decompiler + (count-tmpl vector4w 20 :offset-assert 4720) ;; guessed by decompiler + (mscalf-tmpl dma-packet :inline :offset-assert 5040) + (mscalf-ret-tmpl dma-packet :inline :offset-assert 5056) + (adgif-tmpl dma-gif-packet :inline :offset-assert 5072) + (billboard-tmpl dma-gif-packet :inline :offset-assert 5104) + (billboard-const vector :inline :offset-assert 5136) + (shrub-near-packets shrub-near-packet 6 :offset-assert 5152) ;; guessed by decompiler + (dma-ref dma-packet :inline :offset-assert 6016) + (dma-end dma-packet :inline :offset-assert 6032) + (wind-const vector :inline :offset-assert 6048) + (constants vector :inline :offset-assert 6064) + (color-constant vector4w :inline :offset-assert 6080) + (hmge-d vector :inline :offset-assert 6096) + (hvdf-offset vector :inline :offset-assert 6112) + (wind-force vector :inline :offset-assert 6128) + (color vector :inline :offset-assert 6144) + (bb-color vector :inline :offset-assert 6160) + (min-dist vector :inline :offset-assert 6176) + (temp-vec vector :inline :offset-assert 6192) + (guard-plane plane 4 :offset-assert 6208) ;; guessed by decompiler + (plane plane 4 :offset-assert 6272) ;; guessed by decompiler + (last uint32 4 :offset-assert 6336) ;; guessed by decompiler + (next uint32 4 :offset-assert 6352) ;; guessed by decompiler + (count uint16 4 :offset-assert 6368) ;; guessed by decompiler + (mod-count uint16 4 :offset-assert 6376) ;; guessed by decompiler + (wind-vectors uint32 :offset-assert 6384) + (instance-ptr uint32 :offset-assert 6388) + (chain-ptr uint32 :offset-assert 6392) + (chain-ptr-next uint32 :offset-assert 6396) + (stack-ptr uint32 :offset-assert 6400) + (bucket-ptr uint32 :offset-assert 6404) + (src-ptr uint32 :offset-assert 6408) + (to-spr uint32 :offset-assert 6412) + (from-spr uint32 :offset-assert 6416) + (shrub-count uint32 :offset-assert 6420) + (stack-ptr uint32 :offset-assert 6400) + (node uint32 6 :offset-assert 6428) ;; guessed by decompiler + (length uint32 6 :offset-assert 6452) ;; guessed by decompiler + (prototypes uint32 :offset-assert 6476) + (bucket-ptr uint32 :offset-assert 6404) + (start-bank uint8 20 :offset-assert 6484) ;; guessed by decompiler + (buffer-index uint32 :offset-assert 6504) + (current-spr uint32 :offset-assert 6508) + (current-mem uint32 :offset-assert 6512) + (current-shrub-near-packet uint32 :offset-assert 6516) + (current-shrub-near-trans-packet uint32 :offset-assert 6520) + (to-spr uint32 :offset-assert 6412) + (dma-buffer basic :offset-assert 6528) + (near-last uint32 :offset-assert 6532) + (near-next uint32 :offset-assert 6536) + (near-count uint32 :offset-assert 6540) + (near-trans-last uint32 :offset-assert 6544) + (near-trans-next uint32 :offset-assert 6548) + (near-trans-count uint32 :offset-assert 6552) + (last-shrubs uint32 :offset-assert 6556) + (chains uint32 :offset-assert 6560) + (flags uint32 :offset-assert 6564) + (node-count uint32 :offset-assert 6568) + (inst-count uint32 :offset-assert 6572) + (wait-from-spr uint32 :offset-assert 6576) + (wait-to-spr uint32 :offset-assert 6580) + (texture-dists uint32 :offset-assert 6584) + ) + :method-count-assert 9 + :size-assert #x19bc + :flag-assert #x9000019bc + ) +|# + +#| +(deftype instance-shrub-dma (structure) + ((instancea uint128 325 :offset-assert 0) ;; guessed by decompiler + (instanceb uint128 325 :offset-assert 5200) ;; guessed by decompiler + (outa uint128 128 :offset-assert 10400) ;; guessed by decompiler + (outb uint128 128 :offset-assert 12448) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x38a0 + :flag-assert #x9000038a0 + ) +|# + +;; (define-extern shrubbery-login-post-texture function) ;; (function shrubbery none) +;; (define-extern *shrub-state* object) ;; int + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tie-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tie-fragment-debug (structure) + ((num-tris uint16 :offset-assert 0) + (num-dverts uint16 :offset-assert 2) + (debug-lines (array vector-array) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype tie-fragment (drawable) + ((gif-ref (inline-array adgif-shader) :offset-assert 4) ;; guessed by decompiler + (point-ref uint32 :offset-assert 8) + (color-index uint16 :offset-assert 12) + (base-colors uint8 :offset-assert 14) + (tex-count uint16 :offset-assert 32) + (gif-count uint16 :offset-assert 34) + (vertex-count uint16 :offset-assert 36) + (color-count uint16 :offset-assert 38) + (dp-ref uint32 :offset-assert 40) + (dp-qwc uint32 :offset-assert 44) + (generic-ref uint32 :offset-assert 48) + (generic-count uint16 :offset-assert 52) + (normal-count uint16 :offset-assert 54) + (normal-ref uint32 :offset-assert 56) + (debug tie-fragment-debug :offset-assert 60) + ) + :method-count-assert 17 + :size-assert #x40 + :flag-assert #x1100000040 + ) +|# + +#| +(deftype instance-tie (instance) + ((color-indices uint32 :offset-assert 8) + (bucket-ptr prototype-bucket-tie :offset-assert 12) ;; guessed by decompiler + (max-scale uint16 :offset-assert 38) + (rmin-scale uint16 :offset-assert 54) + ) + :method-count-assert 17 + :size-assert #x40 + :flag-assert #x1100000040 + ) +|# + +;; (deftype drawable-inline-array-instance-tie (drawable-inline-array) +;; () +;; :flag-assert #x1100000064 +;; ) + +#| +(deftype drawable-tree-instance-tie (drawable-tree) + ((id int16 :offset-assert 0) + (bsphere vector :inline :offset-assert 12) + (length int16 :offset-assert 2) + (data drawable :dynamic :offset-assert 28) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (prototypes proxy-prototype-array-tie :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ) +|# + +;; (deftype prototype-tie (drawable-inline-array) +;; () +;; :flag-assert #x1100000064 +;; ) + +#| +(deftype tie-matrix (structure) + ((mat matrix :inline :offset-assert 0) + (morph qword :inline :offset-assert 64) + (fog qword :inline :offset-assert 80) + (envmap-flag uint32 :offset-assert 80) + (guard-flag uint32 :offset-assert 84) + (vertex-alpha float :offset-assert 88) + (fog-value float :offset-assert 92) + (fixed-alpha float :offset-assert 68) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype instance-tie-work (structure) + ((wind-const vector :inline :offset-assert 0) + (hmge-d vector :inline :offset-assert 16) + (hvdf-offset vector :inline :offset-assert 32) + (wind-force vector :inline :offset-assert 48) + (constant vector :inline :offset-assert 64) + (far-morph vector :inline :offset-assert 80) + (dist-test vector :inline :offset-assert 96) + (min-dist vector :inline :offset-assert 112) + (guard-plane plane 4 :offset-assert 128) ;; guessed by decompiler + (upload-color-0 dma-packet :inline :offset-assert 192) + (upload-color-1 dma-packet :inline :offset-assert 208) + (upload-color-2 dma-packet :inline :offset-assert 224) + (upload-color-ret dma-packet :inline :offset-assert 240) + (upload-color-temp dma-packet :inline :offset-assert 256) + (generic-color-0 dma-packet :inline :offset-assert 272) + (generic-color-1 dma-packet :inline :offset-assert 288) + (generic-color-end dma-packet :inline :offset-assert 304) + (envmap-color-0 dma-packet :inline :offset-assert 320) + (envmap-color-1 dma-packet :inline :offset-assert 336) + (tie-scissor-perspective-matrix matrix :inline :offset-assert 352) + (tod-env-color vector :inline :offset-assert 416) + (morph-temp vector :inline :offset-assert 432) + (fog-temp vector :inline :offset-assert 448) + (fade-temp float :offset-assert 464) + (wind-vectors uint32 :offset-assert 468) + (test-id uint32 :offset-assert 472) + (test-id2 uint32 :offset-assert 476) + (dma-buffer basic :offset-assert 480) + (to-spr uint32 :offset-assert 484) + (from-spr uint32 :offset-assert 488) + (wind-work uint32 :offset-assert 492) + (cur-vis-bits uint32 :offset-assert 496) + (end-vis-bits uint32 :offset-assert 500) + (refl-fade-fac float :offset-assert 504) + (refl-fade-end float :offset-assert 508) + (flags uint32 :offset-assert 512) + (vanish-flag uint32 :offset-assert 516) + (translucent-flag uint32 :offset-assert 520) + (wait-from-spr uint32 :offset-assert 524) + (wait-to-spr uint32 :offset-assert 528) + (use-etie symbol :offset-assert 532) ;; guessed by decompiler + (buffer-start uint32 :offset-assert 536) + (buffer-end uint32 :offset-assert 540) + (tfrag-dists uint32 :offset-assert 544) + (alpha-dists uint32 :offset-assert 548) + (water-dists uint32 :offset-assert 552) + ) + :method-count-assert 9 + :size-assert #x22c + :flag-assert #x90000022c + ) +|# + +#| +(deftype instance-tie-dma (structure) + ((banka instance-tie 32 :offset-assert 4) ;; guessed by decompiler + (bankb instance-tie 32 :offset-assert 2052) ;; guessed by decompiler + (outa uint128 256 :offset-assert 4096) ;; guessed by decompiler + (outb uint128 256 :offset-assert 8192) ;; guessed by decompiler + (work instance-tie-work :offset-assert 12288) + ) + :method-count-assert 9 + :size-assert #x3000 + :flag-assert #x900003000 + ) +|# + +#| +(deftype prototype-tie-work (structure) + ((upload-flushe dma-packet :inline :offset-assert 0) + (upload-palette dma-packet :inline :offset-assert 16) + (upload-model-0 dma-packet :inline :offset-assert 32) + (upload-model-1 dma-packet :inline :offset-assert 48) + (upload-model-2 dma-packet :inline :offset-assert 64) + (upload-model-3 dma-packet :inline :offset-assert 80) + (upload-model-near-0 dma-packet :inline :offset-assert 96) + (upload-model-near-1 dma-packet :inline :offset-assert 112) + (upload-model-near-2 dma-packet :inline :offset-assert 128) + (upload-model-near-3 dma-packet :inline :offset-assert 144) + (upload-model-near-4 dma-packet :inline :offset-assert 160) + (envmap-palette dma-packet :inline :offset-assert 176) + (envmap-shader dma-packet :inline :offset-assert 192) + (upload-envmap-0 dma-packet :inline :offset-assert 208) + (upload-envmap-1 dma-packet :inline :offset-assert 224) + (upload-envmap-2 dma-packet :inline :offset-assert 240) + (upload-envmap-3 dma-packet :inline :offset-assert 256) + (upload-envmap-4 dma-packet :inline :offset-assert 272) + (upload-envmap-scissor-4 dma-packet :inline :offset-assert 288) + (generic-palette dma-packet :inline :offset-assert 304) + (generic-model-0 dma-packet :inline :offset-assert 320) + (generic-model-1 dma-packet :inline :offset-assert 336) + (generic-model-2 dma-packet :inline :offset-assert 352) + (model-next dma-packet :inline :offset-assert 368) + (clamp uint64 :offset-assert 384) + (prototype-array basic :offset-assert 392) + (wait-from-spr uint32 :offset-assert 396) + (wait-to-spr uint32 :offset-assert 400) + (mood mood-context :offset-assert 404) + (wide-level-index uint32 :offset-assert 408) + (last uint32 16 :offset-assert 416) ;; guessed by decompiler + (next uint32 16 :offset-assert 480) ;; guessed by decompiler + (count uint16 16 :offset-assert 544) ;; guessed by decompiler + (tie-last uint32 :offset-assert 416) + (tie-next uint32 :offset-assert 480) + (tie-count uint16 :offset-assert 544) + (trans-last uint32 :offset-assert 420) + (trans-next uint32 :offset-assert 484) + (trans-count uint16 :offset-assert 546) + (water-last uint32 :offset-assert 424) + (water-next uint32 :offset-assert 488) + (water-count uint16 :offset-assert 548) + (scissor-last uint32 :offset-assert 428) + (scissor-next uint32 :offset-assert 492) + (scissor-count uint16 :offset-assert 550) + (scissor-trans-last uint32 :offset-assert 432) + (scissor-trans-next uint32 :offset-assert 496) + (scissor-trans-count uint16 :offset-assert 552) + (scissor-water-last uint32 :offset-assert 436) + (scissor-water-next uint32 :offset-assert 500) + (scissor-water-count uint16 :offset-assert 554) + (envmap-last uint32 :offset-assert 440) + (envmap-next uint32 :offset-assert 504) + (envmap-count uint16 :offset-assert 556) + (envmap-trans-last uint32 :offset-assert 444) + (envmap-trans-next uint32 :offset-assert 508) + (envmap-trans-count uint16 :offset-assert 558) + (envmap-water-last uint32 :offset-assert 448) + (envmap-water-next uint32 :offset-assert 512) + (envmap-water-count uint16 :offset-assert 560) + (envmap-scissor-last uint32 :offset-assert 452) + (envmap-scissor-next uint32 :offset-assert 516) + (envmap-scissor-count uint16 :offset-assert 562) + (envmap-scissor-trans-last uint32 :offset-assert 456) + (envmap-scissor-trans-next uint32 :offset-assert 520) + (envmap-scissor-trans-count uint16 :offset-assert 564) + (envmap-scissor-water-last uint32 :offset-assert 460) + (envmap-scissor-water-next uint32 :offset-assert 524) + (envmap-scissor-water-count uint16 :offset-assert 566) + (generic-last uint32 :offset-assert 464) + (generic-next uint32 :offset-assert 528) + (generic-count uint16 :offset-assert 568) + (generic-trans-last uint32 :offset-assert 468) + (generic-trans-next uint32 :offset-assert 532) + (generic-trans-count uint16 :offset-assert 570) + (generic-water-last uint32 :offset-assert 472) + (generic-water-next uint32 :offset-assert 536) + (generic-water-count uint16 :offset-assert 572) + (vanish-last uint32 :offset-assert 476) + (vanish-next uint32 :offset-assert 540) + (vanish-count uint16 :offset-assert 574) + ) + :method-count-assert 9 + :size-assert #x240 + :flag-assert #x900000240 + ) +|# + +#| +(deftype prototype-tie-dma (structure) + ((colora rgba 256 :offset-assert 0) ;; guessed by decompiler + (colorb rgba 256 :offset-assert 1024) ;; guessed by decompiler + (outa uint128 256 :offset-assert 2048) ;; guessed by decompiler + (outb uint128 256 :offset-assert 6144) ;; guessed by decompiler + (geometry uint32 4 :offset-assert 10240) ;; guessed by decompiler + (next uint32 12 :offset-assert 10256) ;; guessed by decompiler + (count uint16 12 :offset-assert 10304) ;; guessed by decompiler + (counts uint32 4 :offset-assert 10328) ;; guessed by decompiler + (palette-ptr uint32 :offset-assert 10336) + (model-ptr uint32 :offset-assert 10340) + (ret-ptr uint32 :offset-assert 10344) + (length uint32 :offset-assert 10348) + (flags uint32 :offset-assert 10352) + (dma-buffer basic :offset-assert 10356) + (this-frag-count uint32 :offset-assert 10360) + (frag-count uint8 4 :offset-assert 10364) ;; guessed by decompiler + (from-spr uint32 :offset-assert 10368) + (to-spr uint32 :offset-assert 10372) + (spr-out uint32 :offset-assert 10376) + (this-count uint32 :offset-assert 10380) + (scissor-geometry uint32 :offset-assert 10240) + (near-geometry uint32 :offset-assert 10244) + (mid-geometry uint32 :offset-assert 10248) + (far-geometry uint32 :offset-assert 10252) + (scissor-frag-count uint8 :offset-assert 10364) + (near-frag-count uint8 :offset-assert 10365) + (mid-frag-count uint8 :offset-assert 10366) + (far-frag-count uint8 :offset-assert 10367) + (tie-scissor-next uint32 :offset-assert 10256) + (tie-near-next uint32 :offset-assert 10260) + (tie-mid-next uint32 :offset-assert 10264) + (tie-far-next uint32 :offset-assert 10268) + (trans-scissor-next uint32 4 :offset-assert 10256) ;; guessed by decompiler + (trans-near-next uint32 :offset-assert 10260) + (trans-mid-next uint32 :offset-assert 10264) + (trans-far-next uint32 :offset-assert 10268) + (water-scissor-next uint32 4 :offset-assert 10256) ;; guessed by decompiler + (water-near-next uint32 :offset-assert 10260) + (water-mid-next uint32 :offset-assert 10264) + (water-far-next uint32 :offset-assert 10268) + (envmap-scissor-next uint32 4 :offset-assert 10272) ;; guessed by decompiler + (envmap-near-next uint32 :offset-assert 10276) + (envmap-mid-next uint32 :offset-assert 10280) + (envmap-far-next uint32 :offset-assert 10284) + (generic-near-next uint32 :offset-assert 10288) + (generic-mid-next uint32 :offset-assert 10292) + (generic-far-next uint32 :offset-assert 10296) + (vanish-next uint32 :offset-assert 10300) + (tie-count uint16 :offset-assert 10304) + (tie-scissor-count uint16 :offset-assert 10304) + (tie-near-count uint16 :offset-assert 10306) + (tie-mid-count uint16 :offset-assert 10308) + (tie-far-count uint16 :offset-assert 10310) + (trans-count uint16 :offset-assert 10304) + (trans-scissor-count uint16 :offset-assert 10304) + (trans-near-count uint16 :offset-assert 10306) + (trans-mid-count uint16 :offset-assert 10308) + (trans-far-count uint16 :offset-assert 10310) + (water-count uint16 :offset-assert 10304) + (water-scissor-count uint16 :offset-assert 10304) + (water-near-count uint16 :offset-assert 10306) + (water-mid-count uint16 :offset-assert 10308) + (water-far-count uint16 :offset-assert 10310) + (envmap-count uint16 :offset-assert 10312) + (envmap-scissor-count uint16 :offset-assert 10312) + (envmap-near-count uint16 :offset-assert 10314) + (envmap-mid-count uint16 :offset-assert 10316) + (envmap-far-count uint16 :offset-assert 10318) + (generic-count uint16 :offset-assert 10320) + (generic-near-count uint16 :offset-assert 10320) + (generic-mid-count uint16 :offset-assert 10322) + (generic-far-count uint16 :offset-assert 10324) + (vanish-count uint16 :offset-assert 10326) + (next-clear uint32 3 :offset-assert 10256) ;; guessed by decompiler + (count-clear uint16 3 :offset-assert 10304) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2890 + :flag-assert #x900002890 + ) +|# + +;; (define-extern *instance-tie-work-copy* object) ;; instance-tie-work + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tfrag-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tfragment-stats (structure) + ((num-tris uint16 4 :offset-assert 0) ;; guessed by decompiler + (num-dverts uint16 4 :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype tfragment-debug-data (structure) + ((stats tfragment-stats :inline :offset-assert 0) + (debug-lines (array vector-array) :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype generic-tfragment (structure) + ((dummy int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype tfragment (drawable) + ((color-index uint16 :offset-assert 6) + (debug-data tfragment-debug-data :offset-assert 8) + (color-indices uint32 :offset-assert 12) + (colors uint32 :offset-assert 12) + (dma-chain uint32 3 :offset-assert 32) ;; guessed by decompiler + (dma-common uint32 :offset-assert 32) + (dma-level-0 uint32 :offset-assert 32) + (dma-base uint32 :offset-assert 36) + (dma-level-1 uint32 :offset-assert 40) + (dma-qwc uint8 4 :offset-assert 44) ;; guessed by decompiler + (shader (inline-array adgif-shader) :offset-assert 48) ;; guessed by decompiler + (num-shaders uint8 :offset-assert 52) + (num-base-colors uint8 :offset-assert 53) + (num-level0-colors uint8 :offset-assert 54) + (num-level1-colors uint8 :offset-assert 55) + (color-offset uint8 :offset-assert 56) + (color-count uint8 :offset-assert 57) + (texture-masks-index uint16 :offset-assert 58) + (generic generic-tfragment :offset-assert 60) + ) + :method-count-assert 17 + :size-assert #x40 + :flag-assert #x1100000040 + ) +|# + +;; (deftype drawable-inline-array-tfrag (drawable-inline-array) +;; () +;; :flag-assert #x1100000064 +;; ) + +;; (deftype drawable-inline-array-tfrag-trans (drawable-inline-array-tfrag) +;; () +;; :flag-assert #x11000000b4 +;; ) + +;; (deftype drawable-inline-array-tfrag-water (drawable-inline-array-tfrag) +;; () +;; :flag-assert #x11000000b4 +;; ) + +;; (deftype drawable-tree-tfrag (drawable-tree) +;; () +;; :flag-assert #x1100000020 +;; ) + +;; (deftype drawable-tree-tfrag-trans (drawable-tree-tfrag) +;; () +;; :flag-assert #x1100000020 +;; ) + +;; (deftype drawable-tree-tfrag-water (drawable-tree-tfrag) +;; () +;; :flag-assert #x1100000020 +;; ) + +;; (deftype drawable-tree-tfrag-shared (drawable-tree-tfrag) +;; () +;; :flag-assert #x1100000020 +;; ) + +;; (deftype drawable-tree-tfrag-trans-shared (drawable-tree-tfrag-shared) +;; () +;; :flag-assert #x1100000020 +;; ) + +;; (deftype drawable-tree-tfrag-water-shared (drawable-tree-tfrag-shared) +;; () +;; :flag-assert #x1100000020 +;; ) + +#| +(deftype tfrag-dists (structure) + ((data uint32 16 :offset-assert 0) ;; guessed by decompiler + (vector vector 4 :offset-assert 0) ;; guessed by decompiler + (k0s vector 2 :offset-assert 0) ;; guessed by decompiler + (k1s vector 2 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype tfrag-data (structure) + ((data uint32 56 :offset-assert 0) ;; guessed by decompiler + (vector vector 14 :offset-assert 0) ;; guessed by decompiler + (fog vector :inline :offset-assert 0) + (val vector :inline :offset-assert 16) + (strgif qword :inline :offset-assert 32) ;; gs-gif-tag :inline + (fangif qword :inline :offset-assert 48) ;; gs-gif-tag :inline + (adgif qword :inline :offset-assert 64) ;; gs-gif-tag :inline + (hvdf-offset vector :inline :offset-assert 80) + (hmge-scale vector :inline :offset-assert 96) + (invh-scale vector :inline :offset-assert 112) + (ambient vector :inline :offset-assert 128) + (guard vector :inline :offset-assert 144) + (dists tfrag-dists :inline :offset-assert 160) + (k0s uint128 2 :offset-assert 160) ;; guessed by decompiler + (k1s uint128 2 :offset-assert 192) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xe0 + :flag-assert #x9000000e0 + ) +|# + +#| +(deftype tfrag-control (structure) + ((num-base-points uint32 :offset-assert 0) + (num-shared-base-points uint32 :offset-assert 4) + (num-level0-points uint32 :offset-assert 8) + (num-shared-level0-points uint32 :offset-assert 12) + (num-level1-points uint32 :offset-assert 16) + (num-shared-level1-points uint32 :offset-assert 20) + (ptr-vtxdata uint32 :offset-assert 24) + (ptr-base-points uint32 :offset-assert 28) + (ptr-shared-base-points uint32 :offset-assert 32) + (ptr-level0-points uint32 :offset-assert 36) + (ptr-shared-level0-points uint32 :offset-assert 40) + (ptr-level1-points uint32 :offset-assert 44) + (ptr-shared-level1-points uint32 :offset-assert 48) + (ptr-draw-points uint32 :offset-assert 52) + (ptr-interpolated-0 uint32 :offset-assert 56) + (ptr-shared-interpolated-0 uint32 :offset-assert 60) + (ptr-interpolated1 uint32 :offset-assert 64) + (ptr-shared-interpolated1 uint32 :offset-assert 68) + (ptr-strip-data uint32 :offset-assert 72) + (ptr-texture-data uint32 :offset-assert 76) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype tfrag-stats (structure) + ((from int32 :offset-assert 0) + (to int32 :offset-assert 4) + (cnt int32 :offset-assert 8) + (tris int32 :offset-assert 12) + (tfaces int32 :offset-assert 16) + (tfrags int32 :offset-assert 20) + (dtris int32 :offset-assert 24) + (base-verts int32 :offset-assert 28) + (level0-verts int32 :offset-assert 32) + (level1-verts int32 :offset-assert 36) + (dma-cnt int32 :offset-assert 40) + (dma-dta int32 :offset-assert 44) + (dma-tex int32 :offset-assert 48) + (strips int32 :offset-assert 52) + (drawpoints int32 :offset-assert 56) + (vif int32 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype tfrag-packet (structure) + ((tag uint128 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype tfrag-work (structure) + ((base-tmpl dma-packet :inline :offset-assert 0) + (level-0-tmpl dma-packet :inline :offset-assert 16) + (common-tmpl dma-packet :inline :offset-assert 32) + (level-1-tmpl dma-packet :inline :offset-assert 48) + (color-tmpl dma-packet :inline :offset-assert 64) + (frag-dists vector :inline :offset-assert 80) + (min-dist vector :inline :offset-assert 96) + (color-ptr vector4w :inline :offset-assert 112) + (tr-stat-tfrag tr-stat :offset-assert 128) + (tr-stat-tfrag-scissor tr-stat :offset-assert 132) + (vu1-enable-tfrag int32 :offset-assert 136) + (vu1-enable-tfrag-scissor int32 :offset-assert 140) + (cur-vis-bits uint32 :offset-assert 144) + (end-vis-bits uint32 :offset-assert 148) + (src-ptr uint32 :offset-assert 152) + (last-call uint32 :offset-assert 156) + (dma-buffer basic :offset-assert 160) + (test-id uint32 :offset-assert 164) + (wait-from-spr uint32 :offset-assert 168) + (wait-to-spr uint32 :offset-assert 172) + (near-wait-from-spr uint32 :offset-assert 176) + (near-wait-to-spr uint32 :offset-assert 180) + (max-fragment uint16 :offset-assert 184) + (min-fragment uint16 :offset-assert 186) + (texture-dists uint32 :offset-assert 188) + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +#| +(deftype tfrag-dma (structure) + ((banka tfragment 16 :offset-assert 4) ;; guessed by decompiler + (bankb tfragment 16 :offset-assert 1028) ;; guessed by decompiler + (outa uint128 128 :offset-assert 2048) ;; guessed by decompiler + (outb uint128 128 :offset-assert 4096) ;; guessed by decompiler + (colors rgba 2048 :offset-assert 6144) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x37fc + :flag-assert #x9000037fc + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; background-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype background-work (basic) + ((tfrag-tree-count int32 :offset-assert 4) + (tfrag-trees drawable-tree-tfrag 19 :offset-assert 8) ;; guessed by decompiler + (tfrag-levels level 19 :offset-assert 84) ;; guessed by decompiler + (tfrag-trans-tree-count int32 :offset-assert 160) + (tfrag-trans-trees drawable-tree-tfrag-trans 19 :offset-assert 164) ;; guessed by decompiler + (tfrag-trans-levels level 19 :offset-assert 240) ;; guessed by decompiler + (tfrag-water-tree-count int32 :offset-assert 316) + (tfrag-water-trees drawable-tree-tfrag-water 19 :offset-assert 320) ;; guessed by decompiler + (tfrag-water-levels level 19 :offset-assert 396) ;; guessed by decompiler + (tfrag-shared-tree-count int32 :offset-assert 472) + (tfrag-shared-trees UNKNOWN 19 :offset-assert 476) + (tfrag-shared-levels UNKNOWN 19 :offset-assert 552) + (tfrag-trans-shared-tree-count int32 :offset-assert 628) + (tfrag-trans-shared-trees UNKNOWN 19 :offset-assert 632) + (tfrag-trans-shared-levels UNKNOWN 19 :offset-assert 708) + (tfrag-water-shared-tree-count int32 :offset-assert 784) + (tfrag-water-shared-trees UNKNOWN 19 :offset-assert 788) + (tfrag-water-shared-levels UNKNOWN 19 :offset-assert 864) + (shrub-tree-count int32 :offset-assert 940) + (shrub-trees drawable-tree-instance-shrub 19 :offset-assert 944) ;; guessed by decompiler + (shrub-levels level 19 :offset-assert 1020) ;; guessed by decompiler + (tie-tree-count int32 :offset-assert 1096) + (tie-trees drawable-tree-instance-tie 19 :offset-assert 1100) ;; guessed by decompiler + (tie-levels level 19 :offset-assert 1176) ;; guessed by decompiler + (wait-to-vu0 uint32 :offset-assert 1252) + ) + :method-count-assert 9 + :size-assert #x4e8 + :flag-assert #x9000004e8 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; subdivide-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype subdivide-settings (basic) + ((dist float 5 :offset-assert 4) ;; guessed by decompiler + (meters float 5 :offset-assert 24) ;; guessed by decompiler + (close float 20 :offset-assert 44) ;; guessed by decompiler + (far float 20 :offset-assert 124) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xcc + :flag-assert #x9000000cc + ) +|# + +#| +(deftype subdivide-dists (structure) + ((data uint32 32 :offset-assert 0) ;; guessed by decompiler + (vector vector 8 :offset-assert 0) ;; guessed by decompiler + (k0s uint128 4 :offset-assert 0) ;; guessed by decompiler + (k1s uint128 4 :offset-assert 64) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype terrain-stats (structure) + ((pris tr-stat :inline :offset-assert 0) + (tie-generic tr-stat :inline :offset-assert 16) + (tie-vanish tr-stat :inline :offset-assert 32) + (tie tr-stat :inline :offset-assert 48) + (tie-scissor tr-stat :inline :offset-assert 64) + (tie-envmap tr-stat :inline :offset-assert 80) + (tie-envmap-scissor tr-stat :inline :offset-assert 96) + (tie-trans tr-stat :inline :offset-assert 112) + (tie-scissor-trans tr-stat :inline :offset-assert 128) + (tie-envmap-trans tr-stat :inline :offset-assert 144) + (tie-envmap-scissor-trans tr-stat :inline :offset-assert 160) + (tie-water tr-stat :inline :offset-assert 176) + (tie-scissor-water tr-stat :inline :offset-assert 192) + (tie-envmap-water tr-stat :inline :offset-assert 208) + (tie-envmap-scissor-water tr-stat :inline :offset-assert 224) + (shrub-near tr-stat :inline :offset-assert 240) + (shrub tr-stat :inline :offset-assert 256) + (tfrag-scissor tr-stat :inline :offset-assert 272) + (tfrag tr-stat :inline :offset-assert 288) + (billboard tr-stat :inline :offset-assert 304) + (tfrag-trans tr-stat :inline :offset-assert 320) + (tfrag-scissor-trans tr-stat :inline :offset-assert 336) + (tfrag-water tr-stat :inline :offset-assert 352) + (tfrag-scissor-water tr-stat :inline :offset-assert 368) + (trans-pris tr-stat :inline :offset-assert 384) + (trans-shrub tr-stat :inline :offset-assert 400) + (ocean-mid tr-stat :inline :offset-assert 416) + (ocean-near tr-stat :inline :offset-assert 432) + (shadow tr-stat :inline :offset-assert 448) + (total tr-stat :inline :offset-assert 464) + ) + :method-count-assert 9 + :size-assert #x1e0 + :flag-assert #x9000001e0 + ) +|# + +#| +(deftype background-area (structure) + ((dma-area uint8 14336 :offset-assert 0) ;; guessed by decompiler + (vis-list uint8 2048 :offset-assert 14336) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4000 + :flag-assert #x900004000 + ) +|# + +#| +(deftype foreground-area (structure) + ((generic-work generic-work :inline :offset-assert 0) + (foreground-work foreground-work :inline :offset-assert 0) + (joint-work joint-work :inline :offset-assert 0) + (bone-mem bone-memory :inline :offset-assert 0) + (shadow-work shadow-work :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x3fe0 + :flag-assert #x900003fe0 + ) +|# + +#| +(deftype region-prim-area (structure) + ((region-prim-list region-prim-list :inline :offset-assert 0) + (pos vector :inline :offset-assert 1296) + (ray vector :inline :offset-assert 1328) + (region-enter-count int32 :offset-assert 1360) + (region-enter-list region 320 :offset-assert 1364) ;; guessed by decompiler + (region-enter-prim-list drawable-region-sphere 320 :offset-assert 2644) ;; guessed by decompiler + (region-exit-count int32 :offset-assert 3924) + (region-exit-list region 320 :offset-assert 3928) ;; guessed by decompiler + (region-exit-prim-list drawable-region-sphere 320 :offset-assert 5208) ;; guessed by decompiler + (region-inside-count int32 :offset-assert 6488) + (region-inside-list region 320 :offset-assert 6492) ;; guessed by decompiler + (region-inside-prim-list drawable-region-sphere 320 :offset-assert 7772) ;; guessed by decompiler + (region-start-count int32 :offset-assert 9052) + (region-start-list region 320 :offset-assert 9056) ;; guessed by decompiler + (region-start-prim-list drawable-region-sphere 320 :offset-assert 10336) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #x2d60 + :flag-assert #xd00002d60 + (:methods + (region-prim-area-method-9 () none) ;; 9 ;; (track-entered-region! (_type_ drawable-region-sphere) int) + (region-prim-area-method-10 () none) ;; 10 ;; (track-exited-region! (_type_ drawable-region-sphere) int) + (region-prim-area-method-11 () none) ;; 11 ;; (track-inside-region! (_type_ drawable-region-sphere) int) + (region-prim-area-method-12 () none) ;; 12 ;; (track-start-region! (_type_ drawable-region-sphere) int) + ) + ) +|# + +#| +(deftype sprite-area (structure) + ((clock-data vector 22 :offset-assert 0) ;; guessed by decompiler + (buffer uint8 :dynamic :offset-assert 352) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x160 + :flag-assert #x900000160 + ) +|# + +#| +(deftype work-area (structure) + ((background background-area :inline :offset-assert 0) + (foreground foreground-area :inline :offset-assert 0) + (region-prim region-prim-area :inline :offset-assert 0) + (sprite sprite-area :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4000 + :flag-assert #x900004000 + ) +|# + +#| +(deftype terrain-context (structure) + ((work work-area :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4000 + :flag-assert #x900004000 + ) +|# + +;; (define-extern *terrain-stats* object) ;; terrain-stats +;; (define-extern *collide-stats* object) ;; collide-stats + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; entity-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype entity-perm (structure) + ((user-object object 2 :offset-assert 0) ;; guessed by decompiler + (user-uint64 uint64 :offset-assert 0) + (user-float float 2 :offset-assert 0) ;; guessed by decompiler + (user-int32 int32 2 :offset-assert 0) ;; guessed by decompiler + (user-uint32 uint32 2 :offset-assert 0) ;; guessed by decompiler + (user-int16 int16 4 :offset-assert 0) ;; guessed by decompiler + (user-uint16 uint16 4 :offset-assert 0) ;; guessed by decompiler + (user-int8 int8 8 :offset-assert 0) ;; guessed by decompiler + (user-uint8 uint8 8 :offset-assert 0) ;; guessed by decompiler + (status uint16 :offset-assert 8) ;; entity-perm-status + (dummy uint8 1 :offset-assert 10) ;; guessed by decompiler + (task uint8 :offset-assert 11) ;; game-task + (aid actor-id :offset-assert 12) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (entity-perm-method-9 () none) ;; 9 ;; (update (_type_ symbol entity-perm-status) _type_) + ) + ) +|# + +#| +(deftype entity-links (structure) + ((prev-link entity-links :offset-assert 0) + (next-link entity-links :offset-assert 4) + (entity entity :offset-assert 8) ;; guessed by decompiler + (process process :offset-assert 12) ;; guessed by decompiler + (level level :offset-assert 16) ;; guessed by decompiler + (vis-id int32 :offset-assert 20) + (kill-mask task-mask :offset-assert 24) + (vis-dist meters :offset-assert 28) + (trans vector :inline :offset-assert 32) + (perm entity-perm :inline :offset-assert 48) + (status uint16 :offset-assert 56) ;; entity-perm-status + (aid uint32 :offset-assert 60) + (task uint8 :offset-assert 59) ;; game-task + ) + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + (:methods + (entity-links-method-9 () none) ;; 9 ;; (birth? (_type_ vector) symbol) + ) + ) +|# + +#| +(deftype entity-perm-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data entity-perm :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype entity-links-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data entity-links :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +;; (deftype entity (res-lump) +;; () +;; :flag-assert #x1b00000038 +;; ) + +;; (deftype entity-camera (entity) +;; () +;; :flag-assert #x1b00000050 +;; ) + +;; (deftype entity-nav-mesh (entity) +;; () +;; :flag-assert #x1d0000003c +;; ) + +;; (deftype entity-race-mesh (entity) +;; () +;; :flag-assert #x1d0000003c +;; ) + +;; (deftype entity-actor (entity) +;; () +;; :flag-assert #x2100000060 +;; ) + +#| +(deftype actor-reference (structure) + ((actor entity-actor :offset-assert 0) ;; guessed by decompiler + (id uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype actor-group (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data actor-reference :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype entity-info (basic) + ((ptype object :offset-assert 4) ;; guessed by decompiler + (pool symbol :offset-assert 8) ;; guessed by decompiler + (heap-size int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype actor-bank (basic) + ((pause-dist float :offset-assert 4) + (birth-dist float :offset-assert 8) + (birth-max int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *generate-actor-vis* object) ;; symbol +;; (define-extern *generate-actor-vis-start* object) ;; symbol +;; (define-extern *generate-actor-vis-output* object) ;; symbol +;; (define-extern *ACTOR-bank* actor-bank) ;; actor-bank + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; entity-more-perm ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype entity-more-perm (structure) + ((aid uint32 :offset-assert 0) + (ent basic :offset-assert 4) + (user-object UNKNOWN 2 :offset-assert 8) + (user-uint64 uint64 :offset-assert 8) + (user-float UNKNOWN 2 :offset-assert 8) + (user-int32 UNKNOWN 2 :offset-assert 8) + (user-uint32 UNKNOWN 2 :offset-assert 8) + (user-int16 UNKNOWN 4 :offset-assert 8) + (user-uint16 UNKNOWN 4 :offset-assert 8) + (user-int8 UNKNOWN 8 :offset-assert 8) + (user-uint8 UNKNOWN 8 :offset-assert 8) + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (entity-more-perm-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype entity-more-perm-hash (structure) + ((data UNKNOWN 512 :offset-assert 0) + (entity-more-perm-ct int32 :offset-assert 8192) + (entity-indices UNKNOWN 1024 :offset-assert 8196) + ) + :method-count-assert 15 + :size-assert #x2804 + :flag-assert #xf00002804 + (:methods + (entity-more-perm-hash-method-9 () none) ;; 9 + (entity-more-perm-hash-method-10 () none) ;; 10 + (entity-more-perm-hash-method-11 () none) ;; 11 + (entity-more-perm-hash-method-12 () none) ;; 12 + (entity-more-perm-hash-method-13 () none) ;; 13 + (entity-more-perm-hash-method-14 () none) ;; 14 + ) + ) +|# + +;; (define-extern *entity-more-perm* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sprite-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sprite-vec-data-2d (structure) + ((x-y-z-sx vector :inline :offset-assert 0) + (flag-rot-sy vector :inline :offset-assert 16) + (r-g-b-a vector :inline :offset-assert 32) + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + (sx float :offset-assert 12) + (sy float :offset-assert 28) + (rot float :offset-assert 24) + (flag int32 :offset-assert 16) + (matrix int32 :offset-assert 20) + (warp-turns int32 :offset-assert 16) + (r float :offset-assert 32) + (g float :offset-assert 36) + (b float :offset-assert 40) + (a float :offset-assert 44) + (trans vector3s :inline :offset-assert 0) + (color rgbaf :inline :offset-assert 32) + (data uint128 1 :offset-assert 0) ;; guessed by decompiler + (data64 uint64 6 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype sprite-array-2d (basic) + ((num-sprites int32 2 :offset-assert 4) ;; guessed by decompiler + (num-valid int32 2 :offset-assert 12) ;; guessed by decompiler + (vec-data pointer :offset-assert 20) ;; guessed by decompiler + (adgif-data (inline-array adgif-shader) :offset-assert 24) ;; guessed by decompiler + (pad uint128 4 :offset-assert 32) ;; guessed by decompiler + (data uint128 1 :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype sprite-vec-data-3d (structure) + ((x-y-z-sx vector :inline :offset-assert 0) + (qx-qy-qz-sy vector :inline :offset-assert 16) + (r-g-b-a vector :inline :offset-assert 32) + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + (sx float :offset-assert 12) + (sy float :offset-assert 28) + (qx float :offset-assert 16) + (qy float :offset-assert 20) + (qz float :offset-assert 24) + (r float :offset-assert 32) + (g float :offset-assert 36) + (b float :offset-assert 40) + (a float :offset-assert 44) + (trans vector3s :inline :offset-assert 0) + (rot vector3s :inline :offset-assert 16) + (color rgbaf :inline :offset-assert 32) + (data uint128 1 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype sprite-array-3d (basic) + ((num-sprites int32 2 :offset-assert 4) ;; guessed by decompiler + (num-valid int32 2 :offset-assert 12) ;; guessed by decompiler + (vec-data pointer :offset-assert 20) ;; guessed by decompiler + (adgif-data (inline-array adgif-shader) :offset-assert 24) ;; guessed by decompiler + (data uint128 1 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; simple-sprite-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sprite-glow-data (structure) + ((position vector :inline :offset-assert 0) + (size-x float :offset-assert 12) + (size-probe float :offset-assert 16) + (z-offset float :offset-assert 20) + (rot-angle float :offset-assert 24) + (size-y float :offset-assert 28) + (color rgbaf :inline :offset-assert 32) + (fade-a float :offset-assert 48) + (fade-b float :offset-assert 52) + (tex-id texture-id :offset-assert 56) ;; guessed by decompiler + (dummy uint32 :offset-assert 60) + ) + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + (:methods + (sprite-glow-data-method-9 () none) ;; 9 ;; (set-trans (_type_ vector) none) + ) + ) +|# + +#| +(deftype simple-sprite-system (structure) + ((count int16 :offset-assert 0) + (max-count int16 :offset-assert 2) + (data (inline-array sprite-glow-data) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x8 + :flag-assert #xc00000008 + (:methods + (simple-sprite-system-method-9 () none) ;; 9 ;; (add! (_type_ sprite-glow-data) none) + (simple-sprite-system-method-10 () none) ;; 10 ;; (draw-all-sprites! (_type_ dma-buffer) none) + (simple-sprite-system-method-11 () none) ;; 11 ;; (clear! (_type_) none) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; eye-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype eye (structure) + ((data vector 2 :offset-assert 0) ;; guessed by decompiler + (x float :offset-assert 0) + (y float :offset-assert 4) + (lid float :offset-assert 8) + (iris-scale float :offset-assert 16) + (pupil-scale float :offset-assert 20) + (lid-scale float :offset-assert 24) + (tbp int32 :offset-assert 32) + (shader-count uint32 :offset-assert 36) + (shader adgif-shader 8 :offset-assert 40) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ) +|# + +#| +(deftype eye-control (structure) + ((process uint64 :offset-assert 0) ;; handle + (random-time uint16 :offset-assert 8) + (bucket uint16 :offset-assert 10) + (blink float :offset-assert 12) + (shaders (inline-array adgif-shader) :offset-assert 16) ;; guessed by decompiler + (eyes eye 2 :offset-assert 32) ;; guessed by decompiler + (left eye :inline :offset-assert 32) + (right eye :inline :offset-assert 112) + (level-index int16 :offset-assert 192) + (high-res? symbol :offset-assert 196) ;; guessed by decompiler + (level-texture-page uint32 :offset-assert 200) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x10c + :flag-assert #x90000010c + ) +|# + +#| +(deftype eye-control-array (basic) + ((data eye-control 32 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2210 + :flag-assert #x900002210 + ) +|# + +#| +(deftype eye-work (structure) + ((sprite-tmpl dma-gif-packet :inline :offset-assert 0) + (sprite-tmpl2 dma-gif-packet :inline :offset-assert 32) + (adgif-tmpl dma-gif-packet :inline :offset-assert 64) + (blink-table float 10 :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x88 + :flag-assert #x900000088 + ) +|# + +;; (define-extern *eye-control-array* eye-control-array) ;; eye-control-array + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; camera-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cam-index (structure) + ((flags cam-index-options :offset-assert 0) ;; guessed by decompiler + (vec vector 2 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x30 + :flag-assert #xb00000030 + (:methods + (cam-index-method-9 () none) ;; 9 ;; (cam-index-method-9 (_type_ symbol entity vector curve) symbol) + (cam-index-method-10 () none) ;; 10 ;; (cam-index-method-10 (_type_ vector) float) + ) + ) +|# + +#| +(deftype tracking-point (structure) + ((position vector :inline :offset-assert 0) + (direction vector :inline :offset-assert 16) + (tp-length float :offset-assert 32) + (next int32 :offset-assert 36) + (incarnation int32 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype tracking-spline-sampler (structure) + ((cur-pt int32 :offset-assert 0) + (partial-pt float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype tracking-spline (structure) + ((point tracking-point 32 :offset-assert 0) ;; guessed by decompiler + (summed-len float :offset-assert 1536) + (free-point int32 :offset-assert 1540) + (used-point int32 :offset-assert 1544) + (partial-point float :offset-assert 1548) + (end-point int32 :offset-assert 1552) + (next-to-last-point int32 :offset-assert 1556) + (max-move float :offset-assert 1560) + (sample-len float :offset-assert 1564) + (used-count int32 :offset-assert 1568) + (old-position vector :inline :offset-assert 1584) + (debug-old-position vector :inline :offset-assert 1600) + (debug-out-position vector :inline :offset-assert 1616) + (debug-last-point int32 :offset-assert 1632) + ) + :method-count-assert 24 + :size-assert #x664 + :flag-assert #x1800000664 + (:methods + (tracking-spline-method-9 () none) ;; 9 ;; (tracking-spline-method-9 (_type_) none) + (tracking-spline-method-10 () none) ;; 10 ;; (tracking-spline-method-10 (_type_ vector) none) + (tracking-spline-method-11 () none) ;; 11 ;; (debug-point-info (_type_ int) none) + (tracking-spline-method-12 () none) ;; 12 ;; (debug-all-points (_type_) none) + (tracking-spline-method-13 () none) ;; 13 ;; (tracking-spline-method-13 (_type_ int) none) + (tracking-spline-method-14 () none) ;; 14 ;; (tracking-spline-method-14 (_type_ tracking-spline-sampler) none) + (tracking-spline-method-15 () none) ;; 15 ;; (tracking-spline-method-15 (_type_) none) + (tracking-spline-method-16 () none) ;; 16 ;; (tracking-spline-method-16 (_type_ float) none) + (tracking-spline-method-17 () none) ;; 17 ;; (tracking-spline-method-17 (_type_ vector float float symbol) int) + (tracking-spline-method-18 () none) ;; 18 ;; (tracking-spline-method-18 (_type_ float vector vector tracking-spline-sampler) vector) + (tracking-spline-method-19 () none) ;; 19 ;; (tracking-spline-method-19 (_type_ float vector vector tracking-spline-sampler) vector) + (tracking-spline-method-20 () none) ;; 20 ;; (tracking-spline-method-20 (_type_ vector int) none) + (tracking-spline-method-21 () none) ;; 21 ;; (tracking-spline-method-21 (_type_ vector float float float float vector) vector) + (tracking-spline-method-22 () none) ;; 22 ;; (tracking-spline-method-22 (_type_ float) symbol) + (tracking-spline-method-23 () none) ;; 23 ;; (debug-draw-spline (_type_) none) + ) + ) +|# + +#| +(deftype cam-float-seeker (structure) + ((target float :offset-assert 0) + (value float :offset-assert 4) + (vel float :offset-assert 8) + (accel float :offset-assert 12) + (max-vel float :offset-assert 16) + (max-partial float :offset-assert 20) + ) + :method-count-assert 13 + :size-assert #x18 + :flag-assert #xd00000018 + (:methods + (cam-float-seeker-method-9 () none) ;; 9 ;; (init (_type_ float float float float) none) + (cam-float-seeker-method-10 () none) ;; 10 ;; (copy-to (_type_ _type_) none) + (cam-float-seeker-method-11 () none) ;; 11 ;; (update! (_type_ float) none) + (cam-float-seeker-method-12 () none) ;; 12 ;; (jump-to-target! (_type_ float) float) + ) + ) +|# + +#| +(deftype cam-vector-seeker (structure) + ((target vector :inline :offset-assert 0) + (value vector :inline :offset-assert 16) + (vel vector :inline :offset-assert 32) + (accel float :offset-assert 48) + (max-vel float :offset-assert 52) + (max-partial float :offset-assert 56) + ) + :method-count-assert 11 + :size-assert #x3c + :flag-assert #xb0000003c + (:methods + (cam-vector-seeker-method-9 () none) ;; 9 ;; (init (_type_ vector float float float) none) + (cam-vector-seeker-method-10 () none) ;; 10 ;; (update! (_type_ vector) none) + ) + ) +|# + +#| +(deftype cam-rotation-tracker (structure) + ((inv-mat matrix :inline :offset-assert 0) + (no-follow basic :offset-assert 64) + (follow-pt vector :inline :offset-assert 80) + (follow-off vector :inline :offset-assert 96) + (follow-blend float :offset-assert 112) + (tilt-adjust cam-float-seeker :inline :offset-assert 116) + (point-of-interest-blend cam-float-seeker :inline :offset-assert 140) + (underwater-blend cam-float-seeker :inline :offset-assert 164) + (looking-at vector :inline :offset-assert 192) + (looking-interesting vector :inline :offset-assert 208) + (old-cam-trans vector :inline :offset-assert 224) + (follow-height-extra cam-float-seeker :inline :offset-assert 240) + ) + :method-count-assert 9 + :size-assert #x108 + :flag-assert #x900000108 + ) +|# + +#| +(deftype camera-combiner (process) + ((trans vector :inline :offset-assert 144) + (inv-camera-rot matrix :inline :offset-assert 160) + (fov float :offset-assert 224) + (interp-val float :offset-assert 228) + (interp-step float :offset-assert 232) + (dist-from-src float :offset-assert 236) + (dist-from-dest float :offset-assert 240) + (flip-control-axis vector :inline :offset-assert 256) + (velocity vector :inline :offset-assert 272) + (tracking-status uint64 :offset-assert 288) + (tracking-options int32 :offset-assert 296) + (tracking cam-rotation-tracker :inline :offset-assert 304) + (fast-rot basic :offset-assert 568) + ) + :method-count-assert 15 + :size-assert #x23c + :flag-assert #xf01b0023c + (:methods + (camera-combiner-method-9 () none) ;; 9 + (camera-combiner-method-10 () none) ;; 10 + (camera-combiner-method-11 () none) ;; 11 + (camera-combiner-method-12 () none) ;; 12 + (camera-combiner-method-13 () none) ;; 13 + (camera-combiner-method-14 () none) ;; 14 + ) + ) +|# + +#| +(deftype camera-slave (process) + ((trans vector :inline :offset-assert 144) + (fov float :offset-assert 160) + (fov0 float :offset-assert 164) + (fov1 float :offset-assert 168) + (fov-index cam-index :inline :offset-assert 176) + (tracking cam-rotation-tracker :inline :offset-assert 224) + (view-off-param float :offset-assert 488) + (view-off vector :inline :offset-assert 496) + (joystick-saved-view-off vector :inline :offset-assert 512) + (min-z-override float :offset-assert 528) + (view-flat vector :inline :offset-assert 544) + (string-vel-dir uint32 :offset-assert 560) + (string-trans vector :inline :offset-assert 576) + (position-spline tracking-spline :inline :offset-assert 592) + (pivot-pt vector :inline :offset-assert 2240) + (pivot-rad float :offset-assert 2256) + (circular-follow vector :inline :offset-assert 2272) + (max-angle-offset float :offset-assert 2288) + (max-angle-curr float :offset-assert 2292) + (options cam-slave-options-u32 :offset-assert 2296) ;; guessed by decompiler + (cam-entity entity :offset-assert 2300) ;; guessed by decompiler + (butt-timer uint64 :offset-assert 2304) ;; time-frame + (butt-seek basic :offset-assert 2312) + (butt-vector vector :inline :offset-assert 2320) + (velocity vector :inline :offset-assert 2336) + (desired-pos vector :inline :offset-assert 2352) + (time-dist-too-far uint32 :offset-assert 2368) + (los-state slave-los-state :offset-assert 2372) ;; guessed by decompiler + (good-point vector :inline :offset-assert 2384) + (los-tgt-spline-pt int32 :offset-assert 2400) + (los-tgt-spline-pt-incarnation int32 :offset-assert 2404) + (los-last-pos vector :inline :offset-assert 2416) + (intro-curve curve :inline :offset-assert 2432) + (intro-offset vector :inline :offset-assert 2464) + (intro-t float :offset-assert 2480) + (intro-t-step float :offset-assert 2484) + (outro-exit-value float :offset-assert 2488) + (spline-exists symbol :offset-assert 2492) ;; guessed by decompiler + (spline-curve curve :inline :offset-assert 2496) + (spline-offset vector :inline :offset-assert 2528) + (index cam-index :inline :offset-assert 2544) + (saved-pt vector :inline :offset-assert 2592) + (spline-tt float :offset-assert 2608) + (spline-follow-dist float :offset-assert 2612) + (enter-has-run symbol :offset-assert 2616) ;; guessed by decompiler + (blend-from-type uint64 :offset-assert 2624) ;; camera-blend-from-type + (blend-to-type uint64 :offset-assert 2632) ;; camera-blend-to-type + (have-phony-joystick basic :offset-assert 2640) + (phony-joystick-x float :offset-assert 2644) + (phony-joystick-y float :offset-assert 2648) + (string-min-val vector :inline :offset-assert 2656) + (string-max-val vector :inline :offset-assert 2672) + (string-val-locked basic :offset-assert 2688) + (relative-position vector :inline :offset-assert 2704) + (string-relative basic :offset-assert 2720) + (slope-adjust cam-float-seeker :inline :offset-assert 2724) + (slope-quat quaternion :inline :offset-assert 2752) + (vehicle-up vector :inline :offset-assert 2768) + (vehicle-at vector :inline :offset-assert 2784) + (intro-handle uint64 :offset-assert 2800) + (slow-mo-sound-id uint32 :offset-assert 2808) + ) + :method-count-assert 15 + :size-assert #xafc + :flag-assert #xf0a700afc + (:methods + (camera-slave-method-9 () none) ;; 9 + (camera-slave-method-10 () none) ;; 10 + (camera-slave-method-11 () none) ;; 11 + (camera-slave-method-12 () none) ;; 12 + (camera-slave-method-13 () none) ;; 13 + (camera-slave-method-14 () none) ;; 14 + ) + ) +|# + +#| +(deftype camera-master (process) + ((master-options cam-master-options-u32 :offset-assert 144) ;; guessed by decompiler + (settings cam-setting-data :offset-assert 148) + (slave (pointer camera-slave) :offset-assert 152) ;; guessed by decompiler + (decel (pointer camera-slave) :offset-assert 156) ;; guessed by decompiler + (slave-options cam-slave-options-u32 :offset-assert 160) ;; guessed by decompiler + (view-off-param-save float :offset-assert 164) + (changer uint32 :offset-assert 168) + (string-min cam-vector-seeker :inline :offset-assert 176) + (string-max cam-vector-seeker :inline :offset-assert 240) + (string-push-z float :offset-assert 300) + (local-down vector :inline :offset-assert 304) + (focus focus :inline :offset-assert 320) + (being-attacked symbol :offset-assert 332) ;; guessed by decompiler + (attack-start uint64 :offset-assert 336) ;; time-frame + (on-ground symbol :offset-assert 344) ;; guessed by decompiler + (under-water int32 :offset-assert 348) + (on-pole symbol :offset-assert 352) ;; guessed by decompiler + (tgt-rot-mat matrix :inline :offset-assert 368) + (tgt-face-mat matrix :inline :offset-assert 432) + (tpos-old vector :inline :offset-assert 496) + (tpos-curr vector :inline :offset-assert 512) + (tpos-old-adj vector :inline :offset-assert 528) + (tpos-curr-adj vector :inline :offset-assert 544) + (tpos-tgt vector :inline :offset-assert 560) + (upspeed float :offset-assert 576) + (pitch-off vector :inline :offset-assert 592) + (target-spline tracking-spline :inline :offset-assert 608) + (ease-from vector :inline :offset-assert 2256) + (ease-t float :offset-assert 2272) + (ease-step float :offset-assert 2276) + (ease-to vector :inline :offset-assert 2288) + (outro-curve curve :inline :offset-assert 2304) + (outro-t float :offset-assert 2324) + (outro-t-step float :offset-assert 2328) + (outro-exit-value float :offset-assert 2332) + (water-drip-time uint64 :offset-assert 2336) ;; time-frame + (water-drip sparticle-launch-control :offset-assert 2344) ;; guessed by decompiler + (water-drip-mult float :offset-assert 2348) + (water-drip-speed float :offset-assert 2352) + (interest-dist float :offset-assert 2356) + ) + :method-count-assert 18 + :size-assert #x938 + :flag-assert #x1208b00938 + (:methods + (camera-master-method-9 () none) ;; 9 + (camera-master-method-10 () none) ;; 10 + (camera-master-method-11 () none) ;; 11 + (camera-master-method-12 () none) ;; 12 + (camera-master-method-13 () none) ;; 13 + (camera-master-method-14 () none) ;; 14 ;; (camera-master-method-14 (_type_ vector) vector) + (camera-master-method-15 () none) ;; 15 ;; (camera-master-method-15 (_type_ vector) vector) + (camera-master-method-16 () none) ;; 16 ;; (camera-master-method-16 (_type_ symbol) int) + (camera-master-method-17 () none) ;; 17 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-interface-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *camera-init-mat* object) ;; matrix + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sparticle-launcher-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sparticle-birthinfo (structure) + ((sprite uint32 :offset-assert 0) + (anim int32 :offset-assert 4) + (anim-speed float :offset-assert 8) + (birth-func basic :offset-assert 12) + (joint-ppoint int32 :offset-assert 16) + (num-to-birth float :offset-assert 20) + (dataf float 1 :offset-assert 0) ;; guessed by decompiler + (data uint32 1 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype sp-field-init-spec (structure) + ((field uint16 :offset-assert 0) ;; sp-field-id + (flags uint16 :offset-assert 2) ;; sp-flag + (initial-valuef float :offset-assert 4) + (random-rangef float :offset-assert 8) + (random-multf float :offset-assert 12) + (initial-value int32 :offset-assert 4) + (random-range int32 :offset-assert 8) + (random-mult int32 :offset-assert 12) + (func symbol :offset-assert 4) ;; guessed by decompiler + (tex texture-id :offset-assert 4) ;; guessed by decompiler + (pntr pointer :offset-assert 4) ;; guessed by decompiler + (object basic :offset-assert 4) + (sym symbol :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ;; field object uses ~A with a signed load. + ) +|# + +#| +(deftype sparticle-launcher (basic) + ((birthaccum float :offset-assert 4) + (init-specs (inline-array sp-field-init-spec) :offset-assert 8) ;; guessed by decompiler + (level-flag int32 :offset-assert 12) + ) + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + (:methods + (sparticle-launcher-method-9 () none) ;; 9 ;; (get-field-spec-by-id (_type_ sp-field-id) sp-field-init-spec) + (sparticle-launcher-method-10 () none) ;; 10 ;; (setup-special-textures (_type_ string) none) + ) + ) +|# + +#| +(deftype sparticle-group-item (structure) + ((launcher uint32 :offset-assert 0) + (fade-after meters :offset-assert 4) + (falloff-to meters :offset-assert 8) + (flags uint16 :offset-assert 12) ;; sp-group-item-flag + (period uint16 :offset-assert 14) + (length uint16 :offset-assert 16) + (offset int16 :offset-assert 18) + (hour-mask uint32 :offset-assert 20) + (binding uint32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype sparticle-launch-state (structure) + ((group-item sparticle-group-item :offset-assert 0) + (flags uint16 :offset-assert 4) ;; sp-launch-state-flags + (randomize uint16 :offset-assert 6) + (center vector :offset-assert 8) + (sprite3d sprite-vec-data-3d :offset-assert 12) + (sprite sparticle-cpuinfo :offset-assert 16) ;; guessed by decompiler + (offset uint32 :offset-assert 20) + (accum float :offset-assert 24) + (spawn-time uint32 :offset-assert 28) + (control sparticle-launch-control :offset-assert 32) ;; guessed by decompiler + (swarm basic :offset-assert 20) + (seed uint32 :offset-assert 24) + (time uint32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype sparticle-launch-group (basic) + ((length int16 :offset-assert 4) + (duration uint16 :offset-assert 6) + (linger-duration uint16 :offset-assert 8) + (flags uint16 :offset-assert 10) ;; sp-group-flag + (name string :offset-assert 12) ;; guessed by decompiler + (launcher (inline-array sparticle-group-item) :offset-assert 16) ;; guessed by decompiler + (rotate-x deg :offset-assert 20) ;; degrees + (rotate-y deg :offset-assert 24) ;; degrees + (rotate-z deg :offset-assert 28) ;; degrees + (scale-x float :offset-assert 32) + (scale-y float :offset-assert 36) + (scale-z float :offset-assert 40) + (bounds sphere :inline :offset-assert 48) + ) + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + (:methods + (sparticle-launch-group-method-9 () none) ;; 9 ;; (create-launch-control (_type_ process) sparticle-launch-control) + ) + ) +|# + +#| +(deftype sparticle-launch-control (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (group sparticle-launch-group :offset-assert 16) ;; guessed by decompiler + (proc process-drawable :offset-assert 20) ;; guessed by decompiler + (local-clock int32 :offset-assert 24) + (local-space-binding particle-local-space-info :offset-assert 28) + (matrix int8 :offset-assert 32) + (pointer-control uint32 :offset-assert 36) + (last-spawn-frame int32 :offset-assert 40) + (last-spawn-time int32 :offset-assert 44) + (origin matrix :inline :offset-assert 48) + (center vector :inline :offset-assert 96) + (data sparticle-launch-state :dynamic :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 22 + :size-assert #x70 + :flag-assert #x1600000070 + (:methods + (sparticle-launch-control-method-14 () none) ;; 14 ;; (initialize (_type_ sparticle-launch-group process-drawable) none) + (sparticle-launch-control-method-15 () none) ;; 15 ;; (is-visible? (_type_ vector) symbol) + (sparticle-launch-control-method-16 () none) ;; 16 ;; (spawn (_type_ vector) object) + (sparticle-launch-control-method-17 () none) ;; 17 ;; (spawn-from-mat (_type_ matrix) none) + (sparticle-launch-control-method-18 () none) ;; 18 ;; (spawn-from-cspace (_type_ cspace) none) + (sparticle-launch-control-method-19 () none) ;; 19 ;; (kill-particles (_type_) none) + (sparticle-launch-control-method-20 () none) ;; 20 ;; (set-local-space-info (_type_ particle-local-space-info) none) + (sparticle-launch-control-method-21 () none) ;; 21 + ) + ) +|# + +#| +(deftype sparticle-subsampler (basic) + ((min-emit float :offset-assert 4) + (accum float :offset-assert 8) + (spt-num float :offset-assert 12) + (sp-system sparticle-system :offset-assert 16) ;; guessed by decompiler + (part-id uint32 :offset-assert 20) + (spawn-mat matrix :inline :offset-assert 32) + (inited? symbol :offset-assert 96) ;; guessed by decompiler + (per-meter-method? basic :offset-assert 100) + ) + :method-count-assert 11 + :size-assert #x68 + :flag-assert #xb00000068 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type sparticle-system sparticle-launcher float) _type_) + (sparticle-subsampler-method-9 () none) ;; 9 ;; (init-with-vec! (_type_ vector) vector) + (sparticle-subsampler-method-10 () none) ;; 10 ;; (init-with-mat! (_type_ matrix) matrix) + ) + ) +|# + +#| +(deftype particle-birth-work (structure) + ((quat quaternion :inline :offset-assert 0) + (vel-range UNKNOWN 2 :offset-assert 16) + (vel vector :inline :offset-assert 16) + (pos-range UNKNOWN 2 :offset-assert 48) + (pos vector :inline :offset-assert 48) + (d-pos vector :inline :offset-assert 64) + (mat matrix :inline :offset-assert 80) + (tt float :offset-assert 144) + (t-step float :offset-assert 148) + ) + :method-count-assert 9 + :size-assert #x98 + :flag-assert #x900000098 + ) +|# + +;; (define-extern *launch-matrix* object) ;; matrix +;; (define-extern compute-rot-in-screenspace function) ;; (function vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sparticle-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sparticle-cpuinfo (structure) + ((sprite sprite-vec-data-2d :offset-assert 0) + (adgif adgif-shader :offset-assert 4) + (radius float :offset-assert 8) + (omega float :offset-assert 12) + (vel-sxvel vector :inline :offset-assert 16) + (rot-syvel vector :inline :offset-assert 32) + (fade rgbaf :inline :offset-assert 48) + (acc vector :inline :offset-assert 64) + (rotvel3d quaternion :inline :offset-assert 80) + (vel vector3s :inline :offset-assert 16) + (accel vector3s :inline :offset-assert 64) + (scalevelx float :offset-assert 28) + (scalevely float :offset-assert 44) + (friction float :offset-assert 96) + (timer int32 :offset-assert 100) + (flags sp-cpuinfo-flag :offset-assert 104) ;; guessed by decompiler + (user-int32 int32 :offset-assert 108) + (user-uint32 uint32 :offset-assert 108) + (user-float float :offset-assert 108) + (user-pntr uint32 :offset-assert 108) + (user-object basic :offset-assert 108) + (user-sprite sprite-vec-data-2d :offset-assert 108) + (sp-func (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d uint none) :offset-assert 112) ;; guessed by decompiler + (next-time uint32 :offset-assert 116) + (next-launcher basic :offset-assert 120) + (cache-alpha float :offset-assert 124) + (valid uint8 :offset-assert 128) + (clock-index uint8 :offset-assert 129) + (user1-int16 uint16 :offset-assert 130) + (control basic :offset-assert 132) + (binding int32 :offset-assert 136) ;; sparticle-launch-state + (data uint32 1 :offset-assert 12) ;; guessed by decompiler + (datab int8 4 :offset-assert 12) ;; guessed by decompiler + (dataf float 1 :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8c + :flag-assert #x90000008c + ;; field user-object uses ~A with a signed load. field control uses ~A with a signed load. + ) +|# + +#| +(deftype sparticle-launchinfo (structure) + ((launchrot vector :inline :offset-assert 0) + (conerot vector :inline :offset-assert 16) + (rotate-x float :offset-assert 32) + (rotate-y float :offset-assert 36) + (rotate-z float :offset-assert 40) + (coneradius float :offset-assert 44) + (rotate vector :inline :offset-assert 32) + (scale-x float :offset-assert 48) + (scale-y float :offset-assert 52) + (scale-z float :offset-assert 56) + (dummy float :offset-assert 60) + (scale vector :inline :offset-assert 48) + (data uint8 1 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype sparticle-system (basic) + ((blocks int32 2 :offset-assert 4) ;; guessed by decompiler + (length int32 2 :offset-assert 12) ;; guessed by decompiler + (num-alloc int32 2 :offset-assert 20) ;; guessed by decompiler + (is-3d basic :offset-assert 28) + (flags uint32 :offset-assert 32) + (alloc-table (pointer uint64) :offset-assert 36) ;; guessed by decompiler + (cpuinfo-table (inline-array sparticle-cpuinfo) :offset-assert 40) ;; guessed by decompiler + (vecdata-table pointer :offset-assert 44) ;; guessed by decompiler + (adgifdata-table (inline-array adgif-shader) :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +;; (define-extern *sp-60-hz* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; actor-link-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype actor-link-info (basic) + ((process process :offset-assert 4) ;; guessed by decompiler + (next entity-actor :offset-assert 8) ;; guessed by decompiler + (prev entity-actor :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 26 + :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) + ) + ) +|# + +;; (define-extern entity-actor-lookup function) ;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-debug-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *redline-table* object) ;; (pointer float) +;; (define-extern *redline-index* object) ;; int +;; (define-extern float-save-redline function) ;; (function float none) +;; (define-extern float-lookup-redline function) ;; (function float float) +;; (define-extern *blueline-table* object) ;; (pointer float) +;; (define-extern *blueline-index* object) ;; int +;; (define-extern float-save-blueline function) ;; (function float none) +;; (define-extern float-lookup-blueline function) ;; (function float float) +;; (define-extern *greenline-table* object) ;; (pointer float) +;; (define-extern *greenline-index* object) ;; int +;; (define-extern float-save-greenline function) ;; (function float none) +;; (define-extern float-lookup-greenline function) ;; (function float float) +;; (define-extern *yellowline-table* object) ;; (pointer float) +;; (define-extern *yellowline-index* object) ;; int +;; (define-extern float-save-yellowline function) ;; (function float none) +;; (define-extern float-lookup-yellowline function) ;; (function float float) +;; (define-extern *timeplot-table* object) ;; (pointer float) +;; (define-extern *timeplot-index* object) ;; int +;; (define-extern float-save-timeplot function) ;; (function float none) +;; (define-extern float-lookup-timeplot function) ;; (function float float) +;; (define-extern *cam-layout* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-update-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *external-cam-options* object) ;; external-cam-option +;; (define-extern *external-cam-mode* object) ;; symbol +;; (define-extern *camera-look-through-other* object) ;; int +;; (define-extern *camera-other-fov* bfloat) ;; bfloat +;; (define-extern *camera-other-trans* object) ;; vector +;; (define-extern *camera-other-matrix* object) ;; matrix +;; (define-extern *camera-smush-control* object) ;; smush-control +;; (define-extern *camera-smush-control-horizontal* object) ;; smush-control +;; (define-extern *camera-smush-control-into* object) ;; smush-control +;; (define-extern *camera-smush-control-2* object) +;; (define-extern *camera-smush-control-horizontal-2* object) +;; (define-extern *camera-smush-control-into-2* object) +;; (define-extern *camera-other-root* object) ;; vector +;; (define-extern *fix-visible-level-mask* object) ;; int +;; (define-extern *manual-sample-point* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hud-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-string (structure) + ((text string :offset-assert 0) ;; guessed by decompiler + (scale float :offset-assert 4) + (width float :offset-assert 8) + (height float :offset-assert 12) + (color uint8 :offset-assert 16) ;; font-color + (flags uint16 :offset-assert 18) ;; font-flags + (pos vector4w :inline :offset-assert 32) + (alpha float :offset-assert 48) + (time float :offset-assert 52) + (effect uint8 :offset-assert 56) + (effect-color uint8 :offset-assert 57) + (text-length int32 :offset-assert 60) + ) + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + (:methods + (hud-string-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype hud-corners (structure) + ((data UNKNOWN 4 :offset-assert 0) + ) + :method-count-assert 10 + :size-assert #x20 + :flag-assert #xa00000020 + (:methods + (hud-corners-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype hud-sprite (structure) + ((pos vector4w :inline :offset-assert 0) + (offset-x float :offset-assert 0) + (offset-y float :offset-assert 4) + (color vector4w :inline :offset-assert 16) + (flags uint16 :offset-assert 32) ;; hud-sprite-flags + (scale-x float :offset-assert 36) + (width float :offset-assert 36) + (scale-y float :offset-assert 40) + (height float :offset-assert 40) + (angle float :offset-assert 44) + (tex texture :offset-assert 48) ;; guessed by decompiler + (tid texture-id :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x34 + :flag-assert #xb00000034 + (:methods + (hud-sprite-method-9 () none) ;; 9 ;; (draw (_type_ dma-buffer level symbol) none) + (hud-sprite-method-10 () none) ;; 10 ;; (hud-sprite-method-10 (_type_ dma-buffer level int int int int) object) + ) + ) +|# + +#| +(deftype hud-box (structure) + ((box bounding-box2 :inline :offset-assert 0) + (min vector2 :inline :offset-assert 0) + (max vector2 :inline :offset-assert 8) + (color vector4w :inline :offset-assert 16) + ) + :method-count-assert 13 + :size-assert #x20 + :flag-assert #xd00000020 + (:methods + (hud-box-method-9 () none) ;; 9 ;; (draw-box-prim-only (_type_ dma-buffer) none) + (hud-box-method-10 () none) ;; 10 ;; (draw-box-alpha-1 (_type_ dma-buffer) none) + (hud-box-method-11 () none) ;; 11 ;; (draw-box-alpha-2 (_type_ dma-buffer) none) + (hud-box-method-12 () none) ;; 12 ;; (draw-box-alpha-3 (_type_ dma-buffer) none) + ) + ) +|# + +#| +(deftype hud-icon (structure) + ((icon (pointer manipy) :offset-assert 0) ;; guessed by decompiler + (pos vector4w :inline :offset-assert 16) + (scale-x float :offset-assert 32) + (scale-y float :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype hud (process) + ((trigger-time uint64 :offset-assert 144) ;; time-frame + (last-hide-time uint64 :offset-assert 152) ;; time-frame + (offset float :offset-assert 160) + (flags hud-flags :offset-assert 164) ;; guessed by decompiler + (strings hud-string 45 :offset-assert 176) ;; guessed by decompiler + (sprites hud-sprite 50 :offset-assert 3056) ;; guessed by decompiler + (icons hud-icon 2 :offset-assert 6256) ;; guessed by decompiler + (num-strings int32 :offset-assert 6352) + (num-sprites int32 :offset-assert 6356) + (gui-id sound-id :offset-assert 6360) ;; guessed by decompiler + ) + :method-count-assert 30 + :size-assert #x18dc + :flag-assert #x1e185018dc + (:methods + (hud-method-9 () none) ;; 9 + (hud-method-10 () none) ;; 10 + (hud-method-11 () none) ;; 11 + (hud-method-12 () none) ;; 12 + (hud-method-13 () none) ;; 13 + (hud-method-14 () none) ;; 14 ;; (hidden? (_type_) object) + (hud-method-15 () none) ;; 15 ;; (draw (_type_) none) + (hud-method-16 () none) ;; 16 ;; (update-values! (_type_) none) + (hud-method-17 () none) ;; 17 ;; (init-callback (_type_) none) + (hud-method-18 () none) ;; 18 ;; (event-callback (_type_ process int symbol event-message-block) object) + (hud-method-19 () none) ;; 19 ;; (hud-method-19 (_type_) none) + (hud-method-20 () none) ;; 20 ;; (hud-method-20 (_type_) none) + (hud-method-21 () none) ;; 21 ;; (hud-method-21 (_type_) none) + (hud-method-22 () none) ;; 22 ;; (hud-method-22 (_type_) none) + (hud-method-23 () none) ;; 23 ;; (hud-method-23 (_type_) none) + (hud-method-24 () none) ;; 24 ;; (check-ready-and-maybe-show (_type_ symbol) symbol) + (hud-method-25 () none) ;; 25 ;; (update-value-callback (_type_ int int) none) + (hud-method-26 () none) ;; 26 ;; (alloc-string-if-needed (_type_ int) none) + (hud-method-27 () none) ;; 27 + (hud-method-28 () none) ;; 28 + (hud-method-29 () none) ;; 29 + ) + ) +|# + +#| +(deftype hud-map (hud) + ((x float :offset-assert 6364) + (y float :offset-assert 6368) + ) + :method-count-assert 30 + :size-assert #x18e4 + :flag-assert #x1e186018e4 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; progress-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rpc-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rpc-buffer (basic) + ((elt-size uint32 :offset-assert 4) + (elt-count uint32 :offset-assert 8) + (elt-used uint32 :offset-assert 12) + (busy symbol :offset-assert 16) ;; guessed by decompiler + (base pointer :offset-assert 20) ;; guessed by decompiler + (data uint8 :dynamic :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype rpc-buffer-pair (basic) + ((buffer rpc-buffer 2 :offset-assert 4) ;; guessed by decompiler + (current rpc-buffer :offset-assert 12) ;; guessed by decompiler + (last-recv-buffer pointer :offset-assert 16) ;; guessed by decompiler + (rpc-port int32 :offset-assert 20) + ) + :method-count-assert 15 + :size-assert #x18 + :flag-assert #xf00000018 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type uint uint int) rpc-buffer-pair) + (rpc-buffer-pair-method-9 () none) ;; 9 ;; (call (rpc-buffer-pair uint pointer uint) int) + (rpc-buffer-pair-method-10 () none) ;; 10 ;; (add-element (rpc-buffer-pair) pointer) + (rpc-buffer-pair-method-11 () none) ;; 11 ;; (decrement-elt-used (rpc-buffer-pair) int) + (rpc-buffer-pair-method-12 () none) ;; 12 ;; (sync (rpc-buffer-pair symbol) int) + (rpc-buffer-pair-method-13 () none) ;; 13 ;; (check-busy (rpc-buffer-pair) symbol) + (rpc-buffer-pair-method-14 () none) ;; 14 ;; (pop-last-received (rpc-buffer-pair) pointer) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; path-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype path-control (basic) + ((flags path-control-flag :offset-assert 4) ;; guessed by decompiler + (name symbol :offset-assert 8) ;; guessed by decompiler + (process process-drawable :offset-assert 12) ;; guessed by decompiler + (distmap uint32 :offset-assert 16) + (curve curve :inline :offset-assert 20) + (num-cverts int32 :offset-assert 24) + (cverts uint32 :offset-assert 20) + ) + :method-count-assert 33 + :size-assert #x28 + :flag-assert #x2100000028 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type process symbol float entity symbol) _type_) + (path-control-method-9 () none) ;; 9 ;; (debug-draw (_type_) none) + (path-control-method-10 () none) ;; 10 ;; (get-point-in-path! (_type_ vector float symbol) vector) + (path-control-method-11 () none) ;; 11 ;; (get-random-point (_type_ vector) vector) + (path-control-method-12 () none) ;; 12 ;; (path-control-method-12 (_type_ vector float float) vector) + (path-control-method-13 () none) ;; 13 ;; (displacement-between-two-points-normalized! (_type_ vector float) vector) + (path-control-method-14 () none) ;; 14 ;; (get-point-at-percent-along-path! (_type_ vector float symbol) vector) + (path-control-method-15 () none) ;; 15 ;; (path-control-method-15 (_type_ vector float float) vector) + (path-control-method-16 () none) ;; 16 ;; (displacement-between-points-at-percent-normalized! (_type_ vector float) vector) + (path-control-method-17 () none) ;; 17 ;; (get-num-segments (_type_) float) + (path-control-method-18 () none) ;; 18 ;; (total-distance (_type_) float) + (path-control-method-19 () none) ;; 19 ;; (get-num-verts (_type_) int) + (path-control-method-20 () none) ;; 20 ;; (segement-duration->path-duration (_type_ float) float) + (path-control-method-21 () none) ;; 21 ;; (path-duration->segment-duration (_type_ float) float) + (path-control-method-22 () none) ;; 22 ;; (path-control-method-22 (_type_ vector) float) + (path-control-method-23 () none) ;; 23 ;; (path-control-method-23 (_type_ vector) float) + (path-control-method-24 () none) ;; 24 ;; (path-control-method-24 (_type_ vector) float) + (path-control-method-25 () none) ;; 25 ;; (path-control-method-25 (_type_ vector) float) + (path-control-method-26 () none) ;; 26 ;; (path-control-method-26 (_type_ float float) float) + (path-control-method-27 () none) ;; 27 ;; (path-control-method-27 (_type_ vector) vector) + (path-control-method-28 () none) ;; 28 ;; (path-control-method-28 (_type_ vector vector symbol) float) + (path-control-method-29 () none) ;; 29 ;; (path-control-method-29 (_type_ vector int float) float) + (path-control-method-30 () none) ;; 30 ;; (should-display-marks? (_type_) symbol) + (path-control-method-31 () none) ;; 31 ;; (displacement-between-two-points! (_type_ vector float float) vector) + (path-control-method-32 () none) ;; 32 + ) + ) +|# + +#| +(deftype curve-control (path-control) + () + :method-count-assert 35 + :size-assert #x28 + :flag-assert #x2300000028 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type process symbol float) _type_) + (curve-control-method-33 () none) ;; 33 + (curve-control-method-34 () none) ;; 34 + ) + ) +|# + +;; (define-extern get-knot-name function) +;; (define-extern get-distmap-name function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-mesh-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-mesh-work-debug (structure) + ((debug-vec1 vector :inline :offset-assert 0) + (debug-vec2 vector :inline :offset-assert 16) + (debug-vec3 vector :inline :offset-assert 32) + (debug-vec4 vector :inline :offset-assert 48) + (debug-vec5 vector :inline :offset-assert 64) + (debug-vec6 vector :inline :offset-assert 80) + (debug-vec7 vector :inline :offset-assert 96) + (debug-vec8 vector :inline :offset-assert 112) + (debug-vec9 vector :inline :offset-assert 128) + (debug-vec10 vector :inline :offset-assert 144) + (debug-vec11 vector :inline :offset-assert 160) + (debug-vec12 vector :inline :offset-assert 176) + (sphere-array sphere 16 :offset-assert 192) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c0 + :flag-assert #x9000001c0 + ) +|# + +#| +(deftype nav-mesh-work (structure) + ((vert0-table int8 4 :offset-assert 0) ;; guessed by decompiler + (vert1-table int8 4 :offset-assert 4) ;; guessed by decompiler + (edge-mask-table uint8 3 :offset-assert 8) ;; guessed by decompiler + (pad0 uint32 :offset-assert 12) + (deg-to-rad float :offset-assert 16) + (rad-to-deg float :offset-assert 20) + (nav-poly-min-dist float :offset-assert 24) + (nav-poly-epsilon float :offset-assert 28) + (sphere-array sphere 16 :offset-assert 32) ;; guessed by decompiler + (debug nav-mesh-work-debug :offset-assert 288) + (work-struct-in-scratch int8 :offset-assert 292) + (mesh-struct-in-scratch int8 :offset-assert 293) + (polys-in-scratch int8 :offset-assert 294) + (mesh nav-mesh :offset-assert 296) ;; guessed by decompiler + (nav basic :offset-assert 300) + (poly0 nav-poly :offset-assert 304) ;; guessed by decompiler + (poly1 nav-poly :offset-assert 308) ;; guessed by decompiler + (poly-id int32 :offset-assert 312) + ) + :method-count-assert 9 + :size-assert #x13c + :flag-assert #x90000013c + ) +|# + +#| +(deftype nav-mesh-link (structure) + ((id uint32 :offset-assert 0) + (dest-mesh-id uint32 :offset-assert 4) + (src-link-poly-id uint8 :offset-assert 8) + (src-switch-poly-id uint8 :offset-assert 9) + (dest-link-poly-id uint8 :offset-assert 10) + (dest-switch-poly-id uint8 :offset-assert 11) + (dest-mesh nav-mesh :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype nav-mesh-link-search-node (structure) + ((pprev uint32 :offset-assert 0) + (next nav-mesh-link-search-node :offset-assert 4) + (parent nav-mesh-link-search-node :offset-assert 8) + (link nav-mesh-link :offset-assert 12) + (cost-to-start float :offset-assert 16) + (cost-to-end float :offset-assert 20) + (status nav-mesh-link-search-node-status :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x19 + :flag-assert #x900000019 + ;; field nav-mesh-link-search-node-status is likely a value type. + ) +|# + +#| +(deftype nav-poly (structure) + ((data uint8 64 :offset-assert 0) ;; guessed by decompiler + (vertex vector 4 :offset-assert 0) ;; guessed by decompiler + (vertex0 vector :inline :offset-assert 0) + (vertex1 vector :inline :offset-assert 16) + (vertex2 vector :inline :offset-assert 32) + (vertex3 vector :inline :offset-assert 48) + (id uint8 :offset-assert 12) + (pat uint8 :offset-assert 13) + (vertex-count uint8 :offset-assert 14) + (link uint8 :offset-assert 15) + (adj-poly uint8 4 :offset-assert 28) ;; guessed by decompiler + (adj-poly0 uint8 :offset-assert 28) + (adj-poly1 uint8 :offset-assert 29) + (adj-poly2 uint8 :offset-assert 30) + (adj-poly3 uint8 :offset-assert 31) + (min-y float :offset-assert 44) + (max-y float :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype nav-vertex (vector) + () + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype nav-sphere (structure) + ((trans sphere :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype nav-ray (structure) + ((current-pos vector :inline :offset-assert 0) + (dir vector :inline :offset-assert 16) + (dest-pos vector :inline :offset-assert 32) + (current-mesh basic :offset-assert 48) + (current-poly nav-poly :offset-assert 52) + (next-mesh basic :offset-assert 56) + (next-poly nav-poly :offset-assert 60) + (len meters :offset-assert 64) + (last-edge int8 :offset-assert 68) + (ignore uint8 :offset-assert 69) + (terminated symbol :offset-assert 72) ;; guessed by decompiler + (reached-dest symbol :offset-assert 76) ;; guessed by decompiler + (hit-boundary symbol :offset-assert 80) ;; guessed by decompiler + (hit-gap symbol :offset-assert 84) ;; guessed by decompiler + (cross-meshes basic :offset-assert 88) + ) + :method-count-assert 13 + :size-assert #x5c + :flag-assert #xd0000005c + (:methods + (nav-ray-method-9 () none) ;; 9 + (nav-ray-method-10 () none) ;; 10 + (nav-ray-method-11 () none) ;; 11 + (nav-ray-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype nav-route-portal (structure) + ((vertex nav-vertex 2 :offset-assert 0) ;; guessed by decompiler + (next-poly nav-poly :offset-assert 32) + (edge-index int8 :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x25 + :flag-assert #x900000025 + ) +|# + +#| +(deftype nav-find-poly-parms (structure) + ((point vector :inline :offset-assert 0) + (y-threshold float :offset-assert 16) + (ignore uint8 :offset-assert 20) + (poly nav-poly :offset-assert 24) + (dist float :offset-assert 28) + (point-inside? symbol :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype clamp-travel-vector-to-mesh-return-info (structure) + ((found-boundary symbol :offset-assert 0) ;; guessed by decompiler + (intersection vector :inline :offset-assert 16) + (boundary-normal vector :inline :offset-assert 32) + (prev-normal vector :inline :offset-assert 48) + (next-normal vector :inline :offset-assert 64) + (poly nav-poly :offset-assert 80) + (mesh basic :offset-assert 84) + (gap-poly nav-poly :offset-assert 88) + (edge int8 :offset-assert 92) + (ignore uint8 :offset-assert 93) + (vert-prev vector :inline :offset-assert 96) + (vert-0 vector :inline :offset-assert 112) + (vert-1 vector :inline :offset-assert 128) + (vert-next vector :inline :offset-assert 144) + ) + :method-count-assert 11 + :size-assert #xa0 + :flag-assert #xb000000a0 + (:methods + (clamp-travel-vector-to-mesh-return-info-method-9 () none) ;; 9 + (clamp-travel-vector-to-mesh-return-info-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype nav-find-corner-portal-params (structure) + ((start-poly nav-poly :offset-assert 0) + (target-poly nav-poly :offset-assert 4) + (corner-poly nav-poly :offset-assert 8) + (start-pos vector :inline :offset-assert 16) + (target-pos vector :inline :offset-assert 32) + (corner-verts UNKNOWN 2 :offset-assert 48) + (vert-select int8 :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x51 + :flag-assert #x900000051 + ) +|# + +#| +(deftype nav-mesh (basic) + ((work nav-mesh-work :offset-assert 4) + (poly-array (inline-array nav-poly) :offset-assert 8) ;; guessed by decompiler + (static-sphere-count uint8 :offset-assert 12) + (poly-count uint8 :offset-assert 13) + (nav-control-count uint8 :offset-assert 14) + (max-nav-control-count uint8 :offset-assert 15) + (route (pointer uint8) :offset-assert 16) ;; guessed by decompiler + (poly-hash grid-hash :offset-assert 20) ;; guessed by decompiler + (nav-control-array (inline-array nav-control) :offset-assert 24) ;; guessed by decompiler + (sphere-hash sphere-hash :offset-assert 28) ;; guessed by decompiler + (static-sphere (inline-array sphere) :offset-assert 32) ;; guessed by decompiler + (user-list engine :offset-assert 36) ;; guessed by decompiler + (next-nav-mesh surface :offset-assert 40) ;; guessed by decompiler + (prev-nav-mesh surface :offset-assert 44) ;; guessed by decompiler + (bounds sphere :inline :offset-assert 48) + (origin vector :inline :offset-assert 48) + (entity entity :offset-assert 64) ;; guessed by decompiler + (link-array (inline-array nav-mesh-link) :offset-assert 68) ;; guessed by decompiler + (link-count uint8 :offset-assert 72) + (flags nav-mesh-flag :offset-assert 73) + (pad1 uint8 2 :offset-assert 74) ;; guessed by decompiler + (nearest-y-threshold meters :offset-assert 76) + (water-max-height meters :offset-assert 80) + (link-search-node-array uint32 :offset-assert 84) + (pad2 uint32 6 :offset-assert 88) ;; guessed by decompiler + ) + :method-count-assert 47 + :size-assert #x70 + :flag-assert #x2f00000070 + ;; field nav-mesh-flag is likely a value type. + (:methods + (nav-mesh-method-9 () none) ;; 9 ;; (debug-draw (_type_) none) + (nav-mesh-method-10 () none) ;; 10 ;; (nav-mesh-method-10 (_type_ vector vector nav-poly) nav-poly) + (nav-mesh-method-11 () none) ;; 11 ;; (nav-mesh-method-11 (_type_ vector) nav-poly) + (nav-mesh-method-12 () none) ;; 12 ;; (nav-mesh-method-12 (_type_ vector float nav-poly) symbol) + (nav-mesh-method-13 () none) ;; 13 ;; (poly-centroid (_type_ nav-poly vector) vector) + (nav-mesh-method-14 () none) ;; 14 ;; (poly-centroid-local (_type_ nav-poly vector) vector) + (nav-mesh-method-15 () none) ;; 15 ;; (lookup-poly-on-route-to-target (_type_ nav-poly nav-poly) nav-poly) + (nav-mesh-method-16 () none) ;; 16 ;; (get-route-portal (_type_ nav-poly nav-poly nav-route-portal) (inline-array nav-vertex)) + (nav-mesh-method-17 () none) ;; 17 ;; (initialize-mesh! (_type_) none) + (nav-mesh-method-18 () none) ;; 18 ;; (advance-ray-to-nearest-poly-edge-or-dest! (_type_ nav-ray) none) + (nav-mesh-method-19 () none) ;; 19 ;; (try-move-along-ray (_type_ nav-poly vector vector float) meters) + (nav-mesh-method-20 () none) ;; 20 ;; (clamp-vector-to-mesh-cross-gaps (_type_ vector nav-poly vector float symbol clamp-travel-vector-to-mesh-return-info) none) + (nav-mesh-method-21 () none) ;; 21 ;; (clamp-vector-to-mesh-no-gaps (_type_ vector nav-poly vector clamp-travel-vector-to-mesh-return-info) none) + (nav-mesh-method-22 () none) ;; 22 ;; (set-normals-from-adjacent-bounds (_type_ clamp-travel-vector-to-mesh-return-info) none) + (nav-mesh-method-23 () none) ;; 23 ;; (find-adjacent-bounds-one (_type_ vector nav-poly int int) none) + (nav-mesh-method-24 () none) ;; 24 ;; (compute-bounding-box-from-vertices (_type_ vector vector) none) + (nav-mesh-method-25 () none) ;; 25 ;; (init-from-entity (_type_ entity-nav-mesh) none) + (nav-mesh-method-26 () none) ;; 26 ;; (handle-birth (_type_) none) + (nav-mesh-method-27 () none) ;; 27 ;; (handle-kill (_type_) none) + (nav-mesh-method-28 () none) ;; 28 ;; (update-navigation (_type_) none) + (nav-mesh-method-29 () none) ;; 29 ;; (new-nav-control (_type_) nav-control) + (nav-mesh-method-30 () none) ;; 30 ;; (remove-nav-control (_type_ nav-control) none) + (nav-mesh-method-31 () none) ;; 31 ;; (add-process-drawable-to-nav-mesh (_type_ process-drawable symbol) none) + (nav-mesh-method-32 () none) ;; 32 ;; (remove-process-drawable (_type_ process-drawable) none) + (nav-mesh-method-33 () none) ;; 33 ;; (change-to (_type_ process-drawable) none) + (nav-mesh-method-34 () none) ;; 34 ;; (link-by-id (_type_ uint) symbol) + (nav-mesh-method-35 () none) ;; 35 ;; (unlink-by-id (_type_ uint) symbol) + (nav-mesh-method-36 () none) ;; 36 ;; (nav-mesh-method-36 (_type_ vector vector float) float) + (nav-mesh-method-37 () none) ;; 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-40 () none) ;; 40 ;; (point-in-poly? (_type_ nav-poly vector) symbol) + (nav-mesh-method-41 () none) ;; 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) + (nav-mesh-method-45 () none) ;; 45 ;; (nav-mesh-method-45 (_type_ nav-poly) nav-poly) + (nav-mesh-method-46 () none) ;; 46 ;; (nav-mesh-method-46 (_type_ nav-poly) nav-poly) + ) + ) +|# + +#| +(deftype nav-location (structure) + ((nav-mesh basic :offset-assert 0) + (nav-poly nav-poly :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern vector-normalize-unity! function) ;; (function vector vector) +;; (define-extern vector-normalize-unity-copy! function) ;; (function vector vector vector) +;; (define-extern debug-validate-current-poly function) ;; (function symbol) +;; (define-extern point-poly-intersection? function) ;; (function nav-mesh vector int (inline-array vector) symbol) +;; (define-extern nav-sphere-from-cam function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-control-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype check-vector-collision-with-nav-spheres-info (structure) + ((u float :offset-assert 0) + (intersect vector :inline :offset-assert 16) + (normal vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype nav-gap-info (structure) + ((dest vector :inline :offset-assert 0) + (poly nav-poly :offset-assert 16) + ) + :method-count-assert 9 + :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 + (closest-sphere-dist2 float :offset-assert 80) + (avoiding-sphere? symbol :offset-assert 84) ;; guessed by decompiler + ) + :method-count-assert 9 + :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 + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype nav-state (structure) + ((flags nav-state-flag :offset-assert 0) + (nav nav-control :offset-assert 4) ;; guessed by decompiler + (user-poly nav-poly :offset-assert 8) + (mesh nav-mesh :offset-assert 12) ;; guessed by decompiler + (current-poly nav-poly :offset-assert 16) + (virtual-current-poly nav-poly :offset-assert 20) + (next-poly nav-poly :offset-assert 24) + (target-poly nav-poly :offset-assert 28) + (rotation-rate float :offset-assert 32) + (speed meters :offset-assert 36) + (prev-speed meters :offset-assert 40) + (pad0 uint32 1 :offset-assert 44) ;; guessed by decompiler + (travel vector :inline :offset-assert 48) + (target-pos vector :inline :offset-assert 64) + (current-pos vector :inline :offset-assert 80) + (current-pos-local vector :inline :offset-assert 96) + (virtual-current-pos-local vector :inline :offset-assert 112) + (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) + ) + :method-count-assert 57 + :size-assert #xb0 + :flag-assert #x39000000b0 + (:methods + (nav-state-method-9 () none) ;; 9 ;; (debug-draw (_type_) none) + (nav-state-method-10 () none) ;; 10 ;; (nav-state-method-10 (_type_) none) + (nav-state-method-11 () none) ;; 11 ;; (plan-over-pat1-polys-using-route (_type_ nav-gap-info) symbol) + (nav-state-method-12 () none) ;; 12 ;; (get-velocity (_type_ vector) vector) + (nav-state-method-13 () none) ;; 13 ;; (get-travel (_type_ vector) vector) + (nav-state-method-14 () none) ;; 14 ;; (get-heading (_type_ vector) vector) + (nav-state-method-15 () none) ;; 15 ;; (get-target-pos (_type_ vector) vector) + (nav-state-method-16 () none) ;; 16 ;; (get-speed (_type_) meters) + (nav-state-method-17 () none) ;; 17 ;; (get-rotation-rate (_type_) float) + (nav-state-method-18 () none) ;; 18 ;; (try-projecting-to-current-poly (_type_ vector vector vector) symbol) + (nav-state-method-19 () none) ;; 19 ;; (get-current-poly (_type_) nav-poly) + (nav-state-method-20 () none) ;; 20 ;; (copy-nav-state! (_type_ (pointer nav-state)) none) + (nav-state-method-21 () none) ;; 21 ;; (nav-state-method-21 () none) + (nav-state-method-22 () none) ;; 22 ;; (nav-state-method-22 () none) + (nav-state-method-23 () none) ;; 23 ;; (nav-state-method-23 () none) + (nav-state-method-24 () none) ;; 24 ;; (turn-and-navigate-to-destination (_type_) none) + (nav-state-method-25 () none) ;; 25 ;; (navigate-using-route-portals-wrapper (_type_) none) + (nav-state-method-26 () none) ;; 26 ;; (navigate-using-best-dir-recompute-avoid-spheres-1-wrapper (_type_) none) + (nav-state-method-27 () none) ;; 27 ;; (navigate-within-poly-wrapper (_type_) none) + (nav-state-method-28 () none) ;; 28 ;; (compute-travel-speed (_type_) none) + (nav-state-method-29 () none) ;; 29 ;; (nav-state-method-29 (_type_) none) + (nav-state-method-30 () none) ;; 30 ;; (nav-state-method-30 (_type_) none) + (nav-state-method-31 () none) ;; 31 ;; (navigate-using-best-dir-recompute-avoid-spheres-2 (_type_) none) + (nav-state-method-32 () none) ;; 32 ;; (update-travel-dir-from-spheres (_type_) none) + (nav-state-method-33 () none) ;; 33 ;; (compute-speed-simple (_type_) none) + (nav-state-method-34 () none) ;; 34 ;; (navigate-v1! (_type_) none) + (nav-state-method-35 () none) ;; 35 ;; (reset-target! (_type_) none) + (nav-state-method-36 () none) ;; 36 ;; (add-offset-to-target! (_type_ vector) none) + (nav-state-method-37 () none) ;; 37 ;; (navigate-v2! (_type_) none) + (nav-state-method-38 () none) ;; 38 ;; (set-current-poly! (_type_ nav-poly) none) + (nav-state-method-39 () none) ;; 39 ;; (nav-state-method-39 (_type_) symbol) + (nav-state-method-40 () none) ;; 40 ;; (do-navigation-to-destination (_type_ vector) none) + (nav-state-method-41 () none) ;; 41 ;; (clamp-vector-to-mesh-cross-gaps (_type_ vector) symbol) + (nav-state-method-42 () none) ;; 42 ;; (set-target-pos! (_type_ vector) none) + (nav-state-method-43 () none) ;; 43 ;; (set-virtual-cur-pos! (_type_ vector) none) + (nav-state-method-44 () none) ;; 44 ;; (set-travel! (_type_ vector) none) + (nav-state-method-45 () none) ;; 45 ;; (set-velocity! (_type_ vector) none) + (nav-state-method-46 () none) ;; 46 ;; (set-heading! (_type_ vector) none) + (nav-state-method-47 () none) ;; 47 ;; (set-speed! (_type_ meters) none) + (nav-state-method-48 () none) ;; 48 ;; (reset! (_type_ nav-control) none) + (nav-state-method-49 () none) ;; 49 ;; (nav-state-method-49 () none) + (nav-state-method-50 () none) ;; 50 ;; (navigate-using-best-dir-use-existing-avoid-spheres (_type_ nav-avoid-spheres-params) none) + (nav-state-method-51 () none) ;; 51 ;; (nav-state-method-51 (_type_) none) + (nav-state-method-52 () none) ;; 52 ;; (navigate-using-route-portals (_type_) none) + (nav-state-method-53 () none) ;; 53 ;; (navigate-using-best-dir-recompute-avoid-spheres-1 (_type_) none) + (nav-state-method-54 () none) ;; 54 ;; (navigate-within-poly (_type_) none) + (nav-state-method-55 () none) ;; 55 ;; (clamp-travel-vector (_type_) none) + (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) + (process process :offset-assert 8) ;; guessed by decompiler + (pad0 uint32 :offset-assert 12) + (shape collide-shape :offset-assert 16) ;; guessed by decompiler + (nearest-y-threshold meters :offset-assert 20) + (nav-cull-radius meters :offset-assert 24) + (sec-per-frame float :offset-assert 28) + (target-speed meters :offset-assert 32) + (acceleration meters :offset-assert 36) + (turning-acceleration meters :offset-assert 40) + (max-rotation-rate float :offset-assert 44) + (speed-scale float :offset-assert 48) + (sphere-count int32 :offset-assert 52) + (sphere-array (inline-array sphere) :offset-assert 56) ;; guessed by decompiler + (root-sphere-id uint8 :offset-assert 60) + (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. + (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) + ) + :method-count-assert 48 + :size-assert #x120 + :flag-assert #x3000000120 + (:methods + (nav-control-method-9 () none) ;; 9 ;; (debug-draw (_type_) none) + (nav-control-method-10 () none) ;; 10 ;; (point-in-bsphere? (_type_ vector) symbol) + (nav-control-method-11 () none) ;; 11 ;; (find-poly-containing-point-1 (_type_ vector) nav-poly) + (nav-control-method-12 () none) ;; 12 ;; (closest-point-on-mesh (_type_ vector vector nav-poly) nav-poly) + (nav-control-method-13 () none) ;; 13 ;; (find-nearest-poly-to-point (_type_ vector) nav-poly) + (nav-control-method-14 () none) ;; 14 ;; (project-point-onto-plane-of-poly (_type_ nav-poly vector vector vector) none) + (nav-control-method-15 () none) ;; 15 ;; (find-poly-containing-point-2 (_type_ vector) nav-poly) + (nav-control-method-16 () none) ;; 16 ;; (is-above-poly-max-height? (_type_ vector float) symbol) + (nav-control-method-17 () none) ;; 17 ;; (is-in-mesh? (_type_ vector float) symbol) + (nav-control-method-18 () none) ;; 18 ;; (avoid-spheres-1! (_type_ nav-avoid-spheres-params) symbol) + (nav-control-method-19 () none) ;; 19 ;; (avoid-spheres-2! (_type_ nav-avoid-spheres-params) symbol) + (nav-control-method-20 () none) ;; 20 ;; (clamp-vector-to-mesh-cross-gaps (_type_ vector nav-poly vector float symbol clamp-travel-vector-to-mesh-return-info) none) + (nav-control-method-21 () none) ;; 21 ;; (clamp-vector-to-mesh-no-gaps (_type_ vector nav-poly vector clamp-travel-vector-to-mesh-return-info) none) + (nav-control-method-22 () none) ;; 22 ;; (find-first-sphere-and-update-avoid-params (_type_ vector nav-avoid-spheres-params) float) + (nav-control-method-23 () none) ;; 23 ;; (set-spheres-from-nav-ids (_type_) none) + (nav-control-method-24 () none) ;; 24 ;; (check-sphere-blocked! (_type_ vector int) symbol) + (nav-control-method-25 () none) ;; 25 ;; (get-max-rotation-rate (_type_) float) + (nav-control-method-26 () none) ;; 26 ;; (get-sphere-mask (_type_) uint) + (nav-control-method-27 () none) ;; 27 ;; (get-target-speed (_type_) meters) + (nav-control-method-28 () none) ;; 28 ;; (enable-extra-sphere! (_type_) none) + (nav-control-method-29 () none) ;; 29 ;; (disable-extra-sphere! (_type_) none) + (nav-control-method-30 () none) ;; 30 ;; (copy-extra-nav-sphere! (_type_ sphere) none) + (nav-control-method-31 () none) ;; 31 ;; (set-extra-nav-sphere-xyz! (_type_ sphere) none) + (nav-control-method-32 () none) ;; 32 ;; (set-extra-nav-sphere-radius! (_type_ float) none) + (nav-control-method-33 () none) ;; 33 ;; (set-nearest-y-thres! (_type_ float) none) + (nav-control-method-34 () none) ;; 34 ;; (set-nav-cull-radius! (_type_ meters) none) + (nav-control-method-35 () none) ;; 35 ;; (set-speed-scale! (_type_ float) none) + (nav-control-method-36 () none) ;; 36 ;; (set-target-speed! (_type_ meters) none) + (nav-control-method-37 () none) ;; 37 ;; (set-acceleration! (_type_ meters) none) + (nav-control-method-38 () none) ;; 38 ;; (set-turning-acceleration! (_type_ meters) none) + (nav-control-method-39 () none) ;; 39 ;; (set-max-rotation-rate! (_type_ float) none) + (nav-control-method-40 () none) ;; 40 ;; (set-sphere-mask! (_type_ uint) none) + (nav-control-method-41 () none) ;; 41 ;; (remove! (_type_) none) + (nav-control-method-42 () none) ;; 42 ;; (init! (_type_ collide-shape) none) + (nav-control-method-43 () none) ;; 43 ;; (display-marks? (_type_) symbol) + (nav-control-method-44 () none) ;; 44 ;; (nav-control-method-44 () none) + (nav-control-method-45 () none) ;; 45 ;; (find-first-sphere-intersecting-ray (_type_ vector vector vector) sphere) + (nav-control-method-46 () none) ;; 46 ;; (find-sphere-ids-from-sphere-hash (_type_ symbol) none) + (nav-control-method-47 () none) ;; 47 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spatial-hash-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype grid-hash-word (uint8) +;; () +;; :flag-assert #x900000001 +;; ) + +#| +(deftype grid-hash-box (structure) + ((min int8 3 :offset-assert 0) ;; guessed by decompiler + (max int8 3 :offset-assert 3) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype grid-hash (basic) + ((work grid-hash-work :offset-assert 4) ;; guessed by decompiler + (search-box grid-hash-box :inline :offset-assert 8) + (bucket-size int16 :offset-assert 14) + (axis-scale float 3 :offset-assert 16) ;; guessed by decompiler + (dimension-array int8 3 :offset-assert 28) ;; guessed by decompiler + (vertical-cell-count int8 :offset-assert 31) + (bucket-array (pointer grid-hash-word) :offset-assert 32) ;; guessed by decompiler + (box-min float 3 :offset-assert 36) ;; guessed by decompiler + (box-max float 3 :offset-assert 48) ;; guessed by decompiler + (object-count int16 :offset-assert 60) + (bucket-count int16 :offset-assert 62) + (min-cell-size float :offset-assert 64) + (bucket-memory-size int32 :offset-assert 68) + (mem-bucket-array (pointer grid-hash-word) :offset-assert 72) ;; guessed by decompiler + (spr-bucket-array (pointer grid-hash-word) :offset-assert 76) ;; guessed by decompiler + (debug-draw symbol :offset-assert 80) ;; guessed by decompiler + (use-scratch-ram symbol :offset-assert 84) ;; guessed by decompiler + ) + :method-count-assert 27 + :size-assert #x58 + :flag-assert #x1b00000058 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int) _type_) + (grid-hash-method-9 () none) ;; 9 ;; (update-grid-for-objects-in-box (_type_ int vector vector) none) + (grid-hash-method-10 () none) ;; 10 ;; (clear-bucket-array (_type_) none) + (grid-hash-method-11 () none) ;; 11 ;; (setup-search-box (_type_ int vector vector vector) none) + (grid-hash-method-12 () none) ;; 12 ;; (search-for-point (_type_ vector) (pointer uint8)) + (grid-hash-method-13 () none) ;; 13 ;; (search-for-sphere (_type_ vector float) (pointer uint8)) + (grid-hash-method-14 () none) ;; 14 ;; (draw (_type_ rgba) none) + (grid-hash-method-15 () none) ;; 15 ;; (dump-grid-info (_type_) none) + (grid-hash-method-16 () none) ;; 16 ;; (verify-bits-in-bucket (_type_ grid-hash-box grid-hash-box) none) + (grid-hash-method-17 () none) ;; 17 ;; (box-of-everything (_type_ object grid-hash-box) none) + (grid-hash-method-18 () none) ;; 18 ;; (grid-hash-method-18 (_type_ grid-hash-box int) none) + (grid-hash-method-19 () none) ;; 19 ;; (grid-hash-method-19 (_type_ grid-hash-box int) none) + (grid-hash-method-20 () none) ;; 20 ;; (do-search! (_type_ grid-hash-box (pointer uint8)) none) + (grid-hash-method-21 () none) ;; 21 ;; (set-up-box (_type_ grid-hash-box vector vector) none) + (grid-hash-method-22 () none) ;; 22 ;; (sphere-to-grid-box (_type_ grid-hash-box sphere) none) + (grid-hash-method-23 () none) ;; 23 ;; (line-sphere-to-grid-box (_type_ grid-hash-box vector vector float) none) + (grid-hash-method-24 () none) ;; 24 ;; (update-grid (_type_) none) + (grid-hash-method-25 () none) ;; 25 + (grid-hash-method-26 () none) ;; 26 + ) + ) +|# + +#| +(deftype find-nav-sphere-ids-params (structure) + ((bsphere sphere :inline :offset-assert 0) + (y-threshold float :offset-assert 16) + (len int16 :offset-assert 20) + (max-len int16 :offset-assert 22) + (mask uint8 :offset-assert 24) + (array (pointer uint8) :offset-assert 28) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sphere-hash (grid-hash) + ((sphere-array (inline-array sphere) :offset-assert 88) ;; guessed by decompiler + (max-object-count int16 :offset-assert 92) + (pad int16 :offset-assert 94) + (mem-sphere-array uint32 :offset-assert 96) + (spr-sphere-array uint32 :offset-assert 100) + ) + :method-count-assert 36 + :size-assert #x68 + :flag-assert #x2400000068 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int int) _type_) + (sphere-hash-method-27 () none) ;; 27 ;; (add-a-sphere-with-flag (_type_ vector int) int) + (sphere-hash-method-28 () none) ;; 28 ;; (update-from-spheres (_type_) none) + (sphere-hash-method-29 () none) ;; 29 ;; (sphere-hash-method-29 (_type_ find-nav-sphere-ids-params) none) + (sphere-hash-method-30 () none) ;; 30 ;; (check-sphere-blocked (_type_ vector int int) symbol) + (sphere-hash-method-31 () none) ;; 31 ;; (add-sphere-with-mask-and-id (_type_ vector vector float int) symbol) + (sphere-hash-method-32 () none) ;; 32 ;; (sphere-hash-method-32 (_type_ sphere int) symbol) + (sphere-hash-method-33 () none) ;; 33 + (sphere-hash-method-34 () none) ;; 34 + (sphere-hash-method-35 () none) ;; 35 + ) + ) +|# + +#| +(deftype hash-object-info (structure) + ((object basic :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype spatial-hash (sphere-hash) + ((object-array (inline-array hash-object-info) :offset-assert 104) ;; guessed by decompiler + (mem-object-array (inline-array hash-object-info) :offset-assert 108) ;; guessed by decompiler + (spr-object-array (inline-array hash-object-info) :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 42 + :size-assert #x74 + :flag-assert #x2a00000074 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int int) _type_) + (spatial-hash-method-36 () none) ;; 36 ;; (fill-actor-list-for-sphere (_type_ vector vector float (pointer collide-shape) int int) int) + (spatial-hash-method-37 () none) ;; 37 ;; (fill-actor-list-for-line-sphere (_type_ vector vector float (pointer collide-shape) int int) int) + (spatial-hash-method-38 () none) ;; 38 ;; (fill-actor-list-for-vec+r (_type_ vector (pointer collide-shape)) int) + (spatial-hash-method-39 () none) ;; 39 ;; (spatial-hash-method-39 (_type_ object hash-object-info) int) + (spatial-hash-method-40 () none) ;; 40 + (spatial-hash-method-41 () none) ;; 41 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; actor-hash-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *actor-list* object) ;; (pointer collide-shape) +;; (define-extern *actor-list-length* object) ;; int + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fmv-player-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype m2v-caption (structure) + ((text-id uint32 :offset-assert 0) + (start int32 :offset-assert 4) + (end int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype m2v-info (structure) + ((name basic :offset-assert 0) + (sound basic :offset-assert 4) + (commentary-sound basic :offset-assert 8) + (captions basic :offset-assert 12) + (commentary-captions basic :offset-assert 16) + (id uint32 :offset-assert 20) + (idx int8 :offset-assert 24) + (driver uint8 :offset-assert 25) + (driver2 uint8 :offset-assert 26) + (flags uint8 :offset-assert 27) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype fmv-player (process) + ((texture-base-page uint32 :offset-assert 144) + (texture-width uint32 :offset-assert 148) + (gui-id uint32 :offset-assert 152) + (subtitle-change-time uint64 :offset-assert 160) + (start-time uint64 :offset-assert 168) + (fmv-mode uint8 :offset-assert 176) + ) + :method-count-assert 20 + :size-assert #xb1 + :flag-assert #x14003000b1 + (:methods + (fmv-player-method-9 () none) ;; 9 + (fmv-player-method-10 () none) ;; 10 + (fmv-player-method-11 () none) ;; 11 + (fmv-player-method-12 () none) ;; 12 + (fmv-player-method-13 () none) ;; 13 + (fmv-player-method-14 () none) ;; 14 + (fmv-player-method-15 () none) ;; 15 + (fmv-player-method-16 () none) ;; 16 + (fmv-player-method-17 () none) ;; 17 + (fmv-player-method-18 () none) ;; 18 + (fmv-player-method-19 () none) ;; 19 + ) + ) +|# + +#| +(deftype fmv-display-params (structure) + ((display-mode int32 :offset-assert 0) + (texture-base-page uint32 :offset-assert 4) + (texture-width uint32 :offset-assert 8) + (frame-base-pointer uint32 :offset-assert 12) + (display-width uint32 :offset-assert 16) + (display-height uint32 :offset-assert 20) + (display-dx int32 :offset-assert 24) + (display-dy int32 :offset-assert 28) + (contrast float :offset-assert 32) + (brightness float :offset-assert 36) + (fast-z-clear int32 :offset-assert 40) + (frame-buffer-mask uint32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype fmv-player-params (structure) + ((display-mode fmv-display-params :inline :offset-assert 0) + (file-init basic :offset-assert 48) + (file-read basic :offset-assert 52) + (get-time basic :offset-assert 56) + (video-type int32 :offset-assert 60) + (zoom-mode int32 :offset-assert 64) + (upper-field-first int32 :offset-assert 68) + (buffer-mode int32 :offset-assert 72) + (work-mem uint32 :offset-assert 76) + (work-mem-size uint32 :offset-assert 80) + ) + :method-count-assert 10 + :size-assert #x54 + :flag-assert #xa00000054 + (:methods + (fmv-player-params-method-9 () none) ;; 9 + ) + ) +|# + +;; (define-extern *fmv-player* object) +;; (define-extern *m2v-info* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; load-dgo ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype load-dgo-msg (structure) + ((rsvd uint16 :offset-assert 0) + (result uint16 :offset-assert 2) ;; load-msg-result + (b1 pointer :offset-assert 4) ;; guessed by decompiler + (b2 pointer :offset-assert 8) ;; guessed by decompiler + (bt pointer :offset-assert 12) ;; guessed by decompiler + (name uint128 :offset-assert 16) + (address uint32 :offset-assert 4) + (id uint128 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype load-chunk-msg (structure) + ((rsvd uint16 :offset-assert 0) + (result uint16 :offset-assert 2) ;; load-msg-result + (address pointer :offset-assert 4) ;; guessed by decompiler + (section uint32 :offset-assert 8) + (maxlen uint32 :offset-assert 12) + (dummy uint32 4 :offset-assert 16) ;; guessed by decompiler + (basename sound-stream-name :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype play-chunk-msg (structure) + ((rsvd uint16 :offset-assert 0) + (result uint16 :offset-assert 2) + (address pointer :offset-assert 4) ;; guessed by decompiler + (section uint32 :offset-assert 8) + (volume int32 :offset-assert 8) + (maxlen uint32 :offset-assert 12) + (group uint8 :offset-assert 12) + (id uint32 4 :offset-assert 16) ;; guessed by decompiler + (basename sound-stream-name 4 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xe0 + :flag-assert #x9000000e0 + ) +|# + +;; (define-extern *load-dgo-rpc* object) ;; rpc-buffer-pair +;; (define-extern *load-str-rpc* object) ;; rpc-buffer-pair +;; (define-extern *play-str-rpc* object) ;; rpc-buffer-pair +;; (define-extern *load-str-lock* object) ;; symbol +;; (define-extern *que-str-lock* object) ;; symbol +;; (define-extern *dgo-name* object) ;; string +;; (define-extern str-load function) ;; (function string int pointer int symbol) +;; (define-extern str-load-status function) ;; (function (pointer int32) symbol) +;; (define-extern str-load-cancel function) ;; (function none) +;; (define-extern str-play-async function) ;; (function string sound-id int int none) +;; (define-extern str-play-stop function) ;; (function string sound-id none) +;; (define-extern str-play-queue function) ;; (function string string string string (pointer uint32) pointer none) +;; (define-extern str-ambient-play function) ;; (function string none) +;; (define-extern str-ambient-stop function) ;; (function string none) +;; (define-extern str-play-kick function) ;; (function none) +;; (define-extern *dgo-time* object) ;; time-frame +;; (define-extern dgo-load-begin function) ;; (function string uint128 pointer pointer pointer load-dgo-msg) +;; (define-extern dgo-load-get-next function) ;; (function (pointer symbol) pointer) +;; (define-extern dgo-load-continue function) ;; (function pointer pointer pointer load-dgo-msg) +;; (define-extern dgo-load-cancel function) ;; (function int none) +;; (define-extern find-temp-buffer function) ;; (function int pointer) +;; (define-extern dgo-load-link function) ;; (function dgo-header kheap uint symbol symbol symbol) +;; (define-extern destroy-mem function) ;; (function (pointer uint32) (pointer uint32) none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ramdisk ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ramdisk-rpc-fill (structure) + ((rsvd1 int32 :offset-assert 0) + (ee-id int32 :offset-assert 4) + (rsvd2 int32 2 :offset-assert 8) ;; guessed by decompiler + (filename uint128 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype ramdisk-rpc-load (structure) + ((rsvd int32 :offset-assert 0) + (ee-id int32 :offset-assert 4) + (offset uint32 :offset-assert 8) + (length uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype ramdisk-rpc-load-to-ee (structure) + ((rsvd int32 :offset-assert 0) + (addr int32 :offset-assert 4) + (offset int32 :offset-assert 8) + (length int32 :offset-assert 12) + (filename uint128 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern *ramdisk-rpc* object) ;; rpc-buffer-pair +;; (define-extern *current-ramdisk-id* object) ;; int +;; (define-extern ramdisk-load function) ;; (function int uint uint pointer int) +;; (define-extern ramdisk-sync function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gsound ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype engine-sound-pers (engine-pers) + () + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + ) +|# + +;; (define-extern sound-mp-fix-trans function) +;; (define-extern *sound-loop-engine* object) ;; engine-sound-pers +;; (define-extern *sound-player-rpc* object) ;; rpc-buffer-pair +;; (define-extern *sound-loader-rpc* object) ;; rpc-buffer-pair +;; (define-extern sound-name= function) ;; (function sound-name sound-name symbol) +;; (define-extern str-is-playing? function) ;; (function symbol) +;; (define-extern str-id-is-playing? function) ;; (function sound-id symbol) +;; (define-extern current-str-pos function) ;; (function sound-id int) +;; (define-extern current-str-status function) ;; (function sound-id stream-status) +;; (define-extern *dnas-is-running* object) +;; (define-extern is-cd-in? function) ;; (function symbol) +;; (define-extern new-sound-id function) ;; (function sound-id) +;; (define-extern check-irx-version function) ;; (function int) +;; (define-extern sound-bank-load function) ;; (function sound-name int int sound-id) +;; (define-extern sound-bank-unload function) ;; (function sound-name int) +;; (define-extern sound-music-load function) ;; (function sound-name int) +;; (define-extern sound-music-unload function) ;; (function int) +;; (define-extern set-language function) ;; (function language-enum int) +;; (define-extern sound-set-stereo-mode function) ;; (function int none) +;; (define-extern list-sounds function) ;; (function none) +;; (define-extern sound-command->string function) ;; (function sound-command string) +;; (define-extern sound-buffer-dump function) ;; (function int) +;; (define-extern *debug-sound-info-item* object) +;; (define-extern sound-instance-play function) +;; (define-extern sound-instance-update function) +;; (define-extern sound-info-by-name function) +;; (define-extern *sound-handles* array) +;; (define-extern find-sound-handle function) +;; (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 remove-sound-instance-by-index function) +;; (define-extern remove-sound-instance-by-sound-id function) +;; (define-extern make-sound-instance function) +;; (define-extern update-pitch-with-doppler function) +;; (define-extern update-tracking-position function) +;; (define-extern calculate-pan-angle function) +;; (define-extern update-pan-angle function) +;; (define-extern calculate-falloff-volume function) +;; (define-extern update-volume-with-falloff function) +;; (define-extern *sound-priority-level* object) +;; (define-extern *sound-duck-amount* object) +;; (define-extern *sound-priority-duck* object) +;; (define-extern *music-ducked-last-frame?* object) +;; (define-extern *slow-mo-last-frame?* object) +;; (define-extern set-sound-priority-duck-amount function) +;; (define-extern unset-sound-priority-duck-amount function) +;; (define-extern build-sound-list function) +;; (define-extern *sound-player-enable* object) ;; symbol +;; (define-extern swap-sound-buffers function) ;; (function vector vector vector vector vector float int) +;; (define-extern get-sound-buffer-entry function) ;; (function pointer) +;; (define-extern free-last-sound-buffer-entry function) ;; (function none) +;; (define-extern sound-basic-cb function) ;; (function int (pointer int32) none) +;; (define-extern sound-trans-copy function) +;; (define-extern string->sound-name function) ;; (function string sound-name) +;; (define-extern sound-name->string function) ;; (function sound-name string) +;; (define-extern sound-set-volume function) ;; (function sound-group float int) +;; (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-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) +;; (define-extern sound-group-continue function) ;; (function sound-group int) +;; (define-extern sound-set-fps function) ;; (function int int) +;; (define-extern sound-volume-off function) ;; (function int) +;; (define-extern show-iop-info function) ;; (function dma-buffer int) +;; (define-extern show-iop-memory function) ;; (function dma-buffer int) +;; (define-extern ear-trans function) ;; (function int vector) +;; (define-extern make-sqrt-table function) ;; (function none) +;; (define-extern doppler-pitch-shift function) ;; (function vector vector float) +;; (define-extern sound-bank-reload function) ;; (function none) +;; (define-extern sound-bank-reload-common function) +;; (define-extern *jukebox-onoff* object) +;; (define-extern *last-music-position* object) +;; (define-extern jukebox-onoff function) +;; (define-extern update-jukebox-music function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; transformq ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern transformq-copy! function) ;; (function transformq transformq transformq) +;; (define-extern matrix<-transformq! function) ;; (function matrix transformq matrix) +;; (define-extern matrix<-no-trans-transformq! function) ;; (function matrix transformq matrix) +;; (define-extern matrix<-transformq+trans! function) ;; (function matrix transformq vector matrix) +;; (define-extern matrix<-transformq+world-trans! function) ;; (function matrix transformq vector matrix) +;; (define-extern matrix<-parented-transformq! function) ;; (function matrix transformq vector matrix) +;; (define-extern matrix<-transformq+rot-offset! function) ;; (function matrix transformq vector matrix) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-func ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern raw-ray-sphere-intersect function) ;; function +;; (define-extern ray-sphere-intersect function) ;; (function vector vector vector float float) +;; (define-extern ray-circle-intersect function) ;; (function vector vector vector float float) +;; (define-extern ray-cylinder-intersect function) ;; (function vector vector vector vector float float vector float) +;; (define-extern ray-plane-intersect function) ;; (function vector vector vector vector vector vector vector float) +;; (define-extern ray-triangle-intersect function) +;; (define-extern collide-do-primitives function) +;; (define-extern moving-sphere-triangle-intersect function) ;; (function vector vector float collide-cache-tri vector vector float) +;; (define-extern moving-sphere-sphere-intersect function) +;; (define-extern moving-sphere-moving-sphere-intersect function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; joint ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype art-group (art) + ((info file-info :offset-assert 0) ;; guessed by decompiler + (length int32 :offset-assert 8) + (name string :offset-assert 4) ;; guessed by decompiler + (extra res-lump :offset-assert 12) ;; guessed by decompiler + (data art-element :dynamic :offset-assert 28) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 16 + :size-assert #x20 + :flag-assert #x1000000020 + (:methods + (art-group-method-14 () none) ;; 14 ;; (link-art-to-master (_type_) art-group) + (art-group-method-15 () none) ;; 15 ;; (unlink-art-to-master (_type_) int) + ) + ) +|# + +;; (define-extern joint-anim-login function) ;; (function joint-anim-drawable joint-anim-drawable) +;; (define-extern joint-anim-inspect-elt function) ;; (function joint-anim float joint-anim) +;; (define-extern jacc-mem-usage function) ;; (function joint-anim-compressed-control memory-usage-block int joint-anim-compressed-control) +;; (define-extern joint-control-cleanup function) ;; (function joint-control kheap art-joint-anim symbol) +;; (define-extern joint-control-channel-eval function) ;; (function joint-control-channel float :behavior process) +;; (define-extern joint-control-channel-eval! function) ;; (function joint-control-channel (function joint-control-channel float float float float) float :behavior process) +;; (define-extern joint-control-channel-group-eval! function) ;; (function joint-control-channel art-joint-anim (function joint-control-channel float float float float) int) +;; (define-extern joint-control-channel-group! function) ;; (function joint-control-channel art-joint-anim (function joint-control-channel float float float float) int) +;; (define-extern joint-control-copy! function) ;; (function joint-control joint-control joint-control) +;; (define-extern joint-control-remap! function) ;; (function joint-control art-group art-group pair int string symbol) +;; (define-extern flatten-joint-control-to-spr function) ;; (function joint-control int) +;; (define-extern matrix-from-joint-anim-frame function) ;; (function joint-anim-compressed-control int int matrix) +;; (define-extern matrix-from-control-channel! function) ;; (function matrix joint joint-control-channel matrix) +;; (define-extern matrix-from-control-pair! function) ;; (function matrix joint-control-channel joint int matrix) +;; (define-extern matrix-from-control! function) ;; (function matrix-stack joint joint-control symbol matrix) +;; (define-extern cspace<-cspace! function) ;; (function cspace cspace matrix) +;; (define-extern cspace<-cspace-normalized! function) ;; (function cspace cspace matrix) +;; (define-extern cspace<-parent-joint! function) ;; (function cspace (pointer process-drawable) int matrix) +;; (define-extern cspace<-transformq! function) ;; (function cspace transformq matrix) +;; (define-extern cspace<-transformq+trans! function) ;; (function cspace transformq vector matrix) +;; (define-extern cspace<-transformq+world-trans! function) ;; (function cspace transformq vector matrix) +;; (define-extern cspace<-transformq+rot-offset! function) ;; (function cspace transformq vector matrix) +;; (define-extern cspace-calc-total-matrix! function) ;; (function cspace matrix matrix) +;; (define-extern cspace<-matrix-no-push-joint! function) ;; (function cspace joint-control matrix) +;; (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<-matrix-joint-flip-z! function) ;; (function cspace matrix none) +;; (define-extern cspace<-parented-transformq-joint! function) ;; (function cspace transformq none) +;; (define-extern cspace<-parented-transformq-joint-flip-z! function) ;; (function cspace transformq none) +;; (define-extern clear-frame-accumulator function) +;; (define-extern normalize-frame-quaternions function) +;; (define-extern decompress-fixed-data-to-accumulator function) +;; (define-extern decompress-frame-data-to-accumulator function) +;; (define-extern decompress-frame-data-pair-to-accumulator function) +;; (define-extern make-joint-jump-tables function) ;; (function int) +;; (define-extern calc-animation-from-spr function) ;; (function joint-anim-frame int none) +;; (define-extern create-interpolated-joint-animation-frame function) ;; (function joint-anim-frame int joint-control int) +;; (define-extern create-interpolated2-joint-animation-frame function) ;; (function joint-anim-frame int joint-control int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wind-work ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *wind-work* wind-work) ;; wind-work + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wind ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern update-wind function) ;; (function wind-work (array uint8) none) +;; (define-extern wind-get-hashed-index function) ;; (function vector wind-work int) +;; (define-extern level-update-wind function) ;; (function wind-work none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; subdivide ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *merc-global-stats* object) ;; merc-global-stats +;; (define-extern clear-tr-stat function) ;; (function tr-stat none) +;; (define-extern *stat-string-tfrag* object) ;; string +;; (define-extern *stat-string-tfrag-scissor* object) ;; string +;; (define-extern *stat-string-total* object) ;; string +;; (define-extern print-tr-stat function) ;; (function tr-stat string string none) +;; (define-extern print-terrain-stats function) ;; (function none) +;; (define-extern update-subdivide-settings! function) ;; (function subdivide-settings math-camera int none) +;; (define-extern *subdivide-settings* object) ;; subdivide-settings +;; (define-extern set-tfrag-dists! function) ;; (function tfrag-dists none) +;; (define-extern *terrain-context* object) ;; terrain-context +;; (define-extern GSH_ENABLE object) ;; symbol +;; (define-extern GSH_BUCKET object) ;; bucket-id +;; (define-extern GSH_WHICH_STAT object) ;; int +;; (define-extern GSH_MAX_DISPLAY object) ;; basic +;; (define-extern GSH_TIME object) ;; int +;; (define-extern *perf-stats* object) ;; perf-stat-array +;; (define-extern *gomi-stats-hack* object) ;; (inline-array perf-stat) +;; (define-extern start-perf-stat-collection function) ;; (function none) +;; (define-extern end-perf-stat-collection function) ;; (function none) +;; (define-extern print-perf-stats function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sprite ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sprite-header (structure) + ((header qword 1 :offset-assert 0) ;; guessed by decompiler + (num-sprites int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype sprite-hvdf-data (structure) + ((data qword 76 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4c0 + :flag-assert #x9000004c0 + ) +|# + +#| +(deftype sprite-hvdf-control (structure) + ((alloc int8 76 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype sprite-aux-elem (structure) + ((aux-type sprite-aux-type :offset-assert 0) ;; guessed by decompiler + (data vector 3 :offset-assert 4) ;; guessed by decompiler + (vec-data sprite-vec-data-2d :offset-assert 4) + (gif-data adgif-shader :offset-assert 8) + (aux-data sparticle-cpuinfo :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype sprite-aux-list (basic) + ((num-entries int32 :offset-assert 4) + (entry int32 :offset-assert 8) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype sprite-frame-data (structure) + ((data UNKNOWN 42 :offset-assert 0) + (cdata vector 16 :offset-assert 0) ;; guessed by decompiler + (fdata UNKNOWN 26 :offset-assert 256) + (xy-array vector 8 :offset-assert 0) ;; guessed by decompiler + (st-array vector 4 :offset-assert 128) ;; guessed by decompiler + (xyz-array vector 4 :offset-assert 192) ;; guessed by decompiler + (hmge-scale vector :inline :offset-assert 256) + (consts vector :inline :offset-assert 272) + (pfog0 float :offset-assert 272) + (deg-to-rad float :offset-assert 276) + (min-scale float :offset-assert 280) + (inv-area float :offset-assert 284) + (adgif-giftag qword :inline :offset-assert 288) ;; gs-gif-tag :inline + (sprite-2d-giftag qword :inline :offset-assert 304) ;; gs-gif-tag :inline + (sprite-2d-giftag-2 qword :inline :offset-assert 320) ;; gs-gif-tag :inline + (sincos-01 vector :inline :offset-assert 336) + (sincos-23 vector :inline :offset-assert 352) + (sincos-45 vector :inline :offset-assert 368) + (sincos-67 vector :inline :offset-assert 384) + (sincos-89 vector :inline :offset-assert 400) + (basis-x vector :inline :offset-assert 416) + (basis-y vector :inline :offset-assert 432) + (sprite-3d-giftag qword :inline :offset-assert 448) ;; gs-gif-tag :inline + (sprite-3d-giftag-2 qword :inline :offset-assert 464) ;; gs-gif-tag :inline + (screen-shader adgif-shader :inline :offset-assert 480) + (inv-hmge-scale vector :inline :offset-assert 576) + (stq-offset vector :inline :offset-assert 592) + (stq-scale vector :inline :offset-assert 608) + (rgba-plain qword :inline :offset-assert 624) + (warp-giftag qword :inline :offset-assert 640) ;; gs-gif-tag :inline + (fog-clamp vector :inline :offset-assert 656) + (fog-min float :offset-assert 656) + (fog-max float :offset-assert 660) + (max-scale float :offset-assert 664) + ) + :method-count-assert 9 + :size-assert #x2a0 + :flag-assert #x9000002a0 + ) +|# + +;; (define-extern sprite-setup-header function) ;; (function sprite-header int none) +;; (define-extern clear-sprite-aux-list function) ;; (function none) +;; (define-extern add-to-sprite-aux-list function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d uint none) +;; (define-extern sprite-setup-frame-data function) ;; (function sprite-frame-data uint none) +;; (define-extern sprite-vu1-block object) ;; vu-function +;; (define-extern sprite-set-3d-quaternion! function) ;; (function sprite-vec-data-3d quaternion quaternion) +;; (define-extern sprite-get-3d-quaternion! function) ;; (function quaternion sprite-vec-data-3d quaternion) +;; (define-extern sprite-add-matrix-data function) ;; (function dma-buffer uint none) +;; (define-extern sprite-add-frame-data function) ;; (function dma-buffer uint none) +;; (define-extern sprite-add-2d-chunk function) ;; (function sprite-array-2d int int dma-buffer int none) +;; (define-extern sprite-add-2d-all function) ;; (function sprite-array-2d dma-buffer int none) +;; (define-extern sprite-add-3d-chunk function) ;; (function sprite-array-3d int int dma-buffer none) +;; (define-extern sprite-add-3d-all function) ;; (function sprite-array-3d dma-buffer int none) +;; (define-extern sprite-draw function) ;; (function display none) +;; (define-extern sprite-allocate-user-hvdf function) ;; (function int) +;; (define-extern sprite-release-user-hvdf function) ;; (function int none) +;; (define-extern sprite-get-user-hvdf function) ;; (function int vector) +;; (define-extern *sprite-hvdf-data* object) ;; sprite-hvdf-data +;; (define-extern *sprite-hvdf-control* object) ;; sprite-hvdf-control +;; (define-extern *sprite-aux-list* object) ;; sprite-aux-list +;; (define-extern *sprite-array-2d* object) ;; sprite-array-2d +;; (define-extern *sprite-array-3d* object) ;; sprite-array-3d + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sprite-distort ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sprite-distorter-sine-tables (basic) + ((aspx float :offset-assert 4) + (aspy float :offset-assert 8) + (entry vector 128 :offset-assert 16) ;; guessed by decompiler + (ientry qword 9 :offset-assert 2064) ;; guessed by decompiler + (giftag qword :inline :offset-assert 2208) ;; gs-gif-tag :inline + (color qword :inline :offset-assert 2224) + ) + :method-count-assert 9 + :size-assert #x8c0 + :flag-assert #x9000008c0 + ) +|# + +;; (define-extern *sprite-distorter-sine-tables* object) ;; sprite-distorter-sine-tables +;; (define-extern sprite-distorter-generate-tables function) ;; (function none) +;; (define-extern sprite-distort-vu1-block object) ;; vu-function +;; (define-extern sprite-init-distorter function) ;; (function dma-buffer none) +;; (define-extern sprite-draw-distorters function) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sprite-glow ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sprite-glow-template (structure) + ((clear-init-giftag gs-gif-tag :inline :offset-assert 0) + (clear-init-adcmds gs-adcmd 5 :offset-assert 16) ;; guessed by decompiler + (clear-draw-giftag gs-gif-tag :inline :offset-assert 96) + (clear-draw-clr-0 gs-packed-rgba :inline :offset-assert 112) + (clear-draw-xyz-0 gs-packed-xyzw 2 :offset-assert 128) ;; guessed by decompiler + (clear-draw-clr-1 gs-packed-rgba :inline :offset-assert 160) + (clear-draw-xyz-1 vector 2 :offset-assert 176) ;; guessed by decompiler + (offscr-setup-giftag gs-gif-tag :inline :offset-assert 208) + (offscr-setup-adcmds gs-adcmd 9 :offset-assert 224) ;; guessed by decompiler + (offscr-first-giftag gs-gif-tag :inline :offset-assert 368) + (offscr-first-clr gs-packed-rgba :inline :offset-assert 384) + (offscr-first-uv-0 gs-packed-uv :inline :offset-assert 400) + (offscr-first-xyzw-0 gs-packed-xyzw :inline :offset-assert 416) + (offscr-first-uv-1 gs-packed-uv :inline :offset-assert 432) + (offscr-first-xyzw-1 gs-packed-xyzw :inline :offset-assert 448) + (repeat-draw-giftag gs-gif-tag :inline :offset-assert 464) + (repeat-draw-adcmds gs-adcmd 29 :offset-assert 480) ;; guessed by decompiler + (flare-alpha-giftag gs-gif-tag :inline :offset-assert 944) + (flare-alpha-clr gs-packed-rgba :inline :offset-assert 960) + (flare-alpha-uv gs-packed-uv :inline :offset-assert 976) + (flare-alpha-xyzw-0 gs-packed-xyzw :inline :offset-assert 992) + (flare-alpha-xyzw-1 gs-packed-xyzw :inline :offset-assert 1008) + (flare-alpha-xyzw-2 gs-packed-xyzw :inline :offset-assert 1024) + (flare-alpha-xyzw-3 gs-packed-xyzw :inline :offset-assert 1040) + (flare-init-giftag gs-gif-tag :inline :offset-assert 1056) + (flare-init-adcmds gs-adcmd 8 :offset-assert 1072) ;; guessed by decompiler + (flare-draw-giftag gs-gif-tag :inline :offset-assert 1200) + (flare-draw-clr gs-packed-rgba :inline :offset-assert 1216) + (flare-draw-stq-0 gs-packed-stq :inline :offset-assert 1232) + (flare-draw-xyzw-0 gs-packed-xyzw :inline :offset-assert 1248) + (flare-draw-stq-1 gs-packed-stq :inline :offset-assert 1264) + (flare-draw-xyzw-1 gs-packed-xyzw :inline :offset-assert 1280) + (flare-draw-stq-2 gs-packed-stq :inline :offset-assert 1296) + (flare-draw-xyzw-2 gs-packed-xyzw :inline :offset-assert 1312) + (flare-draw-stq-3 gs-packed-stq :inline :offset-assert 1328) + (flare-draw-xyzw-3 gs-packed-xyzw :inline :offset-assert 1344) + ) + :method-count-assert 9 + :size-assert #x550 + :flag-assert #x900000550 + ) +|# + +#| +(deftype sprite-glow-consts (structure) + ((camera matrix :inline :offset-assert 0) + (perspective matrix :inline :offset-assert 64) + (hvdf-offset vector :inline :offset-assert 128) + (hmge-scale vector :inline :offset-assert 144) + (consts vector :inline :offset-assert 160) + (pfog0 float :offset-assert 160) + (deg-to-rad float :offset-assert 164) + (min-scale float :offset-assert 168) + (inv-area float :offset-assert 172) + (sincos-01 vector :inline :offset-assert 176) + (sincos-23 vector :inline :offset-assert 192) + (sincos-45 vector :inline :offset-assert 208) + (sincos-67 vector :inline :offset-assert 224) + (sincos-89 vector :inline :offset-assert 240) + (basis-x vector :inline :offset-assert 256) + (basis-y vector :inline :offset-assert 272) + (xy-array vector 4 :offset-assert 288) ;; guessed by decompiler + (clamp-min vector :inline :offset-assert 352) + (clamp-max vector :inline :offset-assert 368) + ) + :method-count-assert 9 + :size-assert #x180 + :flag-assert #x900000180 + ) +|# + +#| +(deftype sprite-glow-dma-packet-data (structure) + ((control-packet dma-packet :inline :offset-assert 0) + (vecdata-packet dma-packet :inline :offset-assert 16) + (shader-cnt-packet dma-packet :inline :offset-assert 32) + (shader-ref-packet dma-packet :inline :offset-assert 48) + (mscal-packet dma-packet :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype sprite-glow-cnt-template (structure) + ((control-packet dma-packet :inline :offset-assert 0) + (num-sprites uint32 :offset-assert 16) + (dummys uint32 3 :offset-assert 20) ;; guessed by decompiler + (vecdata-packet dma-packet :inline :offset-assert 32) + (vecdata sprite-glow-data :inline :offset-assert 48) + (shader-packet dma-packet :inline :offset-assert 112) + (shader adgif-shader :inline :offset-assert 128) + (mscal-packet dma-packet :inline :offset-assert 208) + ) + :method-count-assert 9 + :size-assert #xe0 + :flag-assert #x9000000e0 + ) +|# + +#| +(deftype sprite-glow-ref-template (structure) + ((control-packet dma-packet :inline :offset-assert 0) + (num-sprites uint32 :offset-assert 16) + (dummys uint32 3 :offset-assert 20) ;; guessed by decompiler + (vecdata-packet dma-packet :inline :offset-assert 32) + (vecdata sprite-glow-data :inline :offset-assert 48) + (shader-packet dma-packet :inline :offset-assert 112) + (mscal-packet dma-packet :inline :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +;; (define-extern *sprite-glow-templates* array) +;; (define-extern sprite-glow-vu1-block object) ;; vu-function +;; (define-extern sprite-glow-init-consts function) ;; (function sprite-glow-consts none) +;; (define-extern sprite-glow-init-engine function) ;; (function dma-buffer none) +;; (define-extern *sprite-glow-dma-packet-data* object) ;; sprite-glow-dma-packet-data +;; (define-extern sprite-glow-add-sprite function) ;; (function dma-buffer sprite-vec-data-2d float float float adgif-shader none) +;; (define-extern sprite-glow-add-simple-sprite function) ;; (function dma-buffer sprite-glow-dma-packet-data sprite-glow-data pointer none) +;; (define-extern sprite-glow-draw function) ;; (function dma-buffer none) +;; (define-extern add-shader-to-dma function) ;; (function dma-buffer adgif-shader) +;; (define-extern *simple-sprite-system* object) ;; simple-sprite-system + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debug-sphere ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern make-debug-sphere-table function) ;; (function vector-array float float vector-array) +;; (define-extern *debug-sphere-table* object) ;; (array vector-array) +;; (define-extern add-debug-sphere-from-table function) ;; (function bucket-id vector meters rgba int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debug ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype debug-line (structure) + ((flags int32 :offset-assert 0) + (bucket int32 :offset-assert 4) ;; bucket-id + (v1 vector :inline :offset-assert 16) + (v2 vector :inline :offset-assert 32) + (color rgba :offset-assert 48) ;; guessed by decompiler + (mode symbol :offset-assert 52) ;; guessed by decompiler + (color2 rgba :offset-assert 56) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +#| +(deftype debug-text-3d (structure) + ((flags int32 :offset-assert 0) + (bucket int32 :offset-assert 4) ;; bucket-id + (pos vector :inline :offset-assert 16) + (color uint8 :offset-assert 32) ;; font-color + (offset vector2h :inline :offset-assert 34) + (str string :offset-assert 40) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype debug-tracking-thang (basic) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; 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 add-debug-flat-triangle-noclip function) +;; (define-extern *debug-lines* object) ;; (inline-array debug-line) +;; (define-extern *debug-lines-trk* object) ;; debug-tracking-thang +;; (define-extern *debug-text-3ds* object) ;; (inline-array debug-text-3d) +;; (define-extern *debug-text-3d-trk* object) ;; debug-tracking-thang +;; (define-extern *debug-prims* object) +;; (define-extern debug-reset-prim-buffer function) +;; (define-extern add-debug-flat-triangle function) ;; (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 add-debug-line function) ;; (function symbol bucket-id vector vector rgba symbol rgba symbol) +;; (define-extern add-debug-line2d function) ;; (function symbol bucket-id vector4w vector4w vector4w symbol) +;; (define-extern add-debug-box function) ;; (function symbol bucket-id vector vector rgba symbol) +;; (define-extern add-debug-box-with-transform function) ;; (function symbol bucket-id bounding-box matrix rgba symbol) +;; (define-extern add-debug-x function) ;; (function symbol bucket-id vector rgba symbol) +;; (define-extern add-debug-cross function) ;; (function symbol bucket-id vector float symbol) +;; (define-extern add-debug-text-3d function) ;; (function symbol bucket-id string vector font-color vector2h symbol) +;; (define-extern add-debug-sphere-with-transform function) ;; (function symbol bucket-id vector meters matrix rgba symbol) +;; (define-extern add-debug-sphere function) ;; (function symbol bucket-id vector meters rgba symbol) +;; (define-extern add-debug-text-sphere function) ;; (function symbol bucket-id vector meters string rgba symbol) +;; (define-extern add-debug-spheres function) ;; (function symbol bucket-id (inline-array vector) int rgba symbol) +;; (define-extern add-debug-line-sphere function) ;; (function symbol bucket-id vector vector float rgba none) +;; (define-extern add-debug-circle function) ;; (function symbol bucket-id vector float rgba matrix symbol) +;; (define-extern add-debug-vector function) ;; (function symbol bucket-id vector vector meters rgba symbol) +;; (define-extern add-debug-matrix function) ;; (function symbol bucket-id matrix meters matrix) +;; (define-extern add-debug-rot-matrix function) ;; (function symbol bucket-id matrix vector matrix) +;; (define-extern add-debug-quaternion function) ;; (function symbol bucket-id vector quaternion none) +;; (define-extern add-debug-cspace function) ;; (function symbol bucket-id cspace cspace) +;; (define-extern add-debug-yrot-vector function) ;; (function symbol bucket-id vector float float rgba symbol) +;; (define-extern add-debug-arc function) ;; (function symbol bucket-id vector float float float rgba matrix symbol) +;; (define-extern add-debug-curve function) ;; (function symbol bucket-id (inline-array vector) int (pointer float) int rgba symbol) +;; (define-extern add-debug-curve2 function) ;; (function symbol bucket-id curve rgba symbol symbol) +;; (define-extern add-debug-points function) ;; (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-pad-display function) ;; (function cpad-info symbol) +;; (define-extern add-debug-light function) ;; (function symbol bucket-id light vector string symbol) +;; (define-extern add-debug-lights function) ;; (function symbol bucket-id (inline-array light) vector symbol) +;; (define-extern drawable-frag-count function) ;; (function drawable int) +;; (define-extern history-init function) ;; (function pos-history int pos-history) +;; (define-extern history-draw-and-update function) ;; (function pos-history symbol vector symbol) +;; (define-extern dma-timeout-cam function) ;; (function vector) +;; (define-extern display-file-info function) ;; (function int) +;; (define-extern add-debug-cursor function) ;; (function symbol bucket-id int int mouse-buttons int) +;; (define-extern *boundary-polygon* object) ;; (inline-array sky-vertex) +;; (define-extern init-boundary-regs function) ;; (function none) +;; (define-extern add-boundary-shader function) ;; (function texture-id dma-buffer none) +;; (define-extern draw-boundary-polygon function) +;; (define-extern render-boundary-quad function) +;; (define-extern render-boundary-tri function) ;; (function sky-vertex dma-buffer none) +;; (define-extern add-debug-bound-internal function) ;; (function dma-buffer (inline-array vector) int rgba rgba int none) +;; (define-extern add-debug-bound function) ;; (function bucket-id (inline-array vector) int rgba rgba int none) +;; (define-extern cpu-delay function) +;; (define-extern qword-read-time function) ;; (function (array uint128) int int) +;; (define-extern bugfix? function) ;; (function symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; history ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype history-elt (structure) + ((record-tag-bytes uint8 4 :offset-assert 0) ;; guessed by decompiler + (record-tag uint32 :offset-assert 0) + (record-id uint16 :offset-assert 0) + (owner uint8 :offset-assert 2) + (channel uint8 :offset-assert 4) ;; history-channel + (timestamp uint64 :offset-assert 8) ;; time-frame + (origin vector :inline :offset-assert 16) + (bytes uint8 16 :offset-assert 32) ;; guessed by decompiler + (vector vector :inline :offset-assert 32) + (float float :offset-assert 32) + (collide-status uint64 :offset-assert 32) ;; collide-status + (collide-reaction-flag uint32 :offset-assert 40) + (pat pat-surface :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype history-iterator (basic) + ((max-age uint32 :offset-assert 4) + (owner uint8 :offset-assert 8) + (proc process :offset-assert 12) ;; guessed by decompiler + (out object :offset-assert 16) ;; guessed by decompiler + (channel-mask uint64 :offset-assert 24) + (index int32 :offset-assert 32) + (done? symbol :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x28 + :flag-assert #xc00000028 + ;; field out uses ~A with a signed load. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type uint) _type_) + (history-iterator-method-9 () none) ;; 9 ;; (frame-counter-delta (_type_ history-elt) time-frame) + (history-iterator-method-10 () none) ;; 10 ;; (update-entries! (_type_) history-elt) + (history-iterator-method-11 () none) ;; 11 ;; (get-age (_type_ history-elt) float) + ) + ) +|# + +#| +(deftype history (basic) + ((alloc-index int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (elts history-elt :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int) _type_) + (history-method-9 () none) ;; 9 ;; (clear-record-tags! (_type_ history-channel uint uint) history-elt) + (history-method-10 () none) ;; 10 ;; (clear-history-entries! (_type_) none) + ) + ) +|# + +;; (define-extern history-channel->string function) ;; (function history-channel string) +;; (define-extern *history* object) ;; history +;; (define-extern history-print function) ;; (function history-iterator none) +;; (define-extern history-draw function) ;; (function history-iterator none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; merc-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern merc-vu1-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; emerc-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern emerc-vu1-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; merc ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; merc-fragment-control is already defined! + +;; merc-ctrl is already defined! + +;; (define-extern *texture-login-data* object) ;; texture-login-data +;; (define-extern texture-usage-init function) ;; (function merc-ctrl symbol) +;; (define-extern texture-usage-update function) ;; (function texture symbol) +;; (define-extern merc-stats-display function) ;; (function merc-ctrl none) +;; (define-extern merc-stats function) ;; (function none) +;; (define-extern merc-edge-stats function) ;; (function none) +;; (define-extern merc-vu1-add-vu-function function) ;; (function dma-packet vu-function int dma-gif-packet) +;; (define-extern merc-vu1-initialize-chain function) ;; (function dma-gif-packet int dma-packet) +;; (define-extern merc-vu1-init-buffer function) ;; (function bucket-id int symbol int) +;; (define-extern merc-vu1-init-buffers function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; emerc ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern emerc-vu1-initialize-chain function) ;; (function dma-gif-packet dma-packet) +;; (define-extern emerc-vu1-init-buffer function) ;; (function bucket-id gs-test int none) +;; (define-extern emerc-vu1-init-buffers function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ripple ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ripple-request (structure) + ((waveform ripple-wave :offset-assert 0) ;; guessed by decompiler + (effect merc-effect :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype ripple-globals (structure) + ((count int32 :offset-assert 0) + (requests ripple-request 16 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x84 + :flag-assert #x900000084 + ) +|# + +;; (define-extern *ripple-globals* object) ;; ripple-globals +;; (define-extern ripple-make-request function) ;; (function ripple-wave merc-effect none) +;; (define-extern ripple-update-waveform-offs function) ;; (function ripple-wave-set clock none) +;; (define-extern ripple-execute-init function) ;; (function none) +;; (define-extern ripple-create-wave-table function) ;; (function ripple-wave-set int) +;; (define-extern ripple-apply-wave-table function) ;; (function merc-effect symbol) +;; (define-extern ripple-execute function) ;; (function none) +;; (define-extern ripple-matrix-scale function) ;; (function merc-effect none) +;; (define-extern ripple-add-debug-sphere function) ;; (function process-drawable vector float float none) +;; (define-extern ripple-slow-add-sine-waves function) ;; (function ripple-wave-set float float float) +;; (define-extern ripple-find-height function) ;; (function process-drawable int vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bones ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *bone-calculation-list* object) ;; bone-calculation-list +;; (define-extern bone-list-init function) ;; (function none) +;; (define-extern bones-vu0-block object) ;; vu-function +;; (define-extern bones-set-sqwc function) ;; (function none) +;; (define-extern bones-reset-sqwc function) ;; (function none) +;; (define-extern bones-init function) ;; (function dma-buffer none) +;; (define-extern bones-mtx-calc function) ;; (function (inline-array pris-mtx) (inline-array joint) (inline-array bone) uint object none) +;; (define-extern bones-mtx-calc-execute function) ;; (function none) +;; (define-extern dump-qword function) ;; (function qword none) +;; (define-extern dump-mem function) ;; (function pointer int none) +;; (define-extern bones-debug function) ;; (function none) +;; (define-extern dump-bone-mem function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debug-foreground ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern diag-frag-print function) ;; (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) +;; (define-extern foreground-check-longest-edge function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-vu0 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern generic-vu0-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern generic-vu1-block object) ;; vu-function +;; (define-extern generic-setup-constants function) ;; (function generic-constants none) +;; (define-extern generic-add-constants function) ;; (function dma-buffer none) +;; (define-extern generic-setup-shrub-constants function) ;; (function generic-shrub-constants int int int none) +;; (define-extern generic-add-shrub-constants function) ;; (function dma-buffer int int int none) +;; (define-extern generic-init-buf function) ;; (function dma-buffer gs-zbuf none) +;; (define-extern generic-vu1-init-buf function) ;; (function bucket-id gs-zbuf none) +;; (define-extern generic-vu1-init-buf-special function) ;; (function bucket-id gs-zbuf none) +;; (define-extern generic-vu1-init-buffers function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-merc ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype invinitdata (structure) + ((count uint8 :offset-assert 0) + (init-data uint8 :offset-assert 1) + (init-addr uint16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern mercneric-vu0-block object) ;; vu-function +;; (define-extern *inv-init-table* object) ;; (inline-array invinitdata) +;; (define-extern generic-merc-init-asm function) ;; (function none) +;; (define-extern mercneric-matrix-asm function) +;; (define-extern mercneric-shader-asm function) +;; (define-extern mercneric-bittable-asm function) +;; (define-extern mercneric-convert function) +;; (define-extern high-speed-reject function) +;; (define-extern generic-translucent function) ;; (function gsf-buffer none) +;; (define-extern generic-merc-query function) +;; (define-extern generic-merc-death function) +;; (define-extern generic-merc-execute-asm function) +;; (define-extern generic-merc-do-chain function) ;; (function mercneric-chain dma-buffer pointer) +;; (define-extern generic-merc-execute-all function) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-tie ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; gsf-vertex is already defined! + +;; (define-extern generic-tie-dma-to-spad function) +;; (define-extern generic-tie-dma-to-spad-sync function) +;; (define-extern *generic-tie* object) +;; (define-extern generic-tie-decompress function) +;; (define-extern generic-tie-upload-next function) +;; (define-extern generic-tie-convert-proc function) +;; (define-extern generic-tie-convert function) +;; (define-extern generic-tie-display-stats function) +;; (define-extern generic-tie-debug function) +;; (define-extern generic-tie-execute function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shadow-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype shadow-vu1-constants (structure) + ((hmgescale vector :inline :offset-assert 0) + (invhscale vector :inline :offset-assert 16) + (texoffset vector :inline :offset-assert 32) + (texscale vector :inline :offset-assert 48) + (hvdfoff vector :inline :offset-assert 64) + (fog vector :inline :offset-assert 80) + (clrs vector 2 :offset-assert 96) ;; guessed by decompiler + (adgif gs-gif-tag :inline :offset-assert 128) + (texflush gs-adcmd :inline :offset-assert 144) + (flush gs-adcmd :inline :offset-assert 160) + (trigif gs-gif-tag :inline :offset-assert 176) + (quadgif gs-gif-tag :inline :offset-assert 192) + ) + :method-count-assert 9 + :size-assert #xd0 + :flag-assert #x9000000d0 + ) +|# + +#| +(deftype shadow-vu1-data (structure) + ((adgif gs-gif-tag :inline :offset-assert 0) + (ad gs-adcmd :inline :offset-assert 16) + (flush gs-adcmd :inline :offset-assert 32) + (trigif gs-gif-tag :inline :offset-assert 48) + (quadgif gs-gif-tag :inline :offset-assert 64) + (texoffset vector :inline :offset-assert 80) + (texscale vector :inline :offset-assert 96) + (clrs qword 2 :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +;; (define-extern *shadow-vu1-data* object) ;; shadow-vu1-data +;; (define-extern shadow-vu1-block object) ;; vu-function +;; (define-extern shadow-vu1-add-constants function) ;; (function dma-buffer int none) +;; (define-extern shadow-vu1-patch-consts function) ;; (function symbol int none) +;; (define-extern shadow-vu1-add-matrix function) ;; (function dma-buffer math-camera none) +;; (define-extern shadow-vu1-init-buffer function) ;; (function dma-buffer int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; warp ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern fx-copy-init function) +;; (define-extern warp-shader-init function) +;; (define-extern fx-copy-buf function) ;; (function dma-buffer none) +;; (define-extern init-warp function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hflip ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern hflip-zbuf-init function) +;; (define-extern hflip-z-buf function) +;; (define-extern init-hflip-zbuf function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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-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 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-anim-funcs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *fog-texture-tbp* object) +;; (define-extern fog-texture-anim-init function) ;; (function texture-anim int) +;; (define-extern fog-texture-anim-init2 function) +;; (define-extern *fog-texture-work* object) ;; fog-texture-work +;; (define-extern real-fog-texture-anim-func function) ;; (function dma-buffer texture-anim int) +;; (define-extern fog-texture-anim-func function) ;; (function dma-buffer texture-anim int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-anim-tables ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype car-texture-anim-array-work (structure) + ((sprite-tmpl dma-gif-packet :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (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-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) +;; (define-extern car-texture-anim-layer-func function) +;; (define-extern *default-car-texture-anim-array* texture-anim-array) +;; (define-extern set-car-highlight! function) +;; (define-extern update-car-texture-anim-array function) +;; (define-extern *default-water-texture-anim-array* texture-anim-array) ;; (texture-anim-array texture-anim) +;; (define-extern *default-hud-texture-anim-array* texture-anim-array) +;; (define-extern *ctf-pris-texture-anim-array* texture-anim-array) +;; (define-extern *ctf-water-texture-anim-array* texture-anim-array) +;; (define-extern *fcshield-water-texture-anim-array* texture-anim-array) +;; (define-extern *this-way-water-texture-anim-array* texture-anim-array) +;; (define-extern this-way-water-texture-anim-func function) +;; (define-extern *ocean-texture-anim-array* texture-anim-array) +;; (define-extern ocean-texture-anim-time-func function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; blit-displays ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype blur-coords (structure) + ((pos UNKNOWN 8 :offset-assert 0) + (tex UNKNOWN 8 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +;; (define-extern *blit-displays-work* object) ;; blit-displays-work +;; (define-extern clear-zbuf function) +;; (define-extern draw-color-bars function) ;; (function blit-displays-work none) +;; (define-extern draw-raw-image function) ;; (function blit-displays-work bucket-id art-group vector vector level int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; font-data ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *font12-table* object) ;; (inline-array vector) +;; (define-extern *font24-table* object) ;; (inline-array vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; font ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *font-random-generator* object) +;; (define-extern *font-curve-ghosting* array) +;; (define-extern *font-curve-ghosting-2* array) +;; (define-extern evaluate-font-curve function) +;; (define-extern in-out-curve function) +;; (define-extern char-effect-compute-colors function) +;; (define-extern char-effect-compute2 function) +;; (define-extern *loading-pad-leftx* object) +;; (define-extern *loading-pad-lefty* object) +;; (define-extern *loading-pad-rightx* object) +;; (define-extern *loading-pad-righty* object) +;; (define-extern char-effect-compute function) +;; (define-extern draw-string-init-justify function) +;; (define-extern draw-string-no-asm function) +;; (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 get-string-length-asm function) +;; (define-extern get-string-length function) ;; (function string font-context draw-string-result) +;; (define-extern draw-string-xy function) ;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; decomp ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype huf-dictionary-node (structure) + ((zero uint16 :offset-assert 0) + (one uint16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern unpack-comp-rle function) ;; (function (pointer int8) (pointer int8) (pointer int8)) +;; (define-extern unpack-comp-huf function) ;; (function (pointer uint8) (pointer uint8) uint huf-dictionary-node none) +;; (define-extern unpack-comp-lzo function) ;; (function (pointer uint8) (pointer uint8) none) +;; (define-extern pack-comp-rle function) ;; (function (pointer uint8) (pointer uint8) int int (pointer uint8)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; background ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *background-work* object) ;; 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) +;; (define-extern upload-vis-bits function) ;; (function level level bsp-header none) +;; (define-extern set-background-regs! function) ;; (function level none) +;; (define-extern set-tie-guard-planes! function) +;; (define-extern set-shrub-guard-planes! function) +;; (define-extern set-subdivide-settings! function) ;; (function level none) +;; (define-extern finish-shrub function) +;; (define-extern finish-tfrag function) +;; (define-extern finish-tfrag-trans function) +;; (define-extern finish-tfrag-water function) +;; (define-extern finish-tie function) +;; (define-extern finish-texture-mask function) +;; (define-extern finish-texture function) +;; (define-extern finish-background function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; draw-node ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-inline-array-node (drawable-inline-array) + ((length int16 :offset-assert 2) + (data draw-node :dynamic :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 17 + :size-assert #x44 + :flag-assert #x1100000044 + ) +|# + +;; (define-extern draw-node-cull function) ;; (function pointer pointer (inline-array draw-node) int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shrubbery ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dma-test (structure) + ((data qword 101 :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) + ) + :method-count-assert 9 + :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. + ) + :method-count-assert 17 + :size-assert #x44 + :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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shrub-work ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *instance-shrub-work* object) ;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tfrag ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-inline-array-tfrag (drawable-inline-array) + ((length int16 :offset-assert 2) + (data tfragment :dynamic :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 17 + :size-assert #x64 + :flag-assert #x1100000064 + ) +|# + +;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tfrag-methods ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tfrag-init-data (structure) + ((tfrag-bucket int32 :offset-assert 0) ;; bucket-id + (tfrag-scissor-bucket int32 :offset-assert 4) ;; bucket-id + (tfrag-trans-bucket int32 :offset-assert 8) ;; bucket-id + (tfrag-scissor-trans-bucket int32 :offset-assert 12) ;; bucket-id + (tfrag-water-bucket int32 :offset-assert 16) ;; bucket-id + (tfrag-water-scissor-bucket int32 :offset-assert 20) ;; bucket-id + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern edge-debug-lines function) ;; (function (array vector-array) none) +;; (define-extern draw-drawable-tree-tfrag function) ;; (function drawable-tree-tfrag none) +;; (define-extern draw-drawable-tree-tfrag-trans function) ;; (function drawable-tree-tfrag none) +;; (define-extern draw-drawable-tree-tfrag-water function) ;; (function drawable-tree-tfrag none) +;; (define-extern tfrag-vu1-init-buf function) ;; (function bucket-id gs-test int uint symbol none) +;; (define-extern tfrag-scissor-vu1-init-buf function) ;; (function bucket-id gs-test int uint symbol none) +;; (define-extern *tfrag-init-table* object) ;; (inline-array tfrag-init-data) +;; (define-extern tfrag-vu1-init-buffers function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tfrag-work ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *tfrag-work* object) ;; tfrag-work + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype drawable-inline-array-instance-tie (drawable-inline-array) + ((length int16 :offset-assert 2) + (data instance-tie :dynamic :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 17 + :size-assert #x64 + :flag-assert #x1100000064 + ) +|# + +#| +(deftype prototype-tie (drawable-inline-array) + ((length int16 :offset-assert 2) + (data tie-fragment :dynamic :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 17 + :size-assert #x64 + :flag-assert #x1100000064 + ) +|# + +;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; etie-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype etie-consts (structure) + ((gifbufs qword :inline :offset-assert 0) + (adgif qword :inline :offset-assert 16) ;; gs-gif-tag :inline + (alpha qword :inline :offset-assert 32) + (strgif qword :inline :offset-assert 48) ;; gs-gif-tag :inline + (envgif qword :inline :offset-assert 64) ;; gs-gif-tag :inline + (envmap adgif-shader :inline :offset-assert 80) + (pers0 vector :inline :offset-assert 160) + (pers1 vector :inline :offset-assert 176) + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +#| +(deftype etie-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) + (tint qword :inline :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +;; (define-extern etie-vu1-block object) ;; vu-function +;; (define-extern etie-magic function) ;; (function int int) +;; (define-extern etie-init-consts function) ;; (function etie-consts gs-alpha none) +;; (define-extern etie-init-engine function) ;; (function dma-buffer gs-alpha gs-test none) +;; (define-extern etie-end-buffer function) ;; (function dma-buffer none) +;; (define-extern etie-float-reg-bp function) +;; (define-extern etie-float-reg function) +;; (define-extern etie-floats function) +;; (define-extern etie-int-reg function) +;; (define-extern etie-ints function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; etie-near-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype etn-consts (structure) + ((gifbufs qword :inline :offset-assert 0) + (adgif qword :inline :offset-assert 16) + (alpha qword :inline :offset-assert 32) + (strgif generic-gif-tag :inline :offset-assert 48) + (envgif generic-gif-tag :inline :offset-assert 64) + (envmap adgif-shader :inline :offset-assert 80) + (pers0 vector :inline :offset-assert 160) + (pers1 vector :inline :offset-assert 176) + (hvdf vector :inline :offset-assert 192) + (invh vector :inline :offset-assert 208) + (guard vector :inline :offset-assert 224) + ) + :method-count-assert 9 + :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) + (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) + (tex vector :inline :offset-assert 32) + (tx2 vector :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype etn-plane (structure) + ((point uint32 :offset-assert 0) + (prev uint32 :offset-assert 4) + (outfunc uint32 :offset-assert 8) + (flags uint32 :offset-assert 12) + (out etn-vtx :inline :offset-assert 16) + (in etn-vtx :inline :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +;; (define-extern etn-vu1-block object) +;; (define-extern etn-magic function) +;; (define-extern etn-init-consts function) +;; (define-extern etn-init-engine function) +;; (define-extern etn-end-buffer function) +;; (define-extern etn-float-reg-calc function) +;; (define-extern etn-float-reg function) +;; (define-extern etn-floats function) +;; (define-extern etn-int-reg-draw function) +;; (define-extern etn-int-reg function) +;; (define-extern etn-ints function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tie-near ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tie-near-consts (structure) + ((extra qword :inline :offset-assert 0) + (gifbufs qword :inline :offset-assert 16) + (clrbufs qword :inline :offset-assert 32) + (adgif qword :inline :offset-assert 48) + (strgif qword :inline :offset-assert 64) + (fangif qword :inline :offset-assert 80) + (hvdfoffs vector :inline :offset-assert 96) + (invhscale vector :inline :offset-assert 112) + (guard vector :inline :offset-assert 128) + (atest UNKNOWN 2 :offset-assert 144) + (atest-tra gs-adcmd :inline :offset-assert 144) + (atest-def gs-adcmd :inline :offset-assert 160) + ) + :method-count-assert 9 + :size-assert #xb0 + :flag-assert #x9000000b0 + ) +|# + +;; (define-extern tie-near-vu1-block object) +;; (define-extern tie-near-init-consts function) +;; (define-extern tie-near-init-engine function) +;; (define-extern tie-near-end-buffer function) +;; (define-extern tie-scissor-make-perspective-matrix function) ;; (function matrix matrix none) +;; (define-extern tie-near-int-reg function) +;; (define-extern tie-near-float-reg function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tie-work ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *instance-tie-work* object) ;; instance-tie-work +;; (define-extern *prototype-tie-work* object) ;; prototype-tie-work + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tie-methods ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tie-debug (structure) + ((max-instance uint32 :offset-assert 0) + (min-instance uint32 :offset-assert 4) + (test-fragment uint32 :offset-assert 8) + (frag-count uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *tie* object) ;; tie-debug +;; (define-extern tie-debug-between function) ;; (function uint uint uint) +;; (define-extern tie-debug-one function) ;; (function uint uint uint) +;; (define-extern tie-debug-frag-between function) ;; (function uint uint uint) +;; (define-extern tie-debug-frag-one function) ;; (function uint uint uint) +;; (define-extern walk-tie-generic-prototypes function) ;; (function none) +;; (define-extern *pke-hack* object) ;; vector +;; (define-extern draw-inline-array-instance-tie function) ;; (function pointer (inline-array instance-tie) int dma-buffer none) +;; (define-extern draw-inline-array-prototype-tie-asm function) ;; (function dma-buffer int prototype-array-tie none) +;; (define-extern draw-inline-array-prototype-tie-shared-asm function) +;; (define-extern instance-tie-patch-buckets function) ;; (function dma-buffer level object) +;; (define-extern draw-drawable-tree-instance-tie function) ;; (function drawable-tree-instance-tie level none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prim ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *prim-work* object) ;; prim-work +;; (define-extern *level-texture-page-translate* array) +;; (define-extern *foreground-to-level-translate* array) +;; (define-extern prim-engine-execute function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sparticle-launcher ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sp-queued-launch-particles (structure) + ((sp-system sparticle-system :offset-assert 0) ;; guessed by decompiler + (sp-launcher sparticle-launcher :offset-assert 4) ;; guessed by decompiler + (pos vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sp-launch-queue (basic) + ((in-use int32 :offset-assert 4) + (queue sp-queued-launch-particles 256 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2010 + :flag-assert #x900002010 + ) +|# + +#| +(deftype particle-adgif-cache (basic) + ((used int32 :offset-assert 4) + (last uint16 :offset-assert 8) + (lastgif adgif-shader :offset-assert 12) + (tidhash uint16 80 :offset-assert 16) ;; guessed by decompiler + (spadgif adgif-shader 80 :offset-assert 176) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x19b0 + :flag-assert #x9000019b0 + ) +|# + +#| +(deftype sp-launch-stack (structure) + ((ra basic :offset-assert 0) + (dummy0 basic :offset-assert 4) + (dummy1 basic :offset-assert 8) + (b-spfic basic :offset-assert 12) + (r16 uint128 :offset-assert 16) + (r17 uint128 :offset-assert 32) + (r18 uint128 :offset-assert 48) + (pos uint128 :offset-assert 64) + (matrix matrix :inline :offset-assert 80) + (l-spfic basic :offset-assert 144) + (birth-info sparticle-birthinfo :inline :offset-assert 160) + (sprite sprite-vec-data-2d :inline :offset-assert 192) + (r19 uint128 :offset-assert 240) + (r20 uint128 :offset-assert 256) + (r21 uint128 :offset-assert 272) + (r22 uint128 :offset-assert 288) + (is-3d uint128 :offset-assert 304) + ) + :method-count-assert 9 + :size-assert #x140 + :flag-assert #x900000140 + ;; field ra uses ~A with a signed load. field dummy0 uses ~A with a signed load. field dummy1 uses ~A with a signed load. field b-spfic uses ~A with a signed load. field l-spfic uses ~A with a signed load. + ) +|# + +;; sparticle-launcher is already defined! + +;; (define-extern *part-id-table* object) ;; (array sparticle-launcher) +;; (define-extern *part-group-id-table* object) ;; (array sparticle-launch-group) +;; (define-extern *launch-control-table* object) +;; (define-extern *sp-temp* object) ;; float +;; (define-extern count-launch-controls-in-table function) +;; (define-extern lookup-part-group-by-name function) ;; (function string sparticle-launch-group) +;; (define-extern lookup-part-group-pointer-by-name function) ;; (function string (pointer object)) +;; (define-extern part-group-pointer? function) ;; (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-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 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) ;; (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-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-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) +;; (define-extern execute-particle-local-space-engine function) ;; (function int none) +;; (define-extern local-space-camera function) ;; (function particle-local-space-info none) +;; (define-extern local-space-proc-joint function) ;; (function particle-local-space-info none) +;; (define-extern local-space-proc-root function) +;; (define-extern spawn-level-particles-for-camera function) +;; (define-extern execute-part-engine function) ;; (function none) +;; (define-extern check-particles function) +;; (define-extern sparticle-track-root function) ;; (function object sparticle-cpuinfo vector none) +;; (define-extern sparticle-track-root-prim function) ;; (function object sparticle-cpuinfo vector none) +;; (define-extern sparticle-track-joint function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sparticle-turn-to-vel function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d none) +;; (define-extern sparticle-rotate-to-vel-3d function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d vector none) +;; (define-extern birth-func-clean function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern birth-func-process-clock function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern birth-func-copy-rot-color function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern *global-toggle* object) ;; int +;; (define-extern birth-func-copy2-rot-color function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern birth-func-copy-omega-to-z function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern birth-func-random-next-time function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern sparticle-respawn-heights function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sparticle-respawn-timer function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sparticle-texture-animate function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sparticle-texture-day-night function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-2d none) +;; (define-extern sparticle-motion-blur function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sparticle-motion-blur-old function) ;; (function object sparticle-cpuinfo sprite-vec-data-3d object) +;; (define-extern sparticle-set-conerot function) ;; (function sparticle-launcher vector none) +;; (define-extern check-ground-bounce function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo float) +;; (define-extern check-drop-group-center function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern check-drop-group-center-with-offset function) +;; (define-extern check-bubble-height function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern check-raise-group-center function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern birth-func-y->userdata function) ;; (function sparticle-system sparticle-cpuinfo matrix none) +;; (define-extern birth-func-ocean-height function) ;; (function sparticle-system sparticle-cpuinfo matrix none) +;; (define-extern birth-func-camera-orient function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (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 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) +;; (define-extern birth-func-set-vel-2d function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern birth-func-set-vel-range function) +;; (define-extern birth-func-texture-group function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern rot-to-particle function) ;; (function degrees sprite-vec-data-2d matrix none) +;; (define-extern rot-to-particle-no-flip function) +;; (define-extern birth-func-flip-based-on-scale function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern sparticle-2d-spline-align function) ;; (function object sparticle-cpuinfo sprite-vec-data-2d object none) +;; (define-extern sparticle-2d-spline-align-no-flip function) +;; (define-extern sparticle-2d-spline-align-instant function) ;; (function object sparticle-cpuinfo sprite-vec-data-2d none) +;; (define-extern birth-func-inherit-size function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern birth-func-texture-group-2d function) ;; (function object sparticle-cpuinfo sparticle-launchinfo object object none) +;; (define-extern sparticle-3d-rotate-xz-to-camera function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d none) +;; (define-extern spt-func-relative-pos function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d none) +;; (define-extern spt-func-turn-to-vel-radial function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sparticle-subsampler ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sparticle ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sp-particle-copy! function) ;; (function sparticle-cpuinfo sparticle-cpuinfo none) +;; (define-extern *sp-particle-system-2d* object) ;; sparticle-system +;; (define-extern *sp-particle-system-3d* object) ;; 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-kill-particle function) ;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; entity-table ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *entity-info* array) ;; (array entity-info) +;; (define-extern entity-info-lookup function) ;; (function type entity-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; loader ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype spooler-block (basic) + ((anim spool-anim :offset-assert 4) ;; guessed by decompiler + (idle art-joint-anim :offset-assert 8) ;; guessed by decompiler + (exit art-joint-anim :offset-assert 12) ;; guessed by decompiler + (break-func (function process-drawable object) :offset-assert 16) ;; guessed by decompiler + (flags spooler-flags :offset-assert 20) ;; guessed by decompiler + (part int32 :offset-assert 24) + (part-audio-start float :offset-assert 28) + (old-status uint16 :offset-assert 32) + (old-pos int32 :offset-assert 36) + (good-time uint64 :offset-assert 40) ;; time-frame + (old-time uint64 :offset-assert 48) ;; time-frame + (good-count int32 :offset-assert 56) + (sid sound-id :offset-assert 60) ;; guessed by decompiler + (start-time uint64 :offset-assert 64) + (paused? symbol :offset-assert 72) ;; guessed by decompiler + (frame-count int32 :offset-assert 76) + (frame-count2 float :offset-assert 80) + (next-frame-fmv basic :offset-assert 84) + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +#| +(deftype load-dir (basic) + ((level basic :offset-assert 4) + (allocated-length uint32 :offset-assert 8) + ) + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + ;; Failed to read some fields. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int level) _type_) + (load-dir-method-9 () none) ;; 9 ;; (load-to-heap-by-name (_type_ string symbol kheap int) art-group) + (load-dir-method-10 () none) ;; 10 ;; (set-loaded-art (_type_ art-group) art-group) + ) + ) +|# + +#| +(deftype gui-control (basic) + ((engine engine :offset-assert 4) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 26 + :size-assert #x1080 + :flag-assert #x1a00001080 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int) _type_) + (gui-control-method-9 () none) ;; 9 ;; (add-process (_type_ process gui-channel gui-action string float time-frame) sound-id) + (gui-control-method-10 () none) ;; 10 ;; (remove-process (_type_ process gui-channel) int) + (gui-control-method-11 () none) ;; 11 ;; (stop-str (_type_ gui-connection) int) + (gui-control-method-12 () none) ;; 12 ;; (gui-control-method-12 (_type_ process gui-channel gui-action string int float sound-id) sound-id) + (gui-control-method-13 () none) ;; 13 ;; (update (_type_ symbol) int) + (gui-control-method-14 () none) ;; 14 ;; (lookup-gui-connection-id (_type_ string gui-channel gui-action) sound-id) + (gui-control-method-15 () none) ;; 15 ;; (lookup-gui-connection (_type_ process gui-channel string sound-id) gui-connection) + (gui-control-method-16 () none) ;; 16 ;; (set-action! (_type_ gui-action sound-id gui-channel gui-action string (function gui-connection symbol) process) int) + (gui-control-method-17 () none) ;; 17 ;; (get-status (_type_ sound-id) gui-status) + (gui-control-method-18 () none) ;; 18 ;; (gui-control-method-18 (_type_ gui-channel) symbol) + (gui-control-method-19 () none) ;; 19 ;; (handle-command-list (_type_ gui-channel gui-connection) symbol) + (gui-control-method-20 () none) ;; 20 ;; (sound-params-set! (_type_ sound-id symbol int int int float) gui-connection) + (gui-control-method-21 () none) ;; 21 ;; (gui-control-method-21 (_type_ gui-connection) int) + (gui-control-method-22 () none) ;; 22 ;; (gui-control-method-22 (_type_ gui-connection vector) int) + (gui-control-method-23 () none) ;; 23 ;; (update-connection (_type_ gui-connection process symbol) none) + (gui-control-method-24 () none) ;; 24 ;; (handle-command (_type_ gui-channel gui-channel symbol gui-connection) symbol) + (gui-control-method-25 () none) ;; 25 ;; (channel-id-set! (_type_ gui-connection sound-id) int) + ) + ) +|# + +;; (define-extern *image-scene-name* object) +;; (define-extern *image-scene-num* object) +;; (define-extern drawable-load function) ;; (function drawable kheap drawable) +;; (define-extern art-load function) ;; (function string kheap art) +;; (define-extern art-group-load-check function) ;; (function string kheap int art-group) +;; (define-extern external-art-buffer-init function) ;; (function external-art-buffer int) +;; (define-extern *preload-spool-anims* object) ;; symbol +;; (define-extern ja-play-spooled-anim function) ;; (function spool-anim art-joint-anim art-joint-anim (function process-drawable symbol) spooler-flags int :behavior process-drawable) +;; (define-extern ja-play-spooled-no-sync-anim function) +;; (define-extern ja-abort-spooled-anim function) ;; (function spool-anim art-joint-anim int int :behavior process-drawable) +;; (define-extern *gui-control* object) ;; gui-control +;; (define-extern *art-control* object) ;; external-art-control + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-info ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern hflip? function) +;; (define-extern *default-continue* continue-point) ;; continue-point +;; (define-extern task-level->string function) ;; (function int string) +;; (define-extern level-name->task-level function) ;; (function symbol int) +;; (define-extern trsq->continue-point function) ;; (function trsq int) +;; (define-extern position->stream function) ;; (function string symbol symbol none) +;; (define-extern bug-report-display function) ;; (function symbol int) +;; (define-extern print-continues function) ;; (function int) +;; (define-extern *highscore-info-array* array) ;; (array highscore-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-task ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *grand-prix* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-dma ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dma-block (structure) + ((tp basic :offset-assert 0) + (offset int32 :offset-assert 4) + (length int32 :offset-assert 8) + (alloc-frames int32 :offset-assert 12) + (order int32 :offset-assert 16) + (buffer-id int32 :offset-assert 20) + ) + :method-count-assert 11 + :size-assert #x18 + :flag-assert #xb00000018 + (:methods + (dma-block-method-9 () none) ;; 9 + (dma-block-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype dma-block-list (structure) + ((total-length int32 :offset-assert 0) + (min-offset int32 :offset-assert 4) + (blocks UNKNOWN 4 :offset-assert 8) + ) + :method-count-assert 10 + :size-assert #x88 + :flag-assert #xa00000088 + (:methods + (dma-block-list-method-9 () none) ;; 9 + ) + ) +|# + +;; (define-extern *dma-block-lists* array) +;; (define-extern can-place-block? function) +;; (define-extern dma-try-alloc-single function) +;; (define-extern dma-try-alloc function) +;; (define-extern dma-release function) +;; (define-extern dma-dump function) +;; (define-extern dma-is-empty function) +;; (define-extern dma-get-named-buffer function) +;; (define-extern lobby-dma-reserve-hook function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; settings ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern get-current-language function) ;; (function language-enum) +;; (define-extern *setting-control* object) ;; setting-control + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-tables ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *no-cloud-haze-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *no-cloud-clear-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *no-cloud-smog-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *overcast-fog-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *overcast-clear-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *overcast-rain-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *storm-fog-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *storm-clear-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *storm-rain-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *desert-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *sandstorm-start-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *sandstorm-end-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *no-cloud-mood-color-table* object) ;; mood-color-table +;; (define-extern *overcast-mood-color-table* object) ;; mood-color-table +;; (define-extern *storm-mood-color-table* object) ;; mood-color-table +;; (define-extern *desert-mood-color-table* object) ;; mood-color-table +;; (define-extern *sandstorm-start-mood-color-table* object) ;; mood-color-table +;; (define-extern *sandstorm-end-mood-color-table* object) ;; mood-color-table +;; (define-extern *no-cloud-mood-channel-group* object) ;; mood-channel-group +;; (define-extern *overcast-mood-channel-group* object) ;; mood-channel-group +;; (define-extern *stormy-mood-channel-group* object) ;; mood-channel-group +;; (define-extern *clouds-000* object) ;; mood-clouds +;; (define-extern *clouds-125* object) ;; mood-clouds +;; (define-extern *clouds-250* object) ;; mood-clouds +;; (define-extern *clouds-375* object) ;; mood-clouds +;; (define-extern *clouds-500* object) ;; mood-clouds +;; (define-extern *clouds-625* object) ;; mood-clouds +;; (define-extern *clouds-750* object) ;; mood-clouds +;; (define-extern *clouds-875* object) ;; mood-clouds +;; (define-extern *clouds-1000* object) ;; mood-clouds +;; (define-extern *mood-direction-table* object) ;; mood-direction-table +;; (define-extern *mood-sky-table* object) ;; mood-sky-table +;; (define-extern *mood-interp-table* object) ;; sky-color-day +;; (define-extern init-mood-control function) ;; (function mood-control none) +;; (define-extern *mood-control* mood-control) ;; mood-control + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-tables2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *override-mood-color-table* object) +;; (define-extern *override-mood-fog-table* object) +;; (define-extern init-override-table function) +;; (define-extern *override-table* mood-table) +;; (define-extern print-mood-tables function) ;; (function none) +;; (define-extern desaturate-mood-colors function) ;; (function float float float none) +;; (define-extern desaturate-mood-fog function) ;; (function (pointer mood-fog-table) float float none) +;; (define-extern *debug-mood-color-table* object) ;; mood-color-table +;; (define-extern *debug-mood-fog-table* object) ;; mood-fog-table + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lava-state (structure) + ((lava float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern set-movie-time! function) +;; (define-extern set-movie-fog! function) +;; (define-extern set-movie-color! function) +;; (define-extern palette-select-special function) ;; (function mood-context-core3 symbol) +;; (define-extern clear-mood-times function) ;; (function mood-context symbol) +;; (define-extern update-mood-itimes function) ;; (function mood-context none) +;; (define-extern update-mood-direction function) ;; (function mood-context-core3 mood-table float float) +;; (define-extern update-mood-exterior function) ;; (function mood-context-core3 mood-table float int object) +;; (define-extern copy-mood-exterior function) ;; (function mood-context symbol) +;; (define-extern copy-mood-exterior-ambi function) ;; (function mood-context symbol none) +;; (define-extern clear-mood-context function) ;; (function mood-context symbol) +;; (define-extern update-mood-interior function) ;; (function mood-context symbol float) +;; (define-extern update-mood-interior-ambient function) ;; (function mood-context symbol float vector) +;; (define-extern update-mood-flames function) ;; (function mood-context int int int float float float float :behavior time-of-day-proc) +;; (define-extern *flash0* array) ;; (array float) +;; (define-extern *flash1* array) ;; (array float) +;; (define-extern *flash2* array) ;; (array float) +;; (define-extern *flash3* array) ;; (array float) +;; (define-extern *flash4* array) ;; (array float) +;; (define-extern *flash5* array) ;; (array float) +;; (define-extern *flash6* array) ;; (array float) +;; (define-extern *flash7* array) ;; (array float) +;; (define-extern update-mood-light function) ;; (function mood-context int int float float float float float float) +;; (define-extern update-mood-lava function) ;; (function mood-context int int float float float float float float) +;; (define-extern update-mood-flicker function) ;; (function mood-context int int none) +;; (define-extern update-mood-florescent function) ;; (function mood-context int int float) +;; (define-extern update-mood-electricity function) ;; (function mood-context int int float float none) +;; (define-extern update-mood-pulse function) ;; (function mood-context int int float float float float none) +;; (define-extern update-mood-strobe function) ;; (function mood-context int int int float float) +;; (define-extern update-mood-caustics function) ;; (function mood-context int float float float float float) +;; (define-extern override-mood-fog function) +;; (define-extern override-mood-color function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-funcs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype default-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +#| +(deftype default-exterior-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +#| +(deftype mountain-states (structure) + ((light0 light-state :inline :offset-assert 0) + (light1 light-state :inline :offset-assert 8) + (spec-0 sp-field-init-spec :offset-assert 16) + (spec-1 sp-field-init-spec :offset-assert 20) + (spec-2 sp-field-init-spec :offset-assert 24) + (spec-3 sp-field-init-spec :offset-assert 28) + (spec-4 sp-field-init-spec :offset-assert 32) + (spec-5 sp-field-init-spec :offset-assert 36) + (spec-6 sp-field-init-spec :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +;; (define-extern update-mood-default function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern update-mood-copy-parent function) ;; (function mood-context object int none) +;; (define-extern get-sphere-interp function) ;; (function sphere vector float float float) +;; (define-extern update-mood-default-exterior function) +;; (define-extern init-mood-mountain function) ;; (function mood-context uint) +;; (define-extern update-mood-mountain function) ;; (function mood-context float int none :behavior time-of-day-proc) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-funcs2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rustyh-states (structure) + ((effect float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype garage-states (structure) + ((switched float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype default-interior-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype hiphog-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern init-mood-fog-default function) +;; (define-extern init-mood-fog-temple function) +;; (define-extern init-mood-fog-drome function) +;; (define-extern update-mood-default-interior function) ;; (function mood-context none :behavior time-of-day-proc) +;; (define-extern update-mood-default-interior-ambient function) ;; (function mood-context none :behavior time-of-day-proc) +;; (define-extern update-rustyh-lights function) +;; (define-extern update-mood-rustyh function) +;; (define-extern set-rustyh-effect-light! function) +;; (define-extern update-hiphog-lights function) ;; (function mood-context none) +;; (define-extern update-mood-hiphog function) ;; (function mood-context float none :behavior time-of-day-proc) +;; (define-extern update-garage-brdroom-lights function) +;; (define-extern update-mood-garage-brdroom function) +;; (define-extern set-garage-switched! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jungle-shared ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; weather-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern group-rain-screend-drop object) ;; sparticle-launch-group +;; (define-extern update-snow function) ;; (function float vector vector none) +;; (define-extern birth-func-omega-normal-orient function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern birth-func-rain function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern check-drop-level-rain function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-drop-level-rain2 function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-drop-level-splash function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern cam-master-effect function) ;; (function none :behavior camera-master) +;; (define-extern sparticle-track-sun function) ;; (function int sparticle-cpuinfo matrix none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; time-of-day ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern time-of-day-effect object) ;; (function none) +;; (define-extern time-of-day-update function) ;; (function none :behavior time-of-day-proc) +;; (define-extern update-counters function) ;; (function float :behavior time-of-day-proc) +;; (define-extern time-of-day-tick state) ;; (state time-of-day-proc) +;; (define-extern init-time-of-day function) ;; (function object :behavior time-of-day-proc) +;; (define-extern start-time-of-day function) ;; (function (pointer time-of-day-proc)) +;; (define-extern time-of-day-setup function) ;; (function symbol symbol) +;; (define-extern time-of-day-interp-colors function) ;; (function (pointer rgba) uint mood-context none) +;; (define-extern time-of-day-interp-colors-scratch function) ;; (function (pointer rgba) time-of-day-palette mood-context none) +;; (define-extern init-time-of-day-context function) ;; (function time-of-day-context symbol) +;; (define-extern set-filter-color! function) ;; (function float float float none) +;; (define-extern tod-madd! function) ;; (function vector vector vector float) +;; (define-extern update-environment-colors function) ;; (function time-of-day-context vector) +;; (define-extern update-time-of-day function) ;; (function time-of-day-context none) +;; (define-extern calc-fade-from-fog function) ;; (function vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sky-data ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sky-work* object) ;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sky-tng ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern set-tex-offset function) ;; (function int int none) +;; (define-extern draw-large-polygon function) +;; (define-extern clip-polygon-against-positive-hyperplane function) +;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; load-state ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern level-base-level-name function) ;; (function symbol object) +;; (define-extern add-want-level function) ;; (function (inline-array level-buffer-state) (pointer int64) symbol symbol symbol symbol object) +;; (define-extern *display-load-commands* object) ;; symbol +;; (define-extern *backup-load-state* object) ;; load-state +;; (define-extern *load-state* object) ;; load-state + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; level-info ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *default-mood-range* object) +;; (define-extern *mood-range-1* object) +;; (define-extern *mood-range-snow* object) +;; (define-extern default-level level-load-info) ;; level-load-info +;; (define-extern intro level-load-info) ;; level-load-info +;; (define-extern title level-load-info) ;; level-load-info +;; (define-extern halfpipe level-load-info) ;; level-load-info +;; (define-extern raceweap level-load-info) +;; (define-extern junglex level-load-info) +;; (define-extern jungley level-load-info) +;; (define-extern junglea level-load-info) +;; (define-extern jungleb level-load-info) +;; (define-extern junglec level-load-info) +;; (define-extern jungled level-load-info) +;; (define-extern junglee level-load-info) +;; (define-extern junglef level-load-info) +;; (define-extern jungleg level-load-info) +;; (define-extern jungles level-load-info) +;; (define-extern jungtbox level-load-info) +;; (define-extern jungtrn level-load-info) +;; (define-extern junglew level-load-info) +;; (define-extern havjungs level-load-info) +;; (define-extern havjungw level-load-info) +;; (define-extern havjungx level-load-info) +;; (define-extern havjungy level-load-info) +;; (define-extern havsews level-load-info) +;; (define-extern havseww level-load-info) +;; (define-extern havsewx level-load-info) +;; (define-extern havsewy level-load-info) +;; (define-extern hvswtbox level-load-info) +;; (define-extern hvjgtbox level-load-info) +;; (define-extern havtours level-load-info) +;; (define-extern havtourw level-load-info) +;; (define-extern havttbox level-load-info) +;; (define-extern havena level-load-info) +;; (define-extern havenb level-load-info) +;; (define-extern havenc level-load-info) +;; (define-extern havend level-load-info) +;; (define-extern havene level-load-info) +;; (define-extern havenx level-load-info) +;; (define-extern haveny level-load-info) +;; (define-extern havens level-load-info) +;; (define-extern havntbox level-load-info) +;; (define-extern havenw level-load-info) +;; (define-extern sewera level-load-info) +;; (define-extern sewera2 level-load-info) +;; (define-extern sewera3 level-load-info) +;; (define-extern sewerb level-load-info) +;; (define-extern sewerc level-load-info) +;; (define-extern sewerd level-load-info) +;; (define-extern sewere level-load-info) +;; (define-extern sewerf level-load-info) +;; (define-extern sewers level-load-info) +;; (define-extern sewerw level-load-info) +;; (define-extern sewerx level-load-info) +;; (define-extern sewtbox level-load-info) +;; (define-extern kratours level-load-info) +;; (define-extern kratourw level-load-info) +;; (define-extern krattbox level-load-info) +;; (define-extern krasw level-load-info) +;; (define-extern krass level-load-info) +;; (define-extern krastbox level-load-info) +;; (define-extern krastrn level-load-info) +;; (define-extern krasa level-load-info) +;; (define-extern krasb level-load-info) +;; (define-extern krasc level-load-info) +;; (define-extern krasx level-load-info) +;; (define-extern krasy level-load-info) +;; (define-extern krasfoot level-load-info) +;; (define-extern snowfoot level-load-info) +;; (define-extern hjngfoot level-load-info) +;; (define-extern havnfoot level-load-info) +;; (define-extern jungfoot level-load-info) +;; (define-extern hvswfoot level-load-info) +;; (define-extern sparfoot level-load-info) +;; (define-extern dockfoot level-load-info) +;; (define-extern dkkrfoot level-load-info) +;; (define-extern sewfoot level-load-info) +;; (define-extern canfoot level-load-info) +;; (define-extern cnspfoot level-load-info) +;; (define-extern sptmfoot level-load-info) +;; (define-extern tempfoot level-load-info) +;; (define-extern icepfoot level-load-info) +;; (define-extern icefoot level-load-info) +;; (define-extern icebfoot level-load-info) +;; (define-extern peakfoot level-load-info) +;; (define-extern havtfoot level-load-info) +;; (define-extern dromfoot level-load-info) +;; (define-extern drdkfoot level-load-info) +;; (define-extern spatfoot level-load-info) +;; (define-extern kratfoot level-load-info) +;; (define-extern icetfoot level-load-info) +;; (define-extern krastt level-load-info) +;; (define-extern dockstt level-load-info) +;; (define-extern dromett level-load-info) +;; (define-extern dkkrtt level-load-info) +;; (define-extern drdktt level-load-info) +;; (define-extern krtrtt level-load-info) +;; (define-extern junglett level-load-info) +;; (define-extern havtt level-load-info) +;; (define-extern sewertt level-load-info) +;; (define-extern hvjgtt level-load-info) +;; (define-extern hvswtt level-load-info) +;; (define-extern hvtrtt level-load-info) +;; (define-extern spartt level-load-info) +;; (define-extern canyontt level-load-info) +;; (define-extern templett level-load-info) +;; (define-extern cnsptt level-load-info) +;; (define-extern sptmtt level-load-info) +;; (define-extern sptrtt level-load-info) +;; (define-extern snowtt level-load-info) +;; (define-extern peaktt level-load-info) +;; (define-extern icett level-load-info) +;; (define-extern icbgtt level-load-info) +;; (define-extern icpstt level-load-info) +;; (define-extern ictrtt level-load-info) +;; (define-extern canyons level-load-info) +;; (define-extern canyonw level-load-info) +;; (define-extern canyona level-load-info) +;; (define-extern canyonb level-load-info) +;; (define-extern canyonc level-load-info) +;; (define-extern canyond level-load-info) +;; (define-extern canyone level-load-info) +;; (define-extern canyonx level-load-info) +;; (define-extern canyony level-load-info) +;; (define-extern cantbox level-load-info) +;; (define-extern cansparw level-load-info) +;; (define-extern canspars level-load-info) +;; (define-extern cansparx level-load-info) +;; (define-extern canspary level-load-info) +;; (define-extern cnsptbox level-load-info) +;; (define-extern docksw level-load-info) +;; (define-extern docksx level-load-info) +;; (define-extern dockss level-load-info) +;; (define-extern docksa level-load-info) +;; (define-extern docksb level-load-info) +;; (define-extern docksc level-load-info) +;; (define-extern docksd level-load-info) +;; (define-extern dockse level-load-info) +;; (define-extern docktbox level-load-info) +;; (define-extern dockkras level-load-info) +;; (define-extern dockkraw level-load-info) +;; (define-extern dockkrax level-load-info) +;; (define-extern dockkray level-load-info) +;; (define-extern dkkrtbox level-load-info) +;; (define-extern dromew level-load-info) +;; (define-extern dromes level-load-info) +;; (define-extern dromex level-load-info) +;; (define-extern dromey level-load-info) +;; (define-extern dromea level-load-info) +;; (define-extern dromeb level-load-info) +;; (define-extern dromec level-load-info) +;; (define-extern dromed level-load-info) +;; (define-extern dromee level-load-info) +;; (define-extern dromef level-load-info) +;; (define-extern dromtbox level-load-info) +;; (define-extern dromdocs level-load-info) +;; (define-extern dromdocw level-load-info) +;; (define-extern dromdocx level-load-info) +;; (define-extern dromdocy level-load-info) +;; (define-extern drdktbox level-load-info) +;; (define-extern brdroom level-load-info) +;; (define-extern brdroomf level-load-info) +;; (define-extern garcst level-load-info) +;; (define-extern garage level-load-info) +;; (define-extern garageb level-load-info) +;; (define-extern snow level-load-info) +;; (define-extern snowx level-load-info) +;; (define-extern snows level-load-info) +;; (define-extern snowtbox level-load-info) +;; (define-extern icetrn level-load-info) +;; (define-extern snowtrn2 level-load-info) +;; (define-extern ben level-load-info) +;; (define-extern cliffs level-load-info) +;; (define-extern cliffss level-load-info) +;; (define-extern cliffart level-load-info) +;; (define-extern cliftrn level-load-info) +;; (define-extern clifhunt level-load-info) +;; (define-extern clifctf level-load-info) +;; (define-extern cliffsx level-load-info) +;; (define-extern drone level-load-info) +;; (define-extern coliseum level-load-info) +;; (define-extern coliseux level-load-info) +;; (define-extern coliseus level-load-info) +;; (define-extern colart level-load-info) +;; (define-extern coliclct level-load-info) +;; (define-extern colictf level-load-info) +;; (define-extern colirev level-load-info) +;; (define-extern colhunt level-load-info) +;; (define-extern eight level-load-info) +;; (define-extern eightb level-load-info) +;; (define-extern rustyh level-load-info) +;; (define-extern hiphog level-load-info) ;; level-load-info +;; (define-extern desarena level-load-info) +;; (define-extern desarens level-load-info) +;; (define-extern desart level-load-info) +;; (define-extern desclct level-load-info) +;; (define-extern desactf level-load-info) +;; (define-extern deshunt level-load-info) ;; level-load-info +;; (define-extern deshunt2 level-load-info) +;; (define-extern desrev level-load-info) +;; (define-extern desarenx level-load-info) +;; (define-extern snobowls level-load-info) +;; (define-extern snobowl level-load-info) +;; (define-extern snobowlx level-load-info) +;; (define-extern sbwlctf level-load-info) +;; (define-extern snobart level-load-info) +;; (define-extern kcrosss level-load-info) +;; (define-extern kcross level-load-info) +;; (define-extern kcrosctf level-load-info) +;; (define-extern kcrsplow level-load-info) +;; (define-extern kcrosart level-load-info) +;; (define-extern kcrsclct level-load-info) +;; (define-extern kcrossx level-load-info) +;; (define-extern spargusa level-load-info) +;; (define-extern spargusb level-load-info) +;; (define-extern spargusc level-load-info) +;; (define-extern spargusd level-load-info) +;; (define-extern sparguse level-load-info) +;; (define-extern spargusx level-load-info) +;; (define-extern spargusy level-load-info) +;; (define-extern sprgstbx level-load-info) +;; (define-extern sparguss level-load-info) +;; (define-extern spargusw level-load-info) +;; (define-extern icea level-load-info) +;; (define-extern iceb level-load-info) +;; (define-extern icec level-load-info) +;; (define-extern iced level-load-info) +;; (define-extern icew level-load-info) +;; (define-extern icex level-load-info) +;; (define-extern icey level-load-info) +;; (define-extern ices level-load-info) +;; (define-extern icetbox level-load-info) +;; (define-extern icetours level-load-info) +;; (define-extern icetourw level-load-info) +;; (define-extern icettbox level-load-info) +;; (define-extern peak level-load-info) +;; (define-extern peaks level-load-info) +;; (define-extern peakw level-load-info) +;; (define-extern peaka level-load-info) +;; (define-extern peakb level-load-info) +;; (define-extern peakc level-load-info) +;; (define-extern peakd level-load-info) +;; (define-extern peake level-load-info) +;; (define-extern peakx level-load-info) +;; (define-extern peaktbox level-load-info) +;; (define-extern icepasss level-load-info) +;; (define-extern icepassw level-load-info) +;; (define-extern icepassx level-load-info) +;; (define-extern icepassy level-load-info) +;; (define-extern iceptbox level-load-info) +;; (define-extern icebergs level-load-info) +;; (define-extern icebergw level-load-info) +;; (define-extern icebergx level-load-info) +;; (define-extern icebergy level-load-info) +;; (define-extern icebtbox level-load-info) +;; (define-extern templew level-load-info) +;; (define-extern temples level-load-info) +;; (define-extern templea level-load-info) ;; level-load-info +;; (define-extern templeb level-load-info) ;; level-load-info +;; (define-extern templec level-load-info) ;; level-load-info +;; (define-extern templed level-load-info) ;; level-load-info +;; (define-extern templee level-load-info) ;; level-load-info +;; (define-extern templex level-load-info) ;; level-load-info +;; (define-extern templey level-load-info) +;; (define-extern temptbox level-load-info) +;; (define-extern spartems level-load-info) +;; (define-extern spartemw level-load-info) +;; (define-extern spartemx level-load-info) +;; (define-extern spartemy level-load-info) +;; (define-extern sptmtbox level-load-info) +;; (define-extern spatourw level-load-info) +;; (define-extern spatours level-load-info) +;; (define-extern spattbox level-load-info) +;; (define-extern desisle level-load-info) +;; (define-extern desisles level-load-info) +;; (define-extern desislex level-load-info) +;; (define-extern disleart level-load-info) +;; (define-extern desrapt level-load-info) +;; (define-extern dislectf level-load-info) +;; (define-extern atoll level-load-info) +;; (define-extern atollx level-load-info) +;; (define-extern atolls level-load-info) +;; (define-extern atollart level-load-info) +;; (define-extern atoplow level-load-info) +;; (define-extern atollctf level-load-info) +;; (define-extern menu2 level-load-info) +;; (define-extern menumap level-load-info) +;; (define-extern mongl level-load-info) +;; (define-extern falcl level-load-info) +;; (define-extern wombl level-load-info) +;; (define-extern possl level-load-info) +;; (define-extern bobcl level-load-info) +;; (define-extern cougl level-load-info) +;; (define-extern wolfl level-load-info) +;; (define-extern bearl level-load-info) +;; (define-extern leopl level-load-info) +;; (define-extern pantl level-load-info) +;; (define-extern tigel level-load-info) +;; (define-extern cheel level-load-info) +;; (define-extern gilal level-load-info) +;; (define-extern snakl level-load-info) +;; (define-extern daxtl level-load-info) +;; (define-extern jakvl level-load-info) +;; (define-extern ashvl level-load-info) +;; (define-extern ashvl2 level-load-info) +;; (define-extern ashvl3 level-load-info) +;; (define-extern razvl level-load-info) +;; (define-extern klevl level-load-info) +;; (define-extern klevl2 level-load-info) +;; (define-extern kievl level-load-info) +;; (define-extern thavl level-load-info) +;; (define-extern thavl2 level-load-info) +;; (define-extern thavl3 level-load-info) +;; (define-extern thbvl level-load-info) +;; (define-extern thbvl2 level-load-info) +;; (define-extern thbvl3 level-load-info) +;; (define-extern thcvl level-load-info) +;; (define-extern thcvl2 level-load-info) +;; (define-extern thcvl3 level-load-info) +;; (define-extern torvl level-load-info) +;; (define-extern torvl2 level-load-info) +;; (define-extern torvl3 level-load-info) +;; (define-extern sigvl level-load-info) +;; (define-extern sigvl2 level-load-info) +;; (define-extern sigvl3 level-load-info) +;; (define-extern ur8vl level-load-info) +;; (define-extern ur8vl2 level-load-info) +;; (define-extern ur8vl3 level-load-info) +;; (define-extern rayvl level-load-info) +;; (define-extern rayvl2 level-load-info) +;; (define-extern gtbvl level-load-info) +;; (define-extern pecvl level-load-info) +;; (define-extern ashlev level-load-info) +;; (define-extern jaklev level-load-info) +;; (define-extern razlev level-load-info) +;; (define-extern klelev level-load-info) +;; (define-extern kielev level-load-info) +;; (define-extern thalev level-load-info) +;; (define-extern tarlev level-load-info) +;; (define-extern thblev level-load-info) +;; (define-extern thclev level-load-info) +;; (define-extern torlev level-load-info) +;; (define-extern siglev level-load-info) +;; (define-extern ur8lev level-load-info) +;; (define-extern kaelev level-load-info) +;; (define-extern raylev level-load-info) +;; (define-extern ratlev level-load-info) +;; (define-extern jkalev level-load-info) +;; (define-extern jkblev level-load-info) +;; (define-extern jkclev level-load-info) +;; (define-extern daxlev level-load-info) +;; (define-extern gtblev level-load-info) +;; (define-extern peclev level-load-info) +;; (define-extern ximlev level-load-info) +;; (define-extern osmlev level-load-info) +;; (define-extern cliftest level-load-info) +;; (define-extern fmvlev level-load-info) +;; (define-extern credits level-load-info) +;; (define-extern jakcred level-load-info) +;; (define-extern peccred level-load-info) +;; (define-extern razcred level-load-info) +;; (define-extern gtbcred level-load-info) +;; (define-extern daxcred level-load-info) +;; (define-extern sigcred level-load-info) +;; (define-extern thbcred level-load-info) +;; (define-extern ur8cred level-load-info) +;; (define-extern keicred level-load-info) +;; (define-extern torcred level-load-info) +;; (define-extern klecred level-load-info) +;; (define-extern thccred level-load-info) +;; (define-extern ashcred level-load-info) +;; (define-extern thacred level-load-info) +;; (define-extern raycred level-load-info) +;; (define-extern kraswfma level-load-info) +;; (define-extern krasastg level-load-info) +;; (define-extern krasafma level-load-info) +;; (define-extern krasbfma level-load-info) +;; (define-extern krascfma level-load-info) +;; (define-extern rustyhfm level-load-info) +;; (define-extern introcst level-load-info) ;; level-load-info +;; (define-extern jakndax level-load-info) +;; (define-extern rynash level-load-info) +;; (define-extern tsk2a level-load-info) +;; (define-extern tsk2b level-load-info) +;; (define-extern tsk2c level-load-info) +;; (define-extern tsk3a level-load-info) +;; (define-extern tsk4a level-load-info) +;; (define-extern tsk5a level-load-info) +;; (define-extern tsk5b level-load-info) +;; (define-extern tsk6a level-load-info) +;; (define-extern tsk12a level-load-info) +;; (define-extern tsk12b level-load-info) +;; (define-extern tsk18a level-load-info) +;; (define-extern tsk21a level-load-info) +;; (define-extern tsk21b level-load-info) +;; (define-extern tsk25a level-load-info) +;; (define-extern tsk32a level-load-info) +;; (define-extern tsk32b level-load-info) +;; (define-extern tsk32c level-load-info) +;; (define-extern tsk33a level-load-info) +;; (define-extern tsk38a level-load-info) +;; (define-extern tsk80a level-load-info) +;; (define-extern tsk80b level-load-info) +;; (define-extern tsk81a level-load-info) +;; (define-extern tsk81b level-load-info) +;; (define-extern tsk100a level-load-info) +;; (define-extern tsk100b level-load-info) +;; (define-extern tsk100c level-load-info) +;; (define-extern tsk114a level-load-info) +;; (define-extern tsk125a level-load-info) +;; (define-extern tsk130a level-load-info) +;; (define-extern tsk130b level-load-info) +;; (define-extern tsk139a level-load-info) +;; (define-extern tsk157a level-load-info) +;; (define-extern tsk165a level-load-info) +;; (define-extern tsk165ab level-load-info) +;; (define-extern tsk165b level-load-info) +;; (define-extern tsk165c level-load-info) +;; (define-extern tsk166a level-load-info) +;; (define-extern tsk166b level-load-info) +;; (define-extern tsk166c level-load-info) +;; (define-extern tsk166c2 level-load-info) +;; (define-extern tsk166d level-load-info) +;; (define-extern tsk166d2 level-load-info) +;; (define-extern tsk166e level-load-info) +;; (define-extern tsk166f level-load-info) +;; (define-extern tsk166g level-load-info) +;; (define-extern introblv level-load-info) +;; (define-extern introblp level-load-info) +;; (define-extern rustycst level-load-info) +;; (define-extern hipcst level-load-info) +;; (define-extern andrew level-load-info) +;; (define-extern testw level-load-info) +;; (define-extern testa level-load-info) +;; (define-extern testb level-load-info) +;; (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 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; level ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (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 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 +;; (define-extern *print-login* object) ;; symbol +;; (define-extern *cached-dgo* object) +;; (define-extern *cached-dgo-count* object) +;; (define-extern load-buffer-resize function) ;; (function level dgo-header none) +;; (define-extern level-find-borrow-slot function) ;; (function level level-memory-mode none) +;; (define-extern level-update-after-load function) ;; (function level login-state level) +;; (define-extern bg function) ;; (function symbol none) +;; (define-extern play function) ;; (function symbol symbol int) +;; (define-extern play2 function) +;; (define-extern play-boot function) ;; (function none) +;; (define-extern sound-bank-name->mode function) ;; (function symbol sound-bank-mode) +;; (define-extern *sound-bank-string* array) +;; (define-extern update-sound-banks function) ;; (function load-state (inline-array sound-bank-state) none) +;; (define-extern show-level function) ;; (function symbol none) +;; (define-extern *default-level* object) ;; level + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + ) +|# + +;; 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 *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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-probe ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-probe-stack-elem (structure) + ((child uint32 :offset-assert 0) + (count uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype collide-probe-stack (structure) + ((data collide-probe-stack-elem 1024 :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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-frag ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-touch ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype add-prims-touching-work (structure) + ((tri1 collide-tri-result :offset-assert 0) + (tri2 collide-tri-result :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern get-intersect-point function) ;; (function vector touching-prims-entry collide-shape touching-shapes-entry vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-shape-rider ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *collide-vif0-init* array) ;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spatial-hash ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype grid-hash-work (basic) + ((result-qwords UNKNOWN 4 :offset-assert 16) + (result-words uint8 :dynamic :offset-assert 16) ;; guessed by decompiler + (result-bits uint8 :dynamic :offset-assert 16) ;; guessed by decompiler + (object-id int32 :offset-assert 80) + (temp-box-min vector :inline :offset-assert 96) + (temp-box-max vector :inline :offset-assert 112) + (visit-count int32 :offset-assert 128) + (temp-time uint32 :offset-assert 132) + (queue-object-time uint32 :offset-assert 136) + (make-hash-time uint32 :offset-assert 140) + (search-time uint32 :offset-assert 144) + (add-object-time uint32 :offset-assert 148) + ) + :method-count-assert 9 + :size-assert #x98 + :flag-assert #x900000098 + ) +|# + +;; (define-extern *grid-hash-work* grid-hash-work) ;; grid-hash-work +;; (define-extern validate-bucket-bits function) ;; (function grid-hash (pointer grid-hash-word) symbol) +;; (define-extern draw-grid function) ;; (function vector vector (pointer int8) rgba none) +;; (define-extern draw-sphere-box function) ;; (function sphere rgba none) +;; (define-extern draw-line-sphere function) ;; (function vector vector float rgba none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; actor-hash ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype actor-cshape-ptr (structure) + ((cshape collide-shape :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype actor-hash-bucket (structure) + ((length int16 :offset-assert 0) + (max-length int16 :offset-assert 2) + (data (inline-array actor-cshape-ptr) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x8 + :flag-assert #xa00000008 + (:methods + (actor-hash-bucket-method-9 () none) ;; 9 ;; (add-actor-cshape (_type_ collide-shape) none) + ) + ) +|# + +#| +(deftype actor-hash-buckets (structure) + ((hash spatial-hash :offset-assert 0) ;; guessed by decompiler + (list engine :offset-assert 4) ;; guessed by decompiler + (data actor-hash-bucket 4 :offset-assert 8) ;; guessed by decompiler + (tpos vector :inline :offset-assert 80) + ) + :method-count-assert 10 + :size-assert #x60 + :flag-assert #xa00000060 + (:methods + (actor-hash-buckets-method-9 () none) ;; 9 ;; (hash-actors (_type_) none) + ) + ) +|# + +;; (define-extern *actor-hash* object) ;; spatial-hash +;; (define-extern *actor-hash-buckets* object) ;; actor-hash-buckets +;; (define-extern update-actor-hash function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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-assert 92) + (real-ocean-offset meters :offset-assert 92) + (ocean-offset meters :offset-assert 96) + (bob-offset meters :offset-assert 100) + (align-offset meters :offset-assert 104) + (swim-depth meters :offset-assert 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 :offset-assert 160) ;; guessed by decompiler + (top vector 2 :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-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 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) +;; (define-extern parameter-ease-sqrt-clamp function) ;; (function float float) +;; (define-extern fourth-power function) ;; (function float float) +;; (define-extern third-power function) ;; (function float float) +;; (define-extern parameter-ease-sqr-clamp function) ;; (function float float) +;; (define-extern parameter-ease-cube-clamp function) ;; (function float float) +;; (define-extern parameter-ease-sin-clamp function) ;; (function float float) +;; (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-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 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 v-slrp2! function) ;; (function vector vector vector float vector float vector) +;; (define-extern v-slrp3! function) ;; (function vector vector vector vector float vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-interface ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern position-in-front-of-camera! function) ;; (function vector float float vector) +;; (define-extern position-in-front-of-screen! function) ;; (function vector float vector vector) +;; (define-extern matrix-local->world function) ;; (function symbol symbol matrix) +;; (define-extern matrix-world->local function) ;; (function symbol object matrix) +;; (define-extern *camera-dummy-vector* object) ;; vector +;; (define-extern *camera-dummy-velocity* object) +;; (define-extern camera-pos function) ;; (function vector) +;; (define-extern camera-vel function) +;; (define-extern math-camera-pos function) ;; (function vector) +;; (define-extern math-camera-nearest-dist-sq function) +;; (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 math-camera-matrix function) ;; (function matrix) +;; (define-extern camera-angle function) ;; (function float) +;; (define-extern camera-teleport-to-entity function) ;; (function entity-actor symbol :behavior process) +;; (define-extern camera-teleport-to-entity-named function) ;; (function string none) +;; (define-extern camera-teleport-to-location function) ;; (function float float float none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + (num-planes int32 :offset-assert 16) + (plane (inline-array plane) :offset-assert 20) ;; guessed by decompiler + ) + :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) + ) + ) +|# + +#| +(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 + (neg-vol-count int32 :offset-assert 784) + (neg-vol plane-volume 32 :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 + ) + :method-count-assert 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) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-layout ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cam-layout-bank (basic) + ((spline-t float :offset-assert 4) + (spline-step float :offset-assert 8) + (intro-t float :offset-assert 12) + (intro-step float :offset-assert 16) + (debug-t float :offset-assert 20) + (debug-step float :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype clm-basic (basic) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype clm-item-action (structure) + ((button uint64 :offset-assert 0) ;; pad-buttons-u64 + (options uint64 :offset-assert 8) ;; clm-item-action-options + (func symbol :offset-assert 16) ;; guessed by decompiler + (parm0 int32 :offset-assert 20) ;; guessed by decompiler + (parm1 symbol :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ;; field parm0 uses ~A with a signed load. field parm1 uses ~A with a signed load. + ) +|# + +#| +(deftype clm-item (clm-basic) + ((description string :offset-assert 4) ;; guessed by decompiler + (button-symbol symbol :offset-assert 8) ;; guessed by decompiler + (action clm-item-action :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype clm-list-item (basic) + ((description string :offset-assert 4) ;; guessed by decompiler + (track-val symbol :offset-assert 8) ;; guessed by decompiler + (val-func symbol :offset-assert 12) ;; guessed by decompiler + (val-parm0 int32 :offset-assert 16) ;; guessed by decompiler + (val-parm1 symbol :offset-assert 20) ;; guessed by decompiler + (actions (array clm-item-action) :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ;; field track-val uses ~A with a signed load. field val-parm0 uses ~A with a signed load. field val-parm1 uses ~A with a signed load. + ) +|# + +#| +(deftype clm-list (clm-basic) + ((tracker symbol :offset-assert 4) ;; guessed by decompiler + (cur-list-item int32 :offset-assert 8) + (items (array clm-list-item) :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype clm (basic) + ((title string :offset-assert 4) ;; guessed by decompiler + (items (array clm-basic) :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype volume-descriptor-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data plane-volume :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype cam-layout (process) + ((cam-entity entity-camera :offset-assert 144) ;; guessed by decompiler + (num-entities int32 :offset-assert 148) + (cur-entity int32 :offset-assert 152) + (num-volumes int32 :offset-assert 156) + (cur-volume int32 :offset-assert 160) + (first-pvol int32 :offset-assert 164) + (first-cutoutvol int32 :offset-assert 168) + (res-key float :offset-assert 172) + ) + :method-count-assert 15 + :size-assert #xb0 + :flag-assert #xf002000b0 + (:methods + (cam-layout-method-9 () none) ;; 9 + (cam-layout-method-10 () none) ;; 10 + (cam-layout-method-11 () none) ;; 11 + (cam-layout-method-12 () none) ;; 12 + (cam-layout-method-13 () none) ;; 13 + (cam-layout-method-14 () none) ;; 14 + ) + (:states + cam-layout-active ;; associated process guessed by decompiler, old: (state cam-layout) + ) + ) +|# + +#| +(deftype interp-test-info (structure) + ((from vector :inline :offset-assert 0) + (to vector :inline :offset-assert 16) + (origin vector :inline :offset-assert 32) + (color vector4w :offset-assert 48) + (axis vector :offset-assert 52) + (disp string :offset-assert 56) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +#| +(deftype clmf-cam-flag-toggle-info (structure) + ((key float :offset-assert 0) + (force-on int32 :offset-assert 4) + (force-off int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; (define-extern *camera-layout-blink* object) ;; symbol +;; (define-extern *CAM_LAYOUT-bank* cam-layout-bank) ;; cam-layout-bank +;; (define-extern *camera-layout-message-ypos* object) ;; int +;; (define-extern *volume-point-current* object) ;; int +;; (define-extern *volume-point* object) ;; vector-array +;; (define-extern *volume-normal-current* object) ;; int +;; (define-extern *volume-normal* object) ;; vector-array +;; (define-extern *volume-descriptor-current* object) ;; int +;; (define-extern *volume-descriptor* object) ;; vol-control +;; (define-extern cam-layout-print function) ;; (function int int string pointer) +;; (define-extern cam-layout-intersect-dist function) ;; (function vector vector vector float) +;; (define-extern cam-layout-entity-volume-info-create function) ;; (function entity-camera symbol symbol :behavior cam-layout) +;; (define-extern cam-layout-entity-volume-info function) ;; (function symbol :behavior cam-layout) +;; (define-extern v-slrp! function) ;; (function vector vector vector float vector) +;; (define-extern interp-test function) ;; (function (function vector vector vector float vector float none) interp-test-info none) +;; (define-extern interp-test-deg function) ;; (function (function vector vector vector vector float none) interp-test-info none) +;; (define-extern cam-layout-entity-info function) ;; (function entity-actor none) +;; (define-extern clmf-button-test function) ;; (function symbol) +;; (define-extern clmf-bna function) ;; (function symbol) +;; (define-extern clmf-implement function) ;; (function symbol) +;; (define-extern clmf-input function) ;; (function vector vector int vector) +;; (define-extern clmf-pos-rot function) ;; (function symbol symbol symbol :behavior cam-layout) +;; (define-extern clmf-next-volume function) ;; (function int symbol :behavior cam-layout) +;; (define-extern clmf-next-vol-dpad function) ;; (function symbol) +;; (define-extern clmf-to-edit-cam function) ;; (function symbol) +;; (define-extern *last-cur-entity* object) ;; int +;; (define-extern clmf-next-entity function) ;; (function int symbol :behavior cam-layout) +;; (define-extern clmf-to-spline-attr function) ;; (function symbol) +;; (define-extern clmf-to-intro-attr function) ;; (function symbol) +;; (define-extern clmf-to-index-attr function) ;; (function symbol) +;; (define-extern clmf-to-focalpull-attr function) ;; (function symbol) +;; (define-extern clmf-to-edit function) ;; (function symbol :behavior cam-layout) +;; (define-extern clmf-to-select function) ;; (function symbol) +;; (define-extern clmf-look-through function) ;; (function symbol :behavior cam-layout) +;; (define-extern fov->maya function) ;; (function float float) +;; (define-extern cam-layout-save-cam-rot function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-cam-trans function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-pivot function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-align function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-interesting function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-fov function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-focalpull function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-flags function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-focalpull-flags function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-campoints-flags function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-introsplinetime function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-introsplineexitval function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-interptime function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-splineoffset function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-spline-follow-dist-offset function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-campointsoffset function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-tiltAdjust function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-stringMinLength function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-stringMaxLength function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-stringMinHeight function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-stringMaxHeight function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-stringCliffHeight function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-maxAngle function) ;; (function symbol string entity-actor none) +;; (define-extern clmf-save-single function) ;; (function entity-camera symbol symbol file-stream :behavior cam-layout) +;; (define-extern clmf-save-one function) ;; (function symbol symbol :behavior cam-layout) +;; (define-extern clmf-save-all function) ;; (function symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-flag-toggle function) ;; (function int int symbol :behavior cam-layout) +;; (define-extern clmf-cam-flag function) ;; (function string uint uint symbol :behavior cam-layout) +;; (define-extern clmf-cam-float-adjust function) ;; (function symbol (pointer float) symbol :behavior cam-layout) +;; (define-extern clmf-cam-meters function) ;; (function meters symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-fov function) ;; (function degrees symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-deg function) ;; (function degrees symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-intro-time function) ;; (function float symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-interp-time function) ;; (function float symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-float function) ;; (function float symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-string function) ;; (function string symbol symbol :behavior cam-layout) +;; (define-extern *clm-focalpull-attr* clm) ;; clm +;; (define-extern *clm-index-attr* clm) ;; clm +;; (define-extern *clm-intro-attr* clm) ;; clm +;; (define-extern *clm-spline-attr* clm) ;; clm +;; (define-extern *clm-cam-attr* clm) ;; clm +;; (define-extern *clm-cam-lookthrough* clm) ;; clm +;; (define-extern *clm-edit* clm) ;; clm +;; (define-extern *clm-save-all* clm) ;; clm +;; (define-extern *clm-save-one* clm) ;; clm +;; (define-extern *clm-select* clm) ;; clm +;; (define-extern *clm* object) ;; clm +;; (define-extern cam-layout-do-action function) ;; (function clm-item-action object :behavior cam-layout) +;; (define-extern cam-layout-function-call function) ;; (function symbol string int basic symbol :behavior cam-layout) +;; (define-extern cam-layout-do-menu function) ;; (function clm symbol :behavior cam-layout) +;; (define-extern cam-layout-init function) ;; (function object :behavior cam-layout) +;; (define-extern cam-layout-stop function) ;; (function symbol) +;; (define-extern cam-layout-start function) ;; (function symbol) +;; (define-extern cam-layout-restart function) ;; (function symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-debug ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cam-dbg-scratch (structure) + ((linevec4w vector :inline :offset-assert 0) ;; vector4w 2 :inline + (color vector :inline :offset-assert 32) ;; vector4w :inline + (plotvec vector :inline :offset-assert 48) ;; vector4w 2 :inline + (linevec vector :inline :offset-assert 80) ;; vector4w 2 :inline + (rel-vec vector :inline :offset-assert 112) + (sphere-v-start vector :inline :offset-assert 128) + (sphere-v-end vector :inline :offset-assert 144) + (sphere-v-down vector :inline :offset-assert 160) + (sphere-vec vector :inline :offset-assert 176) + (crossvec vector :inline :offset-assert 192) + (bboxvec vector :inline :offset-assert 240) + (fov-vv vector :inline :offset-assert 336) + (fov-src vector :inline :offset-assert 400) + (fov-dest vector :inline :offset-assert 416) + (fov-vert vector :inline :offset-assert 432) + (fov-horz vector :inline :offset-assert 448) + ) + :method-count-assert 9 + :size-assert #x1d0 + :flag-assert #x9000001d0 + ) +|# + +#| +(deftype cam-debug-tri (structure) + ((vertex vector 3 :offset-assert 0) ;; guessed by decompiler + (intersect vector :inline :offset-assert 48) + (color vector4w :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype cam-collision-record (structure) + ((pos vector :inline :offset-assert 0) + (vel vector :inline :offset-assert 16) + (desired-pos vector :inline :offset-assert 32) + (cam-tpos-cur vector :inline :offset-assert 48) + (cam-tpos-old vector :inline :offset-assert 64) + (view-flat vector :inline :offset-assert 80) + (string-min-val vector :inline :offset-assert 96) + (string-max-val vector :inline :offset-assert 112) + (view-off vector :inline :offset-assert 128) + (min-z-override float :offset-assert 144) + (string-push-z float :offset-assert 148) + (view-off-param float :offset-assert 152) + (frame int32 :offset-assert 156) + (iteration int32 :offset-assert 160) + (move-type symbol :offset-assert 164) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xa8 + :flag-assert #x9000000a8 + ) +|# + +#| +(deftype cam-collision-record-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data cam-collision-record :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +;; (define-extern *camera-old-cpu* object) ;; int +;; (define-extern *camera-old-vu* object) ;; int +;; (define-extern *camera-old-tfrag-bytes* object) ;; int +;; (define-extern *camera-old-level* object) ;; string +;; (define-extern *camera-old-stat-string-tfrag* object) ;; string +;; (define-extern *camera-old-stat-string-tfrag-near* object) ;; string +;; (define-extern *camera-old-stat-string-total* object) ;; string +;; (define-extern cam-slave-options->string function) ;; (function cam-slave-options object string) +;; (define-extern cam-index-options->string function) ;; (function cam-index-options object string) +;; (define-extern slave-los-state->string function) ;; (function slave-los-state string) +;; (define-extern cam-line-dma function) ;; (function pointer) +;; (define-extern camera-line2d function) ;; (function vector4w vector4w pointer) +;; (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-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 *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 +;; (define-extern *cam-debug-coll-tri* object) ;; (inline-array cam-debug-tri) +;; (define-extern cam-debug-reset-coll-tri function) ;; (function none) +;; (define-extern cam-debug-add-los-tri function) ;; (function (inline-array collide-cache-tri) vector vector none) +;; (define-extern cam-debug-add-coll-tri function) ;; (function cam-debug-tri vector cam-debug-tri none) +;; (define-extern cam-debug-draw-tris function) ;; (function symbol) +;; (define-extern camera-fov-draw function) ;; (function int int vector float float vector4w none) +;; (define-extern camera-fov-frame function) ;; (function matrix vector float float float vector4w symbol) +;; (define-extern debug-euler function) ;; (function cam-dbg-scratch object) +;; (define-extern bike-cam-limit function) ;; (function float float) +;; (define-extern camera-slave-debug function) ;; (function camera-slave none) +;; (define-extern master-draw-coordinates function) ;; (function vector none) +;; (define-extern *cam-collision-record-first* object) ;; int +;; (define-extern *cam-collision-record-last* object) ;; int +;; (define-extern *cam-collision-record-show* object) ;; int +;; (define-extern *cam-collision-record* object) ;; cam-collision-record-array +;; (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 cam-restore function) ;; (function none) +;; (define-extern cam-restore-generic-bug function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-start ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cam-stop function) ;; (function symbol) +;; (define-extern cam-start function) ;; (function symbol none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cloth-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype stick-constraint (structure) + ((constraint-length-half float :offset-assert 0) + (one-over-two-times-constraint-length float :offset-assert 4) + (constraint-length-sqd float :offset-assert 8) + (particle0 uint16 :offset-assert 12) + (particle1 uint16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype verlet-particle (structure) + ((pos vector :inline :offset-assert 0) + (prev-pos vector :inline :offset-assert 16) + (mass-scale float :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype disc-constraint (structure) + ((normal vector :inline :offset-assert 0) + (origin vector :inline :offset-assert 16) + (radius float :offset-assert 32) + (start-particle-index int16 :offset-assert 36) + (end-particle-index int16 :offset-assert 38) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype cylinder-constraint (structure) + ((c0 vector :inline :offset-assert 0) + (norm vector :inline :offset-assert 16) + (length float :offset-assert 32) + (radius float :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype particle-anchor-point (structure) + ((anchor-pos vector :inline :offset-assert 0) + (particle-index uint16 :offset-assert 16) + ) + :method-count-assert 9 + :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 + ) + :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 + ) + :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 + ) + :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 + ) + :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 + ) + :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 + ) + :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 + ) + :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) + (accum-force vector :inline :offset-assert 16) + (timestep-frequency int8 :offset-assert 32) + (last-simulate-remaining int8 :offset-assert 33) + (momentum vector :inline :offset-assert 48) + ) + :method-count-assert 16 + :size-assert #x40 + :flag-assert #x1000000040 + (:methods + (verlet-particle-system-method-11 () none) ;; 11 ;; (accumulate-external-forces! (_type_) none) + (verlet-particle-system-method-12 () none) ;; 12 ;; (compute-verlet-step (_type_ float) none) + (verlet-particle-system-method-13 () none) ;; 13 ;; (run-one-iteration (_type_) none) + (verlet-particle-system-method-14 () none) ;; 14 ;; (reset! (_type_) none) + (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) + (last-2-y-index uint16 :offset-assert 4) + (last-x-index uint16 :offset-assert 6) + (last-y-index uint16 :offset-assert 8) + (lights vu-lights :inline :offset-assert 16) + (scale vector :inline :offset-assert 128) + (clamp-col vector :inline :offset-assert 144) + (last-normal vector :inline :offset-assert 160) + (face-normal-needs-flip? symbol :offset-assert 176) ;; guessed by decompiler + (cross-index0 int8 :offset-assert 180) + (cross-index1 int8 :offset-assert 181) + (backside-normal vector :inline :offset-assert 192) + ) + :method-count-assert 9 + :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) + ) + :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) + ) + ) +|# + +#| +(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) + ) + :method-count-assert 38 + :size-assert #x110 + :flag-assert #x2600000110 + ;; field cloth-flag is likely a value type. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cloth ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern get-neighboring-faces function) ;; (function vector4w int int int int int) +;; (define-extern *normal-array* object) ;; (inline-array vector) +;; (define-extern light-vertex function) ;; (function current-position-info vector rgba) +;; (define-extern *once* object) ;; symbol +;; (define-extern *cloth-fade-alpha* object) ;; gs-alpha +;; (define-extern symbol->cloth-flags function) ;; (function symbol cloth-flag) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; process-drawable ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cspace-by-name function) ;; (function process-drawable string cspace) +;; (define-extern cspace-index-by-name function) ;; (function process-drawable string int) +;; (define-extern vector<-cspace! function) ;; (function vector cspace vector) +;; (define-extern vector<-matrix! function) ;; (function vector matrix vector) +;; (define-extern vector<-cspace+vector! function) ;; (function vector cspace vector vector) +;; (define-extern cspace-children function) ;; (function process-drawable int pair) +;; (define-extern cspace-inspect-tree function) ;; (function process-drawable cspace int int object process-drawable) +;; (define-extern execute-math-engine function) ;; (function int) +;; (define-extern execute-cloth-engine function) ;; (function int) +;; (define-extern draw-joint-axes function) ;; (function process-drawable none) +;; (define-extern draw-root function) ;; (function process-drawable none) +;; (define-extern empty-state state) ;; (state process) +;; (define-extern process-drawable-error-print function) ;; (function process-drawable string none) +;; (define-extern skeleton-group->draw-control function) ;; (function process-drawable skeleton-group (pointer cspace-array) draw-control) +;; (define-extern ja-group-in-array? function) ;; (function (array int32) art-joint-anim :behavior process-drawable) +;; (define-extern ja-done? function) ;; (function int symbol :behavior process-drawable) +;; (define-extern ja-min? function) ;; (function int symbol :behavior process-drawable) +;; (define-extern ja-max? function) ;; (function int symbol :behavior process-drawable) +;; (define-extern ja-num-frames function) ;; (function int int :behavior process-drawable) +;; (define-extern ja-frame-num function) ;; (function int float :behavior process-drawable) +;; (define-extern ja-aframe-num function) ;; (function int float :behavior process-drawable) +;; (define-extern ja-aframe function) ;; (function float int float :behavior process-drawable) +;; (define-extern ja-speed function) ;; (function int float :behavior process-drawable) +;; (define-extern ja-step function) ;; (function int float :behavior process-drawable) +;; (define-extern ja-rate function) ;; (function int float :behavior process-drawable) +;; (define-extern ja-linear-vel function) ;; (function int vector :behavior process-drawable) +;; (define-extern ja-linear-dist function) +;; (define-extern ja-distance-covered function) +;; (define-extern ja-channel-set! function) ;; (function int int :behavior process-drawable) +;; (define-extern ja-channel-push! function) ;; (function int time-frame int :behavior process-drawable) +;; (define-extern ja-channel-float! function) ;; (function art-joint-anim float float float joint-control-channel :behavior process-drawable) +;; (define-extern joint-control-reset! function) ;; (function joint-control joint-control-channel none :behavior process-drawable) +;; (define-extern ja-group-size function) ;; (function int :behavior process-drawable) +;; (define-extern ja-eval function) ;; (function int :behavior process-drawable) +;; (define-extern ja-blend-eval function) ;; (function int :behavior process-drawable) +;; (define-extern cloth-post function) ;; (function none :behavior process-drawable) +;; (define-extern ja-post function) ;; (function none :behavior process-drawable) +;; (define-extern sleep-code function) ;; (function symbol :behavior process) +;; (define-extern transform-and-sleep function) ;; (function none :behavior process-drawable) +;; (define-extern transform-and-sleep-code function) ;; (function none :behavior process-drawable) +;; (define-extern transform-post function) ;; (function int :behavior process-drawable) +;; (define-extern rider-trans function) ;; (function none :behavior process-drawable) +;; (define-extern rider-post function) ;; (function none :behavior process-drawable) +;; (define-extern pusher-post function) ;; (function int :behavior process-drawable) +;; (define-extern process-drawable-delay-player function) ;; (function time-frame int :behavior process-drawable) +;; (define-extern process-drawable-fuel-cell-handler function) ;; (function process int symbol event-message-block none :behavior process-drawable) +;; (define-extern process-drawable-birth-fuel-cell function) ;; (function entity vector symbol none :behavior process-drawable) +;; (define-extern find-offending-process-focusable function) ;; (function process-tree attack-info process-focusable :behavior process-drawable) +;; (define-extern *valid-con* object) ;; string +;; (define-extern process-drawable-valid? function) ;; (function process-drawable symbol) +;; (define-extern process-drawable-reset-all-cloth function) ;; (function process-drawable none) +;; (define-extern process-drawable-set-riding function) ;; (function process-drawable symbol none) +;; (define-extern process-drawable-set-cloth-ground-height function) ;; (function process-drawable float none) +;; (define-extern process-drawable-set-wind-strength function) ;; (function process-drawable float none) +;; (define-extern process-drawable-show-all-cloth function) ;; (function process-drawable symbol none) +;; (define-extern process-drawable-slow-mo-cloth function) ;; (function process-drawable symbol none) +;; (define-extern process-drawable-cloth-command function) ;; (function process-drawable pair none) +;; (define-extern process-drawable-local-transq-for-joint! function) +;; (define-extern process-drawable-local-trans-for-joint! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; curves ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype float-pair (structure) + ((first float :offset-assert 0) + (second float :offset-assert 4) + (x float :offset-assert 0) + (y float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype float-pair-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data float-pair :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype curve2d (basic) + () + :method-count-assert 10 + :size-assert #x4 + :flag-assert #xa00000004 + (:methods + (curve2d-method-9 () none) ;; 9 ;; (evaluate (_type_ float loop-behavior) float) + ) + ) +|# + +#| +(deftype curve-color (basic) + () + :method-count-assert 10 + :size-assert #x4 + :flag-assert #xa00000004 + (:methods + (curve-color-method-9 () none) ;; 9 ;; (evaluate (_type_ float rgbaf loop-behavior) rgbaf) + ) + ) +|# + +#| +(deftype curve2d-piecewise (curve2d) + ((pts float-pair-array :offset-assert 4) ;; guessed by decompiler + (default-loop-behavior uint64 :offset-assert 8) ;; loop-behavior + ) + :method-count-assert 12 + :size-assert #x10 + :flag-assert #xc00000010 + (:methods + (curve2d-piecewise-method-10 () none) ;; 10 ;; (allocate! (_type_ int symbol symbol) none) + (curve2d-piecewise-method-11 () none) ;; 11 ;; (curve2d-piecewise-method-11 (_type_) none) + ) + ) +|# + +#| +(deftype curve2d-fast (curve2d) + ((xs vector :inline :offset-assert 16) + (ys vector :inline :offset-assert 32) + (one-over-x-deltas vector :inline :offset-assert 48) + ) + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + ) +|# + +#| +(deftype curve-color-fast (curve-color) + ((xs vector :inline :offset-assert 16) + (ys vector 4 :offset-assert 32) ;; guessed by decompiler + (one-over-x-deltas vector :inline :offset-assert 96) + ) + :method-count-assert 10 + :size-assert #x70 + :flag-assert #xa00000070 + ) +|# + +#| +(deftype color-pair (structure) + ((first float :offset-assert 0) + (second rgbaf :inline :offset-assert 16) + (x float :offset-assert 0) + (y rgbaf :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype color-pair-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data color-pair :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype curve-color-piecewise (curve-color) + ((pts color-pair-array :offset-assert 4) ;; guessed by decompiler + (default-loop-behavior uint64 :offset-assert 8) ;; loop-behavior + ) + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + (:methods + (curve-color-piecewise-method-10 () none) ;; 10 ;; (allocate! (_type_ int symbol symbol) none) + ) + ) +|# + +;; (define-extern rgbaf-lerp! function) ;; (function rgbaf rgbaf rgbaf float rgbaf) +;; (define-extern evaluate-curve-fast function) ;; (function curve2d-fast float float) +;; (define-extern evaluate-color-curve-fast function) ;; (function curve-color-fast float rgbaf rgbaf) +;; (define-extern rgba<-rgbaf function) ;; (function rgba rgbaf rgba) +;; (define-extern *curve-unity* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-linear-up* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-linear-down* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-linear-up-hold* object) ;; curve2d-piecewise +;; (define-extern *curve-linear-up-down* curve2d-fast) ;; curve2d-fast +;; (define-extern *trail-color-curve-white* curve-color-fast) ;; curve-color-fast +;; (define-extern particle-color-curve-white* curve-color-fast) ;; curve-color-fast +;; (define-extern *trail-color-curve-red* curve-color-fast) ;; curve-color-fast + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ambient ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern can-display-query? function) ;; (function process string float symbol) +;; (define-extern talker-surpress! function) ;; (function int) +;; (define-extern talker-displayed? function) ;; (function symbol) +;; (define-extern kill-current-talker function) ;; (function pair pair symbol none) +;; (define-extern string->talker-speech function) ;; (function string talker-speech-class) +;; (define-extern talker-spawn-func function) ;; (function talker-speech-class process-tree vector region sound-id) +;; (define-extern talker-init function) ;; (function talker-speech-class vector region none :behavior talker) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (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 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; region ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern region-tree-execute function) ;; (function symbol vector vector none) +;; (define-extern region-execute function) ;; (function none) +;; (define-extern region-prim-lookup-by-id function) ;; (function int symbol int drawable-region-prim) +;; (define-extern region-lookup-by-id function) ;; (function int region) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 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) +;; (define-extern *syntax-context* object) ;; script-context +;; (define-extern *script-context* object) ;; script-context + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype target-start (process-hidden) + () + :method-count-assert 16 + :size-assert #x90 + :flag-assert #x1000000090 + ) +|# + +#| +(deftype camera-start (process-hidden) + () + :method-count-assert 16 + :size-assert #x90 + :flag-assert #x1000000090 + ) +|# + +#| +(deftype cam-slope (process-hidden) + () + :method-count-assert 16 + :size-assert #x90 + :flag-assert #x1000000090 + ) +|# + +;; simple-prim is already defined! + +#| +(deftype simple-prim-zbuf-mask (simple-prim) + () + :method-count-assert 56 + :size-assert #xfc + :flag-assert #x38007000fc + ) +|# + +#| +(deftype simple-prim-particle-binding (simple-prim) + ((color rgba :offset-assert 252) ;; guessed by decompiler + (lifetime uint64 :offset-assert 256) ;; time-frame + (state-time uint64 :offset-assert 240) ;; time-frame + ) + :method-count-assert 58 + :size-assert #x110 + :flag-assert #x3a00800110 + (:methods + (simple-prim-particle-binding-method-57 () none) ;; 57 + ) + (:state-methods + die ;; 56 + active ;; 50 + ) + ) +|# + +#| +(deftype part-controller (process) + ((actor-group (pointer actor-group) :offset-assert 140) ;; guessed by decompiler + (actor-group-count int32 :offset-assert 144) + (spawn-delay uint64 :offset-assert 148) ;; time-frame + (current-part-index uint16 :offset-assert 156) + (state-time uint64 :offset-assert 164) ;; time-frame + (next-reset-time uint64 :offset-assert 172) ;; time-frame + (reset-interval-min uint64 :offset-assert 180) ;; time-frame + (reset-interval-max uint64 :offset-assert 188) ;; time-frame + (particle-launchers (array (pointer sparticle-launch-group)) :offset-assert 196) ;; guessed by decompiler + (spawn-sound sound-info :offset-assert 200) ;; sound-name + ) + :method-count-assert 16 + :size-assert #xd0 + :flag-assert #x10004000d0 + (:methods + (part-controller-method-9 () none) ;; 9 + (part-controller-method-10 () none) ;; 10 + (part-controller-method-11 () none) ;; 11 + (part-controller-method-12 () none) ;; 12 + (part-controller-method-13 () none) ;; 13 + (part-controller-method-14 () none) ;; 14 ;; (active () _type_ :state) + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype sound-on-path (process-drawable) + ((flags uint8 :offset-assert 248) + (spawn-sound uint128 :offset-assert 256) ;; sound-name + (loop-sound uint32 :offset-assert 276) + (amb-sound ambient-sound :offset-assert 280) ;; guessed by decompiler + (reverb-value float :offset-assert 284) + (reverb-radius float :offset-assert 288) + (reverb-radius-y float :offset-assert 292) + (reverb-mode int32 :offset-assert 296) + ) + :method-count-assert 53 + :size-assert #x12c + :flag-assert #x3500a0012c + (:state-methods + die ;; 51 + no-play ;; 52 + active ;; 50 + ) + ) +|# + +#| +(deftype crate (process-hidden) + () + :method-count-assert 16 + :size-assert #x90 + :flag-assert #x1000000090 + ) +|# + +;; (define-extern *part-tracker-params-default* object) ;; part-tracker-init-params +;; (define-extern *part-tracker-subsampler-params-default* object) ;; part-tracker-subsampler-init-params +;; (define-extern entity-lookup-part-group function) ;; (function entity-actor (pointer string) symbol (pointer sparticle-launch-group)) +;; (define-extern clone-anim-once function) ;; (function handle symbol string none :behavior process-drawable) +;; (define-extern clone-anim function) ;; (function handle symbol string none :behavior process-drawable) +;; (define-extern manipy-post function) ;; (function none :behavior manipy) +;; (define-extern manipy-init function) ;; (function vector entity-actor skeleton-group vector manipy-options none :behavior manipy) +;; (define-extern part-tracker-init-base function) ;; (function sparticle-launch-group time-frame (function part-tracker vector) uint process-drawable object none :behavior part-tracker) +;; (define-extern part-tracker-subsampler-init function) ;; (function part-tracker-subsampler-init-params object :behavior part-tracker-subsampler) +;; (define-extern part-tracker-init function) ;; (function part-tracker-init-params object :behavior part-tracker) +;; (define-extern part-tracker-track-root function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern lightning-tracker-init function) ;; (function lightning-spec time-frame symbol process-drawable vector vector none :behavior lightning-tracker) +;; (define-extern process-grab? function) ;; (function process symbol symbol :behavior process) +;; (define-extern process-release? function) ;; (function process symbol :behavior process) +;; (define-extern camera-look-at function) ;; (function pair uint process) +;; (define-extern ja-anim-done? function) ;; (function process symbol) +;; (define-extern camera-pov-from function) ;; (function pair uint process) +;; (define-extern touch-tracker-init function) ;; (function vector float time-frame none :behavior touch-tracker) +;; (define-extern process-drawable-random-point! function) ;; (function process-drawable vector vector) +;; (define-extern process-drawable-pair-random-point! function) ;; (function process-drawable process-drawable vector float vector) +;; (define-extern simple-prim-init-by-other function) ;; (function vector vector texture-id object :behavior simple-prim) +;; (define-extern birth-func-simple-prim function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern external-camera-controller-init-by-other function) ;; (function entity time-frame symbol object :behavior external-camera-controller) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lightning ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lightning-globals (structure) + ((gcf-buf uint16 :offset-assert 0) + (vtx-buf uint16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern *lightning-spec-id-table* object) ;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + ) + :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 + (color-repeat-dist float :offset-assert 12) + (alpha-1-mode uint64 :offset-assert 16) + (alpha-2-mode uint64 :offset-assert 24) + (base-alpha float :offset-assert 32) + (alpha-curve-1 curve2d-piecewise :offset-assert 36) ;; guessed by decompiler + (alpha-curve-2 curve2d-piecewise :offset-assert 40) ;; guessed by decompiler + (alpha-repeat-dist float :offset-assert 44) + (width-mode uint64 :offset-assert 48) + (base-width float :offset-assert 56) + (width-curve curve2d-piecewise :offset-assert 60) ;; guessed by decompiler + (width-repeat-dist float :offset-assert 64) + (uv-mode uint64 :offset-assert 72) + (uv-repeat-dist float :offset-assert 80) + (max-age uint64 :offset-assert 88) ;; time-frame + (tex-id texture-id :offset-assert 96) ;; guessed by decompiler + (tex-name basic :offset-assert 100) + (lie-mode uint64 :offset-assert 104) ;; lie-mode + (lie-vector vector :inline :offset-assert 112) + (zbuffer? symbol :offset-assert 128) ;; guessed by decompiler + (use-tape-mode? symbol :offset-assert 132) ;; guessed by decompiler + (blend-mode uint64 :offset-assert 136) + (frame-stagger uint8 :offset-assert 144) + ) + :method-count-assert 9 + :size-assert #x91 + :flag-assert #x900000091 + ) +|# + +#| +(deftype light-trail-breadcrumb (structure) + ((pos vector :inline :offset-assert 0) + (birth-time uint32 :offset-assert 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 + ) + :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) + (crumb-count int16 :offset-assert 10) + (max-crumb-count int16 :offset-assert 12) + (appearance light-trail-composition :offset-assert 16) + (start-marker uint64 :offset-assert 24) + (end-marker uint64 :offset-assert 32) + (decision uint64 :offset-assert 40) ;; light-trail-decision + (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 + ) + :method-count-assert 23 + :size-assert #x80 + :flag-assert #x1700000080 + (:methods + (light-trail-method-10 () none) ;; 10 ;; (reset! (_type_) none) + (light-trail-method-11 () none) ;; 11 ;; (add-crumb! (_type_ vector time-frame) int) + (light-trail-method-12 () none) ;; 12 ;; (build-prim-strip! (_type_) none) + (light-trail-method-13 () none) ;; 13 ;; (common-trans! (_type_) int) + (light-trail-method-14 () none) ;; 14 ;; (expire-old-points! (_type_) none) + (light-trail-method-15 () none) ;; 15 ;; (light-trail-method-15 (_type_) none) + (light-trail-method-16 () none) ;; 16 ;; (add-vert-to-prim-strip! (_type_ prim-strip vector rgba float float) none) + (light-trail-method-17 () none) ;; 17 ;; (add-tri-pair-to-prim! (_type_ vector rgba float vector float) symbol) + (light-trail-method-18 () none) ;; 18 ;; (calc-vertex-pos! (_type_ light-trail-breadcrumb int vector vector) none) + (light-trail-method-19 () none) ;; 19 ;; (crumb-age-out-callback (_type_ float int) none) + (light-trail-method-20 () none) ;; 20 ;; (reset-crumbs! (_type_) none) + (light-trail-method-21 () none) ;; 21 ;; (replace-last-crumb! (_type_ vector) none) + (light-trail-method-22 () none) ;; 22 + ) + ) +|# + +#| +(deftype weapon-trail-crumb (light-trail-breadcrumb) + ((offset vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype weapon-trail (light-trail) + () + :method-count-assert 25 + :size-assert #x80 + :flag-assert #x1900000080 + (:methods + (weapon-trail-method-23 () none) ;; 23 ;; (weapon-trail-method-23 (_type_ vector vector) none) + (weapon-trail-method-24 () none) ;; 24 + ) + ) +|# + +#| +(deftype tread-trail-crumb (light-trail-breadcrumb) + ((normal vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype tread-trail (light-trail) + () + :method-count-assert 25 + :size-assert #x80 + :flag-assert #x1900000080 + (:methods + (tread-trail-method-23 () none) ;; 23 ;; (tread-trail-method-23 (_type_ vector vector) none) + (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) + (tracked-obj uint64 :offset-assert 8) ;; handle + (track-immediately? symbol :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :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) + ) + :method-count-assert 9 + :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 + (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 + (last-add-frame-val uint32 :offset-assert 184) + ) + :method-count-assert 22 + :size-assert #xbc + :flag-assert #x16003000bc + (: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) + (state-time uint64 :offset-assert 192) ;; time-frame + ) + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17004000c8 + (:methods + (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 + ) + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17004000c8 + (:methods + (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lightning-new-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lightning-appearance (structure) + ((base-alpha float :offset-assert 0) + (width-range-start float :offset-assert 4) + (width-range-end float :offset-assert 8) + (tex-id uint32 :offset-assert 12) + (blend-mode uint64 :offset-assert 16) + (fade-time uint64 :offset-assert 24) ;; time-frame + (regenerate-time-start uint64 :offset-assert 32) ;; time-frame + (regenerate-time-end uint64 :offset-assert 40) ;; time-frame + (alpha-1-curve curve2d-fast :offset-assert 48) ;; guessed by decompiler + (alpha-1-mode uint64 :offset-assert 56) + (alpha-1-repeat-dist float :offset-assert 64) + (alpha-2-curve curve2d-fast :offset-assert 68) ;; guessed by decompiler + (alpha-2-mode uint64 :offset-assert 72) + (alpha-2-repeat-dist float :offset-assert 80) + (width-curve curve2d-fast :offset-assert 84) ;; guessed by decompiler + (width-mode uint64 :offset-assert 88) + (width-repeat-dist float :offset-assert 96) + (uv-repeat-dist float :offset-assert 100) + (uv-shift? symbol :offset-assert 104) ;; guessed by decompiler + (uv-shift-speed uint64 :offset-assert 112) ;; time-frame + (use-sprite-bucket? symbol :offset-assert 120) ;; guessed by decompiler + (use-accurate-interp? symbol :offset-assert 124) ;; guessed by decompiler + ) + :method-count-assert 9 + :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) + ) + :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) + ) + :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 + ) + :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 + ) + :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) + ) + :method-count-assert 9 + :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 + (span-pts-start vector-array :offset-assert 12) ;; guessed by decompiler + (spans lightning-spans-array :offset-assert 16) ;; guessed by decompiler + (spans-internal lightning-spans-internal-array :offset-assert 20) ;; guessed by decompiler + (strip1 prim-strip :offset-assert 24) ;; guessed by decompiler + (strip2 prim-strip :offset-assert 28) ;; guessed by decompiler + (inner-point-travel-time uint64 :offset-assert 32) ;; time-frame + (start-fade-time uint64 :offset-assert 40) ;; time-frame + (new-inner-point-generate-time uint64 :offset-assert 48) ;; time-frame + (last-generate-time uint64 :offset-assert 56) ;; time-frame + (base-width float :offset-assert 64) + (current-uv-shift float :offset-assert 68) + (current-fade-scalar float :offset-assert 72) + (fractal-reduction float :offset-assert 76) + (appearance lightning-appearance :offset-assert 80) + (fade-mode uint64 :offset-assert 88) + (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) + (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) + ) + ) +|# + +#| +(deftype lightning-new-tracker (process) + ((bolt lightning-bolt :offset-assert 144) ;; guessed by decompiler + (lifetime uint64 :offset-assert 152) ;; time-frame + (state-time uint64 :offset-assert 160) ;; time-frame + ) + :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 + ) + ) +|# + +#| +(deftype lightning-tracker-init-params (structure) + ((appearance lightning-appearance :offset-assert 0) + (start-pt vector :inline :offset-assert 16) + (end-pt vector :inline :offset-assert 32) + (lifetime uint64 :offset-assert 48) ;; time-frame + (num-inner-points int8 :offset-assert 56) + (inner-random-offset-size float :offset-assert 60) + (random-offset-size-start float :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; particle-curves ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype particle-curve-settings (structure) + ((color-start basic :offset-assert 0) + (alpha-start basic :offset-assert 4) + (scale-x-start basic :offset-assert 8) + (scale-y-start basic :offset-assert 12) + (r-scalar basic :offset-assert 16) + (g-scalar basic :offset-assert 20) + (b-scalar basic :offset-assert 24) + (a-scalar basic :offset-assert 28) + (scale-x-scalar basic :offset-assert 32) + (scale-y-scalar basic :offset-assert 36) + (lifetime-base uint64 :offset-assert 40) ;; time-frame + (lifetime-offset uint64 :offset-assert 48) ;; time-frame + (flags uint64 :offset-assert 56) ;; particle-curve-flags + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +;; (define-extern birth-func-curve function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern live-func-curve function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern *alpha-fast* curve2d-fast) ;; curve2d-fast +;; (define-extern *unity-fast* curve2d-fast) ;; curve2d-fast +;; (define-extern *ccro* curve-color-fast) ;; curve-color-fast +;; (define-extern *scale-curve* curve2d-fast) ;; curve2d-fast +;; (define-extern *scale-range* curve2d-fast) ;; curve2d-fast +;; (define-extern *part-function-curve-test-curve-settings* object) ;; particle-curve-settings +;; (define-extern ptest function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; light-trails ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern compute-trail-scaled-t function) ;; (function uint float float float float float vector float) +;; (define-extern *dist-cache-array* object) ;; (pointer float) +;; (define-extern *total-length* object) ;; float +;; (define-extern light-trail-tracker-common-post function) ;; (function object :behavior light-trail-tracker) +;; (define-extern estimate-light-trail-mem-usage function) ;; (function uint uint int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype target-bank (basic) + ((attack-timeout uint64 :offset-assert 8) ;; time-frame + (ground-timeout uint64 :offset-assert 16) ;; time-frame + (slide-down-timeout uint64 :offset-assert 24) ;; time-frame + (fall-timeout uint64 :offset-assert 32) ;; time-frame + (fall-stumble-threshold meters :offset-assert 40) + (hit-invulnerable-timeout uint64 :offset-assert 48) ;; time-frame + (same-attack-invulnerable-timeout uint64 :offset-assert 56) ;; time-frame + (min-dive-depth meters :offset-assert 64) + (root-radius meters :offset-assert 68) + (root-offset vector :inline :offset-assert 80) + (body-radius meters :offset-assert 96) + (head-radius meters :offset-assert 100) + (head-height meters :offset-assert 104) + (head-offset vector :inline :offset-assert 112) + (fall-height meters :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x84 + :flag-assert #x900000084 + ) +|# + +;; (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-rot function) ;; (function quaternion) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; logic-target ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern draw-history function) ;; (function control-info none) +;; (define-extern target-history-print function) ;; (function history-iterator symbol) +;; (define-extern target-print-stats function) ;; (function target symbol symbol) +;; (define-extern target-move-dist function) ;; (function time-frame float :behavior target) +;; (define-extern level-setup function) ;; (function none :behavior target) +;; (define-extern target-real-post function) ;; (function none :behavior target) +;; (define-extern target-post function) ;; (function none :behavior target) +;; (define-extern target-no-move-post function) ;; (function none :behavior target) +;; (define-extern reset-target-state function) ;; (function symbol target :behavior target) +;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debug-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sparticle-track-root-money function) ;; (function sparticle-system sparticle-cpuinfo vector none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; attackable-hash ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; attackable-hash is already defined! + +;; (define-extern *attackable-hash* attackable-hash) +;; (define-extern attackable-hash-copy! function) +;; (define-extern attackable-hash-exchange! function) +;; (define-extern attackable-hash-update function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 projectile-base-code function) +;; (define-extern projectile-init-by-other function) ;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rigid-body-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rigid-body-info (structure) + ((max-time-step float :offset-assert 0) + (mass float :offset-assert 4) + (inv-mass float :offset-assert 8) + (linear-damping float :offset-assert 12) + (angular-damping float :offset-assert 16) + (bounce-factor float :offset-assert 20) + (friction-factor float :offset-assert 24) + (bounce-mult-factor float :offset-assert 28) + (cm-offset-joint vector :inline :offset-assert 32) + (inv-inertial-tensor matrix :inline :offset-assert 48) + (inertial-tensor matrix :inline :offset-assert 112) + (inertial-tensor-box meters 3 :offset-assert 176) ;; guessed by decompiler + (gravity float :offset-assert 188) + (max-ang-momentum float :offset-assert 192) + ) + :method-count-assert 10 + :size-assert #xc4 + :flag-assert #xa000000c4 + (:methods + (rigid-body-info-method-9 () none) ;; 9 ;; (rigid-body-info-method-9 (_type_) none) + ) + ) +|# + +#| +(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) + (name symbol :offset-assert 196) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #xc8 + :flag-assert #xa000000c8 + (:methods + (rigid-body-object-constants-method-9 () none) ;; 9 + ) + ) +|# + +#| +(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) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype rigid-body-control (basic) + ((flags rigid-body-flag :offset-assert 4) + (debug-id int8 :offset-assert 6) + (debugger-step int8 :offset-assert 7) + (info rigid-body-info :offset-assert 8) + (force-callback (function rigid-body-object float none) :offset-assert 12) ;; guessed by decompiler + (post-move-callback basic :offset-assert 16) + (process process :offset-assert 20) ;; guessed by decompiler + (time-remaining float :offset-assert 24) + (max-ang-momentum float :offset-assert 28) + (linear-damping float :offset-assert 32) + (angular-damping float :offset-assert 36) + (bounce-factor float :offset-assert 40) + (friction-factor float :offset-assert 44) + (position vector :inline :offset-assert 48) + (rot vector :inline :offset-assert 64) + (rotation quaternion :inline :offset-assert 64) + (lin-momentum vector :inline :offset-assert 80) + (ang-momentum vector :inline :offset-assert 96) + (force vector :inline :offset-assert 112) + (torque vector :inline :offset-assert 128) + (lin-velocity vector :inline :offset-assert 144) + (ang-velocity vector :inline :offset-assert 160) + (matrix matrix :inline :offset-assert 176) + (inv-i-world matrix :inline :offset-assert 240) + ) + :method-count-assert 41 + :size-assert #x130 + :flag-assert #x2900000130 + ;; field rigid-body-flag is likely a value type. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type process) _type_) + (rigid-body-control-method-9 () none) ;; 9 ;; (rigid-body-control-method-9 (_type_ collide-shape-moving float) none) + (rigid-body-control-method-10 () none) ;; 10 ;; (rigid-body-control-method-10 (_type_ rigid-body-object float float) object) + (rigid-body-control-method-11 () none) ;; 11 ;; (update-rbody-transform! (_type_ collide-shape-moving) none) + (rigid-body-control-method-12 () none) ;; 12 ;; (rigid-body-control-method-12 (_type_ float) none) + (rigid-body-control-method-13 () none) ;; 13 ;; (init-velocities! (_type_) none) + (rigid-body-control-method-14 () none) ;; 14 ;; (rigid-body-control-method-14 (_type_ float) none) + (rigid-body-control-method-15 () none) ;; 15 ;; (rigid-body-control-method-15 (_type_) none) + (rigid-body-control-method-16 () none) ;; 16 ;; (reset-force-and-torque! (_type_) none) + (rigid-body-control-method-17 () none) ;; 17 ;; (reset-momentum! (_type_) none) + (rigid-body-control-method-18 () none) ;; 18 ;; (apply-impact! (_type_ vector vector) none) + (rigid-body-control-method-19 () none) ;; 19 ;; (rigid-body-control-method-19 (_type_ vector vector) none) + (rigid-body-control-method-20 () none) ;; 20 ;; (add-force! (_type_ vector) none) + (rigid-body-control-method-21 () none) ;; 21 ;; (rigid-body-control-method-21 (_type_ vector vector float) none) + (rigid-body-control-method-22 () none) ;; 22 ;; (rigid-body-control-method-22 (_type_ vector vector) none) + (rigid-body-control-method-23 () none) ;; 23 ;; (rigid-body-control-method-23 (_type_ vector vector) none) + (rigid-body-control-method-24 () none) ;; 24 ;; (rigid-body-control-method-24 (_type_ vector vector) none) + (rigid-body-control-method-25 () none) ;; 25 ;; (rigid-body-control-method-25 (_type_ vector) vector) + (rigid-body-control-method-26 () none) ;; 26 ;; (rigid-body-control-method-26 (_type_) none) + (rigid-body-control-method-27 () none) ;; 27 ;; (init! (_type_ rigid-body-info vector quaternion (function rigid-body-object float)) none) + (rigid-body-control-method-28 () none) ;; 28 ;; (rigid-body-control-method-28 (_type_ vector quaternion) none) + (rigid-body-control-method-29 () none) ;; 29 ;; (debug-print-info (_type_ object) none) + (rigid-body-control-method-30 () none) ;; 30 ;; (debug-print-force-torque (_type_ object) none) + (rigid-body-control-method-31 () none) ;; 31 ;; (debug-print-pos-rot (_type_ object) none) + (rigid-body-control-method-32 () none) ;; 32 ;; (debug-print-momentum (_type_ object) none) + (rigid-body-control-method-33 () none) ;; 33 ;; (debug-print-velocity (_type_ object) none) + (rigid-body-control-method-34 () none) ;; 34 + (rigid-body-control-method-35 () none) ;; 35 + (rigid-body-control-method-36 () none) ;; 36 + (rigid-body-control-method-37 () none) ;; 37 + (rigid-body-control-method-38 () none) ;; 38 + (rigid-body-control-method-39 () none) ;; 39 + (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) + ) + :method-count-assert 12 + :size-assert #x208 + :flag-assert #xc00000208 + (:methods + (rb-perf-data-method-9 () none) ;; 9 + (rb-perf-data-method-10 () none) ;; 10 + (rb-perf-data-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype rigid-body-object (process-focusable) + ((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) + ) + :method-count-assert 89 + :size-assert #x120 + :flag-assert #x5900900120 + ;; field rigid-body-object-flag is likely a value type. + (:methods + (rigid-body-object-method-59 () none) ;; 59 + (rigid-body-object-method-60 () none) ;; 60 + (rigid-body-object-method-61 () none) ;; 61 + (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-67 () none) ;; 67 + (rigid-body-object-method-68 () none) ;; 68 + (rigid-body-object-method-69 () none) ;; 69 + (rigid-body-object-method-70 () none) ;; 70 + (rigid-body-object-method-71 () none) ;; 71 + (rigid-body-object-method-72 () none) ;; 72 + (rigid-body-object-method-73 () none) ;; 73 + (rigid-body-object-method-74 () none) ;; 74 + (rigid-body-object-method-75 () none) ;; 75 + (rigid-body-object-method-76 () none) ;; 76 + (rigid-body-object-method-77 () none) ;; 77 + (rigid-body-object-method-78 () none) ;; 78 + (rigid-body-object-method-79 () none) ;; 79 + (rigid-body-object-method-80 () none) ;; 80 + (rigid-body-object-method-81 () none) ;; 81 + (rigid-body-object-method-82 () none) ;; 82 + (rigid-body-object-method-83 () none) ;; 83 + (rigid-body-object-method-84 () none) ;; 84 + (rigid-body-object-method-85 () none) ;; 85 + (rigid-body-object-method-86 () none) ;; 86 + (rigid-body-object-method-87 () none) ;; 87 + (rigid-body-object-method-88 () none) ;; 88 + ) + ) +|# + +#| +(deftype rigid-body-queue (structure) + ((count int8 :offset-assert 0) + (manager uint64 :offset-assert 8) ;; handle + (array handle 128 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x410 + :flag-assert #x1100000410 + (:methods + (rigid-body-queue-method-9 () none) ;; 9 ;; (init-queue! (_type_ process) none) + (rigid-body-queue-method-10 () none) ;; 10 ;; (rigid-body-queue-method-10 (_type_) none) + (rigid-body-queue-method-11 () none) ;; 11 ;; (rigid-body-queue-method-11 (_type_ process) none) + (rigid-body-queue-method-12 () none) ;; 12 ;; (rigid-body-queue-method-12 (_type_ int int) none) + (rigid-body-queue-method-13 () none) ;; 13 ;; (rigid-body-queue-method-13 (_type_ int process) none) + (rigid-body-queue-method-14 () none) ;; 14 ;; (rigid-body-queue-method-14 (_type_ int) none) + (rigid-body-queue-method-15 () none) ;; 15 ;; (rigid-body-queue-method-15 (_type_ process) none) + (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) + (current-time uint32 :offset-assert 8) + (debug-id int8 :offset-assert 12) + (linear-damping float :offset-assert 16) + (angular-damping float :offset-assert 20) + (bounce-factor float :offset-assert 24) + (friction-factor float :offset-assert 28) + (position vector :inline :offset-assert 32) + (rot vector :inline :offset-assert 48) + (rotation quaternion :inline :offset-assert 48) + (lin-momentum vector :inline :offset-assert 64) + (ang-momentum vector :inline :offset-assert 80) + (force vector :inline :offset-assert 96) + (torque vector :inline :offset-assert 224) + ) + :method-count-assert 11 + :size-assert #x160 + :flag-assert #xb00000160 + (:methods + (rb-debug-state-record-method-9 () none) ;; 9 + (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) + (playback-index int32 :offset-assert 328) + (recorder-index int32 :offset-assert 332) + (begin-index int32 :offset-assert 336) + (end-index int32 :offset-assert 340) + (record-count int32 :offset-assert 344) + (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) + ) + :method-count-assert 21 + :size-assert #x170 + :flag-assert #x1500000170 + (:methods + (rb-debugger-method-9 () none) ;; 9 + (rb-debugger-method-10 () none) ;; 10 + (rb-debugger-method-11 () none) ;; 11 + (rb-debugger-method-12 () none) ;; 12 + (rb-debugger-method-13 () none) ;; 13 + (rb-debugger-method-14 () none) ;; 14 + (rb-debugger-method-15 () none) ;; 15 + (rb-debugger-method-16 () none) ;; 16 + (rb-debugger-method-17 () none) ;; 17 + (rb-debugger-method-18 () none) ;; 18 + (rb-debugger-method-19 () none) ;; 19 + (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-nearest-dist function) +;; (define-extern target-get-any-pos function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-death ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *auto-continue* object) ;; symbol +;; (define-extern next-continue function) ;; (function continue-point continue-point) +;; (define-extern arrive-at-continue function) ;; (function continue-point none :behavior target) +;; (define-extern target-continue-init-art function) ;; (function none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype beam-info (structure) + ((y-scale float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern *beam-info* object) ;; beam-info +;; (define-extern birth-func-setup-beam function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern draw-beam function) ;; (function sparticle-launcher vector vector symbol none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; menu ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype debug-menu-context (basic) + ((is-active symbol :offset-assert 4) ;; guessed by decompiler + (sel-length int32 :offset-assert 8) + (sel-menu debug-menu 8 :offset-assert 12) ;; guessed by decompiler + (root-menu debug-menu :offset-assert 44) ;; guessed by decompiler + (joypad-func (function basic int none) :offset-assert 48) ;; guessed by decompiler + (joypad-item debug-menu-item :offset-assert 52) ;; guessed by decompiler + (font font-context :offset-assert 56) ;; guessed by decompiler + (is-hidden symbol :offset-assert 60) ;; guessed by decompiler + (joypad-number int32 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype debug-menu-node (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (parent debug-menu :offset-assert 8) ;; guessed by decompiler + (refresh-delay int32 :offset-assert 12) + (refresh-ctr int32 :offset-assert 16) + ) + :method-count-assert 9 + :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 + (pix-width int32 :offset-assert 28) + (pix-height int32 :offset-assert 32) + (items pair :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype debug-menu-item (debug-menu-node) + ((id int32 :offset-assert 20) + ) + :method-count-assert 9 + :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 + ) +|# + +#| +(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) + ) + :method-count-assert 9 + :size-assert #x1d + :flag-assert #x90000001d + ) +|# + +#| +(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 + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(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 + (float-p symbol :offset-assert 32) ;; guessed by decompiler + (range-p symbol :offset-assert 36) ;; guessed by decompiler + (show-len int32 :offset-assert 40) + (inc-delay int32 :offset-assert 44) + (inc-delay-ctr int32 :offset-assert 48) + (step-delay-ctr int32 :offset-assert 52) + (inc-dir int32 :offset-assert 56) + (fval float :offset-assert 60) + (fundo-val float :offset-assert 64) + (frange-min float :offset-assert 68) + (frange-max float :offset-assert 72) + (fstart-inc float :offset-assert 76) + (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) + (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 + (ifloat-p symbol :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x64 + :flag-assert #x900000064 + ) +|# + +;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sphere-cull function) ;; (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-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 *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 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 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) +;; (define-extern teleport-camera-by-name function) ;; (function string none) +;; (define-extern teleport-camera-by-pos function) ;; (function float float float none) +;; (define-extern calc-vu1-shadow function) ;; (function light-group draw-control none) +;; (define-extern calc-shadow-masks function) ;; (function light-group draw-control uint none) +;; (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 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 +;; (define-extern dma-add-process-drawable-hud function) ;; (function process-drawable draw-control float dma-buffer none) +;; (define-extern add-process-drawable function) ;; (function process-drawable draw-control symbol dma-buffer none) +;; (define-extern foreground-engine-execute function) ;; (function engine none) +;; (define-extern main-debug-hook function) ;; (function none) +;; (define-extern *debug-hook* object) ;; pair +;; (define-extern *add-sphere* object) ;; symbol +;; (define-extern *generic-effect-mode* object) ;; int +;; (define-extern foreground-initialize-engines function) ;; (function none) +;; (define-extern foreground-execute-cpu-vu0-engines function) ;; (function none) +;; (define-extern real-main-draw-hook function) ;; (function none) +;; (define-extern main-draw-hook function) ;; (function none) +;; (define-extern *draw-hook* object) ;; (function none) +;; (define-extern init-init-buffer function) +;; (define-extern init-end-buffer function) +;; (define-extern screen-shot-scale function) ;; (function int string none) +;; (define-extern screen-shot-debug function) +;; (define-extern screen-shot function) ;; (function none) +;; (define-extern display-frame-start function) ;; (function display int float none) +;; (define-extern display-frame-finish function) ;; (function display display) +;; (define-extern determine-pause-mode function) ;; (function none) +;; (define-extern calc-ratio function) ;; (function int int float) +;; (define-extern display-sync function) ;; (function display none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-group ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-inline-array ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-tree ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prototype ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; prototype-node-group is already defined! + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; video ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern set-video-mode function) ;; (function symbol none) +;; (define-extern get-video-mode function) ;; (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) +;; (define-extern get-progressive-scan function) ;; (function symbol) +;; (define-extern set-graphics-mode function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; main ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype disc-error-proc (process-drawable) + ((error basic :offset-assert 248) + (bmask uint32 :offset-assert 252) + ) + :method-count-assert 50 + :size-assert #x100 + :flag-assert #x3200700100 + ) +|# + +;; (define-extern set-letterbox-frames function) ;; (function time-frame none) +;; (define-extern letterbox function) ;; (function bucket-id float none) +;; (define-extern set-blackout-frames function) ;; (function time-frame none) +;; (define-extern blackout function) ;; (function bucket-id none) +;; (define-extern add-blackout function) ;; (function time-frame int int int int int) +;; (define-extern paused? function) ;; (function symbol) +;; (define-extern movie? function) ;; (function symbol) +;; (define-extern scene-select? function) ;; (function symbol) +;; (define-extern demo? function) ;; (function symbol) +;; (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 pause-allowed? function) ;; (function symbol) +;; (define-extern toggle-pause function) ;; (function int) +;; (define-extern *screen-filter-array* array) +;; (define-extern *screen-filter* object) ;; screen-filter +;; (define-extern *master-exit* object) ;; symbol +;; (define-extern *progress-cheat* object) ;; symbol +;; (define-extern *first-boot* object) ;; symbol +;; (define-extern main-timeouts function) ;; (function none) +;; (define-extern main-cheats function) ;; (function none) +;; (define-extern end-display function) ;; (function display none) +;; (define-extern disc-idle state) +;; (define-extern disc-error-proc-init-by-other function) +;; (define-extern display-loop-main function) ;; (function display none) +;; (define-extern display-loop function) ;; (function int :behavior process) +;; (define-extern on function) ;; (function symbol process) +;; (define-extern off function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-debug ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype col-rend-filter (structure) + ((show-pat uint32 :offset-assert 0) + (show-pat-mask uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern col-rend-draw function) ;; (function col-rend col-rend-filter none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; relocate ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; memory-usage ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; memory-usage-block is already defined! + +;; (define-extern mem-size function) ;; (function basic symbol int int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; path ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vol ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern plane-volume-intersect-dist function) ;; (function vector vector vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-engine ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-engine-spr-buffer (structure) + ((mem-addr (pointer nav-mesh) :offset-assert 0) ;; guessed by decompiler + (mem-nav uint32 :offset-assert 0) + (spr-addr (inline-array nav-control) :offset-assert 4) ;; guessed by decompiler + (spr-nav uint32 :offset-assert 4) + (q-size uint32 :offset-assert 8) + (i-nav uint8 :offset-assert 12) + (done int8 :offset-assert 13) + (nav-count int8 :offset-assert 14) + (i-pass int8 :offset-assert 15) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype nav-engine (structure) + ((spr-addr uint32 :offset-assert 0) + (nav-work-addr uint32 :offset-assert 4) + (nav-mesh-addr nav-mesh :offset-assert 8) ;; guessed by decompiler + (poly-array-addr uint32 :offset-assert 12) + (hash-sphere-addr uint32 :offset-assert 16) + (hash-buckets-addr uint32 :offset-assert 20) + (buf-nav-control-count int8 :offset-assert 24) + (max-pass-count int8 :offset-assert 25) + (output-sphere-hash uint8 :offset-assert 26) + (work-buf-array nav-engine-spr-buffer 3 :offset-assert 28) ;; guessed by decompiler + (spr-work nav-mesh-work :offset-assert 4) + (mem-work nav-mesh-work :offset-assert 76) + (spr-mesh nav-mesh :offset-assert 8) ;; guessed by decompiler + (mem-mesh nav-mesh :offset-assert 80) ;; guessed by decompiler + (spr-poly-array uint32 :offset-assert 12) + (mem-poly-array (inline-array nav-poly) :offset-assert 84) ;; guessed by decompiler + (hash-sphere-list uint32 :offset-assert 16) + (hash-buckets uint32 :offset-assert 20) + (to-spr-wait uint32 :offset-assert 88) + (from-spr-wait uint32 :offset-assert 92) + ) + :method-count-assert 22 + :size-assert #x60 + :flag-assert #x1600000060 + (:methods + (nav-engine-method-9 () none) ;; 9 ;; (inc-spr-addr! (_type_ uint) uint) + (nav-engine-method-10 () none) ;; 10 ;; (lay-out-spad-memory (_type_ nav-mesh) none) + (nav-engine-method-11 () none) ;; 11 ;; (set-up-mem-work (_type_) none) + (nav-engine-method-12 () none) ;; 12 ;; (add-spheres-from-mesh-user-list (_type_ sphere-hash nav-mesh) none) + (nav-engine-method-13 () none) ;; 13 ;; (add-all-spheres (_type_) none) + (nav-engine-method-14 () none) ;; 14 ;; (do-sphere-lookups (_type_) none) + (nav-engine-method-15 () none) ;; 15 ;; (update-nav-controls-pipelined-in-spr (_type_) none) + (nav-engine-method-16 () none) ;; 16 ;; (update-nav-controls-in-spr (_type_) none) + (nav-engine-method-17 () none) ;; 17 ;; (upload-nav-to-spr (_type_ nav-engine-spr-buffer) none) + (nav-engine-method-18 () none) ;; 18 ;; (download-nav-from-spr (_type_ nav-engine-spr-buffer) none) + (nav-engine-method-19 () none) ;; 19 ;; (do-callbacks (_type_ nav-engine-spr-buffer) none) + (nav-engine-method-20 () none) ;; 20 ;; (reloc-ptrs-to-spad (_type_ nav-engine-spr-buffer) none) + (nav-engine-method-21 () none) ;; 21 ;; (reloc-ptrs-to-mem (_type_ nav-engine-spr-buffer) none) + ) + ) +|# + +;; (define-extern nav-dma-send-to-spr-no-flush function) ;; (function pointer pointer int none) +;; (define-extern nav-dma-send-from-spr-no-flush function) ;; (function pointer pointer int none) +;; (define-extern inc-mod3 function) ;; (function int int) +;; (define-extern nav-state-patch-pointers function) ;; (function nav-state int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-mesh ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-find-clear-spot-work (structure) + ((id-array int8 16 :offset-assert 0) ;; guessed by decompiler + (sphere-array sphere 16 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x110 + :flag-assert #x900000110 + ) +|# + +#| +(deftype nav-find-corner-work (structure) + ((cur-poly nav-poly :offset-assert 0) + (target-poly nav-poly :offset-assert 4) + (start-pos vector :inline :offset-assert 16) + (target-pos vector :inline :offset-assert 32) + (tmp UNKNOWN 2 :offset-assert 48) + (dir vector :inline :offset-assert 80) + (frust UNKNOWN 2 :offset-assert 96) + (route-portal nav-route-portal :inline :offset-assert 128) + (portal-count int16 :offset-assert 166) + (frust-dots UNKNOWN 2 :offset-assert 168) + (frust-x-dots UNKNOWN 2 :offset-assert 176) + ) + :method-count-assert 9 + :size-assert #xb8 + :flag-assert #x9000000b8 + ) +|# + +;; (define-extern *debug-nav-control-output* object) ;; symbol +;; (define-extern *debug-nav-control* object) ;; symbol +;; (define-extern *debug-nav-mesh-output* object) ;; symbol +;; (define-extern *debug-nav-ray* object) ;; nav-ray +;; (define-extern *debug-ray-offset* object) ;; vector +;; (define-extern *debug-offset* object) ;; vector +;; (define-extern *nav-mesh-work* object) ;; nav-mesh-work +;; (define-extern *default-nav-mesh* nav-mesh) ;; nav-mesh +;; (define-extern *nav-mesh-id-hash* array) +;; (define-extern id-hash-find-free-index function) +;; (define-extern id-hash-find-matching-index function) +;; (define-extern nav-mesh-connect-from-ent function) ;; (function process-drawable symbol) +;; (define-extern connection-validate function) ;; (function connection none) +;; (define-extern connection-list-validate function) ;; (function (inline-array connection) symbol) +;; (define-extern nav-control-validate function) ;; (function process-drawable none) +;; (define-extern debug-validate-nav-poly function) ;; (function nav-mesh-link nav-poly none) +;; (define-extern vu-point-triangle-intersection? function) ;; (function vector vector vector vector symbol) +;; (define-extern poly-in-height-range? function) ;; (function nav-poly float float symbol) +;; (define-extern nav-ray-test function) ;; (function nav-mesh nav-poly vector vector meters) +;; (define-extern point-poly-distance-min function) ;; (function nav-mesh-work nav-poly float nav-poly float) +;; (define-extern nav-mesh-route-table-bit-index function) ;; (function nav-mesh uint int int) +;; (define-extern ray-ccw-line-segment-intersection? function) ;; (function vector vector vector vector symbol) +;; (define-extern ray-line-segment-intersection? function) ;; (function vector vector vector vector symbol) +;; (define-extern plane-height-at-xz-point function) ;; (function plane vector float) +;; (define-extern nav-normal-from-3-points function) ;; (function vector vector vector vector none) +;; (define-extern get-nav-mesh function) ;; (function actor-id nav-mesh) +;; (define-extern find-nearest-nav-mesh function) ;; (function vector float nav-mesh) +;; (define-extern point-to-poly-boundary function) ;; (function nav-poly vector vector float) +;; (define-extern find-first-containing-nav-mesh function) +;; (define-extern find-nav-mesh function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-link-search-info (structure) + ((open-list nav-mesh-link-search-node :offset-assert 0) + (closed-list nav-mesh-link-search-node :offset-assert 4) + (target-pos vector :inline :offset-assert 16) + (current-pos vector :inline :offset-assert 32) + ) + :method-count-assert 17 + :size-assert #x30 + :flag-assert #x1100000030 + (:methods + (nav-link-search-info-method-9 () none) ;; 9 + (nav-link-search-info-method-10 () none) ;; 10 + (nav-link-search-info-method-11 () none) ;; 11 + (nav-link-search-info-method-12 () none) ;; 12 + (nav-link-search-info-method-13 () none) ;; 13 + (nav-link-search-info-method-14 () none) ;; 14 + (nav-link-search-info-method-15 () none) ;; 15 + (nav-link-search-info-method-16 () none) ;; 16 + ) + ) +|# + +#| +(deftype nav-control-cfs-work (structure) + ((in-dir vector :inline :offset-assert 0) + (right-dir vector :inline :offset-assert 16) + (best-dir vector 2 :offset-assert 32) ;; guessed by decompiler + (temp-dir vector 2 :offset-assert 64) ;; guessed by decompiler + (away-dir vector :inline :offset-assert 96) + (best-dir-angle degrees 2 :offset-assert 112) ;; guessed by decompiler + (ignore-mask uint64 :offset-assert 120) + (initial-ignore-mask uint64 :offset-assert 128) + (i-sphere int32 :offset-assert 136) + (i-first-sphere int32 :offset-assert 140) + (i-inside-sphere int32 :offset-assert 144) + (inside-sphere-dist float :offset-assert 148) + (sign float :offset-assert 152) + (travel-len float :offset-assert 156) + (dist2 float :offset-assert 160) + (inside-dist float :offset-assert 164) + (rand-angle float :offset-assert 168) + (dir-update basic :offset-assert 172) + (debug-offset vector :inline :offset-assert 176) + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +;; (define-extern *nav-triangle-test-count* object) ;; int +;; (define-extern *nav-last-triangle-test-count* object) ;; int +;; (define-extern debug-nav-validate-current-poly function) ;; (function nav-mesh nav-poly vector symbol) +;; (define-extern debug-report-nav-stats function) ;; (function none) +;; (define-extern get-nav-control function) ;; (function process-drawable nav-mesh none) +;; (define-extern get-pos-from-node function) +;; (define-extern add-nav-sphere function) ;; (function nav-control sphere int none) +;; (define-extern add-collide-shape-spheres function) ;; (function nav-control collide-shape sphere none) +;; (define-extern circle-tangent-directions function) ;; (function vector vector vector vector vector) +;; (define-extern circle-ray-intersection? function) ;; (function vector vector float vector symbol) +;; (define-extern find-closest-circle-ray-intersection function) ;; (function vector vector float int (inline-array vector) int int) +;; (define-extern compute-dir-parm function) ;; (function vector vector vector float) +;; (define-extern vector-rotate-y-sincos! function) ;; (function vector vector float float float) +;; (define-extern test-xz-point-on-line-segment? function) ;; (function vector vector vector float symbol) +;; (define-extern *null-nav-callback-info* object) ;; nav-callback-info +;; (define-extern *default-nav-callback-info* object) ;; nav-callback-info +;; (define-extern *physics-nav-callback-info* object) ;; nav-callback-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; effect-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *footstep-surface* object) ;; pat-surface +;; (define-extern *debug-effect-control* object) ;; symbol +;; (define-extern sound-name-with-material function) ;; (function string pat-surface string sound-name) +;; (define-extern effect-param->sound-spec function) ;; (function sound-spec (pointer float) int process-focusable sound-spec) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; water-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-wsplash-color* curve-color-fast) ;; curve-color-fast +;; (define-extern *range-wsplash-alpha* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-wsplash-scale-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-wsplash-scale-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-wsplash-alpha* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-wsplash-scale-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-wsplash-scale-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *part-water-splash-curve-settings* object) ;; particle-curve-settings +;; (define-extern *range-splash-color* curve-color-fast) ;; curve-color-fast +;; (define-extern *range-splash-alpha* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-splash-scale-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-splash-scale-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-splash-alpha* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-splash-scale-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-splash-scale-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *part-water-splash-center-curve-settings* object) ;; particle-curve-settings +;; (define-extern *curve-wsplash-small-scale-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-wsplash-small-scale-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *part-water-splash-small-curve-settings* object) ;; particle-curve-settings + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; water ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern check-water-level-drop function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-water-level-drop-and-die function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-water-level-drop-and-die-motion function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-water-level-above-and-die function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-water-level-drop-motion function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern *water-simple-alpha-curve-in* object) ;; curve2d-piecewise +;; (define-extern *growing-curve* object) ;; curve2d-piecewise +;; (define-extern *water-simple-alpha-curve-fade-out* object) ;; curve2d-piecewise +;; (define-extern *color-curve-tan-brown* object) ;; curve-color-piecewise +;; (define-extern *water-wake-trail* object) ;; light-trail-composition +;; (define-extern part-water-splash-callback function) ;; (function part-tracker none) +;; (define-extern splash-spawn function) ;; (function float vector int none) +;; (define-extern rings-water-spawn function) ;; (function float vector vector float float none) +;; (define-extern water-info<-region function) ;; (function water-info drawable-region-prim (inline-array water-sphere) collide-action process-drawable water-info) +;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; water-flow ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype flow-section (structure) + ((start vector :inline :offset-assert 0) + (trailing plane :inline :offset-assert 16) + (pull-dir vector :inline :offset-assert 32) + (radial-dir vector :inline :offset-assert 48) + (speed float :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype flow-section-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data flow-section :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype flow-control (basic) + ((path path-control :offset-assert 4) ;; guessed by decompiler + (speed float :offset-assert 8) + (belt-radius float :offset-assert 12) + (sections flow-section-array :offset-assert 16) ;; guessed by decompiler + (leading plane :inline :offset-assert 32) + (collide-bounds sphere :inline :offset-assert 48) + ) + :method-count-assert 14 + :size-assert #x40 + :flag-assert #xe00000040 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type process-drawable res-lump) _type_) + (flow-control-method-9 () none) ;; 9 ;; (draw-path (_type_) none) + (flow-control-method-10 () none) ;; 10 ;; (setup (_type_ (pointer float) int) none) + (flow-control-method-11 () none) ;; 11 ;; (push-process (_type_ process-focusable) none) + (flow-control-method-12 () none) ;; 12 ;; (find-and-push-things (_type_) none) + (flow-control-method-13 () none) ;; 13 ;; (flow-control-method-13 (_type_ water-info vector) symbol) + ) + ) +|# + +#| +(deftype water-flow (process-drawable) + ((flow flow-control :offset-assert 248) ;; guessed by decompiler + ) + :method-count-assert 51 + :size-assert #xfc + :flag-assert #x33007000fc + (:state-methods + idle ;; 50 + ) + ) +|# + +;; (define-extern ray-plane-equation-intersect function) ;; (function vector vector vector vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; scene ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype subtitle-work (structure) + ((draw-tmpl dma-gif-packet :inline :offset-assert 0) + (color0 vector4w :inline :offset-assert 32) + (color1 vector4w :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +;; (define-extern scene-decode-continue function) ;; (function basic continue-point) +;; (define-extern scene-lookup function) ;; (function basic scene) +;; (define-extern *subtitle-work* object) ;; subtitle-work +;; (define-extern draw-subtitle-image function) ;; (function subtitle-image font-context none) +;; (define-extern process-drawable-draw-subtitles function) ;; (function none :behavior process-drawable) +;; (define-extern scene-player-init function) ;; (function object symbol string none :behavior scene-player) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; movie-path ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype movie-path (process) + ((root basic :offset-assert 144) + (path basic :offset-assert 148) + (path-pos float :offset-assert 152) + (path-speed float :offset-assert 156) + (rot vector :inline :offset-assert 160) + (enabled? basic :offset-assert 176) + (movie-frame uint32 :offset-assert 180) + ) + :method-count-assert 17 + :size-assert #xb8 + :flag-assert #x11003000b8 + (:methods + (movie-path-method-9 () none) ;; 9 + (movie-path-method-10 () none) ;; 10 + (movie-path-method-11 () none) ;; 11 + (movie-path-method-12 () none) ;; 12 + (movie-path-method-13 () none) ;; 13 + (movie-path-method-14 () none) ;; 14 + (movie-path-method-16 () none) ;; 16 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +;; (define-extern *movie-path-dir* object) +;; (define-extern *movie-path-filename* object) +;; (define-extern *movie-path* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pov-camera ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern pov-camera-play-and-reposition function) ;; (function art-joint-anim vector float none :behavior pov-camera) +;; (define-extern pov-camera-init-by-other function) ;; (function vector skeleton-group string pov-camera-flag process-drawable pair none :behavior pov-camera) +;; (define-extern othercam-calc function) ;; (function float float) +;; (define-extern othercam-init-by-other function) ;; (function pov-camera int symbol symbol none :behavior othercam) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; powerups ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cloud-track function) ;; (function process-tree process-tree (function vector none) time-frame time-frame time-frame none :behavior process) +;; (define-extern eco-blue-glow function) ;; (function vector none) +;; (define-extern process-contact-action function) ;; (function process none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hud ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-string-record (structure) + ((str hud-string :offset-assert 0) + (next hud-string-record :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype hud-sprite-work (structure) + ((adgif-tmpl dma-gif-packet :inline :offset-assert 0) + (draw-tmpl dma-gif-packet :inline :offset-assert 32) + (draw-no-tex-tmpl dma-gif-packet :inline :offset-assert 64) + (sprite-tmpl dma-gif-packet :inline :offset-assert 96) + (sprite-no-tex-tmpl dma-gif-packet :inline :offset-assert 128) + (box-tmpl dma-gif-packet :inline :offset-assert 160) + (box2-tmpl dma-gif-packet :inline :offset-assert 192) + (mask-tmpl dma-gif-packet :inline :offset-assert 224) + (line-tmpl dma-gif-packet :inline :offset-assert 256) + (scan-tmpl dma-gif-packet :inline :offset-assert 288) + (line-color uint64 :offset-assert 320) ;; gs-rgbaq + (scan-colors vector4w 32 :offset-assert 336) ;; guessed by decompiler + (scanline uint32 :offset-assert 848) + ) + :method-count-assert 9 + :size-assert #x354 + :flag-assert #x900000354 + ) +|# + +;; (define-extern *hud-string-array* object) +;; (define-extern *hud-string-used-list* object) +;; (define-extern *hud-string-free-list* object) +;; (define-extern *font-hud-context* object) +;; (define-extern hud-string-init function) +;; (define-extern hud-string-add function) +;; (define-extern hud-string-draw-all function) +;; (define-extern *hud-sprite-work* object) ;; hud-sprite-work +;; (define-extern hud-sprite-add function) +;; (define-extern *debug-hud-disable* object) +;; (define-extern hud-create-icon function) ;; (function hud int int (pointer manipy)) +;; (define-extern hud-post function) +;; (define-extern hud-handler function) +;; (define-extern hud-init-by-other function) ;; (function object :behavior hud) +;; (define-extern set-hud-piece-position! function) ;; (function hud-sprite int int none) +;; (define-extern set-as-offset-from! function) ;; (function hud-sprite vector4w int int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hud-classes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype race-map-info (structure) + ((corner vector2 :offset-assert 0) + (tex-offset vector2 :offset-assert 4) + (tex-id uint32 :offset-assert 8) + (scale float :offset-assert 12) + (mode int32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +;; (define-extern *race-map-info-array* object) +;; (define-extern hud-map-init-by-other function) +;; (define-extern hack-set-level-bbox function) +;; (define-extern init-level-bbox-from-map function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; progress ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *progress-process* object) ;; (pointer progress) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-trans-tables ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-left-table* object) ;; (pointer float) +;; (define-extern *ocean-right-table* object) ;; (pointer float) +;; (define-extern *ocean-up-table* object) ;; (pointer float) +;; (define-extern *ocean-down-table* object) ;; (pointer float) +;; (define-extern *ocean-down-left-table* object) ;; (pointer float) +;; (define-extern *ocean-down-right-table* object) ;; (pointer float) +;; (define-extern *ocean-up-right-table* object) ;; (pointer float) +;; (define-extern *ocean-up-left-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-left-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-right-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-up-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-down-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-down-left-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-down-right-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-up-right-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-up-left-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-corner-table* object) ;; (inline-array vector4w-2) +;; (define-extern *ocean-trans-strip-array* object) ;; (pointer float) +;; (define-extern *ocean-trans-st-table* object) ;; (inline-array vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern init-ocean-far-regs function) ;; (function none) +;; (define-extern draw-large-polygon-ocean function) ;; (function none) +;; (define-extern render-ocean-quad function) ;; (function (inline-array ocean-vertex) dma-buffer symbol) +;; (define-extern test-seq-read function) +;; (define-extern test-worst-read function) +;; (define-extern test-seq-write function) +;; (define-extern test-worst-write function) +;; (define-extern test-to-spr function) +;; (define-extern test-from-spr function) +;; (define-extern test-to-from-spr function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-mid ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern ocean-mid-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-transition ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-near ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern ocean-near-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sparks ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sparks-work* sparks-work) +;; (define-extern sparks-vu1-block object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; eye ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *eye-work* object) ;; eye-work +;; (define-extern find-free-eye-index function) ;; (function int string int int) +;; (define-extern free-eye-index function) ;; (function int int) +;; (define-extern render-eyes-32 function) ;; (function dma-buffer eye-control int pointer) +;; (define-extern render-eyes-64 function) ;; (function dma-buffer eye-control int pointer) +;; (define-extern dirty-eyes function) +;; (define-extern update-eyes function) ;; (function none) +;; (define-extern convert-eye-data function) ;; (function eye uint float) +;; (define-extern merc-eye-anim function) ;; (function process-drawable none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mem-buffer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dynamic-mem ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype memblock (structure) + ((tp uint8 :offset-assert 0) + (flavor uint8 :offset-assert 1) + (pad2 int16 :offset-assert 2) + (paras int32 :offset-assert 4) + (prev memblock :offset-assert 8) + (next memblock :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype mem-manager (structure) + ((pool memblock :offset-assert 0) + (pool-sz int32 :offset-assert 4) + ) + :method-count-assert 16 + :size-assert #x8 + :flag-assert #x1000000008 + (:methods + (mem-manager-method-9 () none) ;; 9 + (mem-manager-method-10 () none) ;; 10 + (mem-manager-method-11 () none) ;; 11 + (mem-manager-method-12 () none) ;; 12 + (mem-manager-method-13 () none) ;; 13 + (mem-manager-method-14 () none) ;; 14 + (mem-manager-method-15 () none) ;; 15 + ) + ) +|# + +;; (define-extern *dynamic-alloc-pool* object) +;; (define-extern *mem-manager* object) +;; (define-extern mem-alloc-scert function) +;; (define-extern mem-free-scert function) +;; (define-extern mem-realloc-scert function) +;; (define-extern mem-alloc-nelly function) +;; (define-extern mem-free-nelly function) +;; (define-extern mem-realloc-nelly function) +;; (define-extern mem-alloc-lgaud function) +;; (define-extern mem-free-lgaud function) +;; (define-extern mem-realloc-lgaud function) +;; (define-extern mem-alloc-flash function) +;; (define-extern mem-free-flash function) +;; (define-extern mem-realloc-flash function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; headset-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype headset-queue (structure) + ((write-offset int32 :offset-assert 0) + (read-offset int32 :offset-assert 4) + (bytes int32 :offset-assert 8) + (size int32 :offset-assert 12) + (data uint32 :offset-assert 16) + ) + :method-count-assert 13 + :size-assert #x14 + :flag-assert #xd00000014 + (:methods + (headset-queue-method-9 () none) ;; 9 + (headset-queue-method-10 () none) ;; 10 + (headset-queue-method-11 () none) ;; 11 + (headset-queue-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype nci-codec-io-block (structure) + ((pcm-buffer uint32 :offset-assert 0) + (samples-in-pcm-buffer int16 :offset-assert 4) + (nelly-buffer uint32 :offset-assert 8) + (nelly-buffer-size uint16 :offset-assert 12) + (nelly-buffer-read-byte-offset uint16 :offset-assert 14) + (nelly-buffer-read-bit-offset uint8 :offset-assert 16) + (nelly-buffer-write-byte-offset uint16 :offset-assert 18) + (nelly-buffer-write-bit-offset uint8 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x15 + :flag-assert #x900000015 + ) +|# + +#| +(deftype headset-decoder (structure) + ((client-idx int8 :offset-assert 0) + (last-time int32 :offset-assert 4) + (cmp-queue headset-queue :inline :offset-assert 8) + (io nci-codec-io-block :inline :offset-assert 28) + (scratch UNKNOWN 16 :offset-assert 49) + (id int8 :offset-assert 65) + ) + :method-count-assert 9 + :size-assert #x42 + :flag-assert #x900000042 + ) +|# + +#| +(deftype headset (process) + ((flags uint32 :offset-assert 144) + (decoders UNKNOWN 4 :offset-assert 148) + (client-to-decoder UNKNOWN 16 :offset-assert 468) + (encoder-io nci-codec-io-block :inline :offset-assert 484) + (last-speech-time int32 :offset-assert 508) + (prev-operation basic :offset-assert 512) + (bytes-in-playback-queue int32 :offset-assert 516) + (first-send basic :offset-assert 520) + (frame-ct int32 :offset-assert 524) + (client-talking UNKNOWN 16 :offset-assert 528) + ) + :method-count-assert 33 + :size-assert #x220 + :flag-assert #x2101900220 + (:methods + (headset-method-9 () none) ;; 9 + (headset-method-10 () none) ;; 10 + (headset-method-11 () none) ;; 11 + (headset-method-12 () none) ;; 12 + (headset-method-13 () none) ;; 13 + (headset-method-14 () none) ;; 14 + (headset-method-15 () none) ;; 15 + (headset-method-16 () none) ;; 16 + (headset-method-17 () none) ;; 17 + (headset-method-18 () none) ;; 18 + (headset-method-19 () none) ;; 19 + (headset-method-20 () none) ;; 20 + (headset-method-21 () none) ;; 21 + (headset-method-22 () none) ;; 22 + (headset-method-23 () none) ;; 23 + (headset-method-24 () none) ;; 24 + (headset-method-25 () none) ;; 25 + (headset-method-26 () none) ;; 26 + (headset-method-27 () none) ;; 27 + (headset-method-28 () none) ;; 28 + (headset-method-29 () none) ;; 29 + (headset-method-30 () none) ;; 30 + (headset-method-31 () none) ;; 31 + (headset-method-32 () none) ;; 32 + ) + ) +|# + +;; (define-extern *headset-input-buffer* object) +;; (define-extern *headset-input-bytes* object) +;; (define-extern *headset-output-buffer* object) +;; (define-extern *headset-output-bytes* object) +;; (define-extern *headset-output-offset* object) +;; (define-extern *headset-cmp-out-buffer* object) +;; (define-extern *headset-cmp-out-frames* object) +;; (define-extern *headset-scratch-buffer* object) +;; (define-extern *headset-mix-buffer* object) +;; (define-extern *headset-decoder-ids* object) +;; (define-extern *headset-decoder-ptrs* array) +;; (define-extern *headset* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stream-media-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; joint-exploder ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype joint-exploder-tuning (structure) + ((explosion uint64 :offset-assert 0) + (duration uint64 :offset-assert 8) ;; time-frame + (gravity float :offset-assert 16) + (rot-speed float :offset-assert 20) + (bounds-inflate float :offset-assert 24) + (max-probes uint8 :offset-assert 28) + (max-probe-width float :offset-assert 32) + (max-probe-height float :offset-assert 36) + (max-probe-depth float :offset-assert 40) + (max-y-offset float :offset-assert 44) + (friction float :offset-assert 48) + (fountain-rand-transv-lo vector :inline :offset-assert 64) + (fountain-rand-transv-hi vector :inline :offset-assert 80) + (away-from-focal-pt vector :inline :offset-assert 64) + (away-from-rand-transv-xz-lo float :offset-assert 80) + (away-from-rand-transv-xz-hi float :offset-assert 84) + (away-from-rand-transv-y-lo float :offset-assert 88) + (away-from-rand-transv-y-hi float :offset-assert 92) + (hit-xz-reaction float :offset-assert 96) + (hit-y-reaction float :offset-assert 100) + ) + :method-count-assert 9 + :size-assert #x68 + :flag-assert #x900000068 + ) +|# + +#| +(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 + ) +|# + +#| +(deftype joint-exploder-joint (structure) + ((next int16 :offset-assert 0) + (prev int16 :offset-assert 2) + (joint-index int16 :offset-assert 4) + (mat matrix :inline :offset-assert 16) + (rmat matrix :inline :offset-assert 80) + (update-rmat matrix :inline :offset-assert 144) + (transv vector :inline :offset-assert 208) + (prev-pos vector :inline :offset-assert 224) + ) + :method-count-assert 9 + :size-assert #xf0 + :flag-assert #x9000000f0 + ) +|# + +#| +(deftype joint-exploder-joints (basic) + ((num-joints int32 :offset-assert 4) + (joint joint-exploder-joint :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype joint-exploder-list (structure) + ((head int32 :offset-assert 0) + (pre-moved? symbol :offset-assert 4) ;; guessed by decompiler + (bbox-valid? symbol :offset-assert 8) ;; guessed by decompiler + (probeless? symbol :offset-assert 12) ;; guessed by decompiler + (bbox bounding-box :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype joint-exploder-list-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data joint-exploder-list :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype joint-exploder (process-drawable) + ((die-if-below-y float :offset-assert 248) + (die-if-beyond-xz-dist-sqrd float :offset-assert 252) + (joints joint-exploder-joints :offset-assert 256) ;; guessed by decompiler + (static-params joint-exploder-static-params :offset-assert 260) ;; guessed by decompiler + (anim art-joint-anim :offset-assert 264) ;; guessed by decompiler + (scale-vector vector :inline :offset-assert 272) + (tuning joint-exploder-tuning :inline :offset-assert 288) + (lists joint-exploder-list-array :offset-assert 392) ;; guessed by decompiler + (last-colsound-time uint64 :offset-assert 400) ;; time-frame + ) + :method-count-assert 60 + :size-assert #x198 + :flag-assert #x3c01100198 + (:methods + (joint-exploder-method-50 () none) ;; 50 + (joint-exploder-method-51 () none) ;; 51 + (joint-exploder-method-52 () none) ;; 52 + (joint-exploder-method-53 () none) ;; 53 + (joint-exploder-method-54 () none) ;; 54 + (joint-exploder-method-55 () none) ;; 55 + (joint-exploder-method-56 () none) ;; 56 + (joint-exploder-method-57 () none) ;; 57 + (joint-exploder-method-58 () none) ;; 58 + (joint-exploder-method-59 () none) ;; 59 + ) + (:states + joint-exploder-shatter ;; associated process guessed by decompiler, old: (state joint-exploder) + ) + ) +|# + +;; (define-extern joint-exploder-joint-callback function) ;; (function draw-control cspace-array joint-control none) +;; (define-extern joint-exploder-init-by-other function) ;; (function skeleton-group int joint-exploder-tuning joint-exploder-static-params object :behavior joint-exploder) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debris ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(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 + ) +|# + +#| +(deftype debris (basic) + ((root transformq :inline :offset-assert 16) + (node-list cspace-array :offset-assert 64) ;; guessed by decompiler + (draw draw-control :offset-assert 68) ;; guessed by decompiler + (duration float :offset-assert 72) + (hit-xz-reaction float :offset-assert 76) + (hit-y-reaction float :offset-assert 80) + (prev-pos vector :inline :offset-assert 96) + (gravity float :offset-assert 112) + (rot-axis vector :inline :offset-assert 128) + (rot-angle float :offset-assert 144) + (transv vector :inline :offset-assert 160) + (time-fade-out uint64 :offset-assert 176) ;; time-frame + (params debris-static-params :offset-assert 184) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xbc + :flag-assert #x9000000bc + ) +|# + +#| +(deftype debris-box (structure) + ((start uint32 :offset-assert 0) + (num uint32 :offset-assert 4) + (bbox bounding-box :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype debris-group (process) + ((had-first-hit basic :offset-assert 144) + (dead-debris-num int32 :offset-assert 148) + (debris-num int32 :offset-assert 152) + (next-play int32 :offset-assert 156) + (debris (array debris) :offset-assert 160) ;; guessed by decompiler + (max-probe-width float :offset-assert 164) + (state-time uint64 :offset-assert 168) ;; time-frame + (num-boxes uint32 :offset-assert 176) + (boxes debris-box 16 :offset-assert 192) ;; guessed by decompiler + ) + :method-count-assert 18 + :size-assert #x3c0 + :flag-assert #x12033003c0 + (:methods + (debris-group-method-9 () none) ;; 9 + (debris-group-method-10 () none) ;; 10 + (debris-group-method-11 () none) ;; 11 + (debris-group-method-12 () none) ;; 12 + (debris-group-method-13 () none) ;; 13 + (debris-group-method-14 () none) ;; 14 ;; (idle () _type_ :state) + (debris-group-method-16 () none) ;; 16 ;; (update-box! (_type_ int) none) + (debris-group-method-17 () none) ;; 17 + ) + (:state-methods + idle ;; 15, old: (do-collision (_type_ int) none) + ) + ) +|# + +#| +(deftype debris-tuning (structure) + ((explosion uint64 :offset-assert 0) + (duration uint64 :offset-assert 8) ;; time-frame + (gravity float :offset-assert 16) + (rot-speed float :offset-assert 20) + (bounds-inflate float :offset-assert 24) + (max-probe-width float :offset-assert 28) + (max-probe-height float :offset-assert 32) + (max-probe-depth float :offset-assert 36) + (fountain-rand-transv-lo vector :inline :offset-assert 48) + (fountain-rand-transv-hi vector :inline :offset-assert 64) + (away-from-focal-pt vector :inline :offset-assert 48) + (away-from-rand-transv-xz-lo float :offset-assert 64) + (away-from-rand-transv-xz-hi float :offset-assert 68) + (away-from-rand-transv-y-lo float :offset-assert 72) + (away-from-rand-transv-y-hi float :offset-assert 76) + (hit-xz-reaction float :offset-assert 80) + (hit-y-reaction float :offset-assert 84) + (scale-rand-lo float :offset-assert 88) + (scale-rand-hi float :offset-assert 92) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +;; (define-extern debris-group-init-by-other function) ;; (function debris-tuning debris-static-params process-drawable object :behavior debris-group) +;; (define-extern debris-spawn function) ;; (function process-drawable debris-tuning debris-static-params process-drawable (pointer debris-group)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-process-mgr-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-process-mgr-machine (structure) + ((state uint8 :offset-assert 0) + (delay int32 :offset-assert 4) + (acct-id int32 :offset-assert 8) + (overall-score int32 :offset-assert 12) + (clan-id int32 :offset-assert 16) + (local-player-ct int32 :offset-assert 20) + (cookie int32 :offset-assert 24) + (reported-ping int32 :offset-assert 28) + ) + :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 + ) + ) +|# + +;; (define-extern *net-process-mgr* object) +;; (define-extern get-event-level function) +;; (define-extern get-shared-level function) +;; (define-extern nos function) +;; (define-extern write-process-as-handle function) +;; (define-extern write-handle function) +;; (define-extern read-handle function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; statistics ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype stat-info (structure) + ((text-id uint32 :offset-assert 0) + (taskname basic :offset-assert 4) + (name basic :offset-assert 8) + (offset int32 :offset-assert 12) + (tp uint64 :offset-assert 16) + (scale float :offset-assert 24) + (format-scale float :offset-assert 28) + (flags uint64 :offset-assert 32) + (init int32 :offset-assert 40) + (min-div int32 :offset-assert 44) + ) + :method-count-assert 15 + :size-assert #x30 + :flag-assert #xf00000030 + (:methods + (stat-info-method-9 () none) ;; 9 + (stat-info-method-10 () none) ;; 10 + (stat-info-method-11 () none) ;; 11 + (stat-info-method-12 () none) ;; 12 + (stat-info-method-13 () none) ;; 13 + (stat-info-method-14 () none) ;; 14 + ) + ) +|# + +#| +(deftype net-player-ladder-stats (structure) + ((version uint32 :offset-assert 0) + (overall-score uint32 :offset-assert 4) + (events-started uint32 :offset-assert 8) + (events-ended-or-quit uint32 :offset-assert 12) + (events-ended-or-quit-pct uint32 :offset-assert 16) + (events-played uint32 :offset-assert 20) + (events-played-pct uint32 :offset-assert 24) + (events-won uint32 :offset-assert 28) + (events-won-pct uint32 :offset-assert 32) + (time-spent-playing uint32 :offset-assert 36) + (track-events-played uint32 :offset-assert 40) + (track-events-won uint32 :offset-assert 44) + (track-events-won-pct uint32 :offset-assert 48) + (track-events-top-three uint32 :offset-assert 52) + (track-events-top-three-pct uint32 :offset-assert 56) + (arena-events-played uint32 :offset-assert 60) + (arena-events-won uint32 :offset-assert 64) + (arena-events-won-pct uint32 :offset-assert 68) + (arena-events-top-three uint32 :offset-assert 72) + (arena-events-top-three-pct uint32 :offset-assert 76) + (human-kills uint32 :offset-assert 80) + (human-kills-per-minute uint32 :offset-assert 84) + (cpu-kills uint32 :offset-assert 88) + (cpu-kills-per-minute uint32 :offset-assert 92) + (deaths uint32 :offset-assert 96) + (deaths-per-minute uint32 :offset-assert 100) + (top-speed uint32 :offset-assert 104) + (biggest-air uint32 :offset-assert 108) + (best-deathmatch-kills uint32 :offset-assert 112) + (best-hunt-score uint32 :offset-assert 116) + (best-artifact-score uint32 :offset-assert 120) + (best-lap-snow uint32 :offset-assert 124) + (best-lap-jungle uint32 :offset-assert 128) + (best-lap-kras uint32 :offset-assert 132) + (best-lap-canyon uint32 :offset-assert 136) + (best-lap-canspar uint32 :offset-assert 140) + (best-lap-haven uint32 :offset-assert 144) + (best-lap-havjung uint32 :offset-assert 148) + (best-lap-havsew uint32 :offset-assert 152) + (best-lap-havtour uint32 :offset-assert 156) + (best-lap-sewer uint32 :offset-assert 160) + (best-lap-spargus uint32 :offset-assert 164) + (best-lap-docks uint32 :offset-assert 168) + (best-lap-dockkra uint32 :offset-assert 172) + (best-lap-dromdoc uint32 :offset-assert 176) + (best-lap-drome uint32 :offset-assert 180) + (best-lap-ice uint32 :offset-assert 184) + (best-lap-temple uint32 :offset-assert 188) + (best-lap-spartem uint32 :offset-assert 192) + (best-lap-iceberg uint32 :offset-assert 196) + (best-lap-kratour uint32 :offset-assert 200) + (best-lap-spatour uint32 :offset-assert 204) + (best-lap-icepass uint32 :offset-assert 208) + (best-lap-peak uint32 :offset-assert 212) + (best-lap-icetour uint32 :offset-assert 216) + (best-timetrial-snow uint32 :offset-assert 220) + (best-timetrial-jungle uint32 :offset-assert 224) + (best-timetrial-kras uint32 :offset-assert 228) + (best-timetrial-canyon uint32 :offset-assert 232) + (best-timetrial-canspar uint32 :offset-assert 236) + (best-timetrial-haven uint32 :offset-assert 240) + (best-timetrial-havjung uint32 :offset-assert 244) + (best-timetrial-havsew uint32 :offset-assert 248) + (best-timetrial-havtour uint32 :offset-assert 252) + (best-timetrial-sewer uint32 :offset-assert 256) + (best-timetrial-spargus uint32 :offset-assert 260) + (best-timetrial-docks uint32 :offset-assert 264) + (best-timetrial-dockkra uint32 :offset-assert 268) + (best-timetrial-dromdoc uint32 :offset-assert 272) + (best-timetrial-drome uint32 :offset-assert 276) + (best-timetrial-ice uint32 :offset-assert 280) + (best-timetrial-temple uint32 :offset-assert 284) + (best-timetrial-spartem uint32 :offset-assert 288) + (best-timetrial-iceberg uint32 :offset-assert 292) + (best-timetrial-kratour uint32 :offset-assert 296) + (best-timetrial-spatour uint32 :offset-assert 300) + (best-timetrial-icepass uint32 :offset-assert 304) + (best-timetrial-peak uint32 :offset-assert 308) + (best-timetrial-icetour uint32 :offset-assert 312) + ) + :method-count-assert 9 + :size-assert #x13c + :flag-assert #x90000013c + ) +|# + +#| +(deftype net-player-ladder-stats-info (structure) + ((version stat-info :offset-assert 0) + (overall-score stat-info :offset-assert 4) + (events-started stat-info :offset-assert 8) + (events-ended-or-quit stat-info :offset-assert 12) + (events-ended-or-quit-pct stat-info :offset-assert 16) + (events-played stat-info :offset-assert 20) + (events-played-pct stat-info :offset-assert 24) + (events-won stat-info :offset-assert 28) + (events-won-pct stat-info :offset-assert 32) + (time-spent-playing stat-info :offset-assert 36) + (track-events-played stat-info :offset-assert 40) + (track-events-won stat-info :offset-assert 44) + (track-events-won-pct stat-info :offset-assert 48) + (track-events-top-three stat-info :offset-assert 52) + (track-events-top-three-pct stat-info :offset-assert 56) + (arena-events-played stat-info :offset-assert 60) + (arena-events-won stat-info :offset-assert 64) + (arena-events-won-pct stat-info :offset-assert 68) + (arena-events-top-three stat-info :offset-assert 72) + (arena-events-top-three-pct stat-info :offset-assert 76) + (human-kills stat-info :offset-assert 80) + (human-kills-per-minute stat-info :offset-assert 84) + (cpu-kills stat-info :offset-assert 88) + (cpu-kills-per-minute stat-info :offset-assert 92) + (deaths stat-info :offset-assert 96) + (deaths-per-minute stat-info :offset-assert 100) + (top-speed stat-info :offset-assert 104) + (biggest-air stat-info :offset-assert 108) + (best-deathmatch-kills stat-info :offset-assert 112) + (best-hunt-score stat-info :offset-assert 116) + (best-artifact-score stat-info :offset-assert 120) + (best-lap-snow stat-info :offset-assert 124) + (best-lap-jungle stat-info :offset-assert 128) + (best-lap-kras stat-info :offset-assert 132) + (best-lap-canyon stat-info :offset-assert 136) + (best-lap-canspar stat-info :offset-assert 140) + (best-lap-haven stat-info :offset-assert 144) + (best-lap-havjung stat-info :offset-assert 148) + (best-lap-havsew stat-info :offset-assert 152) + (best-lap-havtour stat-info :offset-assert 156) + (best-lap-sewer stat-info :offset-assert 160) + (best-lap-spargus stat-info :offset-assert 164) + (best-lap-docks stat-info :offset-assert 168) + (best-lap-dockkra stat-info :offset-assert 172) + (best-lap-dromdoc stat-info :offset-assert 176) + (best-lap-drome stat-info :offset-assert 180) + (best-lap-ice stat-info :offset-assert 184) + (best-lap-temple stat-info :offset-assert 188) + (best-lap-spartem stat-info :offset-assert 192) + (best-lap-iceberg stat-info :offset-assert 196) + (best-lap-kratour stat-info :offset-assert 200) + (best-lap-spatour stat-info :offset-assert 204) + (best-lap-icepass stat-info :offset-assert 208) + (best-lap-peak stat-info :offset-assert 212) + (best-lap-icetour stat-info :offset-assert 216) + (best-timetrial-snow stat-info :offset-assert 220) + (best-timetrial-jungle stat-info :offset-assert 224) + (best-timetrial-kras stat-info :offset-assert 228) + (best-timetrial-canyon stat-info :offset-assert 232) + (best-timetrial-canspar stat-info :offset-assert 236) + (best-timetrial-haven stat-info :offset-assert 240) + (best-timetrial-havjung stat-info :offset-assert 244) + (best-timetrial-havsew stat-info :offset-assert 248) + (best-timetrial-havtour stat-info :offset-assert 252) + (best-timetrial-sewer stat-info :offset-assert 256) + (best-timetrial-spargus stat-info :offset-assert 260) + (best-timetrial-docks stat-info :offset-assert 264) + (best-timetrial-dockkra stat-info :offset-assert 268) + (best-timetrial-dromdoc stat-info :offset-assert 272) + (best-timetrial-drome stat-info :offset-assert 276) + (best-timetrial-ice stat-info :offset-assert 280) + (best-timetrial-temple stat-info :offset-assert 284) + (best-timetrial-spartem stat-info :offset-assert 288) + (best-timetrial-iceberg stat-info :offset-assert 292) + (best-timetrial-kratour stat-info :offset-assert 296) + (best-timetrial-spatour stat-info :offset-assert 300) + (best-timetrial-icepass stat-info :offset-assert 304) + (best-timetrial-peak stat-info :offset-assert 308) + (best-timetrial-icetour stat-info :offset-assert 312) + ) + :method-count-assert 11 + :size-assert #x13c + :flag-assert #xb0000013c + (:methods + (net-player-ladder-stats-info-method-9 () none) ;; 9 + (net-player-ladder-stats-info-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype net-clan-ladder-stats (structure) + ((version uint32 :offset-assert 0) + (overall-score uint32 :offset-assert 4) + (events-played uint32 :offset-assert 8) + (events-won uint32 :offset-assert 12) + (events-won-pct uint32 :offset-assert 16) + (events-lost uint32 :offset-assert 20) + (events-lost-pct uint32 :offset-assert 24) + (events-drawn uint32 :offset-assert 28) + (events-drawn-pct uint32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype net-clan-ladder-stats-info (structure) + ((version stat-info :offset-assert 0) + (overall-score stat-info :offset-assert 4) + (events-played stat-info :offset-assert 8) + (events-won stat-info :offset-assert 12) + (events-won-pct stat-info :offset-assert 16) + (events-lost stat-info :offset-assert 20) + (events-lost-pct stat-info :offset-assert 24) + (events-drawn stat-info :offset-assert 28) + (events-drawn-pct stat-info :offset-assert 32) + ) + :method-count-assert 11 + :size-assert #x24 + :flag-assert #xb00000024 + (:methods + (net-clan-ladder-stats-info-method-9 () none) ;; 9 + (net-clan-ladder-stats-info-method-10 () none) ;; 10 + ) + ) +|# + +;; (define-extern *net-player-ladder-stats-info-array* array) +;; (define-extern *net-player-ladder-stats-info* object) +;; (define-extern *net-clan-ladder-stats-info-array* array) +;; (define-extern *net-clan-ladder-stats-info* object) +;; (define-extern get-skill-level function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-medius-cache-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype medius-cached-info (basic) + ((medius-id int32 :offset-assert 4) + (accessed-time int32 :offset-assert 8) + (fetched-time int32 :offset-assert 12) + (status uint64 :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x18 + :flag-assert #xc00000018 + (:methods + (medius-cached-info-method-9 () none) ;; 9 + (medius-cached-info-method-10 () none) ;; 10 + (medius-cached-info-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype medius-cache (basic) + ((objects basic :offset-assert 4) + ) + :method-count-assert 15 + :size-assert #x8 + :flag-assert #xf00000008 + (:methods + (medius-cache-method-9 () none) ;; 9 + (medius-cache-method-10 () none) ;; 10 + (medius-cache-method-11 () none) ;; 11 + (medius-cache-method-12 () none) ;; 12 + (medius-cache-method-13 () none) ;; 13 + (medius-cache-method-14 () none) ;; 14 + ) + ) +|# + +#| +(deftype medius-cache-index (structure) + ((id int32 :offset-assert 0) + ) + :method-count-assert 11 + :size-assert #x4 + :flag-assert #xb00000004 + (:methods + (medius-cache-index-method-9 () none) ;; 9 + (medius-cache-index-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype medius-cache-index-array (structure) + ((ct int32 :offset-assert 0) + (max-ct int32 :offset-assert 4) + (data UNKNOWN :dynamic :offset-assert 8) + ) + :method-count-assert 13 + :size-assert #x8 + :flag-assert #xd00000008 + (:methods + (medius-cache-index-array-method-9 () none) ;; 9 + (medius-cache-index-array-method-10 () none) ;; 10 + (medius-cache-index-array-method-11 () none) ;; 11 + (medius-cache-index-array-method-12 () none) ;; 12 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-medius-players-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-player-stats (structure) + ((stats-version int8 :offset-assert 0) + (current-clan int32 :offset-assert 4) + (last-channel-id int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype medius-cached-info-player (medius-cached-info) + ((name UNKNOWN 32 :offset-assert 24) + (format-name UNKNOWN 160 :offset-assert 56) + (online-state medius-player-online-state :inline :offset-assert 216) + (stats net-player-stats :inline :offset-assert 356) + (ladder-stats net-player-ladder-stats :inline :offset-assert 368) + ) + :method-count-assert 12 + :size-assert #x2ac + :flag-assert #xc000002ac + ) +|# + +#| +(deftype medius-player (medius-cache-index) + () + :method-count-assert 14 + :size-assert #x4 + :flag-assert #xe00000004 + (:methods + (medius-player-method-11 () none) ;; 11 + (medius-player-method-12 () none) ;; 12 + (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-buddies* object) +;; (define-extern *medius-buddies-online* object) +;; (define-extern *medius-ignores* object) +;; (define-extern *medius-room-players* object) +;; (define-extern *medius-recent-players* object) +;; (define-extern *medius-in-game-players* object) +;; (define-extern *medius-local-game-players* object) +;; (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-recent-opponents* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-medius-clans-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype medius-cached-info-clan (medius-cached-info) + ((name UNKNOWN 32 :offset-assert 24) + (leader-acct-id int32 :offset-assert 56) + (leader-name UNKNOWN 32 :offset-assert 60) + (stats UNKNOWN 256 :offset-assert 92) + (members medius-player-index-array :offset-assert 348) + (ladder-stats net-clan-ladder-stats :inline :offset-assert 352) + ) + :method-count-assert 13 + :size-assert #x184 + :flag-assert #xd00000184 + (:methods + (medius-cached-info-clan-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype medius-clan (medius-cache-index) + () + :method-count-assert 12 + :size-assert #x4 + :flag-assert #xc00000004 + (:methods + (medius-clan-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype medius-clan-index-array (medius-cache-index-array) + () + :method-count-assert 13 + :size-assert #x8 + :flag-assert #xd00000008 + ) +|# + +#| +(deftype medius-incoming-clan-invite (structure) + ((clan-id int32 :offset-assert 0) + (invite-id int32 :offset-assert 4) + (clan-name UNKNOWN 32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype medius-clan-challenge (structure) + ((send-clan-id int32 :offset-assert 0) + (recv-clan-id int32 :offset-assert 4) + (challenge-id int32 :offset-assert 8) + (status int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *clan-pending-deltas-valid* object) +;; (define-extern *clan-pending-deltas* object) +;; (define-extern *clan-msg-text* object) +;; (define-extern *clan-msg-id* object) +;; (define-extern *medius-clan-cache* medius-cache) +;; (define-extern *medius-recent-clans* object) +;; (define-extern *medius-clan-members-31* object) +;; (define-extern *medius-clan-members-30* object) +;; (define-extern *medius-clan-members-29* object) +;; (define-extern *medius-clan-members-28* object) +;; (define-extern *medius-clan-members-27* object) +;; (define-extern *medius-clan-members-26* object) +;; (define-extern *medius-clan-members-25* object) +;; (define-extern *medius-clan-members-24* object) +;; (define-extern *medius-clan-members-23* object) +;; (define-extern *medius-clan-members-22* object) +;; (define-extern *medius-clan-members-21* object) +;; (define-extern *medius-clan-members-20* object) +;; (define-extern *medius-clan-members-19* object) +;; (define-extern *medius-clan-members-18* object) +;; (define-extern *medius-clan-members-17* object) +;; (define-extern *medius-clan-members-16* object) +;; (define-extern *medius-clan-members-15* object) +;; (define-extern *medius-clan-members-14* object) +;; (define-extern *medius-clan-members-13* object) +;; (define-extern *medius-clan-members-12* object) +;; (define-extern *medius-clan-members-11* object) +;; (define-extern *medius-clan-members-10* object) +;; (define-extern *medius-clan-members-9* object) +;; (define-extern *medius-clan-members-8* object) +;; (define-extern *medius-clan-members-7* object) +;; (define-extern *medius-clan-members-6* object) +;; (define-extern *medius-clan-members-5* object) +;; (define-extern *medius-clan-members-4* object) +;; (define-extern *medius-clan-members-3* object) +;; (define-extern *medius-clan-members-2* object) +;; (define-extern *medius-clan-members-1* object) +;; (define-extern *medius-clan-members-0* object) +;; (define-extern *medius-incoming-clan-invites* array) +;; (define-extern *medius-clan-challenges* array) +;; (define-extern *medius-visible-clan-challenges* array) +;; (define-extern *medius-my-clan* medius-cached-info-clan) +;; (define-extern *medius-my-clan-members* object) +;; (define-extern *medius-enemy-clan* medius-cached-info-clan) +;; (define-extern *medius-enemy-clan-members* object) +;; (define-extern *medius-enemy-clan-id* object) +;; (define-extern *challenge-clans* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-medius-games-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype medius-cached-info-game-status (medius-cached-info) + ((game-status int32 :offset-assert 24) + ) + :method-count-assert 12 + :size-assert #x1c + :flag-assert #xc0000001c + ) +|# + +#| +(deftype medius-game-array (structure) + ((ct int32 :offset-assert 0) + (data UNKNOWN 64 :offset-assert 4) + ) + :method-count-assert 11 + :size-assert #x5404 + :flag-assert #xb00005404 + (:methods + (medius-game-array-method-9 () none) ;; 9 + (medius-game-array-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype medius-game-filter-settings (structure) + ((burn-version-and-flags int32 :offset-assert 0) + (event int8 :offset-assert 4) + (location int8 :offset-assert 5) + (world int32 :offset-assert 8) + (max-players int8 :offset-assert 12) + (class-type int8 :offset-assert 13) + ) + :method-count-assert 9 + :size-assert #xe + :flag-assert #x90000000e + ) +|# + +;; (define-extern *medius-game-status-cache* medius-cache) +;; (define-extern *medius-games* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-predict-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-predictor-simple-state (structure) + ((time int32 :offset-assert 0) + (pos vector :inline :offset-assert 16) + (vel vector :inline :offset-assert 32) + (rot quaternion :inline :offset-assert 48) + (angvel vector :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype net-predictor-simple (structure) + ((last-net net-predictor-simple-state :inline :offset-assert 0) + (extrapolated net-predictor-simple-state :inline :offset-assert 80) + (active net-predictor-simple-state :inline :offset-assert 160) + (vel-scale vector :inline :offset-assert 240) + (angvel-scale vector :inline :offset-assert 256) + (min-delay int32 :offset-assert 272) + (max-delay int32 :offset-assert 276) + (pos-err-thresh float :offset-assert 280) + (rot-err-thresh float :offset-assert 284) + (pos-track-factor float :offset-assert 288) + (vel-track-factor float :offset-assert 292) + (max-extrapolation int32 :offset-assert 296) + (error-snap float :offset-assert 300) + (flags uint8 :offset-assert 304) + ) + :method-count-assert 18 + :size-assert #x131 + :flag-assert #x1200000131 + (:methods + (net-predictor-simple-method-9 () none) ;; 9 + (net-predictor-simple-method-10 () none) ;; 10 + (net-predictor-simple-method-11 () none) ;; 11 + (net-predictor-simple-method-12 () none) ;; 12 + (net-predictor-simple-method-13 () none) ;; 13 + (net-predictor-simple-method-14 () none) ;; 14 + (net-predictor-simple-method-15 () none) ;; 15 + (net-predictor-simple-method-16 () none) ;; 16 + (net-predictor-simple-method-17 () none) ;; 17 + ) + ) +|# + +#| +(deftype net-predictor-sphcol (net-predictor-simple) + () + :method-count-assert 18 + :size-assert #x131 + :flag-assert #x1200000131 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rigid-body-surface-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rigid-body-surface (structure) + ((flags rigid-body-surface-flag :offset-assert 0) + (surface-type uint8 :offset-assert 1) + (friction float :offset-assert 4) + (bounce float :offset-assert 8) + (drag float :offset-assert 12) + (depth float :offset-assert 16) + (damage float :offset-assert 20) + (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) + ) + :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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-handling-info (structure) + ((brake-factor float :offset-assert 0) + (turbo-boost-factor float :offset-assert 4) + (turbo-boost-half-gain-speed float :offset-assert 8) + (tire-steering-angle float :offset-assert 12) + (tire-steering-speed-factor float :offset-assert 16) + (tire-steering-speed-bias float :offset-assert 20) + (ackermann-factor float :offset-assert 24) + (tire-static-friction float :offset-assert 28) + (tire-static-friction-speed meters :offset-assert 32) + (tire-dynamic-friction float :offset-assert 36) + (tire-dynamic-friction-speed meters :offset-assert 40) + (tire-arcade-factor float :offset-assert 44) + (drag-force-factor float :offset-assert 48) + (rolling-resistance float :offset-assert 52) + (downforce-factor float :offset-assert 56) + (roll-control-factor float :offset-assert 60) + (jump-thrust-factor float :offset-assert 64) + (buoyancy-factor float :offset-assert 68) + (water-drag-factor float :offset-assert 72) + (air-roll-torque float :offset-assert 76) + (air-pitch-torque float :offset-assert 80) + (air-angular-damping float :offset-assert 84) + (hop-turn-torque float :offset-assert 88) + (ground-torque-scale float :offset-assert 92) + (cos-ground-effect-angle float :offset-assert 96) + (ai-steering-factor float :offset-assert 100) + (ai-throttle-factor float :offset-assert 104) + ) + :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) + (drag float :offset-assert 8) + (idle-rpm float :offset-assert 12) + (clutch-min-rpm float :offset-assert 16) + (clutch-max-rpm float :offset-assert 20) + (min-rpm float :offset-assert 24) + (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) + ) + :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) + (downshift-rpm float :offset-assert 8) + (final-drive-ratio float :offset-assert 12) + (gear-ratio-array float 8 :offset-assert 16) ;; guessed by decompiler + (gear-count int8 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x31 + :flag-assert #x900000031 + ) +|# + +#| +(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 + (inertia float :offset-assert 28) + (radius float :offset-assert 32) + (susp-arm-length float :offset-assert 36) + (steer-arm-length float :offset-assert 40) + (scale float :offset-assert 44) + (travel float :offset-assert 48) + (probe-x-offset float :offset-assert 52) + (probe-y-offset float :offset-assert 56) + (suspension-spring float :offset-assert 60) + (suspension-damping float :offset-assert 64) + (forward-grip float :offset-assert 68) + (side-grip float :offset-assert 72) + (max-brake-torque float :offset-assert 76) + (camber float :offset-assert 80) + (x-scale float :offset-assert 84) + (probe-radius float :offset-assert 88) + (width float :offset-assert 92) + (settle-pos float :offset-assert 96) + ) + :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) + ) + :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) + (string-min-length meters :offset-assert 8) + (string-max-length meters :offset-assert 12) + (min-fov float :offset-assert 16) + (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) + ) + :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) + (min-speed float :offset-assert 8) + (max-speed float :offset-assert 12) + (pitch-offset float :offset-assert 16) + (pitch-scale float :offset-assert 20) + (min-pitch float :offset-assert 24) + (max-pitch float :offset-assert 28) + ) + :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) + (original-rpm float :offset-assert 8) + (min-rpm float :offset-assert 12) + (max-rpm float :offset-assert 16) + (pitch-scale float :offset-assert 20) + ) + :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 + (turbo-sound uint16 :offset-assert 4) ;; sound-name + (susp-creak-sound uint16 :offset-assert 6) ;; sound-name + (susp-bottom-out-sound uint16 :offset-assert 8) ;; sound-name + (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) + ) + :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) + (thruster-count int8 :offset-assert 2) + (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 + ) + :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) + (color rgbaf :inline :offset-assert 32) + (joint-local matrix :inline :offset-assert 48) + (min-angle float :offset-assert 112) + (max-angle float :offset-assert 116) + (inv-hit-points float :offset-assert 120) + (hit-points float :offset-assert 124) + (rattle-sound uint16 :offset-assert 128) + (impact-sound uint16 :offset-assert 130) + ) + :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) + (inv-hit-points float :offset-assert 8) + (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) + ) + :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) + (idle-settle-height float :offset-assert 8) + (idle-settle-rot-x float :offset-assert 12) + (shadow-bot-clip float :offset-assert 16) + (shadow-locus-dist float :offset-assert 20) + (look-select uint8 :offset-assert 24) + (rp-node-count int8 :offset-assert 25) + (color-option-count int8 :offset-assert 26) + (color-option-select int8 :offset-assert 27) + ) + :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) + (player-turn-anim-max float :offset-assert 8) + (pilot-x-accel-factor float :offset-assert 12) + (pilot-y-accel-factor float :offset-assert 16) + (pilot-z-accel-factor float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(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) + ) + :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) + ) + :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) + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +#| +(deftype vehicle-hardpoint-info (structure) + ((local-pos-array uint32 :offset-assert 0) + (flag-attach vector :inline :offset-assert 16) + (antenna-attach vector :inline :offset-assert 32) + (nodes UNKNOWN 7 :offset-assert 48) + (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) + ) + :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) + ) + :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) + (taillight-glow-template sprite-glow-data :offset-assert 40) + (thruster-glow-template sprite-glow-data :offset-assert 44) + (thrust-tex-id uint32 :offset-assert 72) + (dark-thrust-tex-id uint32 :offset-assert 76) + (rgb rgbaf :inline :offset-assert 128) + (lights vu-lights :offset-assert 144) + ) + :method-count-assert 10 + :size-assert #x9c + :flag-assert #xa0000009c + (:methods + (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) + ) + :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 + (engine vehicle-engine-info :inline :offset-assert 208) + (transmission vehicle-transmission-info :inline :offset-assert 264) + (handling vehicle-handling-info :inline :offset-assert 316) + (pilot vehicle-pilot-info :inline :offset-assert 424) + (camera vehicle-camera-info :inline :offset-assert 448) + (sound vehicle-sound-info :inline :offset-assert 544) + (particles vehicle-particle-info :inline :offset-assert 832) + (damage vehicle-damage-info :inline :offset-assert 1056) + (physics-model vehicle-physics-model-info :inline :offset-assert 2816) + (setup vehicle-setup-info :offset-assert 3028) + (rider vehicle-rider-info :inline :offset-assert 3040) + (daxter vehicle-daxter-info :offset-assert 3128) + (hardpoint vehicle-hardpoint-info :inline :offset-assert 3136) + (shield vehicle-shield-info :inline :offset-assert 3200) + (explosion vehicle-explosion-info :offset-assert 3236) ;; guessed by decompiler + (explosion-part int32 :offset-assert 3240) + (debris debris-static-params :offset-assert 3244) ;; guessed by decompiler + (name-text text-id :offset-assert 3248) ;; guessed by decompiler + (helmet-offset vector :offset-assert 3252) + (particle-common vehicle-particle-common-info :offset-assert 3256) + ) + :method-count-assert 11 + :size-assert #xcbc + :flag-assert #xb00000cbc + (:methods + (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) + (node-list basic :offset-assert 20) + (draw basic :offset-assert 24) + (car-info car-info-full :offset-assert 28) + (debris uint64 :offset-assert 32) + (damage float :offset-assert 40) + (angle float :offset-assert 44) + (d-angle float :offset-assert 48) + (node-index int8 :offset-assert 52) + (parent-node-index int8 :offset-assert 53) + (flags uint8 :offset-assert 54) + (car-part int8 :offset-assert 55) + ) + :method-count-assert 20 + :size-assert #x38 + :flag-assert #x1400000038 + (:methods + (vehicle-section-method-9 () none) ;; 9 + (vehicle-section-method-10 () none) ;; 10 + (vehicle-section-method-11 () none) ;; 11 + (vehicle-section-method-12 () none) ;; 12 + (vehicle-section-method-13 () none) ;; 13 + (vehicle-section-method-14 () none) ;; 14 + (vehicle-section-method-15 () none) ;; 15 + (vehicle-section-method-16 () none) ;; 16 + (vehicle-section-method-17 () none) ;; 17 + (vehicle-section-method-18 () none) ;; 18 + (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) + (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 + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype vehicle-particle (structure) + ((birth-accum UNKNOWN 2 :offset-assert 0) + (launcher basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(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) + ) + :method-count-assert 204 + :size-assert #x859 + :flag-assert #xcc07d00859 + ;; field vehicle-flag is likely a value type. + (:methods + (vehicle-method-89 () none) ;; 89 ;; (init-reverse (_type_ vehicle-controls) none) + (vehicle-method-90 () none) ;; 90 ;; (control-hook-ai (_type_ vehicle-controls) none) + (vehicle-method-91 () none) ;; 91 ;; (control-hook-player (_type_) none) + (vehicle-method-92 () none) ;; 92 ;; (vehicle-method-92 (_type_ vehicle-controls) none) + (vehicle-method-93 () none) ;; 93 ;; (vehicle-method-93 (_type_) none) + (vehicle-method-94 () none) ;; 94 ;; (vehicle-method-94 (_type_) none) + (vehicle-method-95 () none) ;; 95 ;; (vehicle-method-95 (_type_ vector float) none) + (vehicle-method-96 () none) ;; 96 ;; (vehicle-method-96 (_type_ float) none) + (vehicle-method-97 () none) ;; 97 ;; (vehicle-method-97 (_type_ float vehicle-physics-work) none) + (vehicle-method-98 () none) ;; 98 ;; (vehicle-method-98 (_type_) none) + (vehicle-method-99 () none) ;; 99 ;; (vehicle-method-99 (_type_) none) + (vehicle-method-100 () none) ;; 100 ;; (vehicle-method-100 (_type_) none) + (vehicle-method-101 () none) ;; 101 ;; (vehicle-method-101 (_type_) none) + (vehicle-method-102 () none) ;; 102 ;; (vehicle-method-102 (_type_) symbol) + (vehicle-method-103 () none) ;; 103 ;; (vehicle-method-103 (_type_) none) + (vehicle-method-104 () none) ;; 104 ;; (vehicle-method-104 (_type_) none) + (vehicle-method-105 () none) ;; 105 ;; (vehicle-method-105 (_type_) none) + (vehicle-method-106 () none) ;; 106 ;; (vehicle-method-106 (_type_) none) + (vehicle-method-107 () none) ;; 107 ;; (vehicle-method-107 (_type_ int process) none) + (vehicle-method-108 () none) ;; 108 ;; (vehicle-method-108 (_type_ int) none) + (vehicle-method-109 () none) ;; 109 ;; (vehicle-method-109 (_type_) none) + (vehicle-method-110 () none) ;; 110 ;; (vehicle-method-110 (_type_) none) + (vehicle-method-111 () none) ;; 111 ;; (get-linear-accel! (_type_ vector) none) + (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-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) + (vehicle-method-119 () none) ;; 119 ;; (vehicle-method-119 (_type_) none) + (vehicle-method-120 () none) ;; 120 ;; (apply-gravity (_type_ float) none) + (vehicle-method-121 () none) ;; 121 ;; (apply-gravity1 (_type_ float) none) + (vehicle-method-122 () none) ;; 122 ;; (vehicle-method-122 (_type_) none) + (vehicle-method-123 () none) ;; 123 ;; (vehicle-method-123 (_type_) none) + (vehicle-method-124 () none) ;; 124 ;; (vehicle-method-124 (_type_) none) + (vehicle-method-125 () none) ;; 125 ;; (vehicle-method-125 (_type_) none) + (vehicle-method-126 () none) ;; 126 ;; (vehicle-method-126 (_type_) none) + (vehicle-method-127 () none) ;; 127 ;; (check-player-get-on (_type_ process-focusable) symbol) + (vehicle-method-128 () none) ;; 128 ;; (vehicle-method-128 (_type_) symbol) + (vehicle-method-129 () none) ;; 129 ;; (vehicle-method-129 (_type_) none) + (vehicle-method-130 () none) ;; 130 ;; (vehicle-method-130 (_type_) none) + (vehicle-method-131 () none) ;; 131 ;; (vehicle-method-131 (_type_ traffic-object-spawn-params) none) + (vehicle-method-132 () none) ;; 132 ;; (vehicle-method-132 (_type_ traffic-object-spawn-params) none) + (vehicle-method-133 () none) ;; 133 ;; (vehicle-method-133 (_type_ traffic-object-spawn-params) none) + (vehicle-method-134 () none) ;; 134 ;; (vehicle-method-134 (_type_) none) + (vehicle-method-135 () none) ;; 135 ;; (vehicle-method-135 (_type_) none) + (vehicle-method-136 () none) ;; 136 ;; (vehicle-method-136 (_type_) none) + (vehicle-method-137 () none) ;; 137 ;; (vehicle-method-137 (_type_) none) + (vehicle-method-138 () none) ;; 138 ;; (vehicle-method-138 (_type_) none) + (vehicle-method-139 () none) ;; 139 ;; (vehicle-method-139 (_type_) none) + (vehicle-method-140 () none) ;; 140 ;; (vehicle-method-140 (_type_) none) + (vehicle-method-141 () none) ;; 141 ;; (vehicle-method-141 (_type_) symbol) + (vehicle-method-142 () none) ;; 142 ;; (vehicle-method-142 (_type_) none) + (vehicle-method-143 () none) ;; 143 ;; (vehicle-method-143 (_type_ process) object) + (vehicle-method-144 () none) ;; 144 ;; (vehicle-method-144 (_type_) none) + (vehicle-method-145 () none) ;; 145 ;; (vehicle-method-145 (_type_) none) + (vehicle-method-146 () none) ;; 146 ;; (vehicle-method-146 (_type_ vector) none) + (vehicle-method-147 () none) ;; 147 ;; (vehicle-method-147 (_type_) none) + (vehicle-method-148 () none) ;; 148 ;; (vehicle-method-148 (_type_) none) + (vehicle-method-149 () none) ;; 149 ;; (vehicle-method-149 (_type_) none) + (vehicle-method-150 () none) ;; 150 ;; (vehicle-method-150 (_type_) none) + (vehicle-method-151 () none) ;; 151 ;; (set-hit-points (_type_ float) none) + (vehicle-method-152 () none) ;; 152 + (vehicle-method-153 () none) ;; 153 + (vehicle-method-154 () none) ;; 154 + (vehicle-method-155 () none) ;; 155 + (vehicle-method-156 () none) ;; 156 + (vehicle-method-157 () none) ;; 157 + (vehicle-method-158 () none) ;; 158 + (vehicle-method-159 () none) ;; 159 + (vehicle-method-160 () none) ;; 160 + (vehicle-method-161 () none) ;; 161 + (vehicle-method-162 () none) ;; 162 + (vehicle-method-163 () none) ;; 163 + (vehicle-method-164 () none) ;; 164 + (vehicle-method-165 () none) ;; 165 + (vehicle-method-166 () none) ;; 166 + (vehicle-method-167 () none) ;; 167 + (vehicle-method-168 () none) ;; 168 + (vehicle-method-169 () none) ;; 169 + (vehicle-method-170 () none) ;; 170 + (vehicle-method-171 () none) ;; 171 + (vehicle-method-172 () none) ;; 172 + (vehicle-method-173 () none) ;; 173 + (vehicle-method-174 () none) ;; 174 + (vehicle-method-175 () none) ;; 175 + (vehicle-method-176 () none) ;; 176 + (vehicle-method-177 () none) ;; 177 + (vehicle-method-178 () none) ;; 178 + (vehicle-method-179 () none) ;; 179 + (vehicle-method-180 () none) ;; 180 + (vehicle-method-181 () none) ;; 181 + (vehicle-method-182 () none) ;; 182 + (vehicle-method-183 () none) ;; 183 + (vehicle-method-184 () none) ;; 184 + (vehicle-method-185 () none) ;; 185 + (vehicle-method-186 () none) ;; 186 + (vehicle-method-187 () none) ;; 187 + (vehicle-method-188 () none) ;; 188 + (vehicle-method-189 () none) ;; 189 + (vehicle-method-190 () none) ;; 190 + (vehicle-method-191 () none) ;; 191 + (vehicle-method-192 () none) ;; 192 + (vehicle-method-193 () none) ;; 193 + (vehicle-method-194 () none) ;; 194 + (vehicle-method-195 () none) ;; 195 + (vehicle-method-196 () none) ;; 196 + (vehicle-method-197 () none) ;; 197 + (vehicle-method-198 () none) ;; 198 + (vehicle-method-199 () none) ;; 199 + (vehicle-method-200 () none) ;; 200 + (vehicle-method-201 () none) ;; 201 + (vehicle-method-202 () none) ;; 202 + (vehicle-method-203 () none) ;; 203 + ) + ) +|# + +#| +(deftype vehicle-draw-thruster-params (structure) + ((quat quaternion :inline :offset-assert 0) + (trans vector :inline :offset-assert 16) + (thrust-rgb rgbaf :inline :offset-assert 32) + (glow-rgb rgbaf :inline :offset-assert 48) + (tex-id uint32 :offset-assert 64) + (thrust float :offset-assert 68) + (width float :offset-assert 72) + (length float :offset-assert 76) + (fog-fade float :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x54 + :flag-assert #x900000054 + ) +|# + +;; (deftype debug-vehicle-work (basic) +;; () +;; :flag-assert #x900000080 +;; ) + +;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; race-ai-tuning-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype race-ai-tuning-entry (structure) + ((player-ahead-distance float :offset-assert 0) + (ahead-speed-delta float :offset-assert 4) + (behind-speed-delta float :offset-assert 8) + ) + :method-count-assert 9 + :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) + (exhibition-rookie float :offset-assert 8) + (exhibition-pro float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype race-ai-tuning-info (structure) + ((tuning-entry UNKNOWN 6 :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) + ) + :method-count-assert 9 + :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) + ) + :method-count-assert 9 + :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) + (ahead-position vector :inline :offset-assert 32) + (ahead-direction vector :inline :offset-assert 48) + (direction vector :inline :offset-assert 64) + (angle-sum-distance float :offset-assert 80) + (look-ahead-distance float :offset-assert 84) + (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) + ) + :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) + (length float :offset-assert 32) + (flags uint16 :offset-assert 36) + (points-per-slice int16 :offset-assert 38) + (point-count int16 :offset-assert 40) + (gap-index-count int16 :offset-assert 42) + (slice-count int16 :offset-assert 44) + (extra-points int16 :offset-assert 46) + (points uint32 :offset-assert 48) + (gap-indices uint32 :offset-assert 52) + (slices uint32 :offset-assert 56) + (pad uint32 :offset-assert 60) + ) + :method-count-assert 15 + :size-assert #x40 + :flag-assert #xf00000040 + (:methods + (race-line-method-9 () none) ;; 9 + (race-line-method-10 () none) ;; 10 + (race-line-method-11 () none) ;; 11 + (race-line-method-12 () none) ;; 12 + (race-line-method-13 () none) ;; 13 + (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) + (last-race-mesh-position vector :inline :offset-assert 32) + (racer uint64 :offset-assert 48) ;; handle + (lap-distance float :offset-assert 56) + (lap float :offset-assert 60) + (prev-racer-lap float :offset-assert 64) + (next-racer-lap float :offset-assert 68) + (end-of-race-dist float :offset-assert 72) + (max-speed float :offset-assert 76) + (last-race-line race-line :offset-assert 80) + (last-slice int16 :offset-assert 84) + (flags uint16 :offset-assert 86) ;; racer-state-flags + (rank int8 :offset-assert 88) + (ai-rank int8 :offset-assert 89) + (lap-count int8 :offset-assert 90) + (lap-quadrant int8 :offset-assert 91) + ) + :method-count-assert 12 + :size-assert #x5c + :flag-assert #xc0000005c + (:methods + (racer-state-method-9 () none) ;; 9 ;; (update-lap-distance (_type_ race-state) none) + (racer-state-method-10 () none) ;; 10 ;; (begin-lap (_type_ race-state) none) + (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) + (finish-sphere sphere :inline :offset-assert 32) + (finish-dir vector :inline :offset-assert 48) + (race-state uint8 :offset-assert 64) + (racer-count int8 :offset-assert 65) + (lap-count int8 :offset-assert 66) + (start-time int32 :offset-assert 68) + (min-player-lap float :offset-assert 72) + (max-player-lap float :offset-assert 76) + (ai-tuning-indices basic :offset-assert 80) + (first-place-human-id int32 :offset-assert 84) + (rubberband-ref-lap float :offset-assert 88) + (mesh basic :offset-assert 92) + (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 + ) + :method-count-assert 12 + :size-assert #x430 + :flag-assert #xc00000430 + (:methods + (race-state-method-9 () none) ;; 9 ;; (init-racers! (_type_ process-drawable int) none) + (race-state-method-10 () none) ;; 10 ;; (begin-race (_type_) none) + (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 + ) + :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) + (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 + (lap-dist float :offset-assert 112) + (slice-id int16 :offset-assert 116) + ) + :method-count-assert 9 + :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) + ) + :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) + ) + :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) + (pad uint8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype race-mesh-hash (structure) + ((cells-wide int8 :offset-assert 0) + (cells-tall int8 :offset-assert 1) + (cell-length float :offset-assert 4) + (cells (inline-array race-mesh-hash-cell) :offset-assert 8) ;; guessed by decompiler + (slice-table (inline-array race-mesh-slice) :offset-assert 12) ;; guessed by decompiler + (origin vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype race-mesh (basic) + ((version uint8 :offset-assert 4) + (flags uint8 :offset-assert 5) ;; race-mesh-flag + (slice-count int16 :offset-assert 6) + (edge-count int16 :offset-assert 8) + (race-line-count int16 :offset-assert 10) + (ai-valid-mask int16 :offset-assert 12) + (pad uint8 2 :offset-assert 14) ;; guessed by decompiler + (slices (inline-array race-mesh-slice) :offset-assert 16) ;; guessed by decompiler + (edges (inline-array race-mesh-edge) :offset-assert 20) ;; guessed by decompiler + (hash race-mesh-hash :offset-assert 24) + (race-lines uint32 :offset-assert 28) + ) + :method-count-assert 21 + :size-assert #x20 + :flag-assert #x1500000020 + (:methods + (race-mesh-method-9 () none) ;; 9 ;; (debug-draw-path (_type_ int int rgba rgba) none) + (race-mesh-method-10 () none) ;; 10 ;; (debug-draw-path-from-history (_type_ int int) symbol) + (race-mesh-method-11 () none) ;; 11 ;; (debug-draw-slice (_type_ int) none) + (race-mesh-method-12 () none) ;; 12 ;; (debug-draw-edges (_type_) none) + (race-mesh-method-13 () none) ;; 13 ;; (race-mesh-method-13 (_type_ race-mesh-slice-query) none) + (race-mesh-method-14 () none) ;; 14 ;; (race-mesh-method-14 (_type_ race-mesh-slice-query) none) + (race-mesh-method-15 () none) ;; 15 ;; (race-mesh-method-15 (_type_ int race-mesh-slice-query) none) + (race-mesh-method-16 () none) ;; 16 ;; (race-mesh-method-16 (_type_ race-mesh-slice-query) none) + (race-mesh-method-17 () none) ;; 17 ;; (race-mesh-method-17 (_type_ race-mesh-slice-query) symbol) + (race-mesh-method-18 () none) ;; 18 ;; (race-mesh-method-18 (_type_ race-mesh-hash-search int int race-mesh-slice-query) none) + (race-mesh-method-19 () none) ;; 19 ;; (race-mesh-method-19 (_type_ int race-mesh-slice-query) symbol) + (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) + ) + :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) + ) + ) +|# + +;; (define-extern output-race-mesh function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-weapons-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-weapon-slot (process-drawable) + ((owning-vehicle uint64 :offset-assert 248) + (ammunition int8 :offset-assert 256) + (flags uint8 :offset-assert 257) + (in-slot uint8 :offset-assert 258) + (powerup-level uint8 :offset-assert 259) + (my-type uint8 :offset-assert 260) + ) + :method-count-assert 60 + :size-assert #x105 + :flag-assert #x3c00800105 + (:methods + (vehicle-weapon-slot-method-51 () none) ;; 51 + (vehicle-weapon-slot-method-52 () none) ;; 52 + (vehicle-weapon-slot-method-53 () none) ;; 53 + (vehicle-weapon-slot-method-54 () none) ;; 54 + (vehicle-weapon-slot-method-55 () none) ;; 55 + (vehicle-weapon-slot-method-56 () none) ;; 56 + (vehicle-weapon-slot-method-57 () none) ;; 57 + (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) + ) + :method-count-assert 54 + :size-assert #x101 + :flag-assert #x3600800101 + (:methods + (gunmount-drawable-method-50 () none) ;; 50 + (gunmount-drawable-method-51 () none) ;; 51 + (gunmount-drawable-method-52 () none) ;; 52 + (gunmount-drawable-method-53 () none) ;; 53 + ) + ) +|# + +#| +(deftype gunmount-generic-drawable (gunmount-drawable) + ((config uint8 :offset-assert 257) + (flash uint64 :offset-assert 264) + (changeover-anim int32 :offset-assert 272) + (powerup-level int8 :offset-assert 276) + ) + :method-count-assert 56 + :size-assert #x115 + :flag-assert #x3800900115 + (:methods + (gunmount-generic-drawable-method-54 () none) ;; 54 + (gunmount-generic-drawable-method-55 () none) ;; 55 + ) + ) +|# + +#| +(deftype warning-hud-icon (basic) + ((hsprite hud-sprite :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype rapid-fire-params (structure) + ((rof uint16 :offset-assert 0) + (shot-radius float :offset-assert 4) + (shot-range float :offset-assert 8) + (beam-effect uint16 :offset-assert 12) + (impact-callback basic :offset-assert 16) + (impact-callback-params basic :offset-assert 20) + (shot-sound uint16 :offset-assert 24) + (hit-sound uint16 :offset-assert 26) + (wpn-type uint8 :offset-assert 28) + (wpn-powerup-level int8 :offset-assert 29) + ) + :method-count-assert 9 + :size-assert #x1e + :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) + (shot-clock uint16 :offset-assert 20) + (next-shot-from int8 :offset-assert 22) + (hit-spang-part basic :offset-assert 24) + (old-origin vector :inline :offset-assert 32) + (old-rot quaternion :inline :offset-assert 48) + (emitters basic :offset-assert 64) + ) + :method-count-assert 13 + :size-assert #x44 + :flag-assert #xd00000044 + (:methods + (rapid-fire-control-method-9 () none) ;; 9 + (rapid-fire-control-method-10 () none) ;; 10 + (rapid-fire-control-method-11 () none) ;; 11 + (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) + (group-part-id uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype vehicle-weapon-drone (process-focusable) + ((owning-vehicle uint64 :offset-assert 256) + (owning-slot uint64 :offset-assert 264) + (target uint64 :offset-assert 272) + (orbit-height float :offset-assert 280) + (orbit-radius float :offset-assert 284) + (orbit-period uint32 :offset-assert 288) + (orbit-phase uint32 :offset-assert 292) + (scaled-last-frame basic :offset-assert 296) + (ammunition uint32 :offset-assert 300) + (next-gaze quaternion :inline :offset-assert 304) + (next-gaze-time uint64 :offset-assert 320) + (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) + (next-target-poll uint64 :offset-assert 376) + (firecontrol basic :offset-assert 384) + (blam uint32 :offset-assert 388) + ) + :method-count-assert 67 + :size-assert #x188 + :flag-assert #x4301000188 + (:methods + (vehicle-weapon-drone-method-59 () none) ;; 59 + (vehicle-weapon-drone-method-60 () none) ;; 60 + (vehicle-weapon-drone-method-61 () none) ;; 61 + (vehicle-weapon-drone-method-62 () none) ;; 62 + (vehicle-weapon-drone-method-63 () none) ;; 63 + (vehicle-weapon-drone-method-64 () none) ;; 64 + (vehicle-weapon-drone-method-65 () none) ;; 65 + (vehicle-weapon-drone-method-66 () none) ;; 66 + ) + ) +|# + +#| +(deftype v-wpn-ptable-entry (structure) + ((chance uint16 :offset-assert 0) + (weapon-type uint8 :offset-assert 2) + (pad1 uint8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype v-wpn-ptable (structure) + ((entries-count int8 :offset-assert 0) + (total-chance uint16 :offset-assert 2) + (entries-array uint32 :offset-assert 4) + ) + :method-count-assert 9 + :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) + (base-behind v-wpn-ptable :offset-assert 8) + (last-lap-behind v-wpn-ptable :offset-assert 12) + (behind-threshold float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +;; v-wpn-net-info is already defined! + +;; (define-extern V_R_MINE1_ARMED? object) +;; (define-extern weapon-mask->type function) +;; (define-extern *weapon-suppression-table* object) +;; (define-extern v-wpn-base-common-trans function) +;; (define-extern v-wpn-event-base function) +;; (define-extern *cheat-defaultgun-in-race* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wvehicle-sound-loop-state (structure) + ((id sound-id :offset-assert 0) ;; guessed by decompiler + (vol float :offset-assert 4) + (pitch float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype vehicle-wheel-state (structure) + ((info vehicle-wheel-info :offset-assert 0) + (flags uint8 :offset-assert 4) + (prev-flags uint8 :offset-assert 5) + (handle uint64 :offset-assert 8) ;; handle + (probe-local-pos vector :inline :offset-assert 16) + (probe-local-dir vector :inline :offset-assert 32) + (local-axis vector :inline :offset-assert 48) + (surface-pos vector :inline :offset-assert 64) + (ground-pos vector :inline :offset-assert 80) + (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 + (surface rigid-body-surface :offset-assert 176) ;; vehicle-wheel-surface + (pos float :offset-assert 180) + (pos2 float :offset-assert 184) + (inertia float :offset-assert 188) + (steer-angle float :offset-assert 192) + (angle float :offset-assert 196) + (rev float :offset-assert 200) + (x-scale float :offset-assert 204) + (torque float :offset-assert 208) + (braking-torque float :offset-assert 212) + (up-force float :offset-assert 216) + (drive-diff float :offset-assert 220) + (side-vel float :offset-assert 224) + (up-vel float :offset-assert 228) + (forward-vel float :offset-assert 232) + (forward-slip-vel float :offset-assert 236) + (friction-coef float :offset-assert 240) + (sink-depth float :offset-assert 244) + (sin-susp-ang float :offset-assert 248) + (cos-susp-ang float :offset-assert 252) + (part-birth-accum sparticle-launch-control 4 :offset-assert 256) ;; guessed by decompiler + (tread-time uint32 :offset-assert 272) + (tread-tracker uint64 :offset-assert 280) ;; handle + ) + :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) + ) + :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) + (velocity vector :inline :offset-assert 32) + (nav-location nav-location :inline :offset-assert 48) + (handle uint64 :offset-assert 56) + ) + :method-count-assert 9 + :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) + (current-travel vector :inline :offset-assert 80) + (previous-steering-error float :offset-assert 96) + (no-physics-speed float :offset-assert 100) + (blocked-timer float :offset-assert 104) + (reverse-timer float :offset-assert 108) + (flags uint32 :offset-assert 112) + (desired-speed float :offset-assert 116) + (weapon-timer uint64 :offset-assert 120) + (weapon-aggression float :offset-assert 128) + (mode uint8 :offset-assert 132) + ) + :method-count-assert 9 + :size-assert #x85 + :flag-assert #x900000085 + ) +|# + +#| +(deftype wvehicle-engine-loop-state (structure) + ((id uint32 :offset-assert 0) + (index int8 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x5 + :flag-assert #x900000005 + ) +|# + +#| +(deftype wvehicle-engine-mix-state (structure) + ((loops UNKNOWN 2 :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) + (next-start vector :inline :offset-assert 32) + (next-end vector :inline :offset-assert 48) + (next-recomp-time uint64 :offset-assert 64) + ) + :method-count-assert 9 + :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) + ) + :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) + (fire-tracker uint64 :offset-assert 2160) + (race race-control :inline :offset-assert 2168) + (ai wvehicle-ai-state :inline :offset-assert 2192) + (engine-rev float :offset-assert 2328) + (engine-inertia float :offset-assert 2332) + (engine-torque float :offset-assert 2336) + (engine-max-torque float :offset-assert 2340) + (engine-rpm float :offset-assert 2344) + (engine-load float :offset-assert 2348) + (sound-engine-rpm float :offset-assert 2352) + (sound-engine-load float :offset-assert 2356) + (sound-engine-envelope float :offset-assert 2360) + (wheel-rev float :offset-assert 2364) + (wheel-inertia float :offset-assert 2368) + (wheel-torque float :offset-assert 2372) + (wheel-braking-torque float :offset-assert 2376) + (wheel-ground-torque float :offset-assert 2380) + (clutch-grab float :offset-assert 2384) + (gear-ratio float :offset-assert 2388) + (final-drive-ratio float :offset-assert 2392) + (total-gear-ratio float :offset-assert 2396) + (inv-total-gear-ratio float :offset-assert 2400) + (avg-drive-wheel-radius float :offset-assert 2404) + (drive-wheel-inertia float :offset-assert 2408) + (clutch-inertia float :offset-assert 2412) + (idle-throttle float :offset-assert 2416) + (wheelbase float :offset-assert 2420) + (f-track-width float :offset-assert 2424) + (r-track-width float :offset-assert 2428) + (susp-spring-control float :offset-assert 2432) + (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-ready float :offset-assert 2448) + (slide-factor float :offset-assert 2452) + (slide-time uint32 :offset-assert 2456) + (max-speed float :offset-assert 2460) + (shift-state uint8 :offset-assert 2464) + (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 + (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) + (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) + (oil-sound-id uint32 :offset-assert 3868) + (turbo-sound-id sound-id :offset-assert 3872) ;; guessed by decompiler + (turbo-sound2-id uint32 :offset-assert 3876) + (car-fire-loop uint32 :offset-assert 3880) + (hang-time-sound-id uint32 :offset-assert 3884) + (overturned-time uint32 :offset-assert 3888) + (engine-steady-time uint32 :offset-assert 3892) + (splash-time uint32 :offset-assert 3896) + (knobby-time uint32 :offset-assert 3900) + (susp-creak-time uint32 :offset-assert 3904) + (ground-time uint32 :offset-assert 3908) + (jump-time uint32 :offset-assert 3912) + (no-slide-time uint32 :offset-assert 3916) + (slide-distance float :offset-assert 3920) + (power-slide-hud uint64 :offset-assert 3928) + (hang-time-hud uint64 :offset-assert 3936) + (hang-time float :offset-assert 3944) + (next-slide-sound-play-distance float :offset-assert 3948) + (attached-array handle 16 :offset-assert 3952) ;; guessed by decompiler + (eng-pitch-offset float :offset-assert 4080) + (eng-pitch-variance float :offset-assert 4084) + (eng-pitch-variance-seek float :offset-assert 4088) + (eng-vol-variance float :offset-assert 4092) + (eng-vol-variance-seek float :offset-assert 4096) + (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) + (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) + (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) + (hack-armed-right basic :offset-assert 4640) + (hack-armed-left basic :offset-assert 4644) + (shake-amount float :offset-assert 4648) + (whoosh-sound-id uint32 :offset-assert 4652) + (sink-sound-id uint32 :offset-assert 4656) + ) + :method-count-assert 272 + :size-assert #x1234 + :flag-assert #x11011b01234 + (:methods + (wvehicle-method-204 () none) ;; 204 + (wvehicle-method-205 () none) ;; 205 + (wvehicle-method-206 () none) ;; 206 + (wvehicle-method-207 () none) ;; 207 + (wvehicle-method-208 () none) ;; 208 + (wvehicle-method-209 () none) ;; 209 + (wvehicle-method-210 () none) ;; 210 + (wvehicle-method-211 () none) ;; 211 + (wvehicle-method-212 () none) ;; 212 + (wvehicle-method-213 () none) ;; 213 + (wvehicle-method-214 () none) ;; 214 + (wvehicle-method-215 () none) ;; 215 + (wvehicle-method-216 () none) ;; 216 + (wvehicle-method-217 () none) ;; 217 + (wvehicle-method-218 () none) ;; 218 + (wvehicle-method-219 () none) ;; 219 + (wvehicle-method-220 () none) ;; 220 + (wvehicle-method-221 () none) ;; 221 + (wvehicle-method-222 () none) ;; 222 + (wvehicle-method-223 () none) ;; 223 + (wvehicle-method-224 () none) ;; 224 + (wvehicle-method-225 () none) ;; 225 + (wvehicle-method-226 () none) ;; 226 + (wvehicle-method-227 () none) ;; 227 + (wvehicle-method-228 () none) ;; 228 + (wvehicle-method-229 () none) ;; 229 + (wvehicle-method-230 () none) ;; 230 + (wvehicle-method-231 () none) ;; 231 + (wvehicle-method-232 () none) ;; 232 + (wvehicle-method-233 () none) ;; 233 + (wvehicle-method-234 () none) ;; 234 + (wvehicle-method-235 () none) ;; 235 + (wvehicle-method-236 () none) ;; 236 + (wvehicle-method-237 () none) ;; 237 + (wvehicle-method-238 () none) ;; 238 + (wvehicle-method-239 () none) ;; 239 + (wvehicle-method-240 () none) ;; 240 + (wvehicle-method-241 () none) ;; 241 + (wvehicle-method-242 () none) ;; 242 + (wvehicle-method-243 () none) ;; 243 + (wvehicle-method-244 () none) ;; 244 + (wvehicle-method-245 () none) ;; 245 + (wvehicle-method-246 () none) ;; 246 + (wvehicle-method-247 () none) ;; 247 + (wvehicle-method-248 () none) ;; 248 + (wvehicle-method-249 () none) ;; 249 + (wvehicle-method-250 () none) ;; 250 + (wvehicle-method-251 () none) ;; 251 + (wvehicle-method-252 () none) ;; 252 + (wvehicle-method-253 () none) ;; 253 + (wvehicle-method-254 () none) ;; 254 + (wvehicle-method-255 () none) ;; 255 + (wvehicle-method-256 () none) ;; 256 + (wvehicle-method-257 () none) ;; 257 + (wvehicle-method-258 () none) ;; 258 + (wvehicle-method-259 () none) ;; 259 + (wvehicle-method-260 () none) ;; 260 + (wvehicle-method-261 () none) ;; 261 + (wvehicle-method-262 () none) ;; 262 + (wvehicle-method-263 () none) ;; 263 + (wvehicle-method-264 () none) ;; 264 + (wvehicle-method-265 () none) ;; 265 + (wvehicle-method-266 () none) ;; 266 + (wvehicle-method-267 () none) ;; 267 + (wvehicle-method-268 () none) ;; 268 + (wvehicle-method-269 () none) ;; 269 + (wvehicle-method-270 () none) ;; 270 + (wvehicle-method-271 () none) ;; 271 + ) + ) +|# + +#| +(deftype vehicle-antenna-init-params (structure) + ((pos vector :inline :offset-assert 0) + (tilt float :offset-assert 16) + (vehicle basic :offset-assert 20) + (skel basic :offset-assert 24) + (level basic :offset-assert 28) + ) + :method-count-assert 9 + :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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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. + ) + :method-count-assert 11 + :size-assert #x38 + :flag-assert #xb00000038 + (:methods + (net-player-respawn-info-method-9 () none) ;; 9 + (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) + (score int32 :offset-assert 236) + (player-num int8 :offset-assert 240) + (team uint8 :offset-assert 241) + (color uint32 :offset-assert 244) + (font-color uint8 :offset-assert 248) + (multiplier int8 :offset-assert 249) + (death-indicator-1 uint64 :offset-assert 256) + (death-indicator-2 uint64 :offset-assert 264) + (wpn-left-type uint8 :offset-assert 272) + (wpn-right-type uint8 :offset-assert 273) + (wpn-left-ammo uint8 :offset-assert 274) + (wpn-right-ammo uint8 :offset-assert 275) + (turbo-qty uint8 :offset-assert 276) + (dark-eco uint8 :offset-assert 277) + (health uint8 :offset-assert 278) + (last-weapon-provision float :offset-assert 280) + (top-speed float :offset-assert 284) + (player-id int8 :offset-assert 288) + (flags uint8 :offset-assert 289) + (rank int8 :offset-assert 290) + (human-rank int8 :offset-assert 291) + (next-spawn-time uint64 :offset-assert 296) + (state-time uint64 :offset-assert 304) + (vehicle-impact-callback basic :offset-assert 312) + (spawn-count int32 :offset-assert 316) + (speech-id uint8 :offset-assert 320) + (last-speech-time uint64 :offset-assert 328) + (best-power-slide float :offset-assert 336) + (best-hang-time int32 :offset-assert 340) + (display-score int32 :offset-assert 344) + (kills int32 :offset-assert 348) + (deaths int32 :offset-assert 352) + (last-spawn-time uint64 :offset-assert 360) + (dead-camera-pos-valid basic :offset-assert 368) + (dead-camera-pos vector :inline :offset-assert 384) + ) + :method-count-assert 98 + :size-assert #x190 + :flag-assert #x6201000190 + (:methods + (net-player-method-42 () none) ;; 42 + (net-player-method-43 () none) ;; 43 + (net-player-method-44 () none) ;; 44 + (net-player-method-45 () none) ;; 45 + (net-player-method-46 () none) ;; 46 + (net-player-method-47 () none) ;; 47 + (net-player-method-48 () none) ;; 48 + (net-player-method-49 () none) ;; 49 + (net-player-method-50 () none) ;; 50 + (net-player-method-51 () none) ;; 51 + (net-player-method-52 () none) ;; 52 + (net-player-method-53 () none) ;; 53 + (net-player-method-54 () none) ;; 54 + (net-player-method-55 () none) ;; 55 + (net-player-method-56 () none) ;; 56 + (net-player-method-57 () none) ;; 57 + (net-player-method-58 () none) ;; 58 + (net-player-method-59 () none) ;; 59 + (net-player-method-60 () none) ;; 60 + (net-player-method-61 () none) ;; 61 + (net-player-method-62 () none) ;; 62 + (net-player-method-63 () none) ;; 63 + (net-player-method-64 () none) ;; 64 + (net-player-method-65 () none) ;; 65 + (net-player-method-66 () none) ;; 66 + (net-player-method-67 () none) ;; 67 + (net-player-method-68 () none) ;; 68 + (net-player-method-69 () none) ;; 69 + (net-player-method-70 () none) ;; 70 + (net-player-method-71 () none) ;; 71 + (net-player-method-72 () none) ;; 72 + (net-player-method-73 () none) ;; 73 + (net-player-method-74 () none) ;; 74 + (net-player-method-75 () none) ;; 75 + (net-player-method-76 () none) ;; 76 + (net-player-method-77 () none) ;; 77 + (net-player-method-78 () none) ;; 78 + (net-player-method-79 () none) ;; 79 + (net-player-method-80 () none) ;; 80 + (net-player-method-81 () none) ;; 81 + (net-player-method-82 () none) ;; 82 + (net-player-method-83 () none) ;; 83 + (net-player-method-84 () none) ;; 84 + (net-player-method-85 () none) ;; 85 + (net-player-method-86 () none) ;; 86 + (net-player-method-87 () none) ;; 87 + (net-player-method-88 () none) ;; 88 + (net-player-method-89 () none) ;; 89 + (net-player-method-90 () none) ;; 90 + (net-player-method-91 () none) ;; 91 + (net-player-method-92 () none) ;; 92 + (net-player-method-93 () none) ;; 93 + (net-player-method-94 () none) ;; 94 + (net-player-method-95 () none) ;; 95 + (net-player-method-96 () none) ;; 96 + (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-world-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-load-parts (uint64) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :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 uint64 :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) + ) + :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 UNKNOWN 6 :offset-assert 8) + (laps UNKNOWN 6 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x1a + :flag-assert #x90000001a + ) +|# + +#| +(deftype net-world-state (structure) + ((players UNKNOWN 24 :offset-assert 0) + (assigned-drivers UNKNOWN 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 UNKNOWN 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 UNKNOWN 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 UNKNOWN 24 :offset-assert 1116) + (vehicle-slot-to-player-map UNKNOWN 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 + ) + ) +|# + +#| +(deftype net-player-name (structure) + ((name UNKNOWN 32 :offset-assert 0) + (format-name UNKNOWN 64 :offset-assert 32) + ) + :method-count-assert 10 + :size-assert #x60 + :flag-assert #xa00000060 + (:methods + (net-player-name-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype prebuilt-ai-vehicle (structure) + ((levname basic :offset-assert 0) + (v-type uint8 :offset-assert 4) + (load-parts uint64 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype net-vehicle (structure) + ((id uint32 :offset-assert 0) + (name basic :offset-assert 4) + (levname basic :offset-assert 8) + (vt uint8 :offset-assert 12) + (ct int8 :offset-assert 13) + (tex-name basic :offset-assert 16) + (sound-bank basic :offset-assert 20) + (index int8 :offset-assert 24) + (cup-mask uint32 :offset-assert 28) + (id-variant uint32 :offset-assert 32) + (ai-levels basic :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype net-driver (structure) + ((id uint32 :offset-assert 0) + (levname basic :offset-assert 4) + (dt uint8 :offset-assert 8) + (tex-name basic :offset-assert 12) + (picture-part1 uint32 :offset-assert 16) + (picture-part2 uint32 :offset-assert 20) + (icon-part1 uint32 :offset-assert 24) + (icon-part2 uint32 :offset-assert 28) + (base-color uint32 :offset-assert 32) + (stripe-color uint32 :offset-assert 36) + (ai-car-levels basic :offset-assert 40) + (driver-name basic :offset-assert 44) + (sex int8 :offset-assert 48) + (height int8 :offset-assert 49) + (weight int16 :offset-assert 50) + (eyes basic :offset-assert 52) + (age int8 :offset-assert 56) + (helmet-scale float :offset-assert 60) + (no-ai basic :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype race-end-cam (process) + ((name basic :offset-assert 0) + (mask process-mask :offset-assert 4) + (clock basic :offset-assert 8) + (view basic :offset-assert 12) + (parent uint32 :offset-assert 16) + (brother uint32 :offset-assert 20) + (child uint32 :offset-assert 24) + (ppointer uint32 :offset-assert 28) + (self basic :offset-assert 32) + (profile-ticks uint32 :offset-assert 36) + (pool basic :offset-assert 40) + (status basic :offset-assert 44) + (pid int32 :offset-assert 48) + (main-thread basic :offset-assert 52) + (top-thread basic :offset-assert 56) + (entity basic :offset-assert 60) + (level basic :offset-assert 64) + (state basic :offset-assert 68) + (prev-state basic :offset-assert 72) + (next-state basic :offset-assert 76) + (state-stack basic :offset-assert 80) + (trans-hook basic :offset-assert 84) + (post-hook basic :offset-assert 88) + (event-hook basic :offset-assert 92) + (allocated-length int32 :offset-assert 96) + (heap-base uint32 :offset-assert 108) + (heap-top uint32 :offset-assert 112) + (heap-cur uint32 :offset-assert 116) + (stack-frame-top basic :offset-assert 120) + (heap kheap :inline :offset-assert 108) + (connection-list connectable :inline :offset-assert 124) + (stack UNKNOWN :dynamic :offset-assert 140) + ) + :method-count-assert 15 + :size-assert #x90 + :flag-assert #xf00000090 + (:methods + (race-end-cam-method-9 () none) ;; 9 + (race-end-cam-method-10 () none) ;; 10 + (race-end-cam-method-11 () none) ;; 11 + (race-end-cam-method-12 () none) ;; 12 + (race-end-cam-method-13 () none) ;; 13 + (race-end-cam-method-14 () none) ;; 14 + ) + ) +|# + +;; (define-extern *ghost-info-ptr* object) +;; (define-extern net-play-mode-race? function) +;; (define-extern get-task-node-id-from-location-and-event function) +;; (define-extern *default-vehicle-load-parts* object) +;; (define-extern encode-green-room-stats function) +;; (define-extern decode-green-room-stats function) +;; (define-extern encode-net-world-state function) +;; (define-extern decode-net-world-state function) +;; (define-extern net-world-init-remote function) +;; (define-extern *msg-map-net-world* array) +;; (define-extern *net-process-class-info-net-world* object) +;; (define-extern *net-world* object) +;; (define-extern *net-player-names* object) +;; (define-extern *prebuilt-ai-vehicles* array) +;; (define-extern *net-vehicles* array) +;; (define-extern find-vehicle-info function) +;; (define-extern find-prebuilt-ai-vehicle function) +;; (define-extern *net-drivers* array) +;; (define-extern get-vehicle-name function) +;; (define-extern *protect-vehicle-slot-1* object) +;; (define-extern protect-vehicle-slot-1 function) +;; (define-extern *in-end-of-race-preload* object) +;; (define-extern *race-end-camera-pos-valid* object) +;; (define-extern *race-end-camera-pos* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-logging-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-log-event-header (structure) + ((length uint16 :offset-assert 0) + (type uint8 :offset-assert 2) + (pad int8 :offset-assert 3) + (time int32 :offset-assert 4) + (id int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; (define-extern *net-log-tmp-header* object) +;; (define-extern *comment-string* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-powerup-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-powerup-motion-info (basic) + ((motion-hook basic :offset-assert 4) + (flight-end-time int32 :offset-assert 8) + (vel vector :inline :offset-assert 16) + (rest-pos vector :inline :offset-assert 32) + ) + :method-count-assert 13 + :size-assert #x30 + :flag-assert #xd00000030 + (:methods + (net-powerup-motion-info-method-9 () none) ;; 9 + (net-powerup-motion-info-method-10 () none) ;; 10 + (net-powerup-motion-info-method-11 () none) ;; 11 + (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) + (lifetime int32 :offset-assert 32) + (initial-owner int8 :offset-assert 36) + (motion-info basic :offset-assert 40) + ) + :method-count-assert 9 + :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) + (touched-time int32 :offset-assert 204) + (touched-by int8 :offset-assert 208) + (ignore-frames int8 :offset-assert 209) + (hash-id int16 :offset-assert 210) + (pos vector :inline :offset-assert 224) + (motion-info basic :offset-assert 240) + ) + :method-count-assert 56 + :size-assert #xf4 + :flag-assert #x38007000f4 + (:methods + (net-powerup-method-42 () none) ;; 42 + (net-powerup-method-43 () none) ;; 43 + (net-powerup-method-44 () none) ;; 44 + (net-powerup-method-45 () none) ;; 45 + (net-powerup-method-46 () none) ;; 46 + (net-powerup-method-47 () none) ;; 47 + (net-powerup-method-48 () none) ;; 48 + (net-powerup-method-49 () none) ;; 49 + (net-powerup-method-50 () none) ;; 50 + (net-powerup-method-51 () none) ;; 51 + (net-powerup-method-52 () none) ;; 52 + (net-powerup-method-53 () none) ;; 53 + (net-powerup-method-54 () none) ;; 54 + (net-powerup-method-55 () none) ;; 55 + ) + ) +|# + +#| +(deftype powerup-draw (process-drawable) + ((parent-proc uint64 :offset-assert 248) + (glow-sound basic :offset-assert 256) + (part-time int32 :offset-assert 260) + ) + :method-count-assert 57 + :size-assert #x108 + :flag-assert #x3900800108 + (:methods + (powerup-draw-method-50 () none) ;; 50 + (powerup-draw-method-51 () none) ;; 51 + (powerup-draw-method-52 () none) ;; 52 + (powerup-draw-method-53 () none) ;; 53 + (powerup-draw-method-54 () none) ;; 54 + (powerup-draw-method-55 () none) ;; 55 + (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-game-mgr-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-game-mgr-vehicle-info (structure) + ((all-vehicles UNKNOWN 6 :offset-assert 0) + (local-vehicles UNKNOWN 6 :offset-assert 24) + (ai-vehicles UNKNOWN 6 :offset-assert 48) + (player-vehicles UNKNOWN 6 :offset-assert 72) + (all-vehicle-count int8 :offset-assert 96) + (local-vehicle-count int8 :offset-assert 97) + (ai-vehicle-count int8 :offset-assert 98) + (player-vehicle-count int8 :offset-assert 99) + ) + :method-count-assert 9 + :size-assert #x64 + :flag-assert #x900000064 + ) +|# + +#| +(deftype net-game-mgr (process-nettable) + ((scheduled-finish-time int32 :offset-assert 188) + (scheduled-finish-mode basic :offset-assert 192) + (sorted-ct int8 :offset-assert 196) + (human-ct int8 :offset-assert 197) + (sorted-ids UNKNOWN 24 :offset-assert 198) + (intro-end-time int32 :offset-assert 224) + (hud-player-indicators UNKNOWN 2 :offset-assert 232) + (net-players basic :offset-assert 248) + (stats-hud UNKNOWN 2 :offset-assert 256) + (intro-handle UNKNOWN 2 :offset-assert 272) + (cheats UNKNOWN 4 :offset-assert 288) + (state-time uint64 :offset-assert 296) + ) + :method-count-assert 80 + :size-assert #x130 + :flag-assert #x5000a00130 + (:methods + (net-game-mgr-method-42 () none) ;; 42 + (net-game-mgr-method-43 () none) ;; 43 + (net-game-mgr-method-44 () none) ;; 44 + (net-game-mgr-method-45 () none) ;; 45 + (net-game-mgr-method-46 () none) ;; 46 + (net-game-mgr-method-47 () none) ;; 47 + (net-game-mgr-method-48 () none) ;; 48 + (net-game-mgr-method-49 () none) ;; 49 + (net-game-mgr-method-50 () none) ;; 50 + (net-game-mgr-method-51 () none) ;; 51 + (net-game-mgr-method-52 () none) ;; 52 + (net-game-mgr-method-53 () none) ;; 53 + (net-game-mgr-method-54 () none) ;; 54 + (net-game-mgr-method-55 () none) ;; 55 + (net-game-mgr-method-56 () none) ;; 56 + (net-game-mgr-method-57 () none) ;; 57 + (net-game-mgr-method-58 () none) ;; 58 + (net-game-mgr-method-59 () none) ;; 59 + (net-game-mgr-method-60 () none) ;; 60 + (net-game-mgr-method-61 () none) ;; 61 + (net-game-mgr-method-62 () none) ;; 62 + (net-game-mgr-method-63 () none) ;; 63 + (net-game-mgr-method-64 () none) ;; 64 + (net-game-mgr-method-65 () none) ;; 65 + (net-game-mgr-method-66 () none) ;; 66 + (net-game-mgr-method-67 () none) ;; 67 + (net-game-mgr-method-68 () none) ;; 68 + (net-game-mgr-method-69 () none) ;; 69 + (net-game-mgr-method-70 () none) ;; 70 + (net-game-mgr-method-71 () none) ;; 71 + (net-game-mgr-method-72 () none) ;; 72 + (net-game-mgr-method-73 () none) ;; 73 + (net-game-mgr-method-74 () none) ;; 74 + (net-game-mgr-method-75 () none) ;; 75 + (net-game-mgr-method-76 () none) ;; 76 + (net-game-mgr-method-77 () none) ;; 77 + (net-game-mgr-method-78 () none) ;; 78 + (net-game-mgr-method-79 () none) ;; 79 + ) + ) +|# + +;; (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-game-mgr* object) +;; (define-extern *should-update-stats* object) +;; (define-extern *stats-adjusted* object) +;; (define-extern current-finish-mode function) +;; (define-extern *fake-continue* continue-point) +;; (define-extern *overall-score-penalty* object) +;; (define-extern *total-pts-at-stake* object) +;; (define-extern *user-pts-at-stake* object) +;; (define-extern *place-suffix* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-race-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-player-race (net-player) + ((last-on-track-pos vector :inline :offset-assert 400) + (last-on-track-rot quaternion :inline :offset-assert 416) + (wrong-way-bot uint64 :offset-assert 432) + (finish-time int32 :offset-assert 440) + (last-lap-update-time int32 :offset-assert 444) + (last-on-track-time int32 :offset-assert 448) + (last-slice int32 :offset-assert 452) + (last-slice-change-time int32 :offset-assert 456) + (last-valid-vehicle-time uint64 :offset-assert 464) + (rstate racer-state :offset-assert 472) + (current-lap int8 :offset-assert 476) + (racer-idx int8 :offset-assert 477) + (current-lap-start-time int32 :offset-assert 480) + (best-lap-time int32 :offset-assert 484) + (speed-factor float :offset-assert 488) + (max-lap-reached int32 :offset-assert 492) + ) + :method-count-assert 108 + :size-assert #x1f0 + :flag-assert #x6c016001f0 + (:methods + (net-player-race-method-98 () none) ;; 98 + (net-player-race-method-99 () none) ;; 99 + (net-player-race-method-100 () none) ;; 100 + (net-player-race-method-101 () none) ;; 101 + (net-player-race-method-102 () none) ;; 102 + (net-player-race-method-103 () none) ;; 103 + (net-player-race-method-104 () none) ;; 104 + (net-player-race-method-105 () none) ;; 105 + (net-player-race-method-106 () none) ;; 106 + (net-player-race-method-107 () none) ;; 107 + ) + ) +|# + +#| +(deftype net-game-mgr-race (net-game-mgr) + ((lap-count int8 :offset-assert 304) + (racer-ct int8 :offset-assert 305) + (racer-ids UNKNOWN 24 :offset-assert 306) + (race-count-down int8 :offset-assert 330) + (banner uint64 :offset-assert 344) + (hud-clock uint64 :offset-assert 352) + (auto-end-time int32 :offset-assert 360) + ) + :method-count-assert 88 + :size-assert #x16c + :flag-assert #x5800e0016c + (:methods + (net-game-mgr-race-method-80 () none) ;; 80 + (net-game-mgr-race-method-81 () none) ;; 81 + (net-game-mgr-race-method-82 () none) ;; 82 + (net-game-mgr-race-method-83 () none) ;; 83 + (net-game-mgr-race-method-84 () none) ;; 84 + (net-game-mgr-race-method-85 () none) ;; 85 + (net-game-mgr-race-method-86 () none) ;; 86 + (net-game-mgr-race-method-87 () none) ;; 87 + ) + ) +|# + +;; (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-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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-game-modes-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype deathmatch-spawner (structure) + ((entity basic :offset-assert 0) + (next-spawn-time uint64 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype deathmatch-spawner-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype net-player-deathmatch (net-player) + ((target-vehicle uint64 :offset-assert 400) + (last-attack-time uint64 :offset-assert 408) + (last-attacker uint64 :offset-assert 416) + (dropdown-score uint64 :offset-assert 424) + (next-spawn-seed int32 :offset-assert 432) + (last-push-time int32 :offset-assert 436) + (free-powerup-timer uint64 :offset-assert 440) + ) + :method-count-assert 100 + :size-assert #x1c0 + :flag-assert #x64013001c0 + (:methods + (net-player-deathmatch-method-98 () none) ;; 98 + (net-player-deathmatch-method-99 () none) ;; 99 + ) + ) +|# + +#| +(deftype net-game-mgr-deathmatch (net-game-mgr) + ((spawner-array basic :offset-assert 304) + (spawner-count int8 :offset-assert 308) + ) + :method-count-assert 84 + :size-assert #x135 + :flag-assert #x5400b00135 + (:methods + (net-game-mgr-deathmatch-method-80 () none) ;; 80 + (net-game-mgr-deathmatch-method-81 () none) ;; 81 + (net-game-mgr-deathmatch-method-82 () none) ;; 82 + (net-game-mgr-deathmatch-method-83 () none) ;; 83 + ) + ) +|# + +#| +(deftype net-player-assassin (net-player-deathmatch) + () + :method-count-assert 100 + :size-assert #x1c0 + :flag-assert #x64013001c0 + ) +|# + +#| +(deftype net-game-mgr-assassin (net-game-mgr-deathmatch) + ((mark UNKNOWN 24 :offset-assert 305) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 86 + :size-assert #x14d + :flag-assert #x5600c0014d + (:methods + (net-game-mgr-assassin-method-84 () none) ;; 84 + (net-game-mgr-assassin-method-85 () none) ;; 85 + ) + ) +|# + +#| +(deftype net-player-deathrace (net-player-race) + ((impact-death basic :offset-assert 496) + (focus-player-index int8 :offset-assert 500) + (combo-score int32 :offset-assert 504) + (combo-count int32 :offset-assert 508) + (last-score-time int32 :offset-assert 512) + (combo-hud uint64 :offset-assert 520) + ) + :method-count-assert 111 + :size-assert #x210 + :flag-assert #x6f01800210 + (:methods + (net-player-deathrace-method-108 () none) ;; 108 + (net-player-deathrace-method-109 () none) ;; 109 + (net-player-deathrace-method-110 () none) ;; 110 + ) + ) +|# + +#| +(deftype net-game-mgr-deathrace (net-game-mgr-race) + ((next-drone-spawn-time uint64 :offset-assert 368) + ) + :method-count-assert 88 + :size-assert #x178 + :flag-assert #x5800f00178 + ) +|# + +#| +(deftype net-game-mgr-football (net-game-mgr-race) + ((borrow-level basic :offset-assert 364) + (intro-hud-manager UNKNOWN 2 :offset-assert 368) + (intro-sfx UNKNOWN 2 :offset-assert 384) + ) + :method-count-assert 88 + :size-assert #x188 + :flag-assert #x5801000188 + ) +|# + +#| +(deftype net-player-football (net-player-race) + ((my-potato uint64 :offset-assert 496) + (slow-warning uint64 :offset-assert 504) + (pt-multiplier-timeout uint64 :offset-assert 512) + (aux-hud uint64 :offset-assert 520) + (turbo-part-tracker uint64 :offset-assert 528) + (turbo-meter float :offset-assert 536) + (cheat-award-time uint64 :offset-assert 544) + (cheat-turbo-fill float :offset-assert 552) + (bing UNKNOWN 2 :offset-assert 556) + ) + :method-count-assert 108 + :size-assert #x234 + :flag-assert #x6c01b00234 + ) +|# + +#| +(deftype powercell-dispenser (net-powerup) + ((original-owner int32 :offset-assert 244) + ) + :method-count-assert 56 + :size-assert #xf8 + :flag-assert #x38007000f8 + ) +|# + +#| +(deftype powercell-dispenser-draw (powerup-draw) + ((subdraw uint64 :offset-assert 264) + ) + :method-count-assert 58 + :size-assert #x110 + :flag-assert #x3a00800110 + (:methods + (powercell-dispenser-draw-method-57 () none) ;; 57 + ) + ) +|# + +#| +(deftype powercell-footie (rigid-body-object) + ((owner uint64 :offset-assert 288) + (plyid int8 :offset-assert 296) + (tip-vel vector :inline :offset-assert 304) + (spring-pos vector :inline :offset-assert 320) + (spring-vel vector :inline :offset-assert 336) + (bolt basic :offset-assert 352) + (loose-part basic :offset-assert 356) + ) + :method-count-assert 91 + :size-assert #x168 + :flag-assert #x5b00e00168 + (:methods + (powercell-footie-method-89 () none) ;; 89 + (powercell-footie-method-90 () none) ;; 90 + ) + ) +|# + +#| +(deftype net-player-artifact (net-player-deathmatch) + ((seek-after int32 :offset-assert 448) + ) + :method-count-assert 100 + :size-assert #x1c4 + :flag-assert #x64014001c4 + ) +|# + +#| +(deftype artifact-location-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype net-game-mgr-artifact (net-game-mgr-deathmatch) + ((artifact-location-array basic :offset-assert 312) + (artifact-location-count int8 :offset-assert 316) + (artifact UNKNOWN 6 :offset-assert 320) + (num-artifacts int32 :offset-assert 368) + (last-artifact-index int32 :offset-assert 372) + (last-position-index UNKNOWN 6 :offset-assert 376) + (special-rule basic :offset-assert 400) + ) + :method-count-assert 86 + :size-assert #x194 + :flag-assert #x5601100194 + (:methods + (net-game-mgr-artifact-method-84 () none) ;; 84 + (net-game-mgr-artifact-method-85 () none) ;; 85 + ) + ) +|# + +#| +(deftype net-player-beasthunt (net-player-deathmatch) + ((prev-send-score int32 :offset-assert 448) + (last-score-send-time int32 :offset-assert 452) + (big-air-launch-time int32 :offset-assert 456) + (in-big-air basic :offset-assert 460) + (last-fly-time int32 :offset-assert 464) + ) + :method-count-assert 100 + :size-assert #x1d4 + :flag-assert #x64015001d4 + ) +|# + +#| +(deftype net-game-mgr-beasthunt (net-game-mgr-deathmatch) + () + :method-count-assert 84 + :size-assert #x135 + :flag-assert #x5400b00135 + ) +|# + +#| +(deftype net-player-collectable (net-player-deathmatch) + () + :method-count-assert 100 + :size-assert #x1c0 + :flag-assert #x64013001c0 + ) +|# + +#| +(deftype net-game-mgr-collectable (net-game-mgr-deathmatch) + ((steal-mode basic :offset-assert 312) + ) + :method-count-assert 84 + :size-assert #x13c + :flag-assert #x5400b0013c + ) +|# + +;; (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-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-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-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-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-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-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-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 powercell-dispenser-init-remote function) +;; (define-extern *msg-map-powercell-dispenser* array) +;; (define-extern *net-process-class-info-powercell-dispenser* object) +;; (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 powercell-footie-init-remote function) +;; (define-extern *msg-map-powercell-footie* array) +;; (define-extern *net-process-class-info-powercell-footie* object) +;; (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-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-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-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-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-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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-game-modes2-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-player-ctf (net-player-deathmatch) + ((info-text-display-stop-time int32 :offset-assert 448) + (flag-event uint64 :offset-assert 456) + (indicate-flag-event-stop-time int32 :offset-assert 464) + ) + :method-count-assert 103 + :size-assert #x1d4 + :flag-assert #x67015001d4 + (:methods + (net-player-ctf-method-100 () none) ;; 100 + (net-player-ctf-method-101 () none) ;; 101 + (net-player-ctf-method-102 () none) ;; 102 + ) + ) +|# + +#| +(deftype net-game-mgr-ctf (net-game-mgr-deathmatch) + ((red-spawners-count int8 :offset-assert 309) + ) + :method-count-assert 84 + :size-assert #x136 + :flag-assert #x5400b00136 + ) +|# + +#| +(deftype ctf-flag (process-focusable) + ((carrier uint64 :offset-assert 256) + (grabbed-time int32 :offset-assert 264) + (carried-part uint64 :offset-assert 272) + (task-arrow uint64 :offset-assert 280) + (team uint8 :offset-assert 288) + (count uint8 :offset-assert 289) + (spawn-pos vector :inline :offset-assert 304) + (last-good-pos vector :inline :offset-assert 320) + ) + :method-count-assert 78 + :size-assert #x150 + :flag-assert #x4e00c00150 + (:methods + (ctf-flag-method-59 () none) ;; 59 + (ctf-flag-method-60 () none) ;; 60 + (ctf-flag-method-61 () none) ;; 61 + (ctf-flag-method-62 () none) ;; 62 + (ctf-flag-method-63 () none) ;; 63 + (ctf-flag-method-64 () none) ;; 64 + (ctf-flag-method-65 () none) ;; 65 + (ctf-flag-method-66 () none) ;; 66 + (ctf-flag-method-67 () none) ;; 67 + (ctf-flag-method-68 () none) ;; 68 + (ctf-flag-method-69 () none) ;; 69 + (ctf-flag-method-70 () none) ;; 70 + (ctf-flag-method-71 () none) ;; 71 + (ctf-flag-method-72 () none) ;; 72 + (ctf-flag-method-73 () none) ;; 73 + (ctf-flag-method-74 () none) ;; 74 + (ctf-flag-method-75 () none) ;; 75 + (ctf-flag-method-76 () none) ;; 76 + (ctf-flag-method-77 () none) ;; 77 + ) + ) +|# + +#| +(deftype net-player-rushhour (net-player-race) + ((combo-score int32 :offset-assert 496) + (combo-count int32 :offset-assert 500) + (last-score-time int32 :offset-assert 504) + (combo-hud uint64 :offset-assert 512) + (drone-type uint16 :offset-assert 520) + (powerup-timer uint64 :offset-assert 536) + ) + :method-count-assert 111 + :size-assert #x220 + :flag-assert #x6f01900220 + (:methods + (net-player-rushhour-method-108 () none) ;; 108 + (net-player-rushhour-method-109 () none) ;; 109 + (net-player-rushhour-method-110 () none) ;; 110 + ) + ) +|# + +#| +(deftype net-game-mgr-rushhour (net-game-mgr-race) + ((next-drone-spawn-time uint64 :offset-assert 368) + (drone-type-counter int32 :offset-assert 376) + ) + :method-count-assert 88 + :size-assert #x17c + :flag-assert #x5800f0017c + ) +|# + +#| +(deftype net-game-mgr-king-of-hill (net-game-mgr-deathmatch) + ((king-id int16 :offset-assert 310) + (kingfx-part UNKNOWN 4 :offset-assert 312) + ) + :method-count-assert 85 + :size-assert #x148 + :flag-assert #x5500c00148 + (:methods + (net-game-mgr-king-of-hill-method-84 () none) ;; 84 + ) + ) +|# + +#| +(deftype net-player-king-of-hill (net-player-deathmatch) + ((zap-interval uint64 :offset-assert 448) + ) + :method-count-assert 100 + :size-assert #x1c8 + :flag-assert #x64014001c8 + ) +|# + +#| +(deftype net-player-time-box (net-player-race) + ((player-timer float :offset-assert 496) + (start-time uint32 :offset-assert 500) + (freeze-time-total uint32 :offset-assert 504) + (freeze-time-current uint32 :offset-assert 508) + (freeze-time-remaining uint32 :offset-assert 512) + (start-freeze-time uint32 :offset-assert 516) + (total-race-time uint32 :offset-assert 520) + (lose-time uint32 :offset-assert 524) + (pickup-total int32 :offset-assert 528) + (pickup-collected int32 :offset-assert 532) + (bonus-time int32 :offset-assert 536) + ) + :method-count-assert 109 + :size-assert #x21c + :flag-assert #x6d0190021c + (:methods + (net-player-time-box-method-108 () none) ;; 108 + ) + ) +|# + +#| +(deftype net-game-mgr-time-box (net-game-mgr-race) + ((total-race-time uint32 :offset-assert 364) + (sound-id uint32 :offset-assert 368) + ) + :method-count-assert 88 + :size-assert #x174 + :flag-assert #x5800f00174 + ) +|# + +#| +(deftype net-player-time-trial (net-player-race) + () + :method-count-assert 108 + :size-assert #x1f0 + :flag-assert #x6c016001f0 + ) +|# + +#| +(deftype net-game-mgr-time-trial (net-game-mgr-race) + () + :method-count-assert 88 + :size-assert #x16c + :flag-assert #x5800e0016c + ) +|# + +#| +(deftype net-game-mgr-training (net-game-mgr-deathrace) + ((spawn-ai-num int32 :offset-assert 376) + (ai-num int32 :offset-assert 380) + (ais-move? basic :offset-assert 384) + (ai-attack? basic :offset-assert 388) + (can-shoot? basic :offset-assert 392) + ) + :method-count-assert 88 + :size-assert #x18c + :flag-assert #x580100018c + ) +|# + +#| +(deftype net-player-boss-battle (net-player-race) + ((give-weapon-timer uint64 :offset-assert 496) + ) + :method-count-assert 114 + :size-assert #x1f8 + :flag-assert #x72017001f8 + (:methods + (net-player-boss-battle-method-108 () none) ;; 108 + (net-player-boss-battle-method-109 () none) ;; 109 + (net-player-boss-battle-method-110 () none) ;; 110 + (net-player-boss-battle-method-111 () none) ;; 111 + (net-player-boss-battle-method-112 () none) ;; 112 + (net-player-boss-battle-method-113 () none) ;; 113 + ) + ) +|# + +#| +(deftype net-game-mgr-boss-battle (net-game-mgr-race) + ((player-won? basic :offset-assert 364) + (player-lost? basic :offset-assert 368) + (lose-time uint64 :offset-assert 376) + ) + :method-count-assert 88 + :size-assert #x180 + :flag-assert #x5800f00180 + ) +|# + +;; (define-extern *ctf-flag* object) +;; (define-extern *ctf-red-base* object) +;; (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-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 ctf-flag-init-remote function) +;; (define-extern *msg-map-ctf-flag* array) +;; (define-extern *net-process-class-info-ctf-flag* object) +;; (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-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-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-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-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-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-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-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-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-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-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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-simple-destruct-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-simple-destruct (process-focusable) + ((hit-points float :offset-assert 256) + (incoming-attack-id int32 :offset-assert 260) + (impact-velocity vector :inline :offset-assert 272) + ) + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + (:methods + (net-simple-destruct-method-59 () none) ;; 59 + (net-simple-destruct-method-60 () none) ;; 60 + (net-simple-destruct-method-61 () none) ;; 61 + (net-simple-destruct-method-62 () none) ;; 62 + (net-simple-destruct-method-63 () none) ;; 63 + (net-simple-destruct-method-64 () none) ;; 64 + (net-simple-destruct-method-65 () none) ;; 65 + (net-simple-destruct-method-66 () none) ;; 66 + (net-simple-destruct-method-67 () none) ;; 67 + (net-simple-destruct-method-68 () none) ;; 68 + (net-simple-destruct-method-69 () none) ;; 69 + ) + ) +|# + +#| +(deftype net-simple-destruct-mgr (process-nettable) + () + :method-count-assert 48 + :size-assert #xbc + :flag-assert #x30003000bc + (:methods + (net-simple-destruct-mgr-method-42 () none) ;; 42 + (net-simple-destruct-mgr-method-43 () none) ;; 43 + (net-simple-destruct-mgr-method-44 () none) ;; 44 + (net-simple-destruct-mgr-method-45 () none) ;; 45 + (net-simple-destruct-mgr-method-46 () none) ;; 46 + (net-simple-destruct-mgr-method-47 () none) ;; 47 + ) + ) +|# + +;; (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-simple-destruct-mgr* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-hud-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-util-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-proxy-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-projectile-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-projectile (projectile) + () + :method-count-assert 75 + :size-assert #x231 + :flag-assert #x4b01b00231 + (:methods + (net-projectile-method-72 () none) ;; 72 + (net-projectile-method-73 () none) ;; 73 + (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + (flags uint8 :offset-assert 10) + (skip uint8 :offset-assert 11) + ) + :method-count-assert 13 + :size-assert #xc + :flag-assert #xd0000000c + (:methods + (timetrial-snapshot-method-9 () none) ;; 9 + (timetrial-snapshot-method-10 () none) ;; 10 + (timetrial-snapshot-method-11 () none) ;; 11 + (timetrial-snapshot-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype timetrial-recording (structure) + ((crc uint32 :offset-assert 0) + (total-snaps uint32 :offset-assert 4) + (total-time uint32 :offset-assert 8) + (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) + (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) + ) + :method-count-assert 14 + :size-assert #x64 + :flag-assert #xe00000064 + (:methods + (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-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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-eco-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype eco-perm (structure) + ((time int32 :offset-assert 0) + (owner int8 :offset-assert 4) + (hit-by-local int8 :offset-assert 5) + (flags uint64 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype eco (process-drawable) + () + :method-count-assert 56 + :size-assert #xf8 + :flag-assert #x38007000f8 + (:methods + (eco-method-50 () none) ;; 50 + (eco-method-51 () none) ;; 51 + (eco-method-52 () none) ;; 52 + (eco-method-53 () none) ;; 53 + (eco-method-54 () none) ;; 54 + (eco-method-55 () none) ;; 55 + ) + ) +|# + +#| +(deftype eco-mgr (process-nettable) + () + :method-count-assert 51 + :size-assert #xbc + :flag-assert #x33003000bc + (:methods + (eco-mgr-method-42 () none) ;; 42 + (eco-mgr-method-43 () none) ;; 43 + (eco-mgr-method-44 () none) ;; 44 + (eco-mgr-method-45 () none) ;; 45 + (eco-mgr-method-46 () none) ;; 46 + (eco-mgr-method-47 () none) ;; 47 + (eco-mgr-method-48 () none) ;; 48 + (eco-mgr-method-49 () none) ;; 49 + (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; menu2-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype menu-string (hud-string) + () + :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) + ) + :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) + (extra basic :offset-assert 128) + (extra-object basic :offset-assert 128) + (extra-int int32 :offset-assert 128) + (extra-int16 UNKNOWN 2 :offset-assert 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) + (last-sym basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype animation-info (structure) + ((enter-anim int32 :offset-assert 0) + (exit-anim int32 :offset-assert 4) + (running-anim int32 :offset-assert 8) + (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) + ) + :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) + (name-symbol basic :offset-assert 8) + (3d-menu-type basic :offset-assert 12) + (trans-info animation-info :offset-assert 16) + (joint-index int8 :offset-assert 20) + (joint-index-2 int8 :offset-assert 21) + (box-index int8 :offset-assert 22) + (flags uint8 :offset-assert 23) + (joints basic :offset-assert 24) + (anim-delay uint32 :offset-assert 28) + (width int32 :offset-assert 32) + (height int32 :offset-assert 36) + (scale-y float :offset-assert 40) + (scale-x float :offset-assert 44) + (user-data uint32 :offset-assert 48) + ) + :method-count-assert 9 + :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) + (focused? basic :offset-assert 256) + (3d-menu-2d-offset vector :inline :offset-assert 272) + (pos-x float :offset-assert 288) + (pos-y float :offset-assert 292) + (pos-z float :offset-assert 296) + (menu-time uint32 :offset-assert 300) + (width int32 :offset-assert 304) + (height int32 :offset-assert 308) + (width-array basic :offset-assert 312) + (height-array basic :offset-assert 316) + (joint-mat matrix :inline :offset-assert 320) + (offset-matrix matrix :inline :offset-assert 384) + (j-mod joint-mod-set-world :inline :offset-assert 448) + (extra-offset vector :inline :offset-assert 512) + (pad int8 :offset-assert 528) + (hidden? basic :offset-assert 532) + ) + :method-count-assert 65 + :size-assert #x218 + :flag-assert #x4101900218 + (:methods + (base-menu-method-50 () none) ;; 50 + (base-menu-method-51 () none) ;; 51 + (base-menu-method-52 () none) ;; 52 + (base-menu-method-53 () none) ;; 53 + (base-menu-method-54 () none) ;; 54 + (base-menu-method-55 () none) ;; 55 + (base-menu-method-56 () none) ;; 56 + (base-menu-method-57 () none) ;; 57 + (base-menu-method-58 () none) ;; 58 + (base-menu-method-59 () none) ;; 59 + (base-menu-method-60 () none) ;; 60 + (base-menu-method-61 () none) ;; 61 + (base-menu-method-62 () none) ;; 62 + (base-menu-method-63 () none) ;; 63 + (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 + :size-assert #x218 + :flag-assert #x4201900218 + (:methods + (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) + (enabled basic :offset-assert 544) + ) + :method-count-assert 67 + :size-assert #x224 + :flag-assert #x4301a00224 + (:methods + (selection-menu-manager-method-65 () none) ;; 65 + (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) + (pos-z int32 :offset-assert 16) + (tex-name basic :offset-assert 20) + (tex-id uint32 :offset-assert 24) + (scale-x float :offset-assert 28) + (scale-y float :offset-assert 32) + (flags uint16 :offset-assert 36) + (offset-from-index int8 :offset-assert 38) + (offset-dir uint8 :offset-assert 39) + (texture-index int8 :offset-assert 40) + ) + :method-count-assert 9 + :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) + (enter-alpha float :offset-assert 56) + (running-alpha float :offset-assert 60) + (exit-alpha float :offset-assert 64) + (running-pos-x float :offset-assert 68) + (running-pos-y float :offset-assert 72) + (exit-pos-x float :offset-assert 76) + (exit-pos-y float :offset-assert 80) + (move-rate float :offset-assert 84) + (scroll-offset-x int32 :offset-assert 88) + (scroll-offset-y int32 :offset-assert 92) + (scroll-rate float :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x64 + :flag-assert #x900000064 + ) +|# + +#| +(deftype sprite-menu-info (base-menu-info) + ((trans-info transition-info :offset-assert 16) + (sprites-info basic :offset-assert 52) + (color uint32 :offset-assert 56) + ) + :method-count-assert 9 + :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) + ) + :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) + ) + :method-count-assert 66 + :size-assert #x220 + :flag-assert #x4201900220 + (:methods + (sprite-menu-method-65 () none) ;; 65 + ) + ) +|# + +#| +(deftype menu-prim-strip-client (prim-client) + ((strip basic :offset-assert 4) + ) + :method-count-assert 11 + :size-assert #x8 + :flag-assert #xb00000008 + (:methods + (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) + ) + :method-count-assert 67 + :size-assert #x228 + :flag-assert #x4301a00228 + (:methods + (prim-strip-menu-method-66 () none) ;; 66 + ) + ) +|# + +#| +(deftype sprite-ptr-info (sprite-info) + ((sprite-ptr basic :offset-assert 44) + ) + :method-count-assert 9 + :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) + (horiz-list? basic :offset-assert 72) + (item-offset int32 :offset-assert 76) + (color-array basic :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x54 + :flag-assert #x900000054 + ) +|# + +#| +(deftype index-sprite-list-menu (prim-strip-menu) + ((index-list basic :offset-assert 552) + ) + :method-count-assert 67 + :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) + (pos-z int32 :offset-assert 16) + (id uint32 :offset-assert 20) + (font-scale float :offset-assert 24) + (width float :offset-assert 28) + (height float :offset-assert 32) + (string-ptr basic :offset-assert 36) + (string-ptr-needs-format basic :offset-assert 40) + (font-flags uint16 :offset-assert 44) + (font-color uint8 :offset-assert 46) + (font-color-2 uint8 :offset-assert 47) + (font-color-3 uint8 :offset-assert 48) + (offset-dir uint8 :offset-assert 49) + (offset-from-index int8 :offset-assert 50) + (offset-type-from int8 :offset-assert 51) + (is-player-string basic :offset-assert 52) + (tmp-talking int32 :offset-assert 56) + (extra-arg basic :offset-assert 60) + ) + :method-count-assert 9 + :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) + ) + :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) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype string-menu (prim-strip-menu) + ((strings basic :offset-assert 552) + (text-ids basic :offset-assert 556) + ) + :method-count-assert 69 + :size-assert #x230 + :flag-assert #x4501a00230 + (:methods + (string-menu-method-67 () none) ;; 67 + (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) + ) + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ) +|# + +#| +(deftype game-text-menu (string-menu) + ((text-id uint32 :offset-assert 560) + ) + :method-count-assert 69 + :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) + ) + :method-count-assert 9 + :size-assert #x68 + :flag-assert #x900000068 + ) +|# + +#| +(deftype dropdown-item-info (string-menu-info) + ((trans-info dropdown-trans-info :offset-assert 16) + (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-color uint32 :offset-assert 112) + (down-index-modifier int8 :offset-assert 116) + (up-index-modifier int8 :offset-assert 117) + (left-index-modifier int8 :offset-assert 118) + (right-index-modifier int8 :offset-assert 119) + (selection-box-texture-index int8 :offset-assert 120) + (reset-pad uint8 :offset-assert 121) + ) + :method-count-assert 9 + :size-assert #x7a + :flag-assert #x90000007a + ) +|# + +#| +(deftype dropdown-item (string-menu) + ((selected basic :offset-assert 560) + (p-client-selection basic :offset-assert 564) + (prev-selection int32 :offset-assert 568) + (enabled basic :offset-assert 572) + (selected-offset vector :inline :offset-assert 576) + ) + :method-count-assert 70 + :size-assert #x250 + :flag-assert #x4601c00250 + (:methods + (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) + ) + :method-count-assert 9 + :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) + (selection-index int32 :offset-assert 600) + ) + :method-count-assert 70 + :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) + () + :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) + (current-num int32 :offset-assert 8) + (last-num int32 :offset-assert 12) + ) + :method-count-assert 9 + :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) + ) + :method-count-assert 70 + :size-assert #x264 + :flag-assert #x4601e00264 + ) +|# + +#| +(deftype item-num-max-selection (item-num-selection) + () + :method-count-assert 70 + :size-assert #x268 + :flag-assert #x4601e00268 + ) +|# + +#| +(deftype games-list-selection (string-menu) + ((selection-index int8 :offset-assert 560) + ) + :method-count-assert 69 + :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) + ) + :method-count-assert 70 + :size-assert #x251 + :flag-assert #x4601d00251 + ) +|# + +#| +(deftype basic-list-selection-info (string-menu-info) + ((menu-options-info-sym basic :offset-assert 68) + ) + :method-count-assert 9 + :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) + ) + :method-count-assert 69 + :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) + (off-2d-x float :offset-assert 68) + (off-2d-y float :offset-assert 72) + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype big-text-menu (sprite-menu) + ((big-text basic :offset-assert 544) + (vert-offset float :offset-assert 548) + (vert-extent float :offset-assert 552) + (temp-string basic :offset-assert 556) + ) + :method-count-assert 67 + :size-assert #x230 + :flag-assert #x4301a00230 + (:methods + (big-text-menu-method-66 () none) ;; 66 + ) + ) +|# + +;; (define-extern *jakx-logo-seen?* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; menu2-lists ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-configuration (structure) + ((load-parts uint64 :offset-assert 0) + (id uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype selection-cache (structure) + ((state basic :offset-assert 0) + (selection-type basic :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern *menu-level-info-array* array) +;; (define-extern *menu-level-info-beta-array* array) +;; (define-extern *game-connection-info-array* array) +;; (define-extern *menu-events-info-all* array) +;; (define-extern *menu-events-info-beta* array) +;; (define-extern *lobby-entrance-info-array* array) +;; (define-extern *num-local-players-info-array* array) +;; (define-extern *error-lobby-array* array) +;; (define-extern *mirror-mode-array* array) +;; (define-extern *mirror-mode* object) +;; (define-extern *num-players-info* object) +;; (define-extern *ai-num-players-info* object) +;; (define-extern *buddy-num-players-info* object) +;; (define-extern *clan-num-players-info* object) +;; (define-extern *sfx-volume-info* object) +;; (define-extern *music-volume-info* object) +;; (define-extern *speech-volume-info* object) +;; (define-extern *brightness-info* object) +;; (define-extern *contrast-info* object) +;; (define-extern *menu-events-info-array* object) +;; (define-extern *menu-level-array* object) +;; (define-extern *menu-vehicle-array* object) +;; (define-extern *menu-driver-array* object) +;; (define-extern *menu-vehicle-parts-array* object) +;; (define-extern *player-index* array) +;; (define-extern *menu-ready-room-stats-extra-array* array) +;; (define-extern *menu-ready-room-instruct-array* array) +;; (define-extern *menu-ready-room-vehicle-array* array) +;; (define-extern *menu-ready-room-avatar-array* array) +;; (define-extern *ready-room-x-string* array) +;; (define-extern *menu-split-selection-string* array) +;; (define-extern *player-headphones?-list* array) +;; (define-extern *player-ready?-list* array) +;; (define-extern *split-screen-sprite-list* array) +;; (define-extern *graphic-options-sprite-list* array) +;; (define-extern *sound-options-sprite-list* array) +;; (define-extern *adventure-bottom-bar-ids* array) +;; (define-extern *adventure-bottom-bar-dpad-ids* array) +;; (define-extern *adventure-bottom-bar-triangle-ids* array) +;; (define-extern *adventure-top-bar-title-ids* array) +;; (define-extern *adventure-garage-reminder-ids* array) +;; (define-extern *adventure-city-ids* array) +;; (define-extern *adventure-venue-ids* array) +;; (define-extern *secrets-accept-ids* array) +;; (define-extern *player-names-extra* array) +;; (define-extern *driver-owner-dynamic-strings* array) +;; (define-extern *driver-taken-string* array) +;; (define-extern *driver-name* array) +;; (define-extern *driver-height* array) +;; (define-extern *driver-weight* array) +;; (define-extern *driver-sex* array) +;; (define-extern *driver-eyes* array) +;; (define-extern *driver-age* array) +;; (define-extern *personal-selection-bottom-bar-ids* array) +;; (define-extern *garage-string* array) +;; (define-extern *game-title-extra* array) +;; (define-extern *player-to-be-kicked-extra* array) +;; (define-extern *high-score-string* array) +;; (define-extern *high-score-ranking-string* array) +;; (define-extern *high-score-title-ids* array) +;; (define-extern *player-cash-extra* array) +;; (define-extern *mongoose-configurations* array) +;; (define-extern *falcon-configurations* array) +;; (define-extern *wombat-configurations* array) +;; (define-extern *aspect-ratio-data* array) +;; (define-extern *aspect-ratio* object) +;; (define-extern *vibration-menu-data* array) +;; (define-extern *vibration-menu-info* object) +;; (define-extern *crash-cam-menu-data* array) +;; (define-extern *crash-cam-menu-info* object) +;; (define-extern *kill-cam-menu-data* array) +;; (define-extern *kill-cam-menu-info* object) +;; (define-extern *progressive-menu-data* array) +;; (define-extern *progressive-menu-info* object) +;; (define-extern *video-mode-menu-data* array) +;; (define-extern *video-mode-menu-info* object) +;; (define-extern *stereo-mode-data* array) +;; (define-extern *stereo-mode-info* object) +;; (define-extern *languge-text-ids* array) +;; (define-extern *bottom-bar-ready-room-circle* array) +;; (define-extern *vehicle-class-ids* array) +;; (define-extern *screen-mode-ids* array) +;; (define-extern *video-mode-ids* array) +;; (define-extern *video-mode-change-ids* array) +;; (define-extern *advanced-options-button-ids* array) +;; (define-extern *menu-vehicle-colors-data* array) +;; (define-extern *menu-vehicle-colors-info* object) +;; (define-extern *level-texture-string* object) +;; (define-extern *map-texture-string* object) +;; (define-extern *icon-texture-string* object) +;; (define-extern *player-1-name* object) +;; (define-extern *player-2-name* object) +;; (define-extern *player-3-name* object) +;; (define-extern *player-4-name* object) +;; (define-extern *player-5-name* object) +;; (define-extern *player-6-name* object) +;; (define-extern *player-1-extra* object) +;; (define-extern *player-2-extra* object) +;; (define-extern *player-3-extra* object) +;; (define-extern *player-4-extra* object) +;; (define-extern *player-5-extra* object) +;; (define-extern *player-6-extra* object) +;; (define-extern get-extra-player-string function) +;; (define-extern set-index function) +;; (define-extern *selection-cache-array* object) +;; (define-extern *selection-cache-index* object) +;; (define-extern *last-lobby-state* object) +;; (define-extern insert-selection-cache function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; keyboard ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype keyboard-key (structure) + ((data UNKNOWN 4 :offset-assert 0) + (char uint8 :offset-assert 0) + (char2 uint8 :offset-assert 1) + (char3 uint8 :offset-assert 2) + (char4 uint8 :offset-assert 3) + (pos-x int8 :offset-assert 4) + (pos-y int8 :offset-assert 5) + (size int8 :offset-assert 6) + (dummy uint8 :offset-assert 7) + (tid uint32 :offset-assert 8) + (tid2 uint32 :offset-assert 12) + (scale float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype keyboard-control (process-drawable) + ((selected int32 :offset-assert 248) + (pos-x int32 :offset-assert 252) + (pos-y int32 :offset-assert 256) + (up basic :offset-assert 260) + (down basic :offset-assert 264) + (left basic :offset-assert 268) + (right basic :offset-assert 272) + (up-count int32 :offset-assert 276) + (down-count int32 :offset-assert 280) + (left-count int32 :offset-assert 284) + (right-count int32 :offset-assert 288) + (layout-select int32 :offset-assert 292) + (name basic :offset-assert 4) + (screen-pos-x int32 :offset-assert 300) + (screen-pos-y int32 :offset-assert 304) + (max-chars int32 :offset-assert 308) + (flags uint64 :offset-assert 312) + (alpha float :offset-assert 320) + (j-mod joint-mod-set-world :inline :offset-assert 336) + ) + :method-count-assert 55 + :size-assert #x190 + :flag-assert #x3701000190 + (:methods + (keyboard-control-method-53 () none) ;; 53 + (keyboard-control-method-54 () none) ;; 54 + ) + (:state-methods + done ;; 51 + cancel ;; 52 + idle ;; 50 + ) + ) +|# + +;; (define-extern cpad-or-kbd-pressed-var? function) +;; (define-extern kbd-clear! function) +;; (define-extern cpad-or-kbd-clear-func! function) +;; (define-extern *keyboard-proc* object) +;; (define-extern *keyboard-string-buf* object) +;; (define-extern *keyboard-init-state* object) +;; (define-extern *keyboard-layout-default* array) +;; (define-extern char-allowed function) +;; (define-extern set-keyboard-jmod function) +;; (define-extern render-entered-text function) +;; (define-extern keyboard-control-init-by-other function) +;; (define-extern keyboard-control-spawn function) +;; (define-extern kill-keyboard-control function) +;; (define-extern get-keyboard-control function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-menu-manager-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lobby-menu-manager (process) + ((game-type uint32 :offset-assert 144) + (menu-handles UNKNOWN 8 :offset-assert 152) + (in-focus-index int8 :offset-assert 216) + (menu-handle-1 uint64 :offset-assert 152) + (menu-handle-2 uint64 :offset-assert 160) + (menu-handle-popup uint64 :offset-assert 168) + (menu-handle-background uint64 :offset-assert 224) + (menu-handle-logo-main uint64 :offset-assert 232) + (menu-handle-logo-subtitle uint64 :offset-assert 240) + (local-players int32 :offset-assert 248) + (refresh-time uint32 :offset-assert 252) + (game-connection-type uint8 :offset-assert 256) + (vehicle-handle uint64 :offset-assert 264) + (vehicle-selected uint8 :offset-assert 272) + (vehicle-flags uint64 :offset-assert 280) + (vehicle-paint-mode uint64 :offset-assert 288) + (tuning-type-selected uint64 :offset-assert 296) + (all-ready? basic :offset-assert 304) + (map-proc uint64 :offset-assert 312) + (venue-map uint64 :offset-assert 320) + (current-local-player int8 :offset-assert 328) + (spawn-another? basic :offset-assert 332) + (state-time uint64 :offset-assert 336) + (has-driver? UNKNOWN 2 :offset-assert 344) + (car-part-type-selected uint8 :offset-assert 352) + (cam-string basic :offset-assert 356) + (driver-was-taken? basic :offset-assert 360) + (interpolate-camera? basic :offset-assert 364) + (last-selected-human-count int8 :offset-assert 368) + (last-selected-cpu-count int8 :offset-assert 369) + (game-visible? basic :offset-assert 372) + (psp-mode-run? basic :offset-assert 376) + (garage-lights float :offset-assert 380) + (garage-lights-target float :offset-assert 384) + (memcard-status uint32 :offset-assert 388) + (time-limit? basic :offset-assert 392) + (profile-save-mode basic :offset-assert 396) + (machine-id-to-kick int8 :offset-assert 400) + (cookie-id-to-kick int8 :offset-assert 401) + (override-fov basic :offset-assert 404) + (profile-new-save basic :offset-assert 408) + (voice-id uint32 :offset-assert 412) + (split-selection-prev-state basic :offset-assert 416) + (vehicle-part-fade uint8 :offset-assert 420) + (vehicle-loaded-time uint64 :offset-assert 424) + ) + :method-count-assert 195 + :size-assert #x1b0 + :flag-assert #xc3012001b0 + (:methods + (lobby-menu-manager-method-9 () none) ;; 9 + (lobby-menu-manager-method-10 () none) ;; 10 + (lobby-menu-manager-method-11 () none) ;; 11 + (lobby-menu-manager-method-12 () none) ;; 12 + (lobby-menu-manager-method-13 () none) ;; 13 + (lobby-menu-manager-method-14 () none) ;; 14 + (lobby-menu-manager-method-15 () none) ;; 15 + (lobby-menu-manager-method-16 () none) ;; 16 + (lobby-menu-manager-method-17 () none) ;; 17 + (lobby-menu-manager-method-18 () none) ;; 18 + (lobby-menu-manager-method-19 () none) ;; 19 + (lobby-menu-manager-method-20 () none) ;; 20 + (lobby-menu-manager-method-21 () none) ;; 21 + (lobby-menu-manager-method-22 () none) ;; 22 + (lobby-menu-manager-method-23 () none) ;; 23 + (lobby-menu-manager-method-24 () none) ;; 24 + (lobby-menu-manager-method-25 () none) ;; 25 + (lobby-menu-manager-method-26 () none) ;; 26 + (lobby-menu-manager-method-27 () none) ;; 27 + (lobby-menu-manager-method-28 () none) ;; 28 + (lobby-menu-manager-method-29 () none) ;; 29 + (lobby-menu-manager-method-30 () none) ;; 30 + (lobby-menu-manager-method-31 () none) ;; 31 + (lobby-menu-manager-method-32 () none) ;; 32 + (lobby-menu-manager-method-33 () none) ;; 33 + (lobby-menu-manager-method-34 () none) ;; 34 + (lobby-menu-manager-method-35 () none) ;; 35 + (lobby-menu-manager-method-36 () none) ;; 36 + (lobby-menu-manager-method-37 () none) ;; 37 + (lobby-menu-manager-method-38 () none) ;; 38 + (lobby-menu-manager-method-39 () none) ;; 39 + (lobby-menu-manager-method-40 () none) ;; 40 + (lobby-menu-manager-method-41 () none) ;; 41 + (lobby-menu-manager-method-42 () none) ;; 42 + (lobby-menu-manager-method-43 () none) ;; 43 + (lobby-menu-manager-method-44 () none) ;; 44 + (lobby-menu-manager-method-45 () none) ;; 45 + (lobby-menu-manager-method-46 () none) ;; 46 + (lobby-menu-manager-method-47 () none) ;; 47 + (lobby-menu-manager-method-48 () none) ;; 48 + (lobby-menu-manager-method-49 () none) ;; 49 + (lobby-menu-manager-method-50 () none) ;; 50 + (lobby-menu-manager-method-51 () none) ;; 51 + (lobby-menu-manager-method-52 () none) ;; 52 + (lobby-menu-manager-method-53 () none) ;; 53 + (lobby-menu-manager-method-54 () none) ;; 54 + (lobby-menu-manager-method-55 () none) ;; 55 + (lobby-menu-manager-method-56 () none) ;; 56 + (lobby-menu-manager-method-57 () none) ;; 57 + (lobby-menu-manager-method-58 () none) ;; 58 + (lobby-menu-manager-method-59 () none) ;; 59 + (lobby-menu-manager-method-60 () none) ;; 60 + (lobby-menu-manager-method-61 () none) ;; 61 + (lobby-menu-manager-method-62 () none) ;; 62 + (lobby-menu-manager-method-63 () none) ;; 63 + (lobby-menu-manager-method-64 () none) ;; 64 + (lobby-menu-manager-method-65 () none) ;; 65 + (lobby-menu-manager-method-66 () none) ;; 66 + (lobby-menu-manager-method-67 () none) ;; 67 + (lobby-menu-manager-method-68 () none) ;; 68 + (lobby-menu-manager-method-69 () none) ;; 69 + (lobby-menu-manager-method-70 () none) ;; 70 + (lobby-menu-manager-method-71 () none) ;; 71 + (lobby-menu-manager-method-72 () none) ;; 72 + (lobby-menu-manager-method-73 () none) ;; 73 + (lobby-menu-manager-method-74 () none) ;; 74 + (lobby-menu-manager-method-75 () none) ;; 75 + (lobby-menu-manager-method-76 () none) ;; 76 + (lobby-menu-manager-method-77 () none) ;; 77 + (lobby-menu-manager-method-78 () none) ;; 78 + (lobby-menu-manager-method-79 () none) ;; 79 + (lobby-menu-manager-method-80 () none) ;; 80 + (lobby-menu-manager-method-81 () none) ;; 81 + (lobby-menu-manager-method-82 () none) ;; 82 + (lobby-menu-manager-method-83 () none) ;; 83 + (lobby-menu-manager-method-84 () none) ;; 84 + (lobby-menu-manager-method-85 () none) ;; 85 + (lobby-menu-manager-method-86 () none) ;; 86 + (lobby-menu-manager-method-87 () none) ;; 87 + (lobby-menu-manager-method-88 () none) ;; 88 + (lobby-menu-manager-method-89 () none) ;; 89 + (lobby-menu-manager-method-90 () none) ;; 90 + (lobby-menu-manager-method-91 () none) ;; 91 + (lobby-menu-manager-method-92 () none) ;; 92 + (lobby-menu-manager-method-93 () none) ;; 93 + (lobby-menu-manager-method-94 () none) ;; 94 + (lobby-menu-manager-method-95 () none) ;; 95 + (lobby-menu-manager-method-96 () none) ;; 96 + (lobby-menu-manager-method-97 () none) ;; 97 + (lobby-menu-manager-method-98 () none) ;; 98 + (lobby-menu-manager-method-99 () none) ;; 99 + (lobby-menu-manager-method-100 () none) ;; 100 + (lobby-menu-manager-method-101 () none) ;; 101 + (lobby-menu-manager-method-102 () none) ;; 102 + (lobby-menu-manager-method-103 () none) ;; 103 + (lobby-menu-manager-method-104 () none) ;; 104 + (lobby-menu-manager-method-105 () none) ;; 105 + (lobby-menu-manager-method-106 () none) ;; 106 + (lobby-menu-manager-method-107 () none) ;; 107 + (lobby-menu-manager-method-108 () none) ;; 108 + (lobby-menu-manager-method-109 () none) ;; 109 + (lobby-menu-manager-method-110 () none) ;; 110 + (lobby-menu-manager-method-111 () none) ;; 111 + (lobby-menu-manager-method-112 () none) ;; 112 + (lobby-menu-manager-method-113 () none) ;; 113 + (lobby-menu-manager-method-114 () none) ;; 114 + (lobby-menu-manager-method-115 () none) ;; 115 + (lobby-menu-manager-method-116 () none) ;; 116 + (lobby-menu-manager-method-117 () none) ;; 117 + (lobby-menu-manager-method-118 () none) ;; 118 + (lobby-menu-manager-method-119 () none) ;; 119 + (lobby-menu-manager-method-120 () none) ;; 120 + (lobby-menu-manager-method-121 () none) ;; 121 + (lobby-menu-manager-method-122 () none) ;; 122 + (lobby-menu-manager-method-123 () none) ;; 123 + (lobby-menu-manager-method-124 () none) ;; 124 + (lobby-menu-manager-method-125 () none) ;; 125 + (lobby-menu-manager-method-126 () none) ;; 126 + (lobby-menu-manager-method-127 () none) ;; 127 + (lobby-menu-manager-method-128 () none) ;; 128 + (lobby-menu-manager-method-129 () none) ;; 129 + (lobby-menu-manager-method-130 () none) ;; 130 + (lobby-menu-manager-method-131 () none) ;; 131 + (lobby-menu-manager-method-132 () none) ;; 132 + (lobby-menu-manager-method-133 () none) ;; 133 + (lobby-menu-manager-method-134 () none) ;; 134 + (lobby-menu-manager-method-135 () none) ;; 135 + (lobby-menu-manager-method-136 () none) ;; 136 + (lobby-menu-manager-method-137 () none) ;; 137 + (lobby-menu-manager-method-138 () none) ;; 138 + (lobby-menu-manager-method-139 () none) ;; 139 + (lobby-menu-manager-method-140 () none) ;; 140 + (lobby-menu-manager-method-141 () none) ;; 141 + (lobby-menu-manager-method-142 () none) ;; 142 + (lobby-menu-manager-method-143 () none) ;; 143 + (lobby-menu-manager-method-144 () none) ;; 144 + (lobby-menu-manager-method-145 () none) ;; 145 + (lobby-menu-manager-method-146 () none) ;; 146 + (lobby-menu-manager-method-147 () none) ;; 147 + (lobby-menu-manager-method-148 () none) ;; 148 + (lobby-menu-manager-method-149 () none) ;; 149 + (lobby-menu-manager-method-150 () none) ;; 150 + (lobby-menu-manager-method-151 () none) ;; 151 + (lobby-menu-manager-method-152 () none) ;; 152 + (lobby-menu-manager-method-153 () none) ;; 153 + (lobby-menu-manager-method-154 () none) ;; 154 + (lobby-menu-manager-method-155 () none) ;; 155 + (lobby-menu-manager-method-156 () none) ;; 156 + (lobby-menu-manager-method-157 () none) ;; 157 + (lobby-menu-manager-method-158 () none) ;; 158 + (lobby-menu-manager-method-159 () none) ;; 159 + (lobby-menu-manager-method-160 () none) ;; 160 + (lobby-menu-manager-method-161 () none) ;; 161 + (lobby-menu-manager-method-162 () none) ;; 162 + (lobby-menu-manager-method-163 () none) ;; 163 + (lobby-menu-manager-method-164 () none) ;; 164 + (lobby-menu-manager-method-165 () none) ;; 165 + (lobby-menu-manager-method-166 () none) ;; 166 + (lobby-menu-manager-method-167 () none) ;; 167 + (lobby-menu-manager-method-168 () none) ;; 168 + (lobby-menu-manager-method-169 () none) ;; 169 + (lobby-menu-manager-method-170 () none) ;; 170 + (lobby-menu-manager-method-171 () none) ;; 171 + (lobby-menu-manager-method-172 () none) ;; 172 + (lobby-menu-manager-method-173 () none) ;; 173 + (lobby-menu-manager-method-174 () none) ;; 174 + (lobby-menu-manager-method-175 () none) ;; 175 + (lobby-menu-manager-method-176 () none) ;; 176 + (lobby-menu-manager-method-177 () none) ;; 177 + (lobby-menu-manager-method-178 () none) ;; 178 + (lobby-menu-manager-method-179 () none) ;; 179 + (lobby-menu-manager-method-180 () none) ;; 180 + (lobby-menu-manager-method-181 () none) ;; 181 + (lobby-menu-manager-method-182 () none) ;; 182 + (lobby-menu-manager-method-183 () none) ;; 183 + (lobby-menu-manager-method-184 () none) ;; 184 + (lobby-menu-manager-method-185 () none) ;; 185 + (lobby-menu-manager-method-186 () none) ;; 186 + (lobby-menu-manager-method-187 () none) ;; 187 + (lobby-menu-manager-method-188 () none) ;; 188 + (lobby-menu-manager-method-189 () none) ;; 189 + (lobby-menu-manager-method-190 () none) ;; 190 + (lobby-menu-manager-method-191 () none) ;; 191 + (lobby-menu-manager-method-192 () none) ;; 192 + (lobby-menu-manager-method-193 () none) ;; 193 + (lobby-menu-manager-method-194 () none) ;; 194 + ) + ) +|# + +;; (define-extern lobby-vehicle-flag->string function) +;; (define-extern *lobby-reset-mode* object) +;; (define-extern *net-mgr-finish-mode* object) +;; (define-extern *lobby-menu-manager* object) +;; (define-extern get-selected-local-player-count function) +;; (define-extern kiosk-code? function) +;; (define-extern min-max-wrap-around function) ;; (function int int int int) +;; (define-extern *lobby-last-selected-task-index* object) +;; (define-extern *last-selected-human-ct* object) +;; (define-extern *last-selected-ai-ct* object) +;; (define-extern *last-selected-buddy-ct* object) +;; (define-extern *last-selected-clan-ct* object) +;; (define-extern *lobby-menu-manager-game-connection-type* object) +;; (define-extern *lobby-handling-db-error* object) +;; (define-extern *no-net-hw-warning-shown* object) +;; (define-extern *ready-room-human-ct* object) +;; (define-extern *ready-room-ai-ct* object) +;; (define-extern *game-launched-from-room* object) +;; (define-extern camera-seek-time object) +;; (define-extern real-camera-seek-time object) +;; (define-extern set-lobby-camera-seek-time! function) +;; (define-extern *class-mode* object) +;; (define-extern restore-selection-index function) +;; (define-extern *lobby-timetrial-lock-mode* object) +;; (define-extern *vehicle-class-data* array) +;; (define-extern *vehicle-class* object) +;; (define-extern *time-of-day-data* array) +;; (define-extern *time-of-day-array* object) +;; (define-extern *ready-room-host-id* object) +;; (define-extern *keyboard-buf* object) +;; (define-extern kbd-auto-activate function) +;; (define-extern *return-to-secrets* object) +;; (define-extern *this-create-menu-state-name* object) +;; (define-extern *prev-create-menu-state-name* object) +;; (define-extern *lobby-fast-connect* object) +;; (define-extern *lobby-body-parts-return-state-name* object) +;; (define-extern *eligible-for-body-part-award* object) +;; (define-extern *pending-op* object) +;; (define-extern *pending-op-serial* object) +;; (define-extern *pending-op-arg-ct* object) +;; (define-extern *pending-op-args* object) +;; (define-extern teams-valid-to-start-game? function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hostnames ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ip-to-name-map (structure) + ((ip uint32 :offset-assert 0) + (mac uint64 :offset-assert 8) + (name basic :offset-assert 16) + (has-16x9 basic :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern *ip-to-name-map* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-async ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype medius-simple-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (status-code int32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype mgcl-simple-response (structure) + ((message-id UNKNOWN 21 :offset-assert 0) + (confirmation int8 :offset-assert 21) + ) + :method-count-assert 9 + :size-assert #x16 + :flag-assert #x900000016 + ) +|# + +;; (define-extern *medius-last-response* object) +;; (define-extern *mgcl-last-response* object) +;; (define-extern *async-request-ct* object) +;; (define-extern *medius-session-key-valid* object) +;; (define-extern *medius-session-key* object) +;; (define-extern *mgcl-session-key-valid* object) +;; (define-extern *mgcl-session-key* object) +;; (define-extern *mgcl-confirmation-offset* object) +;; (define-extern do-net-update function) +;; (define-extern medius-simple-request-callback function) +;; (define-extern trivial-callback function) +;; (define-extern mgcl-simple-request-callback function) +;; (define-extern *net-error-icon* object) +;; (define-extern display-net-problem-icon function) +;; (define-extern lobby-fatal-error function) +;; (define-extern timeout-lobby-fatal-error function) +;; (define-extern net-async-wait function) +;; (define-extern dme-disconnect function) +;; (define-extern mgcl-disconnect function) +;; (define-extern medius-disconnect function) +;; (define-extern do-disconnect function) +;; (define-extern *net-mgr-pending-behavior-result* object) +;; (define-extern *net-mgr-pending-behavior-result-extra* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-chat ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype received-chat-msg (structure) + ((text UNKNOWN 600 :offset-assert 0) + (disp-time int32 :offset-assert 600) + (id int32 :offset-assert 604) + (resp-type basic :offset-assert 608) + ) + :method-count-assert 9 + :size-assert #x264 + :flag-assert #x900000264 + ) +|# + +#| +(deftype lobby-chat-string (structure) + ((text UNKNOWN 100 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x64 + :flag-assert #x900000064 + ) +|# + +#| +(deftype lobby-chat-window (structure) + ((strings UNKNOWN 16 :offset-assert 0) + (x int32 :offset-assert 1792) + (y int32 :offset-assert 1796) + (sx int32 :offset-assert 1800) + (sy int32 :offset-assert 1804) + ) + :method-count-assert 13 + :size-assert #x710 + :flag-assert #xd00000710 + (:methods + (lobby-chat-window-method-9 () none) ;; 9 + (lobby-chat-window-method-10 () none) ;; 10 + (lobby-chat-window-method-11 () none) ;; 11 + (lobby-chat-window-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype magic-chat (structure) + ((prefix basic :offset-assert 0) + (popup-text-id uint32 :offset-assert 4) + (send-lobby-event basic :offset-assert 8) + (has-player-name basic :offset-assert 12) + (add-clan-id basic :offset-assert 16) + (buddies-only basic :offset-assert 20) + (resp-type basic :offset-assert 24) + (stale-player basic :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern *chat-msg-buffer* object) +;; (define-extern *chat-msg-string-ct* object) +;; (define-extern *chat-msg-strings* array) +;; (define-extern is-whitespace function) +;; (define-extern split-chat-msg function) +;; (define-extern do-split-chat-msg function) +;; (define-extern *received-chat-msg-ct* object) +;; (define-extern *received-chat-msgs* object) +;; (define-extern *chat-msg-string* object) +;; (define-extern *chat-msg-string2* object) +;; (define-extern *chat-msg-player* object) +;; (define-extern *lobby-chat-window* object) +;; (define-extern purge-top-chat-msg function) +;; (define-extern purge-all-chat-msgs function) +;; (define-extern get-top-chat-msg function) +;; (define-extern add-raw-popup-msg function) +;; (define-extern *magic-chat* array) +;; (define-extern handle-chat-msg function) +;; (define-extern fake-chat-msg function) +;; (define-extern send-chat-with-clan-id function) +;; (define-extern send-chat-with-game-id function) +;; (define-extern *chat-msg-box* object) +;; (define-extern *chat-popup-sx* object) +;; (define-extern *r2-press-time* object) +;; (define-extern temp-render-chat-messages function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-sysmsg ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sys-msg-cheat* object) +;; (define-extern handle-sys-msg function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *net-keypair-valid* object) +;; (define-extern *net-local-rsa-keypair* object) +;; (define-extern *net-app-rsa-keypair* object) +;; (define-extern *net-app-msg-id* object) +;; (define-extern *aux-voice-msg-id* object) +;; (define-extern *net-log-write* object) +;; (define-extern *net-memory-callbacks* object) +;; (define-extern *net-mgr-notify-engine* object) +;; (define-extern net-mgr-init-by-other function) +;; (define-extern net-mgr-start function) +;; (define-extern net-mgr-stop function) +;; (define-extern net-mgr-default-handler function) +;; (define-extern *pause-time* object) +;; (define-extern *prev-total-pause-time* object) +;; (define-extern *last-pause-state* object) +;; (define-extern handle-pause function) +;; (define-extern handle-unpause function) +;; (define-extern pause-check function) +;; (define-extern handle-pause-request function) +;; (define-extern *tmp-mac* object) +;; (define-extern find-ip-map function) +;; (define-extern *tmpstring* string) +;; (define-extern *already-formatted-prefix* object) +;; (define-extern get-player-name function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-dme ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fake-msg (structure) + ((data UNKNOWN 512 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x200 + :flag-assert #x900000200 + ) +|# + +;; (define-extern *dme-init-in* object) +;; (define-extern *dme-init-out* object) +;; (define-extern *dme-connect-in* object) +;; (define-extern *dme-connect-out* object) +;; (define-extern *dme-host-in* object) +;; (define-extern *dme-host-out* object) +;; (define-extern *dme-join-in* object) +;; (define-extern *dme-join-out* object) +;; (define-extern *dme-disconnect* object) +;; (define-extern *net-lan-find-in-params* object) +;; (define-extern *net-local-ip* object) +;; (define-extern *net-external-ip* object) +;; (define-extern *medius-joined-game-info* object) +;; (define-extern *net-app-name* string) +;; (define-extern *net-last-packet-recv-times* object) +;; (define-extern net-packet-recv-time-reset-client function) +;; (define-extern net-packet-recv-time-reset-all function) +;; (define-extern net-packet-recv-time-trouble function) +;; (define-extern *fake-msg-count* object) +;; (define-extern *fake-msg-read* object) +;; (define-extern *fake-msgs* object) +;; (define-extern *in-msg-callback* object) +;; (define-extern *cb-buf* object) +;; (define-extern do-net-app-msg-callback function) +;; (define-extern net-app-msg-callback function) +;; (define-extern lan-game-find-callback function) +;; (define-extern net-sys-msg-callback function) +;; (define-extern kick-machines function) +;; (define-extern write-init-complete-msg function) +;; (define-extern handle-machine-connect function) +;; (define-extern handle-machine-disconnect function) +;; (define-extern remote-client-connect-callback function) +;; (define-extern remote-client-disconnect-callback function) +;; (define-extern remote-client-event-callback function) +;; (define-extern init-complete-msg-handler function) +;; (define-extern chat-msg-handler function) +;; (define-extern session-master-change-callback function) +;; (define-extern dme-token-callback function) +;; (define-extern *last-ping-latency* object) +;; (define-extern *last-ping-time* object) +;; (define-extern *avg-ping* object) +;; (define-extern ping-report-msg-handler function) +;; (define-extern cb-server-ping function) +;; (define-extern consider-server-ping function) +;; (define-extern dummy-callback function) +;; (define-extern *lanfind-scratch* object) +;; (define-extern *lanfind-scratch-buf* object) +;; (define-extern net-lanfind-exchange-callback function) +;; (define-extern kick-msg-handler function) +;; (define-extern *rsa-key-dont-use-this-for-release* object) +;; (define-extern *headset-buffers-received* object) +;; (define-extern *headset-buffers-played* object) +;; (define-extern *headset-buffers-decoded* object) +;; (define-extern *iop-mem-stats* object) +;; (define-extern *real-sm* object) +;; (define-extern bw-metrics object) +;; (define-extern *tmp-addr* object) +;; (define-extern *tmp-game* object) +;; (define-extern *lan-game-verified* object) +;; (define-extern memeq function) +;; (define-extern lan-game-verify-callback function) +;; (define-extern *net-msg-pending* object) +;; (define-extern send-fake-msg function) +;; (define-extern verify-msg function) +;; (define-extern net-send-msg function) +;; (define-extern parse-ip function) +;; (define-extern *tmp-hostname* string) +;; (define-extern format-ip function) +;; (define-extern format-ip-raw function) +;; (define-extern net-get-local-ip function) +;; (define-extern *ip-lookup* object) +;; (define-extern get-host-by-name-callback function) +;; (define-extern *dns-string* object) +;; (define-extern *dns-string2* object) +;; (define-extern get-host-by-name function) +;; (define-extern net-get-client-ip function) +;; (define-extern per-process-hook function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-aux-voice ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype aux-voice-mgr (process) + ((game-id int32 :offset-assert 144) + (my-id int32 :offset-assert 148) + (bitfield int32 :offset-assert 152) + (connect-handle basic :offset-assert 156) + ) + :method-count-assert 22 + :size-assert #xa0 + :flag-assert #x16001000a0 + ;; field connect-handle uses ~A with a signed load. + (:methods + (aux-voice-mgr-method-9 () none) ;; 9 + (aux-voice-mgr-method-10 () none) ;; 10 + (aux-voice-mgr-method-11 () none) ;; 11 + (aux-voice-mgr-method-12 () none) ;; 12 + (aux-voice-mgr-method-13 () none) ;; 13 + (aux-voice-mgr-method-14 () none) ;; 14 + (aux-voice-mgr-method-20 () none) ;; 20 + (aux-voice-mgr-method-21 () none) ;; 21 + ) + (:state-methods + die ;; 19 + startup ;; 15 + creating ;; 16 + joining ;; 17 + active ;; 18 + ) + ) +|# + +;; (define-extern *aux-voice-mgr* object) +;; (define-extern *aux-voice-resp* object) +;; (define-extern *aux-game-name* object) +;; (define-extern *aux-voice-game-info* object) +;; (define-extern *aux-voice-connect-info* object) +;; (define-extern *aux-voice-got-callback* object) +;; (define-extern *aux-voice-world-report* object) +;; (define-extern *aux-voice-enabled* object) +;; (define-extern *aux-voice-last-startup* object) +;; (define-extern *aux-voice-acct-ids* object) +;; (define-extern aux-voice-mgr-init-by-other function) +;; (define-extern aux-voice-mgr-activate function) +;; (define-extern aux-voice-mgr-deactivate function) +;; (define-extern aux-voice-mgr-failed function) +;; (define-extern do-aux-voice-msg-callback function) +;; (define-extern aux-voice-msg-callback function) +;; (define-extern aux-voice-acct-id-callback function) +;; (define-extern aux-voice-mgr-default-handler function) +;; (define-extern aux-voice-local-disconnect-callback function) +;; (define-extern aux-voice-client-connect-callback function) +;; (define-extern aux-voice-client-disconnect-callback function) +;; (define-extern aux-voice-local-connect-callback function) +;; (define-extern *aux-voice-last-update* object) +;; (define-extern aux-voice-running function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-medius ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *medius-mas-default-hostname* string) +;; (define-extern *medius-mas-hostname* string) +;; (define-extern *medius-mas-port* object) +;; (define-extern *medius-init-in-params* object) +;; (define-extern *medius-init-out-params* object) +;; (define-extern *medius-connect-in-params* object) +;; (define-extern *medius-connect-out-params* object) +;; (define-extern *medius-public-key* object) +;; (define-extern *medius-connect-info* object) +;; (define-extern *medius-world-report* object) +;; (define-extern *medius-player-report* object) +;; (define-extern *medius-chat-message* object) +;; (define-extern *medius-auth-request* object) +;; (define-extern *medius-player-ladder-stats* object) +;; (define-extern *medius-account-name* object) +;; (define-extern *medius-account-password* object) +;; (define-extern *medius-register-if-not-exist* object) +;; (define-extern *medius-channel-ct* object) +;; (define-extern *medius-user-ct* object) +;; (define-extern *medius-total-game-ct* object) +;; (define-extern *net-mgr-pending-behavior* object) +;; (define-extern *net-mgr-pending-behavior-valid* object) +;; (define-extern medius-error-msg-callback function) +;; (define-extern *chat-tmp-string* object) +;; (define-extern medius-chat-callback function) +;; (define-extern medius-reassign-world-id-callback function) +;; (define-extern lobby-non-fatal-error function) +;; (define-extern mas-connect-callback function) +;; (define-extern medius-text-filter-request-callback function) +;; (define-extern net-filter-text function) +;; (define-extern net-mgr-process-pending-behavior function) +;; (define-extern refreshing-games-callback function) +;; (define-extern total-games-callback function) +;; (define-extern *tmp-game-name* object) +;; (define-extern *medius-join-game-response* object) +;; (define-extern *medius-policy* object) +;; (define-extern *medius-policy-length* object) +;; (define-extern *medius-language* object) +;; (define-extern cb-get-policy function) +;; (define-extern *medius-announcement-ids* object) +;; (define-extern cb-get-announcements function) +;; (define-extern get-announcements function) +;; (define-extern mark-announcement-as-read function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-muis ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *net-universe-is-ngs* object) +;; (define-extern *jakx-patch-file* string) +;; (define-extern *jakx-patch-tmp* object) +;; (define-extern *net-patch-url* object) +;; (define-extern *net-patch-version* object) +;; (define-extern *medius-muis-hostname* object) +;; (define-extern *medius-muis-port* object) +;; (define-extern *medius-muis-id* object) +;; (define-extern set-muis-hostname function) +;; (define-extern construct-patch-file-name function) +;; (define-extern muis-connect-callback function) +;; (define-extern muis-news-callback function) +;; (define-extern muis-info-callback function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-medius-players ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern add-recent-opponent function) +;; (define-extern get-recent-players function) +;; (define-extern *tmp-player* medius-cached-info-player) +;; (define-extern medius-player-info-retrieve-behavior function) +;; (define-extern update-client-state function) +;; (define-extern init-player-lists function) +;; (define-extern *tmp-player-name* object) +;; (define-extern get-player-amplitude function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-medius-buddies ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *medius-player-account-id* object) +;; (define-extern buddies-refreshing-callback function) +;; (define-extern buddies-refreshing function) +;; (define-extern buddies-adding-player function) +;; (define-extern buddies-removing-player function) +;; (define-extern ignore-refreshing-callback function) +;; (define-extern ignore-refreshing function) +;; (define-extern ignore-adding-player function) +;; (define-extern ignore-removing-player function) +;; (define-extern finding-player-callback function) +;; (define-extern finding-player function) +;; (define-extern retrieve-player-lists function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-medius-clans ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *last-medius-clan* object) +;; (define-extern clan-msg-callback-my function) +;; (define-extern clan-msg-callback-all function) +;; (define-extern get-clan-msg function) +;; (define-extern *clan-is-my-clan* object) +;; (define-extern clan-member-list-callback function) +;; (define-extern *tmp-clan* medius-cached-info-clan) +;; (define-extern *tmp-clan-members* object) +;; (define-extern medius-clan-info-retrieve-behavior function) +;; (define-extern clan-create function) +;; (define-extern clan-disband function) +;; (define-extern clan-leave function) +;; (define-extern clan-remove-player function) +;; (define-extern respond-to-clan-invite function) +;; (define-extern *in-clan* object) +;; (define-extern get-my-clans-callback function) +;; (define-extern clan-invitations-sent-callback function) +;; (define-extern check-my-clan-invitations-callback function) +;; (define-extern check-my-clan-invitations function) +;; (define-extern get-clan-member-list function) +;; (define-extern get-my-clans function) +;; (define-extern *cur-challenge-type* object) +;; (define-extern get-clan-challenges function) +;; (define-extern challenge-clan function) +;; (define-extern respond-to-challenge function) +;; (define-extern tidy-clan-challenges function) +;; (define-extern retrieve-my-clan-data function) +;; (define-extern invite-player-to-clan function) +;; (define-extern revoke-clan-invite function) +;; (define-extern retrieve-outstanding-invites function) +;; (define-extern net-test-shit function) +;; (define-extern clan-allowed-to-join-game function) +;; (define-extern lookup-clan-challenge function) +;; (define-extern get-clan-challenge-pair-status function) +;; (define-extern transfer-clan-leadership function) +;; (define-extern set-clan-msg function) +;; (define-extern is-clan-challenge function) +;; (define-extern can-start-clan-challenge function) +;; (define-extern *clan-update-stats-request* object) +;; (define-extern *clan-get-stats-request* object) +;; (define-extern *clan-current-stats* object) +;; (define-extern *enemy-clan-current-stats* object) +;; (define-extern *clan-update-busy* object) +;; (define-extern *this-game-penalty* object) +;; (define-extern should-i-update-clan-stats function) +;; (define-extern get-all-clan-stats function) +;; (define-extern make-new-score function) +;; (define-extern post-game-clan-stats-adjust function) +;; (define-extern apply-clan-deltas function) +;; (define-extern pre-game-clan-stats-adjust function) +;; (define-extern get-clans-in-challenge-info function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-medius-ladders ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-medius-rooms ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype medius-room (structure) + ((id int32 :offset-assert 0) + (name UNKNOWN 32 :offset-assert 4) + (player-ct int32 :offset-assert 36) + (max-players int32 :offset-assert 40) + (game-world-ct int32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype medius-room-array (structure) + ((total-ct int32 :offset-assert 0) + (base-page int32 :offset-assert 4) + (total-pages int32 :offset-assert 8) + (ct int32 :offset-assert 12) + (data UNKNOWN 5 :offset-assert 16) + ) + :method-count-assert 11 + :size-assert #x100 + :flag-assert #xb00000100 + (:methods + (medius-room-array-method-9 () none) ;; 9 + (medius-room-array-method-10 () none) ;; 10 + ) + ) +|# + +;; (define-extern *current-room-name* object) +;; (define-extern *room-clan-id* object) +;; (define-extern *room-clan-id-2* object) +;; (define-extern *medius-rooms* object) +;; (define-extern *last-normal-room* object) +;; (define-extern refresh-rooms-callback function) +;; (define-extern refresh-rooms function) +;; (define-extern *tmp-clan-string* object) +;; (define-extern join-room function) +;; (define-extern room-players-refreshing-callback function) +;; (define-extern get-players-in-room function) +;; (define-extern get-room-name function) +;; (define-extern get-current-room-name-and-info function) +;; (define-extern create-room function) +;; (define-extern find-room-by-name function) +;; (define-extern ensure-room-is-good function) +;; (define-extern test-rooms function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-medius-games ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype medius-filter (structure) + ((field int32 :offset-assert 0) + (comp-op int32 :offset-assert 4) + (base-val int32 :offset-assert 8) + ) + :method-count-assert 10 + :size-assert #xc + :flag-assert #xa0000000c + (:methods + (medius-filter-method-9 () none) ;; 9 + ) + ) +|# + +;; (define-extern *medius-filters* object) +;; (define-extern *medius-server-filters* object) +;; (define-extern *medius-desired-server-filters* object) +;; (define-extern medius-game-status-info-retrieve-behavior function) +;; (define-extern get-game-status-cached function) +;; (define-extern in-game-players-refreshing-callback function) +;; (define-extern refresh-game-info function) +;; (define-extern filter-game function) +;; (define-extern *unfiltered-game-ct* object) +;; (define-extern *game-end-idx* object) +;; (define-extern get-game-list-callback function) +;; (define-extern get-game-list function) +;; (define-extern clear-game-list-filters function) +;; (define-extern set-filter-state function) +;; (define-extern refresh-lan-games function) +;; (define-extern filter-test function) +;; (define-extern get-all-games function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-ghost ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ghost-file (structure) + ((name UNKNOWN 128 :offset-assert 0) + (time int32 :offset-assert 128) + (len int32 :offset-assert 132) + (acct-id int32 :offset-assert 136) + (vehicle-selection int32 :offset-assert 140) + (driver-selection int32 :offset-assert 144) + (load-parts uint64 :offset-assert 152) + ) + :method-count-assert 10 + :size-assert #xa0 + :flag-assert #xa000000a0 + (:methods + (ghost-file-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype ghost-info (structure) + ((lev uint8 :offset-assert 0) + (acct-id int32 :offset-assert 4) + (acct-name UNKNOWN 64 :offset-assert 8) + (vehicle-selection int8 :offset-assert 72) + (driver-selection int8 :offset-assert 73) + (load-parts uint64 :offset-assert 80) + (time int32 :offset-assert 88) + (last-update-time int32 :offset-assert 92) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +;; (define-extern task-level-to-idx function) +;; (define-extern ghost-crc-ok function) +;; (define-extern *ghost-tmp-string* string) +;; (define-extern *ghost-file-ct* object) +;; (define-extern *ghost-files* object) +;; (define-extern *ghost-file-info* object) +;; (define-extern *ghost-download-ptr* object) +;; (define-extern *ghost-download-len* object) +;; (define-extern *ghost-tmp-buf* object) +;; (define-extern *ghost-info* object) +;; (define-extern *ghost-async-status* object) +;; (define-extern *ghost-req-id* object) +;; (define-extern send-ghost-file function) +;; (define-extern restore-ghost-from-memcard function) +;; (define-extern do-get-best-ghost function) +;; (define-extern get-best-ghost function) +;; (define-extern nuke-all-ghosts function) +;; (define-extern get-best-ghost-info function) +;; (define-extern *async-ghost-compress-busy* object) +;; (define-extern async-compress-and-upload function) +;; (define-extern is-ghost? function) +;; (define-extern reset-ghost function) +;; (define-extern poop2 function) +;; (define-extern poop3 function) +;; (define-extern poop4 function) +;; (define-extern poop5 function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-mgcl ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *medius-server-session-begin-request* object) +;; (define-extern *mgcl-init-in-params* object) +;; (define-extern *mgcl-init-out-params* object) +;; (define-extern *mgcl-connect-in-params* object) +;; (define-extern *mgcl-connect-out-params* object) +;; (define-extern *mgcl-connect-info* object) +;; (define-extern *mgcl-server-report* object) +;; (define-extern *mgcl-access-key* object) +;; (define-extern *player-entered-ready-room* object) +;; (define-extern *medius-server-join-game-response* object) +;; (define-extern mgcl-join-game-callback function) +;; (define-extern mgcl-end-game-callback function) +;; (define-extern mgcl-world-status-callback function) +;; (define-extern mgcl-connect-games-callback function) +;; (define-extern send-game-update function) +;; (define-extern connect-callback-mgcl function) +;; (define-extern get-mgcl-connection function) +;; (define-extern end-game-on-me function) +;; (define-extern create-game-on-me function) +;; (define-extern send-end-of-game-report function) +;; (define-extern end-game-on-me-callback function) +;; (define-extern move-game-on-me-callback function) +;; (define-extern check-game-on-me function) +;; (define-extern *medius-account-update-stats-request* object) +;; (define-extern *medius-update-ladder-stats-wide-request* object) +;; (define-extern medius-start-account-stats-update function) +;; (define-extern medius-start-clan-stats-update function) +;; (define-extern host-change-callback function) +;; (define-extern game-connect-failed function) +;; (define-extern wait-connect function) +;; (define-extern dme-connect-callback function) +;; (define-extern dme-join-callback function) +;; (define-extern *sent-end-of-game-report* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-mgr-playback ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *playback-stream* file-stream) +;; (define-extern *playback-name* object) +;; (define-extern *playback-start-time* object) +;; (define-extern *playback-log-start-time* object) +;; (define-extern *playback-buf-mem* object) +;; (define-extern *playback-buf* object) +;; (define-extern *playback-next-event-time* object) +;; (define-extern *playback-time* object) +;; (define-extern *playback-bytes-left* object) +;; (define-extern *playback-machine* object) +;; (define-extern *playback-delay* object) +;; (define-extern *playback-event-header* object) +;; (define-extern read-event-header function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-colarb ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-colarb-req (structure) + ((req-by int8 :offset-assert 0) + (req-time int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern *net-colarb-last-reqs* object) +;; (define-extern net-colarb-clear function) +;; (define-extern colarb-request-msg-callback function) +;; (define-extern net-colarb-request-id function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-init ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sce-stat (structure) + ((mode uint32 :offset-assert 0) + (attr int32 :offset-assert 4) + (size int32 :offset-assert 8) + (ctime UNKNOWN 8 :offset-assert 12) + (atime UNKNOWN 8 :offset-assert 20) + (mtime UNKNOWN 8 :offset-assert 28) + (hisize int32 :offset-assert 36) + (private UNKNOWN 6 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype sce-dirent (structure) + ((stat sce-stat :inline :offset-assert 0) + (name UNKNOWN 256 :offset-assert 64) + (private basic :offset-assert 320) + ) + :method-count-assert 9 + :size-assert #x144 + :flag-assert #x900000144 + ;; field private uses ~A with a signed load. + ) +|# + +#| +(deftype eznet-combination (structure) + ((status int32 :offset-assert 0) + (iftype int32 :offset-assert 4) + (name UNKNOWN 64 :offset-assert 8) + (ifc-name UNKNOWN 64 :offset-assert 72) + (dev-name UNKNOWN 64 :offset-assert 136) + ) + :method-count-assert 9 + :size-assert #xc8 + :flag-assert #x9000000c8 + ) +|# + +#| +(deftype eznet-combination-list (structure) + ((length int32 :offset-assert 0) + (default int32 :offset-assert 4) + (netdb-order UNKNOWN 10 :offset-assert 8) + (list UNKNOWN 10 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x800 + :flag-assert #x900000800 + ) +|# + +#| +(deftype sce-dnas2-unique-id (structure) + ((category uint32 :offset-assert 0) + (ptr uint32 :offset-assert 4) + (sizep uint32 :offset-assert 8) + (result int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype sce-dnas2-status (structure) + ((code int32 :offset-assert 0) + (sub-code int32 :offset-assert 4) + (progress int32 :offset-assert 8) + (optional uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype patch-hdr (structure) + ((magic uint32 :offset-assert 0) + (this-len uint32 :offset-assert 4) + (uncomp-len uint32 :offset-assert 8) + (src-file-len uint32 :offset-assert 12) + (dest-file-len uint32 :offset-assert 16) + (src-hash uint32 :offset-assert 20) + (dest-hash uint32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype patch-group-entry (structure) + ((name-hash uint32 :offset-assert 0) + (offset uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype patch-group (structure) + ((patch-ct uint32 :offset-assert 0) + (data UNKNOWN :dynamic :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern simple-dir-test function) +;; (define-extern *scert-extra-params* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-start ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *net-start-view-ct* object) +;; (define-extern *listener-cpt* object) +;; (define-extern *net-hw-initted* object) +;; (define-extern *net-hw-config-id* object) +;; (define-extern *net-hw-last-error* object) +;; (define-extern net-hw-stop function) +;; (define-extern net-hw-start-part1 function) +;; (define-extern net-hw-start-part2 function) +;; (define-extern hack-reset-state function) +;; (define-extern net-mgr-start-hardware-already-done function) +;; (define-extern hack-start-local-game function) +;; (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-task function) +;; (define-extern select-continue-point function) +;; (define-extern set-local-vehicle function) +;; (define-extern qo function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-process-mgr ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype owner-and-flags (int8) +;; () +;; :flag-assert #x900000001 +;; ) + +#| +(deftype nospawn (process) + ((name basic :offset-assert 0) + (mask process-mask :offset-assert 4) + (clock basic :offset-assert 8) + (view basic :offset-assert 12) + (parent uint32 :offset-assert 16) + (brother uint32 :offset-assert 20) + (child uint32 :offset-assert 24) + (ppointer uint32 :offset-assert 28) + (self basic :offset-assert 32) + (profile-ticks uint32 :offset-assert 36) + (pool basic :offset-assert 40) + (status basic :offset-assert 44) + (pid int32 :offset-assert 48) + (main-thread basic :offset-assert 52) + (top-thread basic :offset-assert 56) + (entity basic :offset-assert 60) + (level basic :offset-assert 64) + (state basic :offset-assert 68) + (prev-state basic :offset-assert 72) + (next-state basic :offset-assert 76) + (state-stack basic :offset-assert 80) + (trans-hook basic :offset-assert 84) + (post-hook basic :offset-assert 88) + (event-hook basic :offset-assert 92) + (allocated-length int32 :offset-assert 96) + (heap-base uint32 :offset-assert 108) + (heap-top uint32 :offset-assert 112) + (heap-cur uint32 :offset-assert 116) + (stack-frame-top basic :offset-assert 120) + (heap kheap :inline :offset-assert 108) + (connection-list connectable :inline :offset-assert 124) + (stack UNKNOWN :dynamic :offset-assert 140) + ) + :method-count-assert 15 + :size-assert #x90 + :flag-assert #xf00000090 + (:methods + (nospawn-method-9 () none) ;; 9 + (nospawn-method-10 () none) ;; 10 + (nospawn-method-11 () none) ;; 11 + (nospawn-method-12 () none) ;; 12 + (nospawn-method-13 () none) ;; 13 + (nospawn-method-14 () none) ;; 14 + ) + ) +|# + +;; (define-extern net-process-mgr-init-by-other function) +;; (define-extern spawn-net-entity function) +;; (define-extern *net-process-table* array) +;; (define-extern net-process-mgr-start function) +;; (define-extern net-process-mgr-stop function) +;; (define-extern net-process-mgr-handle-aux-msg-recv-end function) +;; (define-extern net-process-mgr-handle-aux-msg-recv-end-ack function) +;; (define-extern net-process-mgr-handle-aux-msg-spawn-entities function) +;; (define-extern net-process-mgr-default-handler function) +;; (define-extern go-running function) +;; (define-extern *prev-time-of-day-time* object) +;; (define-extern tweak-local-net-entities function) +;; (define-extern update-local-net-entities function) +;; (define-extern net-process-msg-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-http ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype http-downloader (process) + ((socket int32 :offset-assert 144) + (buffer UNKNOWN 1024 :offset-assert 148) + (hostname UNKNOWN 128 :offset-assert 1172) + (url UNKNOWN 128 :offset-assert 1300) + (ip int32 :offset-assert 1428) + (port int32 :offset-assert 1432) + (http-rc int32 :offset-assert 1436) + (content-len int32 :offset-assert 1440) + (quench basic :offset-assert 1444) + ) + :method-count-assert 23 + :size-assert #x5a8 + :flag-assert #x17052005a8 + (:methods + (http-downloader-method-9 () none) ;; 9 + (http-downloader-method-10 () none) ;; 10 + (http-downloader-method-11 () none) ;; 11 + (http-downloader-method-12 () none) ;; 12 + (http-downloader-method-13 () none) ;; 13 + (http-downloader-method-14 () none) ;; 14 + (http-downloader-method-20 () none) ;; 20 + (http-downloader-method-21 () none) ;; 21 + (http-downloader-method-22 () none) ;; 22 + ) + (:state-methods + resolving ;; 15 + connecting ;; 16 + fetching-headers ;; 17 + fetching-data ;; 18 + die ;; 19 + ) + ) +|# + +;; (define-extern *http-downloader* object) +;; (define-extern *http-request-string* object) +;; (define-extern http-downloader-init-by-other function) +;; (define-extern http-start-fetch function) +;; (define-extern http-downloader-default-handler function) +;; (define-extern *socket-blocking* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; capture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern gs-set-default-store-image function) ;; (function gs-store-image-packet int int gs-psm int int int int int) +;; (define-extern *capture-tga-temp* object) +;; (define-extern store-image function) ;; (function screen-shot-work none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fmv-player ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fmv-buffer (structure) + ((buff uint32 :offset-assert 0) + (start int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype fmv-work (structure) + ((current-buffer uint32 :offset-assert 0) + (buffers UNKNOWN 2 :offset-assert 4) + (buffer-size uint32 :offset-assert 36) + (cursor uint32 :offset-assert 40) + (name basic :offset-assert 44) + (dma-addr uint32 :offset-assert 48) + (data-size uint32 :offset-assert 52) + (num-frames uint32 :offset-assert 56) + (copied-size uint32 :offset-assert 60) + (count-frame uint32 :offset-assert 64) + (own-rpc basic :offset-assert 68) + (len-read int32 :offset-assert 72) + (finished basic :offset-assert 76) + (current-frame int32 :offset-assert 80) + (page basic :offset-assert 84) + (tex basic :offset-assert 88) + (corner UNKNOWN 4 :offset-assert 96) + (pos UNKNOWN 4 :offset-assert 160) + (uv UNKNOWN 4 :offset-assert 224) + (col vector4w :inline :offset-assert 288) + (draw-tmpl dma-gif-packet :inline :offset-assert 304) + ) + :method-count-assert 9 + :size-assert #x150 + :flag-assert #x900000150 + ) +|# + +;; (define-extern *subtitles-text* object) +;; (define-extern *fmv-m2v-name* object) +;; (define-extern *fmv-snd-name* object) +;; (define-extern *fmv-old-hflip* object) +;; (define-extern *fmv-work* object) +;; (define-extern *menu-movie-texture-anim-array* texture-anim-array) +;; (define-extern *movie-texture-anim-array* texture-anim-array) +;; (define-extern movie-texture-anim-init function) +;; (define-extern movie-texture-anim-func function) +;; (define-extern fmv-file-init function) +;; (define-extern fmv-get-time function) +;; (define-extern fmv-memcpy function) +;; (define-extern fmv-file-read function) +;; (define-extern fmv-fade-out function) +;; (define-extern fmv-player-init-by-other function) +;; (define-extern fmv-player-run function) +;; (define-extern fmv-player-run-texture function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-save ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype game-save-tag (structure) + ((user-object object 2 :offset-assert 0) ;; guessed by decompiler + (user-uint64 uint64 :offset-assert 0) + (user-float0 float :offset-assert 0) + (user-float float 2 :offset-assert 0) ;; guessed by decompiler + (user-int32 int32 2 :offset-assert 0) ;; guessed by decompiler + (user-uint32 uint32 2 :offset-assert 0) ;; guessed by decompiler + (user-int16 int16 4 :offset-assert 0) ;; guessed by decompiler + (user-uint16 uint16 4 :offset-assert 0) ;; guessed by decompiler + (user-int8 int8 8 :offset-assert 0) ;; guessed by decompiler + (user-int80 int8 :offset-assert 0) + (user-int81 int8 :offset-assert 1) + (user-uint8 uint8 8 :offset-assert 0) ;; guessed by decompiler + (elt-count int32 :offset-assert 8) + (elt-size uint16 :offset-assert 12) + (elt-type uint16 :offset-assert 14) ;; game-save-elt + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype game-save (basic) + () + :method-count-assert 12 + :size-assert #x70 + :flag-assert #xc00000070 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int) _type_) + (game-save-method-9 () none) ;; 9 ;; (save-to-file (_type_ string) _type_) + (game-save-method-10 () none) ;; 10 ;; (load-from-file (_type_ string) _type_) + (game-save-method-11 () none) ;; 11 ;; (debug-inspect (_type_ symbol) _type_) + ) + ) +|# + +#| +(deftype auto-save (process) + ((card int32 :offset-assert 144) + (slot int32 :offset-assert 148) + (which int32 :offset-assert 152) + (buffer kheap :offset-assert 156) + (mode symbol :offset-assert 160) ;; guessed by decompiler + (starting-auto-save-status basic :offset-assert 164) + (result mc-status-code :offset-assert 168) ;; guessed by decompiler + (save game-save :offset-assert 172) ;; guessed by decompiler + (info mc-slot-info :inline :offset-assert 176) + (notify uint64 :offset-assert 608) ;; handle + (force symbol :offset-assert 616) ;; guessed by decompiler + (state-time uint64 :offset-assert 624) ;; time-frame + (icon hud-sprite :inline :offset-assert 640) + (icon-gui-id uint32 :offset-assert 692) + (message-gui-id uint32 :offset-assert 696) + (game-name UNKNOWN 16 :offset-assert 700) + ) + :method-count-assert 29 + :size-assert #x2cc + :flag-assert #x1d024002cc + (:methods + (auto-save-method-9 () none) ;; 9 + (auto-save-method-10 () none) ;; 10 + (auto-save-method-11 () none) ;; 11 + (auto-save-method-12 () none) ;; 12 + (auto-save-method-13 () none) ;; 13 + (auto-save-method-14 () none) ;; 14 ;; (get-heap () _type_ :state) + ) + (:state-methods + get-heap ;; 15, old: (get-card () _type_ :state) + save-ghost ;; 24 + get-card ;; 16, old: (format-card () _type_ :state) + format-card ;; 17, old: (unformat-card () _type_ :state) + unformat-card ;; 18, old: (create-file () _type_ :state) + create-file ;; 19, old: (save () _type_ :state) + save ;; 20, old: (restore () _type_ :state) + save-common ;; 22, old: (done () _type_ :state) + save-patch ;; 26 + restore ;; 21, old: (error (mc-status-code) _type_ :state) + restore-common ;; 23 + restore-ghost ;; 25 + error ;; 27 + done ;; 28 + ) + ) +|# + +#| +(deftype auto-save-error-proc (process-drawable) + ((error basic :offset-assert 248) + (bmask uint32 :offset-assert 252) + ) + :method-count-assert 50 + :size-assert #x100 + :flag-assert #x3200700100 + ) +|# + +;; (define-extern *mc-ghost-idx* object) +;; (define-extern *mc-ghost-ptr* object) +;; (define-extern game-save-elt->string function) ;; (function game-save-elt string) +;; (define-extern *auto-save-info* object) ;; mc-slot-info +;; (define-extern auto-save-post function) ;; (function pointer :behavior auto-save) +;; (define-extern auto-save-init-by-other function) ;; (function symbol process int int symbol object :behavior auto-save) +;; (define-extern auto-idle state) +;; (define-extern auto-save-error-proc-init-by-other function) +;; (define-extern progress-allowed? function) ;; (function symbol) +;; (define-extern auto-save-command function) ;; (function symbol int int process-tree symbol (pointer auto-save)) +;; (define-extern auto-save-check function) ;; (function int) +;; (define-extern auto-save-user function) ;; (function (pointer auto-save)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; title-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype title-control (process) + ((buffer external-art-buffer 2 :offset-assert 140) ;; guessed by decompiler + (want int32 2 :offset-assert 148) ;; guessed by decompiler + (want-name string 2 :offset-assert 156) ;; guessed by decompiler + (have int32 2 :offset-assert 164) ;; guessed by decompiler + (draw int32 :offset-assert 172) + (draw-name string :offset-assert 176) ;; guessed by decompiler + (active symbol :offset-assert 180) ;; guessed by decompiler + ) + :method-count-assert 22 + :size-assert #xbc + :flag-assert #x16003000bc + (:methods + (title-control-method-9 () none) ;; 9 + (title-control-method-10 () none) ;; 10 + (title-control-method-11 () none) ;; 11 + (title-control-method-12 () none) ;; 12 + (title-control-method-13 () none) ;; 13 + (title-control-method-14 () none) ;; 14 ;; (startup () _type_ :state) + (title-control-method-16 () none) ;; 16 ;; (idle () _type_ :state) + (title-control-method-17 () none) ;; 17 ;; (scrap-book (int) _type_ :state) + ) + (:state-methods + startup ;; 15, old: (wait () _type_ :state) + scrap-book ;; 18, old: (control-spec (int) _type_ :state) + control-spec ;; 19 + splash-screen ;; 20 + thx-dolby ;; 21 + ) + ) +|# + +;; (define-extern title-control-init function) ;; (function object :behavior title-control) +;; (define-extern title-control-spawn function) +;; (define-extern title-screen-change function) ;; (function string int string int symbol symbol int :behavior title-control) +;; (define-extern title-progress function) ;; (function symbol int) +;; (define-extern title-fade-out function) ;; (function float int) +;; (define-extern direction-press function) ;; (function time-frame time-frame symbol symbol) +;; (define-extern *scrap-book-3* array) +;; (define-extern *scrap-book-1* array) ;; (array int16) +;; (define-extern *scrap-book-2* array) ;; (array int16) +;; (define-extern *progress-save-info* object) ;; mc-slot-info +;; (define-extern post-memcard function) +;; (define-extern *game-name-entered* object) +;; (define-extern draw-language-select function) +;; (define-extern check-language function) +;; (define-extern *end-credits-proc* object) +;; (define-extern end-end-credits function) +;; (define-extern start-end-credits function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dynamic-patch ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *dynamic-patches* object) +;; (define-extern *dynamic-patch-size* object) +;; (define-extern dynamic-patch-hook function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; process-nettable ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype net-test (process-nettable) + ((spoon int32 :offset-assert 188) + ) + :method-count-assert 44 + :size-assert #xc0 + :flag-assert #x2c003000c0 + (:state-methods + running ;; 42 + die ;; 43 + ) + ) +|# + +;; (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-test-init-by-other function) +;; (define-extern spawn-local function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-player ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-rev-manager (process) + ((vehicle uint64 :offset-assert 144) + (state-time uint32 :offset-assert 152) + (throttle float :offset-assert 156) + (on-period uint32 :offset-assert 160) + (off-period uint32 :offset-assert 164) + (long-period uint32 :offset-assert 168) + (wait-period uint32 :offset-assert 172) + (pulse-count int8 :offset-assert 176) + (i-pulse int8 :offset-assert 177) + ) + :method-count-assert 17 + :size-assert #xb2 + :flag-assert #x11003000b2 + (:methods + (vehicle-rev-manager-method-9 () none) ;; 9 + (vehicle-rev-manager-method-10 () none) ;; 10 + (vehicle-rev-manager-method-11 () none) ;; 11 + (vehicle-rev-manager-method-12 () none) ;; 12 + (vehicle-rev-manager-method-13 () none) ;; 13 + (vehicle-rev-manager-method-14 () none) ;; 14 + (vehicle-rev-manager-method-16 () none) ;; 16 + ) + (:state-methods + idle ;; 15 + ) + ) +|# + +;; (define-extern *target-cam-off-time* object) +;; (define-extern update-active-net-players function) +;; (define-extern net-player-default-handler function) +;; (define-extern use-target-cam-base-helper function) +;; (define-extern net-player-init-local function) +;; (define-extern clear-local-players function) +;; (define-extern playback-cam function) +;; (define-extern all-players-spawned-vehicles? function) +;; (define-extern local-human-player-above-height? function) +;; (define-extern find-ground-info function) +;; (define-extern get-player-pos function) +;; (define-extern vehicle-rev-manager-init-by-other function) +;; (define-extern vehicle-rev-manager-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype auto-test-levels (process) + ((cur-task int32 :offset-assert 144) + ) + :method-count-assert 16 + :size-assert #x94 + :flag-assert #x1000100094 + (:methods + (auto-test-levels-method-9 () none) ;; 9 + (auto-test-levels-method-10 () none) ;; 10 + (auto-test-levels-method-11 () none) ;; 11 + (auto-test-levels-method-12 () none) ;; 12 + (auto-test-levels-method-13 () none) ;; 13 + (auto-test-levels-method-14 () none) ;; 14 + ) + (:state-methods + running ;; 15 + ) + ) +|# + +;; (define-extern *closest-player-dist-sq* object) +;; (define-extern get-closest-human-player function) +;; (define-extern get-closest-human-or-ai-player function) +;; (define-extern search-for-code function) +;; (define-extern *poop* object) +;; (define-extern *pooplen* object) +;; (define-extern test-patch function) +;; (define-extern long-game2 function) +;; (define-extern *channel-id-ct* object) +;; (define-extern *channel-ids* object) +;; (define-extern *user-ct* object) +;; (define-extern broadcast-message function) +;; (define-extern *auto-test-break* object) +;; (define-extern check-entities function) +;; (define-extern auto-test-node function) +;; (define-extern auto-test-levels-init-by-other function) +;; (define-extern auto-test-levels-start function) +;; (define-extern check-levels function) +;; (define-extern *sound-clone* object) +;; (define-extern *sound-info-fields* array) +;; (define-extern *tmp-line* object) +;; (define-extern *tmp-buf* object) +;; (define-extern *tmp-buf-len* object) +;; (define-extern read-sound-line function) +;; (define-extern crappy-atof function) +;; (define-extern tweak-sound function) +;; (define-extern read-sound-info-tweaks function) +;; (define-extern process-is-in-tree function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-predict ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-logging ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *lock-stream* file-stream) +;; (define-extern *lock-name* object) +;; (define-extern *net-log-stream* file-stream) +;; (define-extern *net-log-name* object) +;; (define-extern *net-ip-string* object) +;; (define-extern *net-log-buf-mem* object) +;; (define-extern *net-log-buf* object) +;; (define-extern *net-ip* object) +;; (define-extern *net-log-id* object) +;; (define-extern net-log-world-ident function) +;; (define-extern net-log-start function) +;; (define-extern net-log-remove-lock function) +;; (define-extern net-log-stop function) +;; (define-extern net-log-client function) +;; (define-extern net-log-msg function) +;; (define-extern net-log-comment function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-world ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern verify-drivers function) +;; (define-extern *net-world-load-levels* array) +;; (define-extern *net-world-display-levels* array) +;; (define-extern *net-world-load-levels2* array) +;; (define-extern *net-task-mask* object) +;; (define-extern *waiting-for-lock* object) +;; (define-extern *net-world-entity-hash* object) +;; (define-extern set-net-task-mask function) +;; (define-extern convert-load-parts-to-car-info function) +;; (define-extern convert-car-info-to-load-parts function) +;; (define-extern cleanup-at-game-end function) +;; (define-extern check-start-load function) +;; (define-extern *font-context-loading* object) +;; (define-extern do-loading-text function) +;; (define-extern *movie-string* object) +;; (define-extern do-movie function) +;; (define-extern wait-target-load function) +;; (define-extern load-sound-banks function) +;; (define-extern do-late-join function) +;; (define-extern *tmp-reset-string* object) +;; (define-extern *last-flash* object) +;; (define-extern check-host-timeout function) +;; (define-extern do-encode-net-world-state function) +;; (define-extern wait-for-lock function) +;; (define-extern wait-for-ghost-download function) +;; (define-extern save-vehicle-camera-inside-state function) +;; (define-extern set-net-world-time-of-day function) +;; (define-extern wait-for-lobby-to-die function) +;; (define-extern check-grand-prix-restart function) +;; (define-extern wait-for-levels function) +;; (define-extern get-ai-vehicle-cup-idx function) +;; (define-extern *tmp-string* string) +;; (define-extern set-continue-point-from-task function) +;; (define-extern *place-players* array) +;; (define-extern *place-player-ct* object) +;; (define-extern allow-machine-to-join function) +;; (define-extern allow-machine-to-join-rec function) +;; (define-extern *bkp-cols* object) +;; (define-extern do-decode-net-world-state function) +;; (define-extern player-connected? function) +;; (define-extern net-world-init-local function) +;; (define-extern init-local-world function) +;; (define-extern do-ghost-ai-setup function) +;; (define-extern get-non-conflicting-driver function) +;; (define-extern set-ai-vehicle function) +;; (define-extern request-game-start function) +;; (define-extern is-late-join? function) +;; (define-extern driver-allowed function) +;; (define-extern ai-driver-allowed function) +;; (define-extern get-total-humans function) +;; (define-extern get-total-skill-level function) +;; (define-extern get-player-clan-info function) +;; (define-extern lobby-level-set! function) +;; (define-extern set-player-car-from-level-array function) +;; (define-extern *in-end-of-race-preload* object) +;; (define-extern end-of-race-start-preload function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stream-media ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern init-stream-media-params function) +;; (define-extern stream-media-end-recording function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-projectile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern net-projectile-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; udp-layer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype udp-layer-machine (structure) + ((idx int8 :offset-assert 0) + (state int8 :offset-assert 1) + (state-enter-time int32 :offset-assert 4) + (last-time int32 :offset-assert 8) + (last-reply-time int32 :offset-assert 12) + (reachable-ip uint32 :offset-assert 16) + (reachable-port int32 :offset-assert 20) + (scert-ip uint32 :offset-assert 24) + ) + :method-count-assert 12 + :size-assert #x1c + :flag-assert #xc0000001c + (:methods + (udp-layer-machine-method-9 () none) ;; 9 + (udp-layer-machine-method-10 () none) ;; 10 + (udp-layer-machine-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype udp-layer (structure) + ((machines UNKNOWN 8 :offset-assert 0) + (socket int32 :offset-assert 256) + (data-cb basic :offset-assert 260) + (nat-discovery-time int32 :offset-assert 264) + (nat-discovery-tries int32 :offset-assert 268) + (nat-discovery-ip uint32 :offset-assert 272) + (nat-discovery-port int32 :offset-assert 276) + ) + :method-count-assert 20 + :size-assert #x118 + :flag-assert #x1400000118 + (:methods + (udp-layer-method-9 () none) ;; 9 + (udp-layer-method-10 () none) ;; 10 + (udp-layer-method-11 () none) ;; 11 + (udp-layer-method-12 () none) ;; 12 + (udp-layer-method-13 () none) ;; 13 + (udp-layer-method-14 () none) ;; 14 + (udp-layer-method-15 () none) ;; 15 + (udp-layer-method-16 () none) ;; 16 + (udp-layer-method-17 () none) ;; 17 + (udp-layer-method-18 () none) ;; 18 + (udp-layer-method-19 () none) ;; 19 + ) + ) +|# + +;; (define-extern *udp-buffer* object) +;; (define-extern *udp-layer* object) +;; (define-extern *nat-addr* object) +;; (define-extern udp-announce-msg-callback function) +;; (define-extern fw-test-2 function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; headset ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *headset-op-size* object) +;; (define-extern *headset-result* object) +;; (define-extern *decoder-queue-3-buf* object) +;; (define-extern *decoder-queue-2-buf* object) +;; (define-extern *decoder-queue-1-buf* object) +;; (define-extern *decoder-queue-0-buf* object) +;; (define-extern *decoder-queue-buffers* array) +;; (define-extern headset-init-by-other function) +;; (define-extern headset-activate function) +;; (define-extern headset-deactivate function) +;; (define-extern headset-audio-msg-callback function) +;; (define-extern headset-udp-callback function) +;; (define-extern should-talk-to function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; idle-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype idle-control-frame (structure) + ((command uint8 :offset-assert 0) ;; idle-control-cmd + (anim uint32 :offset-assert 4) + (param0 int32 :offset-assert 8) + (param1 int32 :offset-assert 12) + (param2 pair :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ;; field param2 uses ~A with a signed load. + ) +|# + +#| +(deftype idle-control (structure) + ((anim (inline-array idle-control-frame) :offset-assert 0) ;; guessed by decompiler + (anim-speed float :offset-assert 4) + (current-index int32 :offset-assert 8) + (counter int32 :offset-assert 12) + (target int32 :offset-assert 16) + ) + :method-count-assert 11 + :size-assert #x14 + :flag-assert #xb00000014 + (:methods + (idle-control-method-9 () none) ;; 9 ;; (init! (_type_ (inline-array idle-control-frame)) none) + (idle-control-method-10 () none) ;; 10 ;; (play-idle-frames! (_type_ process-drawable) none) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rigid-body-debug ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern adjust-playback-index function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rigid-body-surface ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *rigid-body-surfaces* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rigid-body ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype debug-rigid-body-move (structure) + ((vel-dot-norm float :offset-assert 0) + (time-step-scale float :offset-assert 4) + (best-u float :offset-assert 8) + (i-step int8 :offset-assert 12) + (proc2 basic :offset-assert 16) + (rbody2 basic :offset-assert 20) + (best-my-prim basic :offset-assert 24) + (bsphere sphere :inline :offset-assert 32) + (impact-info rigid-body-impact :inline :offset-assert 48) + (rbody rigid-body-control :inline :offset-assert 132) + ) + :method-count-assert 9 + :size-assert #x1b4 + :flag-assert #x9000001b4 + ) +|# + +#| +(deftype rigid-body-work (structure) + ((max-ang-momentum float :offset-assert 0) + (max-ang-velocity float :offset-assert 4) + (pid uint32 :offset-assert 8) + (step-count int8 :offset-assert 12) + (debug-history UNKNOWN 16 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x1c10 + :flag-assert #x900001c10 + ) +|# + +#| +(deftype rb-penalty-forces-work (structure) + ((impact-info rigid-body-impact :inline :offset-assert 0) + (impact-info2 rigid-body-impact :inline :offset-assert 80) + (force vector :inline :offset-assert 160) + (tmp vector :inline :offset-assert 176) + (surf-this vector :inline :offset-assert 192) + (surf-other vector :inline :offset-assert 208) + (vel vector :inline :offset-assert 224) + (vel2 vector :inline :offset-assert 240) + (len2 float :offset-assert 256) + (overlap-count int8 :offset-assert 260) + (prim-count int8 :offset-assert 261) + (prim-ctr int8 :offset-assert 262) + (i-cprim int8 :offset-assert 263) + (penetrated-by uint64 :offset-assert 264) + ) + :method-count-assert 9 + :size-assert #x110 + :flag-assert #x900000110 + ) +|# + +#| +(deftype check-line-spheres-hack-params (structure) + ((time-step float :offset-assert 0) + (mat matrix :offset-assert 4) + (cquery collide-query :offset-assert 8) + (rbody basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype hack-line-sphere (structure) + ((spheres UNKNOWN 2 :offset-assert 0) + (prim basic :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype check-line-spheres-hack-work (structure) + ((fill-sphere sphere :inline :offset-assert 0) + (fill-delta vector :inline :offset-assert 16) + (delta vector :inline :offset-assert 32) + (line-spheres UNKNOWN 4 :offset-assert 48) + (cshape basic :offset-assert 176) + (collide-with uint32 :offset-assert 180) + (group-collide-with uint32 :offset-assert 184) + (group-collide-as uint32 :offset-assert 188) + (actor-count int8 :offset-assert 192) + (prim-count int8 :offset-assert 193) + (lsphere-count int8 :offset-assert 194) + (search-result-array UNKNOWN 10 :offset-assert 196) + ) + :method-count-assert 9 + :size-assert #xec + :flag-assert #x9000000ec + ) +|# + +#| +(deftype ray-tube-intersect-params (structure) + ((ray-start sphere :inline :offset-assert 0) + (ray-extrude vector :inline :offset-assert 16) + (tube-start vector :inline :offset-assert 32) + (tube-extrude vector :inline :offset-assert 48) + (tube-radius float :offset-assert 64) + (tt float :offset-assert 68) + (intersect vector :inline :offset-assert 80) + (normal vector :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype rigid-body-move-work (structure) + ((cquery collide-query :inline :offset-assert 0) + (mat matrix :inline :offset-assert 544) + (impact-info rigid-body-impact :inline :offset-assert 608) + (impact-info2 rigid-body-impact :inline :offset-assert 688) + (orig-position vector :inline :offset-assert 768) + (orig-rotation quaternion :inline :offset-assert 784) + (force vector :inline :offset-assert 800) + (vel vector :inline :offset-assert 816) + (p-body vector :inline :offset-assert 832) + (tmp vector :inline :offset-assert 848) + (tangent-dir vector :inline :offset-assert 864) + (proc2 process-focusable :offset-assert 880) ;; guessed by decompiler + (rbody2 rigid-body-control :offset-assert 884) ;; guessed by decompiler + (vel-dot-norm float :offset-assert 888) + (denom float :offset-assert 892) + (denom2 float :offset-assert 896) + (bounce-factor float :offset-assert 900) + (friction-factor float :offset-assert 904) + (time-step float :offset-assert 908) + (time-step-scale float :offset-assert 912) + (penetrate-depth float :offset-assert 916) + (material uint64 :offset-assert 920) + (surface-type uint8 :offset-assert 928) + (surface rigid-body-surface :offset-assert 932) + (step-count int8 :offset-assert 936) + (start-time uint32 :offset-assert 940) + (end-time uint32 :offset-assert 944) + ) + :method-count-assert 9 + :size-assert #x3b4 + :flag-assert #x9000003b4 + ) +|# + +;; (define-extern *debug-move-rigid-body* object) +;; (define-extern *rigid-body-work* object) ;; rigid-body-work +;; (define-extern debug-draw-rigid-body-move function) +;; (define-extern matrix-3x3-triple-transpose-product function) ;; (function matrix matrix matrix matrix) +;; (define-extern damping-time-adjust function) ;; (function float float float) +;; (define-extern apply-overlap-penalty-forces function) +;; (define-extern ray-tube-intersect function) +;; (define-extern collide-sphere-with-line-sphere-hack function) +;; (define-extern check-vehicle-line-spheres-hack function) +;; (define-extern transform-rigid-body-prims function) ;; (function collide-shape-prim matrix symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rigid-body-queue ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rb-line-sphere-test (structure) + ((params ray-tube-intersect-params :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype rigid-body-queue-manager (process) + ((queue rigid-body-queue :offset-assert 144) + (time-val uint32 :offset-assert 148) + (pad uint32 :offset-assert 152) + (state-time uint64 :offset-assert 160) + (delay uint32 :offset-assert 168) + (times UNKNOWN 4 :offset-assert 172) + ) + :method-count-assert 16 + :size-assert #xbc + :flag-assert #x10003000bc + (:methods + (rigid-body-queue-manager-method-9 () none) ;; 9 + (rigid-body-queue-manager-method-10 () none) ;; 10 + (rigid-body-queue-manager-method-11 () none) ;; 11 + (rigid-body-queue-manager-method-12 () none) ;; 12 + (rigid-body-queue-manager-method-13 () none) ;; 13 + (rigid-body-queue-manager-method-14 () none) ;; 14 ;; (idle () _type_ :state) + ) + (:state-methods + idle ;; 15 + ) + ) +|# + +;; (define-extern *rigid-body-queue* object) +;; (define-extern *rigid-body-queue-manager* object) ;; rigid-body-queue-manager +;; (define-extern *rb-line-sphere-test* object) +;; (define-extern rb-line-sphere-test-update function) +;; (define-extern rb-reset-perf-array function) +;; (define-extern rb-reset-perf-times function) +;; (define-extern rb-get-perf function) +;; (define-extern *rb-raw-time-val* object) +;; (define-extern rb-cpu-delay function) +;; (define-extern rigid-body-queue-manager-post function) +;; (define-extern rigid-body-queue-manager-init-by-other function) ;; (function rigid-body-queue object :behavior rigid-body-queue-manager) +;; (define-extern rigid-body-queue-manager-spawn function) ;; (function rigid-body-queue process-tree process) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rigid-body-object ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *rigid-body-object-constants* object) ;; rigid-body-object-constants +;; (define-extern rigid-body-object-event-handler function) ;; (function process int symbol event-message-block object :behavior rigid-body-object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; scene-actor ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ragdoll-test ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ragdoll-test (process-focusable) + ((ragdoll-proc uint64 :offset-assert 256) ;; handle + ) + :method-count-assert 64 + :size-assert #x108 + :flag-assert #x4000800108 + (:state-methods + reform ;; 59 + tweak ;; 60 + freefall-reform ;; 61 + freefall ;; 62 + idle ;; 63 + ) + ) +|# + +;; (define-extern *ragdoll-test-ragdoll-setup* object) ;; ragdoll-setup +;; (define-extern ragdoll-test-init-by-other function) ;; (function ragdoll-setup entity-actor object :behavior ragdoll-test) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spartacus ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spartacus-birth-func-set-color function) +;; (define-extern spt-birth-func-spartacus-part-steam function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype helmet (structure) + ((node-list basic :offset-assert 0) + (draw basic :offset-assert 4) + (node-index int8 :offset-assert 8) + (scale float :offset-assert 12) + ) + :method-count-assert 12 + :size-assert #x10 + :flag-assert #xc00000010 + (:methods + (helmet-method-9 () none) ;; 9 + (helmet-method-10 () none) ;; 10 + (helmet-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype driver-initialize-params (structure) + ((vehicle basic :offset-assert 0) + (level-slot int8 :offset-assert 4) + (driver-type uint8 :offset-assert 5) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype driver-info (structure) + ((skel basic :offset-assert 0) + (turn-back-anim int8 :offset-assert 4) + (turn-front-anim int8 :offset-assert 5) + (up-down-anim int8 :offset-assert 6) + (intro-anim UNKNOWN 4 :offset-assert 7) + (head-node int8 :offset-assert 11) + (arm0-node int8 :offset-assert 12) + (arm1-node int8 :offset-assert 13) + (arm0-dist float :offset-assert 16) + (arm1-dist float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype joint-mod-head (joint-mod) + ((mode uint32 :offset-assert 0) + (process basic :offset-assert 4) + (joint cspace :offset-assert 8) + (target vector :inline :offset-assert 12) + (twist vector :inline :offset-assert 28) + (twist-max vector :inline :offset-assert 44) + (extra-twist deg :offset-assert 36) + (track-mode track-mode :offset-assert 40) + (look-at-count uint16 :offset-assert 42) + (twist-range-x meters :offset-assert 52) + (twist-range-y meters :offset-assert 56) + (twist-speed-x float :offset-assert 60) + (twist-speed-y float :offset-assert 64) + (trans vector :inline :offset-assert 76) + (smushy-old float :offset-assert 76) + (smushy-off float :offset-assert 80) + (smushyv float :offset-assert 84) + (quat quaternion :inline :offset-assert 92) + (scale vector :inline :offset-assert 108) + (notice-time uint64 :offset-assert 124) + (flex-blend float :offset-assert 132) + (blend float :offset-assert 136) + (old-blend float :offset-assert 140) + (max-dist meters :offset-assert 144) + (ignore-angle deg :offset-assert 148) + (up uint8 :offset-assert 152) + (nose uint8 :offset-assert 153) + (ear uint8 :offset-assert 154) + (base-joint uint8 :offset-assert 155) + (base-nose uint8 :offset-assert 156) + (shutting-down? basic :offset-assert 160) + (parented-scale? basic :offset-assert 164) + ) + :method-count-assert 16 + :size-assert #xac + :flag-assert #x10000000ac + ;; field track-mode is likely a value type. + ) +|# + +#| +(deftype driver (process-focusable) + ((info driver-info :inline :offset-assert 256) + (vehicle uint64 :offset-assert 280) + (speech-time uint64 :offset-assert 288) + (anim-vel vector :inline :offset-assert 304) + (anim-pos vector :inline :offset-assert 320) + (turn-back-anim int8 :offset-assert 336) + (turn-front-anim int8 :offset-assert 337) + (up-down-anim int8 :offset-assert 338) + (intro-anim UNKNOWN 4 :offset-assert 339) + (jmod-head basic :offset-assert 344) + (arm-ik UNKNOWN 2 :offset-assert 348) + (looking-at uint64 :offset-assert 360) + (looking-at-timeout int32 :offset-assert 368) + (helmet helmet :inline :offset-assert 372) + ) + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + (:methods + (driver-method-62 () none) ;; 62 + (driver-method-63 () none) ;; 63 + (driver-method-64 () none) ;; 64 + (driver-method-65 () none) ;; 65 + (driver-method-66 () none) ;; 66 + ) + (:state-methods + idle ;; 59 + intro ;; 60 + die ;; 61 + ) + ) +|# + +;; (define-extern joint-mod-head-handler function) +;; (define-extern driver-trans function) +;; (define-extern driver-post function) +;; (define-extern driver-head function) +;; (define-extern driver-anim function) +;; (define-extern driver-event-handler function) +;; (define-extern driver-init-by-other function) +;; (define-extern driver-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; helmet ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype helmet-hud (process-drawable) + () + :method-count-assert 52 + :size-assert #xf8 + :flag-assert #x34007000f8 + (:methods + (helmet-hud-method-51 () none) ;; 51 + ) + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype helmet-garage (process-drawable) + ((offset vector :inline :offset-assert 256) + (hud-handle uint64 :offset-assert 272) + (vehicle-level basic :offset-assert 280) + ) + :method-count-assert 52 + :size-assert #x11c + :flag-assert #x340090011c + (:methods + (helmet-garage-method-51 () none) ;; 51 + ) + (:state-methods + idle ;; 50 + ) + ) +|# + +;; (define-extern helmet-hud-init-by-other function) +;; (define-extern helmet-hud-spawn function) +;; (define-extern helmet-garage-init-by-other function) +;; (define-extern helmet-garage-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-jak ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-jak (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-ashelin ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-ashelin (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-razer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-razer (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-klever ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-klever (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-kiera ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-kiera (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-thug-a ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-thug-a (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-thug-b ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-thug-b (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-thug-c ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-thug-c (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-taryn ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-taryn (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-torn ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-torn (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-sig ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-sig (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-ur-86 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-ur-86 (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-kaeden ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-kaeden (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-rayn ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-rayn (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-ratchet ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-ratchet (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-jaka ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-jaka (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-jakb ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-jakb (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-jakc ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-jakc (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-daxter ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-daxter (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-gtblitz ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-gtblitz (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-pecker ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-pecker (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-ximon ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-ximon (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; driver-osmo ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype driver-osmo (driver) + () + :method-count-assert 67 + :size-assert #x184 + :flag-assert #x4301000184 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype target-camera-runtime-info (structure) + ((active basic :offset-assert 0) + (shot uint64 :offset-assert 8) + (mirror basic :offset-assert 16) + (need-new-cam basic :offset-assert 20) + (prefix basic :offset-assert 24) + (interp float :offset-assert 28) + (last-good-los int32 :offset-assert 32) + (cur-cam-idx int8 :offset-assert 36) + (num-camera-changes int8 :offset-assert 37) + (cur-trans vector :inline :offset-assert 48) + (cur-quat quaternion :inline :offset-assert 64) + (interp-from-trans vector :inline :offset-assert 80) + (interp-from-quat quaternion :inline :offset-assert 96) + (vehicle-release-timer uint64 :offset-assert 112) + (state-time uint64 :offset-assert 120) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype crash-camera (basic) + ((camera-type uint64 :offset-assert 8) + (world-position vector :inline :offset-assert 16) + (last-target-position vector :inline :offset-assert 32) + (rating float :offset-assert 48) + (master-mult float :offset-assert 52) + (offset vector :inline :offset-assert 64) + (follow float :offset-assert 80) + (percent-delta-y-move float :offset-assert 84) + (diverge-distance float :offset-assert 88) + (zoom-factor float :offset-assert 92) + (start-time int32 :offset-assert 96) + (sparks-reset-in int32 :offset-assert 100) + (camera-rotation float :offset-assert 104) + (likelyhood float :offset-assert 108) + (group int32 :offset-assert 112) + (camera-valid? basic :offset-assert 116) + (allow-shake? basic :offset-assert 120) + (last-visible-check-time int32 :offset-assert 124) + (last-car-visible-time int32 :offset-assert 128) + (force-cut basic :offset-assert 132) + (force-freeze basic :offset-assert 136) + ) + :method-count-assert 19 + :size-assert #x8c + :flag-assert #x130000008c + (:methods + (crash-camera-method-9 () none) ;; 9 + (crash-camera-method-10 () none) ;; 10 + (crash-camera-method-11 () none) ;; 11 + (crash-camera-method-12 () none) ;; 12 + (crash-camera-method-13 () none) ;; 13 + (crash-camera-method-14 () none) ;; 14 + (crash-camera-method-15 () none) ;; 15 + (crash-camera-method-16 () none) ;; 16 + (crash-camera-method-17 () none) ;; 17 + (crash-camera-method-18 () none) ;; 18 + ) + ) +|# + +#| +(deftype victor-prefix-camera (crash-camera) + () + :method-count-assert 19 + :size-assert #x8c + :flag-assert #x130000008c + ) +|# + +#| +(deftype target-camera (basic) + ((offset-mode basic :offset-assert 4) + (behind-offset float :offset-assert 8) + (up-offset float :offset-assert 12) + (perp-offset float :offset-assert 16) + (look-at-along float :offset-assert 20) + (fov float :offset-assert 24) + (flags uint64 :offset-assert 32) + ) + :method-count-assert 11 + :size-assert #x28 + :flag-assert #xb00000028 + (:methods + (target-camera-method-9 () none) ;; 9 + (target-camera-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype vehicle-AI-control-timer (process) + ((timeout int32 :offset-assert 144) + (veh uint64 :offset-assert 152) + (cam-timer float :offset-assert 160) + ) + :method-count-assert 16 + :size-assert #xa4 + :flag-assert #x10002000a4 + (:methods + (vehicle-AI-control-timer-method-9 () none) ;; 9 + (vehicle-AI-control-timer-method-10 () none) ;; 10 + (vehicle-AI-control-timer-method-11 () none) ;; 11 + (vehicle-AI-control-timer-method-12 () none) ;; 12 + (vehicle-AI-control-timer-method-13 () none) ;; 13 + (vehicle-AI-control-timer-method-14 () none) ;; 14 + ) + (:state-methods + idle ;; 15 + ) + ) +|# + +;; (define-extern cam-fixed state) ;; (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) +;; (define-extern cam-standoff-read-entity state) ;; (state camera-slave) +;; (define-extern cam-curve-closest-point function) ;; (function curve vector float float int float) +;; (define-extern cam-spline state) ;; (state camera-slave) +;; (define-extern cam-decel state) ;; (state camera-slave) +;; (define-extern cam-endlessfall state) ;; (state camera-slave) +;; (define-extern cam-vehicle-update function) +;; (define-extern cam-vehicle state) +;; (define-extern *target-camera-runtime* object) +;; (define-extern target-cam-runtime-push function) +;; (define-extern *freeze-camera* array) +;; (define-extern *crash-camera-array* array) +;; (define-extern *crash-camera-force-position* object) +;; (define-extern *crash-camera-force-position-valid* object) +;; (define-extern *target-time-speed* object) +;; (define-extern target-time-go-slow function) +;; (define-extern target-time-go-normal function) +;; (define-extern *plow-camera* array) +;; (define-extern choose-crash-camera function) +;; (define-extern cam-vehicle-crash state) +;; (define-extern *camera-training-lifetime* object) +;; (define-extern set-training-camera-lifetime function) +;; (define-extern cam-training state) +;; (define-extern *victor-prefix-camera-array* array) +;; (define-extern choose-victor-prefix-camera function) +;; (define-extern target-camera-active? function) +;; (define-extern *target-camera-array* array) +;; (define-extern vehicle-AI-control-timer-init-by-other function) +;; (define-extern target-camera-heuristic-cam-point! function) +;; (define-extern target-camera-heuristic-look-at! function) +;; (define-extern target-camera-heuristic-fov function) +;; (define-extern target-camera-test-los function) +;; (define-extern choose-target-camera function) +;; (define-extern camera-go-target function) +;; (define-extern cam-akira-mode-enter function) +;; (define-extern cam-vehicle-shot state) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-states-dbg ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cam-point-watch-bank (basic) + ((speed float :offset-assert 4) + (rot-speed deg :offset-assert 8) ;; degrees + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype cam-free-bank (basic) + ((speed float :offset-assert 4) + (rot-speed deg :offset-assert 8) ;; degrees + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype camera-free-floating-move-info (structure) + ((rv vector :inline :offset-assert 0) + (tv vector :inline :offset-assert 16) + (up vector :inline :offset-assert 32) + (tm matrix :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +;; (define-extern *CAM_POINT_WATCH-bank* cam-point-watch-bank) ;; cam-point-watch-bank +;; (define-extern cam-point-watch state) ;; (state camera-slave) +;; (define-extern *CAM_FREE-bank* cam-free-bank) ;; cam-free-bank +;; (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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-jak ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-daxter ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-pecker ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-gtblitz ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-mizo ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sparticle-vehicle-direction-light function) +;; (define-extern sparticle-sparks-birth function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-debris ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-debris-init-params (structure) + ((mat matrix :inline :offset-assert 0) + (velocity vector :inline :offset-assert 64) + (ang-velocity vector :inline :offset-assert 80) + (color rgbaf :inline :offset-assert 96) + (radius float :offset-assert 112) + (skel basic :offset-assert 116) + (info rigid-body-object-constants :offset-assert 120) + (level basic :offset-assert 124) + (impact-sound uint16 :offset-assert 128) + (has-particles basic :offset-assert 132) + ) + :method-count-assert 9 + :size-assert #x88 + :flag-assert #x900000088 + ) +|# + +#| +(deftype vehicle-debris (rigid-body-object) + ((impact-sound uint16 :offset-assert 288) + (camera-dist float :offset-assert 292) + ) + :method-count-assert 92 + :size-assert #x128 + :flag-assert #x5c00a00128 + (:state-methods + explode ;; 89 + fade-out ;; 90 + die ;; 91 + ) + ) +|# + +;; (define-extern *vehicle-debris-constants* object) +;; (define-extern vehicle-debris-init-by-other function) +;; (define-extern vehicle-debris-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern calc-fade-vals function) ;; (function float none) +;; (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-draw-thruster function) ;; (function vehicle-particle-common-info vehicle-draw-thruster-params none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *debug-vehicle-work* debug-vehicle-work) ;; debug-vehicle-work +;; (define-extern *tmp-vehicle-info* object) +;; (define-extern *tmp-rigid-body-control* object) +;; (define-extern *vehicle-shadow-control* shadow-control) ;; shadow-control +;; (define-extern *vehicle-shadow-control-disabled* shadow-control) ;; shadow-control +;; (define-extern vehicle-event-handler function) ;; (function process int symbol event-message-block object :behavior vehicle) +;; (define-extern get-player-id function) +;; (define-extern twiddle-collision-cache-verts function) +;; (define-extern vehicle-damage-local-space-0 function) +;; (define-extern vehicle-damage-local-space-1 function) +;; (define-extern get-vehicle-player-id function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-skel-template ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *car-part-temp-string* string) +;; (define-extern get-car-skel-part function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *car-part-art-group-names* array) +;; (define-extern *v-tmp-str* string) +;; (define-extern debug-draw-merc function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-physics ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern vehicle-idle-post function) +;; (define-extern player-wait-control-hook function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-manager ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-manager (process) + ((name string :offset-assert 0) ;; guessed by decompiler + (mask process-mask :offset-assert 4) + (clock clock :offset-assert 8) ;; guessed by decompiler + (view basic :offset-assert 12) + (parent (pointer process-tree) :offset-assert 16) ;; guessed by decompiler + (brother (pointer process-tree) :offset-assert 20) ;; guessed by decompiler + (child (pointer process-tree) :offset-assert 24) ;; guessed by decompiler + (ppointer (pointer process) :offset-assert 28) ;; guessed by decompiler + (self process :offset-assert 32) ;; guessed by decompiler + (profile-ticks uint32 :offset-assert 36) + (pool dead-pool :offset-assert 40) ;; guessed by decompiler + (status symbol :offset-assert 44) ;; guessed by decompiler + (pid int32 :offset-assert 48) + (main-thread cpu-thread :offset-assert 52) ;; guessed by decompiler + (top-thread cpu-thread :offset-assert 56) ;; guessed by decompiler + (entity entity-actor :offset-assert 60) ;; guessed by decompiler + (level level :offset-assert 64) ;; guessed by decompiler + (state state :offset-assert 68) ;; guessed by decompiler + (prev-state state :offset-assert 72) ;; guessed by decompiler + (next-state state :offset-assert 76) ;; guessed by decompiler + (state-stack (array state) :offset-assert 80) ;; guessed by decompiler + (trans-hook function :offset-assert 84) ;; guessed by decompiler + (post-hook function :offset-assert 88) ;; guessed by decompiler + (event-hook (function process int symbol event-message-block object) :offset-assert 92) ;; guessed by decompiler + (allocated-length int32 :offset-assert 96) + (heap-base pointer :offset-assert 108) ;; guessed by decompiler + (heap-top pointer :offset-assert 112) ;; guessed by decompiler + (heap-cur pointer :offset-assert 116) ;; guessed by decompiler + (stack-frame-top stack-frame :offset-assert 120) ;; guessed by decompiler + (heap kheap :inline :offset-assert 108) + (connection-list connectable :inline :offset-assert 124) + (stack uint8 :dynamic :offset-assert 140) ;; guessed by decompiler + ) + :method-count-assert 19 + :size-assert #x90 + :flag-assert #x1300000090 + (:methods + (vehicle-manager-method-9 () none) ;; 9 + (vehicle-manager-method-10 () none) ;; 10 + (vehicle-manager-method-11 () none) ;; 11 + (vehicle-manager-method-12 () none) ;; 12 + (vehicle-manager-method-13 () none) ;; 13 + (vehicle-manager-method-14 () none) ;; 14 ;; (idle () _type_ :state) + (vehicle-manager-method-17 () none) ;; 17 ;; (vehicle-manager-method-17 (_type_) none) + (vehicle-manager-method-18 () none) ;; 18 + ) + (:state-methods + idle ;; 15, old: (active () _type_ :state) + active ;; 16, old: (vehicle-manager-method-16 (_type_) none) + ) + ) +|# + +;; (define-extern vehicle-manager-event-handler function) ;; (function process int symbol event-message-block object :behavior vehicle-manager) +;; (define-extern vehicle-manager-init-by-other function) ;; (function object :behavior vehicle-manager) +;; (define-extern vehicle-manager-start function) ;; (function process none) +;; (define-extern vehicle-manager-kill function) ;; (function none) +;; (define-extern *car-appearance-hack* object) +;; (define-extern *car-info-default* object) +;; (define-extern vehicle-init-by-other function) ;; (function int traffic-object-spawn-params object :behavior vehicle) +;; (define-extern vehicle-idx-from-level-name function) +;; (define-extern vehicle-in-level? function) +;; (define-extern vehicle-spawn function) ;; (function vehicle-type traffic-object-spawn-params process-drawable) +;; (define-extern find-vehicle function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-hud ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-net ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-net-state (structure) + ((hit-points float :offset-assert 0) + (flags uint8 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x5 + :flag-assert #x900000005 + ) +|# + +#| +(deftype vehicle-net-construction (structure) + ((vehicle-type uint8 :offset-assert 0) + (pos vector :inline :offset-assert 16) + (rot quaternion :inline :offset-assert 32) + (player-id int8 :offset-assert 48) + (behavior uint64 :offset-assert 56) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +;; (define-extern *vehicle-remote-spawn-data* object) +;; (define-extern *last-latencies* object) +;; (define-extern encode-vehicle-net-state function) +;; (define-extern decode-vehicle-net-state function) +;; (define-extern encode-vehicle-net-construction function) +;; (define-extern decode-vehicle-net-construction function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-pilot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-pilot-post function) ;; (function none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pilot-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; find-nearest ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype search-info (structure) + ((point vector :inline :offset-assert 0) + (best-point vector :inline :offset-assert 16) + (match-handle uint64 :offset-assert 32) ;; handle + (match process-focusable :offset-assert 40) ;; guessed by decompiler + (best float :offset-assert 44) + (radius float :offset-assert 48) + (rating search-info-flag :offset-assert 52) + (require search-info-flag :offset-assert 56) + (mask search-info-flag :offset-assert 60) + (rot-base vector :inline :offset-assert 64) + (back-point vector :inline :offset-assert 80) + (rot-range float :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x64 + :flag-assert #x900000064 + ) +|# + +;; (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 in-process-array? function) +;; (define-extern fst-insertion-helper function) +;; (define-extern find-sorted-targets! function) +;; (define-extern find-sorted-targets-faster! function) +;; (define-extern sorted-targ-validator-test-collision function) +;; (define-extern sorted-targ-validator-is-player-vehicle function) +;; (define-extern sorted-targ-validator-is-any-vehicle function) +;; (define-extern sorted-targ-validator-player-needs-los function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; glist-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype glst-node (structure) + ((next glst-node :offset-assert 0) + (prev glst-node :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype glst-named-node (glst-node) + ((privname string :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype glst-list (structure) + ((head glst-node :offset-assert 0) + (tail glst-node :offset-assert 4) + (tailpred glst-node :offset-assert 8) + (numelem int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern glst-next function) ;; (function glst-node glst-node) +;; (define-extern glst-prev function) ;; (function glst-node glst-node) +;; (define-extern glst-head function) ;; (function glst-list glst-node) +;; (define-extern glst-tail function) ;; (function glst-list glst-node) +;; (define-extern glst-end-of-list? function) ;; (function glst-node symbol) +;; (define-extern glst-start-of-list? function) ;; (function glst-node symbol) +;; (define-extern glst-empty? function) ;; (function glst-list symbol) +;; (define-extern glst-node-name function) ;; (function glst-named-node string) +;; (define-extern glst-set-name! function) ;; (function glst-named-node string string) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; glist ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern glst-num-elements function) ;; (function glst-list int) +;; (define-extern glst-remove function) ;; (function glst-list glst-node glst-node) +;; (define-extern glst-remove-tail function) ;; (function glst-list glst-node) +;; (define-extern glst-remove-head function) ;; (function glst-list glst-node) +;; (define-extern glst-insert-before function) ;; (function glst-list glst-node glst-node glst-node) +;; (define-extern glst-insert-after function) ;; (function glst-list glst-node glst-node glst-node) +;; (define-extern glst-add-tail function) ;; (function glst-list glst-node glst-node) +;; (define-extern glst-add-head function) ;; (function glst-list glst-node glst-node) +;; (define-extern glst-init-list! function) ;; (function glst-list glst-list) +;; (define-extern glst-find-node-by-name function) ;; (function glst-list string glst-node) +;; (define-extern glst-get-node-by-index function) ;; (function glst-list int glst-node) +;; (define-extern glst-length-of-longest-name function) ;; (function glst-list int) +;; (define-extern glst-get-node-index function) ;; (function glst-list glst-node int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; anim-tester ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype list-control (structure) + ((listfunc (function int list-control symbol) :offset-assert 0) ;; guessed by decompiler + (list-owner uint32 :offset-assert 4) + (top int32 :offset-assert 8) + (left int32 :offset-assert 12) + (list glst-list :offset-assert 16) + (the-node glst-node :offset-assert 20) + (top-index int32 :offset-assert 24) + (the-index int32 :offset-assert 28) + (the-disp-line int32 :offset-assert 32) + (highlight-index int32 :offset-assert 36) + (current-index int32 :offset-assert 40) + (numlines int32 :offset-assert 44) + (lines-to-disp int32 :offset-assert 48) + (charswide int32 :offset-assert 52) + (highlight-disp-line int32 :offset-assert 56) + (field-id int32 :offset-assert 60) + (xpos int32 :offset-assert 64) + (ypos int32 :offset-assert 68) + (user-info int32 :offset-assert 72) + (return-int int32 :offset-assert 76) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype list-field (structure) + ((left int32 :offset-assert 0) + (width int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype DISP_LIST-bank (basic) + ((V_SPACING int32 :offset-assert 4) + (BORDER_WIDTH int32 :offset-assert 8) + (BORDER_HEIGHT int32 :offset-assert 12) + (MAX_LINES int32 :offset-assert 16) + (CHAR_WIDTH int32 :offset-assert 20) + (INC_DELAY int32 :offset-assert 24) + (BORDER_LINES int32 :offset-assert 28) + (CXOFF int32 :offset-assert 32) + (CYOFF int32 :offset-assert 36) + (BXOFF int32 :offset-assert 40) + (BYOFF int32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype anim-tester-bank (basic) + ((ANIM_SPEED float :offset-assert 4) + (BLEND float :offset-assert 8) + (OBJECT_LIST_X int32 :offset-assert 12) + (OBJECT_LIST_Y int32 :offset-assert 16) + (OBJECT_LIST_MIN_WIDTH int32 :offset-assert 20) + (ANIM_LIST_X int32 :offset-assert 24) + (ANIM_LIST_Y int32 :offset-assert 28) + (ANIM_LIST_MIN_WIDTH int32 :offset-assert 32) + (PICK_LIST_X int32 :offset-assert 36) + (PICK_LIST_Y int32 :offset-assert 40) + (PICK_LIST_MIN_WIDTH int32 :offset-assert 44) + (EDIT_LIST_X int32 :offset-assert 48) + (EDIT_LIST_Y int32 :offset-assert 52) + (EDIT_STATS_X int32 :offset-assert 56) + (EDIT_LIST_MIN_WIDTH int32 :offset-assert 60) + (EDIT_PICK_X int32 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +;; anim-tester is already defined! + +#| +(deftype anim-test-obj (glst-named-node) + ((obj-art-group basic :offset-assert 12) + (seq-list glst-list :inline :offset-assert 16) + (flags int32 :offset-assert 32) + (mesh-geo basic :offset-assert 36) + (joint-geo basic :offset-assert 40) + (list-con list-control :inline :offset-assert 44) + (parent uint32 :offset-assert 124) + (anim-index int32 :offset-assert 128) + (anim-hindex int32 :offset-assert 132) + (seq-index int32 :offset-assert 136) + (seq-hindex int32 :offset-assert 140) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +#| +(deftype anim-test-sequence (glst-named-node) + ((item-list glst-list :inline :offset-assert 12) + (playing-item int32 :offset-assert 28) + (flags int32 :offset-assert 32) + (list-con list-control :inline :offset-assert 36) + (parent anim-test-obj :offset-assert 116) + ) + :method-count-assert 9 + :size-assert #x78 + :flag-assert #x900000078 + ) +|# + +#| +(deftype anim-test-seq-item (glst-named-node) + ((speed int32 :offset-assert 12) + (blend int32 :offset-assert 16) + (first-frame float :offset-assert 20) + (last-frame float :offset-assert 24) + (num-frames float :offset-assert 28) + (artist-base float :offset-assert 32) + (flags int32 :offset-assert 36) + (parent anim-test-sequence :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +;; (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-test-obj-init function) +;; (define-extern anim-test-sequence-init function) +;; (define-extern anim-test-seq-item-copy! function) +;; (define-extern anim-test-obj-item-valid? function) +;; (define-extern anim-test-obj-remove-invalid function) +;; (define-extern anim-tester-real-post function) +;; (define-extern anim-tester-post function) +;; (define-extern anim-tester-update-anim-info function) +;; (define-extern anim-tester-reset function) +;; (define-extern anim-tester-disp-frame-num function) +;; (define-extern anim-tester-standard-event-handler function) +;; (define-extern anim-test-obj-list-handler function) +;; (define-extern anim-test-anim-list-handler function) +;; (define-extern anim-test-sequence-list-handler function) +;; (define-extern anim-test-field-highlight-lw object) +;; (define-extern anim-tester-adjust-frame function) +;; (define-extern anim-tester-pick-item-setup function) +;; (define-extern anim-test-seq-mark-as-edited function) +;; (define-extern anim-test-edit-seq-insert-item function) +;; (define-extern anim-test-edit-sequence-list-handler function) +;; (define-extern anim-tester-interface function) +;; (define-extern anim-tester-get-playing-item function) +;; (define-extern initialize-anim-tester function) +;; (define-extern anim-tester-string-get-frame!! function) +;; (define-extern anim-tester-load-object-seqs function) +;; (define-extern anim-tester-save-object-seqs function) +;; (define-extern anim-tester-save-all-objects function) +;; (define-extern anim-tester-add-newobj function) +;; (define-extern anim-tester-stop function) +;; (define-extern anim-tester-start function) ;; (function symbol) +;; (define-extern anim-tester-add-object function) ;; (function string none) +;; (define-extern anim-tester-set-name function) +;; (define-extern anim-tester-add-sequence function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; viewer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype viewer (process-drawable) + ((janim art-joint-anim :offset-assert 248) ;; guessed by decompiler + ) + :method-count-assert 50 + :size-assert #xfc + :flag-assert #x32007000fc + (:states + viewer-process ;; associated process guessed by decompiler, old: (state viewer) + ) + ) +|# + +;; (define-extern *viewer-sg* skeleton-group) ;; skeleton-group +;; (define-extern viewer-string object) ;; string +;; (define-extern viewer-ja-name object) ;; string +;; (define-extern viewer-geo-name object) ;; string +;; (define-extern actor-get-arg! function) ;; (function string string string symbol) +;; (define-extern art-part-name function) ;; (function string string) +;; (define-extern init-viewer function) ;; (function string string object :behavior viewer) +;; (define-extern init-viewer-for-other function) ;; (function string vector entity-actor object :behavior viewer) +;; (define-extern add-a-bunch function) ;; (function string int int float process-tree entity-actor symbol) +;; (define-extern birth-viewer function) ;; (function process entity-actor object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; part-tester ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype save-memcard (process) + ((name basic :offset-assert 4) + ) + :method-count-assert 19 + :size-assert #x94 + :flag-assert #x1300100094 + (:methods + (save-memcard-method-9 () none) ;; 9 + (save-memcard-method-10 () none) ;; 10 + (save-memcard-method-11 () none) ;; 11 + (save-memcard-method-12 () none) ;; 12 + (save-memcard-method-13 () none) ;; 13 + (save-memcard-method-14 () none) ;; 14 + ) + (:state-methods + create-file ;; 15 + save-account ;; 18 + error-error ;; 16 + done-done ;; 17 + ) + ) +|# + +#| +(deftype part-tester (process) + ((root trsqv :offset-assert 144) ;; guessed by decompiler + (part sparticle-launch-control :offset-assert 148) ;; guessed by decompiler + (old-group sparticle-launch-group :offset-assert 152) ;; guessed by decompiler + ) + :method-count-assert 15 + :size-assert #x9c + :flag-assert #xf0010009c + (:methods + (part-tester-method-9 () none) ;; 9 + (part-tester-method-10 () none) ;; 10 + (part-tester-method-11 () none) ;; 11 + (part-tester-method-12 () none) ;; 12 + (part-tester-method-13 () none) ;; 13 + (part-tester-method-14 () none) ;; 14 + ) + (:states + part-tester-idle ;; associated process guessed by decompiler, old: (state part-tester) + ) + ) +|# + +#| +(deftype test-process (process-focusable) + ((state-time uint64 :offset-assert 240) + (effect uint8 :offset-assert 264) + (sound-id uint32 :offset-assert 268) + ) + :method-count-assert 59 + :size-assert #x110 + :flag-assert #x3b00800110 + ) +|# + +;; (define-extern save-memcard-init-by-other function) +;; (define-extern *debug-save-memcard-dead-pool* object) +;; (define-extern start-save-memcard function) +;; (define-extern *part-tester-name* object) ;; string +;; (define-extern part-tester-init-by-other function) ;; (function vector none :behavior process-drawable) +;; (define-extern *debug-part-dead-pool* object) ;; dead-pool +;; (define-extern start-part function) ;; (function none) +;; (define-extern test-idle state) +;; (define-extern test-process-init-by-other function) +;; (define-extern start-test function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; manipulator ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype manipulator (structure) + ((action manipulator-action :offset-assert 0) ;; guessed by decompiler + (mode manipulator-mode :offset-assert 4) ;; guessed by decompiler + (dragging? symbol :offset-assert 8) ;; guessed by decompiler + (position vector :inline :offset-assert 16) + (speed vector :inline :offset-assert 32) + (drag-ref-position vector :inline :offset-assert 48) + (mouse-ref-position vector :inline :offset-assert 64) + (mat matrix :inline :offset-assert 80) + (rotate-ref int32 :offset-assert 144) + (angles euler-angles :inline :offset-assert 160) + ) + :method-count-assert 15 + :size-assert #xb0 + :flag-assert #xf000000b0 + (:methods + (manipulator-method-9 () none) ;; 9 ;; (set-mode (_type_ manipulator-mode) none) + (manipulator-method-10 () none) ;; 10 ;; (manipulator-method-10 (_type_ vector vector) none) + (manipulator-method-11 () none) ;; 11 ;; (manipulator-method-11 (_type_) none) + (manipulator-method-12 () none) ;; 12 ;; (manipulator-method-12 (_type_ vector) none) + (manipulator-method-13 () none) ;; 13 ;; (manipulator-method-13 (_type_ vector vector) none) + (manipulator-method-14 () none) ;; 14 ;; (manipulator-method-14 (_type_) none) + ) + ) +|# + +;; (define-extern draw-axis function) ;; (function vector vector float float rgba none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; editable-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype editable-region (basic) + ((changed symbol :offset-assert 4) ;; guessed by decompiler + (locked symbol :offset-assert 8) ;; guessed by decompiler + (id uint64 :offset-assert 16) + (filter editable-filter :offset-assert 24) ;; guessed by decompiler + (tree symbol :offset-assert 28) ;; guessed by decompiler + (level string :offset-assert 32) ;; guessed by decompiler + (on-enter pair :offset-assert 36) ;; guessed by decompiler + (on-inside pair :offset-assert 40) ;; guessed by decompiler + (on-exit pair :offset-assert 44) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #x30 + :flag-assert #xd00000030 + ;; field on-enter uses ~A with a signed load. field on-inside uses ~A with a signed load. field on-exit uses ~A with a signed load. + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + (editable-region-method-9 () none) ;; 9 ;; (save-region! (_type_ editable-array int int) symbol) + (editable-region-method-10 () none) ;; 10 ;; (editable-region-method-10 (_type_ int) symbol) + (editable-region-method-11 () none) ;; 11 ;; (print-region-info (_type_ vector int) none) + (editable-region-method-12 () none) ;; 12 ;; (editable-region-method-12 (_type_) editable-filter) + ) + ) +|# + +#| +(deftype editable (basic) + ((flags editable-flag :offset-assert 4) + (name string :offset-assert 8) ;; guessed by decompiler + (id uint32 :offset-assert 12) + (region editable-region :offset-assert 16) ;; guessed by decompiler + (owner pair :offset-assert 20) ;; guessed by decompiler + (prefix basic :offset-assert 24) + ) + :method-count-assert 36 + :size-assert #x1c + :flag-assert #x240000001c + (:methods + (editable-method-9 () none) ;; 9 ;; (get-color (_type_) rgba) + (editable-method-10 () none) ;; 10 ;; (editable-method-10 (_type_) none) + (editable-method-11 () none) ;; 11 ;; (editable-method-11 (_type_ vector) symbol) + (editable-method-12 () none) ;; 12 ;; (set-selected! (_type_ symbol) none) + (editable-method-13 () none) ;; 13 ;; (editable-method-13 (_type_ vector) float) + (editable-method-14 () none) ;; 14 ;; (editable-method-14 (_type_ vector vector) float) + (editable-method-15 () none) ;; 15 ;; (editable-method-15 (_type_) vector) + (editable-method-16 () none) ;; 16 ;; (editable-method-16 (_type_) float) + (editable-method-17 () none) ;; 17 ;; (editable-method-17 (_type_ vector editable-flag) none) + (editable-method-18 () none) ;; 18 ;; (editable-method-18 (_type_ vector int) none) + (editable-method-19 () none) ;; 19 ;; (editable-method-19 (_type_ vector) none) + (editable-method-20 () none) ;; 20 ;; (editable-method-20 (_type_ vector matrix) none) + (editable-method-21 () none) ;; 21 ;; (editable-method-21 (_type_ vector) none) + (editable-method-22 () none) ;; 22 ;; (editable-method-22 (_type_ vector vector vector vector) none) + (editable-method-23 () none) ;; 23 ;; (change-region! (_type_ editable-region) none) + (editable-method-24 () none) ;; 24 ;; (editable-method-24 (_type_ editable-array int int) symbol) + (editable-method-25 () none) ;; 25 ;; (editable-method-25 (_type_) symbol) + (editable-method-26 () none) ;; 26 ;; (editable-method-26 (_type_) none) + (editable-method-27 () none) ;; 27 ;; (delete! (_type_ editable) none) + (editable-method-28 () none) ;; 28 ;; (editable-method-28 (_type_ editable editable) none) + (editable-method-29 () none) ;; 29 ;; (copy-into-editable-array! (_type_ editable-array) editable) + (editable-method-30 () none) ;; 30 ;; (editable-method-30 (_type_ editable-flag) none) + (editable-method-31 () none) ;; 31 ;; (editable-method-31 (_type_ editable-flag) none) + (editable-method-32 () none) ;; 32 ;; (get-null-vec (_type_) vector) + (editable-method-33 () none) ;; 33 ;; (get-null-vec2 (_type_ vector) vector) + (editable-method-34 () none) ;; 34 ;; (get-level-offset (_type_ editable-array) vector) + (editable-method-35 () none) ;; 35 ;; (editable-method-35 (_type_ vector) none) + ) + ) +|# + +#| +(deftype editable-array (basic) + ((allocated-length int32 :offset-assert 4) + (length int32 :offset-assert 8) + (region editable-region :offset-assert 12) ;; guessed by decompiler + (backup-region editable-region :offset-assert 16) ;; guessed by decompiler + (region-lock? symbol :offset-assert 20) ;; guessed by decompiler + (move-lock? symbol :offset-assert 24) ;; guessed by decompiler + (move-speed float :offset-assert 28) + (selection (array editable) :offset-assert 32) ;; guessed by decompiler + (filter editable-filter 2 :offset-assert 36) ;; guessed by decompiler + (target editable :offset-assert 44) ;; guessed by decompiler + (target-mode editable-command :offset-assert 48) ;; guessed by decompiler + (target-command editable-command :offset-assert 52) ;; guessed by decompiler + (target-message string :offset-assert 56) ;; guessed by decompiler + (edit-plane editable-plane :offset-assert 60) ;; guessed by decompiler + (edit-plane-center vector :inline :offset-assert 64) + (edit-plane-normal vector :inline :offset-assert 80) + (level-offset vector :inline :offset-assert 96) + (level-info-id uint32 :offset-assert 112) + (level uint32 :offset-assert 116) ;; guessed by decompiler + (edit-param0 float :offset-assert 120) + (data editable :dynamic :offset-assert 124) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 20 + :size-assert #x7c + :flag-assert #x140000007c + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type int) _type_) + (editable-array-method-9 () none) ;; 9 ;; (handle-cmd (_type_ editable-command mouse-info object) symbol) + (editable-array-method-10 () none) ;; 10 ;; (editable-array-method-10 (_type_ vector int) editable) + (editable-array-method-11 () none) ;; 11 ;; (editable-array-method-11 (_type_ vector vector int) none) + (editable-array-method-12 () none) ;; 12 ;; (get-length (_type_) int) + (editable-array-method-13 () none) ;; 13 ;; (editable-array-method-13 (_type_ symbol) symbol) + (editable-array-method-14 () none) ;; 14 ;; (editable-array-method-14 (_type_ editable-command editable-command string) none) + (editable-array-method-15 () none) ;; 15 ;; (editable-array-method-15 (_type_ (function editable editable-region symbol) editable-region) (array editable)) + (editable-array-method-16 () none) ;; 16 ;; (editable-array-method-16 (_type_ editable) none) + (editable-array-method-17 () none) ;; 17 ;; (editable-array-method-17 (_type_) none) + (editable-array-method-18 () none) ;; 18 ;; (editable-array-method-18 (_type_ vector vector) vector) + (editable-array-method-19 () none) ;; 19 ;; (editable-array-method-19 (_type_ string) symbol) + ) + ) +|# + +#| +(deftype editable-point (editable) + ((flags editable-flag :offset-assert 0) + (name string :offset-assert 4) ;; guessed by decompiler + (id uint32 :offset-assert 8) + (region editable-region :offset-assert 12) ;; guessed by decompiler + (owner pair :offset-assert 16) ;; guessed by decompiler + (prefix basic :offset-assert 20) + (radius meters :offset-assert 24) + (trans vector :inline :offset-assert 28) + ) + :method-count-assert 36 + :size-assert #x30 + :flag-assert #x2400000030 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type vector editable-region) _type_) + ) + ) +|# + +#| +(deftype editable-sphere (editable-point) + () + :method-count-assert 36 + :size-assert #x30 + :flag-assert #x2400000030 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type vector float editable-region) _type_) + ) + ) +|# + +#| +(deftype editable-sample (editable-point) + () + :method-count-assert 36 + :size-assert #x30 + :flag-assert #x2400000030 + ) +|# + +#| +(deftype editable-light (editable-sphere) + ((direction vector :inline :offset-assert 44) + (color vector :inline :offset-assert 60) + (decay-start float :offset-assert 76) + (ambient-point-ratio float :offset-assert 80) + (brightness float :offset-assert 84) + (shadow uint32 :offset-assert 44) + (shadows float 5 :offset-assert 88) ;; guessed by decompiler + (shadow-ambi float :offset-assert 88) + (shadow-dir0 float :offset-assert 92) + (shadow-dir1 float :offset-assert 96) + (shadow-dir2 float :offset-assert 100) + (shadow-dir3 float :offset-assert 104) + (alt-level basic :offset-assert 108) + ) + :method-count-assert 36 + :size-assert #x74 + :flag-assert #x2400000074 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type vector float editable-region) _type_) + ) + ) +|# + +#| +(deftype editable-entity (editable-point) + ((angles euler-angles :inline :offset-assert 44) + (idx int32 :offset-assert 60) + ) + :method-count-assert 37 + :size-assert #x44 + :flag-assert #x2500000044 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type vector float editable-region) _type_) + (editable-entity-method-36 () none) ;; 36 ;; (editable-entity-method-36 (_type_) none) + ) + ) +|# + +#| +(deftype editable-face (editable) + ((flags editable-flag :offset-assert 0) + (name string :offset-assert 4) ;; guessed by decompiler + (id uint32 :offset-assert 8) + (region editable-region :offset-assert 12) ;; guessed by decompiler + (owner pair :offset-assert 16) ;; guessed by decompiler + (prefix basic :offset-assert 20) + (length int32 :offset-assert 24) + (normal vector :inline :offset-assert 28) + (center vector :inline :offset-assert 44) + (vertex editable-point 6 :offset-assert 60) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 38 + :size-assert #x58 + :flag-assert #x2600000058 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type editable-region) _type_) + (editable-face-method-36 () none) ;; 36 ;; (editable-face-method-36 (_type_ (inline-array vector)) int) + (editable-face-method-37 () none) ;; 37 ;; (editable-face-method-37 (_type_ vector) vector) + ) + ) +|# + +#| +(deftype editable-plane (editable) + ((flags editable-flag :offset-assert 0) + (name string :offset-assert 4) ;; guessed by decompiler + (id uint32 :offset-assert 8) + (region editable-region :offset-assert 12) ;; guessed by decompiler + (owner pair :offset-assert 16) ;; guessed by decompiler + (prefix basic :offset-assert 20) + (length int32 :offset-assert 24) + (radius meters :offset-assert 28) + (vertex editable-point 2 :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 38 + :size-assert #x2c + :flag-assert #x260000002c + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type editable-region) _type_) + (editable-plane-method-36 () none) ;; 36 ;; (editable-plane-method-36 (_type_ (inline-array vector)) int) + (editable-plane-method-37 () none) ;; 37 ;; (editable-plane-method-37 (_type_ vector) vector) + ) + ) +|# + +#| +(deftype editable-player (process-drawable) + ((current editable-array :offset-assert 248) ;; guessed by decompiler + (current-command editable-command :offset-assert 252) ;; guessed by decompiler + (select-command (function object) :offset-assert 256) ;; guessed by decompiler + (drag-command uint32 :offset-assert 260) + (extra-command (function object) :offset-assert 264) ;; guessed by decompiler + (left-handed basic :offset-assert 268) + (light-names basic :offset-assert 272) + (external-cam-mode symbol :offset-assert 276) ;; guessed by decompiler + (command editable-command 6 :offset-assert 280) ;; guessed by decompiler + (close-menu-time uint64 :offset-assert 304) ;; time-frame + (mouse-pos vector :inline :offset-assert 320) + (mouse-end vector :inline :offset-assert 336) + (manipulator manipulator :inline :offset-assert 352) + (mouse-box vector 2 :offset-assert 528) ;; guessed by decompiler + (mouse-hit vector :inline :offset-assert 560) + (mouse-normal vector :inline :offset-assert 576) + (float-variable float :offset-assert 592) + (float-step float :offset-assert 596) + (float-max float :offset-assert 600) + (float-min float :offset-assert 604) + (float-id uint32 :offset-assert 608) + ) + :method-count-assert 54 + :size-assert #x264 + :flag-assert #x3601e00264 + (:methods + (editable-player-method-50 () none) ;; 50 + (editable-player-method-51 () none) ;; 51 + (editable-player-method-52 () none) ;; 52 + (editable-player-method-53 () none) ;; 53 + ) + ) +|# + +#| +(deftype editable-work (basic) + ((num-found int16 :offset-assert 4) + (last-found int16 :offset-assert 6) + (last-x float :offset-assert 8) + (last-y float :offset-assert 12) + (hide symbol :offset-assert 16) ;; guessed by decompiler + (found editable 256 :offset-assert 20) ;; guessed by decompiler + (dists uint32 256 :offset-assert 1044) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x814 + :flag-assert #x900000814 + ) +|# + +;; (define-extern *editable-temp-id* object) ;; int +;; (define-extern *editable-default-name* object) ;; string +;; (define-extern editable-command->string function) ;; (function editable-command string) +;; (define-extern editable-filter->string function) ;; (function editable-filter basic string) +;; (define-extern *editable-work* object) ;; editable-work +;; (define-extern *editable* object) ;; (pointer editable-player) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; editable-player ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cleanup-selection function) ;; (function editable-array object) +;; (define-extern insert-box function) ;; (function editable-array vector vector object) +;; (define-extern insert-wall function) ;; (function editable-array vector vector object) +;; (define-extern update-manipulator-position function) ;; (function editable-array manipulator matrix) +;; (define-extern execute-select function) ;; (function editable-array editable-command mouse-info manipulator symbol) +;; (define-extern execute-mouse-move function) ;; (function editable-array editable-command mouse-info manipulator symbol) +;; (define-extern execute-move function) ;; (function editable-array editable-command mouse-info manipulator symbol) +;; (define-extern get-light-value function) ;; (function uint float) +;; (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 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-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) +;; (define-extern dm-editable-flag-pick-func function) ;; (function editable-flag debug-menu-msg symbol) +;; (define-extern dm-editable-filter0-pick-func function) ;; (function editable-filter debug-menu-msg symbol) +;; (define-extern dm-editable-filter1-pick-func function) ;; (function editable-filter debug-menu-msg symbol) +;; (define-extern dm-editable-light-float-func function) ;; (function int debug-menu-msg float float float) +;; (define-extern dm-cam-externalize2 function) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-editable-boolean-toggle-pick-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern editable-menu-context-make-menus function) ;; (function debug-menu-context debug-menu-context) +;; (define-extern insert-sample-camera function) ;; (function symbol object) +;; (define-extern *debug-hook* object) ;; pair + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mysql-nav-graph ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mysql-nav-node (structure) + ((mysql-save-flag mysql-save-flag :offset-assert 0) ;; guessed by decompiler + (runtime-id uint32 :offset-assert 4) + (temp-edge-list (inline-array mysql-nav-edge) :offset-assert 8) ;; guessed by decompiler + (level-node-index int32 :offset-assert 12) + (cam-dist float :offset-assert 16) + (visible symbol :offset-assert 20) ;; guessed by decompiler + (nav_node_id uint32 :offset-assert 24) + (nav_graph_id uint32 :offset-assert 28) + (position vector :inline :offset-assert 32) + (level_name symbol :offset-assert 48) ;; guessed by decompiler + (angle float :offset-assert 52) + (radius float :offset-assert 56) + (nav_node_flag nav-node-flag :offset-assert 60) ;; guessed by decompiler + (nav_mesh_id uint32 :offset-assert 64) + (data_int_0 uint32 :offset-assert 68) + (data_int_1 uint32 :offset-assert 72) + ) + :method-count-assert 11 + :size-assert #x4c + :flag-assert #xb0000004c + (:methods + (mysql-nav-node-method-9 () none) ;; 9 ;; (exec-sql! (_type_) symbol) + (mysql-nav-node-method-10 () none) ;; 10 ;; (temp-edge-size (_type_) int) + ) + ) +|# + +#| +(deftype mysql-nav-node-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data mysql-nav-node :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype mysql-nav-edge (structure) + ((mysql-save-flag mysql-save-flag :offset-assert 0) ;; guessed by decompiler + (runtime-id uint32 :offset-assert 4) + (runtime-node-id-1 int32 :offset-assert 8) + (runtime-node-id-2 int32 :offset-assert 12) + (temp-next-edge mysql-nav-edge :offset-assert 16) + (nav_edge_id uint32 :offset-assert 20) + (nav_graph_id uint32 :offset-assert 24) + (nav_node_id_1 uint32 :offset-assert 28) + (nav_node_id_2 uint32 :offset-assert 32) + (directionality nav-directionality :offset-assert 36) ;; guessed by decompiler + (speed_limit float :offset-assert 40) + (density float :offset-assert 44) + (traffic_edge_flag int32 :offset-assert 48) + (nav_clock_mask nav-clock-mask :offset-assert 52) ;; guessed by decompiler + (nav_clock_type nav-clock-type :offset-assert 56) ;; guessed by decompiler + (nav_territory_type uint32 :offset-assert 60) + (exclusive_data uint32 :offset-assert 64) + (width float :offset-assert 68) + (minimap_edge_flag int32 :offset-assert 72) ;; nav-minimap-edge-flag + ) + :method-count-assert 10 + :size-assert #x4c + :flag-assert #xa0000004c + (:methods + (mysql-nav-edge-method-9 () none) ;; 9 ;; (exec-sql! (_type_) symbol) + ) + ) +|# + +#| +(deftype mysql-nav-edge-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data mysql-nav-edge :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype mysql-nav-visnode (structure) + ((mysql-save-flag mysql-save-flag :offset-assert 0) ;; guessed by decompiler + (runtime-node-id int32 :offset-assert 4) + (runtime-edge-id int32 :offset-assert 8) + (nav_visnode_id uint32 :offset-assert 12) + (nav_graph_id uint32 :offset-assert 16) + (nav_node_id uint32 :offset-assert 20) + (nav_edge_id uint32 :offset-assert 24) + ) + :method-count-assert 10 + :size-assert #x1c + :flag-assert #xa0000001c + (:methods + (mysql-nav-visnode-method-9 () none) ;; 9 ;; (exec-sql! (_type_) symbol) + ) + ) +|# + +#| +(deftype mysql-nav-visnode-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data mysql-nav-visnode :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype mysql-nav-pov-conn (structure) + ((runtime-node-id-1 int32 :offset-assert 0) + (runtime-node-id-2 int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype mysql-nav-graph-level-info (structure) + ((level symbol :offset-assert 0) ;; guessed by decompiler + (level-id uint32 :offset-assert 4) + (node-count int32 :offset-assert 8) + (branch-count int32 :offset-assert 12) + (to-link-count int32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype mysql-nav-graph (basic) + ((nav_graph_id uint32 :offset-assert 4) + (graph-type symbol :offset-assert 8) ;; guessed by decompiler + (node-array mysql-nav-node-array :offset-assert 12) ;; guessed by decompiler + (edge-array mysql-nav-edge-array :offset-assert 16) ;; guessed by decompiler + (visnode-array mysql-nav-visnode-array :offset-assert 20) ;; guessed by decompiler + (pov-conn-array (inline-array mysql-nav-pov-conn) :offset-assert 24) ;; guessed by decompiler + (pov-conn-array-length int32 :offset-assert 28) + (level-info-array-length int32 :offset-assert 32) + (level-info-last-lookup int32 :offset-assert 36) + (level-info-array mysql-nav-graph-level-info 32 :offset-assert 40) ;; guessed by decompiler + ) + :method-count-assert 24 + :size-assert #x428 + :flag-assert #x1800000428 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type string) _type_) + (mysql-nav-graph-method-9 () none) ;; 9 ;; (init-from-sql! (_type_ symbol string) symbol) + (mysql-nav-graph-method-10 () none) ;; 10 ;; (exec-sql! (_type_) symbol) + (mysql-nav-graph-method-11 () none) ;; 11 ;; (indexof-nav-node (_type_ int) int) + (mysql-nav-graph-method-12 () none) ;; 12 ;; (indexof-nav-edge (_type_ int) int) + (mysql-nav-graph-method-13 () none) ;; 13 ;; (alloc-new-node! (_type_) int) + (mysql-nav-graph-method-14 () none) ;; 14 ;; (alloc-new-edge! (_type_) int) + (mysql-nav-graph-method-15 () none) ;; 15 ;; (indexof-visnode (_type_ int int) int) + (mysql-nav-graph-method-16 () none) ;; 16 ;; (alloc-new-visnode! (_type_ int int) int) + (mysql-nav-graph-method-17 () none) ;; 17 ;; (mysql-nav-graph-method-17 (_type_) none) + (mysql-nav-graph-method-18 () none) ;; 18 ;; (lookup-level-info2 (_type_ mysql-nav-node symbol) mysql-nav-graph-level-info) + (mysql-nav-graph-method-19 () none) ;; 19 ;; (mysql-nav-graph-method-19 (_type_) int) + (mysql-nav-graph-method-20 () none) ;; 20 ;; (mysql-nav-graph-method-20 (_type_) none) + (mysql-nav-graph-method-21 () none) ;; 21 ;; (get-graph-type (_type_ symbol) symbol) + (mysql-nav-graph-method-22 () none) ;; 22 ;; (mysql-nav-graph-method-22 (_type_) int) + (mysql-nav-graph-method-23 () none) ;; 23 ;; (mysql-nav-graph-method-23 (_type_ vector vector) symbol) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-graph-editor ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-graph-command (structure) + ((com-type nav-com-type :offset-assert 0) ;; guessed by decompiler + (id int32 :offset-assert 4) + (index int32 :offset-assert 8) + (move-vec vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype nav-graph-command-array (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data nav-graph-command :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype nav-graph-editor (process) + ((nav-graph mysql-nav-graph :offset-assert 144) ;; guessed by decompiler + (mode symbol :offset-assert 148) ;; guessed by decompiler + (command-id int32 :offset-assert 152) + (max-command int32 :offset-assert 156) + (selected-index int32 :offset-assert 160) + (selected-dist float :offset-assert 164) + (selected-node-edge? symbol :offset-assert 168) ;; guessed by decompiler + (closest-node int32 :offset-assert 172) + (dist-closest-node float :offset-assert 176) + (closest-edge int32 :offset-assert 180) + (dist-closest-edge float :offset-assert 184) + (mouse-pos vector :inline :offset-assert 192) + (mouse-hit vector :inline :offset-assert 208) + (mouse-hit-pick vector :inline :offset-assert 224) + (mouse-normal vector :inline :offset-assert 240) + (mouse-spos-hold vector :inline :offset-assert 256) + (edge-src int32 :offset-assert 272) + (edge-dst int32 :offset-assert 276) + (edge-visibility int32 :offset-assert 280) + (vehicle-edit-mode symbol :offset-assert 284) ;; guessed by decompiler + (hover-edit-mode symbol :offset-assert 288) ;; guessed by decompiler + (plane-height float :offset-assert 292) + (plane-height-hold float :offset-assert 296) + (minimap-make-mode uint8 :offset-assert 300) + (clipping-dist float :offset-assert 304) + (default-node mysql-nav-node :inline :offset-assert 320) + (default-edge mysql-nav-edge :inline :offset-assert 396) + (command-array nav-graph-command-array :offset-assert 472) ;; guessed by decompiler + ) + :method-count-assert 69 + :size-assert #x1dc + :flag-assert #x45015001dc + (:methods + (nav-graph-editor-method-9 () none) ;; 9 + (nav-graph-editor-method-10 () none) ;; 10 + (nav-graph-editor-method-11 () none) ;; 11 + (nav-graph-editor-method-12 () none) ;; 12 + (nav-graph-editor-method-13 () none) ;; 13 + (nav-graph-editor-method-14 () none) ;; 14 ;; (move-node () _type_ :state) + (nav-graph-editor-method-30 () none) ;; 30 ;; (nav-graph-editor-method-30 (_type_ string string string) object) + (nav-graph-editor-method-31 () none) ;; 31 ;; (nav-graph-editor-method-31 (_type_ int) symbol) + (nav-graph-editor-method-32 () none) ;; 32 ;; (nav-graph-editor-method-32 (_type_ int) symbol) + (nav-graph-editor-method-33 () none) ;; 33 ;; (nav-graph-editor-method-33 (_type_ int int) object) + (nav-graph-editor-method-34 () none) ;; 34 ;; (nav-graph-editor-method-34 (_type_ int) none) + (nav-graph-editor-method-35 () none) ;; 35 ;; (nav-graph-editor-method-35 (_type_ vector vector) none) + (nav-graph-editor-method-36 () none) ;; 36 ;; (nav-graph-editor-method-36 (_type_) none) + (nav-graph-editor-method-37 () none) ;; 37 ;; (nav-graph-editor-method-37 (_type_) object) + (nav-graph-editor-method-38 () none) ;; 38 ;; (nav-graph-editor-method-38 (_type_) none) + (nav-graph-editor-method-39 () none) ;; 39 ;; (nav-graph-editor-method-39 (_type_) none) + (nav-graph-editor-method-40 () none) ;; 40 ;; (nav-graph-editor-method-40 (_type_) none) + (nav-graph-editor-method-41 () none) ;; 41 ;; (nav-graph-editor-method-41 (_type_) none) + (nav-graph-editor-method-42 () none) ;; 42 ;; (nav-graph-editor-method-42 (_type_) none) + (nav-graph-editor-method-43 () none) ;; 43 ;; (nav-graph-editor-method-43 (_type_) none) + (nav-graph-editor-method-44 () none) ;; 44 ;; (nav-graph-editor-method-44 (_type_) none) + (nav-graph-editor-method-45 () none) ;; 45 ;; (nav-graph-editor-method-45 (_type_) none) + (nav-graph-editor-method-46 () none) ;; 46 ;; (nav-graph-editor-method-46 (_type_) none) + (nav-graph-editor-method-47 () none) ;; 47 ;; (nav-graph-editor-method-47 (_type_) symbol) + (nav-graph-editor-method-48 () none) ;; 48 ;; (nav-graph-editor-method-48 (_type_) none) + (nav-graph-editor-method-49 () none) ;; 49 ;; (nav-graph-editor-method-49 (_type_) symbol) + (nav-graph-editor-method-50 () none) ;; 50 ;; (nav-graph-editor-method-50 (_type_) none) + (nav-graph-editor-method-51 () none) ;; 51 ;; (inc-cmd-id! (_type_) int) + (nav-graph-editor-method-52 () none) ;; 52 ;; (alloc-new-cmd! (_type_ int) nav-graph-command) + (nav-graph-editor-method-53 () none) ;; 53 ;; (get-last-cmd (_type_) nav-graph-command) + (nav-graph-editor-method-54 () none) ;; 54 ;; (nav-graph-editor-method-54 (_type_) none) + (nav-graph-editor-method-55 () none) ;; 55 ;; (nav-graph-editor-method-55 (_type_) none) + (nav-graph-editor-method-56 () none) ;; 56 ;; (nav-graph-editor-method-56 (_type_) int) + (nav-graph-editor-method-57 () none) ;; 57 ;; (nav-graph-editor-method-57 (_type_ int int) none) + (nav-graph-editor-method-58 () none) ;; 58 ;; (nav-graph-editor-method-58 (_type_ int) symbol) + (nav-graph-editor-method-59 () none) ;; 59 ;; (nav-graph-editor-method-59 (_type_ int) none) + (nav-graph-editor-method-60 () none) ;; 60 ;; (nav-graph-editor-method-60 (_type_ int) none) + (nav-graph-editor-method-61 () none) ;; 61 ;; (nav-graph-editor-method-61 (_type_ int int) none) + (nav-graph-editor-method-62 () none) ;; 62 ;; (nav-graph-editor-method-62 (_type_) symbol) + (nav-graph-editor-method-63 () none) ;; 63 ;; (nav-graph-editor-method-63 (_type_) none) + (nav-graph-editor-method-64 () none) ;; 64 ;; (nav-graph-editor-method-64 (_type_) none) + (nav-graph-editor-method-65 () none) ;; 65 ;; (nav-graph-editor-method-65 (_type_) none) + (nav-graph-editor-method-66 () none) ;; 66 ;; (nav-graph-editor-method-66 (_type_ symbol string) none) + (nav-graph-editor-method-67 () none) ;; 67 ;; (nav-graph-editor-method-67 (_type_) none) + (nav-graph-editor-method-68 () none) ;; 68 + ) + (:state-methods + adjust-node-angle ;; 23, old: (adjust-node-radius () _type_ :state) + move-node ;; 15, old: (move-plane () _type_ :state) + adjust-plane ;; 20, old: (adjust-it () _type_ :state) + adjust-node-radius ;; 24, old: (adjust-edge-visibility () _type_ :state) + move-plane ;; 16, old: (create () _type_ :state) + create-edge ;; 19, old: (adjust-plane () _type_ :state) + edit-edge ;; 18, old: (create-edge () _type_ :state) + adjust-edge-visibility ;; 25, old: (adjust-edge-width () _type_ :state) + adjust-edge-width ;; 26, old: (adjust-edge-density () _type_ :state) + adjust-edge-density ;; 27, old: (draw-closest-minimap () _type_ :state) + adjust-it ;; 21, old: (adjust-minimap () _type_ :state) + adjust-minimap ;; 22, old: (adjust-node-angle () _type_ :state) + draw-closest-minimap ;; 28, old: (create-pov () _type_ :state) + create ;; 17, old: (edit-edge () _type_ :state) + create-pov ;; 29, old: (nav-graph-editor-method-29 (_type_) none) + ) + ) +|# + +;; (define-extern *nav-graph-editor* object) ;; (pointer nav-graph-editor) +;; (define-extern get-node-draw-position function) ;; (function vector mysql-nav-node vector) +;; (define-extern nav-graph-editor-init-by-other function) ;; (function string symbol object :behavior nav-graph-editor) +;; (define-extern run-nav-graph-editor function) ;; (function symbol symbol (pointer nav-graph-editor)) +;; (define-extern get-nav-graph-editor function) ;; (function nav-graph-editor) +;; (define-extern exit-nav-graph-editor function) ;; (function none) +;; (define-extern nav-graph-set-level function) ;; (function symbol object) +;; (define-extern set-minimap-edge-flag function) ;; (function nav-minimap-edge-flag none) +;; (define-extern set-vehicle-edit-mode function) ;; (function symbol none) +;; (define-extern translate-nav-graph function) ;; (function float float float symbol) +;; (define-extern update-nav-meshes function) ;; (function symbol) +;; (define-extern delete-node-nav-mesh function) ;; (function int none) +;; (define-extern smooth-nav-graph function) ;; (function string symbol) +;; (define-extern update-height function) ;; (function string symbol) +;; (define-extern update-width function) ;; (function string symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype nav-mesh-poly (structure) + ((poly-id uint32 :offset-assert 0) + (flags nav-mesh-poly-flag :offset-assert 4) ;; guessed by decompiler + (index int16-array :offset-assert 8) ;; guessed by decompiler + (insert-pos uint32 :offset-assert 12) + ) + :method-count-assert 15 + :size-assert #x10 + :flag-assert #xf00000010 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + (nav-mesh-poly-method-9 () none) ;; 9 ;; (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) + (nav-mesh-poly-method-13 () none) ;; 13 ;; (nav-mesh-poly-method-13 (_type_ int) int) + (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 + ) + :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) + ) + :method-count-assert 9 + :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 + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(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 + (tris nav-mesh-tri-quad-array :offset-assert 8) ;; guessed by decompiler + (quads nav-mesh-tri-quad-array :offset-assert 12) ;; guessed by decompiler + (navmesh-id uint32 :offset-assert 16) + (idx uint32 :offset-assert 20) + (level-name symbol :offset-assert 24) ;; guessed by decompiler + (level-id uint32 :offset-assert 28) + (polys nav-mesh-poly-array :offset-assert 32) ;; guessed by decompiler + (selected-poly uint32 :offset-assert 36) + ) + :method-count-assert 19 + :size-assert #x28 + :flag-assert #x1300000028 + (:methods + (new (symbol type) _type_) ;; 0 ;; (new (symbol type) _type_) + (nav-mesh-editable-method-9 () none) ;; 9 ;; (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) + (nav-mesh-editable-method-13 () none) ;; 13 ;; (nav-mesh-editable-method-13 (_type_) none) + (nav-mesh-editable-method-14 () none) ;; 14 ;; (nav-mesh-editable-method-14 (_type_ vector) int) + (nav-mesh-editable-method-15 () none) ;; 15 ;; (nav-mesh-editable-method-15 (_type_ int) object) + (nav-mesh-editable-method-16 () none) ;; 16 ;; (nav-mesh-editable-method-16 (_type_) object) + (nav-mesh-editable-method-17 () none) ;; 17 ;; (nav-mesh-editable-method-17 (_type_) object) + (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 + ) + :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) + (index int16-array :offset-assert 8) ;; guessed by decompiler + (insert-pos uint32 :offset-assert 12) + (verts vector-array :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x14 + :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) + ) + ) +|# + +#| +(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 + ) + :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 + (mouse-pressed uint64 :offset-assert 264) ;; time-frame + (mouse-screen-pos vector :inline :offset-assert 272) + (mouse-pos vector :inline :offset-assert 288) + (mouse-end vector :inline :offset-assert 304) + (mouse-hit vector :inline :offset-assert 320) + (mouse-hit-pick vector :inline :offset-assert 336) + (mouse-snap vector :inline :offset-assert 352) + (mouse-normal vector :inline :offset-assert 368) + (mouse-collide basic :offset-assert 384) + (mouse-tumble-dist float :offset-assert 388) + (mouse-tumble vector :inline :offset-assert 400) + (manipulator-pos vector :inline :offset-assert 416) + (manipulator-back-pos vector :inline :offset-assert 432) + (lock-action basic :offset-assert 448) + (mouse-action uint32 :offset-assert 452) + (mouse-action-pos-ref vector :inline :offset-assert 464) + (nav-meshes nav-mesh-editable-array :offset-assert 480) ;; guessed by decompiler + (current-nav-mesh nav-mesh-editable :offset-assert 484) + (manipulator manipulator :inline :offset-assert 496) + (level-name string :offset-assert 672) ;; guessed by decompiler + (level-id uint32 :offset-assert 676) + (undo-min uint32 :offset-assert 680) + (undo-id uint32 :offset-assert 684) + (undo-max uint32 :offset-assert 688) + (undos nav-mesh-editor-undo-array :offset-assert 692) ;; guessed by decompiler + (hide-unselected symbol :offset-assert 696) ;; guessed by decompiler + (allow-snap symbol :offset-assert 700) ;; guessed by decompiler + ) + :method-count-assert 58 + :size-assert #x2c0 + :flag-assert #x3a023002c0 + (:methods + (nav-mesh-editor-method-50 () none) ;; 50 + (nav-mesh-editor-method-51 () none) ;; 51 + (nav-mesh-editor-method-52 () none) ;; 52 + (nav-mesh-editor-method-53 () none) ;; 53 + (nav-mesh-editor-method-54 () none) ;; 54 + (nav-mesh-editor-method-55 () none) ;; 55 + (nav-mesh-editor-method-56 () none) ;; 56 + (nav-mesh-editor-method-57 () none) ;; 57 + ) + ) +|# + +;; (define-extern *nav-mesh-editor* object) ;; (pointer nav-mesh-editor) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-mesh-editor ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype triangulation-vert (structure) + ((index uint32 :offset-assert 0) + (ear? symbol :offset-assert 4) ;; guessed by decompiler + (score float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; (define-extern snap-level-navmesh function) ;; (function vector vector symbol) +;; (define-extern mouse-intersect-triangle function) ;; (function vector vector vector vector float) +;; (define-extern *clean-vertex-array* object) ;; (inline-array vector) +;; (define-extern *clean-index-array* object) ;; (pointer int32) +;; (define-extern poly-flag-to-string function) ;; (function object nav-mesh-poly-flag object) +;; (define-extern point-in-cone function) ;; (function vector vector vector vector symbol) +;; (define-extern segment-in-cone function) ;; (function vector vector vector vector symbol) +;; (define-extern point-in-triangle function) ;; (function vector vector vector vector symbol) +;; (define-extern segments-intersect function) ;; (function vector vector vector vector symbol) +;; (define-extern is-diagonal function) ;; (function int (inline-array triangulation-vert) vector-array int int int symbol) +;; (define-extern *verts-buf-1* object) ;; (inline-array triangulation-vert) +;; (define-extern *verts-buf-2* object) ;; (inline-array triangulation-vert) +;; (define-extern draw-square-point function) ;; (function vector object) +;; (define-extern get-level-id function) ;; (function string int) +;; (define-extern nav-mesh-editor-new function) ;; (function object) +;; (define-extern nav-delete function) ;; (function int object) +;; (define-extern nav-mesh-editor-translate function) ;; (function int float float float object) +;; (define-extern nav-mesh-editor-rotate-y function) ;; (function float object) +;; (define-extern nav-mesh-editor-load function) ;; (function string object) +;; (define-extern nav-mesh-editor-set-level function) ;; (function symbol object) +;; (define-extern nav-set-lev function) ;; (function string object) +;; (define-extern nav-set-flag function) ;; (function nav-mesh-poly-flag object) +;; (define-extern nav-mesh-editor-init function) ;; (function symbol object :behavior nav-mesh-editor) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sampler ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sampler-mem* object) ;; pointer +;; (define-extern *sampler-compare* object) ;; uint +;; (define-extern *sampler-count* object) ;; int +;; (define-extern *sampler-above-range-count* object) +;; (define-extern timer0-handler function) ;; (function none) +;; (define-extern sampler-start function) ;; (function none) +;; (define-extern sampler-stop function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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-nodenet-player function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-events ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern handle-weapon-removed-event function) +;; (define-extern handle-weapon-moved-event function) +;; (define-extern wv-weapon-pickup-helper function) +;; (define-extern wv-pickup-handler function) +;; (define-extern wv-set-handler function) +;; (define-extern wv-query-handler function) +;; (define-extern wv-go-handler function) +;; (define-extern wv-weapon-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-respawn-invul (process) + ((vehicle uint64 :offset-assert 144) + ) + :method-count-assert 16 + :size-assert #x98 + :flag-assert #x1000100098 + (:methods + (vehicle-respawn-invul-method-9 () none) ;; 9 + (vehicle-respawn-invul-method-10 () none) ;; 10 + (vehicle-respawn-invul-method-11 () none) ;; 11 + (vehicle-respawn-invul-method-12 () none) ;; 12 + (vehicle-respawn-invul-method-13 () none) ;; 13 + (vehicle-respawn-invul-method-14 () none) ;; 14 + ) + (:state-methods + idle ;; 15 + ) + ) +|# + +#| +(deftype vehicle-suppress-look (process) + ((vehicle uint64 :offset-assert 144) + ) + :method-count-assert 16 + :size-assert #x98 + :flag-assert #x1000100098 + (:methods + (vehicle-suppress-look-method-9 () none) ;; 9 + (vehicle-suppress-look-method-10 () none) ;; 10 + (vehicle-suppress-look-method-11 () none) ;; 11 + (vehicle-suppress-look-method-12 () none) ;; 12 + (vehicle-suppress-look-method-13 () none) ;; 13 + (vehicle-suppress-look-method-14 () none) ;; 14 + ) + (:state-methods + idle ;; 15 + ) + ) +|# + +;; (define-extern whoosh-shake-camera function) +;; (define-extern vehicle-respawn-invul-init-by-other function) +;; (define-extern vehicle-respawn-invul-spawn function) +;; (define-extern vehicle-suppress-look-init-by-other function) +;; (define-extern suppress-look-start function) +;; (define-extern local-space-proc-vehicle-turbo function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-ai ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype spring-tracker (structure) + ((speed float :offset-assert 0) + (spring-constant float :offset-assert 4) + ) + :method-count-assert 10 + :size-assert #x8 + :flag-assert #xa00000008 + (:methods + (spring-tracker-method-9 () none) ;; 9 + ) + ) +|# + +;; (define-extern get-portal-corner-point function) +;; (define-extern consider-attacking function) +;; (define-extern *wvehicle-ai-steering-params* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *old-vector* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-physics ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wvehicle-wheel-work (structure) + ((side-dir vector :inline :offset-assert 0) + (forward-dir vector :inline :offset-assert 16) + (velocity vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype wvehicle-physics-work (structure) + ((wheel-work-array UNKNOWN 4 :offset-assert 0) + (mat matrix :inline :offset-assert 192) + (force vector :inline :offset-assert 256) + (velocity vector :inline :offset-assert 272) + (vel-dir vector :inline :offset-assert 288) + (world-pos vector :inline :offset-assert 304) + (local-pos vector :inline :offset-assert 320) + (tmp vector :inline :offset-assert 336) + (p-body vector :inline :offset-assert 352) + (axis vector :inline :offset-assert 368) + (ground-pos vector :inline :offset-assert 384) + (forward-dir vector :inline :offset-assert 400) + (side-dir vector :inline :offset-assert 416) + (wheel-axis vector :inline :offset-assert 432) + (wsphere sphere :inline :offset-assert 448) + (vel-len float :offset-assert 464) + (forward-vel float :offset-assert 468) + (friction-coef float :offset-assert 472) + (wheel-radius float :offset-assert 476) + (gravity-mag float :offset-assert 480) + (downforce float :offset-assert 484) + (side-force float :offset-assert 488) + (forward-force float :offset-assert 492) + (max-forward-tire-grip float :offset-assert 496) + (max-side-tire-grip float :offset-assert 500) + (inertia-eff float :offset-assert 504) + (ground-torque float :offset-assert 508) + (braking-torque float :offset-assert 512) + (total-torque float :offset-assert 516) + (limit-braking-torque float :offset-assert 520) + (max-braking-torque float :offset-assert 524) + (traction-factor float :offset-assert 528) + (tire-traction float :offset-assert 532) + (surface-drag float :offset-assert 536) + (cur-time uint32 :offset-assert 540) + ) + :method-count-assert 9 + :size-assert #x220 + :flag-assert #x900000220 + ) +|# + +#| +(deftype wvehicle-probe-work (structure) + ((mat matrix :inline :offset-assert 0) + (world-pos vector :inline :offset-assert 64) + (probe-dir vector :inline :offset-assert 80) + (tmp vector :inline :offset-assert 96) + (ground-normal-sum vector :inline :offset-assert 112) + (probe-uu float :offset-assert 128) + (wheel-radius float :offset-assert 132) + (water-y float :offset-assert 136) + (surface-type uint8 :offset-assert 140) + (surface-depth float :offset-assert 144) + (material uint64 :offset-assert 152) + (cquery collide-query :inline :offset-assert 160) + ) + :method-count-assert 9 + :size-assert #x2bc + :flag-assert #x9000002bc + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hud-player-indicators ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-health (hud-item-group) + ((health float :offset-assert 44) + ) + :method-count-assert 25 + :size-assert #x30 + :flag-assert #x1900000030 + (:methods + (hud-health-method-24 () none) ;; 24 + ) + ) +|# + +#| +(deftype hud-indicator (hud-item-group) + ((target uint64 :offset-assert 48) + (target-position vector :inline :offset-assert 64) + (id int32 :offset-assert 80) + (enemy-distance float :offset-assert 84) + (hud-direction-arrow-01 basic :offset-assert 88) + (hud-namebar-shape-01 basic :offset-assert 92) + (offscreen basic :offset-assert 96) + (only-direction-arrows basic :offset-assert 100) + (fade-at-distance basic :offset-assert 104) + (no-direction-indicator basic :offset-assert 108) + (indicator-alpha float :offset-assert 112) + ) + :method-count-assert 27 + :size-assert #x74 + :flag-assert #x1b00000074 + (:methods + (hud-indicator-method-24 () none) ;; 24 + (hud-indicator-method-25 () none) ;; 25 + (hud-indicator-method-26 () none) ;; 26 + ) + ) +|# + +#| +(deftype hud-player-indicators (hud-item-group) + () + :method-count-assert 25 + :size-assert #x2c + :flag-assert #x190000002c + (:methods + (hud-player-indicators-method-24 () none) ;; 24 + ) + ) +|# + +#| +(deftype hud-artifact-indicators (hud-player-indicators) + () + :method-count-assert 25 + :size-assert #x2c + :flag-assert #x190000002c + ) +|# + +#| +(deftype hud-assassin-indicators (hud-item-group) + () + :method-count-assert 24 + :size-assert #x2c + :flag-assert #x180000002c + ) +|# + +#| +(deftype hud-player-indicators-view0 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-player-indicators-view1 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-artifact-indicators-view0 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-artifact-indicators-view1 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-assassin-indicators-view0 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-assassin-indicators-view1 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +;; (define-extern *hud-player-indicators-view0* array) +;; (define-extern *hud-player-indicators-view0-proc* object) +;; (define-extern spawn-hud-player-indicators-view0 function) +;; (define-extern *hud-player-indicators-view1* array) +;; (define-extern *hud-player-indicators-view1-proc* object) +;; (define-extern spawn-hud-player-indicators-view1 function) +;; (define-extern spawn-unused-hud-player-indicators-view function) +;; (define-extern *hud-artifact-indicators-view0* array) +;; (define-extern *hud-artifact-indicators-view0-proc* object) +;; (define-extern spawn-hud-artifact-indicators-view0 function) +;; (define-extern *hud-artifact-indicators-view1* array) +;; (define-extern *hud-artifact-indicators-view1-proc* object) +;; (define-extern spawn-hud-artifact-indicators-view1 function) +;; (define-extern spawn-unused-hud-artifact-indicators-view function) +;; (define-extern *hud-assassin-indicators-view0* array) +;; (define-extern *hud-assassin-indicators-view0-proc* object) +;; (define-extern spawn-hud-assassin-indicators-view0 function) +;; (define-extern *hud-assassin-indicators-view1* array) +;; (define-extern *hud-assassin-indicators-view1-proc* object) +;; (define-extern spawn-hud-assassin-indicators-view1 function) +;; (define-extern spawn-unused-hud-assassin-indicators-view function) +;; (define-extern hud-indicators-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-race ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern check-travel function) +;; (define-extern *previous-angle* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-net ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-projectiles ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-toad-shot (net-projectile) + ((trail-tracker uint64 :offset-assert 568) ;; handle + (blast-radius float :offset-assert 576) + (powerup-level uint8 :offset-assert 580) + (initial-velocity vector :inline :offset-assert 592) + (vehicle-perigee float :offset-assert 608) + ) + :method-count-assert 76 + :size-assert #x264 + :flag-assert #x4c01e00264 + (:methods + (v-toad-shot-method-75 () none) ;; 75 + ) + (:state-methods + impact ;; 52 + die ;; 50 + ) + ) +|# + +;; (define-extern v-toad-shot-init-remote function) +;; (define-extern *msg-map-v-toad-shot* array) +;; (define-extern *net-process-class-info-v-toad-shot* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-weapons-proj ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mine-a (process-focusable) + ((shooter uint64 :offset-assert 256) + (destination-point vector :inline :offset-assert 272) + (destination-rot quaternion :inline :offset-assert 288) + (traj trajectory :inline :offset-assert 304) + (beepy uint32 :offset-assert 344) + (trail-tracker uint64 :offset-assert 352) + (warning basic :offset-assert 360) + ) + :method-count-assert 64 + :size-assert #x16c + :flag-assert #x4000e0016c + (:methods + (mine-a-method-62 () none) ;; 62 + (mine-a-method-63 () none) ;; 63 + ) + (:state-methods + idle ;; 59 + falling ;; 60 + die ;; 61 + ) + ) +|# + +#| +(deftype mine-b (process-focusable) + ((shooter uint64 :offset-assert 256) + (glued-to uint64 :offset-assert 264) + (destination-point vector :inline :offset-assert 272) + (destination-rot quaternion :inline :offset-assert 288) + (traj trajectory :inline :offset-assert 304) + (cached-rp-trans vector :inline :offset-assert 352) + (trail-tracker uint64 :offset-assert 368) + (beepy uint32 :offset-assert 376) + (attach-point int32 :offset-assert 380) + (looseness int32 :offset-assert 384) + (expires-on uint64 :offset-assert 392) + (warning basic :offset-assert 400) + ) + :method-count-assert 67 + :size-assert #x194 + :flag-assert #x4301100194 + (:methods + (mine-b-method-65 () none) ;; 65 + (mine-b-method-66 () none) ;; 66 + ) + (:state-methods + idle ;; 59 + leaping-onto ;; 61 + attached ;; 62 + falling ;; 60 + shake-off ;; 63 + die ;; 64 + ) + ) +|# + +#| +(deftype v-yellow-guided-missile (net-projectile) + ((trail-tracker uint64 :offset-assert 568) + (blast-radius float :offset-assert 576) + (initial-velocity float :offset-assert 580) + (time-of-next-pitch uint64 :offset-assert 584) + (time-strike-standoff int32 :offset-assert 592) + (next-rot quaternion :inline :offset-assert 608) + (previous-target uint64 :offset-assert 624) + (pred net-predictor-simple :inline :offset-assert 640) + (defer-kaboom uint64 :offset-assert 952) + (last-hit uint64 :offset-assert 960) + ) + :method-count-assert 81 + :size-assert #x3c8 + :flag-assert #x51034003c8 + (:methods + (v-yellow-guided-missile-method-78 () none) ;; 78 + (v-yellow-guided-missile-method-79 () none) ;; 79 + (v-yellow-guided-missile-method-80 () none) ;; 80 + ) + (:state-methods + moving ;; 53 + tracking ;; 77 + wild ;; 76 + impact ;; 52 + dissipate ;; 51 + launching ;; 75 + die ;; 50 + ) + ) +|# + +;; (define-extern mine-a-init-remote function) +;; (define-extern *msg-map-mine-a* array) +;; (define-extern *net-process-class-info-mine-a* object) +;; (define-extern mine-a-init-by-other function) +;; (define-extern mine-b-init-remote function) +;; (define-extern *msg-map-mine-b* array) +;; (define-extern *net-process-class-info-mine-b* object) +;; (define-extern mine-b-common-trans function) +;; (define-extern *mine-b-hack* object) +;; (define-extern mine-b-init-by-other function) +;; (define-extern v-yellow-guided-missile-init-remote function) +;; (define-extern *msg-map-v-yellow-guided-missile* array) +;; (define-extern *net-process-class-info-v-yellow-guided-missile* object) +;; (define-extern guided-missile-moving-event-handler function) +;; (define-extern guided-missile-base-trans function) +;; (define-extern v-yellow-defaultgun-hitspang-params object) +;; (define-extern v-wpn-yellow-chaingun-1-hitspang-params object) +;; (define-extern v-wpn-yellow-chaingun-2-hitspang-params object) +;; (define-extern v-wpn-bulldog-hitspang-params object) +;; (define-extern rapid-fire-callback-gun-hitspang function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-weapons-oil ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype smoke-particle (structure) + ((pos vector :inline :offset-assert 0) + (vel vector :inline :offset-assert 16) + (size-delta float :offset-assert 28) + (size float :offset-assert 12) + (decay float :offset-assert 32) + (rot float :offset-assert 36) + (rot-delta float :offset-assert 40) + (color uint32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype particle-buffer (prim-client) + ((tex-id uint32 :offset-assert 4) + (smoke-part-count int32 :offset-assert 8) + (smoke-parts UNKNOWN 50 :offset-assert 16) + (strip basic :offset-assert 2416) + (single-strip UNKNOWN 3 :offset-assert 2420) + ) + :method-count-assert 14 + :size-assert #x980 + :flag-assert #xe00000980 + (:methods + (particle-buffer-method-10 () none) ;; 10 + (particle-buffer-method-11 () none) ;; 11 + (particle-buffer-method-12 () none) ;; 12 + (particle-buffer-method-13 () none) ;; 13 + ) + ) +|# + +#| +(deftype smoke-system (process-nettable) + ((owning-vehicle uint64 :offset-assert 192) + (part-count float :offset-assert 200) + (emit-rate float :offset-assert 204) + (start-time int32 :offset-assert 208) + (last-pos vector :inline :offset-assert 224) + (buffer basic :offset-assert 240) + (smoke-screen-sound uint32 :offset-assert 244) + (lightning-sound-id uint32 :offset-assert 248) + (last-size float :offset-assert 252) + (damage float :offset-assert 256) + (last-lightning-sphere-pos vector :inline :offset-assert 272) + (part-subsampler basic :offset-assert 288) + (smoke-electric basic :offset-assert 292) + (smoke-matrix matrix :inline :offset-assert 304) + ) + :method-count-assert 44 + :size-assert #x170 + :flag-assert #x2c00e00170 + (:methods + (smoke-system-method-43 () none) ;; 43 + ) + (:state-methods + idle ;; 42 + ) + ) +|# + +#| +(deftype z-index (structure) + ((z float :offset-assert 0) + (index int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype lightning-sphere (process-drawable) + ((last-touched-by uint64 :offset-assert 248) + (start-time int32 :offset-assert 256) + (damage float :offset-assert 260) + (l-control basic :offset-assert 264) + (lightning-time int32 :offset-assert 268) + (start vector :inline :offset-assert 272) + (end vector :inline :offset-assert 288) + (zap-target uint64 :offset-assert 304) + (lightning-on basic :offset-assert 312) + (sound-id uint32 :offset-assert 316) + (owner-handle uint64 :offset-assert 320) + ) + :method-count-assert 51 + :size-assert #x148 + :flag-assert #x3300c00148 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype v-wpn-red-smoke (vehicle-weapon-slot) + ((smoke-system uint64 :offset-assert 264) + (wait-time int32 :offset-assert 272) + ) + :method-count-assert 62 + :size-assert #x114 + :flag-assert #x3e00900114 + (:methods + (v-wpn-red-smoke-method-61 () none) ;; 61 + ) + (:state-methods + idle ;; 50 + wait-delay ;; 60 + ) + ) +|# + +#| +(deftype strip-segment (structure) + ((strip-length int8 :offset-assert 0) + (strip-index int8 :offset-assert 1) + (birth-time int32 :offset-assert 4) + (points UNKNOWN 3 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype oil-trail (prim-client) + ((tex-id uint32 :offset-assert 4) + (segment-count int32 :offset-assert 8) + (last-segment-last-point vector :inline :offset-assert 16) + (last-segment-first-point vector :inline :offset-assert 32) + (segments UNKNOWN 50 :offset-assert 48) + (strip basic :offset-assert 3248) + ) + :method-count-assert 17 + :size-assert #xcb4 + :flag-assert #x1100000cb4 + (:methods + (oil-trail-method-10 () none) ;; 10 + (oil-trail-method-11 () none) ;; 11 + (oil-trail-method-12 () none) ;; 12 + (oil-trail-method-13 () none) ;; 13 + (oil-trail-method-14 () none) ;; 14 + (oil-trail-method-15 () none) ;; 15 + (oil-trail-method-16 () none) ;; 16 + ) + ) +|# + +#| +(deftype slip-object (process-drawable) + ((start-time int32 :offset-assert 248) + (damage float :offset-assert 252) + (fire-sound basic :offset-assert 256) + (owner-handle uint64 :offset-assert 264) + ) + :method-count-assert 51 + :size-assert #x110 + :flag-assert #x3300800110 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype oil-slick (process-drawable) + ((vehicle uint64 :offset-assert 248) + ) + :method-count-assert 51 + :size-assert #x100 + :flag-assert #x3300700100 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype oil-emitter (process) + ((emitting basic :offset-assert 144) + (owning-vehicle uint64 :offset-assert 152) + (oil-trail basic :offset-assert 160) + (last-surface-pos vector :inline :offset-assert 176) + (last-slip-spawn-pos vector :inline :offset-assert 192) + (current-segment strip-segment :inline :offset-assert 208) + (slip-distance-emit float :offset-assert 272) + (state-time int32 :offset-assert 276) + (spill-sound-id uint32 :offset-assert 280) + (damage float :offset-assert 284) + (oil-slick uint64 :offset-assert 288) + ) + :method-count-assert 19 + :size-assert #x128 + :flag-assert #x1300a00128 + (:methods + (oil-emitter-method-9 () none) ;; 9 + (oil-emitter-method-10 () none) ;; 10 + (oil-emitter-method-11 () none) ;; 11 + (oil-emitter-method-12 () none) ;; 12 + (oil-emitter-method-13 () none) ;; 13 + (oil-emitter-method-14 () none) ;; 14 + (oil-emitter-method-16 () none) ;; 16 + (oil-emitter-method-17 () none) ;; 17 + (oil-emitter-method-18 () none) ;; 18 + ) + (:state-methods + emit-oil ;; 15 + ) + ) +|# + +#| +(deftype oil-flame-emitter (oil-emitter) + ((last-flame-spawn-pos vector :inline :offset-assert 304) + (flame-distance-emit float :offset-assert 320) + ) + :method-count-assert 19 + :size-assert #x144 + :flag-assert #x1300c00144 + ) +|# + +#| +(deftype v-wpn-red-oil (vehicle-weapon-slot) + ((oil-emitter uint64 :offset-assert 264) + (wait-time int32 :offset-assert 272) + ) + :method-count-assert 62 + :size-assert #x114 + :flag-assert #x3e00900114 + (:methods + (v-wpn-red-oil-method-61 () none) ;; 61 + ) + (:state-methods + idle ;; 50 + wait-delay ;; 60 + ) + ) +|# + +;; (define-extern smoke-system-local-space function) +;; (define-extern sift-down function) +;; (define-extern heap-sort function) +;; (define-extern clear-strip function) +;; (define-extern lightning-sphere-init-by-other function) +;; (define-extern lightning-sphere-spawn function) +;; (define-extern vector+float*-ignore-w! function) +;; (define-extern smoke-update function) +;; (define-extern smoke-render function) +;; (define-extern smoke-spawn function) +;; (define-extern smoke-system-init-by-other function) +;; (define-extern smoke-system-spawn function) +;; (define-extern slip-object-init-by-other function) +;; (define-extern slip-object-spawn function) +;; (define-extern oil-slick-init-by-other function) +;; (define-extern oil-slick-spawn function) +;; (define-extern oil-trail-emit function) +;; (define-extern oil-emitter-init-by-other function) +;; (define-extern oil-emitter-spawn function) +;; (define-extern oil-flame-emitter-init-by-other function) +;; (define-extern oil-flame-emitter-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-weapons ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype muzzle-flash (process-drawable) + ((glued-to uint64 :offset-assert 248) + (glued-joint int32 :offset-assert 256) + (local-rotation quaternion :inline :offset-assert 272) + ) + :method-count-assert 52 + :size-assert #x120 + :flag-assert #x3400900120 + (:state-methods + idle ;; 51 + lit ;; 50 + ) + ) +|# + +#| +(deftype v-wpn-yellow-chain-gun (vehicle-weapon-slot) + ((last-fire-event uint64 :offset-assert 264) + (firecontrol basic :offset-assert 272) + (blam uint32 :offset-assert 276) + ) + :method-count-assert 61 + :size-assert #x118 + :flag-assert #x3d00900118 + (:state-methods + idle ;; 50 + firing ;; 60 + ) + ) +|# + +#| +(deftype v-wpn-yellow-default-gun (vehicle-weapon-slot) + ((last-fire-event uint64 :offset-assert 264) + (firecontrol basic :offset-assert 272) + (blam uint32 :offset-assert 276) + ) + :method-count-assert 61 + :size-assert #x118 + :flag-assert #x3d00900118 + (:state-methods + idle ;; 50 + firing ;; 60 + ) + ) +|# + +#| +(deftype v-wpn-yellow-grenade (vehicle-weapon-slot) + ((next-shot-allowed uint64 :offset-assert 264) + (next-to-fire uint8 :offset-assert 272) + ) + :method-count-assert 60 + :size-assert #x111 + :flag-assert #x3c00900111 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype v-wpn-yellow-guided-missile (vehicle-weapon-slot) + ((next-shot-allowed uint64 :offset-assert 264) + (next-to-fire uint8 :offset-assert 272) + (targ-list UNKNOWN 4 :offset-assert 280) + (run-targeting-this-frame int8 :offset-assert 312) + ) + :method-count-assert 61 + :size-assert #x139 + :flag-assert #x3d00b00139 + (:state-methods + idle ;; 50 + firing ;; 60 + ) + ) +|# + +#| +(deftype v-wpn-yellow-seismic-blaster (vehicle-weapon-slot) + ((fire-at uint32 :offset-assert 264) + (on-hud-indic int8 :offset-assert 268) + ) + :method-count-assert 62 + :size-assert #x10d + :flag-assert #x3e0080010d + (:state-methods + idle ;; 50 + firing ;; 60 + backfiring ;; 61 + ) + ) +|# + +;; (define-extern vws-focus-search-base function) +;; (define-extern gunmount-common-trans function) +;; (define-extern gunmount-common-post function) +;; (define-extern gunmount-drawable-init-by-other function) +;; (define-extern gunmount-event-handler function) +;; (define-extern muzzle-flash-event-handler function) +;; (define-extern muzzle-flash-init-by-other function) +;; (define-extern gunmount-get-change-anim function) +;; (define-extern gunmount-generic-event-handler function) +;; (define-extern v-wpn-yellow-chain-gun-I-rapid-fire-control-params object) +;; (define-extern v-wpn-yellow-chain-gun-II-rapid-fire-control-params object) +;; (define-extern hack-sparticle-track-gun function) +;; (define-extern v-wpn-yellow-default-gun-rapid-fire-control-params object) +;; (define-extern v-wpn-yellow-guided-missile-init-remote function) +;; (define-extern *msg-map-v-wpn-yellow-guided-missile* array) +;; (define-extern *net-process-class-info-v-wpn-yellow-guided-missile* object) +;; (define-extern guided-missile-gen-proj-no-targ-helper function) +;; (define-extern guided-missile-gen-proj-targ-helper function) +;; (define-extern seismic-blaster-affects-player? function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-weapons-aux ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype red-sentry-bot (process-focusable) + ((destination-point vector :inline :offset-assert 256) + (destination-rot quaternion :inline :offset-assert 272) + (traj trajectory :inline :offset-assert 288) + (next-target-poll uint64 :offset-assert 328) + (targ-handle uint64 :offset-assert 336) + (yaw float :offset-assert 344) + (pitch float :offset-assert 348) + (expire-at int32 :offset-assert 352) + (hitpoints float :offset-assert 356) + (hitpoints-last float :offset-assert 360) + (hitpoints-prev-msg-time uint64 :offset-assert 368) + (flash UNKNOWN 2 :offset-assert 376) + (last-fired uint64 :offset-assert 392) + (gun-loop uint32 :offset-assert 400) + (warning basic :offset-assert 404) + (firecontrol basic :offset-assert 408) + (ammo int16 :offset-assert 412) + (powerup-level uint8 :offset-assert 414) + (shooter-id int8 :offset-assert 415) + ) + :method-count-assert 67 + :size-assert #x1a0 + :flag-assert #x43011001a0 + (:methods + (red-sentry-bot-method-64 () none) ;; 64 + (red-sentry-bot-method-65 () none) ;; 65 + (red-sentry-bot-method-66 () none) ;; 66 + ) + (:state-methods + falling ;; 59 + idle ;; 60 + firing ;; 61 + firing-missiles ;; 62 + die ;; 63 + ) + ) +|# + +;; (define-extern red-sentry-bot-init-remote function) +;; (define-extern *msg-map-red-sentry-bot* array) +;; (define-extern *net-process-class-info-red-sentry-bot* object) +;; (define-extern v-wpn-sentrybot-rapid-fire-control-params object) +;; (define-extern sentrybot-poke-yaw! function) +;; (define-extern sentrybot-poke-pitch! function) +;; (define-extern red-sentry-bot-init-by-other function) +;; (define-extern red-sentry-bot-common-trans function) +;; (define-extern red-sentry-bot-poll-target function) +;; (define-extern sentry-bot-base-handler function) +;; (define-extern v-wpn-yellow-bulldog-rapid-fire-control-params object) +;; (define-extern v-wpn-yellow-bulldog-II-rapid-fire-control-params object) +;; (define-extern drone-compute-pos! function) +;; (define-extern drone-trans-set-pos function) +;; (define-extern drone-trans-twitchy-rot function) +;; (define-extern drone-trans-rot-at-target function) +;; (define-extern drone-base-post function) +;; (define-extern vehicle-weapon-drone-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-weapons2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-wpn-red-turbo-preventor (vehicle-weapon-slot) + ((sound-id uint32 :offset-assert 264) + (player-id int8 :offset-assert 268) + (snd-loop uint32 :offset-assert 272) + ) + :method-count-assert 61 + :size-assert #x114 + :flag-assert #x3d00900114 + (:state-methods + idle ;; 50 + firing ;; 60 + ) + ) +|# + +#| +(deftype v-wpn-red-mine-launcher (vehicle-weapon-slot) + ((salvo-count uint8 :offset-assert 261) + (last-fired uint64 :offset-assert 264) + ) + :method-count-assert 61 + :size-assert #x110 + :flag-assert #x3d00800110 + (:state-methods + idle ;; 50 + firing ;; 60 + ) + ) +|# + +#| +(deftype v-wpn-red-sentry-gun (vehicle-weapon-slot) + () + :method-count-assert 60 + :size-assert #x105 + :flag-assert #x3c00800105 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype v-wpn-red-drone-gun (vehicle-weapon-slot) + () + :method-count-assert 61 + :size-assert #x105 + :flag-assert #x3d00800105 + (:state-methods + idle ;; 50 + firing ;; 60 + ) + ) +|# + +;; (define-extern mine-compute-landing-point! function) +;; (define-extern spawn-mine function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-weapons3 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-wpn-purple-shield (vehicle-weapon-slot) + ((mysound uint32 :offset-assert 264) + (zap-interval uint64 :offset-assert 272) + (jiggle-start uint64 :offset-assert 280) + (jiggle-amplitude float :offset-assert 288) + ) + :method-count-assert 61 + :size-assert #x124 + :flag-assert #x3d00a00124 + (:state-methods + idle ;; 50 + firing ;; 60 + ) + ) +|# + +#| +(deftype v-wpn-red-tractor-beam (vehicle-weapon-slot) + ((firing-at uint64 :offset-assert 264) + (duration-left int32 :offset-assert 272) + (using-side uint8 :offset-assert 276) + (part-on-me basic :offset-assert 224) + (part-on-target basic :offset-assert 280) + ) + :method-count-assert 61 + :size-assert #x11c + :flag-assert #x3d0090011c + (:state-methods + idle ;; 50 + firing ;; 60 + ) + ) +|# + +;; (define-extern shield-jiggle-scale! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-weapons-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern v-wpn-base-init-by-other function) +;; (define-extern warning-hud-draw function) +;; (define-extern v-wpn-type->color function) +;; (define-extern v-wpn-type->gunmount-config function) +;; (define-extern v-wpn-missile-init-by-other function) +;; (define-extern make-vehicle-weapon-slot function) +;; (define-extern v-wpn-choose-increasing-lethality function) +;; (define-extern v-wpn-get-mask function) +;; (define-extern v-wpn-num-available function) +;; (define-extern v-wpn-choose-random function) +;; (define-extern v-wpn-get-available-types function) +;; (define-extern race-player-behind-more-than function) +;; (define-extern v-wpn-get-selection-table function) +;; (define-extern v-wpn-mask-selection-table! function) +;; (define-extern v-wpn-pack-msg function) +;; (define-extern v-wpn-unpack-msg! function) +;; (define-extern vehicle-get-weapon-level function) +;; (define-extern global-turbo-suppressor-set! function) +;; (define-extern should-suppress-eco? function) +;; (define-extern rapid-fire-control-emitter-from-world function) +;; (define-extern rapid-fire-control-initialize-from-vehicle function) +;; (define-extern is-friendly-fire-helper function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-skel ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *wcar-explosion-info* vehicle-explosion-info) ;; vehicle-explosion-info +;; (define-extern *v-mongoose-constants* object) +;; (define-extern *v-falcon-constants* object) +;; (define-extern *v-wombat-constants* object) +;; (define-extern *v-possum-constants* object) +;; (define-extern *v-bobcat-constants* object) +;; (define-extern *v-cougar-constants* object) +;; (define-extern *v-wolf-constants* object) +;; (define-extern *v-bear-constants* object) +;; (define-extern *v-leopard-constants* object) +;; (define-extern *v-panther-constants* object) +;; (define-extern *v-tiger-constants* object) +;; (define-extern *v-cheetah-constants* object) +;; (define-extern *v-gila-constants* object) +;; (define-extern *v-snake-constants* object) ;; rigid-body-vehicle-constants +;; (define-extern *v-daxtermobile-constants* object) +;; (define-extern *v-drone-constants* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-antenna ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype joint-mod-set-rot-local (joint-mod-base) + ((rotation quaternion :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x20 + :flag-assert #xc00000020 + ) +|# + +#| +(deftype vehicle-antenna-state (structure) + ((data UNKNOWN 6 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype vehicle-antenna (process-drawable) + ((vehicle uint64 :offset-assert 248) + (attach-local-pos vector :inline :offset-assert 256) + (attach-rot quaternion :inline :offset-assert 272) + (jmod-antenna UNKNOWN 4 :offset-assert 288) + (jmod-tail joint-mod-set-rot-local :inline :offset-assert 416) + (sim-state vehicle-antenna-state :inline :offset-assert 448) + (ant-tip-pos vector :inline :offset-assert 448) + (ant-tip-vel vector :inline :offset-assert 464) + (spring-pos vector :inline :offset-assert 480) + (spring-vel vector :inline :offset-assert 496) + (tail-pos vector :inline :offset-assert 512) + (tail-vel vector :inline :offset-assert 528) + (i-tip-node int8 :offset-assert 544) + (use-tail? basic :offset-assert 548) + ) + :method-count-assert 55 + :size-assert #x228 + :flag-assert #x3701a00228 + (:methods + (vehicle-antenna-method-52 () none) ;; 52 + (vehicle-antenna-method-53 () none) ;; 53 + (vehicle-antenna-method-54 () none) ;; 54 + ) + (:state-methods + idle ;; 50 + die ;; 51 + ) + ) +|# + +;; (define-extern *vehicle-antenna-state* object) +;; (define-extern vehicle-antenna-init-by-other function) +;; (define-extern vehicle-antenna-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-base ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wcar-base (wvehicle) + ((jmod-shock-tops UNKNOWN 4 :offset-assert 4672) + (jmod-shock-mids UNKNOWN 4 :offset-assert 4800) + ) + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-mongoose ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-mongoose (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-falcon ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-falcon (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-wombat ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-wombat (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-possum ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-possum (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-bobcat ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-bobcat (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-cougar ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-cougar (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-wolf ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-wolf (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-bear ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-bear (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-leopard ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-leopard (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-panther ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-panther (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-tiger ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-tiger (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-cheetah ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-cheetah (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-gila ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-gila (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-snake ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-snake (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-daxtermobile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-daxtermobile (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drift ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drive-data (structure) + ((angles vector :inline :offset-assert 0) + (pos vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype drift-editor (process) + ((angles euler-angles :inline :offset-assert 144) + (counter int32 :offset-assert 160) + (editor-start-time uint32 :offset-assert 164) + (all-data-array UNKNOWN 5 :offset-assert 168) + (drive-data-array uint32 :offset-assert 168) + (wheel-front-left-data-array uint32 :offset-assert 172) + (wheel-front-right-data-array uint32 :offset-assert 176) + (wheel-rear-left-data-array uint32 :offset-assert 180) + (wheel-rear-right-data-array uint32 :offset-assert 184) + (release-start-trigger basic :offset-assert 188) + (odd-even int8 :offset-assert 192) + ) + :method-count-assert 19 + :size-assert #xc1 + :flag-assert #x13004000c1 + (:methods + (drift-editor-method-9 () none) ;; 9 + (drift-editor-method-10 () none) ;; 10 + (drift-editor-method-11 () none) ;; 11 + (drift-editor-method-12 () none) ;; 12 + (drift-editor-method-13 () none) ;; 13 + (drift-editor-method-14 () none) ;; 14 + (drift-editor-method-18 () none) ;; 18 + ) + (:state-methods + init-state ;; 15 + run-state ;; 16 + write-file ;; 17 + ) + ) +|# + +;; (define-extern *drift-file-stream* file-stream) +;; (define-extern *drift-editor* object) +;; (define-extern drift-editor-init-by-other function) +;; (define-extern start-drift function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; race-mesh ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; race-ai-tuning ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *generic-ai-tuning* array) +;; (define-extern *snow-ai-tuning* array) +;; (define-extern *kras-ai-tuning* array) +;; (define-extern *spargus-ai-tuning* array) +;; (define-extern *jungle-ai-tuning* array) +;; (define-extern *haven-ai-tuning* array) +;; (define-extern *sewer-ai-tuning* array) +;; (define-extern *drome-ai-tuning* array) +;; (define-extern *dromdoc-ai-tuning* array) +;; (define-extern *kratour-ai-tuning* array) +;; (define-extern *havtour-ai-tuning* array) +;; (define-extern *canyon-ai-tuning* array) +;; (define-extern *spatour-ai-tuning* array) +;; (define-extern *docks-ai-tuning* array) +;; (define-extern *icepass-ai-tuning* array) +;; (define-extern *havsew-ai-tuning* array) +;; (define-extern *peak-ai-tuning* array) +;; (define-extern *icetour-ai-tuning* array) +;; (define-extern *dockkra-ai-tuning* array) +;; (define-extern *ice-ai-tuning* array) +;; (define-extern *temple-ai-tuning* array) +;; (define-extern *canspar-ai-tuning* array) +;; (define-extern *havjung-ai-tuning* array) +;; (define-extern *spartem-ai-tuning* array) +;; (define-extern *iceberg-ai-tuning* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; minimap ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; engine-minimap is already defined! + +;; (define-extern *minimap* object) ;; minimap +;; (define-extern *minimap-class-list* object) ;; (inline-array minimap-class-node) +;; (define-extern lookup-minimap-texture-by-name function) ;; (function string string (pointer texture-page) texture) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jakx-init ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern jakx-login function) +;; (define-extern jakx-activate function) +;; (define-extern jakx-deactivate function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-ashelin ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; atoll-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-atoll* object) +;; (define-extern *ocean-near-indices-atoll* ocean-near-indices) +;; (define-extern *ocean-trans-indices-atoll* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-atoll* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-atoll* ocean-mid-masks) +;; (define-extern *ocean-map-atoll* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; atoll-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *atoll-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; atoll-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-atoll-splash-color* curve-color-fast) +;; (define-extern *range-atoll-splash-alpha* curve2d-fast) +;; (define-extern *range-atoll-splash-scale-x* curve2d-fast) +;; (define-extern *range-atoll-splash-scale-y* curve2d-fast) +;; (define-extern *curve-atoll-splash-alpha* curve2d-fast) +;; (define-extern *curve-atoll-splash-scale-x* curve2d-fast) +;; (define-extern *curve-atoll-splash-scale-y* curve2d-fast) +;; (define-extern *part-atoll-ocean-splash-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; atoll-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype atoll-rotor (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype atoll-dish (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-artifact ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype artifact (net-powerup) + ((high-value basic :offset-assert 244) + (original-owner int32 :offset-assert 248) + ) + :method-count-assert 56 + :size-assert #xfc + :flag-assert #x38007000fc + (:state-methods + idle ;; 42 + ) + ) +|# + +#| +(deftype artifact-draw (eco-powerup-draw) + () + :method-count-assert 57 + :size-assert #x110 + :flag-assert #x3900800110 + (:state-methods + idle ;; 50 + ) + ) +|# + +;; (define-extern artifact-init-remote function) +;; (define-extern *msg-map-artifact* array) +;; (define-extern *net-process-class-info-artifact* object) +;; (define-extern artifact-draw-init-remote function) +;; (define-extern *msg-map-artifact-draw* array) +;; (define-extern *net-process-class-info-artifact-draw* object) +;; (define-extern get-artifact-position function) +;; (define-extern get-artifact-color function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctf-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctf-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctf-base (process-drawable) + ((base-b uint64 :offset-assert 248) + (base-c uint64 :offset-assert 256) + (team uint8 :offset-assert 264) + ) + :method-count-assert 51 + :size-assert #x109 + :flag-assert #x3300800109 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype ctf-base-b (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype ctf-base-c (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype ctf-captured-flag (process-drawable) + ((pos vector :inline :offset-assert 256) + (end vector :inline :offset-assert 272) + (l-control basic :offset-assert 288) + (lightning-time int32 :offset-assert 292) + (arc-sound uint32 :offset-assert 296) + (lightning-on basic :offset-assert 300) + (index int8 :offset-assert 304) + ) + :method-count-assert 51 + :size-assert #x131 + :flag-assert #x3300b00131 + (:state-methods + idle ;; 50 + ) + ) +|# + +;; (define-extern ctf-base-b-init-by-other function) +;; (define-extern ctf-base-b-spawn function) +;; (define-extern ctf-base-c-init-by-other function) +;; (define-extern ctf-base-c-spawn function) +;; (define-extern flag-at-base? function) +;; (define-extern seek-default-size function) +;; (define-extern move-captured-flag function) +;; (define-extern ctf-captured-flag-init-by-other function) +;; (define-extern ctf-captured-flag-spawn function) +;; (define-extern ctf-flag-init-by-other function) +;; (define-extern ctf-flag-spawn function) +;; (define-extern flag-post function) +;; (define-extern movement-post function) +;; (define-extern seek-size function) +;; (define-extern place-on-car function) +;; (define-extern flag-fall function) +;; (define-extern ctf-cap-red function) +;; (define-extern ctf-cap-blue function) +;; (define-extern ctf-drop-flag function) +;; (define-extern ctf-grab-blue function) +;; (define-extern ctf-grab-red function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-ctf ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-ctf-indicators (hud-player-indicators) + () + :method-count-assert 25 + :size-assert #x2c + :flag-assert #x190000002c + ) +|# + +#| +(deftype hud-ctf-indicators-view0 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-ctf-indicators-view1 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +;; (define-extern *hud-ctf-indicators-view0* array) +;; (define-extern *hud-ctf-indicators-view0-proc* object) +;; (define-extern spawn-hud-ctf-indicators-view0 function) +;; (define-extern *hud-ctf-indicators-view1* array) +;; (define-extern *hud-ctf-indicators-view1-proc* object) +;; (define-extern spawn-hud-ctf-indicators-view1 function) +;; (define-extern spawn-unused-hud-ctf-indicators-view function) +;; (define-extern net-player-ctf-init-local function) +;; (define-extern set-flag-event function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-beasthunt ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-hunt-indicators (hud-item-group) + ((last-position vector :inline :offset-assert 48) + ) + :method-count-assert 24 + :size-assert #x40 + :flag-assert #x1800000040 + ) +|# + +#| +(deftype hud-hunt-indicators-view0 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-hunt-indicators-view1 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +;; (define-extern *hud-hunt-indicators-view0* array) +;; (define-extern *hud-hunt-indicators-view0-proc* object) +;; (define-extern spawn-hud-hunt-indicators-view0 function) +;; (define-extern *hud-hunt-indicators-view1* array) +;; (define-extern *hud-hunt-indicators-view1-proc* object) +;; (define-extern spawn-hud-hunt-indicators-view1 function) +;; (define-extern spawn-unused-hud-hunt-indicators-view function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; plow ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype plow (net-enemy) + ((tracking-player uint64 :offset-assert 872) + (do-flip-anim basic :offset-assert 880) + (been-hit basic :offset-assert 884) + (thruster-left basic :offset-assert 888) + (thruster-right basic :offset-assert 892) + (thruster-left-small basic :offset-assert 896) + (thruster-right-small basic :offset-assert 900) + (thruster-main basic :offset-assert 904) + (eye-left basic :offset-assert 908) + (eye-right basic :offset-assert 912) + (eye-left-small basic :offset-assert 916) + (eye-right-small basic :offset-assert 920) + (smoke basic :offset-assert 924) + (smoke2 basic :offset-assert 928) + (engine-sound-id uint32 :offset-assert 932) + ) + :method-count-assert 90 + :size-assert #x3a8 + :flag-assert #x5a032003a8 + (:state-methods + startup ;; 59 + intro-path ;; 87 + following-path ;; 88 + reverse ;; 89 + waiting-respawn ;; 61 + ) + ) +|# + +;; (define-extern *plow-debris-params* debris-static-params) +;; (define-extern *plow-enemy-info* object) +;; (define-extern plow-init-remote function) +;; (define-extern *msg-map-plow* array) +;; (define-extern *net-process-class-info-plow* object) +;; (define-extern *range-plowexplo-color* curve-color-fast) +;; (define-extern *range-plowexplo-alpha* curve2d-fast) +;; (define-extern *range-plowexplo-scale-x* curve2d-fast) +;; (define-extern *range-plowexplo-scale-y* curve2d-fast) +;; (define-extern *curve-plowexplo-alpha* curve2d-fast) +;; (define-extern *curve-plowexplo-scale-x* curve2d-fast) +;; (define-extern *curve-plowexplo-scale-y* curve2d-fast) +;; (define-extern *part-plow-explosion-texture-curve-settings* object) +;; (define-extern do-bob function) +;; (define-extern *plow-avoidance-bbox-rad* object) +;; (define-extern *plow-ignore-if-above* object) +;; (define-extern check-collision-with-other-plows function) +;; (define-extern probe-hits-stuff function) +;; (define-extern do-launch function) +;; (define-extern launch-nearby-players function) +;; (define-extern *flip-speed* object) +;; (define-extern *flip-blend* object) +;; (define-extern plow-trans function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; brdroom-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype brd-pool-water (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; brdroom-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; raceline-weapon ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype raceline-weapon (process-drawable) + ((owner-id int8 :offset-assert 248) + (delta-height float :offset-assert 252) + (birth-time int32 :offset-assert 256) + (minimap connection-minimap :offset-assert 260) + (visible basic :offset-assert 264) + (last-sent-time int32 :offset-assert 268) + (prox basic :offset-assert 168) + (mesh basic :offset-assert 276) + (slice-id int16 :offset-assert 280) + (race-line race-line :offset-assert 284) + (lap-dist float :offset-assert 288) + (lap int32 :offset-assert 292) + (direction vector :inline :offset-assert 304) + (nearest-pos vector :inline :offset-assert 320) + (target-pos vector :inline :offset-assert 336) + (speed float :offset-assert 352) + ) + :method-count-assert 79 + :size-assert #x164 + :flag-assert #x4f00e00164 + (:methods + (raceline-weapon-method-52 () none) ;; 52 + (raceline-weapon-method-53 () none) ;; 53 + (raceline-weapon-method-54 () none) ;; 54 + (raceline-weapon-method-55 () none) ;; 55 + (raceline-weapon-method-56 () none) ;; 56 + (raceline-weapon-method-57 () none) ;; 57 + (raceline-weapon-method-58 () none) ;; 58 + (raceline-weapon-method-59 () none) ;; 59 + (raceline-weapon-method-60 () none) ;; 60 + (raceline-weapon-method-61 () none) ;; 61 + (raceline-weapon-method-62 () none) ;; 62 + (raceline-weapon-method-63 () none) ;; 63 + (raceline-weapon-method-64 () none) ;; 64 + (raceline-weapon-method-65 () none) ;; 65 + (raceline-weapon-method-66 () none) ;; 66 + (raceline-weapon-method-67 () none) ;; 67 + (raceline-weapon-method-68 () none) ;; 68 + (raceline-weapon-method-69 () none) ;; 69 + (raceline-weapon-method-70 () none) ;; 70 + (raceline-weapon-method-71 () none) ;; 71 + (raceline-weapon-method-72 () none) ;; 72 + (raceline-weapon-method-73 () none) ;; 73 + (raceline-weapon-method-74 () none) ;; 74 + (raceline-weapon-method-75 () none) ;; 75 + (raceline-weapon-method-76 () none) ;; 76 + (raceline-weapon-method-77 () none) ;; 77 + (raceline-weapon-method-78 () none) ;; 78 + ) + (:state-methods + tracking ;; 50 + die ;; 51 + ) + ) +|# + +;; (define-extern raceline-weapon-init-remote function) +;; (define-extern *msg-map-raceline-weapon* array) +;; (define-extern *net-process-class-info-raceline-weapon* object) +;; (define-extern raceline-weapon-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-weapons-chicken-drone ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype chicken-drone (raceline-weapon) + ((beam-fire-control basic :offset-assert 356) + (machinegun-sound uint32 :offset-assert 360) + (particle-matrix matrix :inline :offset-assert 368) + (sound-id uint32 :offset-assert 432) + ) + :method-count-assert 81 + :size-assert #x1b4 + :flag-assert #x51013001b4 + (:methods + (chicken-drone-method-79 () none) ;; 79 + (chicken-drone-method-80 () none) ;; 80 + ) + (:state-methods + tracking ;; 50 + die ;; 51 + ) + ) +|# + +#| +(deftype chicken-drone-2 (chicken-drone) + () + :method-count-assert 81 + :size-assert #x1b4 + :flag-assert #x51013001b4 + ) +|# + +#| +(deftype seeker (raceline-weapon) + ((sound-id uint32 :offset-assert 356) + (start-speed float :offset-assert 360) + ) + :method-count-assert 79 + :size-assert #x16c + :flag-assert #x4f00e0016c + (:state-methods + die ;; 51 + tracking ;; 50 + ) + ) +|# + +#| +(deftype lightning-point (structure) + ((active basic :offset-assert 0) + (vehicle-id int8 :offset-assert 4) + (sound-id uint32 :offset-assert 8) + (point vector :inline :offset-assert 16) + (l-control basic :offset-assert 32) + (next-test-time int32 :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype success-seeker (seeker) + ((last-had-target-time int32 :offset-assert 364) + (lightning-point UNKNOWN 3 :offset-assert 368) + (particle-matrix matrix :inline :offset-assert 512) + (lost-target basic :offset-assert 576) + (center-quad basic :offset-assert 580) + ) + :method-count-assert 84 + :size-assert #x248 + :flag-assert #x5401c00248 + (:methods + (success-seeker-method-79 () none) ;; 79 + (success-seeker-method-80 () none) ;; 80 + (success-seeker-method-81 () none) ;; 81 + (success-seeker-method-82 () none) ;; 82 + (success-seeker-method-83 () none) ;; 83 + ) + (:state-methods + tracking ;; 50 + ) + ) +|# + +#| +(deftype success-seeker-2 (success-seeker) + () + :method-count-assert 84 + :size-assert #x248 + :flag-assert #x5401c00248 + ) +|# + +#| +(deftype turbodash-seeker (seeker) + ((trail-tracker uint64 :offset-assert 368) + (target-id int8 :offset-assert 376) + (center-quad basic :offset-assert 380) + ) + :method-count-assert 81 + :size-assert #x180 + :flag-assert #x5100f00180 + (:methods + (turbodash-seeker-method-79 () none) ;; 79 + (turbodash-seeker-method-80 () none) ;; 80 + ) + (:state-methods + tracking ;; 50 + die ;; 51 + ) + ) +|# + +#| +(deftype v-wpn-success-seeker (vehicle-weapon-slot) + ((next-shot-time int32 :offset-assert 268) + (next-to-fire uint8 :offset-assert 272) + ) + :method-count-assert 60 + :size-assert #x111 + :flag-assert #x3c00900111 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype v-wpn-chicken-drone (vehicle-weapon-slot) + ((next-shot-time int32 :offset-assert 268) + (next-to-fire uint8 :offset-assert 272) + ) + :method-count-assert 60 + :size-assert #x111 + :flag-assert #x3c00900111 + (:state-methods + idle ;; 50 + ) + ) +|# + +;; (define-extern chicken-drone-init-remote function) +;; (define-extern *msg-map-chicken-drone* array) +;; (define-extern *net-process-class-info-chicken-drone* object) +;; (define-extern v-wpn-chicken-drone-rapid-fire-control-params object) +;; (define-extern chicken-drone-spawn function) +;; (define-extern chicken-drone-local-space function) +;; (define-extern chicken-drone-2-init-remote function) +;; (define-extern *msg-map-chicken-drone-2* array) +;; (define-extern *net-process-class-info-chicken-drone-2* object) +;; (define-extern chicken-drone-2-spawn function) +;; (define-extern seeker-init-remote function) +;; (define-extern *msg-map-seeker* array) +;; (define-extern *net-process-class-info-seeker* object) +;; (define-extern success-seeker-init-remote function) +;; (define-extern *msg-map-success-seeker* array) +;; (define-extern *net-process-class-info-success-seeker* object) +;; (define-extern success-seeker-1-spawn function) +;; (define-extern success-seeker-local-space function) +;; (define-extern success-seeker-2-init-remote function) +;; (define-extern *msg-map-success-seeker-2* array) +;; (define-extern *net-process-class-info-success-seeker-2* object) +;; (define-extern success-seeker-2-spawn function) +;; (define-extern turbodash-seeker-init-remote function) +;; (define-extern *msg-map-turbodash-seeker* array) +;; (define-extern *net-process-class-info-turbodash-seeker* object) +;; (define-extern turbodash-seeker-spawn function) +;; (define-extern fire-seeker function) +;; (define-extern fire-drone function) +;; (define-extern spawn-success-seeker-weapon function) +;; (define-extern spawn-chicken-drone-weapon function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; football ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-item-football-lap (hud-item-group) + () + :method-count-assert 24 + :size-assert #x2c + :flag-assert #x180000002c + ) +|# + +#| +(deftype hud-powerbar-slider (hud-item-group) + () + :method-count-assert 25 + :size-assert #x2c + :flag-assert #x190000002c + (:methods + (hud-powerbar-slider-method-24 () none) ;; 24 + ) + ) +|# + +#| +(deftype hud-football-turbojuice-meter (hud-item-group) + () + :method-count-assert 24 + :size-assert #x2c + :flag-assert #x180000002c + ) +|# + +#| +(deftype hud-football-stats-aux-view00 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-football-stats-aux-view01 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-football-stats-aux-view10 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-football-stats-aux-view11 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-football-stats-view-view-0 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-football-stats-view-view-1 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-football-stats-top-view-view-0 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-football-stats-top-view-view-1 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-manager-football-intro (basic-manager) + ((start-time int32 :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x14 + :flag-assert #xc00000014 + ) +|# + +#| +(deftype hud-football-managed-intro0 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-football-managed-intro1 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-football-managed-intro2 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-football-managed-intro3 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-football-managed-intro4 (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype powercell-dispenser-subdraw (process-drawable) + ((fuel-cell uint64 :offset-assert 248) + (luxo vu-lights :inline :offset-assert 256) + (draw-part? basic :offset-assert 368) + ) + :method-count-assert 52 + :size-assert #x174 + :flag-assert #x3400f00174 + (:methods + (powercell-dispenser-subdraw-method-50 () none) ;; 50 + (powercell-dispenser-subdraw-method-51 () none) ;; 51 + ) + ) +|# + +;; (define-extern *powercell-footie-constants* object) +;; (define-extern *vehicle-control-football-throttle-jammed-open* object) +;; (define-extern football-find-borrow-level function) +;; (define-extern *hud-intro-turbo-meter* object) +;; (define-extern *hud-football-stats-aux-view00* array) +;; (define-extern *hud-football-stats-aux-view00-proc* object) +;; (define-extern spawn-hud-football-stats-aux-view00 function) +;; (define-extern *hud-football-stats-aux-view01* array) +;; (define-extern *hud-football-stats-aux-view01-proc* object) +;; (define-extern spawn-hud-football-stats-aux-view01 function) +;; (define-extern spawn-unused-hud-football-stats-aux-view0 function) +;; (define-extern *hud-football-stats-aux-view10* array) +;; (define-extern *hud-football-stats-aux-view10-proc* object) +;; (define-extern spawn-hud-football-stats-aux-view10 function) +;; (define-extern *hud-football-stats-aux-view11* array) +;; (define-extern *hud-football-stats-aux-view11-proc* object) +;; (define-extern spawn-hud-football-stats-aux-view11 function) +;; (define-extern spawn-unused-hud-football-stats-aux-view1 function) +;; (define-extern *hud-football-stats-view-view-0* array) +;; (define-extern *hud-football-stats-view-view-0-proc* object) +;; (define-extern spawn-hud-football-stats-view-view-0 function) +;; (define-extern *hud-football-stats-view-view-1* array) +;; (define-extern *hud-football-stats-view-view-1-proc* object) +;; (define-extern spawn-hud-football-stats-view-view-1 function) +;; (define-extern spawn-hud-football-stats-view function) +;; (define-extern *hud-football-stats-top-view-view-0* array) +;; (define-extern *hud-football-stats-top-view-view-0-proc* object) +;; (define-extern spawn-hud-football-stats-top-view-view-0 function) +;; (define-extern *hud-football-stats-top-view-view-1* array) +;; (define-extern *hud-football-stats-top-view-view-1-proc* object) +;; (define-extern spawn-hud-football-stats-top-view-view-1 function) +;; (define-extern spawn-hud-football-stats-top-view function) +;; (define-extern spawn-hud-football-stats function) +;; (define-extern *hud-football-managed-intro0* array) +;; (define-extern *hud-football-managed-intro0-proc* object) +;; (define-extern spawn-hud-football-managed-intro0 function) +;; (define-extern *hud-football-managed-intro1* array) +;; (define-extern *hud-football-managed-intro1-proc* object) +;; (define-extern spawn-hud-football-managed-intro1 function) +;; (define-extern *hud-football-managed-intro2* array) +;; (define-extern *hud-football-managed-intro2-proc* object) +;; (define-extern spawn-hud-football-managed-intro2 function) +;; (define-extern *hud-football-managed-intro3* array) +;; (define-extern *hud-football-managed-intro3-proc* object) +;; (define-extern spawn-hud-football-managed-intro3 function) +;; (define-extern *hud-football-managed-intro4* array) +;; (define-extern *hud-football-managed-intro4-proc* object) +;; (define-extern spawn-hud-football-managed-intro4 function) +;; (define-extern spawn-unused-hud-football-managed-intro function) +;; (define-extern *pcell-colors* object) +;; (define-extern *pcell-vec* object) +;; (define-extern *pcell-origin?* object) +;; (define-extern birth-func-pcell function) +;; (define-extern net-player-football-handle-pcells function) +;; (define-extern has-powercell? function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; football2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-func-cell-grabbed function) +;; (define-extern powercell-subdraw-init-by-other function) +;; (define-extern powercell-footie-init-by-other function) +;; (define-extern powercell-footie-update-pos-on-vehicle function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spargus-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype spar-lighthouse-light (process-drawable) + ((part-tracker uint64 :offset-assert 248) + ) + :method-count-assert 51 + :size-assert #x100 + :flag-assert #x3300700100 + (:state-methods + idle ;; 50 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; canspar-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-canspar* object) +;; (define-extern *ocean-near-indices-canspar* ocean-near-indices) +;; (define-extern *ocean-trans-indices-canspar* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-canspar* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-canspar* ocean-mid-masks) +;; (define-extern *ocean-map-canspar* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; canyon-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-part-canyon-leaf-fall function) +;; (define-extern spt-birth-func-part-canyon-leaf-fall function) +;; (define-extern spt-canyon-check-ground-lie-flat function) +;; (define-extern *range-cynsplash-color* curve-color-fast) +;; (define-extern *range-cynsplash-alpha* curve2d-fast) +;; (define-extern *range-cynsplash-scale-x* curve2d-fast) +;; (define-extern *range-cynsplash-scale-y* curve2d-fast) +;; (define-extern *curve-cynsplash-alpha* curve2d-fast) +;; (define-extern *curve-cynsplash-scale-x* curve2d-fast) +;; (define-extern *curve-cynsplash-scale-y* curve2d-fast) +;; (define-extern *part-canyon-ocean-splash-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; canyon-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *canyona-water-texture-anim-array* texture-anim-array) +;; (define-extern *canyonc-water-texture-anim-array* texture-anim-array) +;; (define-extern *canyone-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-time-box ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-time-collected (hud-item-group) + () + :method-count-assert 24 + :size-assert #x2c + :flag-assert #x180000002c + ) +|# + +#| +(deftype time-freeze-clock (hud-clock) + () + :method-count-assert 25 + :size-assert #x48 + :flag-assert #x1900000048 + ) +|# + +#| +(deftype hud-time-box-stats (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +;; (define-extern freeze-fade-func function) +;; (define-extern *hud-time-collected-items* array) +;; (define-extern *hud-time-box-stats* array) +;; (define-extern *hud-time-box-stats-proc* object) +;; (define-extern spawn-hud-time-box-stats function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; time-box-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype time-freeze-short-draw (powerup-draw) + ((base-y float :offset-assert 264) + (vehicle-handle uint64 :offset-assert 272) + ) + :method-count-assert 58 + :size-assert #x118 + :flag-assert #x3a00900118 + (:methods + (time-freeze-short-draw-method-57 () none) ;; 57 + ) + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype time-freeze-short (net-powerup) + ((freeze-time uint32 :offset-assert 244) + ) + :method-count-assert 56 + :size-assert #xf8 + :flag-assert #x38007000f8 + ) +|# + +#| +(deftype time-freeze-long-draw (time-freeze-short-draw) + () + :method-count-assert 58 + :size-assert #x128 + :flag-assert #x3a00a00128 + ) +|# + +#| +(deftype time-freeze-long (time-freeze-short) + () + :method-count-assert 56 + :size-assert #xf8 + :flag-assert #x38007000f8 + ) +|# + +#| +(deftype time-freeze-med-draw (time-freeze-short-draw) + () + :method-count-assert 58 + :size-assert #x128 + :flag-assert #x3a00a00128 + ) +|# + +#| +(deftype time-freeze-med (time-freeze-short) + () + :method-count-assert 56 + :size-assert #xf8 + :flag-assert #x38007000f8 + ) +|# + +;; (define-extern *time-freeze-short-debris-params* debris-static-params) +;; (define-extern *time-freeze-med-debris-params* debris-static-params) +;; (define-extern *time-freeze-long-debris-params* debris-static-params) +;; (define-extern time-freeze-short-draw-init-remote function) +;; (define-extern *msg-map-time-freeze-short-draw* array) +;; (define-extern *net-process-class-info-time-freeze-short-draw* object) +;; (define-extern time-freeze-short-init-remote function) +;; (define-extern *msg-map-time-freeze-short* array) +;; (define-extern *net-process-class-info-time-freeze-short* object) +;; (define-extern time-freeze-long-draw-init-remote function) +;; (define-extern *msg-map-time-freeze-long-draw* array) +;; (define-extern *net-process-class-info-time-freeze-long-draw* object) +;; (define-extern time-freeze-long-init-remote function) +;; (define-extern *msg-map-time-freeze-long* array) +;; (define-extern *net-process-class-info-time-freeze-long* object) +;; (define-extern time-freeze-med-draw-init-remote function) +;; (define-extern *msg-map-time-freeze-med-draw* array) +;; (define-extern *net-process-class-info-time-freeze-med-draw* object) +;; (define-extern time-freeze-med-init-remote function) +;; (define-extern *msg-map-time-freeze-med* array) +;; (define-extern *net-process-class-info-time-freeze-med* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-time-trial ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *timetrial-rec* object) +;; (define-extern *ghost-cmp-rec* object) +;; (define-extern *ttbox* object) +;; (define-extern *ttbox-valid* object) +;; (define-extern *ghost-recording-complete* object) +;; (define-extern ghost-recording-complete function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; canyon-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype can-leaves-floor (process-drawable) + () + :method-count-assert 51 + :size-assert #x100 + :flag-assert #x3300700100 + (:state-methods + idle ;; 50 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cliffs-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-func-birth-on-height-die-drip function) +;; (define-extern part-cliffs-bird1-path function) +;; (define-extern part-cliffs-bird2-path function) +;; (define-extern part-cliffs-bird3-path function) +;; (define-extern part-cliffs-bird4-path function) +;; (define-extern part-cliffs-bird5-path function) +;; (define-extern part-cliffs-bird6-path function) +;; (define-extern part-cliffs-bird7-path function) +;; (define-extern part-cliffs-bird8-path function) +;; (define-extern part-cliffs-bird9-path function) +;; (define-extern part-cliffs-bird10-path function) +;; (define-extern part-wascitya-fly1-path function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern part-wascitya-fly2-path function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern part-wascitya-fly3-path function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern spt-func-part-cliffs-drops-splash function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cliffs-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cliffs-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *cliffs-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cliffs-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-cliffs* object) +;; (define-extern *ocean-near-indices-cliffs* ocean-near-indices) +;; (define-extern *ocean-trans-indices-cliffs* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-cliffs* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-cliffs* ocean-mid-masks) +;; (define-extern *ocean-map-cliffs* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; common-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-cliffs-fence-dust function) +;; (define-extern spt-birth-func-brightness-cliffs-fence-splinters function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; common-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype snow-icebreak-a (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype snow-icebreak-b (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype snow-icebreak-c (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype cliffs-wood-fence-a (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype cliffs-wood-fence-b (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype cliffs-wood-fence-c (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype cliffs-wood-fence-d (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +;; (define-extern *ice-debris-params-a* debris-static-params) +;; (define-extern *ice-debris-params-b* debris-static-params) +;; (define-extern *ice-debris-params-c* debris-static-params) +;; (define-extern *cliffs-wood-fence-a-debris-params* debris-static-params) +;; (define-extern *cliffs-wood-fence-b-debris-params* debris-static-params) +;; (define-extern *cliffs-wood-fence-c-debris-params* debris-static-params) +;; (define-extern *cliffs-wood-fence-d-debris-params* debris-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ragdoll ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern ragdoll-matrix-interp function) ;; (function matrix matrix matrix float matrix) +;; (define-extern ragdoll-joint-callback function) ;; (function cspace transformq process-drawable ragdoll-proc none) +;; (define-extern ragdoll-other-joint-callback function) ;; (function cspace transformq none :behavior ragdoll-proc) +;; (define-extern ragdoll-reflect-matrix function) ;; (function matrix vector vector vector) +;; (define-extern ragdoll-proc-init-by-other function) ;; (function ragdoll-setup object :behavior ragdoll-proc) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; raptor ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype raptor (net-enemy) + () + :method-count-assert 91 + :size-assert #x368 + :flag-assert #x5b02e00368 + (:state-methods + startup ;; 59 + following-path ;; 87 + reverse ;; 89 + idle-wait ;; 88 + chase ;; 90 + ) + ) +|# + +;; (define-extern *raptor-ragdoll-info* object) +;; (define-extern *raptor-enemy-info* object) +;; (define-extern spt-birth-func-brightness-raptor-blood function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-training ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-training-clock (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype hud-vehicle-left-training (hud-vehicle-left) + () + :method-count-assert 24 + :size-assert #x2c + :flag-assert #x180000002c + ) +|# + +#| +(deftype hud-vehicle-right-training (hud-vehicle-right) + () + :method-count-assert 24 + :size-assert #x2c + :flag-assert #x180000002c + ) +|# + +#| +(deftype vehicle-hud-training (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype training-goal-info (structure) + ((i-rog-select int8 :offset-assert 0) + (goal-pos vector :inline :offset-assert 16) + (respawn-info net-player-respawn-info :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +#| +(deftype training-info (structure) + ((goal-count int8 :offset-assert 0) + (goals uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype net-player-training (net-player-deathrace) + ((explained-dark-eco basic :offset-assert 528) + (explained-mult-weapons basic :offset-assert 532) + (explained-full-dark-eco basic :offset-assert 536) + (complete basic :offset-assert 540) + (race-info basic :offset-assert 544) + (info training-info :offset-assert 548) + (goal-pos vector :inline :offset-assert 560) + (player-pos vector :inline :offset-assert 576) + (player-vel vector :inline :offset-assert 592) + (player-mat matrix :inline :offset-assert 608) + (player-controls vehicle-controls :inline :offset-assert 672) + (mask-controls vehicle-controls :offset-assert 696) + (locked-controls vehicle-controls :offset-assert 700) + (arrow uint64 :offset-assert 704) + (hud-timer uint64 :offset-assert 712) + (state-time uint64 :offset-assert 304) + (start-time uint64 :offset-assert 728) + (time-limit uint64 :offset-assert 736) + (test-time uint64 :offset-assert 744) + (player-health float :offset-assert 752) + (prev-player-health float :offset-assert 756) + (goal-dist float :offset-assert 760) + (desired-letterbox float :offset-assert 764) + (letterbox float :offset-assert 768) + (fail-dist float :offset-assert 772) + (max-count int16 :offset-assert 776) + (i-goal int8 :offset-assert 778) + (show-message? basic :offset-assert 780) + (bot uint64 :offset-assert 784) + (lap-distance float :offset-assert 792) + (lap-count int8 :offset-assert 796) + ) + :method-count-assert 132 + :size-assert #x31d + :flag-assert #x840290031d + (:methods + (net-player-training-method-113 () none) ;; 113 + (net-player-training-method-114 () none) ;; 114 + (net-player-training-method-115 () none) ;; 115 + (net-player-training-method-116 () none) ;; 116 + (net-player-training-method-117 () none) ;; 117 + (net-player-training-method-118 () none) ;; 118 + (net-player-training-method-119 () none) ;; 119 + (net-player-training-method-120 () none) ;; 120 + (net-player-training-method-121 () none) ;; 121 + (net-player-training-method-122 () none) ;; 122 + (net-player-training-method-123 () none) ;; 123 + (net-player-training-method-124 () none) ;; 124 + (net-player-training-method-125 () none) ;; 125 + (net-player-training-method-126 () none) ;; 126 + (net-player-training-method-127 () none) ;; 127 + (net-player-training-method-128 () none) ;; 128 + (net-player-training-method-129 () none) ;; 129 + (net-player-training-method-130 () none) ;; 130 + (net-player-training-method-131 () none) ;; 131 + ) + (:state-methods + waiting ;; 42 + failed ;; 111 + restart ;; 112 + running ;; 43 + ) + ) +|# + +#| +(deftype training2-race-hud (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +#| +(deftype training3-race-hud (in-game-hud) + () + :method-count-assert 33 + :size-assert #x18ec + :flag-assert #x21186018ec + ) +|# + +;; (define-extern *hud-training-clock* array) +;; (define-extern *hud-training-clock-proc* object) +;; (define-extern spawn-hud-training-clock function) +;; (define-extern *vehicle-hud-training* array) +;; (define-extern *vehicle-hud-training-proc* object) +;; (define-extern spawn-vehicle-hud-training function) +;; (define-extern kill-vehicle-hud-training function) +;; (define-extern net-player-training-init-remote function) +;; (define-extern *msg-map-net-player-training* array) +;; (define-extern *net-process-class-info-net-player-training* object) +;; (define-extern *training-info* object) +;; (define-extern training-wait-for-speech-end function) +;; (define-extern training-trans function) +;; (define-extern disable-green-eco-for-entity function) +;; (define-extern disable-green-eco function) +;; (define-extern training1-goal1 function) +;; (define-extern spawn-green-eco-for-entity function) +;; (define-extern spawn-green-eco function) +;; (define-extern training1-goal2 function) +;; (define-extern training2-goal1 function) +;; (define-extern *training2-race-hud* array) +;; (define-extern *training2-race-hud-proc* object) +;; (define-extern spawn-training2-race-hud function) +;; (define-extern training2-goal2 function) +;; (define-extern reset-training-table function) +;; (define-extern training3-goal1 function) +;; (define-extern *training3-race-hud* array) +;; (define-extern *training3-race-hud-proc* object) +;; (define-extern spawn-training3-race-hud function) +;; (define-extern change-weapon-table function) +;; (define-extern training3-goal2 function) +;; (define-extern do-mine-training function) +;; (define-extern training4-goal1 function) +;; (define-extern training4-goal2 function) +;; (define-extern training4-goal3 function) +;; (define-extern training5-goal1 function) +;; (define-extern training5-goal2 function) +;; (define-extern training5-goal3 function) +;; (define-extern count-ai function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-training-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype training-bollard (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype training-marker (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype training-wall (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-drone ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-drone (wcar-base) + () + :method-count-assert 272 + :size-assert #x13c0 + :flag-assert #x110133013c0 + ) +|# + +;; (define-extern *v-drone-headlight-glow-template* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; coliseum-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-coliseum-statue-dust function) +;; (define-extern spt-birth-func-brightness-coliseum-bridge-dust function) +;; (define-extern spt-birth-func-brightness-coliseum-bridge-leg-dust function) +;; (define-extern spt-birth-func-brightness-coliseum-hanger-dust function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; coliseum-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype coli-center-arch (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +;; (define-extern *coli-center-arch-explode-params* joint-exploder-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; coliseum-obs-atlas ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype coli-object-base (net-simple-destruct) + ((actor-group uint32 :offset-assert 284) + (actor-group-count int32 :offset-assert 288) + ) + :method-count-assert 71 + :size-assert #x128 + :flag-assert #x4700a00128 + (:methods + (coli-object-base-method-70 () none) ;; 70 + ) + (:state-methods + idle ;; 59 + ) + ) +|# + +#| +(deftype coli-statue (process-drawable) + ((actor-group uint32 :offset-assert 244) + (actor-group-count int32 :offset-assert 248) + (destruction-time int32 :offset-assert 252) + (check-time int32 :offset-assert 256) + ) + :method-count-assert 55 + :size-assert #x108 + :flag-assert #x3700800108 + (:methods + (coli-statue-method-52 () none) ;; 52 + (coli-statue-method-53 () none) ;; 53 + (coli-statue-method-54 () none) ;; 54 + ) + (:state-methods + idle ;; 50 + explode ;; 51 + ) + ) +|# + +#| +(deftype coli-atlas-statue (coli-statue) + () + :method-count-assert 55 + :size-assert #x108 + :flag-assert #x3700800108 + ) +|# + +#| +(deftype coli-atlas-base-a (coli-object-base) + () + :method-count-assert 71 + :size-assert #x128 + :flag-assert #x4700a00128 + (:state-methods + idle ;; 59 + ) + ) +|# + +#| +(deftype coli-atlas-base-b (coli-object-base) + () + :method-count-assert 71 + :size-assert #x128 + :flag-assert #x4700a00128 + (:state-methods + idle ;; 59 + ) + ) +|# + +#| +(deftype coli-atlas-base-c (coli-object-base) + () + :method-count-assert 71 + :size-assert #x128 + :flag-assert #x4700a00128 + (:state-methods + idle ;; 59 + ) + ) +|# + +#| +(deftype coli-ball-collision (process-focusable) + () + :method-count-assert 60 + :size-assert #x100 + :flag-assert #x3c00700100 + (:state-methods + idle ;; 59 + ) + ) +|# + +#| +(deftype coli-atlas-globe (rigid-body-object) + ((set-angular-velocity basic :offset-assert 288) + (send-update basic :offset-assert 292) + (last-sent-position vector :inline :offset-assert 304) + (angular-velocity vector :inline :offset-assert 320) + (orientation quaternion :inline :offset-assert 336) + (blend-position vector :inline :offset-assert 352) + (last-position vector :inline :offset-assert 368) + (rolling-sound uint32 :offset-assert 384) + (rolling-speed float :offset-assert 388) + (last-bounce-time int32 :offset-assert 392) + (last-sync-time int32 :offset-assert 396) + (volume-modulate float :offset-assert 400) + (roll-sound-stop-time int32 :offset-assert 404) + (roll-sound-start-time int32 :offset-assert 408) + ) + :method-count-assert 95 + :size-assert #x19c + :flag-assert #x5f0110019c + (:methods + (coli-atlas-globe-method-89 () none) ;; 89 + (coli-atlas-globe-method-90 () none) ;; 90 + (coli-atlas-globe-method-91 () none) ;; 91 + (coli-atlas-globe-method-92 () none) ;; 92 + (coli-atlas-globe-method-93 () none) ;; 93 + (coli-atlas-globe-method-94 () none) ;; 94 + ) + (:state-methods + idle ;; 59 + active ;; 60 + ) + ) +|# + +#| +(deftype coli-atlas-statue-break-a (process-drawable) + () + :method-count-assert 52 + :size-assert #xf8 + :flag-assert #x34007000f8 + (:state-methods + idle ;; 50 + die ;; 51 + ) + ) +|# + +#| +(deftype coli-atlas-statue-break-b (process-drawable) + () + :method-count-assert 52 + :size-assert #xf8 + :flag-assert #x34007000f8 + (:state-methods + idle ;; 50 + die ;; 51 + ) + ) +|# + +#| +(deftype coli-atlas-base-break (process-drawable) + () + :method-count-assert 52 + :size-assert #xf8 + :flag-assert #x34007000f8 + (:state-methods + idle ;; 50 + die ;; 51 + ) + ) +|# + +;; (define-extern restore-self function) +;; (define-extern coli-statue-init-remote function) +;; (define-extern *msg-map-coli-statue* array) +;; (define-extern *net-process-class-info-coli-statue* object) +;; (define-extern coli-atlas-globe-init-remote function) +;; (define-extern *msg-map-coli-atlas-globe* array) +;; (define-extern *net-process-class-info-coli-atlas-globe* object) +;; (define-extern *coli-atlas-ball-constants* object) +;; (define-extern atlas-base-fix function) +;; (define-extern atlas-collapse function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; coliseum-obs-2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype coli-pillar-break (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype coli-gate-a-straight (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype coli-gate-b-curved (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype coli-stands-rail-a (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype coli-stands-rail-b (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype coli-stands-rail-c (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +;; (define-extern *coli-pillar-debris-params* debris-static-params) +;; (define-extern *coli-gate-a-debris-params* debris-static-params) +;; (define-extern *coli-gate-b-debris-params* debris-static-params) +;; (define-extern *coli-stands-rail-a-debris-params* debris-static-params) +;; (define-extern *coli-stands-rail-b-debris-params* debris-static-params) +;; (define-extern *coli-stands-rail-c-debris-params* debris-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; coliseum-obs-female-statue ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype coli-break-object (process-drawable) + () + :method-count-assert 52 + :size-assert #xf8 + :flag-assert #x34007000f8 + (:methods + (coli-break-object-method-51 () none) ;; 51 + ) + (:state-methods + die ;; 50 + ) + ) +|# + +#| +(deftype coli-statue-female-s-break (coli-break-object) + () + :method-count-assert 52 + :size-assert #xf8 + :flag-assert #x34007000f8 + ) +|# + +#| +(deftype coli-statue-female-s-break-a (coli-break-object) + () + :method-count-assert 52 + :size-assert #xf8 + :flag-assert #x34007000f8 + ) +|# + +#| +(deftype coli-statue-female-s-break-b (coli-break-object) + () + :method-count-assert 52 + :size-assert #xf8 + :flag-assert #x34007000f8 + ) +|# + +#| +(deftype coli-statue-female-c-break (coli-break-object) + () + :method-count-assert 52 + :size-assert #xf8 + :flag-assert #x34007000f8 + ) +|# + +#| +(deftype coli-statue-female-c-break-a (coli-break-object) + () + :method-count-assert 52 + :size-assert #xf8 + :flag-assert #x34007000f8 + ) +|# + +#| +(deftype coli-statue-female-c-break-b (coli-break-object) + () + :method-count-assert 52 + :size-assert #xf8 + :flag-assert #x34007000f8 + ) +|# + +#| +(deftype coli-statue-chain-straight (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype coli-statue-chain-curved (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype coli-statue-female (coli-statue) + () + :method-count-assert 55 + :size-assert #x108 + :flag-assert #x3700800108 + ) +|# + +#| +(deftype coli-statue-base-se (coli-object-base) + () + :method-count-assert 71 + :size-assert #x128 + :flag-assert #x4700a00128 + ) +|# + +#| +(deftype coli-statue-base-c-sw (coli-object-base) + () + :method-count-assert 71 + :size-assert #x128 + :flag-assert #x4700a00128 + ) +|# + +#| +(deftype coli-statue-base-nw (coli-object-base) + () + :method-count-assert 71 + :size-assert #x128 + :flag-assert #x4700a00128 + ) +|# + +#| +(deftype coli-statue-base-ne (coli-object-base) + () + :method-count-assert 71 + :size-assert #x128 + :flag-assert #x4700a00128 + ) +|# + +#| +(deftype coli-statue-base-s-se (coli-object-base) + () + :method-count-assert 71 + :size-assert #x128 + :flag-assert #x4700a00128 + ) +|# + +#| +(deftype coli-statue-base-s-sw (coli-object-base) + () + :method-count-assert 71 + :size-assert #x128 + :flag-assert #x4700a00128 + ) +|# + +#| +(deftype coli-statue-base-s-nw (coli-object-base) + () + :method-count-assert 71 + :size-assert #x128 + :flag-assert #x4700a00128 + ) +|# + +#| +(deftype coli-statue-base-s-ne (coli-object-base) + () + :method-count-assert 71 + :size-assert #x128 + :flag-assert #x4700a00128 + ) +|# + +;; (define-extern coli-break-object-init-by-other function) +;; (define-extern coli-statue-female-s-break-spawn function) +;; (define-extern coli-statue-female-s-break-a-spawn function) +;; (define-extern coli-statue-female-s-break-b-spawn function) +;; (define-extern coli-statue-female-c-break-spawn function) +;; (define-extern coli-statue-female-c-break-a-spawn function) +;; (define-extern coli-statue-female-c-break-b-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; net-collectable-game ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collectoid-draw (powerup-draw) + ((base-y float :offset-assert 264) + ) + :method-count-assert 57 + :size-assert #x10c + :flag-assert #x390080010c + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype collectoid (net-powerup) + ((controlled-by int8 :offset-assert 244) + (part-time int32 :offset-assert 248) + ) + :method-count-assert 57 + :size-assert #xfc + :flag-assert #x39007000fc + (:methods + (collectoid-method-56 () none) ;; 56 + ) + ) +|# + +;; (define-extern collectoid-draw-init-remote function) +;; (define-extern *msg-map-collectoid-draw* array) +;; (define-extern *net-process-class-info-collectoid-draw* object) +;; (define-extern *steal-mode* object) +;; (define-extern drop-collectoids function) +;; (define-extern *collectoid-debris-params* debris-static-params) +;; (define-extern collectoid-init-remote function) +;; (define-extern *msg-map-collectoid* array) +;; (define-extern *net-process-class-info-collectoid* object) +;; (define-extern *desclct-pris-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; credits-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *credits-ids* array) ;; (array text-id) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; credits-cloth ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *enable-method-set* object) ;; int +;; (define-extern get-neighboring-faces function) ;; (function vector4w int int int int int) +;; (define-extern *normal-array* object) ;; (inline-array vector) +;; (define-extern light-vertex function) ;; (function current-position-info vector rgba) +;; (define-extern *once* object) ;; symbol +;; (define-extern *cloth-fade-alpha* object) ;; gs-alpha +;; (define-extern symbol->cloth-flags function) ;; (function symbol cloth-flag) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; credits-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype credits-char (structure) + ((levname basic :offset-assert 0) + (skel basic :offset-assert 4) + (anim uint32 :offset-assert 8) + (scale float :offset-assert 12) + (dt uint8 :offset-assert 16) + (rotoff float :offset-assert 20) + (rotvel float :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype hirez-viewer (process-drawable) + ((char credits-char :offset-assert 248) ;; museum-char + (id sound-id :offset-assert 252) ;; guessed by decompiler + (credits symbol :offset-assert 256) ;; guessed by decompiler + ) + :method-count-assert 51 + :size-assert #x104 + :flag-assert #x3300800104 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype end-credits-proc (process) + ((char-viewer uint64 :offset-assert 144) + ) + :method-count-assert 17 + :size-assert #x98 + :flag-assert #x1100100098 + (:methods + (end-credits-proc-method-9 () none) ;; 9 + (end-credits-proc-method-10 () none) ;; 10 + (end-credits-proc-method-11 () none) ;; 11 + (end-credits-proc-method-12 () none) ;; 12 + (end-credits-proc-method-13 () none) ;; 13 + (end-credits-proc-method-14 () none) ;; 14 + ) + (:state-methods + running ;; 15 + die ;; 16 + ) + ) +|# + +#| +(deftype end-credits-character-viewer (process) + ((hirez-viewer uint64 :offset-assert 144) + (vehicle uint64 :offset-assert 152) + (turntable-handle uint64 :offset-assert 160) + (last-up-time int32 :offset-assert 168) + (finish basic :offset-assert 172) + (anim-ending basic :offset-assert 176) + (current-char credits-char :offset-assert 180) + ) + :method-count-assert 17 + :size-assert #xb8 + :flag-assert #x11003000b8 + (:methods + (end-credits-character-viewer-method-9 () none) ;; 9 + (end-credits-character-viewer-method-10 () none) ;; 10 + (end-credits-character-viewer-method-11 () none) ;; 11 + (end-credits-character-viewer-method-12 () none) ;; 12 + (end-credits-character-viewer-method-13 () none) ;; 13 + (end-credits-character-viewer-method-14 () none) ;; 14 + ) + (:state-methods + running ;; 15 + die ;; 16 + ) + ) +|# + +;; (define-extern *credits-chars* array) +;; (define-extern hirez-viewer-init-by-other function) ;; (function museum-char symbol symbol object :behavior hirez-viewer) +;; (define-extern spawn-hirez-viewer function) ;; (function museum-char symbol symbol handle) +;; (define-extern draw-end-credits function) ;; (function level float symbol) +;; (define-extern end-credits-character-viewer-init-by-other function) +;; (define-extern update-stuff function) +;; (define-extern end-credits-proc-init-by-other function) +;; (define-extern activate-end-credits-proc function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kras-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *kras-alpha-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; train-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype train-object (rigid-body-object) + ((target-position vector :inline :offset-assert 288) + ) + :method-count-assert 89 + :size-assert #x130 + :flag-assert #x5900a00130 + ) +|# + +#| +(deftype train-car (train-object) + () + :method-count-assert 89 + :size-assert #x130 + :flag-assert #x5900a00130 + (:state-methods + idle ;; 59 + ) + ) +|# + +#| +(deftype train (train-object) + ((curve basic :offset-assert 304) + (head-car int32 :offset-assert 308) + (number-of-cars int32 :offset-assert 312) + (cars UNKNOWN 10 :offset-assert 320) + (length float :offset-assert 400) + (train-sound-id uint32 :offset-assert 404) + (horn-id uint32 :offset-assert 408) + (next-horn-time int32 :offset-assert 412) + (start vector :inline :offset-assert 416) + (end vector :inline :offset-assert 432) + (offset-time float :offset-assert 448) + ) + :method-count-assert 89 + :size-assert #x1c4 + :flag-assert #x59014001c4 + (:state-methods + idle ;; 59 + ) + (:states + training-mine + ) + ) +|# + +;; (define-extern *train-constants* object) +;; (define-extern *train-headlight-glow-template* object) +;; (define-extern train-car-init-by-other function) +;; (define-extern train-car-spawn function) +;; (define-extern *desired-number-of-cars* object) +;; (define-extern position-train-car function) +;; (define-extern train-move function) +;; (define-extern cars-spawn function) +;; (define-extern play-horn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; docks-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype docks-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +;; (define-extern update-mood-docks function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; docks-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-func-birth-on-height-die-drops function) +;; (define-extern spt-func-part-docks-drops-splash function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; docks-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wind-rotor (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; docks-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-docks* object) +;; (define-extern *ocean-near-indices-docks* ocean-near-indices) +;; (define-extern *ocean-trans-indices-docks* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-docks* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-docks* ocean-mid-masks) +;; (define-extern *ocean-map-docks* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kras-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-func-birth-on-die1 function) +;; (define-extern spt-func-birth-on-die2 function) +;; (define-extern spt-func-birth-on-die3 function) +;; (define-extern spt-func-birth-on-die4 function) +;; (define-extern spt-func-rocket function) +;; (define-extern *firework-colors* object) +;; (define-extern *firework-vec* object) +;; (define-extern *firework-origin?* object) +;; (define-extern birth-func-firework function) +;; (define-extern spt-func-part-firework1-burst function) +;; (define-extern *range-osplash-color* curve-color-fast) +;; (define-extern *range-osplash-alpha* curve2d-fast) +;; (define-extern *range-osplash-scale-x* curve2d-fast) +;; (define-extern *range-osplash-scale-y* curve2d-fast) +;; (define-extern *curve-osplash-alpha* curve2d-fast) +;; (define-extern *curve-osplash-scale-x* curve2d-fast) +;; (define-extern *curve-osplash-scale-y* curve2d-fast) +;; (define-extern *part-water-ocean-splash-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kras-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype kras-tower (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype kras-fishtank-lo (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype kras-rusty-sign (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype kras-fireworks-ship-a (process-drawable) + ((curve basic :offset-assert 248) + (location float :offset-assert 252) + (fireworks uint64 :offset-assert 256) + ) + :method-count-assert 51 + :size-assert #x108 + :flag-assert #x3300800108 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype kras-flag (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype kras-windsock (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype kras-pump-break-proxy (process-focusable) + ((actor-group uint32 :offset-assert 256) + (actor-group-count int32 :offset-assert 260) + (impact-velocity vector :inline :offset-assert 272) + (hit-points float :offset-assert 288) + (start-exploded basic :offset-assert 292) + (net-parent uint64 :offset-assert 296) + ) + :method-count-assert 65 + :size-assert #x130 + :flag-assert #x4100a00130 + (:methods + (kras-pump-break-proxy-method-61 () none) ;; 61 + (kras-pump-break-proxy-method-62 () none) ;; 62 + (kras-pump-break-proxy-method-63 () none) ;; 63 + (kras-pump-break-proxy-method-64 () none) ;; 64 + ) + (:state-methods + idle ;; 59 + explode ;; 60 + ) + ) +|# + +#| +(deftype kras-pump-break-draw (kras-pump-break-proxy) + ((flame-sound uint32 :offset-assert 304) + ) + :method-count-assert 65 + :size-assert #x134 + :flag-assert #x4100b00134 + (:state-methods + explode ;; 60 + ) + ) +|# + +#| +(deftype kras-pump-break (process-nettable) + ((exploded basic :offset-assert 188) + (drawable uint64 :offset-assert 192) + ) + :method-count-assert 46 + :size-assert #xc8 + :flag-assert #x2e004000c8 + (:methods + (kras-pump-break-method-43 () none) ;; 43 + (kras-pump-break-method-44 () none) ;; 44 + (kras-pump-break-method-45 () none) ;; 45 + ) + (:state-methods + idle ;; 42 + ) + ) +|# + +;; (define-extern kras-pump-break-draw-init-by-other function) +;; (define-extern kras-pump-break-init-remote function) +;; (define-extern *msg-map-kras-pump-break* array) +;; (define-extern *net-process-class-info-kras-pump-break* object) +;; (define-extern *kras-pump-debris-params* debris-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kras-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-kras* object) +;; (define-extern *ocean-near-indices-kras* ocean-near-indices) +;; (define-extern *ocean-trans-indices-kras* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-kras* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-kras* ocean-mid-masks) +;; (define-extern *ocean-map-kras* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; construction-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype construction-cone (construction-object) + ((has-hit-ground basic :offset-assert 304) + ) + :method-count-assert 93 + :size-assert #x134 + :flag-assert #x5d00b00134 + ) +|# + +#| +(deftype construction-barricade (construction-object) + ((has-hit-ground basic :offset-assert 304) + ) + :method-count-assert 93 + :size-assert #x134 + :flag-assert #x5d00b00134 + ) +|# + +;; (define-extern *construction-cone-constants* object) +;; (define-extern *construction-barricade-constants* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drome-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drome-states (structure) + ((light light-state :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern update-mood-drome function) +;; (define-extern *dromec-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drome-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drome-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drome-tunnel-drum (process-drawable) + ((sound-id uint32 :offset-assert 248) + ) + :method-count-assert 51 + :size-assert #xfc + :flag-assert #x33007000fc + (:state-methods + idle ;; 50 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drome-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-drome* object) +;; (define-extern *ocean-near-indices-drome* ocean-near-indices) +;; (define-extern *ocean-trans-indices-drome* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-drome* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-drome* ocean-mid-masks) +;; (define-extern *ocean-map-drome* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desisle-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-desisle* object) +;; (define-extern *ocean-near-indices-desisle* ocean-near-indices) +;; (define-extern *ocean-trans-indices-desisle* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-desisle* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-desisle* ocean-mid-masks) +;; (define-extern *ocean-map-desisle* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desisle-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *desisle-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desisle-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-displash-color* curve-color-fast) +;; (define-extern *range-displash-alpha* curve2d-fast) +;; (define-extern *range-displash-scale-x* curve2d-fast) +;; (define-extern *range-displash-scale-y* curve2d-fast) +;; (define-extern *curve-displash-alpha* curve2d-fast) +;; (define-extern *curve-displash-scale-x* curve2d-fast) +;; (define-extern *curve-displash-scale-y* curve2d-fast) +;; (define-extern *part-desisle-ocean-splash-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; des-cactus ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype des-plant (net-simple-destruct) + ((exploder-params joint-exploder-static-params :offset-assert 288) ;; guessed by decompiler + (exploder-skel skeleton-group :offset-assert 292) ;; guessed by decompiler + (exploder-anim uint32 :offset-assert 296) + (exploder uint64 :offset-assert 304) ;; handle + (attack-vel vector :inline :offset-assert 320) + (spring-pos vector :inline :offset-assert 336) + (spring-vel vector :inline :offset-assert 352) + (jmods joint-mod-rotate-local 4 :offset-assert 368) ;; guessed by decompiler + ) + :method-count-assert 74 + :size-assert #x1f0 + :flag-assert #x4a016001f0 + (:methods + (des-plant-method-70 () none) ;; 70 + (des-plant-method-71 () none) ;; 71 + (des-plant-method-72 () none) ;; 72 + (des-plant-method-73 () none) ;; 73 + ) + (:state-methods + idle ;; 59 + explode ;; 60 + ) + ) +|# + +#| +(deftype des-cactus-a (des-plant) + () + :method-count-assert 74 + :size-assert #x1f0 + :flag-assert #x4a016001f0 + ) +|# + +#| +(deftype des-cactus-b (des-plant) + () + :method-count-assert 74 + :size-assert #x1f0 + :flag-assert #x4a016001f0 + ) +|# + +;; (define-extern *des-cactus-a-explode-params* joint-exploder-static-params) ;; joint-exploder-static-params +;; (define-extern *des-cactus-b-explode-params* joint-exploder-static-params) ;; joint-exploder-static-params + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype desert-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + (bsphere0 vector :inline :offset-assert 16) + (bsphere1 vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype desertg-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + (bsphere vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype deswalk-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + (bsphere0 vector :inline :offset-assert 16) + (bsphere1 vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +;; (define-extern update-mood-desert function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern init-mood-desertg function) ;; (function mood-context float) +;; (define-extern update-mood-desertg function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern update-mood-deswalk function) ;; (function mood-context float int none :behavior time-of-day-proc) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-desert* object) ;; ocean-colors +;; (define-extern *ocean-near-indices-desert* ocean-near-indices) ;; ocean-near-indices +;; (define-extern *ocean-trans-indices-desert* ocean-trans-indices) ;; ocean-trans-indices +;; (define-extern *ocean-mid-indices-desert* ocean-mid-indices) ;; ocean-mid-indices +;; (define-extern *ocean-mid-masks-desert* ocean-mid-masks) ;; ocean-mid-masks +;; (define-extern *ocean-map-desert* object) ;; ocean-map + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-color-desert-hanging-fire-flame* curve-color-fast) ;; curve-color-fast +;; (define-extern *range-alpha-desert-hanging-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-scale-desert-hanging-fire-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-scale-desert-hanging-fire-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *r-curve-desert-hanging-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *g-curve-desert-hanging-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *b-curve-desert-hanging-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-alpha-desert-hanging-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-desert-hanging-fire-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-desert-hanging-fire-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *part-desert-hanging-fire-flame-curve-settings* object) ;; particle-curve-settings +;; (define-extern *range-color-desert-bowl-fire-flame* curve-color-fast) ;; curve-color-fast +;; (define-extern *range-alpha-desert-bowl-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-scale-desert-bowl-fire-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-scale-desert-bowl-fire-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *r-curve-desert-bowl-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *g-curve-desert-bowl-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *b-curve-desert-bowl-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-alpha-desert-bowl-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-desert-bowl-fire-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-desert-bowl-fire-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *part-desert-bowl-fire-flame-curve-settings* object) ;; particle-curve-settings +;; (define-extern *range-color-desert-small-bowl-fire-flame* curve-color-fast) ;; curve-color-fast +;; (define-extern *range-alpha-desert-small-bowl-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-scale-desert-small-bowl-fire-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-scale-desert-small-bowl-fire-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *r-curve-desert-small-bowl-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *g-curve-desert-small-bowl-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *b-curve-desert-small-bowl-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-alpha-desert-small-bowl-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-desert-small-bowl-fire-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-desert-small-bowl-fire-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *part-desert-small-bowl-fire-flame-curve-settings* object) ;; particle-curve-settings +;; (define-extern *scenecamera-fog-update?* object) ;; symbol +;; (define-extern scenecamera-fog-update function) ;; (function none) +;; (define-extern birth-func-desert-beacon-set-accel function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern *range-wrsplash-color* curve-color-fast) ;; curve-color-fast +;; (define-extern *range-wrsplash-alpha* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-wrsplash-scale-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-wrsplash-scale-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-wrsplash-alpha* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-wrsplash-scale-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-wrsplash-scale-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *part-water-rocks-splash-curve-settings* object) ;; particle-curve-settings +;; (define-extern *range-color-firepit-fire-flame* curve-color-fast) ;; curve-color-fast +;; (define-extern *range-alpha-firepit-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-scale-firepit-fire-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-scale-firepit-fire-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *r-curve-firepit-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *g-curve-firepit-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *b-curve-firepit-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-alpha-firepit-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-firepit-fire-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-firepit-fire-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *part-firepit-fire-flame-curve-settings* object) ;; particle-curve-settings +;; (define-extern *stronghold-range-color-flame* curve-color-fast) ;; curve-color-fast +;; (define-extern *stronghold-range-alpha-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *stronghold-range-scale-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *stronghold-range-scale-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *r-stronghold-curve-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *g-stronghold-curve-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *b-stronghold-curve-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *stronghold-curve-alpha-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *stronghold-curve-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *stronghold-curve-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *part-stronghold-torchfire-flame-curve-settings* object) ;; particle-curve-settings +;; (define-extern *range-color-desert-bollard-fire-flame* curve-color-fast) ;; curve-color-fast +;; (define-extern *range-alpha-desert-bollard-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-scale-desert-bollard-fire-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-scale-desert-bollard-fire-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *r-curve-desert-bollard-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *g-curve-desert-bollard-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *b-curve-desert-bollard-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-alpha-desert-bollard-fire-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-desert-bollard-fire-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-desert-bollard-fire-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *part-desert-bollard-fire-flame-curve-settings* object) ;; particle-curve-settings +;; (define-extern *range-dessplash-color* curve-color-fast) ;; curve-color-fast +;; (define-extern *range-dessplash-alpha* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-dessplash-scale-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-dessplash-scale-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-dessplash-alpha* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-dessplash-scale-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-dessplash-scale-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *part-desert-water-rocks-splash-curve-settings* object) ;; particle-curve-settings + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desarena-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desarena-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype palm-tree (process-drawable) + ((attack-vel vector :inline :offset-assert 256) + (spring-pos vector :inline :offset-assert 272) + (spring-vel vector :inline :offset-assert 288) + (jmods UNKNOWN 5 :offset-assert 304) + (last-impulse-time int32 :offset-assert 464) + ) + :method-count-assert 56 + :size-assert #x1d4 + :flag-assert #x38015001d4 + (:methods + (palm-tree-method-52 () none) ;; 52 + (palm-tree-method-53 () none) ;; 53 + (palm-tree-method-54 () none) ;; 54 + (palm-tree-method-55 () none) ;; 55 + ) + (:state-methods + idle ;; 50 + vibrate ;; 51 + ) + ) +|# + +#| +(deftype palm-tree-a (palm-tree) + () + :method-count-assert 56 + :size-assert #x1d4 + :flag-assert #x38015001d4 + ) +|# + +#| +(deftype palm-tree-b (palm-tree) + () + :method-count-assert 56 + :size-assert #x1d4 + :flag-assert #x38015001d4 + ) +|# + +#| +(deftype palm-tree-c (palm-tree) + () + :method-count-assert 56 + :size-assert #x1d4 + :flag-assert #x38015001d4 + ) +|# + +;; (define-extern desarena-activate function) +;; (define-extern desarena-deactivate function) +;; (define-extern *palm-tree-a-debris-params* debris-static-params) +;; (define-extern *palm-tree-b-debris-params* debris-static-params) +;; (define-extern *palm-tree-c-debris-params* debris-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desarena-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype desarena-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +;; (define-extern update-mood-desarena function) +;; (define-extern *desarena-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; garage-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; haven-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-haven* object) +;; (define-extern *ocean-near-indices-haven* ocean-near-indices) +;; (define-extern *ocean-trans-indices-haven* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-haven* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-haven* ocean-mid-masks) +;; (define-extern *ocean-map-haven* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; haven-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *havend-alpha-texture-anim-array* texture-anim-array) +;; (define-extern *havend-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; haven-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-sewer-water function) +;; (define-extern spt-birth-func-brightness-sewer-water-foam function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; haven-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype haven-gen-light (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype haven-trashcan (construction-object) + ((has-hit-ground basic :offset-assert 304) + (barrel-roll uint32 :offset-assert 308) + (rolling basic :offset-assert 312) + ) + :method-count-assert 93 + :size-assert #x13c + :flag-assert #x5d00b0013c + ) +|# + +;; (define-extern *haven-gen-light-debris-params* debris-static-params) +;; (define-extern *haven-trashcan-constants* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; havjung-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern part-jungle-bird1-path function) +;; (define-extern part-jungle-bird2-path function) +;; (define-extern part-jungle-bird3-path function) +;; (define-extern part-jungle-bird4-path function) +;; (define-extern part-jungle-bird5-path function) +;; (define-extern part-jungle-bird6-path function) +;; (define-extern part-jungle-bird7-path function) +;; (define-extern part-jungle-bird8-path function) +;; (define-extern part-jungle-bird9-path function) +;; (define-extern part-jungle-bird10-path function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; havjung-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-havjung* object) +;; (define-extern *ocean-near-indices-havjung* ocean-near-indices) +;; (define-extern *ocean-trans-indices-havjung* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-havjung* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-havjung* ocean-mid-masks) +;; (define-extern *ocean-map-havjung* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jungle-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-statue-dust function) +;; (define-extern spt-birth-func-brightness-tree-root-dust function) +;; (define-extern spt-birth-func-brightness-tree-root-splinters function) +;; (define-extern spt-birth-func-brightness-jungle-snake-dust function) +;; (define-extern spt-func-birth-on-height-die function) +;; (define-extern spt-birth-func-part-jungle-waterspout-head function) +;; (define-extern *range-color-lava-geyser-flame* curve-color-fast) ;; curve-color-fast +;; (define-extern *range-alpha-lava-geyser-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-scale-lava-geyser-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *range-scale-lava-geyser-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *r-curve-lava-geyser-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *g-curve-lava-geyser-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *b-curve-lava-geyser-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-alpha-lava-geyser-flame* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-scale-lava-geyser-flame-x* curve2d-fast) ;; curve2d-fast +;; (define-extern *curve-scale-lava-geyser-flame-y* curve2d-fast) ;; curve2d-fast +;; (define-extern *part-jungle-lavafire-small-curve-settings* object) +;; (define-extern spt-func-birth-on-pop function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jungle-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype jungle-clay-jar-a (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype jungle-clay-jar-b (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype flaming-arrow (process-drawable) + ((flame-sound basic :offset-assert 248) + ) + :method-count-assert 51 + :size-assert #xfc + :flag-assert #x33007000fc + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype jungle-stone-snake-head-proxy (process-focusable) + ((actor-group uint32 :offset-assert 256) + (actor-group-count int32 :offset-assert 260) + (impact-velocity vector :inline :offset-assert 272) + (hit-points float :offset-assert 288) + (start-exploded basic :offset-assert 292) + (net-parent uint64 :offset-assert 296) + ) + :method-count-assert 65 + :size-assert #x130 + :flag-assert #x4100a00130 + (:methods + (jungle-stone-snake-head-proxy-method-61 () none) ;; 61 + (jungle-stone-snake-head-proxy-method-62 () none) ;; 62 + (jungle-stone-snake-head-proxy-method-63 () none) ;; 63 + (jungle-stone-snake-head-proxy-method-64 () none) ;; 64 + ) + (:state-methods + idle ;; 59 + explode ;; 60 + ) + ) +|# + +#| +(deftype jungle-stone-snake-head-draw (jungle-stone-snake-head-proxy) + ((waterfall-part uint64 :offset-assert 304) + ) + :method-count-assert 65 + :size-assert #x138 + :flag-assert #x4100b00138 + (:state-methods + idle ;; 59 + explode ;; 60 + ) + ) +|# + +#| +(deftype jungle-stone-snake-head (process-nettable) + ((exploded basic :offset-assert 188) + (drawable uint64 :offset-assert 192) + ) + :method-count-assert 46 + :size-assert #xc8 + :flag-assert #x2e004000c8 + (:methods + (jungle-stone-snake-head-method-43 () none) ;; 43 + (jungle-stone-snake-head-method-44 () none) ;; 44 + (jungle-stone-snake-head-method-45 () none) ;; 45 + ) + (:state-methods + idle ;; 42 + ) + ) +|# + +#| +(deftype jungle-tree-root-large-a (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype jungle-tree-root-large-b (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype jungle-statue-small-outdoors (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype jungle-statue-small-indoors (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +;; (define-extern *jungle-clay-jar-a-debris-params* debris-static-params) +;; (define-extern *jungle-clay-jar-b-debris-params* debris-static-params) +;; (define-extern spawn-flame function) +;; (define-extern jungle-stone-snake-head-draw-init-by-other function) +;; (define-extern jungle-stone-snake-head-init-remote function) +;; (define-extern *msg-map-jungle-stone-snake-head* array) +;; (define-extern *net-process-class-info-jungle-stone-snake-head* object) +;; (define-extern *jungle-stone-snake-head-explode-params* joint-exploder-static-params) +;; (define-extern *jungle-tree-root-large-a-debris-params* debris-static-params) +;; (define-extern *jungle-tree-root-large-b-debris-params* debris-static-params) +;; (define-extern *jungle-statue-small-outdoors-debris-params* debris-static-params) +;; (define-extern *jungle-statue-small-indoors-debris-params* debris-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jungle-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *junglea-water-texture-anim-array* texture-anim-array) +;; (define-extern *jungleb-water-texture-anim-array* texture-anim-array) +;; (define-extern *jungley-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; havjung-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *junglee-water-texture-anim-array* texture-anim-array) +;; (define-extern *junglef-alpha-texture-anim-array* texture-anim-array) +;; (define-extern *havjung-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; havsew-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype havsewx-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern update-mood-havsewx function) +;; (define-extern *havsewx-water-texture-anim-array* texture-anim-array) +;; (define-extern *havsewy-alpha-texture-anim-array* texture-anim-array) +;; (define-extern *havsewy-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sewer-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sewer-states (structure) + ((rot float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype sewerx-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern update-mood-sewer function) +;; (define-extern update-mood-sewerx function) +;; (define-extern *sewb-water-texture-anim-array* texture-anim-array) +;; (define-extern *sewc-water-texture-anim-array* texture-anim-array) ;; (texture-anim-array texture-anim) +;; (define-extern *sewd-water-texture-anim-array* texture-anim-array) ;; (texture-anim-array texture-anim) +;; (define-extern *sewe-water-texture-anim-array* texture-anim-array) ;; (texture-anim-array texture-anim) +;; (define-extern *sewf-water-texture-anim-array* texture-anim-array) +;; (define-extern *sewx-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sewer-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-func-birth-on-height-die-drip-sewer function) +;; (define-extern spt-func-part-sewer-drops-splash function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; havtour-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern part-jungle-bird1-path function) +;; (define-extern part-jungle-bird2-path function) +;; (define-extern part-jungle-bird3-path function) +;; (define-extern part-jungle-bird4-path function) +;; (define-extern part-jungle-bird5-path function) +;; (define-extern part-jungle-bird6-path function) +;; (define-extern part-jungle-bird7-path function) +;; (define-extern part-jungle-bird8-path function) +;; (define-extern part-jungle-bird9-path function) +;; (define-extern part-jungle-bird10-path function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jungle-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-jungle* object) +;; (define-extern *ocean-near-indices-jungle* ocean-near-indices) +;; (define-extern *ocean-trans-indices-jungle* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-jungle* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-jungle* ocean-mid-masks) +;; (define-extern *ocean-map-jungle* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; peak-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype peak-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +;; (define-extern update-mood-peak function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; peak-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype peak-snowball (rigid-body-object) + ((target-position vector :inline :offset-assert 288) + (impact-direction vector :inline :offset-assert 304) + (particle-matrix matrix :inline :offset-assert 320) + (path-length float :offset-assert 384) + (last-u float :offset-assert 396) + (roll-sound uint32 :offset-assert 400) + (offset float :offset-assert 404) + ) + :method-count-assert 90 + :size-assert #x198 + :flag-assert #x5a01100198 + (:state-methods + explode ;; 89 + idle ;; 59 + ) + ) +|# + +;; (define-extern peak-snowball-init-remote function) +;; (define-extern *msg-map-peak-snowball* array) +;; (define-extern *net-process-class-info-peak-snowball* object) +;; (define-extern *snowball-constants* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ice-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ice-flag (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jungle-part2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern part-jungle-bird1-path function) +;; (define-extern part-jungle-bird2-path function) +;; (define-extern part-jungle-bird3-path function) +;; (define-extern part-jungle-bird4-path function) +;; (define-extern part-jungle-bird5-path function) +;; (define-extern part-jungle-bird6-path function) +;; (define-extern part-jungle-bird7-path function) +;; (define-extern part-jungle-bird8-path function) +;; (define-extern part-jungle-bird9-path function) +;; (define-extern part-jungle-bird10-path function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-kaeden ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kcross-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-kcross-fence-dust function) +;; (define-extern spt-birth-func-brightness-kcross-fence-splinters function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kcross-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype kcro-flag-down (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype kcro-bouncy-tire-a (construction-object) + ((has-hit-ground basic :offset-assert 304) + ) + :method-count-assert 93 + :size-assert #x134 + :flag-assert #x5d00b00134 + ) +|# + +#| +(deftype kcro-fence-piece-a (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype kcro-fence-piece-b (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +#| +(deftype kcro-oil-barrel (construction-object) + ((has-hit-ground basic :offset-assert 304) + ) + :method-count-assert 93 + :size-assert #x134 + :flag-assert #x5d00b00134 + ) +|# + +;; (define-extern *kcro-bouncy-tire-a-constants* object) +;; (define-extern *kcro-fence-piece-a-debris-params* debris-static-params) +;; (define-extern *kcro-fence-piece-b-debris-params* debris-static-params) +;; (define-extern *kcro-oil-barrel-constants* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kcross-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-kcross* object) +;; (define-extern *ocean-near-indices-kcross* ocean-near-indices) +;; (define-extern *ocean-trans-indices-kcross* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-kcross* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-kcross* ocean-mid-masks) +;; (define-extern *ocean-map-kcross* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kcross-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *kcross-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-keira ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-kleiver ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 3d-menu-elements ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype interface-cam (process-drawable) + () + :method-count-assert 55 + :size-assert #xf8 + :flag-assert #x37007000f8 + (:methods + (interface-cam-method-53 () none) ;; 53 + (interface-cam-method-54 () none) ;; 54 + ) + (:state-methods + enter ;; 51 + idle ;; 50 + exit ;; 52 + ) + ) +|# + +#| +(deftype garage-cinema (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +;; (define-extern *interface-cam* object) +;; (define-extern interface-cam-init-by-other function) +;; (define-extern activate-bar function) +;; (define-extern *garage-cinema* object) +;; (define-extern garage-cinema-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-menu-data ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *background-menu-info* object) +;; (define-extern *logo-menu-info* object) +;; (define-extern *logo-subtitle-menu-info* object) +;; (define-extern *base-menu-info* object) +;; (define-extern *single-event-menu-info* object) +;; (define-extern *options-menu-info* object) +;; (define-extern *video-options-menu-info* object) +;; (define-extern *video-options-menu-info-europe* object) +;; (define-extern *secrets-title-menu-info* object) +;; (define-extern *psp-secrets-menu-info* object) +;; (define-extern *center-screen-menu-info* object) +;; (define-extern *sound-options-menu-info* object) +;; (define-extern *game-options-menu-info* object) +;; (define-extern *internet-connection* object) +;; (define-extern *join-create-menu* object) +;; (define-extern *num-local-players-menu* object) +;; (define-extern *join-game-menu* object) +;; (define-extern *player-headphones?-color-array* array) +;; (define-extern *ready-room-host* object) +;; (define-extern *ready-room* object) +;; (define-extern *choose-event-menu-info* object) +;; (define-extern *choose-event-menu-info-local* object) +;; (define-extern *personal-selection-pop-up* object) +;; (define-extern *kick-player-info* object) +;; (define-extern *lobby-generic-error-text-ids* array) +;; (define-extern *lobby-generic-error-bottom-text-ids* array) +;; (define-extern *lobby-generic-error-bottom-text-ids2* array) +;; (define-extern *lobby-generic-error-bottom-text-ids3* array) +;; (define-extern *lobby-generic-error-bottom-text-ids4* array) +;; (define-extern *lobby-generic-error-bottom-text-ids5* array) +;; (define-extern *lobby-generic-error-arg* object) +;; (define-extern *lobby-generic-error* object) +;; (define-extern *lobby-generic-confirmation* object) +;; (define-extern *connecting-to-lobby* object) +;; (define-extern *delete-buddy-confirmation* object) +;; (define-extern *progressive-warning* object) +;; (define-extern *progressive-accept* object) +;; (define-extern *ready-room-options-menu* object) +;; (define-extern *local-highscore-table-info* object) +;; (define-extern get-net-driver-idx-by-type function) +;; (define-extern get-net-driver-by-type function) +;; (define-extern get-driver-flavor-text function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-menu-manager ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *confirm-prev-state-name* object) +;; (define-extern *thrash-level-loader* object) +;; (define-extern *lan-crap-last-time* object) +;; (define-extern check-lan-crap function) +;; (define-extern lobby-default-post function) +;; (define-extern lobby-menu-manager-default-handler function) +;; (define-extern filter-events-for-readyroom function) +;; (define-extern lmm-make-background-menu function) +;; (define-extern lmm-make-logo-menu function) +;; (define-extern kill-logo-menu function) +;; (define-extern *lobby-error-accept* object) +;; (define-extern *lobby-error-cancel* object) +;; (define-extern *lobby-error-action* object) +;; (define-extern *lobby-error-arg* object) +;; (define-extern *lobby-error-extra-confirm-check* object) +;; (define-extern *lobby-error-trans* object) +;; (define-extern adventure-map-fade-in function) +;; (define-extern adventure-map-fade-out function) +;; (define-extern next-language function) +;; (define-extern prev-language function) +;; (define-extern *video-change* object) +;; (define-extern *join-wait-prev-state-name* object) +;; (define-extern go-confirm-net-quit function) +;; (define-extern filter-highscore-venues function) +;; (define-extern set-driver-license-info function) +;; (define-extern jak-selection-clear? function) +;; (define-extern jak-owner function) +;; (define-extern *timetrial-ghost-time-string* string) +;; (define-extern lobby-menu-manager-init-by-other function) +;; (define-extern lobby-start function) +;; (define-extern flash-game-started function) +;; (define-extern update-lobby-camera function) +;; (define-extern cam-lobby state) +;; (define-extern text-id-for-vehicle-type function) +;; (define-extern text-id-class-for-vehicle-type function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-scroll ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype scrolling-item (string-menu) + ((selected basic :offset-assert 560) + (scroll-alpha float :offset-assert 564) + ) + :method-count-assert 69 + :size-assert #x238 + :flag-assert #x4501b00238 + ) +|# + +#| +(deftype scrolling-menu-info (dropdown-item-info) + ((item-spacing vector :inline :offset-assert 128) + (offset-to-top-item vector :inline :offset-assert 144) + (scroll-stages int32 :offset-assert 160) + (visible-item-ct int32 :offset-assert 164) + (child-info base-menu-info :offset-assert 168) + (sel-id-backup-symbol basic :offset-assert 172) + (use-third-color basic :offset-assert 176) + (selection-box-item-offset-x int32 :offset-assert 180) + (selection-box-item-offset-y int32 :offset-assert 184) + (lr-scroll basic :offset-assert 188) + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +#| +(deftype scrolling-menu (dropdown-item) + ((cur-idx int32 :offset-assert 592) + (top-idx int32 :offset-assert 596) + (cur-scroll int32 :offset-assert 600) + (scroll-dir int32 :offset-assert 604) + (total-item-ct int32 :offset-assert 608) + (physical-item-ct int32 :offset-assert 612) + ) + :method-count-assert 77 + :size-assert #x268 + :flag-assert #x4d01e00268 + (:methods + (scrolling-menu-method-70 () none) ;; 70 + (scrolling-menu-method-71 () none) ;; 71 + (scrolling-menu-method-72 () none) ;; 72 + (scrolling-menu-method-73 () none) ;; 73 + (scrolling-menu-method-74 () none) ;; 74 + (scrolling-menu-method-75 () none) ;; 75 + (scrolling-menu-method-76 () none) ;; 76 + ) + (:state-methods + running ;; 52 + ) + ) +|# + +#| +(deftype scrolling-menu-medius (scrolling-menu) + ((prev-id int32 :offset-assert 616) + (prev-top-offset int32 :offset-assert 620) + ) + :method-count-assert 79 + :size-assert #x270 + :flag-assert #x4f01e00270 + (:methods + (scrolling-menu-medius-method-77 () none) ;; 77 + (scrolling-menu-medius-method-78 () none) ;; 78 + ) + ) +|# + +#| +(deftype dropdown-menu (dropdown-item) + () + :method-count-assert 70 + :size-assert #x250 + :flag-assert #x4601c00250 + (:state-methods + running ;; 52 + ) + ) +|# + +#| +(deftype indicator (string-menu) + ((got int32 :offset-assert 560) + (max int32 :offset-assert 564) + (msg uint32 :offset-assert 568) + ) + :method-count-assert 69 + :size-assert #x23c + :flag-assert #x4501b0023c + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-brs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype scrolling-task-item (scrolling-item) + () + :method-count-assert 69 + :size-assert #x238 + :flag-assert #x4501b00238 + ) +|# + +#| +(deftype scrolling-task-menu (scrolling-menu) + ((task-ct int32 :offset-assert 616) + (task-ids UNKNOWN 32 :offset-assert 620) + ) + :method-count-assert 77 + :size-assert #x28c + :flag-assert #x4d0200028c + ) +|# + +#| +(deftype scrolling-net-task-menu (scrolling-task-menu) + () + :method-count-assert 77 + :size-assert #x28c + :flag-assert #x4d0200028c + ) +|# + +;; (define-extern *choose-your-adventure* object) +;; (define-extern *choose-your-online-adventure* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-profile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype profile-error-string (string-menu) + () + :method-count-assert 69 + :size-assert #x230 + :flag-assert #x4501a00230 + ) +|# + +#| +(deftype profile-yes-no-string (string-menu) + () + :method-count-assert 69 + :size-assert #x230 + :flag-assert #x4501a00230 + ) +|# + +#| +(deftype profile-loading-string (string-menu) + () + :method-count-assert 69 + :size-assert #x230 + :flag-assert #x4501a00230 + ) +|# + +#| +(deftype dropdown-profile (dropdown-item) + () + :method-count-assert 70 + :size-assert #x250 + :flag-assert #x4601c00250 + ) +|# + +#| +(deftype title-load-save-profile (string-menu) + () + :method-count-assert 69 + :size-assert #x230 + :flag-assert #x4501a00230 + ) +|# + +;; (define-extern *profile-errors-continue* array) +;; (define-extern *profile-yes-no* array) +;; (define-extern *profile-not-remove* array) +;; (define-extern *profile-load-save-ids* array) +;; (define-extern *menu-new-load-profile* object) +;; (define-extern *menu-new-load-save-profile* object) +;; (define-extern *dropdown-profile-load-save* object) +;; (define-extern *menu-load-profile* object) +;; (define-extern go-profile-state function) +;; (define-extern *menu-loading-profile* object) +;; (define-extern *menu-save-profile* object) +;; (define-extern *menu-profile-error* object) +;; (define-extern memcard-continue function) +;; (define-extern *menu-want-format-profile* object) +;; (define-extern *menu-formating-card-profile* object) +;; (define-extern *create-hero-mode-profile* object) +;; (define-extern *menu-profile-auto-save* object) +;; (define-extern *menu-boot-memorycard* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; menumap-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype menumap-states (structure) + ((current-values UNKNOWN 5 :offset-assert 0) + (target-values UNKNOWN 5 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +;; (define-extern init-mood-menumap function) +;; (define-extern update-mood-menumap function) +;; (define-extern set-menumap-target! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-adventure-awards ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lobby-awards-score->car-type-row (structure) + ((score uint16 :offset-assert 0) + (ctype int8 :offset-assert 2) + (cup-index uint8 :offset-assert 3) + (cup uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype lobby-awards-score->driver-type-row (structure) + ((movie-index uint16 :offset-assert 0) + (driver uint8 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x3 + :flag-assert #x900000003 + ) +|# + +;; (define-extern lobby-awards-table-adv-score->car-type array) +;; (define-extern lobby-awards-table-adv-score->driver-type array) +;; (define-extern *lobby-awards-first-new-vehicle* object) +;; (define-extern *lobby-awards-new-vehicle* object) +;; (define-extern *lobby-awards-new-event* object) +;; (define-extern *lobby-awards-new-body-part* object) +;; (define-extern *lobby-awards-new-driver* object) +;; (define-extern lobby-awards-handle-vehicle-awarding function) +;; (define-extern lobby-awards-handle-body-part-awarding function) +;; (define-extern lobby-awards-handle-driver-awarding function) +;; (define-extern lobby-awards-handle-event-awarding function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-adventure-maps ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype interface-world-map (process-drawable) + ((u float :offset-assert 248) + (curve basic :offset-assert 256) + (path-u float :offset-assert 260) + (draw? basic :offset-assert 264) + (particle-matrix matrix :inline :offset-assert 272) + ) + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + (:methods + (interface-world-map-method-52 () none) ;; 52 + ) + (:state-methods + idle ;; 50 + leave ;; 51 + ) + ) +|# + +#| +(deftype world-map-kras-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-docks-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-drome-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-dockkra-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-dromedoc-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-kras-tour-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-coliseum-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-kcross-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-jungle-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-haven-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-sewer-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-havjung-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-havsew-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-hav-tour-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-atoll-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-cliffs-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +;; (define-extern *lobby-maps-y-delta* object) +;; (define-extern spt-func-set-delta-y function) +;; (define-extern *world-map-shadow-control* shadow-control) +;; (define-extern align-to-interface-world-map function) +;; (define-extern hidden state) +;; (define-extern interface-world-map-local-space function) +;; (define-extern *world-map-kras-mesh-proc* object) +;; (define-extern *world-map-docks-mesh-proc* object) +;; (define-extern *world-map-drome-mesh-proc* object) +;; (define-extern *world-map-dockkra-mesh-proc* object) +;; (define-extern *world-map-dromedoc-mesh-proc* object) +;; (define-extern *world-map-kras-tour-mesh-proc* object) +;; (define-extern *world-map-coliseum-mesh-proc* object) +;; (define-extern *world-map-kcross-mesh-proc* object) +;; (define-extern *world-map-jungle-mesh-proc* object) +;; (define-extern *world-map-haven-mesh-proc* object) +;; (define-extern *world-map-sewer-mesh-proc* object) +;; (define-extern *world-map-havjung-mesh-proc* object) +;; (define-extern *world-map-havsew-mesh-proc* object) +;; (define-extern *world-map-hav-tour-mesh-proc* object) +;; (define-extern *world-map-atoll-mesh-proc* object) +;; (define-extern *world-map-cliffs-mesh-proc* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-adventure-maps-2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype world-map-spargus-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-canyon-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-temple-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-canspar-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-spartem-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-spar-tour-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-desarena-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-desisle-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-snow-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-peak-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-ice-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-iceberg-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-icepass-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-ice-tour-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +#| +(deftype world-map-snowbowl-mesh (interface-world-map) + () + :method-count-assert 53 + :size-assert #x150 + :flag-assert #x3500c00150 + ) +|# + +;; (define-extern *world-map-spargus-mesh-proc* object) +;; (define-extern *world-map-canyon-mesh-proc* object) +;; (define-extern *world-map-temple-mesh-proc* object) +;; (define-extern *world-map-canspar-mesh-proc* object) +;; (define-extern *world-map-spartem-mesh-proc* object) +;; (define-extern *world-map-spar-tour-mesh-proc* object) +;; (define-extern *world-map-desarena-mesh-proc* object) +;; (define-extern *world-map-desisle-mesh-proc* object) +;; (define-extern *world-map-snow-mesh-proc* object) +;; (define-extern *world-map-peak-mesh-proc* object) +;; (define-extern *world-map-ice-mesh-proc* object) +;; (define-extern *world-map-iceberg-mesh-proc* object) +;; (define-extern *world-map-icepass-mesh-proc* object) +;; (define-extern *world-map-ice-tour-mesh-proc* object) +;; (define-extern *world-map-snowbowl-mesh-proc* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-adventure ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dropdown-cup (dropdown-item) + () + :method-count-assert 70 + :size-assert #x250 + :flag-assert #x4601c00250 + ) +|# + +#| +(deftype dropdown-cup-strings (dynamic-string-menu) + () + :method-count-assert 69 + :size-assert #x230 + :flag-assert #x4501a00230 + ) +|# + +#| +(deftype dropdown-cup-borders (prim-strip-menu) + () + :method-count-assert 67 + :size-assert #x228 + :flag-assert #x4301a00228 + ) +|# + +#| +(deftype adventure-top-bar (string-menu) + () + :method-count-assert 69 + :size-assert #x230 + :flag-assert #x4501a00230 + ) +|# + +#| +(deftype adventure-cup-score (string-menu) + () + :method-count-assert 69 + :size-assert #x230 + :flag-assert #x4501a00230 + ) +|# + +#| +(deftype dropdown-fade (dropdown-item) + () + :method-count-assert 70 + :size-assert #x250 + :flag-assert #x4601c00250 + (:state-methods + enter ;; 51 + exit ;; 55 + ) + ) +|# + +#| +(deftype dropdown-city (dropdown-fade) + () + :method-count-assert 70 + :size-assert #x250 + :flag-assert #x4601c00250 + ) +|# + +#| +(deftype dropdown-venue (dropdown-fade) + () + :method-count-assert 70 + :size-assert #x250 + :flag-assert #x4601c00250 + ) +|# + +#| +(deftype dropdown-task (dropdown-fade) + ((medal-msg-start-time uint32 :offset-assert 592) + ) + :method-count-assert 70 + :size-assert #x254 + :flag-assert #x4601d00254 + ) +|# + +;; (define-extern *lobby-adv-cup-mask* object) +;; (define-extern *lobby-adv-grand-prix* object) +;; (define-extern *adv-coming-back-from-game* object) +;; (define-extern *open-new-cup* object) +;; (define-extern *adventure-map-city* array) +;; (define-extern *adventure-map-stats* array) +;; (define-extern *adventure-map-new* array) +;; (define-extern *adventure-venue-name* array) +;; (define-extern *adventure-venue-new* array) +;; (define-extern *adventure-venue-stats* array) +;; (define-extern *adventure-task-stats* array) +;; (define-extern pulse-new-font-color function) +;; (define-extern *cup1-extra* array) +;; (define-extern *cup2-extra* array) +;; (define-extern *cup3-extra* array) +;; (define-extern *cup4-extra* array) +;; (define-extern *adventure-cup* object) +;; (define-extern get-next-training-task function) +;; (define-extern setup-cup-menu-score function) +;; (define-extern *adventure-top-bottom* object) +;; (define-extern *grand-prix-medal* object) +;; (define-extern *adventure-map* object) +;; (define-extern adventure-map-update function) +;; (define-extern update-adventure-map-data function) +;; (define-extern *list-task-medals* array) +;; (define-extern *adventure-venue-info-array* array) +;; (define-extern *adventure-venue* object) +;; (define-extern adventure-venue-init function) +;; (define-extern *adventure-task-sprite-info-array* array) +;; (define-extern *adventure-task-info-array* array) +;; (define-extern *task-medals* array) +;; (define-extern *grand-prix-locked* object) +;; (define-extern *adventure-task* object) +;; (define-extern *map-screen* object) +;; (define-extern adventure-task-init function) +;; (define-extern *adventure-vehicle-select* object) +;; (define-extern wait-for-fmvlev function) +;; (define-extern get-new-qualifier function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-customize ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype customize-main-dropdown-item (dropdown-item) + ((orig-3d-offset vector :inline :offset-assert 592) + (offset-targ vector :inline :offset-assert 608) + ) + :method-count-assert 70 + :size-assert #x270 + :flag-assert #x4601e00270 + ) +|# + +#| +(deftype customize-main-selection-menu-manager (selection-menu-manager) + () + :method-count-assert 67 + :size-assert #x224 + :flag-assert #x4301a00224 + ) +|# + +#| +(deftype customize-vs-dropdown-item (dropdown-item) + ((orig-3d-offset vector :inline :offset-assert 592) + (offset-targ vector :inline :offset-assert 608) + ) + :method-count-assert 70 + :size-assert #x270 + :flag-assert #x4601e00270 + ) +|# + +#| +(deftype customize-vs-selection-menu-manager (selection-menu-manager) + () + :method-count-assert 67 + :size-assert #x224 + :flag-assert #x4301a00224 + ) +|# + +#| +(deftype customize-bp-dropdown-item (dropdown-item) + ((orig-3d-offset vector :inline :offset-assert 592) + (offset-targ vector :inline :offset-assert 608) + (load-part? basic :offset-assert 624) + ) + :method-count-assert 70 + :size-assert #x274 + :flag-assert #x4601f00274 + ) +|# + +#| +(deftype customize-bp-selection-menu-manager (selection-menu-manager) + () + :method-count-assert 67 + :size-assert #x224 + :flag-assert #x4301a00224 + ) +|# + +#| +(deftype paintjob-menu (string-menu) + ((j-mod-color joint-mod-rotate-local :inline :offset-assert 560) + (sat-lum-tri basic :offset-assert 592) + (saturation float :offset-assert 596) + (value float :offset-assert 600) + (sat-lum-pos vector :inline :offset-assert 608) + ) + :method-count-assert 69 + :size-assert #x270 + :flag-assert #x4501e00270 + (:state-methods + running ;; 52 + ) + ) +|# + +#| +(deftype upgrade-dropdown-item (dropdown-item) + () + :method-count-assert 70 + :size-assert #x250 + :flag-assert #x4601c00250 + ) +|# + +;; (define-extern *customize-menu-text-ids* array) +;; (define-extern *tune-performance-text-ids* array) +;; (define-extern *body-parts-text-ids* array) +;; (define-extern *respray-paintjob-text-ids* array) +;; (define-extern *paintjob-menu* object) +;; (define-extern *customize-menu-info* object) +;; (define-extern *vehicle-selection-menu-info* object) +;; (define-extern *cash-bar-extra* array) +;; (define-extern *engine-extra* array) +;; (define-extern *gearbox-extra* array) +;; (define-extern *armor-extra* array) +;; (define-extern *turbo-extra* array) +;; (define-extern *engine-sprite-list* array) +;; (define-extern *gearbox-sprite-list* array) +;; (define-extern *armor-sprite-list* array) +;; (define-extern *turbo-sprite-list* array) +;; (define-extern *tune-performance-menu-info* object) +;; (define-extern *confirm-upgrade-text-ids* array) +;; (define-extern *confirm-price-extra* array) +;; (define-extern *confirm-purchase-popup* object) +;; (define-extern *not-enough-orbs-popup* object) +;; (define-extern *customize-body-parts-text-ids* array) +;; (define-extern *f-fender-extra* array) +;; (define-extern *r-fender-extra* array) +;; (define-extern *door-extra* array) +;; (define-extern *f-bumper-extra* array) +;; (define-extern *r-bumper-extra* array) +;; (define-extern *hood-extra* array) +;; (define-extern *trunk-extra* array) +;; (define-extern *roof-extra* array) +;; (define-extern *wheel-extra* array) +;; (define-extern *body-parts-menu-info* object) +;; (define-extern *body-parts-selection-menu-info* object) +;; (define-extern *customize-paintjob-text-ids* array) +;; (define-extern *customize-paintjob-control-text-ids* array) +;; (define-extern *customize-paintjob-menu-info* object) +;; (define-extern *antenna-extra* array) +;; (define-extern *helmet-extra* array) +;; (define-extern *accessorize-menu-info* object) +;; (define-extern lobby-menu-update-performance-globals function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-results ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *lobby-results-enabled* object) +;; (define-extern *lobby-results-no-adventure-mode* object) +;; (define-extern wait-and-play-award function) +;; (define-extern lobby-results-awarded-vehicle function) +;; (define-extern lobby-results-first-awarded-vehicle function) +;; (define-extern lobby-results-awarded-event function) +;; (define-extern lobby-results-awarded-car-parts function) +;; (define-extern lobby-awards-test-qualifier function) +;; (define-extern *gtb-speech-last-venue* object) +;; (define-extern lobby-speech-gtb-new-venue function) +;; (define-extern *lobby-results-new-body-part-screen-text* array) +;; (define-extern *lobby-results-new-body-part-tab-text* array) +;; (define-extern *lobby-results-new-body-part-tab-text-ii* array) +;; (define-extern *lobby-results-new-body-part-screen* object) +;; (define-extern *lobby-results-new-vehicle-screen-text* array) +;; (define-extern *lobby-results-new-vehicle-class-text* array) +;; (define-extern *lobby-results-new-vehicle-screen* object) +;; (define-extern *lobby-results-new-events-levname-text* array) +;; (define-extern *lobby-results-new-events-levmode-text* array) +;; (define-extern *lobby-results-new-events-screen-back* object) +;; (define-extern *lobby-results-new-events-screen-front* object) +;; (define-extern *lobby-results-new-qualifier-screen* object) +;; (define-extern *lobby-results-new-driver-screen* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-net-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype scrolling-item-player (scrolling-item) + ((idx int32 :offset-assert 568) + ) + :method-count-assert 69 + :size-assert #x23c + :flag-assert #x4501b0023c + ) +|# + +#| +(deftype scrolling-menu-player (scrolling-menu-medius) + ((players medius-cache-index-array :offset-assert 624) + ) + :method-count-assert 79 + :size-assert #x274 + :flag-assert #x4f01f00274 + ) +|# + +#| +(deftype scrolling-item-room (scrolling-item) + () + :method-count-assert 69 + :size-assert #x238 + :flag-assert #x4501b00238 + ) +|# + +#| +(deftype scrolling-menu-room (scrolling-menu-medius) + () + :method-count-assert 79 + :size-assert #x270 + :flag-assert #x4f01e00270 + ) +|# + +#| +(deftype scrolling-item-game (scrolling-item) + ((burn-version uint32 :offset-assert 568) + (avg-ping int32 :offset-assert 572) + ) + :method-count-assert 69 + :size-assert #x240 + :flag-assert #x4501b00240 + ) +|# + +#| +(deftype scrolling-menu-game (scrolling-menu-medius) + () + :method-count-assert 79 + :size-assert #x270 + :flag-assert #x4f01e00270 + ) +|# + +;; (define-extern *dnas-mode* object) +;; (define-extern *dnas-on-success* object) +;; (define-extern *dnas-on-failure* object) +;; (define-extern *last-player-id-of-interest* object) +;; (define-extern *last-room-id-of-interest* object) +;; (define-extern *last-game-id-of-interest* object) +;; (define-extern *clan-info-id* object) +;; (define-extern *eznet-list* object) +;; (define-extern *tmp-netconf-string* object) +;; (define-extern *ladder-stat-idx-current* object) +;; (define-extern *ladder-stat-idx-of-interest* object) +;; (define-extern *medius-policy-buffer* object) +;; (define-extern *medius-policy-formatted-buffer* object) +;; (define-extern *medius-policy-string* object) +;; (define-extern *medius-policy-formatted-buffer2* object) +;; (define-extern *medius-policy-string2* object) +;; (define-extern *medius-policy-string-data* object) +;; (define-extern do-pending-operation function) +;; (define-extern fixup-netstring function) +;; (define-extern *player-menu-array-to-use* object) +;; (define-extern *player-info-player* object) +;; (define-extern *game-menu-array-to-use* object) +;; (define-extern *medius-game-info-id* object) +;; (define-extern *medius-game-info-game* object) +;; (define-extern get-ping-crapness function) +;; (define-extern construct-game-name function) +;; (define-extern lobby-refresh-game-list function) +;; (define-extern bm-equal function) +;; (define-extern lobby-check-buttons function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-stats ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype scrolling-item-stats (scrolling-item) + ((idx int32 :offset-assert 568) + ) + :method-count-assert 69 + :size-assert #x23c + :flag-assert #x4501b0023c + ) +|# + +#| +(deftype scrolling-menu-stats (scrolling-menu-medius) + ((stats basic :offset-assert 624) + (info-array basic :offset-assert 628) + (show-vehicles basic :offset-assert 632) + ) + :method-count-assert 80 + :size-assert #x27c + :flag-assert #x5001f0027c + (:methods + (scrolling-menu-stats-method-79 () none) ;; 79 + ) + ) +|# + +#| +(deftype scrolling-item-ladder (scrolling-item) + () + :method-count-assert 69 + :size-assert #x238 + :flag-assert #x4501b00238 + ) +|# + +#| +(deftype scrolling-menu-ladder (scrolling-menu-medius) + () + :method-count-assert 79 + :size-assert #x270 + :flag-assert #x4f01e00270 + ) +|# + +;; (define-extern *last-stat-idx-of-interest* object) +;; (define-extern *ladder-stat-name* object) +;; (define-extern *ladder-stat-your-best* object) +;; (define-extern *ladder-results* array) +;; (define-extern *ladder-results-ct* object) +;; (define-extern *ladder-results-stat-info* object) +;; (define-extern *ladder-results-offset* object) +;; (define-extern *ladder-results-total* object) +;; (define-extern ladder-list-callback function) +;; (define-extern clan-ladder-list-callback function) +;; (define-extern get-player-ladder-pos function) +;; (define-extern get-clan-ladder-pos function) +;; (define-extern get-ladder-total-rankings function) +;; (define-extern get-ladder-list function) +;; (define-extern *player-ladder-stats* object) +;; (define-extern setup-existing-clan-stats function) +;; (define-extern *stats-title* object) +;; (define-extern *clear-stats-text-ids* array) +;; (define-extern *my-stats-screen* object) +;; (define-extern *test-screen* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-net-startup ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype scrolling-netconfig-item (scrolling-item) + () + :method-count-assert 69 + :size-assert #x238 + :flag-assert #x4501b00238 + ) +|# + +#| +(deftype scrolling-netconfig-menu (scrolling-menu) + ((valid-indices UNKNOWN 16 :offset-assert 616) + ) + :method-count-assert 77 + :size-assert #x278 + :flag-assert #x4d01f00278 + ) +|# + +#| +(deftype scrolling-account-item (scrolling-item) + ((is-create basic :offset-assert 568) + ) + :method-count-assert 69 + :size-assert #x23c + :flag-assert #x4501b0023c + ) +|# + +#| +(deftype scrolling-account-menu (scrolling-menu) + () + :method-count-assert 77 + :size-assert #x268 + :flag-assert #x4d01e00268 + ) +|# + +#| +(deftype edit-account-selection-manager (selection-menu-manager) + () + :method-count-assert 67 + :size-assert #x224 + :flag-assert #x4301a00224 + ) +|# + +#| +(deftype editable-selection (dropdown-item) + ((disabled basic :offset-assert 596) + (keyboard-flags uint64 :offset-assert 600) + (max-chars int32 :offset-assert 608) + (text uint32 :offset-assert 612) + ) + :method-count-assert 70 + :size-assert #x268 + :flag-assert #x4601e00268 + (:state-methods + running ;; 52 + ) + ) +|# + +#| +(deftype dropdown-button (dropdown-item) + () + :method-count-assert 70 + :size-assert #x250 + :flag-assert #x4601c00250 + ) +|# + +#| +(deftype non-accepting-item-list-selection (item-list-selection) + () + :method-count-assert 70 + :size-assert #x25c + :flag-assert #x4601d0025c + ) +|# + +;; (define-extern create-and-wait-menu function) +;; (define-extern get-mc-error-text-id function) +;; (define-extern *choose-network-config* object) +;; (define-extern *user-accounts-valid* object) +;; (define-extern *waiting-network-hardware* object) +;; (define-extern *waiting-mc* object) +;; (define-extern *waiting-network-hardware-shutdown* object) +;; (define-extern *edit-stored-network-account-idx* object) +;; (define-extern *edit-stored-network-account* object) +;; (define-extern update-stored-network-account function) +;; (define-extern *edit-account-ids* array) +;; (define-extern *delete-account-ids* array) +;; (define-extern *choose-account* object) +;; (define-extern start-logging-on function) +;; (define-extern *menu-yes-no-array-data* array) +;; (define-extern *menu-yes-no-array* object) +;; (define-extern *edit-account* object) +;; (define-extern *fake-mc-stream* file-stream) +;; (define-extern *fake-mc-filename* string) +;; (define-extern fake-mc-cmd function) +;; (define-extern *lobby-mc-ok-function* object) +;; (define-extern *lobby-mc-error-function* object) +;; (define-extern *enter-pw-acct-name* object) +;; (define-extern *entering-password* object) +;; (define-extern *showing-policy* object) +;; (define-extern *showing-announcements* object) +;; (define-extern *changing-password* object) +;; (define-extern *medius-new-account-password* object) +;; (define-extern *medius-old-account-password* object) +;; (define-extern do-change-password function) +;; (define-extern *anti-cheat* object) +;; (define-extern check-mc-during-error function) +;; (define-extern lobby-safe-state? function) +;; (define-extern lobby-respond-to-msg function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-patch ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dnas-error (structure) + ((min int32 :offset-assert 0) + (max int32 :offset-assert 4) + (main-text-id uint32 :offset-assert 8) + (footer-text-id uint32 :offset-assert 12) + (errtype-text-id uint32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +;; (define-extern *dnas-errors-usa* array) +;; (define-extern *dnas-errors-eur* array) +;; (define-extern get-dnas-error function) +;; (define-extern get-clean-driver-heap function) +;; (define-extern *dnas-error-text-ids* array) +;; (define-extern *dnas-error-code* object) +;; (define-extern *dnas-error-code-string* object) +;; (define-extern *dnas-status* object) +;; (define-extern *dnas-is-loaded* object) +;; (define-extern *dnas-is-started* object) +;; (define-extern *dnas-abort* object) +;; (define-extern *dnas-unique-id-size* object) +;; (define-extern *dnas-unique-id* object) +;; (define-extern *dnas-unique-id-req* object) +;; (define-extern *dnas-error-screen* object) +;; (define-extern dnas-do-shutdown function) +;; (define-extern *dnas-running-screen* object) +;; (define-extern medius-post-dnas-signature function) +;; (define-extern *patch-total-bytes* object) +;; (define-extern *patch-recv-bytes* object) +;; (define-extern *patch-buffer* object) +;; (define-extern *patch-buffer-size* object) +;; (define-extern *patch-encrypted-size* object) +;; (define-extern *patch-downloading* object) +;; (define-extern encrypt-patch function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-buddies ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype player-info-menu (string-menu) + ((player medius-player :offset-assert 560) + ) + :method-count-assert 70 + :size-assert #x234 + :flag-assert #x4601b00234 + (:methods + (player-info-menu-method-69 () none) ;; 69 + ) + ) +|# + +;; (define-extern *remove-buddy-id* object) +;; (define-extern *buddy-list-type* object) +;; (define-extern construct-buddy-confirmation-string function) +;; (define-extern player-in-game function) +;; (define-extern *lobby-main-screen* object) +;; (define-extern *lobby-main-screen-no-clan* object) +;; (define-extern *buddy-list-management-buddy* object) +;; (define-extern *buddy-list-management-ignore* object) +;; (define-extern *buddy-list-management-recent* object) +;; (define-extern *player-info-button-manager* array) +;; (define-extern setup-player-info-buttons function) +;; (define-extern player-info-screen-check-buttons function) +;; (define-extern *player-info-screen* object) +;; (define-extern *inviting-buddies* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-games ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype game-info-menu (string-menu) + ((game net-available-game :offset-assert 560) + ) + :method-count-assert 70 + :size-assert #x234 + :flag-assert #x4601b00234 + (:methods + (game-info-menu-method-69 () none) ;; 69 + ) + ) +|# + +;; (define-extern *menu-events-filter-array* object) +;; (define-extern *menu-locations-filter-array* object) +;; (define-extern *menu-events-filter-ct* object) +;; (define-extern *menu-locations-filter-ct* object) +;; (define-extern *menu-max-players-filter* object) +;; (define-extern *menu-events-filter-any* object) +;; (define-extern *menu-locations-filter-any* object) +;; (define-extern *menu-class-filter-array* object) +;; (define-extern init-event-filter-array function) +;; (define-extern init-location-filter-array function) +;; (define-extern set-cstring-from-text-id function) +;; (define-extern *game-info-screen* object) +;; (define-extern *vehicle-class-search-data* array) +;; (define-extern *vehicle-class-search* object) +;; (define-extern *game-search-screen* object) +;; (define-extern *do-quickplay* object) +;; (define-extern *e3-join-game-menu-screen* object) +;; (define-extern refresh-games-lan-or-internet function) +;; (define-extern *set-game-name* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-rooms ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype green-room-game-info-menu (string-menu) + () + :method-count-assert 69 + :size-assert #x230 + :flag-assert #x4501a00230 + ) +|# + +;; (define-extern *chat-room-select* object) +;; (define-extern *chat-room* object) +;; (define-extern *chat-refresh* object) +;; (define-extern *current-game-list-anim* object) +;; (define-extern *green-room* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-clans ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype scrolling-item-incoming-clan-invite (scrolling-item) + ((idx int32 :offset-assert 568) + ) + :method-count-assert 69 + :size-assert #x23c + :flag-assert #x4501b0023c + ) +|# + +#| +(deftype scrolling-menu-incoming-clan-invite (scrolling-menu-medius) + () + :method-count-assert 79 + :size-assert #x270 + :flag-assert #x4f01e00270 + ) +|# + +#| +(deftype scrolling-item-recent-clan (scrolling-item) + ((idx int32 :offset-assert 568) + ) + :method-count-assert 69 + :size-assert #x23c + :flag-assert #x4501b0023c + ) +|# + +#| +(deftype scrolling-menu-recent-clan (scrolling-menu-medius) + () + :method-count-assert 79 + :size-assert #x270 + :flag-assert #x4f01e00270 + ) +|# + +#| +(deftype scrolling-item-clan-challenge (scrolling-item) + ((idx int32 :offset-assert 568) + ) + :method-count-assert 69 + :size-assert #x23c + :flag-assert #x4501b0023c + ) +|# + +#| +(deftype scrolling-menu-clan-challenge (scrolling-menu-medius) + () + :method-count-assert 79 + :size-assert #x270 + :flag-assert #x4f01e00270 + ) +|# + +#| +(deftype clan-info-menu (string-menu) + () + :method-count-assert 69 + :size-assert #x230 + :flag-assert #x4501a00230 + ) +|# + +;; (define-extern *prev-room-before-clan* object) +;; (define-extern *in-special-room* object) +;; (define-extern *clan-challenge-id* object) +;; (define-extern *my-clan-or-create-clan-text-ids* array) +;; (define-extern *clan-voice-text-ids* array) +;; (define-extern *clan-challenge-status-text-ids* object) +;; (define-extern get-other-clan-id function) +;; (define-extern *clan-incoming-invites-screen* object) +;; (define-extern *clan-info-button-manager* array) +;; (define-extern setup-clan-info-buttons function) +;; (define-extern *clan-info-screen* object) +;; (define-extern *create-clan-screen* object) +;; (define-extern *clan-room-name* string) +;; (define-extern *clan-sent-invites* object) +;; (define-extern *clan-challenges* object) +;; (define-extern *editing-clan-msg* object) +;; (define-extern *my-clan-name* object) +;; (define-extern *my-clan-leader* object) +;; (define-extern *my-clan-message* object) +;; (define-extern *clan-main-screen* object) +;; (define-extern *clan-main-screen-no-clan* object) +;; (define-extern *invite-player-to-clan* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-advanced ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dropdown-weapon-item-info (dropdown-item-info) + ((weapon-type int8 :offset-assert 122) + (weapon-text-id uint32 :offset-assert 124) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype item-minute-selection (item-num-selection) + () + :method-count-assert 70 + :size-assert #x264 + :flag-assert #x4601e00264 + ) +|# + +#| +(deftype dropdown-advanced-flag-item-info (dropdown-item-info) + ((advanced-flags uint8 :offset-assert 122) + (text-id-1 uint32 :offset-assert 124) + (text-id-2 uint32 :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x84 + :flag-assert #x900000084 + ) +|# + +#| +(deftype dropdown-advanced-flag-item (dropdown-item) + () + :method-count-assert 70 + :size-assert #x250 + :flag-assert #x4601c00250 + ) +|# + +#| +(deftype dropdown-weapon-item (dropdown-item) + () + :method-count-assert 70 + :size-assert #x250 + :flag-assert #x4601c00250 + (:state-methods + running ;; 52 + ) + ) +|# + +#| +(deftype non-host-advanced-options-menu (string-menu) + () + :method-count-assert 69 + :size-assert #x230 + :flag-assert #x4501a00230 + ) +|# + +;; (define-extern *num-laps* object) +;; (define-extern *num-laps-tours* object) +;; (define-extern *num-lives* object) +;; (define-extern *time-limit* object) +;; (define-extern *simul-artifact-count* object) +;; (define-extern *win-count-ctf* object) +;; (define-extern *win-count-artifact* object) +;; (define-extern *win-count-deathmatch* object) +;; (define-extern *win-count-collect* object) +;; (define-extern *last-team-setting* object) +;; (define-extern *advanced-options-race* object) +;; (define-extern *advanced-options-timetrial* object) +;; (define-extern *advanced-options-timetrial-no-ghost* object) +;; (define-extern *advanced-options-football* object) +;; (define-extern *advanced-options-timebox* object) +;; (define-extern *advanced-options-deathrace* object) +;; (define-extern *advanced-options-ctf* object) +;; (define-extern *advanced-options-deathmatch* object) +;; (define-extern *advanced-options-rushhour* object) +;; (define-extern *advanced-options-assassin* object) +;; (define-extern *advanced-options-collectathon* object) +;; (define-extern *advanced-options-artifact* object) +;; (define-extern *advanced-options-non-host* object) +;; (define-extern *advanced-options* object) +;; (define-extern *param1-num-info* object) +;; (define-extern *param2-num-info* object) +;; (define-extern *param3-num-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-secrets ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype secret-item (structure) + ((id uint32 :offset-assert 0) + (price int32 :offset-assert 4) + (secret uint64 :offset-assert 8) + (cup uint32 :offset-assert 16) + (cup-score uint32 :offset-assert 20) + (button-behavior uint64 :offset-assert 24) + (flags uint8 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x21 + :flag-assert #x900000021 + ) +|# + +#| +(deftype scrolling-secrets-item (scrolling-item) + ((idx int8 :offset-assert 568) + ) + :method-count-assert 69 + :size-assert #x239 + :flag-assert #x4501b00239 + ) +|# + +#| +(deftype scrolling-secrets-menu (scrolling-menu-medius) + ((last-delta int8 :offset-assert 624) + (valid-indices UNKNOWN 64 :offset-assert 625) + ) + :method-count-assert 79 + :size-assert #x2b1 + :flag-assert #x4f023002b1 + ) +|# + +#| +(deftype scrolling-scenes-item (scrolling-secrets-item) + () + :method-count-assert 69 + :size-assert #x23a + :flag-assert #x4501b0023a + ) +|# + +#| +(deftype scrolling-scenes-menu (scrolling-secrets-menu) + () + :method-count-assert 79 + :size-assert #x2b1 + :flag-assert #x4f023002b1 + ) +|# + +;; (define-extern *secret-items* array) +;; (define-extern *time-lock-check* object) +;; (define-extern *locked-text-id* object) +;; (define-extern *locked-msg-index* object) +;; (define-extern *scene-type* object) +;; (define-extern player-finished-adventure-mode? function) +;; (define-extern *last-secret-selected* object) +;; (define-extern *last-scene-selected* object) +;; (define-extern *secrets-menu-info* object) +;; (define-extern *scene-player-menu-info* object) +;; (define-extern check-for-valid-secret-chars function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; garage-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype garage-tool-arm (process-drawable) + ((track joint-mod-rotate-world :inline :offset-assert 256) + (elbow UNKNOWN 4 :offset-assert 288) + (dest vector :inline :offset-assert 416) + (arm-lengths UNKNOWN 4 :offset-assert 432) + (dest-angles UNKNOWN 4 :offset-assert 448) + (elbow-quat UNKNOWN 4 :offset-assert 464) + (total-length float :offset-assert 528) + (flags uint64 :offset-assert 536) + ) + :method-count-assert 52 + :size-assert #x220 + :flag-assert #x3401900220 + (:methods + (garage-tool-arm-method-51 () none) ;; 51 + ) + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype garage-turntable (process-drawable) + ((dest-trans vector :inline :offset-assert 256) + (dest-quat quaternion :inline :offset-assert 272) + (rotv float :offset-assert 288) + (flags uint64 :offset-assert 296) + (plat-sound-id uint32 :offset-assert 304) + (room-sound-id uint32 :offset-assert 308) + (speed float :offset-assert 312) + (vehicle-pos vector :inline :offset-assert 320) + (smush smush-control :inline :offset-assert 336) + (auto-rotate? basic :offset-assert 368) + (no-pad basic :offset-assert 372) + (lift-sound-id uint32 :offset-assert 376) + (turn-start-time uint64 :offset-assert 384) + ) + :method-count-assert 54 + :size-assert #x188 + :flag-assert #x3601000188 + (:methods + (garage-turntable-method-52 () none) ;; 52 + (garage-turntable-method-53 () none) ;; 53 + ) + (:state-methods + up ;; 51 + down ;; 50 + ) + ) +|# + +#| +(deftype garage-car-arm (process-drawable) + ((arm-rot joint-mod-rotate-local :inline :offset-assert 256) + ) + :method-count-assert 52 + :size-assert #x120 + :flag-assert #x3400900120 + (:methods + (garage-car-arm-method-51 () none) ;; 51 + ) + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype garage-sliding-door (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +;; (define-extern set-mult function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; menumap-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-func-menumap-birth-on-die1 function) +;; (define-extern spt-func-menumap-birth-on-die2 function) +;; (define-extern spt-func-menumap-birth-on-die3 function) +;; (define-extern spt-func-menumap-birth-on-die4 function) +;; (define-extern spt-func-menumap-rocket function) +;; (define-extern *menumap-firework-colors* object) +;; (define-extern *menumap-firework-vec* object) +;; (define-extern *menumap-firework-origin?* object) +;; (define-extern birth-func-menumap-firework function) +;; (define-extern part-menumap-bird1-path function) +;; (define-extern part-menumap-bird2-path function) +;; (define-extern part-menumap-bird3-path function) +;; (define-extern part-menumap-bird4-path function) +;; (define-extern part-menumap-bird5-path function) +;; (define-extern part-menumap-bird6-path function) +;; (define-extern part-menumap-bird7-path function) +;; (define-extern part-menumap-bird8-path function) +;; (define-extern part-menumap-bird9-path function) +;; (define-extern part-menumap-bird10-path function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lobby-adventure-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wm-docks-crane (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype wm-drome-wind-machine (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype wm-kras-circular-tower (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype menu-haven-trophy (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype menu-kras-trophy (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype menu-marauder-trophy (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype menu-spargus-trophy (process-drawable) + () + :method-count-assert 51 + :size-assert #xf8 + :flag-assert #x33007000f8 + (:state-methods + idle ;; 50 + ) + ) +|# + +#| +(deftype wm-fireworks-ship (process-drawable) + ((curve basic :offset-assert 248) + (location float :offset-assert 252) + (fireworks uint64 :offset-assert 256) + ) + :method-count-assert 51 + :size-assert #x108 + :flag-assert #x3300800108 + (:state-methods + idle ;; 50 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-osmo ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-ratchet ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-rayn ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-razer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rustyh-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-fishtank-bubbles function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-sig ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; snow-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype snow-dinobreak (net-simple-destruct) + () + :method-count-assert 70 + :size-assert #x120 + :flag-assert #x4600900120 + ) +|# + +;; (define-extern *snow-dinobreak-explode-params* joint-exploder-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; snow-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype snow-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +;; (define-extern update-mood-snow function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; snow-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-color-snow-torch-flame* curve-color-fast) +;; (define-extern *range-alpha-snow-torch-flame* curve2d-fast) +;; (define-extern *range-scale-snow-torch-flame-x* curve2d-fast) +;; (define-extern *range-scale-snow-torch-flame-y* curve2d-fast) +;; (define-extern *r-curve-snow-torch-flame* curve2d-fast) +;; (define-extern *g-curve-snow-torch-flame* curve2d-fast) +;; (define-extern *b-curve-snow-torch-flame* curve2d-fast) +;; (define-extern *curve-alpha-snow-torch-flame* curve2d-fast) +;; (define-extern *curve-snow-torch-flame-x* curve2d-fast) +;; (define-extern *curve-snow-torch-flame-y* curve2d-fast) +;; (define-extern *part-snow-torch-flame-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spargus-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-spargus* object) +;; (define-extern *ocean-near-indices-spargus* ocean-near-indices) +;; (define-extern *ocean-trans-indices-spargus* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-spargus* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-spargus* ocean-mid-masks) +;; (define-extern *ocean-map-spargus* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spargus-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-spargus-sewer-water function) +;; (define-extern spt-birth-func-brightness-spargus-sewer-water-foam function) +;; (define-extern *range-ssplash-color* curve-color-fast) +;; (define-extern *range-ssplash-alpha* curve2d-fast) +;; (define-extern *range-ssplash-scale-x* curve2d-fast) +;; (define-extern *range-ssplash-scale-y* curve2d-fast) +;; (define-extern *curve-ssplash-alpha* curve2d-fast) +;; (define-extern *curve-ssplash-scale-x* curve2d-fast) +;; (define-extern *curve-ssplash-scale-y* curve2d-fast) +;; (define-extern *part-spargus-ocean-splash-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; temple-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; temple-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *templec-alpha-texture-anim-array* texture-anim-array) +;; (define-extern *templed-alpha-texture-anim-array* texture-anim-array) +;; (define-extern *templed-water-texture-anim-array* texture-anim-array) +;; (define-extern *templee-alpha-texture-anim-array* texture-anim-array) +;; (define-extern *templex-alpha-texture-anim-array* texture-anim-array) +;; (define-extern *templex-water-texture-anim-array* texture-anim-array) ;; (texture-anim-array texture-anim) +;; (define-extern *templey-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; temple-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-temple* object) +;; (define-extern *ocean-near-indices-temple* ocean-near-indices) +;; (define-extern *ocean-trans-indices-temple* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-temple* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-temple* ocean-mid-masks) +;; (define-extern *ocean-map-temple* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-taryn ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-thuga ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-thugb ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-thugc ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-torn ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-ur86 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-ximon ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + + diff --git a/decompiler/config/jakx/jakx_config.jsonc b/decompiler/config/jakx/jakx_config.jsonc index 4237297694..4a1c6e751f 100644 --- a/decompiler/config/jakx/jakx_config.jsonc +++ b/decompiler/config/jakx/jakx_config.jsonc @@ -9,7 +9,24 @@ // it will make the decompiler much faster. "allowed_objects": [], - "banned_objects": [], + // TODO - these objects currently cause various errors in the decompiler that need to be fixed + "banned_objects": [ + "dma", + "race-line", + "merc-blend-shape", + "foreground", + "generic-effect", + "shadow-cpu", + "collide-mesh", + "collide-shape", + "collide-cache", + "entity", + "task-control", + "net-mgr-medius-cache", + "water-anim", + "editable", + "gstring" + ], //////////////////////////// // CODE ANALYSIS OPTIONS @@ -42,16 +59,20 @@ // unpack game count to assets folder "process_game_count": false, // write goal imports for art groups - "process_art_groups": false, + "process_art_groups": true, + // write goal imports for the part group table + "process_part_group_table": false, // write out a json file containing the art info mapping, run this with all objects allowed "dump_art_group_info": false, // write out a json file containing the joint node mapping, run this with all objects allowed "dump_joint_geo_info": false, // write out a json file containing tpage and texture mappings, run with all objects allowed "dump_tex_info": false, + // write out a json file containing the part group table, run with all objects allowed + "dump_part_group_table": false, // set to false to skip adding .STR files to the decompiler database - "read_spools": true, + "read_spools": false, // write out spool subtitle text, implies read_spools "process_subtitle_text": false, // write out spool subtitle images, implies read_spools @@ -68,7 +89,7 @@ "generate_symbol_definition_map": false, // generate the all-types file - "generate_all_types": false, + "generate_all_types": true, // debug option for instruction decoder "write_hex_near_instructions": false, @@ -102,11 +123,12 @@ "inputs_file": "decompiler/config/jakx/ntsc_v1/inputs.jsonc", "art_info_file": "decompiler/config/jakx/ntsc_v1/art_info.jsonc", "import_deps_file": "decompiler/config/jakx/ntsc_v1/import_deps.jsonc", - "all_types_file": "decompiler/config/ntsc_v1/all-types.gc", - "art_group_dump_file": "decompiler/config/ntsc_v1/art-group-info.min.json", - "joint_node_dump_file": "decompiler/config/ntsc_v1/joint-node-info.min.json", - "tex_dump_file": "decompiler/config/ntsc_v1/tex-info.min.json", - "process_stack_size_file": "decompiler/config/ntsc_v1/process_stack_size_overrides.jsonc", + // "art_group_dump_file": "decompiler/config/ntsc_v1/art-group-info.min.json", + // "joint_node_dump_file": "decompiler/config/ntsc_v1/joint-node-info.min.json", + // "tex_dump_file": "decompiler/config/ntsc_v1/tex-info.min.json", + // "part_group_table_dump_file": "decompiler/config/jak3/ntsc_v1/part-groups.min.json", + "process_stack_size_file": "decompiler/config/jakx/ntsc_v1/process_stack_size_overrides.jsonc", + "all_types_file": "decompiler/config/jakx/all-types.gc", // optional: a predetermined object file name map from a file. // this will make decompilation naming consistent even if you only run on some objects. diff --git a/decompiler/config/jakx/ntsc_v1/inputs.jsonc b/decompiler/config/jakx/ntsc_v1/inputs.jsonc index e63b199199..6d532bd776 100644 --- a/decompiler/config/jakx/ntsc_v1/inputs.jsonc +++ b/decompiler/config/jakx/ntsc_v1/inputs.jsonc @@ -9,377 +9,377 @@ // you want to run on the entire game. "dgo_names": [ // engine files - "CGO/ART.CGO", - "CGO/COMMON.CGO", - "CGO/ENGINE.CGO", + // "CGO/ART.CGO", + // "CGO/COMMON.CGO", + // "CGO/ENGINE.CGO", "CGO/KERNEL.CGO", - "CGO/GAME.CGO" - // "DGO/ASHCRED.DGO", - // "DGO/ASHLEV.DGO", - // "DGO/ASHVL.DGO", - // "DGO/ASHVL2.DGO", - // "DGO/ASHVL3.DGO", - // "DGO/ATL.DGO", - // "DGO/ATOLLART.DGO", - // "DGO/ATOLLCTF.DGO", - // "DGO/ATOLLS.DGO", - // "DGO/ATOPLOW.DGO", - // "DGO/ATX.DGO", - // "DGO/BEARL.DGO", - // "DGO/BOBCL.DGO", - // "DGO/BRDROOM.DGO", - // "DGO/BRDROOMF.DGO", - // "DGO/CANFOOT.DGO", - // "DGO/CANSPARS.DGO", - // "DGO/CANSPARW.DGO", - // "DGO/CANTBOX.DGO", - // "DGO/CANYONS.DGO", - // "DGO/CANYONTT.DGO", - // "DGO/CANYONW.DGO", - // "DGO/CARS.DGO", - // "DGO/CHEEL.DGO", - // "DGO/CLF.DGO", - // "DGO/CLFX.DGO", - // "DGO/CLIFCTF.DGO", - // "DGO/CLIFFART.DGO", - // "DGO/CLIFFSS.DGO", - // "DGO/CLIFHUNT.DGO", - // "DGO/CLIFTRN.DGO", - // "DGO/CNSPFOOT.DGO", - // "DGO/CNSPTBOX.DGO", - // "DGO/CNSPTT.DGO", - // "DGO/COL.DGO", - // "DGO/COLART.DGO", - // "DGO/COLICLCT.DGO", - // "DGO/COLICTF.DGO", - // "DGO/COLIREV.DGO", - // "DGO/COLISEUS.DGO", - // "DGO/COLX.DGO", - // "DGO/COUGL.DGO", - // "DGO/CREDITS.DGO", - // "DGO/CSX.DGO", - // "DGO/CSY.DGO", - // "DGO/CYA.DGO", - // "DGO/CYB.DGO", - // "DGO/CYC.DGO", - // "DGO/CYD.DGO", - // "DGO/CYE.DGO", - // "DGO/CYX.DGO", - // "DGO/CYY.DGO", - // "DGO/DAXCRED.DGO", - // "DGO/DAXLEV.DGO", - // "DGO/DAXTL.DGO", - // "DGO/DESACTF.DGO", - // "DGO/DESARENS.DGO", - // "DGO/DESART.DGO", - // "DGO/DESCLCT.DGO", - // "DGO/DESHUNT.DGO", - // "DGO/DESHUNT2.DGO", - // "DGO/DESISLES.DGO", - // "DGO/DESRAPT.DGO", - // "DGO/DESREV.DGO", - // "DGO/DETHRACE.DGO", - // "DGO/DISLEART.DGO", - // "DGO/DISLECTF.DGO", - // "DGO/DKA.DGO", - // "DGO/DKB.DGO", - // "DGO/DKC.DGO", - // "DGO/DKD.DGO", - // "DGO/DKE.DGO", - // "DGO/DKKRFOOT.DGO", - // "DGO/DKKRTBOX.DGO", - // "DGO/DKKRTT.DGO", - // "DGO/DKKX.DGO", - // "DGO/DKKY.DGO", - // "DGO/DKX.DGO", - // "DGO/DOCKFOOT.DGO", - // "DGO/DOCKKRAS.DGO", - // "DGO/DOCKKRAW.DGO", - // "DGO/DOCKSS.DGO", - // "DGO/DOCKSTT.DGO", - // "DGO/DOCKSW.DGO", - // "DGO/DOCKTBOX.DGO", - // "DGO/DRA.DGO", - // "DGO/DRB.DGO", - // "DGO/DRC.DGO", - // "DGO/DRD.DGO", - // "DGO/DRDKFOOT.DGO", - // "DGO/DRDKTBOX.DGO", - // "DGO/DRDKTT.DGO", - // "DGO/DRDX.DGO", - // "DGO/DRDY.DGO", - // "DGO/DROMDOCS.DGO", - // "DGO/DROMDOCW.DGO", - // "DGO/DROMES.DGO", - // "DGO/DROMETT.DGO", - // "DGO/DROMEW.DGO", - // "DGO/DROMEX.DGO", - // "DGO/DROMFOOT.DGO", - // "DGO/DROMTBOX.DGO", - // "DGO/DRONE.DGO", - // "DGO/DRX.DGO", - // "DGO/DRY.DGO", - // "DGO/DSI.DGO", - // "DGO/DSR.DGO", - // "DGO/DSRX.DGO", - // "DGO/DSX.DGO", - // "DGO/EIGHT.DGO", - // "DGO/EIGHTB.DGO", - // "DGO/FALCL.DGO", - // "DGO/FMVLEV.DGO", - // "DGO/FOXL.DGO", - // "DGO/GARAGE.DGO", - // "DGO/GARAGEB.DGO", - // "DGO/GILAL.DGO", - // "DGO/GTBCRED.DGO", - // "DGO/GTBLEV.DGO", - // "DGO/GTBVL.DGO", - // "DGO/HAVENS.DGO", - // "DGO/HAVENW.DGO", - // "DGO/HAVJUNGS.DGO", - // "DGO/HAVJUNGW.DGO", - // "DGO/HAVNFOOT.DGO", - // "DGO/HAVNTBOX.DGO", - // "DGO/HAVSEWS.DGO", - // "DGO/HAVSEWW.DGO", - // "DGO/HAVTFOOT.DGO", - // "DGO/HAVTOURS.DGO", - // "DGO/HAVTOURW.DGO", - // "DGO/HAVTT.DGO", - // "DGO/HAVTTBOX.DGO", - // "DGO/HJNGFOOT.DGO", - // "DGO/HJX.DGO", - // "DGO/HJY.DGO", - // "DGO/HSX.DGO", - // "DGO/HSY.DGO", - // "DGO/HVA.DGO", - // "DGO/HVB.DGO", - // "DGO/HVC.DGO", - // "DGO/HVD.DGO", - // "DGO/HVE.DGO", - // "DGO/HVJGTBOX.DGO", - // "DGO/HVJGTT.DGO", - // "DGO/HVSWFOOT.DGO", - // "DGO/HVSWTBOX.DGO", - // "DGO/HVSWTT.DGO", - // "DGO/HVTRTT.DGO", - // "DGO/HVX.DGO", - // "DGO/HVY.DGO", - // "DGO/IBX.DGO", - // "DGO/IBY.DGO", - // "DGO/ICA.DGO", - // "DGO/ICB.DGO", - // "DGO/ICBGTT.DGO", - // "DGO/ICC.DGO", - // "DGO/ICD.DGO", - // "DGO/ICEBERGS.DGO", - // "DGO/ICEBERGW.DGO", - // "DGO/ICEBFOOT.DGO", - // "DGO/ICEBTBOX.DGO", - // "DGO/ICEFOOT.DGO", - // "DGO/ICEPASSS.DGO", - // "DGO/ICEPASSW.DGO", - // "DGO/ICEPFOOT.DGO", - // "DGO/ICEPTBOX.DGO", - // "DGO/ICES.DGO", - // "DGO/ICETBOX.DGO", - // "DGO/ICETFOOT.DGO", - // "DGO/ICETOURS.DGO", - // "DGO/ICETOURW.DGO", - // "DGO/ICETRN.DGO", - // "DGO/ICETT.DGO", - // "DGO/ICETTBOX.DGO", - // "DGO/ICEW.DGO", - // "DGO/ICPSTT.DGO", - // "DGO/ICTRTT.DGO", - // "DGO/ICX.DGO", - // "DGO/ICY.DGO", - // "DGO/IPX.DGO", - // "DGO/IPY.DGO", - // "DGO/JAKCRED.DGO", - // "DGO/JAKLEV.DGO", - // "DGO/JAKVL.DGO", - // "DGO/JGA.DGO", - // "DGO/JGB.DGO", - // "DGO/JGC.DGO", - // "DGO/JGD.DGO", - // "DGO/JGE.DGO", - // "DGO/JGF.DGO", - // "DGO/JGG.DGO", - // "DGO/JGX.DGO", - // "DGO/JGY.DGO", - // "DGO/JKALEV.DGO", - // "DGO/JKBLEV.DGO", - // "DGO/JKCLEV.DGO", - // "DGO/JUNGFOOT.DGO", - // "DGO/JUNGLES.DGO", - // "DGO/JUNGLETT.DGO", - // "DGO/JUNGLEW.DGO", - // "DGO/JUNGTBOX.DGO", - // "DGO/JUNGTRN.DGO", - // "DGO/KAELEV.DGO", - // "DGO/KCR.DGO", - // "DGO/KCROSART.DGO", - // "DGO/KCROSCTF.DGO", - // "DGO/KCROSSS.DGO", - // "DGO/KCRSCLCT.DGO", - // "DGO/KCRSPLOW.DGO", - // "DGO/KCRX.DGO", - // "DGO/KEICRED.DGO", - // "DGO/KIELEV.DGO", - // "DGO/KIEVL.DGO", - // "DGO/KLECRED.DGO", - // "DGO/KLELEV.DGO", - // "DGO/KLEVL.DGO", - // "DGO/KLEVL2.DGO", - // "DGO/KRA.DGO", - // "DGO/KRASFOOT.DGO", - // "DGO/KRASS.DGO", - // "DGO/KRASTBOX.DGO", - // "DGO/KRASTRN.DGO", - // "DGO/KRASTT.DGO", - // "DGO/KRASW.DGO", - // "DGO/KRATFOOT.DGO", - // "DGO/KRATOURS.DGO", - // "DGO/KRATOURW.DGO", - // "DGO/KRATTBOX.DGO", - // "DGO/KRB.DGO", - // "DGO/KRC.DGO", - // "DGO/KRTRTT.DGO", - // "DGO/KRX.DGO", - // "DGO/KRY.DGO", - // "DGO/LEOPL.DGO", - // "DGO/MENU2.DGO", - // "DGO/MENUMAP.DGO", - // "DGO/MONGL.DGO", - // "DGO/OSMLEV.DGO", - // "DGO/PANTL.DGO", - // "DGO/PEAKFOOT.DGO", - // "DGO/PEAKS.DGO", - // "DGO/PEAKTBOX.DGO", - // "DGO/PEAKTT.DGO", - // "DGO/PEAKW.DGO", - // "DGO/PECCRED.DGO", - // "DGO/PECLEV.DGO", - // "DGO/PECVL.DGO", - // "DGO/PKA.DGO", - // "DGO/PKB.DGO", - // "DGO/PKC.DGO", - // "DGO/PKD.DGO", - // "DGO/PKE.DGO", - // "DGO/PKX.DGO", - // "DGO/POSSL.DGO", - // "DGO/RACEWEAP.DGO", - // "DGO/RATLEV.DGO", - // "DGO/RAYCRED.DGO", - // "DGO/RAYLEV.DGO", - // "DGO/RAYVL.DGO", - // "DGO/RAYVL2.DGO", - // "DGO/RAZCRED.DGO", - // "DGO/RAZLEV.DGO", - // "DGO/RAZVL.DGO", - // "DGO/RTH.DGO", - // "DGO/RUSTYH.DGO", - // "DGO/S2A.DGO", - // "DGO/S3A.DGO", - // "DGO/SBWLCTF.DGO", - // "DGO/SEWERS.DGO", - // "DGO/SEWERTT.DGO", - // "DGO/SEWERW.DGO", - // "DGO/SEWFOOT.DGO", - // "DGO/SEWTBOX.DGO", - // "DGO/SIGCRED.DGO", - // "DGO/SIGLEV.DGO", - // "DGO/SIGVL.DGO", - // "DGO/SIGVL2.DGO", - // "DGO/SIGVL3.DGO", - // "DGO/SNAKL.DGO", - // "DGO/SNO.DGO", - // "DGO/SNOBART.DGO", - // "DGO/SNOBOWLS.DGO", - // "DGO/SNOWFOOT.DGO", - // "DGO/SNOWS.DGO", - // "DGO/SNOWTBOX.DGO", - // "DGO/SNOWTRN2.DGO", - // "DGO/SNOWTT.DGO", - // "DGO/SNOX.DGO", - // "DGO/SNW.DGO", - // "DGO/SNWX.DGO", - // "DGO/SPA.DGO", - // "DGO/SPARFOOT.DGO", - // "DGO/SPARGUSS.DGO", - // "DGO/SPARGUSW.DGO", - // "DGO/SPARTEMS.DGO", - // "DGO/SPARTEMW.DGO", - // "DGO/SPARTT.DGO", - // "DGO/SPATFOOT.DGO", - // "DGO/SPATOURS.DGO", - // "DGO/SPATOURW.DGO", - // "DGO/SPATTBOX.DGO", - // "DGO/SPB.DGO", - // "DGO/SPC.DGO", - // "DGO/SPD.DGO", - // "DGO/SPE.DGO", - // "DGO/SPRGSTBX.DGO", - // "DGO/SPTMFOOT.DGO", - // "DGO/SPTMTBOX.DGO", - // "DGO/SPTMTT.DGO", - // "DGO/SPTRTT.DGO", - // "DGO/SPX.DGO", - // "DGO/SPY.DGO", - // "DGO/STX.DGO", - // "DGO/STY.DGO", - // "DGO/SWA.DGO", - // "DGO/SWB.DGO", - // "DGO/SWC.DGO", - // "DGO/SWD.DGO", - // "DGO/SWE.DGO", - // "DGO/SWF.DGO", - // "DGO/SWX.DGO", - // "DGO/TARLEV.DGO", - // "DGO/TEMPFOOT.DGO", - // "DGO/TEMPLES.DGO", - // "DGO/TEMPLETT.DGO", - // "DGO/TEMPLEW.DGO", - // "DGO/TEMPTBOX.DGO", - // "DGO/THACRED.DGO", - // "DGO/THALEV.DGO", - // "DGO/THAVL.DGO", - // "DGO/THAVL2.DGO", - // "DGO/THAVL3.DGO", - // "DGO/THBCRED.DGO", - // "DGO/THBLEV.DGO", - // "DGO/THBVL.DGO", - // "DGO/THBVL2.DGO", - // "DGO/THBVL3.DGO", - // "DGO/THCCRED.DGO", - // "DGO/THCLEV.DGO", - // "DGO/THCVL.DGO", - // "DGO/THCVL2.DGO", - // "DGO/THCVL3.DGO", - // "DGO/TIGEL.DGO", - // "DGO/TOADL.DGO", - // "DGO/TORCRED.DGO", - // "DGO/TORLEV.DGO", - // "DGO/TORVL.DGO", - // "DGO/TORVL2.DGO", - // "DGO/TORVL3.DGO", - // "DGO/TPA.DGO", - // "DGO/TPB.DGO", - // "DGO/TPC.DGO", - // "DGO/TPD.DGO", - // "DGO/TPE.DGO", - // "DGO/TPX.DGO", - // "DGO/TPY.DGO", - // "DGO/TURTL.DGO", - // "DGO/UR8CRED.DGO", - // "DGO/UR8LEV.DGO", - // "DGO/UR8VL.DGO", - // "DGO/UR8VL2.DGO", - // "DGO/UR8VL3.DGO", - // "DGO/WOLFL.DGO", - // "DGO/WOMBL.DGO", - // "DGO/XIMLEV.DGO" + "CGO/GAME.CGO", + "DGO/ASHCRED.DGO", + "DGO/ASHLEV.DGO", + "DGO/ASHVL.DGO", + "DGO/ASHVL2.DGO", + "DGO/ASHVL3.DGO", + "DGO/ATL.DGO", + "DGO/ATOLLART.DGO", + "DGO/ATOLLCTF.DGO", + "DGO/ATOLLS.DGO", + "DGO/ATOPLOW.DGO", + "DGO/ATX.DGO", + "DGO/BEARL.DGO", + "DGO/BOBCL.DGO", + "DGO/BRDROOM.DGO", + "DGO/BRDROOMF.DGO", + "DGO/CANFOOT.DGO", + "DGO/CANSPARS.DGO", + "DGO/CANSPARW.DGO", + "DGO/CANTBOX.DGO", + "DGO/CANYONS.DGO", + "DGO/CANYONTT.DGO", + "DGO/CANYONW.DGO", + "DGO/CARS.DGO", + "DGO/CHEEL.DGO", + "DGO/CLF.DGO", + "DGO/CLFX.DGO", + "DGO/CLIFCTF.DGO", + "DGO/CLIFFART.DGO", + "DGO/CLIFFSS.DGO", + "DGO/CLIFHUNT.DGO", + "DGO/CLIFTRN.DGO", + "DGO/CNSPFOOT.DGO", + "DGO/CNSPTBOX.DGO", + "DGO/CNSPTT.DGO", + "DGO/COL.DGO", + "DGO/COLART.DGO", + "DGO/COLICLCT.DGO", + "DGO/COLICTF.DGO", + "DGO/COLIREV.DGO", + "DGO/COLISEUS.DGO", + "DGO/COLX.DGO", + "DGO/COUGL.DGO", + "DGO/CREDITS.DGO", + "DGO/CSX.DGO", + "DGO/CSY.DGO", + "DGO/CYA.DGO", + "DGO/CYB.DGO", + "DGO/CYC.DGO", + "DGO/CYD.DGO", + "DGO/CYE.DGO", + "DGO/CYX.DGO", + "DGO/CYY.DGO", + "DGO/DAXCRED.DGO", + "DGO/DAXLEV.DGO", + "DGO/DAXTL.DGO", + "DGO/DESACTF.DGO", + "DGO/DESARENS.DGO", + "DGO/DESART.DGO", + "DGO/DESCLCT.DGO", + "DGO/DESHUNT.DGO", + "DGO/DESHUNT2.DGO", + "DGO/DESISLES.DGO", + "DGO/DESRAPT.DGO", + "DGO/DESREV.DGO", + "DGO/DETHRACE.DGO", + "DGO/DISLEART.DGO", + "DGO/DISLECTF.DGO", + "DGO/DKA.DGO", + "DGO/DKB.DGO", + "DGO/DKC.DGO", + "DGO/DKD.DGO", + "DGO/DKE.DGO", + "DGO/DKKRFOOT.DGO", + "DGO/DKKRTBOX.DGO", + "DGO/DKKRTT.DGO", + "DGO/DKKX.DGO", + "DGO/DKKY.DGO", + "DGO/DKX.DGO", + "DGO/DOCKFOOT.DGO", + "DGO/DOCKKRAS.DGO", + "DGO/DOCKKRAW.DGO", + "DGO/DOCKSS.DGO", + "DGO/DOCKSTT.DGO", + "DGO/DOCKSW.DGO", + "DGO/DOCKTBOX.DGO", + "DGO/DRA.DGO", + "DGO/DRB.DGO", + "DGO/DRC.DGO", + "DGO/DRD.DGO", + "DGO/DRDKFOOT.DGO", + "DGO/DRDKTBOX.DGO", + "DGO/DRDKTT.DGO", + "DGO/DRDX.DGO", + "DGO/DRDY.DGO", + "DGO/DROMDOCS.DGO", + "DGO/DROMDOCW.DGO", + "DGO/DROMES.DGO", + "DGO/DROMETT.DGO", + "DGO/DROMEW.DGO", + "DGO/DROMEX.DGO", + "DGO/DROMFOOT.DGO", + "DGO/DROMTBOX.DGO", + "DGO/DRONE.DGO", + "DGO/DRX.DGO", + "DGO/DRY.DGO", + "DGO/DSI.DGO", + "DGO/DSR.DGO", + "DGO/DSRX.DGO", + "DGO/DSX.DGO", + "DGO/EIGHT.DGO", + "DGO/EIGHTB.DGO", + "DGO/FALCL.DGO", + "DGO/FMVLEV.DGO", + "DGO/FOXL.DGO", + "DGO/GARAGE.DGO", + "DGO/GARAGEB.DGO", + "DGO/GILAL.DGO", + "DGO/GTBCRED.DGO", + "DGO/GTBLEV.DGO", + "DGO/GTBVL.DGO", + "DGO/HAVENS.DGO", + "DGO/HAVENW.DGO", + "DGO/HAVJUNGS.DGO", + "DGO/HAVJUNGW.DGO", + "DGO/HAVNFOOT.DGO", + "DGO/HAVNTBOX.DGO", + "DGO/HAVSEWS.DGO", + "DGO/HAVSEWW.DGO", + "DGO/HAVTFOOT.DGO", + "DGO/HAVTOURS.DGO", + "DGO/HAVTOURW.DGO", + "DGO/HAVTT.DGO", + "DGO/HAVTTBOX.DGO", + "DGO/HJNGFOOT.DGO", + "DGO/HJX.DGO", + "DGO/HJY.DGO", + "DGO/HSX.DGO", + "DGO/HSY.DGO", + "DGO/HVA.DGO", + "DGO/HVB.DGO", + "DGO/HVC.DGO", + "DGO/HVD.DGO", + "DGO/HVE.DGO", + "DGO/HVJGTBOX.DGO", + "DGO/HVJGTT.DGO", + "DGO/HVSWFOOT.DGO", + "DGO/HVSWTBOX.DGO", + "DGO/HVSWTT.DGO", + "DGO/HVTRTT.DGO", + "DGO/HVX.DGO", + "DGO/HVY.DGO", + "DGO/IBX.DGO", + "DGO/IBY.DGO", + "DGO/ICA.DGO", + "DGO/ICB.DGO", + "DGO/ICBGTT.DGO", + "DGO/ICC.DGO", + "DGO/ICD.DGO", + "DGO/ICEBERGS.DGO", + "DGO/ICEBERGW.DGO", + "DGO/ICEBFOOT.DGO", + "DGO/ICEBTBOX.DGO", + "DGO/ICEFOOT.DGO", + "DGO/ICEPASSS.DGO", + "DGO/ICEPASSW.DGO", + "DGO/ICEPFOOT.DGO", + "DGO/ICEPTBOX.DGO", + "DGO/ICES.DGO", + "DGO/ICETBOX.DGO", + "DGO/ICETFOOT.DGO", + "DGO/ICETOURS.DGO", + "DGO/ICETOURW.DGO", + "DGO/ICETRN.DGO", + "DGO/ICETT.DGO", + "DGO/ICETTBOX.DGO", + "DGO/ICEW.DGO", + "DGO/ICPSTT.DGO", + "DGO/ICTRTT.DGO", + "DGO/ICX.DGO", + "DGO/ICY.DGO", + "DGO/IPX.DGO", + "DGO/IPY.DGO", + "DGO/JAKCRED.DGO", + "DGO/JAKLEV.DGO", + "DGO/JAKVL.DGO", + "DGO/JGA.DGO", + "DGO/JGB.DGO", + "DGO/JGC.DGO", + "DGO/JGD.DGO", + "DGO/JGE.DGO", + "DGO/JGF.DGO", + "DGO/JGG.DGO", + "DGO/JGX.DGO", + "DGO/JGY.DGO", + "DGO/JKALEV.DGO", + "DGO/JKBLEV.DGO", + "DGO/JKCLEV.DGO", + "DGO/JUNGFOOT.DGO", + "DGO/JUNGLES.DGO", + "DGO/JUNGLETT.DGO", + "DGO/JUNGLEW.DGO", + "DGO/JUNGTBOX.DGO", + "DGO/JUNGTRN.DGO", + "DGO/KAELEV.DGO", + "DGO/KCR.DGO", + "DGO/KCROSART.DGO", + "DGO/KCROSCTF.DGO", + "DGO/KCROSSS.DGO", + "DGO/KCRSCLCT.DGO", + "DGO/KCRSPLOW.DGO", + "DGO/KCRX.DGO", + "DGO/KEICRED.DGO", + "DGO/KIELEV.DGO", + "DGO/KIEVL.DGO", + "DGO/KLECRED.DGO", + "DGO/KLELEV.DGO", + "DGO/KLEVL.DGO", + "DGO/KLEVL2.DGO", + "DGO/KRA.DGO", + "DGO/KRASFOOT.DGO", + "DGO/KRASS.DGO", + "DGO/KRASTBOX.DGO", + "DGO/KRASTRN.DGO", + "DGO/KRASTT.DGO", + "DGO/KRASW.DGO", + "DGO/KRATFOOT.DGO", + "DGO/KRATOURS.DGO", + "DGO/KRATOURW.DGO", + "DGO/KRATTBOX.DGO", + "DGO/KRB.DGO", + "DGO/KRC.DGO", + "DGO/KRTRTT.DGO", + "DGO/KRX.DGO", + "DGO/KRY.DGO", + "DGO/LEOPL.DGO", + "DGO/MENU2.DGO", + "DGO/MENUMAP.DGO", + "DGO/MONGL.DGO", + "DGO/OSMLEV.DGO", + "DGO/PANTL.DGO", + "DGO/PEAKFOOT.DGO", + "DGO/PEAKS.DGO", + "DGO/PEAKTBOX.DGO", + "DGO/PEAKTT.DGO", + "DGO/PEAKW.DGO", + "DGO/PECCRED.DGO", + "DGO/PECLEV.DGO", + "DGO/PECVL.DGO", + "DGO/PKA.DGO", + "DGO/PKB.DGO", + "DGO/PKC.DGO", + "DGO/PKD.DGO", + "DGO/PKE.DGO", + "DGO/PKX.DGO", + "DGO/POSSL.DGO", + "DGO/RACEWEAP.DGO", + "DGO/RATLEV.DGO", + "DGO/RAYCRED.DGO", + "DGO/RAYLEV.DGO", + "DGO/RAYVL.DGO", + "DGO/RAYVL2.DGO", + "DGO/RAZCRED.DGO", + "DGO/RAZLEV.DGO", + "DGO/RAZVL.DGO", + "DGO/RTH.DGO", + "DGO/RUSTYH.DGO", + "DGO/S2A.DGO", + "DGO/S3A.DGO", + "DGO/SBWLCTF.DGO", + "DGO/SEWERS.DGO", + "DGO/SEWERTT.DGO", + "DGO/SEWERW.DGO", + "DGO/SEWFOOT.DGO", + "DGO/SEWTBOX.DGO", + "DGO/SIGCRED.DGO", + "DGO/SIGLEV.DGO", + "DGO/SIGVL.DGO", + "DGO/SIGVL2.DGO", + "DGO/SIGVL3.DGO", + "DGO/SNAKL.DGO", + "DGO/SNO.DGO", + "DGO/SNOBART.DGO", + "DGO/SNOBOWLS.DGO", + "DGO/SNOWFOOT.DGO", + "DGO/SNOWS.DGO", + "DGO/SNOWTBOX.DGO", + "DGO/SNOWTRN2.DGO", + "DGO/SNOWTT.DGO", + "DGO/SNOX.DGO", + "DGO/SNW.DGO", + "DGO/SNWX.DGO", + "DGO/SPA.DGO", + "DGO/SPARFOOT.DGO", + "DGO/SPARGUSS.DGO", + "DGO/SPARGUSW.DGO", + "DGO/SPARTEMS.DGO", + "DGO/SPARTEMW.DGO", + "DGO/SPARTT.DGO", + "DGO/SPATFOOT.DGO", + "DGO/SPATOURS.DGO", + "DGO/SPATOURW.DGO", + "DGO/SPATTBOX.DGO", + "DGO/SPB.DGO", + "DGO/SPC.DGO", + "DGO/SPD.DGO", + "DGO/SPE.DGO", + "DGO/SPRGSTBX.DGO", + "DGO/SPTMFOOT.DGO", + "DGO/SPTMTBOX.DGO", + "DGO/SPTMTT.DGO", + "DGO/SPTRTT.DGO", + "DGO/SPX.DGO", + "DGO/SPY.DGO", + "DGO/STX.DGO", + "DGO/STY.DGO", + "DGO/SWA.DGO", + "DGO/SWB.DGO", + "DGO/SWC.DGO", + "DGO/SWD.DGO", + "DGO/SWE.DGO", + "DGO/SWF.DGO", + "DGO/SWX.DGO", + "DGO/TARLEV.DGO", + "DGO/TEMPFOOT.DGO", + "DGO/TEMPLES.DGO", + "DGO/TEMPLETT.DGO", + "DGO/TEMPLEW.DGO", + "DGO/TEMPTBOX.DGO", + "DGO/THACRED.DGO", + "DGO/THALEV.DGO", + "DGO/THAVL.DGO", + "DGO/THAVL2.DGO", + "DGO/THAVL3.DGO", + "DGO/THBCRED.DGO", + "DGO/THBLEV.DGO", + "DGO/THBVL.DGO", + "DGO/THBVL2.DGO", + "DGO/THBVL3.DGO", + "DGO/THCCRED.DGO", + "DGO/THCLEV.DGO", + "DGO/THCVL.DGO", + "DGO/THCVL2.DGO", + "DGO/THCVL3.DGO", + "DGO/TIGEL.DGO", + "DGO/TOADL.DGO", + "DGO/TORCRED.DGO", + "DGO/TORLEV.DGO", + "DGO/TORVL.DGO", + "DGO/TORVL2.DGO", + "DGO/TORVL3.DGO", + "DGO/TPA.DGO", + "DGO/TPB.DGO", + "DGO/TPC.DGO", + "DGO/TPD.DGO", + "DGO/TPE.DGO", + "DGO/TPX.DGO", + "DGO/TPY.DGO", + "DGO/TURTL.DGO", + "DGO/UR8CRED.DGO", + "DGO/UR8LEV.DGO", + "DGO/UR8VL.DGO", + "DGO/UR8VL2.DGO", + "DGO/UR8VL3.DGO", + "DGO/WOLFL.DGO", + "DGO/WOMBL.DGO", + "DGO/XIMLEV.DGO" ], "levels_to_extract": [], diff --git a/decompiler/decompilation_process.cpp b/decompiler/decompilation_process.cpp index 540058ee1d..f08cf27696 100644 --- a/decompiler/decompilation_process.cpp +++ b/decompiler/decompilation_process.cpp @@ -180,7 +180,7 @@ int run_decompilation_process(decompiler::Config config, if (config.generate_all_types) { ASSERT_MSG(config.decompile_code, "Must decompile code to generate all-types"); - db.ir2_analyze_all_types(out_folder / "new-all-types.gc", config.old_all_types_file, + db.ir2_analyze_all_types(out_folder / "_new-all-types.gc", config.old_all_types_file, config.hacks.types_with_bad_inspect_methods); } diff --git a/test/offline/framework/execution.cpp b/test/offline/framework/execution.cpp index 36407a373a..b95c19b565 100644 --- a/test/offline/framework/execution.cpp +++ b/test/offline/framework/execution.cpp @@ -125,6 +125,11 @@ OfflineTestCompileResult compile(OfflineTestDecompiler& dc, compiler.run_front_end_on_file({"goal_src", "jak3", "engine", "data", "joint-nodes.gc"}); compiler.run_front_end_on_file({"goal_src", "jak3", "engine", "data", "textures.gc"}); compiler.run_front_end_on_file({"goal_src", "jak3", "engine", "data", "part-groups.gc"}); + } else if (config.game_name == "jakx") { + compiler.run_front_end_on_file({"goal_src", "jakx", "engine", "data", "art-elts.gc"}); + compiler.run_front_end_on_file({"goal_src", "jakx", "engine", "data", "joint-nodes.gc"}); + compiler.run_front_end_on_file({"goal_src", "jakx", "engine", "data", "textures.gc"}); + compiler.run_front_end_on_file({"goal_src", "jakx", "engine", "data", "part-groups.gc"}); } int total_lines = 0;