diff --git a/decompiler/config/all-types2.gc b/decompiler/config/all-types2.gc deleted file mode 100644 index f1fead6ce9..0000000000 --- a/decompiler/config/all-types2.gc +++ /dev/null @@ -1,19 +0,0 @@ -;; 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) - - - -;; some types we need. -(declare-type sparticle-launch-group basic) -(declare-type lightning-spec basic) -(declare-type sparticle-launcher basic) -(declare-type state basic) - -;; debug -(define-extern looping-code (function symbol)) diff --git a/decompiler/config/jak2/all-types.gc b/decompiler/config/jak2/all-types.gc new file mode 100644 index 0000000000..b001397cec --- /dev/null +++ b/decompiler/config/jak2/all-types.gc @@ -0,0 +1,46289 @@ +;; 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) + +;; some types we need. +(declare-type sparticle-launch-group basic) +(declare-type lightning-spec basic) +(declare-type sparticle-launcher basic) +(declare-type state basic) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gcommon ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype array (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype vec4s (uint128) + () + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ;; Failed to read some fields. + ) +|# + +#| +(deftype vector (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) + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype bfloat (basic) + ((data float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype inline-array-class (basic) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern identity object) ;; (function object object) +;; (define-extern 1/ object) ;; (function float float) +;; (define-extern + object) ;; (function int int int) +;; (define-extern - object) ;; (function int int int) +;; (define-extern * object) ;; (function int int int) +;; (define-extern / object) ;; (function int int int) +;; (define-extern ash object) ;; (function int int int) +;; (define-extern mod object) ;; (function int int int) +;; (define-extern rem object) ;; (function int int int) +;; (define-extern abs object) ;; (function int int) +;; (define-extern min object) ;; (function int int int) +;; (define-extern max object) ;; (function int int int) +;; (define-extern logior object) ;; (function int int int) +;; (define-extern logand object) ;; (function int int int) +;; (define-extern lognor object) ;; (function int int int) +;; (define-extern logxor object) ;; (function int int int) +;; (define-extern lognot object) ;; (function int int) +;; (define-extern false-func object) ;; (function symbol) +;; (define-extern true-func object) ;; (function symbol) +;; (define-extern format object) ;; (function _varargs_ object) +;; (define-extern basic-type? object) ;; (function basic type symbol) +;; (define-extern type-type? object) ;; (function type type symbol) +;; (define-extern type? object) +;; (define-extern find-parent-method object) ;; (function type int function) +;; (define-extern ref object) ;; (function object int object) +;; (define-extern last object) ;; (function object object) +;; (define-extern member object) ;; (function object object object) +;; (define-extern nmember object) ;; (function basic object object) +;; (define-extern assoc object) ;; (function object object object) +;; (define-extern assoce object) ;; (function object object object) +;; (define-extern nassoc object) ;; (function string object object) +;; (define-extern nassoce object) ;; (function string object object) +;; (define-extern append! object) ;; (function object object object) +;; (define-extern delete! object) ;; (function object object pair) +;; (define-extern delete-car! object) ;; (function object object object) +;; (define-extern insert-cons! object) ;; (function object object pair) +;; (define-extern sort object) ;; (function pair (function object object object) pair) +;; (define-extern mem-copy! object) ;; (function pointer pointer int pointer) +;; (define-extern qmem-copy<-! object) ;; (function pointer pointer int pointer) +;; (define-extern qmem-copy->! object) ;; (function pointer pointer int pointer) +;; (define-extern mem-set32! object) ;; (function pointer int int pointer) +;; (define-extern mem-or! object) ;; (function pointer pointer int pointer) +;; (define-extern quad-copy! object) ;; (function pointer pointer int none) +;; (define-extern fact object) ;; (function int int) +;; (define-extern *print-column* object) ;; binteger +;; (define-extern print object) ;; (function object object) +;; (define-extern printl object) ;; (function object object) +;; (define-extern inspect object) ;; (function object object) +;; (define-extern mem-print object) ;; (function (pointer uint32) int symbol) +;; (define-extern *trace-list* object) ;; pair +;; (define-extern print-tree-bitmask object) ;; (function int int symbol) +;; (define-extern breakpoint-range-set! object) ;; (function uint uint uint int) +;; (define-extern valid? object) ;; (function object type basic basic object symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gstring-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gkernel-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(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 basic :offset-assert 44) + (low-memory-message symbol :offset-assert 48) ;; guessed by decompiler + (login-object basic :offset-assert 52) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ;; field relocating-level uses ~A with a signed load + ) +|# + +#| +(deftype clock (basic) + ((index int32 :offset-assert 4) + (mask uint32 :offset-assert 8) + (clock-ratio float :offset-assert 12) + (accum float :offset-assert 16) + (integral-accum float :offset-assert 20) + (frame-counter uint64 :offset-assert 24) + (old-frame-counter uint64 :offset-assert 32) + (integral-frame-counter uint64 :offset-assert 40) + (old-integral-frame-counter uint64 :offset-assert 48) + (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 15 + :size-assert #x5c + :flag-assert #xf0000005c + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + ) + ) +|# + +#| +(deftype thread (basic) + ((name basic :offset-assert 4) + (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 + (dummy-9 () none 9) ;; (stack-size-set! (_type_ int) none 9) + (dummy-10 () none 10) ;; (thread-suspend (_type_) none 10) + (dummy-11 () none 11) ;; (thread-resume (_type_) none 11) + ) + ) +|# + +#| +(deftype cpu-thread (thread) + ((rreg uint64 8 :offset-assert 40) ;; guessed by decompiler + (freg float 6 :offset-assert 104) ;; guessed by decompiler + (stack uint8 :dynamic :offset-assert 128) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x80 + :flag-assert #xc00000080 + (:methods + ;; (new (symbol type process symbol int pointer) _type_ 0) + ) + ) +|# + +#| +(deftype dead-pool (process-tree) + () + :method-count-assert 16 + :size-assert #x24 + :flag-assert #x1000000024 + ;; Failed to read fields. + (:methods + ;; (new (symbol type int int basic) _type_ 0) + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) ;; (get-process (_type_ type int) process 14) + (dummy-15 () none 15) ;; (return-process (_type_ process) none 15) + ) + ) +|# + +#| +(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) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype dead-pool-heap (dead-pool) + () + :method-count-assert 28 + :size-assert #x68 + :flag-assert #x1c00000068 + ;; Failed to read fields. + (:methods + ;; (new (symbol type basic int int) _type_ 0) + (dummy-16 () none 16) ;; (compact (dead-pool-heap int) none 16) + (dummy-17 () none 17) ;; (shrink-heap (dead-pool-heap process) dead-pool-heap 17) + (dummy-18 () none 18) ;; (churn (dead-pool-heap int) none 18) + (dummy-19 () none 19) ;; (memory-used (dead-pool-heap) int 19) + (dummy-20 () none 20) ;; (memory-total (dead-pool-heap) int 20) + (dummy-21 () none 21) ;; (gap-size (dead-pool-heap dead-pool-heap-rec) int 21) + (dummy-22 () none 22) ;; (gap-location (dead-pool-heap dead-pool-heap-rec) pointer 22) + (dummy-23 () none 23) ;; (find-gap (dead-pool-heap dead-pool-heap-rec) dead-pool-heap-rec 23) + (dummy-24 () none 24) ;; (find-gap-by-size (dead-pool-heap int) dead-pool-heap-rec 24) + (dummy-25 () none 25) ;; (memory-free (dead-pool-heap) int 25) + (dummy-26 () none 26) ;; (compact-time (dead-pool-heap) uint 26) + (dummy-27 () none 27) + ) + ) +|# + +#| +(deftype catch-frame (stack-frame) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (next stack-frame :offset-assert 8) ;; guessed by decompiler + (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 + ) + :method-count-assert 9 + :size-assert #xb0 + :flag-assert #x9000000b0 + ) +|# + +#| +(deftype protect-frame (stack-frame) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (next stack-frame :offset-assert 8) ;; guessed by decompiler + (exit (function none) :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype handle (uint64) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ;; Failed to read some fields. + ) +|# + +#| +(deftype state (protect-frame) + ((code function :offset-assert 16) ;; guessed by decompiler + (trans (function none) :offset-assert 20) ;; guessed by decompiler + (post function :offset-assert 24) ;; guessed by decompiler + (enter function :offset-assert 28) ;; guessed by decompiler + (event (function process int symbol event-message-block object) :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype event-message-block (structure) + () + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ;; Failed to read fields. + ) +|# + +#| +(deftype event-message-block-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (dummy-9 () none 9) + ) + ) +|# + +;; (define-extern *sql-result* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gkernel ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype process-tree (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype process (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype dead-pool-heap (dead-pool) + () + :method-count-assert 28 + :size-assert #x68 + :flag-assert #x1c00000068 + ;; Failed to read fields. + (:methods + ;; (new (symbol type basic int int) _type_ 0) + (dummy-16 () none 16) ;; (compact (dead-pool-heap int) none 16) + (dummy-17 () none 17) ;; (shrink-heap (dead-pool-heap process) dead-pool-heap 17) + (dummy-18 () none 18) ;; (churn (dead-pool-heap int) none 18) + (dummy-19 () none 19) ;; (memory-used (dead-pool-heap) int 19) + (dummy-20 () none 20) ;; (memory-total (dead-pool-heap) int 20) + (dummy-21 () none 21) ;; (gap-size (dead-pool-heap dead-pool-heap-rec) int 21) + (dummy-22 () none 22) ;; (gap-location (dead-pool-heap dead-pool-heap-rec) pointer 22) + (dummy-23 () none 23) ;; (find-gap (dead-pool-heap dead-pool-heap-rec) dead-pool-heap-rec 23) + (dummy-24 () none 24) ;; (find-gap-by-size (dead-pool-heap int) dead-pool-heap-rec 24) + (dummy-25 () none 25) ;; (memory-free (dead-pool-heap) int 25) + (dummy-26 () none 26) ;; (compact-time (dead-pool-heap) uint 26) + (dummy-27 () none 27) + ) + ) +|# + +;; (define-extern *kernel-version* object) ;; binteger +;; (define-extern *irx-version* object) ;; binteger +;; (define-extern *kernel-boot-mode* object) ;; symbol +;; (define-extern *kernel-boot-level* object) ;; symbol +;; (define-extern *deci-count* object) ;; int +;; (define-extern *last-loado-length* object) ;; int +;; (define-extern *last-loado-global-usage* object) ;; int +;; (define-extern *last-loado-debug-usage* object) ;; int +;; (define-extern *kernel-packages* object) ;; pair +;; (define-extern load-package object) ;; (function string kheap pair) +;; (define-extern unload-package object) ;; (function string pair) +;; (define-extern *kernel-context* object) ;; kernel-context +;; (define-extern *dram-stack* object) ;; (pointer uint8) +;; (define-extern *null-kernel-context* object) ;; kernel-context +;; (define-extern remove-exit object) ;; (function stack-frame :behavior process) +;; (define-extern stream<-process-mask object) ;; (function object process-mask process-mask) +;; (define-extern *master-mode* object) ;; symbol +;; (define-extern *pause-lock* object) ;; symbol +;; (define-extern inspect-process-heap object) ;; (function process symbol) +;; (define-extern return-from-thread object) ;; (function none) +;; (define-extern return-from-thread-dead object) ;; (function none) +;; (define-extern reset-and-call object) ;; (function thread function object) +;; (define-extern method-state object) +;; (define-extern *global-search-name* object) ;; basic +;; (define-extern *global-search-count* object) ;; int +;; (define-extern process-by-name object) ;; (function object process-tree process) +;; (define-extern process-not-name object) ;; (function object process-tree process) +;; (define-extern process-count object) ;; (function process-tree int) +;; (define-extern kill-by-name object) ;; (function object process-tree symbol) +;; (define-extern kill-by-type object) ;; (function object process-tree symbol) +;; (define-extern kill-not-name object) ;; (function object process-tree symbol) +;; (define-extern kill-not-type object) ;; (function object process-tree symbol) +;; (define-extern iterate-process-tree object) ;; (function process-tree (function object object) kernel-context object) +;; (define-extern execute-process-tree object) ;; (function process-tree (function object object) kernel-context object) +;; (define-extern search-process-tree object) ;; (function process-tree (function process-tree object) process-tree) +;; (define-extern kernel-dispatcher object) ;; (function object) +;; (define-extern sync-dispatcher object) +;; (define-extern inspect-process-tree object) ;; (function process-tree int int symbol process-tree) +;; (define-extern throw-dispatch object) ;; (function catch-frame object none) +;; (define-extern throw object) ;; (function symbol object int) +;; (define-extern previous-brother object) ;; (function process-tree object) +;; (define-extern change-parent object) ;; (function process-tree process-tree process-tree) +;; (define-extern change-brother object) ;; (function process-tree process-tree object) +;; (define-extern change-to-last-brother object) ;; (function process-tree process-tree) +;; (define-extern run-function-in-process object) ;; (function process function object object object object object object object) +;; (define-extern set-to-run-bootstrap object) ;; (function none) +;; (define-extern set-to-run object) ;; (function cpu-thread function object object object object object object pointer) +;; (define-extern dead-state object) ;; (state process) +;; (define-extern entity-deactivate-handler object) ;; (function process entity-actor none) +;; (define-extern *listener-process* object) ;; process +;; (define-extern *null-process* object) ;; process +;; (define-extern *vis-boot* object) ;; basic +;; (define-extern *kernel-clock* object) +;; (define-extern *16k-dead-pool* object) ;; dead-pool +;; (define-extern *8k-dead-pool* object) ;; dead-pool +;; (define-extern *4k-dead-pool* object) ;; dead-pool +;; (define-extern *target-dead-pool* object) ;; dead-pool +;; (define-extern *camera-dead-pool* object) ;; dead-pool +;; (define-extern *camera-master-dead-pool* object) ;; dead-pool +;; (define-extern *debug-dead-pool* object) ;; dead-pool-heap +;; (define-extern *nk-dead-pool* object) ;; dead-pool-heap +;; (define-extern *default-dead-pool* object) ;; dead-pool +;; (define-extern *pickup-dead-pool* object) ;; dead-pool +;; (define-extern *city-dead-pool* object) +;; (define-extern *dead-pool-list* object) ;; pair +;; (define-extern *active-pool* object) ;; process-tree +;; (define-extern *display-pool* object) ;; process-tree +;; (define-extern *camera-pool* object) ;; process-tree +;; (define-extern *target-pool* object) ;; process-tree +;; (define-extern *entity-pool* object) ;; process-tree +;; (define-extern *mid-pool* object) +;; (define-extern *pusher-pool* object) +;; (define-extern *bg-pool* object) +;; (define-extern *default-pool* object) ;; process-tree + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 object) ;; (function object object object object none) +;; (define-extern kernel-copy-to-kernel-ram object) ;; (function none) +;; (define-extern kernel-write-function object) ;; (function object object object none) +;; (define-extern kernel-write object) ;; (function none) +;; (define-extern kernel-read-function object) ;; (function object object none) +;; (define-extern kernel-read object) ;; (function none) +;; (define-extern kernel-check-hardwired-addresses object) ;; (function none) +;; (define-extern install-default-debug-handler object) ;; (function object none) +;; (define-extern return-from-exception object) ;; (function object none) +;; (define-extern kernel-set-exception-vector object) ;; (function none) +;; (define-extern kernel-set-interrupt-vector object) ;; (function none) +;; (define-extern kernel-set-level2-vector object) ;; (function none) +;; (define-extern deinstall-debug-handler object) ;; (function none) +;; (define-extern deinstall-debug-handlers object) ;; (function none) +;; (define-extern resend-exception object) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gstring ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern copy-string<-string object) ;; (function string string string) +;; (define-extern string= object) ;; (function string string symbol) +;; (define-extern string-prefix= object) +;; (define-extern charp-prefix= object) +;; (define-extern string-suffix= object) +;; (define-extern string-position object) +;; (define-extern string-charp= object) ;; (function string (pointer uint8) symbol) +;; (define-extern name= object) ;; (function basic basic symbol) +;; (define-extern copyn-string<-charp object) ;; (function string (pointer uint8) int string) +;; (define-extern string<-charp object) ;; (function string (pointer uint8) string) +;; (define-extern charp<-string object) ;; (function (pointer uint8) string int) +;; (define-extern copyn-charp<-string object) +;; (define-extern copy-charp<-charp object) ;; (function (pointer uint8) (pointer uint8) (pointer uint8)) +;; (define-extern cat-string<-string object) ;; (function string string string) +;; (define-extern catn-string<-charp object) ;; (function string (pointer uint8) int string) +;; (define-extern cat-string<-string_to_charp object) ;; (function string string (pointer uint8) (pointer uint8)) +;; (define-extern append-character-to-string object) ;; (function string uint8 int) +;; (define-extern charp-basename object) ;; (function (pointer uint8) (pointer uint8)) +;; (define-extern clear object) ;; (function string string) +;; (define-extern string? object) ;; (function string string symbol) +;; (define-extern string<=? object) ;; (function string string symbol) +;; (define-extern string>=? object) ;; (function string string symbol) +;; (define-extern *string-tmp-str* object) ;; string +;; (define-extern string-skip-to-char object) ;; (function (pointer uint8) uint (pointer uint8)) +;; (define-extern string-cat-to-last-char object) ;; (function string string uint (pointer uint8)) +;; (define-extern string-skip-whitespace object) ;; (function (pointer uint8) (pointer uint8)) +;; (define-extern string-suck-up! object) ;; (function string (pointer uint8) symbol) +;; (define-extern string-strip-leading-whitespace! object) ;; (function string symbol) +;; (define-extern string-strip-trailing-whitespace! object) ;; (function string symbol) +;; (define-extern string-strip-whitespace! object) ;; (function string symbol) +;; (define-extern string-upcase object) +;; (define-extern string-get-arg!! object) ;; (function string string symbol) +;; (define-extern string->int object) ;; (function string int) +;; (define-extern string->float object) ;; (function string float) +;; (define-extern string-get-int32!! object) ;; (function (pointer int32) string symbol) +;; (define-extern string-get-float!! object) ;; (function (pointer float) string symbol) +;; (define-extern string-get-flag!! object) ;; (function (pointer symbol) string string string symbol) +;; (define-extern *debug-draw-pauseable* object) ;; symbol +;; (define-extern *stdcon0* object) ;; string +;; (define-extern *stdcon1* object) ;; string +;; (define-extern *stdcon* object) ;; string +;; (define-extern *temp-string* object) ;; string + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dgo-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(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 object) ;; (function state state state) +;; (define-extern enter-state object) ;; (function object object object object object object object) +;; (define-extern *event-queue* object) +;; (define-extern send-event-function object) ;; (function process-tree event-message-block object) +(define-extern looping-code (function symbol)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; types-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vu1-macros ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; math ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype random-generator (basic) + ((seed uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern truncate object) ;; (function float float) +;; (define-extern floor object) +;; (define-extern ceil object) +;; (define-extern integral? object) ;; (function float symbol) +;; (define-extern fractional-part object) ;; (function float float) +;; (define-extern sawtooth-wave object) +;; (define-extern triangle-wave object) +;; (define-extern log-x-plus-1-order9 object) +;; (define-extern logf object) +;; (define-extern log2f object) +;; (define-extern exp-slead object) ;; (pointer float) +;; (define-extern exp-strail object) ;; (pointer float) +;; (define-extern exp object) ;; (function float float) +;; (define-extern pow object) +;; (define-extern print-exp object) +;; (define-extern print-time object) +;; (define-extern log2 object) ;; (function int int) +;; (define-extern seek object) ;; (function float float float float) +;; (define-extern seek-ease object) +;; (define-extern seek-ease-in-out object) +;; (define-extern lerp object) ;; (function float float float float) +;; (define-extern lerp-scale-old object) +;; (define-extern lerp-scale object) ;; (function float float float float float float) +;; (define-extern lerp-clamp object) ;; (function float float float float) +;; (define-extern seekl object) ;; (function int int int int) +;; (define-extern rand-vu-init object) ;; (function float float) +;; (define-extern rand-vu object) ;; (function float) +;; (define-extern rand-vu-nostep object) ;; (function float) +;; (define-extern rand-vu-float-range object) ;; (function float float float) +;; (define-extern rand-vu-percent? object) ;; (function float symbol) +;; (define-extern rand-vu-int-range object) ;; (function int int int) +;; (define-extern rand-vu-int-count object) ;; (function int int) +;; (define-extern rand-vu-int-count-excluding object) +;; (define-extern rand-vu-int-range-exclude object) +;; (define-extern *random-generator* object) ;; random-generator +;; (define-extern rand-uint31-gen object) ;; (function random-generator uint) +;; (define-extern cube-root object) +;; (define-extern int-noise object) +;; (define-extern smooth-step object) +;; (define-extern smooth-interp object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vector-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vector (structure) + () + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ;; Failed to read fields. + ) +|# + +#| +(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 int) _type_ 0) + (dummy-9 () none 9) ;; (get-bit (_type_ int) symbol 9) + (dummy-10 () none 10) ;; (clear-bit (_type_ int) int 10) + (dummy-11 () none 11) ;; (set-bit (_type_ int) int 11) + (dummy-12 () none 12) ;; (clear-all! (_type_) _type_ 12) + ) + ) +|# + +#| +(deftype vector16ub (structure) + ((data UNKNOWN 16 :offset-assert 0) + (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 UNKNOWN 2 :offset-assert 0) + (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 UNKNOWN 2 :offset-assert 0) + (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 UNKNOWN 3 :offset-assert 0) + (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 uint32 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 UNKNOWN 2 :offset-assert 0) + (x float :offset-assert 0) + (y float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype vector3 (structure) + ((data UNKNOWN 3 :offset-assert 0) + (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 UNKNOWN 4 :offset-assert 0) + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + (w float :offset-assert 12) + (dword UNKNOWN 2 :offset-assert 0) + (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 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) + ((data vector :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype rgbaf (vector) + ((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) + (quad uint128 :offset-assert 0) + (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) + ((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) + (quad uint128 :offset-assert 0) + (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) + ((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) + (quad uint128 :offset-assert 0) + (r float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :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) + ((data box8s :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype cylinder (structure) + ((origin vector :inline :offset-assert 0) + (axis vector :inline :offset-assert 16) + (radius float :offset-assert 32) + (length float :offset-assert 36) + ) + :method-count-assert 11 + :size-assert #x28 + :flag-assert #xb00000028 + (:methods + (dummy-9 () none 9) ;; (debug-draw (_type_ vector4w) none 9) + (dummy-10 () none 10) ;; (ray-capsule-intersect (_type_ vector vector) float 10) + ) + ) +|# + +#| +(deftype cylinder-flat (structure) + ((origin vector :inline :offset-assert 0) + (axis vector :inline :offset-assert 16) + (radius float :offset-assert 32) + (length float :offset-assert 36) + ) + :method-count-assert 11 + :size-assert #x28 + :flag-assert #xb00000028 + (:methods + (dummy-9 () none 9) ;; (debug-draw (_type_ vector4w) none 9) + (dummy-10 () none 10) ;; (ray-flat-cyl-intersect (_type_ vector vector) float 10) + ) + ) +|# + +#| +(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 + ) +|# + +;; (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 object) ;; (function vector vector float) +;; (define-extern vector-dot-vu object) ;; (function vector vector float) +;; (define-extern vector4-dot object) ;; (function vector vector float) +;; (define-extern vector4-dot-vu object) ;; (function vector vector float) +;; (define-extern vector+! object) ;; (function vector vector vector vector) +;; (define-extern vector-! object) ;; (function vector vector vector vector) +;; (define-extern vector-zero! object) ;; (function vector vector) +;; (define-extern vector-reset! object) ;; (function vector vector) +;; (define-extern vector-copy! object) ;; (function vector vector vector) +;; (define-extern vector-length< object) +;; (define-extern vector-length> object) +;; (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 21 + :size-assert #x20 + :flag-assert #x1500000020 + (:methods + (dummy-9 () none 9) ;; (add-spheres! (_type_ (inline-array sphere) int) int 9) + (dummy-10 () none 10) ;; (add-point! (_type_ vector3s) int 10) + (dummy-11 () none 11) ;; (set-from-point-offset! (_type_ vector3s vector3s) int 11) + (dummy-12 () none 12) ;; (set-from-point-offset-pad! (_type_ vector3s vector3s float) int 12) + (dummy-13 () none 13) ;; (set-from-sphere! (_type_ sphere) int 13) + (dummy-14 () none 14) ;; (set-from-spheres! (_type_ (inline-array sphere) int) int 14) + (dummy-15 () none 15) ;; (add-box! (_type_ bounding-box) int 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + ) + ) +|# + +#| +(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) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + (trans vector :inline :offset-assert 48) + ) + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + (:methods + (dummy-9 () none 9) ;; (transform-vectors! (_type_ (inline-array vector) (inline-array vector) int) none 9) + ) + ) +|# + +#| +(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! object) ;; (function matrix matrix 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) + ((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) + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern EulSafe object) ;; (array int32) +;; (define-extern EulNext object) ;; (array int32) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; transform-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype transform (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 trs (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 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 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 + (dummy-9 () none 9) ;; (debug-draw! (_type_) none 9) + (dummy-10 () none 10) ;; (point-past-plane? (_type_ vector) symbol 10) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trigonometry-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; transformq-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype transformq (transform) + ((quat quaternion :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype trsq (trs) + ((quat quaternion :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(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 + (dummy-9 () none 9) ;; (seek-toward-heading-vec! (_type_ vector float time-frame) quaternion 9) + (dummy-10 () none 10) ;; (set-heading-vec! (_type_ vector) quaternion 10) + (dummy-11 () none 11) ;; (seek-to-point-toward-point! (_type_ vector float time-frame) quaternion 11) + (dummy-12 () none 12) ;; (point-toward-point! (_type_ vector) quaternion 12) + (dummy-13 () none 13) ;; (seek-toward-yaw-angle! (_type_ float float time-frame) quaternion 13) + (dummy-14 () none 14) ;; (set-yaw-angle-clear-roll-pitch! (_type_ float) quaternion 14) + (dummy-15 () none 15) ;; (set-roll-to-grav! (_type_ float) quaternion 15) + (dummy-16 () none 16) ;; (set-roll-to-grav-2! (_type_ float) quaternion 16) + (dummy-17 () none 17) ;; (rotate-toward-orientation! (_type_ quaternion float float) quaternion 17) + (dummy-18 () none 18) ;; (set-quaternion! (_type_ quaternion) quaternion 18) + (dummy-19 () none 19) ;; (set-heading-vec-clear-roll-pitch! (_type_ vector) quaternion 19) + (dummy-20 () none 20) ;; (point-toward-point-clear-roll-pitch! (_type_ vector) quaternion 20) + (dummy-21 () none 21) ;; (rot->dir-targ! (_type_) quaternion 21) + (dummy-22 () none 22) ;; (y-angle (_type_) float 22) + (dummy-23 () none 23) ;; (global-y-angle-to-point (_type_ vector) float 23) + (dummy-24 () none 24) ;; (relative-y-angle-to-point (_type_ vector) float 24) + (dummy-25 () none 25) ;; (roll-relative-to-gravity (_type_) float 25) + (dummy-26 () none 26) ;; (set-and-limit-velocity (_type_ int vector float) trsqv 26) + (dummy-27 () none 27) ;; (get-quaternion (_type_) quaternion 27) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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? object) ;; (function bounding-box vector symbol) +;; (define-extern box-vector-inside? object) ;; (function bounding-box vector symbol) +;; (define-extern liang-barsky-line-clipt object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; matrix ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype matrix (structure) + () + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) ;; (transform-vectors! (_type_ (inline-array vector) (inline-array vector) int) none 9) + ) + ) +|# + +#| +(deftype matrix3 (structure) + () + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ;; Failed to read fields. + ) +|# + +;; (define-extern matrix-identity! object) ;; (function matrix matrix) +;; (define-extern *identity-matrix* object) ;; matrix +;; (define-extern *hermite-matrix* object) +;; (define-extern matrix+! object) ;; (function matrix matrix matrix matrix) +;; (define-extern matrix-! object) ;; (function matrix matrix matrix matrix) +;; (define-extern matrix*! object) ;; (function matrix matrix matrix matrix) +;; (define-extern matrixp*! object) ;; (function matrix matrix matrix matrix) +;; (define-extern vector-matrix*! object) ;; (function vector vector matrix vector) +;; (define-extern vector-rotate*! object) ;; (function vector vector matrix vector) +;; (define-extern vector3s-matrix*! object) ;; (function vector3s vector3s matrix vector3s) +;; (define-extern vector3s-rotate*! object) ;; (function vector3s vector3s matrix vector3s) +;; (define-extern matrix-transpose! object) ;; (function matrix matrix matrix) +;; (define-extern matrix-inverse-of-rot-trans! object) ;; (function matrix matrix matrix) +;; (define-extern matrix-4x4-inverse! object) ;; (function matrix matrix matrix) +;; (define-extern matrix-translate! object) ;; (function matrix vector matrix) +;; (define-extern matrix-translate+! object) ;; (function matrix matrix vector matrix) +;; (define-extern matrix-scale! object) ;; (function matrix vector matrix) +;; (define-extern scale-matrix! object) ;; (function matrix vector matrix matrix) +;; (define-extern matrix-inv-scale! object) ;; (function matrix vector matrix) +;; (define-extern column-scale-matrix! object) ;; (function matrix vector matrix matrix) +;; (define-extern matrix-rotate-x! object) ;; (function matrix float matrix) +;; (define-extern matrix-rotate-y! object) ;; (function matrix float matrix) +;; (define-extern matrix-rotate-z! object) ;; (function matrix float matrix) +;; (define-extern matrix-rotate-zyx! object) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-xyz-2! object) +;; (define-extern matrix-rotate-xyz! object) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-zxy! object) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-yxz! object) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-yzx! object) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-yxy! object) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-yx! object) ;; (function matrix float float matrix) +;; (define-extern matrix-axis-sin-cos-vu! object) ;; (function matrix vector float float none) +;; (define-extern matrix-axis-sin-cos! object) ;; (function matrix vector float float matrix) +;; (define-extern matrix-axis-angle! object) ;; (function matrix vector float none) +;; (define-extern matrix-lerp! object) ;; (function matrix matrix matrix float matrix) +;; (define-extern matrix-3x3-determinant object) ;; (function matrix float) +;; (define-extern matrix3-determinant object) ;; (function matrix float) +;; (define-extern matrix-3x3-inverse! object) ;; (function matrix matrix matrix) +;; (define-extern matrix-3x3-inverse-transpose! object) ;; (function matrix matrix matrix) +;; (define-extern matrix3-inverse-transpose! object) ;; (function matrix matrix matrix) +;; (define-extern matrix-3x3-normalize! object) +;; (define-extern matrix-4x4-determinant object) ;; (function matrix float) +;; (define-extern matrix-4x4-inverse-transpose! object) ;; (function matrix matrix matrix) +;; (define-extern matrix-y-angle object) ;; (function matrix float) +;; (define-extern matrix->trans object) +;; (define-extern matrix<-trans object) +;; (define-extern matrix->scale object) +;; (define-extern matrix<-scale object) +;; (define-extern matrix->quat object) +;; (define-extern matrix<-quat object) +;; (define-extern matrix->transformq object) +;; (define-extern matrix-mirror! object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; transform ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern transform-matrix-calc! object) ;; (function transform matrix matrix) +;; (define-extern transform-matrix-parent-calc! object) ;; (function transform matrix vector matrix) +;; (define-extern trs-matrix-calc! object) ;; (function trs matrix matrix) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; quaternion ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype quaternion (structure) + () + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ;; Failed to read fields. + ) +|# + +;; (define-extern quaternion-axis-angle! object) ;; (function quaternion float float float float quaternion) +;; (define-extern quaternion-vector-angle! object) ;; (function quaternion vector float quaternion) +;; (define-extern vector-angle<-quaternion! object) ;; (function vector quaternion vector) +;; (define-extern quaternion-look-at! object) +;; (define-extern quaternion-zero! object) ;; (function quaternion quaternion) +;; (define-extern quaternion-identity! object) ;; (function quaternion quaternion) +;; (define-extern quaternion-i! object) ;; (function quaternion quaternion) +;; (define-extern quaternion-j! object) ;; (function quaternion quaternion) +;; (define-extern quaternion-k! object) ;; (function quaternion quaternion) +;; (define-extern quaternion-copy! object) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-set! object) ;; (function quaternion float float float float quaternion) +;; (define-extern quaternion+! object) ;; (function quaternion quaternion quaternion quaternion) +;; (define-extern quaternion-! object) ;; (function quaternion quaternion quaternion quaternion) +;; (define-extern quaternion-negate! object) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-conjugate! object) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-float*! object) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-float/! object) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-norm2 object) ;; (function quaternion float) +;; (define-extern quaternion-norm object) ;; (function quaternion float) +;; (define-extern quaternion-normalize! object) ;; (function quaternion quaternion) +;; (define-extern quaternion-inverse! object) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-dot object) ;; (function quaternion quaternion float) +;; (define-extern quaternion*! object) ;; (function quaternion quaternion quaternion quaternion) +;; (define-extern quaternion-right-mult-matrix! object) ;; (function matrix quaternion matrix) +;; (define-extern quaternion-left-mult-matrix! object) ;; (function matrix quaternion matrix) +;; (define-extern quaternion->matrix object) ;; (function matrix quaternion matrix) +;; (define-extern quaternion->matrix-2 object) +;; (define-extern matrix->quaternion object) ;; (function quaternion matrix quaternion) +;; (define-extern matrix-with-scale->quaternion object) ;; (function quaternion matrix quaternion) +;; (define-extern quaternion-vector-len object) ;; (function quaternion float) +;; (define-extern quaternion-log! object) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-exp! object) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-slerp! object) ;; (function quaternion quaternion quaternion float quaternion) +;; (define-extern quaternion-pseudo-slerp! object) ;; (function quaternion quaternion quaternion float quaternion) +;; (define-extern quaternion-pseudo-seek object) +;; (define-extern quaternion-smooth-seek! object) +;; (define-extern quaternion-zxy! object) ;; (function quaternion vector quaternion) +;; (define-extern vector-x-quaternion! object) ;; (function vector quaternion vector) +;; (define-extern vector-y-quaternion! object) ;; (function vector quaternion vector) +;; (define-extern vector-z-quaternion! object) ;; (function vector quaternion vector) +;; (define-extern quaternion-x-angle object) +;; (define-extern quaternion-y-angle object) ;; (function quaternion float) +;; (define-extern quaternion-z-angle object) +;; (define-extern quaternion-vector-y-angle object) ;; (function quaternion vector float) +;; (define-extern quaternion-rotate-local-x! object) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-local-y! object) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-local-z! object) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-y! object) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-x! object) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-z! object) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-delta-y object) ;; (function quaternion quaternion float) +;; (define-extern quaternion-rotate-y-to-vector! object) ;; (function quaternion quaternion quaternion float quaternion) +;; (define-extern vector-rotate-x! object) +;; (define-extern vector-rotate-y! object) ;; (function vector vector float vector) +;; (define-extern vector-rotate-z! object) +;; (define-extern vector-y-angle object) ;; (function vector float) +;; (define-extern vector-x-angle object) ;; (function vector float) +;; (define-extern quaternion<-rotate-y-vector object) +;; (define-extern quaternion-validate object) ;; (function quaternion none) +;; (define-extern quaternion-xz-angle object) ;; (function quaternion float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; euler ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern set-eul! object) ;; (function euler-angles float float float int euler-angles) +;; (define-extern eul->matrix object) ;; (function matrix euler-angles matrix) +;; (define-extern matrix->eul object) ;; (function euler-angles matrix int euler-angles) +;; (define-extern eul->quat object) ;; (function quaternion euler-angles quaternion) +;; (define-extern quat->eul object) ;; (function euler-angles quaternion int euler-angles) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trigonometry ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern radmod object) ;; (function float float) +;; (define-extern deg- object) ;; (function float float float) +;; (define-extern deg-diff object) ;; (function float float float) +;; (define-extern deg-seek object) ;; (function float float float float) +;; (define-extern deg-seek-smooth object) ;; (function float float float float float) +;; (define-extern deg-lerp-clamp object) ;; (function float float float float) +;; (define-extern binary-table object) ;; (array float) +;; (define-extern sincos-table object) ;; (array float) +;; (define-extern sin object) ;; (function float float) +;; (define-extern sin-rad object) ;; (function float float) +;; (define-extern *sin-poly-vec* object) ;; vector +;; (define-extern *sin-poly-vec2* object) ;; vector +;; (define-extern vector-sin-rad! object) ;; (function vector vector vector) +;; (define-extern cos-rad object) ;; (function float float) +;; (define-extern *cos-poly-vec* object) ;; vector +;; (define-extern vector-cos-rad! object) ;; (function vector vector vector) +;; (define-extern vector-sincos-rad! object) ;; (function vector vector vector int) +;; (define-extern sincos-rad! object) ;; (function (pointer float) float int) +;; (define-extern sincos! object) ;; (function (pointer float) float int) +;; (define-extern vector-rad<-vector-deg! object) ;; (function vector vector none) +;; (define-extern vector-rad<-vector-deg/2! object) ;; (function vector vector int) +;; (define-extern vector-sincos! object) ;; (function vector vector vector int) +;; (define-extern tan-rad object) ;; (function float float) +;; (define-extern cos object) ;; (function float float) +;; (define-extern tan object) ;; (function float float) +;; (define-extern atan0 object) ;; (function float float float) +;; (define-extern atan-series-rad object) ;; (function float float) +;; (define-extern atan-rad object) ;; (function float float) +;; (define-extern sign-bit object) ;; (function int int) +;; (define-extern sign-float object) +;; (define-extern sign object) ;; (function float float) +;; (define-extern atan2-rad object) ;; (function float float float) +;; (define-extern atan object) ;; (function float float float) +;; (define-extern asin object) ;; (function float float) +;; (define-extern acos object) ;; (function float float) +;; (define-extern acos-rad object) ;; (function float float) +;; (define-extern sinerp object) ;; (function float float float float) +;; (define-extern sinerp-clamp object) ;; (function float float float float) +;; (define-extern coserp object) ;; (function float float float float) +;; (define-extern coserp-clamp object) ;; (function float float float float) +;; (define-extern coserp180 object) ;; (function float float float float) +;; (define-extern coserp180-clamp object) ;; (function float float float float) +;; (define-extern ease-in-out object) ;; (function int int float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gsound-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sound-stream-name (structure) + ((name UNKNOWN 48 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(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 uint16 :offset-assert 0) + (pitch-mod int16 :offset-assert 2) + (bend int16 :offset-assert 4) + (fo-min int16 :offset-assert 6) + (fo-max int16 :offset-assert 8) + (fo-curve int8 :offset-assert 10) + (priority int8 :offset-assert 11) + (volume int32 :offset-assert 12) + (trans UNKNOWN 3 :offset-assert 16) + (group uint8 :offset-assert 28) + (reg UNKNOWN 3 :offset-assert 29) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(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 uint32 :offset-assert 4) + (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 uint8 :offset-assert 4) ;; sound-group + ) + :method-count-assert 9 + :size-assert #x5 + :flag-assert #x900000005 + ) +|# + +#| +(deftype sound-rpc-load-bank (sound-rpc-bank-cmd) + ((ee-addr uint32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(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-bank-cmd) + () + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(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 #x40 + :flag-assert #x900000040 + ) +|# + +#| +(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 8) + (auto-time int32 :offset-assert 40) + (auto-from int32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(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 #x5 + :flag-assert #x900000005 + ) +|# + +#| +(deftype sound-rpc-stop-group (sound-rpc-group-cmd) + () + :method-count-assert 9 + :size-assert #x5 + :flag-assert #x900000005 + ) +|# + +#| +(deftype sound-rpc-continue-group (sound-rpc-group-cmd) + () + :method-count-assert 9 + :size-assert #x5 + :flag-assert #x900000005 + ) +|# + +#| +(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 UNKNOWN 3 :offset-assert 4) + (ear-trans0 UNKNOWN 3 :offset-assert 16) + (cam-trans vector3w 3 :offset-assert 28) ;; guessed by decompiler + (cam-angle int32 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype sound-rpc-set-flava (sound-rpc-cmd) + ((flava uint8 :offset-assert 4) + (excitement uint8 :offset-assert 5) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype sound-rpc-set-midi-reg (sound-rpc-cmd) + ((reg int32 :offset-assert 4) + (value int16 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xa + :flag-assert #x90000000a + ) +|# + +#| +(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-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 20 :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-ear-trans sound-rpc-set-ear-trans :offset-assert 0) + (set-flava sound-rpc-set-flava :offset-assert 0) + (set-midi-reg sound-rpc-set-midi-reg :offset-assert 0) + (set-fps sound-rpc-set-fps :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 #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype sound-spec (basic) + ((mask uint16 :offset-assert 4) ;; sound-mask + (num float :offset-assert 8) + (group uint8 :offset-assert 12) ;; sound-group + (reg UNKNOWN 3 :offset-assert 13) + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ;; Failed to read some fields. + ) +|# + +#| +(deftype ambient-sound (basic) + ((spec sound-spec :offset-assert 4) ;; guessed by decompiler + (playing-id sound-id :offset-assert 8) ;; guessed by decompiler + (trans vector :inline :offset-assert 16) + (name uint128 :offset-assert 32) ;; sound-name + (play-time uint64 :offset-assert 48) ;; time-frame + (time-base uint64 :offset-assert 56) ;; time-frame + (time-random uint64 :offset-assert 64) ;; time-frame + (volume int32 :offset-assert 72) + (pitch int32 :offset-assert 76) + (falloff-near int32 :offset-assert 80) + (falloff-far int32 :offset-assert 84) + (falloff-mode int32 :offset-assert 88) + (params (pointer float) :offset-assert 92) ;; guessed by decompiler + (param-count int32 :offset-assert 96) + (entity entity :offset-assert 100) ;; guessed by decompiler + (sound-count int32 :offset-assert 104) + ) + :method-count-assert 16 + :size-assert #x6c + :flag-assert #x100000006c + (:methods + ;; (new (symbol type basic vector) _type_ 0) + (dummy-9 () none 9) ;; (update! (_type_) int 9) + (dummy-10 () none 10) ;; (change-sound! (_type_ sound-name) int 10) + (dummy-11 () none 11) ;; (update-trans! (_type_ vector) int 11) + (dummy-12 () none 12) ;; (update-vol! (_type_ int) int 12) + (dummy-13 () none 13) ;; (stop! (_type_) int 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + ) + ) +|# + +;; (define-extern *current-sound-id* object) ;; sound-id + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; timer-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(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 + ) +|# + +;; (define-extern *ticks-per-frame* object) ;; int +;; (define-extern timer-init object) ;; (function timer-bank timer-mode int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vif-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vif-stat (uint32) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ;; Failed to read some fields. + ) +|# + +#| +(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) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ;; Failed to read some fields. + ) +|# + +#| +(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-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 dma-tag (uint64) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ;; Failed to read some fields. + ) +|# + +#| +(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-tag (uint32) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ;; Failed to read some fields. + ) +|# + +;; (define-extern dma-sync-fast object) ;; (function dma-bank none) +;; (define-extern dma-send-no-scratch object) ;; (function dma-bank uint32 uint32 none) +;; (define-extern dma-sync-with-count object) ;; (function dma-bank (pointer int32) int) +;; (define-extern dma-count-until-done object) ;; (function dma-bank (pointer int32) int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; video-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype video-params (structure) + ((set-video-mode basic :offset-assert 0) + (reset-video-mode basic :offset-assert 4) + (display-fbp int32 :offset-assert 8) + (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) + (screen-pages-high int32 :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +;; (define-extern *video-params* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vu1-user-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dma-foreground-sink (basic) + ((bucket int32 :offset-assert 4) ;; bucket-id + (foreground-texture-page int8 :offset-assert 8) + (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 basic :offset-assert 0) + (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 uint32 :offset-assert 12) + (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 UNKNOWN 48 :offset-assert 4) + ) + :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 UNKNOWN 9 :offset-assert 12) + (data UNKNOWN 512 :offset-assert 48) + ) + :method-count-assert 13 + :size-assert #x2030 + :flag-assert #xd00002030 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + ) + ) +|# + +#| +(deftype profile-array (structure) + ((data UNKNOWN 2 :offset-assert 0) + ) + :method-count-assert 12 + :size-assert #x8 + :flag-assert #xc00000008 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + ) + ) +|# + +;; (define-extern *profile-gap-color* object) +;; (define-extern *profile-all-color* object) +;; (define-extern *profile-particles-color* object) +;; (define-extern *profile-target-color* object) +;; (define-extern *profile-target-post-color* object) +;; (define-extern *profile-joints-color* object) +;; (define-extern *profile-debug-color* object) +;; (define-extern *profile-draw-hook-color* object) +;; (define-extern *profile-sky-color* object) +;; (define-extern *profile-ocean-color* object) +;; (define-extern *profile-background-color* object) +;; (define-extern *profile-bsp-color* object) +;; (define-extern *profile-foreground-color* object) +;; (define-extern *profile-tfrag-color* object) +;; (define-extern *profile-instance-tie-color* object) +;; (define-extern *profile-instance-shrubbery-color* object) +;; (define-extern *profile-generic-tie-color* object) +;; (define-extern *profile-bones-color* object) +;; (define-extern *profile-generic-merc-color* object) +;; (define-extern *profile-shadow-color* object) +;; (define-extern *profile-update-actors-color* object) +;; (define-extern *profile-menu-hook-color* object) +;; (define-extern *profile-texture-color* object) +;; (define-extern *profile-effects-color* object) +;; (define-extern *profile-sprite-color* object) +;; (define-extern *profile-merc-color* object) +;; (define-extern *profile-actors-color* object) +;; (define-extern *profile-collide-color* object) +;; (define-extern *profile-nav-color* object) +;; (define-extern *profile-camera-color* object) +;; (define-extern *profile-blit-color* object) +;; (define-extern *profile-hud-color* object) +;; (define-extern *profile-emerc-color* object) +;; (define-extern *profile-array* object) +;; (define-extern *profile-collapse* object) +;; (define-extern *profile-interrupt-segment* object) +;; (define-extern *profile-interrupt-start* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dma ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern dma-sync-hang object) ;; (function dma-bank none) +;; (define-extern dma-sync-crash object) ;; (function dma-bank none) +;; (define-extern dma-send object) ;; (function dma-bank uint uint none) +;; (define-extern dma-send-chain object) ;; (function dma-bank-source uint none) +;; (define-extern dma-send-chain-no-tte object) ;; (function dma-bank-source uint none) +;; (define-extern dma-send-chain-no-flush object) ;; (function dma-bank-source uint none) +;; (define-extern dma-send-to-spr object) ;; (function uint uint uint symbol none) +;; (define-extern dma-send-to-spr-no-flush object) ;; (function uint uint uint symbol none) +;; (define-extern dma-send-from-spr object) ;; (function uint uint uint symbol none) +;; (define-extern dma-send-from-spr-no-flush object) ;; (function uint uint uint symbol none) +;; (define-extern dma-initialize object) ;; (function none) +;; (define-extern clear-vu0-mem object) ;; (function none) +;; (define-extern clear-vu1-mem object) ;; (function none) +;; (define-extern dump-vu1-mem object) ;; (function none) +;; (define-extern dump-vu1-range object) ;; (function uint uint symbol) +;; (define-extern reset-vif1-path object) ;; (function none) +;; (define-extern ultimate-memcpy object) ;; (function pointer pointer uint none) +;; (define-extern symlink2 object) ;; (function none) +;; (define-extern symlink3 object) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype dma-gif (structure) + ((gif UNKNOWN 2 :offset-assert 0) + (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 + (data uint64 1 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern dma-buffer-inplace-new object) ;; (function dma-buffer int dma-buffer) +;; (define-extern dma-buffer-length object) ;; (function dma-buffer int) +;; (define-extern dma-buffer-free object) ;; (function dma-buffer int) +;; (define-extern dma-buffer-add-vu-function object) ;; (function dma-buffer vu-function int symbol) +;; (define-extern dma-buffer-send object) ;; (function dma-bank dma-buffer none) +;; (define-extern dma-buffer-send-chain object) ;; (function dma-bank-source dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dma-bucket ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern dma-buffer-add-buckets object) ;; (function dma-buffer int (inline-array dma-bucket)) +;; (define-extern dma-buffer-patch-buckets object) ;; (function (inline-array dma-bucket) int (inline-array dma-bucket)) +;; (define-extern dma-bucket-insert-tag object) ;; (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* object) ;; (array vif-disasm-element) +;; (define-extern disasm-vif-details object) ;; (function symbol (pointer uint8) vif-cmd int symbol) +;; (define-extern disasm-vif-tag object) ;; (function (pointer vif-tag) int symbol symbol int) +;; (define-extern disasm-dma-tag object) ;; (function dma-tag symbol none) +;; (define-extern *dma-disasm* object) ;; symbol +;; (define-extern disasm-dma-list object) ;; (function dma-packet symbol symbol symbol int symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 UNKNOWN 1 :offset-assert 102) + (buzz-pause-time uint8 :offset-assert 103) + (buzz-time time-frame 2 :offset-assert 104) ;; guessed by decompiler + (buzz basic :offset-assert 120) + (buzz-act int32 :offset-assert 124) + (change-time uint64 :offset-assert 128) ;; time-frame + (old-rightx UNKNOWN 2 :offset-assert 136) + (old-righty UNKNOWN 2 :offset-assert 138) + (old-leftx UNKNOWN 2 :offset-assert 140) + (old-lefty UNKNOWN 2 :offset-assert 142) + ) + :method-count-assert 10 + :size-assert #x90 + :flag-assert #xa00000090 + (:methods + ;; (new (symbol type int) _type_ 0) + (dummy-9 () none 9) + ) + ) +|# + +#| +(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) + () + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ;; Failed to read fields. + ) +|# + +;; (define-extern *cheat-mode* object) ;; symbol +;; (define-extern cpad-invalid! object) ;; (function cpad-info cpad-info) +;; (define-extern analog-input object) ;; (function int float float float float float) +;; (define-extern cpad-set-buzz! object) ;; (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 object) ;; (function cpad-list) +;; (define-extern buzz-stop! object) ;; (function int none) +;; (define-extern *mouse* object) +;; (define-extern service-mouse object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(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-adcmd (structure) + ((word UNKNOWN 4 :offset-assert 0) + (quad uint128 :offset-assert 0) + (data uint64 :offset-assert 0) + (cmds uint64 :offset-assert 8) + (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-alpha (uint64) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ;; Failed to read some fields. + ) +|# + +#| +(deftype gs-fog (uint64) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ;; Failed to read some fields. + ) +|# + +#| +(deftype gs-fogcol (uint64) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ;; Failed to read some fields. + ) +|# + +#| +(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 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-tag (uint128) + () + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ;; Failed to read fields. + ) +|# + +#| +(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) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ;; Failed to read some fields. + ) +|# + +#| +(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) + ((data int32 4 :offset-assert 0) ;; guessed by decompiler + (x float :offset-assert 0) ;; int32 + (y float :offset-assert 4) ;; int32 + (z float :offset-assert 8) ;; int32 + (w float :offset-assert 12) ;; int32 + (quad uint128 :offset-assert 0) + (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) + ((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) + (quad uint128 :offset-assert 0) + (tex-s float :offset-assert 0) + (tex-t float :offset-assert 4) + (tex-q float :offset-assert 8) + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gs-packed-uv (vector) + ((data UNKNOWN 4 :offset-assert 0) + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + (w float :offset-assert 12) + (quad uint128 :offset-assert 0) + (u int16 :offset-assert 0) + (v int16 :offset-assert 4) + (quad uint128 :offset-assert 0) + ) + :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 object) ;; (function gs-psm int) +;; (define-extern psm-page-height object) ;; (function gs-psm int) +;; (define-extern psm->string object) ;; (function gs-psm string) +;; (define-extern *fog-color* object) ;; rgba +;; (define-extern open-gif-packet object) ;; (function gif-packet gif-packet) +;; (define-extern add-reg-gif-packet object) ;; (function gif-packet int int none) +;; (define-extern close-gif-packet object) ;; (function gif-packet int gif-packet) +;; (define-extern draw-context-set-xy object) ;; (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) ;; int64 + ) + :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 virtual-frame 2 :offset-assert 12) ;; guessed by decompiler + (bgcolor uint64 :offset-assert 24) + (pmode uint64 :offset-assert 32) + (clock UNKNOWN 13 :offset-assert 40) + (session-clock basic :offset-assert 40) + (game-clock basic :offset-assert 44) + (base-clock basic :offset-assert 48) + (real-clock basic :offset-assert 52) + (frame-clock basic :offset-assert 56) + (real-frame-clock basic :offset-assert 60) + (target-clock basic :offset-assert 64) + (entity-clock basic :offset-assert 68) + (part-clock basic :offset-assert 72) + (bg-clock basic :offset-assert 76) + (camera-clock basic :offset-assert 80) + (user0-clock basic :offset-assert 84) + (total-game-clock basic :offset-assert 88) + (time-factor float :offset-assert 92) + (dog-ratio float :offset-assert 96) + (vblank-start-time UNKNOWN 2 :offset-assert 104) + (total-run-time uint64 :offset-assert 120) + (run-half-speed basic :offset-assert 128) + (dog-count float :offset-assert 132) + (vu1-enable-user uint64 :offset-assert 136) + (vu1-enable-user-menu uint64 :offset-assert 144) + (force-sync uint32 :offset-assert 152) + ) + :method-count-assert 10 + :size-assert #x9c + :flag-assert #xa0000009c + (:methods + ;; (new (symbol type int int int int int) _type_ 0) + (dummy-9 () none 9) ;; (set-time-ratios (_type_ float) float 9) + ) + ) +|# + +;; (define-extern *pre-draw-hook* object) ;; (function object none) +;; (define-extern *post-draw-hook* object) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; geometry ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern vector-flatten! object) ;; (function vector vector vector vector) +;; (define-extern vector-reflect! object) ;; (function vector vector vector vector) +;; (define-extern vector-reflect-flat! object) ;; (function vector vector vector vector) +;; (define-extern vector-reflect-flat-above! object) ;; (function vector vector vector vector) +;; (define-extern vector-reflect-flat-gravity! object) +;; (define-extern vector-segment-distance-point! object) ;; (function vector vector vector vector float) +;; (define-extern vector-line-distance object) ;; (function vector vector vector float) +;; (define-extern vector-line-distance-point! object) ;; (function vector vector vector vector float) +;; (define-extern vector-segment-overlap object) +;; (define-extern line-sphere-intersection? object) +;; (define-extern vector-orient-by-quat! object) ;; (function vector vector quaternion vector) +;; (define-extern vector-inv-orient-by-quat! object) +;; (define-extern forward-down->inv-matrix object) ;; (function matrix vector vector matrix) +;; (define-extern forward-down-nopitch->inv-matrix object) ;; (function matrix vector vector matrix) +;; (define-extern forward-up->inv-matrix object) +;; (define-extern forward-up-nopitch->inv-matrix object) ;; (function matrix vector vector matrix) +;; (define-extern forward-up-nopitch->quaternion object) ;; (function quaternion vector vector quaternion) +;; (define-extern forward-up->quaternion object) ;; (function quaternion vector vector quaternion) +;; (define-extern quaternion-from-two-vectors! object) ;; (function quaternion vector vector quaternion) +;; (define-extern quaternion-from-two-vectors-partial! object) +;; (define-extern quaternion-from-two-vectors-max-angle! object) ;; (function quaternion vector vector float quaternion) +;; (define-extern quaternion-from-two-vectors-max-angle-partial! object) +;; (define-extern matrix-from-two-vectors! object) ;; (function matrix vector vector matrix) +;; (define-extern matrix-from-two-vectors-max-angle! object) ;; (function matrix vector vector float matrix) +;; (define-extern matrix-from-two-vectors-smooth! object) +;; (define-extern matrix-from-two-vectors-the-long-way-smooth! object) +;; (define-extern quaternion-from-two-vectors-smooth! object) +;; (define-extern matrix-from-two-vectors-max-angle-partial! object) ;; (function matrix vector vector float float matrix) +;; (define-extern matrix-from-two-vectors-partial-linear! object) ;; (function matrix vector vector float matrix) +;; (define-extern matrix-remove-z-rot object) ;; (function matrix matrix matrix) +;; (define-extern matrix-rot-diff! object) ;; (function vector matrix matrix float) +;; (define-extern quaternion-seek object) ;; (function quaternion quaternion quaternion float float quaternion) +;; (define-extern vector-deg-seek object) ;; (function vector vector vector float vector) +;; (define-extern vector-deg-slerp object) ;; (function vector vector vector float vector) +;; (define-extern vector-vector-deg-slerp! object) ;; (function vector vector vector float vector vector) +;; (define-extern normal-of-plane object) ;; (function vector vector vector vector vector) +;; (define-extern vector-3pt-cross! object) ;; (function vector vector vector vector vector) +;; (define-extern closest-pt-in-triangle object) ;; (function vector vector matrix vector none) +;; (define-extern point-in-triangle-cross object) ;; (function vector vector vector vector vector symbol) +;; (define-extern point-in-plane-<-point+normal! object) ;; (function vector vector vector vector) +;; (define-extern circle-circle-xz-intersect object) ;; (function sphere sphere vector vector int) +;; (define-extern circle-test object) ;; (function none) +;; (define-extern vector-circle-tangent-new object) ;; (function vector vector vector vector none) +;; (define-extern vector-circle-tangent object) ;; (function vector vector vector vector none) +;; (define-extern find-knot-span object) ;; (function int int float (inline-array vector) int) +;; (define-extern calculate-basis-functions-vector! object) ;; (function vector int float (pointer float) vector) +;; (define-extern curve-evaluate! object) ;; (function vector float (inline-array vector) int (pointer float) int vector) +;; (define-extern curve-get-pos! object) ;; (function vector float curve vector) +;; (define-extern curve-length object) ;; (function curve float) +;; (define-extern curve-copy! object) ;; (function curve curve curve) +;; (define-extern curve-closest-point object) ;; (function curve vector float float int float float) +;; (define-extern vector-plane-distance object) ;; (function vector plane vector float) +;; (define-extern intersect-ray-plane object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; timer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern timer-count object) ;; (function timer-bank uint) +;; (define-extern disable-irq object) ;; (function none) +;; (define-extern enable-irq object) ;; (function none) +;; (define-extern stopwatch-init object) ;; (function stopwatch int) +;; (define-extern stopwatch-reset object) ;; (function stopwatch int) +;; (define-extern stopwatch-start object) ;; (function stopwatch int) +;; (define-extern stopwatch-stop object) ;; (function stopwatch none) +;; (define-extern stopwatch-begin object) ;; (function stopwatch int) +;; (define-extern stopwatch-end object) ;; (function stopwatch none) +;; (define-extern stopwatch-elapsed-ticks object) ;; (function stopwatch time-frame) +;; (define-extern stopwatch-elapsed-seconds object) ;; (function stopwatch float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vector ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern vector-cross! object) ;; (function vector vector vector vector) +;; (define-extern vector-xz-cross! object) +;; (define-extern vector+float! object) ;; (function vector vector float vector) +;; (define-extern vector*! object) ;; (function vector vector vector vector) +;; (define-extern vector+*! object) ;; (function vector vector vector float vector) +;; (define-extern vector-*! object) ;; (function vector vector vector float vector) +;; (define-extern vector/! object) ;; (function vector vector vector vector) +;; (define-extern vector-float*! object) ;; (function vector vector float vector) +;; (define-extern vector-average! object) ;; (function vector vector vector vector) +;; (define-extern vector+float*! object) ;; (function vector vector vector float vector) +;; (define-extern vector--float*! object) ;; (function vector vector vector float vector) +;; (define-extern vector-float/! object) ;; (function vector vector float vector) +;; (define-extern vector-negate! object) ;; (function vector vector vector) +;; (define-extern vector-negate-in-place! object) ;; (function vector vector) +;; (define-extern vector= object) ;; (function vector vector symbol) +;; (define-extern vector-delta object) ;; (function vector vector float) +;; (define-extern vector-seek! object) ;; (function vector vector float vector) +;; (define-extern vector-smooth-seek! object) +;; (define-extern vector-seek-2d-xz-smooth! object) ;; (function vector vector float float vector) +;; (define-extern vector-seek-2d-yz-smooth! object) ;; (function vector vector float float vector) +;; (define-extern vector-seek-3d-smooth! object) ;; (function vector vector float float vector) +;; (define-extern seek-with-smooth object) ;; (function float float float float float float) +;; (define-extern vector-identity! object) ;; (function vector vector) +;; (define-extern vector-seconds object) ;; (function vector vector vector) +;; (define-extern vector-seconds! object) ;; (function vector vector) +;; (define-extern vector-v! object) ;; (function vector vector) +;; (define-extern vector-v+! object) ;; (function vector vector vector vector) +;; (define-extern vector-v*float+! object) ;; (function vector vector vector float vector) +;; (define-extern vector-v++! object) ;; (function vector vector vector) +;; (define-extern vector-v*float! object) ;; (function vector vector float vector) +;; (define-extern vector-v*float++! object) ;; (function vector vector float vector) +;; (define-extern vector-to-ups! object) ;; (function vector vector vector) +;; (define-extern vector-from-ups! object) ;; (function vector vector vector) +;; (define-extern vector-length object) ;; (function vector float) +;; (define-extern vector-length-squared object) ;; (function vector float) +;; (define-extern vector-xz-length-squared object) ;; (function vector float) +;; (define-extern vector-xz-length object) ;; (function vector float) +;; (define-extern vector-vector-distance object) ;; (function vector vector float) +;; (define-extern vector-vector-distance-squared object) ;; (function vector vector float) +;; (define-extern vector-vector-xz-distance object) ;; (function vector vector float) +;; (define-extern vector-vector-xy-distance object) +;; (define-extern vector-vector-xz-distance-squared object) ;; (function vector vector float) +;; (define-extern vector-normalize! object) ;; (function vector float vector) +;; (define-extern vector-normalize-ret-len! object) ;; (function vector float float) +;; (define-extern vector-normalize-copy! object) ;; (function vector vector float vector) +;; (define-extern vector-xz-normalize! object) ;; (function vector float vector) +;; (define-extern vector-xz-normalize-copy! object) +;; (define-extern vector-length-max! object) ;; (function vector float vector) +;; (define-extern vector-xz-length-max! object) ;; (function vector float vector) +;; (define-extern vector-rotate-around-x! object) +;; (define-extern vector-rotate-around-y! object) ;; (function vector vector float vector) +;; (define-extern vector-rotate90-around-y! object) +;; (define-extern vector-rotate-around-z! object) +;; (define-extern rotate-y<-vector+vector object) ;; (function vector vector float) +;; (define-extern rotate-x<-vector+vector object) +;; (define-extern rotate-z<-vector+vector object) +;; (define-extern vector-cvt.w.s! object) ;; (function vector vector vector) +;; (define-extern vector-cvt.s.w! object) ;; (function vector vector vector) +;; (define-extern rot-zxy-from-vector! object) ;; (function vector vector vector) +;; (define-extern rot-zyx-from-vector! object) ;; (function vector vector vector) +;; (define-extern vector-lerp! object) ;; (function vector vector vector float vector) +;; (define-extern vector-lerp-clamp! object) ;; (function vector vector vector float vector) +;; (define-extern vector4-lerp! object) ;; (function vector vector vector float vector) +;; (define-extern vector4-lerp-clamp! object) ;; (function vector vector vector float vector) +;; (define-extern vector-degi object) ;; (function vector vector vector) +;; (define-extern vector-degf object) ;; (function vector vector vector) +;; (define-extern vector-degmod object) ;; (function vector vector vector) +;; (define-extern vector-deg-diff object) ;; (function vector vector vector none) +;; (define-extern vector-deg-lerp-clamp! object) ;; (function vector vector vector float vector) +;; (define-extern vector3s-copy! object) ;; (function vector vector vector) +;; (define-extern vector3s+! object) ;; (function vector vector vector vector) +;; (define-extern vector3s*float! object) ;; (function vector vector float vector) +;; (define-extern vector3s-! object) ;; (function vector vector vector vector) +;; (define-extern vector4-add! object) +;; (define-extern vector4-sub! object) +;; (define-extern vector4-mul! object) +;; (define-extern vector4-scale! object) +;; (define-extern vector4-madd! object) +;; (define-extern vector4-msub! object) +;; (define-extern vector4-array-add! object) +;; (define-extern vector4-array-sub! object) +;; (define-extern vector4-array-mul! object) +;; (define-extern vector4-array-scale! object) +;; (define-extern vector4-array-madd! object) +;; (define-extern vector4-array-msub! object) +;; (define-extern vector4-array-lerp! object) +;; (define-extern spheres-overlap? object) ;; (function sphere sphere symbol) +;; (define-extern sphere<-vector! object) ;; (function sphere vector sphere) +;; (define-extern sphere<-vector+r! object) ;; (function sphere vector float sphere) +;; (define-extern rand-vu-sphere-point! object) ;; (function vector float vector) +;; (define-extern vector-vector-angle-safe object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 symbol :offset-assert 4) ;; guessed by decompiler + (file-name basic :offset-assert 8) + (major-version uint32 :offset-assert 12) + (minor-version uint32 :offset-assert 16) + (maya-file-name basic :offset-assert 20) + (tool-debug basic :offset-assert 24) + (mdb-file-name basic :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern file-stream-read-string object) ;; (function file-stream string string) +;; (define-extern *file-temp-string* object) ;; string +;; (define-extern make-file-name object) ;; (function file-kind string int symbol string) +;; (define-extern make-vfile-name object) ;; (function file-kind string string) +;; (define-extern file-info-correct-version? object) ;; (function file-info file-kind int symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; loader-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(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? basic :offset-assert 20) + (frame-lock symbol :offset-assert 24) ;; guessed by decompiler + (init-heap basic :offset-assert 28) + (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 int) _type_ 0) + (dummy-9 () none 9) ;; (set-pending-file (_type_ string int handle float) int 9) + (dummy-10 () none 10) ;; (update (_type_) int 10) + (dummy-11 () none 11) ;; (inactive? (_type_) symbol 11) + (dummy-12 () none 12) ;; (file-status (_type_ string int) symbol 12) + (dummy-13 () none 13) ;; (link-file (_type_ art-group) art-group 13) + (dummy-14 () none 14) ;; (unlink-file (_type_ art-group) int 14) + (dummy-15 () none 15) ;; (unlock! (_type_) symbol 15) + ) + ) +|# + +#| +(deftype spool-anim (basic) + ((name string :offset-assert 16) ;; guessed by decompiler + (anim-name basic :offset-assert 20) + (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) ;; int32 + (dma-reserve-buffer-count int16 :offset-assert 174) + (active-stream string :offset-assert 176) ;; guessed by decompiler + (queue-stream basic :offset-assert 180) + (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) + (dummy-9 () none 9) ;; (update (_type_ symbol) int 9) + (dummy-10 () none 10) ;; (clear-rec (_type_) int 10) + (dummy-11 () none 11) ;; (spool-push (_type_ string int process float) int 11) + (dummy-12 () none 12) ;; (file-status (_type_ string int) symbol 12) + (dummy-13 () none 13) ;; (reserve-alloc (_type_) kheap 13) + (dummy-14 () none 14) ;; (reserve-free (_type_ kheap) int 14) + (dummy-15 () none 15) ;; (none-reserved? (_type_) symbol 15) + ) + ) +|# + +#| +(deftype subtitle-range (basic) + () + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ;; Failed to read fields. + ) +|# + +#| +(deftype subtitle-image (basic) + ((width uint16 :offset-assert 4) + (height uint16 :offset-assert 6) + (palette UNKNOWN 16 :offset-assert 16) + (data UNKNOWN :dynamic :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype texture-id (uint32) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ;; Failed to read some fields. + ) +|# + +#| +(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 basic :offset-assert 184) + (update-flag basic :offset-assert 188) + (texture-enable-user uint64 :offset-assert 192) + (texture-enable-user-menu uint64 :offset-assert 200) + (ids uint32 128 :offset-assert 208) ;; guessed by decompiler + ) + :method-count-assert 26 + :size-assert #x2d0 + :flag-assert #x1a000002d0 + (:methods + ;; (new (symbol type) _type_ 0) + (dummy-9 () none 9) ;; (initialize! (_type_) _type_ 9) + (dummy-10 () none 10) ;; (print-usage (_type_) _type_ 10) + (dummy-11 () none 11) ;; (setup-font-texture! (_type_) none 11) + (dummy-12 () none 12) ;; (allocate-defaults! (_type_) none 12) + (dummy-13 () none 13) ;; (login-level-textures (_type_ level int (pointer texture-id)) none 13) + (dummy-14 () none 14) ;; (add-tex-to-dma! (_type_ level int) none 14) + (dummy-15 () none 15) ;; (allocate-vram-words! (_type_ int) int 15) + (dummy-16 () none 16) ;; (allocate-segment! (_type_ texture-pool-segment int) texture-pool-segment 16) + (dummy-17 () none 17) ;; (unused-17 () none 17) + (dummy-18 () none 18) ;; (unused-18 () none 18) + (dummy-19 () none 19) ;; (unused-19 () none 19) + (dummy-20 () none 20) ;; (unload! (_type_ texture-page) int 20) + (dummy-21 () none 21) ;; (upload-one-common! (_type_ level) symbol 21) + (dummy-22 () none 22) ;; (lookup-boot-common-id (_type_ int) int 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + ) + ) +|# + +#| +(deftype texture-mask (structure) + ((mask vector4w :inline :offset-assert 0) + (dist float :offset-assert 12) + (long UNKNOWN 2 :offset-assert 0) + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype texture-masks (structure) + ((data UNKNOWN 3 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype texture-masks-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(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 UNKNOWN 3 :offset-assert 52) + (masks texture-masks :inline :offset-assert 64) ;; uint32 3 + ) + :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 basic :offset-assert 8) + (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) + (pad uint32 15 :offset-assert 68) ;; guessed by decompiler + (data texture :dynamic :offset-assert 128) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x80 + :flag-assert #xe00000080 + (:methods + (dummy-9 () none 9) ;; (remove-from-heap (_type_ kheap) _type_ 9) + (dummy-10 () none 10) ;; (get-leftover-block-count (_type_ int int) int 10) + (dummy-11 () none 11) ;; (unused-11 () none 11) + (dummy-12 () none 12) ;; (relocate-dests! (_type_ int int) none 12) + (dummy-13 () none 13) ;; (add-to-dma-buffer (_type_ dma-buffer int) int 13) + ) + ) +|# + +#| +(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-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) + (reg-1 uint8 :offset-assert 24) + (reg-2 uint8 :offset-assert 40) + (reg-3 uint8 :offset-assert 56) + (reg-4 uint8 :offset-assert 72) + (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-alpha + (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) + ((data adgif-shader :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(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) + (level-index uint32 :offset-assert 4) + (level-texture-page uint32 :offset-assert 8) + (texture-user uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *texture-masks* object) +;; (define-extern *texture-masks-array* object) +;; (define-extern texture-mip->segment object) ;; (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 object) ;; (array int32) +;; (define-extern mz32-24-block-table object) ;; (array int32) +;; (define-extern ct16-block-table object) ;; (array int32) +;; (define-extern ct16s-block-table object) ;; (array int32) +;; (define-extern mz16-block-table object) ;; (array int32) +;; (define-extern mz16s-block-table object) ;; (array int32) +;; (define-extern mt8-block-table object) ;; (array int32) +;; (define-extern mt4-block-table object) ;; (array int32) +;; (define-extern *texture-page-translate* object) +;; (define-extern *eyes-texture-base* object) +;; (define-extern *skull-gem-texture-base* object) +;; (define-extern *ocean-texture-base* object) +;; (define-extern *ocean-envmap-texture-base* object) +;; (define-extern *grey-scale-base* object) +;; (define-extern *map-texture-base* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-anim-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype texture-anim-layer (structure) + ((extra vector :inline :offset-assert 240) + (func basic :offset-assert 256) + (func-id basic :offset-assert 256) + (init-func basic :offset-assert 260) + (init-func-id basic :offset-assert 260) + (tex basic :offset-assert 264) + (start-time float :offset-assert 268) + (end-time float :offset-assert 272) + (tex-name basic :offset-assert 276) + (test uint64 :offset-assert 280) + (alpha uint64 :offset-assert 288) + (clamp uint64 :offset-assert 296) + (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) + (start-st-rot deg :offset-assert 148) + (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) + (end-st-rot deg :offset-assert 228) + ) + :method-count-assert 11 + :size-assert #x130 + :flag-assert #xb00000130 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype texture-anim (structure) + ((num-layers uint32 :offset-assert 0) + (func basic :offset-assert 4) + (func-id basic :offset-assert 4) + (init-func basic :offset-assert 8) + (init-func-id basic :offset-assert 8) + (tex basic :offset-assert 12) + (tex-name basic :offset-assert 16) + (extra vector :inline :offset-assert 32) + (color uint32 :offset-assert 48) + (frame-time float :offset-assert 52) + (frame-delta float :offset-assert 56) + (frame-mod float :offset-assert 60) + (test uint64 :offset-assert 64) + (alpha uint64 :offset-assert 72) + (clamp uint64 :offset-assert 80) + (data UNKNOWN :dynamic :offset-assert 88) + ) + :method-count-assert 11 + :size-assert #x58 + :flag-assert #xb00000058 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype texture-anim-array (array) + ((type basic :offset-assert 0) + (length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (content-type basic :offset-assert 12) + ) + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(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) + (fill-tmpl dma-gif-packet :inline :offset-assert 96) + (adgif-tmpl dma-gif-packet :inline :offset-assert 128) + (corner0 vector :inline :offset-assert 160) + (corner1 vector :inline :offset-assert 176) + (corner2 vector :inline :offset-assert 192) + (corner3 vector :inline :offset-assert 208) + (const vector :inline :offset-assert 224) + (random UNKNOWN 8 :offset-assert 240) + (random-index uint8 :offset-assert 368) + ) + :method-count-assert 9 + :size-assert #x171 + :flag-assert #x900000171 + ) +|# + +#| +(deftype clut16x16 (structure) + ((clut UNKNOWN 256 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x400 + :flag-assert #x900000400 + ) +|# + +#| +(deftype noise8x8 (structure) + ((image UNKNOWN 64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype noise16x16 (structure) + ((image UNKNOWN 256 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype noise32x32 (structure) + ((image UNKNOWN 1024 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x400 + :flag-assert #x900000400 + ) +|# + +#| +(deftype noise64x64 (structure) + ((image UNKNOWN 4096 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x1000 + :flag-assert #x900001000 + ) +|# + +#| +(deftype noise128x128 (structure) + ((image UNKNOWN 16384 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4000 + :flag-assert #x900004000 + ) +|# + +#| +(deftype fog8x256 (structure) + ((image UNKNOWN 256 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype fog-texture-work (structure) + ((corner UNKNOWN 4 :offset-assert 0) + (const vector :inline :offset-assert 64) + (min-corner vector :inline :offset-assert 80) + (max-corner vector :inline :offset-assert 96) + (fog-near float :offset-assert 112) + (fog-far float :offset-assert 116) + (fog-delta float :offset-assert 120) + (alpha-near float :offset-assert 124) + (alpha-far float :offset-assert 128) + (alpha-delta float :offset-assert 132) + (color uint32 :offset-assert 136) + ) + :method-count-assert 9 + :size-assert #x8c + :flag-assert #x90000008c + ) +|# + +;; (define-extern *clut-translate* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 UNKNOWN 4 :offset-assert 36) + (mask uint16 :offset-assert 36) + (palette-index int8 :offset-assert 39) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype light-sphere (structure) + ((name basic :offset-assert 0) + (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 UNKNOWN 4 :offset-assert 60) + (mask uint16 :offset-assert 60) + (palette-index int8 :offset-assert 63) + ) + :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 UNKNOWN 2 :offset-assert 10) + (base-trans vector :inline :offset-assert 16) + (axis-scale vector :inline :offset-assert 32) + (dimension-array vector4w :inline :offset-assert 48) + (bucket-array uint32 :offset-assert 64) + (index-array uint32 :offset-assert 68) + (light-sphere-array uint32 :offset-assert 72) + ) + :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) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mood-channel (structure) + ((data UNKNOWN 24 :offset-assert 0) + (vecs UNKNOWN 6 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype mood-channel-group (structure) + ((data UNKNOWN 4 :offset-assert 0) + ) + :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 UNKNOWN 4 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype mood-color-table (structure) + ((data UNKNOWN 8 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype mood-sky-table (structure) + ((data UNKNOWN 8 :offset-assert 0) + ) + :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 UNKNOWN 2 :offset-assert 0) + (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 UNKNOWN 2 :offset-assert 0) + (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 UNKNOWN 4 :offset-assert 0) + (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 UNKNOWN 8 :offset-assert 0) + ) + :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 basic :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(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 UNKNOWN 8 :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x670 + :flag-assert #x900000670 + ) +|# + +#| +(deftype mood-context-core3 (mood-context-core2) + ((times UNKNOWN 8 :offset-assert 1648) + ) + :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 uint8 32 :offset-assert 1840) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x7b0 + :flag-assert #x9000007b0 + ) +|# + +#| +(deftype mood-control-work (structure) + ((weather mood-weather :inline :offset-assert 0) + (iweather mood-iweather :inline :offset-assert 8) + (interp mood-weather :inline :offset-assert 16) + (index UNKNOWN 4 :offset-assert 24) + (color-interp float :offset-assert 40) + (color-index UNKNOWN 2 :offset-assert 44) + (channel-interp float :offset-assert 52) + (channel-index UNKNOWN 2 :offset-assert 56) + (cloud-interp float :offset-assert 64) + (cloud-index UNKNOWN 2 :offset-assert 68) + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(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) + (display-flag basic :offset-assert 104) + (overide-weather-flag basic :offset-assert 108) + (overide mood-weather :inline :offset-assert 112) + (lightning-index int32 :offset-assert 120) + (lightning-val int32 :offset-assert 124) + (lightning-time int32 :offset-assert 128) + (lightning-time2 float :offset-assert 132) + (lightning-flash float :offset-assert 136) + (lightning-id uint32 :offset-assert 140) + (lightning-count0 uint32 :offset-assert 144) + (lightning-count1 uint32 :offset-assert 148) + (lightning-count2 uint32 :offset-assert 152) + (rain-id uint32 :offset-assert 156) + (sound-pitch float :offset-assert 160) + (fogs UNKNOWN 9 :offset-assert 164) + (colors UNKNOWN 3 :offset-assert 200) + (channels UNKNOWN 3 :offset-assert 212) + (clouds UNKNOWN 9 :offset-assert 224) + ) + :method-count-assert 19 + :size-assert #x104 + :flag-assert #x1300000104 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; level-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype level-vis-info (basic) + () + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ;; Failed to read fields. + ) +|# + +#| +(deftype level-load-info (basic) + () + :method-count-assert 9 + :size-assert #x120 + :flag-assert #x900000120 + ;; Failed to read fields. + ) +|# + +#| +(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) + () + :method-count-assert 30 + :size-assert #x146c + :flag-assert #x1e0000146c + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) ;; (deactivate (_type_) _type_ 9) + (dummy-10 () none 10) ;; (is-object-visible? (_type_ int) symbol 10) + (dummy-11 () none 11) ;; (add-irq-to-tex-buckets! (_type_) none 11) + (dummy-12 () none 12) ;; (unload! (_type_) _type_ 12) + (dummy-13 () none 13) ;; (bsp-name (_type_) symbol 13) + (dummy-14 () none 14) ;; (compute-memory-usage (_type_ object) memory-usage-block 14) + (dummy-15 () none 15) ;; (point-in-boxes? (_type_ vector) symbol 15) + (dummy-16 () none 16) ;; (update-vis! (_type_ level-vis-info uint uint) symbol 16) + (dummy-17 () none 17) ;; (load-continue (_type_) _type_ 17) + (dummy-18 () none 18) ;; (load-begin (_type_) _type_ 18) + (dummy-19 () none 19) ;; (login-begin (_type_) _type_ 19) + (dummy-20 () none 20) ;; (vis-load (_type_) uint 20) + (dummy-21 () none 21) ;; (unused-21 (_type_) none 21) + (dummy-22 () none 22) ;; (birth (_type_) _type_ 22) + (dummy-23 () none 23) ;; (level-status-set! (_type_ symbol) _type_ 23) + (dummy-24 () none 24) ;; (load-required-packages (_type_) _type_ 24) + (dummy-25 () none 25) ;; (init-vis (_type_) int 25) + (dummy-26 () none 26) ;; (vis-clear (_type_) int 26) + (dummy-27 () none 27) ;; (debug-print-splitbox (_type_ vector string) none 27) + (dummy-28 () none 28) ;; (art-group-get-by-name (_type_ string) art-group 28) + (dummy-29 () none 29) + ) + ) +|# + +#| +(deftype level-group (basic) + () + :method-count-assert 31 + :size-assert #x9014 + :flag-assert #x1f00009014 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) ;; (level-get (_type_ symbol) level 9) + (dummy-10 () none 10) ;; (level-get-with-status (_type_ symbol) level 10) + (dummy-11 () none 11) ;; (level-get-for-use (_type_ symbol symbol) level 11) + (dummy-12 () none 12) ;; (activate-levels! (_type_) int 12) + (dummy-13 () none 13) ;; (debug-print-entities (_type_ symbol type) none 13) + (dummy-14 () none 14) ;; (debug-draw-actors (_type_ symbol) none 14) + (dummy-15 () none 15) ;; (actors-update (_type_) object 15) + (dummy-16 () none 16) ;; (level-update (_type_) int 16) + (dummy-17 () none 17) ;; (level-get-target-inside (_type_) level 17) + (dummy-18 () none 18) ;; (alloc-levels! (_type_ symbol) int 18) + (dummy-19 () none 19) ;; (load-commands-set! (_type_ pair) pair 19) + (dummy-20 () none 20) ;; (art-group-get-by-name (_type_ string) art-group 20) + (dummy-21 () none 21) ;; (load-command-get-index (_type_ symbol int) pair 21) + (dummy-22 () none 22) ;; (update-vis-volumes (_type_) none 22) + (dummy-23 () none 23) ;; (update-vis-volumes-from-nav-mesh (_type_) none 23) + (dummy-24 () none 24) ;; (print-volume-sizes (_type_) none 24) + (dummy-25 () none 25) ;; (level-status (_type_ symbol) symbol 25) + (dummy-26 () none 26) ;; (level-get-most-disposable (_type_) level 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + ) + ) +|# + +;; (define-extern *level* object) ;; level-group +;; (define-extern *draw-index* object) +;; (define-extern *level-index* 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) ;; int64 + (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 basic :offset-assert 4) + (highres-enable basic :offset-assert 8) + (hud-enable basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *screen-shot-work* object) +;; (define-extern *image-name* 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) ;; vis-gif-tag + (gifgr uint128 :offset-assert 864) ;; vis-gif-tag + (giftex-trans uint128 :offset-assert 880) ;; vis-gif-tag + (gifgr-trans uint128 :offset-assert 896) ;; vis-gif-tag + (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) + (inv-camera-rot-other matrix :inline :offset-assert 1360) + (plane-other UNKNOWN 4 :offset-assert 1424) + (guard-plane-other UNKNOWN 4 :offset-assert 1488) + (mirror-trans vector :inline :offset-assert 1552) + (mirror-normal vector :inline :offset-assert 1568) + (fov-correction-factor float :offset-assert 1584) + ) + :method-count-assert 9 + :size-assert #x634 + :flag-assert #x900000634 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 object) ;; (function fog-corrector math-camera none) +;; (define-extern *math-camera-fog-correction* object) ;; fog-corrector +;; (define-extern update-math-camera object) ;; (function math-camera symbol symbol math-camera) +;; (define-extern *math-camera* object) ;; math-camera +;; (define-extern math-cam-start-smoothing object) ;; (function float float quaternion) +;; (define-extern move-target-from-pad object) ;; (function transform int transform) +;; (define-extern transform-point-vector! object) ;; (function vector vector symbol) +;; (define-extern transform-point-qword! object) ;; (function vector4w vector symbol) +;; (define-extern transform-point-vector-scale! object) ;; (function vector vector float) +;; (define-extern reverse-transform-point! object) +;; (define-extern init-for-transform object) ;; (function matrix none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; font-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype char-verts (structure) + ((pos vector 4 :offset-assert 0) ;; guessed by decompiler + (color vector 4 :offset-assert 64) ;; guessed by decompiler + (tex-st vector 4 :offset-assert 128) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +#| +(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) + ((origin vector :inline :offset-assert 16) + (strip-gif vector :inline :offset-assert 32) + (width float :offset-assert 48) + (height float :offset-assert 52) + (projection float :offset-assert 56) + (scale float :offset-assert 60) + (color font-color :offset-assert 64) ;; guessed by decompiler + (flags font-flags :offset-assert 68) ;; guessed by decompiler + (mat matrix :offset-assert 72) + (start-line uint32 :offset-assert 76) + (alpha float :offset-assert 80) + ) + :method-count-assert 21 + :size-assert #x54 + :flag-assert #x1500000054 + (:methods + ;; (new (symbol type matrix int int float font-color font-flags) _type_ 0) + (dummy-9 () none 9) ;; (set-mat! (font-context matrix) font-context 9) + (dummy-10 () none 10) ;; (set-origin! (font-context int int) font-context 10) + (dummy-11 () none 11) ;; (set-depth! (font-context int) font-context 11) + (dummy-12 () none 12) ;; (set-w! (font-context float) font-context 12) + (dummy-13 () none 13) ;; (set-width! (font-context int) font-context 13) + (dummy-14 () none 14) ;; (set-height! (font-context int) font-context 14) + (dummy-15 () none 15) ;; (set-projection! (font-context float) font-context 15) + (dummy-16 () none 16) ;; (set-color! (font-context font-color) font-context 16) + (dummy-17 () none 17) ;; (set-flags! (font-context font-flags) font-context 17) + (dummy-18 () none 18) ;; (set-start-line! (font-context uint) font-context 18) + (dummy-19 () none 19) ;; (set-scale! (font-context float) font-context 19) + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype font-work (structure) + ((font-tmpl dma-gif-packet :inline :offset-assert 0) + (char-tmpl dma-gif-packet :inline :offset-assert 32) + (tex1-tmpl uint64 2 :offset-assert 64) ;; guessed by decompiler + (small-font-0-tmpl UNKNOWN 2 :offset-assert 80) + (small-font-1-tmpl UNKNOWN 2 :offset-assert 96) + (small-font-2-tmpl UNKNOWN 2 :offset-assert 112) + (small-font-3-tmpl UNKNOWN 2 :offset-assert 128) + (large-font-0-tmpl UNKNOWN 2 :offset-assert 144) + (large-font-1-tmpl UNKNOWN 2 :offset-assert 160) + (large-font-2-tmpl UNKNOWN 2 :offset-assert 176) + (large-font-3-tmpl UNKNOWN 2 :offset-assert 192) + (size1-small vector :inline :offset-assert 208) + (size2-small vector :inline :offset-assert 224) + (size3-small vector :inline :offset-assert 240) + (size1-large vector :inline :offset-assert 256) + (size2-large-0 vector :inline :offset-assert 272) + (size2-large-1 vector :inline :offset-assert 288) + (size2-large-2 vector :inline :offset-assert 304) + (size2-large-3 vector :inline :offset-assert 320) + (size3-large vector :inline :offset-assert 336) + (size2-0 vector :inline :offset-assert 352) + (size2-1 vector :inline :offset-assert 368) + (size2-2 vector :inline :offset-assert 384) + (size2-3 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) + (save vector :inline :offset-assert 464) + (save-color vector 4 :offset-assert 480) ;; guessed by decompiler + (current-verts char-verts :inline :offset-assert 544) + (src-verts char-verts :inline :offset-assert 736) + (dest-verts char-verts :inline :offset-assert 928) + (justify vector 64 :offset-assert 1120) ;; guessed by decompiler + (color-shadow vector4w :inline :offset-assert 2144) + (color-table char-color 40 :offset-assert 2160) ;; guessed by decompiler + (current-font-0-tmpl UNKNOWN 2 :offset-assert 2800) + (current-font-1-tmpl UNKNOWN 2 :offset-assert 2816) + (current-font-2-tmpl UNKNOWN 2 :offset-assert 2832) + (current-font-3-tmpl UNKNOWN 2 :offset-assert 2848) + (last-color font-color :offset-assert 2864) ;; guessed by decompiler + (save-last-color font-color :offset-assert 2868) ;; guessed by decompiler + (buf basic :offset-assert 2872) + (str-ptr uint32 :offset-assert 2876) + (flags font-flags :offset-assert 2880) ;; guessed by decompiler + (reg-save uint32 5 :offset-assert 2884) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xb58 + :flag-assert #x900000b58 + ) +|# + +;; (define-extern *font-default-matrix* object) ;; matrix +;; (define-extern *font-work* object) ;; font-work +;; (define-extern font-set-tex0 object) ;; (function (pointer gs-tex0) texture uint uint uint none) +;; (define-extern set-font-color 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 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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-work* object) +;; (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 +;; (define-extern profile-texture-test object) +;; (define-extern profile-tfrag-test object) +;; (define-extern profile-tie-test object) +;; (define-extern profile-merc-test object) +;; (define-extern profile-emerc-test object) +;; (define-extern profile-mercneric-test object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; display ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern get-current-time object) ;; (function time-frame) +;; (define-extern get-integral-current-time object) ;; (function time-frame) +;; (define-extern set-display object) ;; (function display int int int int int display) +;; (define-extern allocate-dma-buffers object) ;; (function display display) +;; (define-extern *font-context* object) ;; font-context +;; (define-extern draw-sprite2d-xy object) ;; (function dma-buffer int int int int rgba none) +;; (define-extern draw-sprite2d-xy-absolute object) +;; (define-extern draw-quad2d object) ;; (function dma-buffer draw-context none) +;; (define-extern screen-gradient object) ;; (function dma-buffer rgba rgba rgba rgba none) +;; (define-extern vif1-handler-debug object) ;; (function none) +;; (define-extern vif1-handler object) ;; (function none) +;; (define-extern vblank-handler object) ;; (function int) +;; (define-extern set-display-gs-state object) ;; (function dma-buffer int int int int int dma-buffer) +;; (define-extern set-display-gs-state-offset object) ;; (function dma-buffer int int int int int int int dma-buffer) +;; (define-extern reset-display-gs-state object) ;; (function display dma-buffer int display) +;; (define-extern *vu0-dma-list* object) ;; dma-buffer +;; (define-extern *display* object) ;; display + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 int32 :offset-assert 20) ;; guessed by decompiler + (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 + (dummy-9 () none 9) ;; (get-engine (connection) engine 9) + (dummy-10 () none 10) ;; (get-process (connection) process 10) + (dummy-11 () none 11) ;; (belongs-to-engine? (connection engine) symbol 11) + (dummy-12 () none 12) ;; (belongs-to-process? (connection process) symbol 12) + (dummy-13 () none 13) ;; (move-to-dead (connection) connection 13) + ) + ) +|# + +#| +(deftype engine (basic) + () + :method-count-assert 26 + :size-assert #x60 + :flag-assert #x1a00000060 + ;; Failed to read fields. + (:methods + ;; (new (symbol type basic int) _type_ 0) + (dummy-9 () none 9) ;; (inspect-all-connections (engine) engine 9) + (dummy-10 () none 10) ;; (apply-to-connections (engine (function connectable none)) int 10) + (dummy-11 () none 11) ;; (apply-to-connections-reverse (engine (function connectable none)) int 11) + (dummy-12 () none 12) ;; (execute-connections (engine object) int 12) + (dummy-13 () none 13) ;; (execute-connections-and-move-to-dead (engine object) int 13) + (dummy-14 () none 14) ;; (execute-connections-if-needed (engine object) int 14) + (dummy-15 () none 15) ;; (add-connection (engine process object object object object) connection 15) + (dummy-16 () none 16) ;; (remove-from-process (engine process) int 16) + (dummy-17 () none 17) ;; (remove-matching (engine (function connection engine symbol)) int 17) + (dummy-18 () none 18) ;; (remove-all (engine) int 18) + (dummy-19 () none 19) ;; (remove-by-param1 (engine object) int 19) + (dummy-20 () none 20) ;; (remove-by-param2 (engine int) int 20) + (dummy-21 () none 21) ;; (get-first-connectable (engine) connectable 21) + (dummy-22 () none 22) ;; (get-last-connectable (engine) connectable 22) + (dummy-23 () none 23) ;; (unknown-1 (engine (pointer uint32)) uint 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + ) + ) +|# + +#| +(deftype connection-pers (structure) + () + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ;; Failed to read fields. + ) +|# + +#| +(deftype engine-pers (basic) + ((name basic :offset-assert 4) + (length int16 :offset-assert 8) + (allocated-length int16 :offset-assert 10) + (element-type basic :offset-assert 12) + (execute-time uint64 :offset-assert 16) + (alive-list connection-pers :offset-assert 24) + (dead-list connection-pers :offset-assert 28) + (data UNKNOWN :dynamic :offset-assert 32) + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + ) + ) +|# + +;; (define-extern connection-process-apply object) ;; (function process (function object none) symbol) +;; (define-extern process-disconnect object) ;; (function process int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; text-id-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; text-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype game-text (structure) + ((id game-text-id :offset-assert 0) ;; guessed by decompiler + (text string :offset-assert 4) ;; guessed by decompiler + ) + :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 + (data game-text :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (dummy-9 () none 9) ;; (lookup-text! (_type_ game-text-id symbol) string 9) + ) + ) +|# + +;; (define-extern *text-group-names* object) ;; (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* object) ;; camera-bank +;; (define-extern *CAMERA_MASTER-bank* object) ;; camera-master-bank + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + (z int16 :offset-assert 8) + (first-conn uint16 :offset-assert 10) + (cost-from-start uint16 :offset-assert 12) + (cost-to-goal uint16 :offset-assert 14) + (flags uint8 :offset-assert 16) + (conn-count uint8 :offset-assert 17) + ) + :method-count-assert 12 + :size-assert #x12 + :flag-assert #xc00000012 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + ) + ) +|# + +#| +(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-conn (structure) + ((head-id uint16 :offset-assert 0) + (tail-id uint16 :offset-assert 2) + (flags uint8 :offset-assert 4) + (visgroup-id uint8 :offset-assert 5) + (cost uint16 :offset-assert 6) + ) + :method-count-assert 10 + :size-assert #x8 + :flag-assert #xa00000008 + (:methods + (dummy-9 () none 9) + ) + ) +|# + +#| +(deftype trail-conn-hash-cell (structure) + ((first-conn uint16 :offset-assert 0) + (conn-count uint8 :offset-assert 2) + (pad uint8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(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 UNKNOWN 2 :offset-assert 64) + (conn-quads UNKNOWN 7 :offset-assert 96) + (cell-bits UNKNOWN 2 :offset-assert 64) + (conn-bits UNKNOWN 2 :offset-assert 96) + ) + :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 uint32 :offset-assert 32) + (conn-ids uint32 :offset-assert 36) + ) + :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-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) + (node-count uint16 :offset-assert 18) + (conn-count uint16 :offset-assert 20) + (conn-mask uint8 :offset-assert 22) + (node uint32 :offset-assert 24) + (conn uint32 :offset-assert 28) + (conn-ids uint32 :offset-assert 32) + (visgroup uint32 :offset-assert 36) + (visnode-ids uint32 :offset-assert 40) + (conn-hash basic :offset-assert 44) + (orig-start-pos vector :inline :offset-assert 48) + (orig-goal-pos vector :inline :offset-assert 64) + (conn-start-pos vector :inline :offset-assert 80) + (conn-goal-pos vector :inline :offset-assert 96) + (open-quads UNKNOWN 6 :offset-assert 112) + (closed-quads UNKNOWN 6 :offset-assert 208) + (open-bits UNKNOWN 2 :offset-assert 112) + (closed-bits UNKNOWN 2 :offset-assert 208) + ) + :method-count-assert 29 + :size-assert #x130 + :flag-assert #x1d00000130 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + ) + ) +|# + +;; (define-extern *trail-graph* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; minimap-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype minimap-class-node (structure) + () + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ;; Failed to read fields. + ) +|# + +#| +(deftype connection-minimap (connection-pers) + () + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ;; Failed to read fields. + ) +|# + +#| +(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 + (:methods + ) + ) +|# + +#| +(deftype minimap-trail (structure) + ((used-by connection-minimap :offset-assert 0) + (search-id uint32 :offset-assert 4) + (node-count int16 :offset-assert 8) + (goal-node-id int32 :offset-assert 12) + (node-path-dist float :offset-assert 16) + (last-updated uint64 :offset-assert 24) + (cached-info trail-cached-search-info :inline :offset-assert 32) + (node-id UNKNOWN 64 :offset-assert 80) + ) + :method-count-assert 11 + :size-assert #xd0 + :flag-assert #xb000000d0 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype minimap-draw-work (structure) + ((buf basic :offset-assert 0) + (justify-right basic :offset-assert 4) + (draw-pos vector4w :inline :offset-assert 16) + (mat matrix :inline :offset-assert 32) + (corner UNKNOWN 4 :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype minimap (structure) + ((draw-tmpl dma-gif-packet :inline :offset-assert 0) + (draw2-tmpl dma-gif-packet :inline :offset-assert 32) + (draw3-tmpl dma-gif-packet :inline :offset-assert 64) + (draw4-tmpl dma-gif-packet :inline :offset-assert 96) + (sprite-tmpl dma-gif-packet :inline :offset-assert 128) + (adgif-tmpl dma-gif-packet :inline :offset-assert 160) + (color vector4w :inline :offset-assert 192) + (offset vector :inline :offset-assert 208) + (minimap-corner vector :inline :offset-assert 224) + (last-name basic :offset-assert 240) + (last-tex basic :offset-assert 244) + (target-inv-scale float :offset-assert 248) + (map-bits uint64 :offset-assert 256) + (level basic :offset-assert 264) + (ctywide basic :offset-assert 268) + (inv-scale float :offset-assert 212) + (fade float :offset-assert 220) + (engine basic :offset-assert 272) + (engine-key uint32 :offset-assert 276) + (trail UNKNOWN 6 :offset-assert 288) + (race-tex basic :offset-assert 1536) + (race-scale float :offset-assert 1540) + (race-level basic :offset-assert 1544) + (sprite2-tmpl dma-gif-packet :inline :offset-assert 1552) + (race-corner vector :inline :offset-assert 1584) + (goal-time float :offset-assert 1600) + (frustum-alpha float :offset-assert 1604) + ) + :method-count-assert 28 + :size-assert #x648 + :flag-assert #x1c00000648 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bigmap-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bigmap-bit-mask (structure) + ((data UNKNOWN 6656 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x1a00 + :flag-assert #x900001a00 + ) +|# + +#| +(deftype bigmap-layer-mask (structure) + ((data UNKNOWN 26624 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x6800 + :flag-assert #x900006800 + ) +|# + +#| +(deftype bigmap-image (structure) + ((clut-offset uint32 :offset-assert 0) + (image-offset uint32 :offset-assert 4) + (pad UNKNOWN 2 :offset-assert 8) + (data UNKNOWN 1 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x11 + :flag-assert #x900000011 + ) +|# + +#| +(deftype bigmap-info (vector) + ((data UNKNOWN 4 :offset-assert 0) + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + (w float :offset-assert 12) + (quad uint128 :offset-assert 0) + (scale float :offset-assert 8) + (inv-scale float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype bigmap-info-array (structure) + ((data UNKNOWN 21 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x150 + :flag-assert #x900000150 + ) +|# + +#| +(deftype bigmap-compressed-layers (structure) + ((data UNKNOWN 20 :offset-assert 0) + (layer0 uint32 :offset-assert 0) + (layer1 uint32 :offset-assert 4) + (layer2 uint32 :offset-assert 8) + (layer3 uint32 :offset-assert 12) + (layer4 uint32 :offset-assert 16) + (layer5 uint32 :offset-assert 20) + (layer6 uint32 :offset-assert 24) + (layer7 uint32 :offset-assert 28) + (layer8 uint32 :offset-assert 32) + (layer9 uint32 :offset-assert 36) + (layer10 uint32 :offset-assert 40) + (layer11 uint32 :offset-assert 44) + (layer12 uint32 :offset-assert 48) + (layer13 uint32 :offset-assert 52) + (layer14 uint32 :offset-assert 56) + (layer15 uint32 :offset-assert 60) + (layer16 uint32 :offset-assert 64) + (layer17 uint32 :offset-assert 68) + (layer18 uint32 :offset-assert 72) + (layer19 uint32 :offset-assert 76) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype bigmap (basic) + ((drawing-flag basic :offset-assert 4) + (loading-flag basic :offset-assert 8) + (recording-flag basic :offset-assert 12) + (fill-flag basic :offset-assert 16) + (bigmap-index uint32 :offset-assert 20) + (bigmap-image basic :offset-assert 24) + (tpage basic :offset-assert 28) + (progress-minimap basic :offset-assert 32) + (mask-index uint32 :offset-assert 36) + (bit-mask bigmap-bit-mask :offset-assert 40) + (compressed-next-index uint32 :offset-assert 44) + (max-next-index uint32 :offset-assert 48) + (compressed-masks UNKNOWN 20 :offset-assert 52) + (compressed-data uint32 :offset-assert 132) + (layer-index uint32 :offset-assert 136) + (layer-mask bigmap-layer-mask :offset-assert 140) + (compressed-layers bigmap-compressed-layers :offset-assert 144) + (layer-mask-enable uint32 :offset-assert 148) + (load-index uint32 :offset-assert 152) + (x0 int32 :offset-assert 156) + (y0 int32 :offset-assert 160) + (x1 int32 :offset-assert 164) + (y1 int32 :offset-assert 168) + (y2 int32 :offset-assert 172) + (goal-time float :offset-assert 176) + (sprite-tmpl dma-gif-packet :inline :offset-assert 192) + (draw-tmpl dma-gif-packet :inline :offset-assert 224) + (adgif-tmpl dma-gif-packet :inline :offset-assert 256) + (offset vector :inline :offset-assert 288) + (size float :offset-assert 296) + (scale float :offset-assert 300) + (draw-offset vector :inline :offset-assert 304) + (draw-size float :offset-assert 312) + (draw-scale float :offset-assert 316) + (scroll vector :inline :offset-assert 320) + (pos vector4w :inline :offset-assert 336) + (color vector4w :inline :offset-assert 352) + (corner UNKNOWN 4 :offset-assert 368) + (auto-save-icon-flag basic :offset-assert 432) + ) + :method-count-assert 28 + :size-assert #x1b4 + :flag-assert #x1c000001b4 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + ) + ) +|# + +;; (define-extern *bigmap-info-array* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; settings-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype user-setting-data (structure) + () + :method-count-assert 11 + :size-assert #x210 + :flag-assert #xb00000210 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype cam-setting-data (structure) + () + :method-count-assert 11 + :size-assert #x30c + :flag-assert #xb0000030c + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype setting-control (basic) + ((user-current user-setting-data :inline :offset-assert 16) + (user-target user-setting-data :inline :offset-assert 544) + (user-default user-setting-data :inline :offset-assert 1072) + (cam-current cam-setting-data :inline :offset-assert 1600) + (cam-target cam-setting-data :inline :offset-assert 2384) + (cam-default cam-setting-data :inline :offset-assert 3168) + (engine engine :offset-assert 3948) ;; guessed by decompiler + (engine-pers basic :offset-assert 3952) + (engine-hi basic :offset-assert 3956) + (sound-stinger-time uint64 :offset-assert 3960) + (sound-stinger-change-time UNKNOWN 4 :offset-assert 3968) + (sound-excitement-change-time uint64 :offset-assert 4000) + (sound-excitement-targ float :offset-assert 4008) + (sound-excitement-level uint32 :offset-assert 4012) + ) + :method-count-assert 19 + :size-assert #xfb0 + :flag-assert #x1300000fb0 + (:methods + ;; (new (symbol type int) _type_ 0) + (dummy-9 () none 9) ;; (add-setting (_type_ process symbol object object object) none 9) + (dummy-10 () none 10) ;; (set-setting (_type_ process symbol object object object) none 10) + (dummy-11 () none 11) ;; (remove-setting (_type_ process symbol) none 11) + (dummy-12 () none 12) ;; (apply-settings (_type_) setting-data 12) + (dummy-13 () none 13) ;; (update (_type_) setting-data 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; capture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern gs-set-default-store-image object) ;; (function gs-store-image-packet int int int int int int int int) +;; (define-extern store-image object) ;; (function int int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + (dummy-9 () none 9) ;; (reset! (_type_) _type_ 9) + (dummy-10 () none 10) ;; (calculate-total (_type_) int 10) + (dummy-11 () none 11) ;; (print-mem-usage (_type_ level object) none 11) + ) + ) +|# + +;; (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 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + (sprite-slow-tmpl dma-gif-packet :inline :offset-assert 64) + (line-tmpl dma-gif-packet :inline :offset-assert 96) + (scan-tmpl dma-gif-packet :inline :offset-assert 128) + (color vector4w :inline :offset-assert 160) + (line-color uint64 :offset-assert 176) + (scan-colors UNKNOWN 15 :offset-assert 192) + (menu-mode basic :offset-assert 432) + (screen-copied basic :offset-assert 436) + (vu1-enable-user-menu uint64 :offset-assert 440) + (texture-enable-user-menu uint32 :offset-assert 448) + (count-down uint32 :offset-assert 452) + (horizontal-flip-flag basic :offset-assert 456) + (scan-alpha float :offset-assert 460) + (scanline uint32 :offset-assert 464) + (progress-interp float :offset-assert 468) + (progress-interp-dest float :offset-assert 472) + (progress-interp-speed float :offset-assert 476) + ) + :method-count-assert 9 + :size-assert #x1e0 + :flag-assert #x9000001e0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype texture-page-dir (basic) + () + :method-count-assert 10 + :size-assert #x14 + :flag-assert #xa00000014 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) ;; (unlink-textures-in-heap! (_type_ kheap) int 9) + ) + ) +|# + +;; (define-extern texture-bpp object) ;; (function gs-psm int) +;; (define-extern texture-qwc object) ;; (function int int gs-psm int) +;; (define-extern physical-address object) ;; (function pointer pointer) +;; (define-extern dma-buffer-add-ref-texture object) ;; (function dma-buffer pointer int int gs-psm none) +;; (define-extern gs-find-block object) ;; (function int int gs-psm int) +;; (define-extern gs-page-width object) ;; (function gs-psm int) +;; (define-extern gs-page-height object) ;; (function gs-psm int) +;; (define-extern gs-block-width object) ;; (function gs-psm int) +;; (define-extern gs-block-height object) ;; (function gs-psm int) +;; (define-extern gs-largest-block object) ;; (function int int gs-psm int) +;; (define-extern gs-blocks-used object) ;; (function int int gs-psm int) +;; (define-extern texture-page-default-allocate object) ;; (function texture-pool texture-page kheap int texture-page) +;; (define-extern texture-page-common-allocate object) ;; (function texture-pool texture-page kheap int texture-page) +;; (define-extern texture-page-font-allocate object) +;; (define-extern texture-page-common-boot-allocate object) ;; (function texture-pool texture-page kheap int texture-page) +;; (define-extern upload-vram-data object) ;; (function dma-buffer int pointer int none) +;; (define-extern upload-vram-pages object) ;; (function texture-pool texture-pool-segment texture-page int bucket-id int) +;; (define-extern update-vram-pages object) ;; (function texture-pool texture-pool-segment texture-page int int) +;; (define-extern upload-vram-pages-pris object) ;; (function texture-pool texture-pool-segment texture-page bucket-id int int) +;; (define-extern texture-page-level-allocate object) ;; (function texture-pool texture-page kheap int texture-page) +;; (define-extern texture-page-size-check object) ;; (function texture-pool level symbol int) +;; (define-extern set-skull-gem-masks object) +;; (define-extern upload-textures object) +;; (define-extern *txt-dma-list* object) ;; dma-buffer +;; (define-extern texture-relocate object) ;; (function dma-buffer texture int gs-psm int dma-buffer) +;; (define-extern relocate-later object) ;; (function symbol) +;; (define-extern texture-page-login object) ;; (function texture-id (function texture-pool texture-page kheap int texture-page) kheap texture-page-dir-entry) +;; (define-extern lookup-texture-by-id object) ;; (function texture-id texture) +;; (define-extern lookup-texture-by-id-fast object) +;; (define-extern lookup-texture-by-name object) +;; (define-extern lookup-texture-id-by-name object) +;; (define-extern lookup-level-texture-by-name object) +;; (define-extern *shader-list* object) ;; pair +;; (define-extern *edit-shader* object) ;; texture-id +;; (define-extern link-texture-by-id object) ;; (function texture-id adgif-shader texture-page-dir-entry) +;; (define-extern adgif-shader<-texture! object) ;; (function adgif-shader texture adgif-shader) +;; (define-extern adgif-shader-update! object) ;; (function adgif-shader texture none) +;; (define-extern adgif-shader<-texture-with-update! object) ;; (function adgif-shader texture adgif-shader) +;; (define-extern hack-texture object) +;; (define-extern adgif-shader-login object) ;; (function adgif-shader texture) +;; (define-extern adgif-shader-login-no-remap object) ;; (function adgif-shader texture) +;; (define-extern adgif-shader-login-fast object) ;; (function adgif-shader texture) +;; (define-extern adgif-shader-login-no-remap-fast object) ;; (function adgif-shader texture) +;; (define-extern adgif-shader<-texture-simple! object) ;; (function adgif-shader texture adgif-shader) +;; (define-extern set-dirty-mask! object) +;; (define-extern texture-page-dir-inspect object) ;; (function texture-page-dir symbol none) +;; (define-extern *texture-pool* object) ;; texture-pool + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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? basic :offset-assert 4) + (bucket int32 :offset-assert 8) + (color vector :inline :offset-assert 16) ;; rgba + (color-src vector :inline :offset-assert 32) + (color-dest vector :inline :offset-assert 48) + (extra vector :inline :offset-assert 64) + (speed float :offset-assert 64) + (current-interp float :offset-assert 68) + ) + :method-count-assert 12 + :size-assert #x50 + :flag-assert #xc00000050 + (:methods + (dummy-9 () none 9) ;; (draw (_type_) none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + ) + ) +|# + +#| +(deftype col-rend (basic) + ((draw? basic :offset-assert 4) + (outline? basic :offset-assert 8) + (show-back-faces? basic :offset-assert 12) + (show-normals? basic :offset-assert 16) + (ghost-hidden? basic :offset-assert 20) + (show-only uint32 :offset-assert 24) + (cspec uint32 :offset-assert 28) + (track uint8 :offset-assert 32) + (bbox-radius float :offset-assert 36) + (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 + (dummy-9 () none 9) + ) + ) +|# + +;; (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) +;; (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) +;; (define-extern *stats-perf* 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) +;; (define-extern *display-collide-history* object) ;; int +;; (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 *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) +;; (define-extern *display-sprite-spheres* object) +;; (define-extern *display-entity-errors* 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) ;; int +;; (define-extern *display-battle-marks* object) +;; (define-extern *display-joint-axes* object) +;; (define-extern *display-nav-marks* object) ;; symbol +;; (define-extern *display-nav-network* object) +;; (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) +;; (define-extern *display-actor-pointer* object) +;; (define-extern *display-actor-vis* object) ;; symbol +;; (define-extern *display-actor-graph* object) ;; symbol +;; (define-extern *display-traffic-height-map* object) +;; (define-extern *display-trail-graph* object) +;; (define-extern *display-color-bars* object) +;; (define-extern *display-bug-report* object) +;; (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) +;; (define-extern *display-texture-download* object) ;; symbol +;; (define-extern *display-art-control* object) ;; symbol +;; (define-extern *display-gui-control* object) +;; (define-extern *display-level-spheres* object) ;; symbol +;; (define-extern *time-of-day-fast* object) ;; symbol +;; (define-extern *display-iop-info* object) ;; symbol +;; (define-extern *ambient-sound-class* object) ;; symbol +;; (define-extern *slow-frame-rate* object) ;; symbol +;; (define-extern *display-region-marks* object) +;; (define-extern *execute-regions* object) +;; (define-extern *debug-pause* object) ;; symbol +;; (define-extern *debug-view-anims* object) +;; (define-extern *debug-unkillable* object) +;; (define-extern *debug-actor* object) +;; (define-extern *gun-marks* object) +;; (define-extern *bug-report-output-mode* object) +;; (define-extern *display-scene-control* object) +;; (define-extern *display-bot-marks* object) +;; (define-extern *display-race-marks* object) +;; (define-extern *race-record-path* object) +;; (define-extern *select-race* object) +;; (define-extern *select-race-path* object) +;; (define-extern *bot-record-path* object) +;; (define-extern *subdivide-draw-mode* object) ;; int +;; (define-extern *subdivide-scissor-draw-mode* object) +;; (define-extern *subdivide-foreground-draw-mode* object) +;; (define-extern *subdivide-ocean-draw-mode* object) +;; (define-extern *ocean-height-hack* object) +;; (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) ;; (function none) +;; (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* object) +;; (define-extern debug-actor? object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype cspace (structure) + ((parent cspace :offset-assert 0) + (joint joint :offset-assert 4) ;; guessed by decompiler + (joint-num int16 :offset-assert 8) + (geo basic :offset-assert 12) + (bone bone :offset-assert 16) + (param0 function :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 basic) _type_ 0) + (dummy-9 () none 9) ;; (reset-and-assign-geo! (_type_ basic) _type_ 9) + ) + ) +|# + +#| +(deftype cspace-array (inline-array-class) + ((data cspace :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + (dummy-9 () none 9) ;; (login (_type_) _type_ 9) + (dummy-10 () none 10) ;; (draw (_type_ _type_ display-frame) none 10) + (dummy-11 () none 11) ;; (collide-with-box (_type_ int collide-list) none 11) + (dummy-12 () none 12) ;; (collide-y-probe (_type_ int collide-list) none 12) + (dummy-13 () none 13) ;; (collide-ray (_type_ int collide-list) none 13) + (dummy-14 () none 14) ;; (collect-stats (_type_) none 14) + (dummy-15 () none 15) ;; (debug-draw (_type_ drawable display-frame) none 15) + (dummy-16 () none 16) ;; (unpack-vis (_type_ (pointer int8) (pointer int8)) (pointer int8) 16) + ) + ) +|# + +#| +(deftype drawable-error (drawable) + ((name string :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x24 + :flag-assert #x1100000024 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-group-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-group (drawable) + () + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ;; Failed to read fields. + (:methods + ;; (new (symbol type int) _type_ 0) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-inline-array-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-inline-array (drawable) + ((length int16 :offset-assert 6) + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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? + (:methods + ) + ) +|# + +#| +(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 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; region-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype region (structure) + ((id uint32 :offset-assert 0) + (on-enter basic :offset-assert 4) + (on-inside basic :offset-assert 8) + (on-exit basic :offset-assert 12) + ) + :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 + (dummy-9 () none 9) + ) + ) +|# + +#| +(deftype region-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype drawable-region-prim (drawable) + ((region region :offset-assert 8) + ) + :method-count-assert 20 + :size-assert #x20 + :flag-assert #x1400000020 + (:methods + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + ) + ) +|# + +#| +(deftype drawable-tree-region-prim (drawable-tree) + () + :method-count-assert 19 + :size-assert #x20 + :flag-assert #x1300000020 + ;; Failed to read fields. + (:methods + (dummy-17 () none 17) + (dummy-18 () none 18) + ) + ) +|# + +#| +(deftype drawable-region-sphere (drawable-region-prim) + () + :method-count-assert 20 + :size-assert #x20 + :flag-assert #x1400000020 + (:methods + ) + ) +|# + +#| +(deftype region-face-data (structure) + ((normal vector :inline :offset-assert 0) + (normal-offset float :offset-assert 12) + (num-points uint32 :offset-assert 16) + (points UNKNOWN :dynamic :offset-assert 32) + ) + :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 + (:methods + ) + ) +|# + +#| +(deftype region-face-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype drawable-region-volume (drawable-region-prim) + ((faces basic :offset-assert 12) + ) + :method-count-assert 20 + :size-assert #x20 + :flag-assert #x1400000020 + (:methods + ) + ) +|# + +#| +(deftype region-prim-list (structure) + ((num-items int32 :offset-assert 0) + (items UNKNOWN 320 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x504 + :flag-assert #x900000504 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; traffic-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype traffic-danger-info (structure) + ((sphere sphere :inline :offset-assert 0) + (velocity vector :inline :offset-assert 16) + (handle uint64 :offset-assert 32) + (notify-radius float :offset-assert 40) + (danger-level float :offset-assert 44) + (decay-rate float :offset-assert 48) + (flags uint8 :offset-assert 52) + (danger-type uint8 :offset-assert 53) + ) + :method-count-assert 9 + :size-assert #x36 + :flag-assert #x900000036 + ) +|# + +#| +(deftype traffic-suppression-params (structure) + ((bbox bounding-box :inline :offset-assert 0) + (duration uint64 :offset-assert 32) + (id int8 :offset-assert 40) + ) + :method-count-assert 13 + :size-assert #x29 + :flag-assert #xd00000029 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + ) + ) +|# + +#| +(deftype traffic-object-spawn-params (structure) + ((object-type uint8 :offset-assert 0) + (behavior uint64 :offset-assert 8) + (id uint32 :offset-assert 16) + (nav-mesh basic :offset-assert 20) + (nav-branch basic :offset-assert 24) + (position vector :inline :offset-assert 32) + (rotation quaternion :inline :offset-assert 48) + (velocity vector :inline :offset-assert 64) + (handle uint64 :offset-assert 80) + (guard-type uint8 :offset-assert 88) + (user-data uint32 :offset-assert 92) + (flags uint32 :offset-assert 96) + (proc basic :offset-assert 100) + ) + :method-count-assert 9 + :size-assert #x68 + :flag-assert #x900000068 + ) +|# + +;; (define-extern *traffic-manager* object) +;; (define-extern *ctywide-entity* object) +;; (define-extern *lwide-entity* object) +;; (define-extern *race-vehicle-entity* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-task-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; task-control-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-info (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype game-task-node-info (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype game-task-info (UNKNOWN) + ((name basic :offset-assert 4) + (text-name uint32 :offset-assert 8) + (pre-play-node uint16 :offset-assert 12) + (kiosk-play-node uint16 :offset-assert 14) + (pre-play-continue basic :offset-assert 16) + (play-node uint16 :offset-assert 20) + (play-continue basic :offset-assert 24) + (kiosk-play-continue basic :offset-assert 28) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype task-manager (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype ambient-control (UNKNOWN) + ((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 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern game-task->string object) ;; (function game-task string) +;; (define-extern c-string->game-task object) +;; (define-extern game-task-actor->string object) +;; (define-extern game-task-action->string object) +;; (define-extern game-task-node-flag->string object) +;; (define-extern game-task-node-command->string object) +;; (define-extern *traffic-engine* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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-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 (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-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 + ) +|# + +#| +(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) ;; uint32 + (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 uint32 :offset-assert 0) + (str-prim uint32 :offset-assert 4) + (regs uint32 :offset-assert 8) + (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) ;; ad-cmd :inline + (alpha-translucent gs-adcmd :inline :offset-assert 160) ;; ad-cmd :inline + (ztest-normal gs-adcmd :inline :offset-assert 176) ;; ad-cmd :inline + (ztest-opaque gs-adcmd :inline :offset-assert 192) ;; ad-cmd :inline + (adcmd-offsets uint8 16 :offset-assert 208) ;; guessed by decompiler + (adcmds ad-cmd 4 :offset-assert 144) ;; guessed by decompiler + (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 + ) +|# + +;; (define-extern *gsf-buffer* object) ;; gsf-buffer + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 10 :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 #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype sky-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 sky-vertex (structure) + () + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ;; Failed to read fields. + ) +|# + +#| +(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 UNKNOWN 100 :offset-assert 0) + ) + :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 UNKNOWN 36 :offset-assert 0) + ) + :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 UNKNOWN 2 :offset-assert 224) + (green-coords UNKNOWN 2 :offset-assert 256) + (moon0-coords UNKNOWN 2 :offset-assert 288) + (moon1-coords UNKNOWN 2 :offset-assert 320) + (moon2-coords UNKNOWN 2 :offset-assert 352) + (star-coords UNKNOWN 2 :offset-assert 384) + (sun-colors UNKNOWN 2 :offset-assert 416) + (green-colors UNKNOWN 2 :offset-assert 448) + (moon-colors UNKNOWN 3 :offset-assert 480) + (star-colors UNKNOWN 16 :offset-assert 528) + (st-coords UNKNOWN 2 :offset-assert 784) + (random UNKNOWN 8 :offset-assert 816) + (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-ocean dma-gif :inline :offset-assert 992) + (fog vector :inline :offset-assert 1008) + (sky UNKNOWN 8 :offset-assert 1024) + (time float :offset-assert 1056) + (off-s uint16 :offset-assert 1060) + (off-t uint16 :offset-assert 1062) + (orbit UNKNOWN 3 :offset-assert 1064) + (upload-data sky-upload-data :inline :offset-assert 1168) + (ambi-color vector :inline :offset-assert 1328) + (ambi-color-lower vector :inline :offset-assert 1344) + (sun0-color vector :inline :offset-assert 1360) + (sun1-color vector :inline :offset-assert 1376) + (moon-color vector :inline :offset-assert 1392) + (sun0-color-lower vector :inline :offset-assert 1408) + (cam-mat matrix :inline :offset-assert 1424) + (star-mat matrix :inline :offset-assert 1488) + (vec0 vector4w :inline :offset-assert 1552) + (vec1 vector4w :inline :offset-assert 1568) + (cloud-lights cloud-lights :inline :offset-assert 1584) + (haze-lights haze-lights :inline :offset-assert 1744) + (buf basic :offset-assert 1868) + (draw-vortex basic :offset-assert 1872) + (stars UNKNOWN 512 :offset-assert 1888) + ) + :method-count-assert 37 + :size-assert #x2760 + :flag-assert #x2500002760 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 UNKNOWN 2548 :offset-assert 0) + ) + :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) ;; uint64 + ) + :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 + :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) + (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 UNKNOWN 1024 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x1000 + :flag-assert #x900001000 + ) +|# + +#| +(deftype ocean-vert-array (structure) + ((data UNKNOWN 2048 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8000 + :flag-assert #x900008000 + ) +|# + +#| +(deftype ocean-map (structure) + ((start-corner vector :inline :offset-assert 0) + (far-color vector :inline :offset-assert 16) + (ocean-spheres ocean-spheres :offset-assert 32) + (ocean-colors ocean-colors :offset-assert 36) + (ocean-mid-indices ocean-mid-indices :offset-assert 40) ;; guessed by decompiler + (ocean-trans-indices ocean-trans-indices :offset-assert 44) ;; guessed by decompiler + (ocean-near-indices ocean-near-indices :offset-assert 48) ;; guessed by decompiler + (ocean-mid-masks ocean-mid-masks :offset-assert 52) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x38 + :flag-assert #xb00000038 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype ocean (ocean-map) + ((off basic :offset-assert 56) + (near-off basic :offset-assert 60) + (mid-off basic :offset-assert 64) + (far-on basic :offset-assert 68) + (ocean-facing uint32 :offset-assert 72) + (heights ocean-height-array :offset-assert 76) + (heights2 ocean-height-array :offset-assert 80) + (verts ocean-vert-array :offset-assert 84) + (ocean-near-translucent? basic :offset-assert 88) + (deltas vector :inline :offset-assert 96) + (map-min vector :inline :offset-assert 112) + (map-max vector :inline :offset-assert 128) + (interp vector :inline :offset-assert 144) + (corner-array UNKNOWN 25 :offset-assert 160) + (corner-count int32 :offset-assert 2160) + (temp-vecs UNKNOWN 4 :offset-assert 2176) + (mid-mask-ptrs UNKNOWN 36 :offset-assert 2240) + (mid-camera-masks UNKNOWN 36 :offset-assert 2384) + (trans-mask-ptrs UNKNOWN 64 :offset-assert 2672) + (trans-camera-masks UNKNOWN 16 :offset-assert 2928) + (trans-temp-masks UNKNOWN 16 :offset-assert 2992) + (sprite-tmpl dma-gif-packet :inline :offset-assert 3056) + (sprite-tmpl2 dma-gif-packet :inline :offset-assert 3088) + (sprite-tmpl3 dma-gif-packet :inline :offset-assert 3120) + (adgif-tmpl dma-gif-packet :inline :offset-assert 3152) + (line-tmpl dma-gif-packet :inline :offset-assert 3184) + (sun-tmpl dma-gif-packet :inline :offset-assert 3216) + (erase-tmpl dma-gif-packet :inline :offset-assert 3248) + (haze-tmpl dma-gif-packet :inline :offset-assert 3280) + (cloud-tmpl dma-gif-packet :inline :offset-assert 3312) + (clut-tmpl dma-gif-packet :inline :offset-assert 3344) + (cloud-lights cloud-lights :inline :offset-assert 3376) + (haze-lights haze-lights :inline :offset-assert 3536) + (constant vector :inline :offset-assert 3664) + (sky-color vector :inline :offset-assert 3680) + (haze-verts UNKNOWN 32 :offset-assert 3696) + (cloud-verts UNKNOWN 36 :offset-assert 4208) + (cloud-nrms UNKNOWN 36 :offset-assert 4784) + (cloud-col0 UNKNOWN 36 :offset-assert 5360) + (cloud-col1 UNKNOWN 36 :offset-assert 5936) + (cloud-st0 UNKNOWN 36 :offset-assert 6512) + (cloud-st1 UNKNOWN 36 :offset-assert 7088) + (color80808080 vector4w :inline :offset-assert 7664) + (color80808040 vector4w :inline :offset-assert 7680) + (color80808000 vector4w :inline :offset-assert 7696) + (st0000 vector :inline :offset-assert 7712) + (st0505 vector :inline :offset-assert 7728) + (st1010 vector :inline :offset-assert 7744) + (uv00 vector4w :inline :offset-assert 7760) + (uv44 vector4w :inline :offset-assert 7776) + (uv88 vector4w :inline :offset-assert 7792) + (uv1010 vector4w :inline :offset-assert 7808) + (uv2020 vector4w :inline :offset-assert 7824) + (uv4040 vector4w :inline :offset-assert 7840) + (uv8080 vector4w :inline :offset-assert 7856) + (xy00 vector4w :inline :offset-assert 7872) + (xy88 vector4w :inline :offset-assert 7888) + (xy1010 vector4w :inline :offset-assert 7904) + (xy2020 vector4w :inline :offset-assert 7920) + (xy4040 vector4w :inline :offset-assert 7936) + (xy8080 vector4w :inline :offset-assert 7952) + (cloud-alpha UNKNOWN 36 :offset-assert 7968) + (near-mask-indices UNKNOWN 16 :offset-assert 8004) + (mid-minx uint8 :offset-assert 8036) + (mid-maxx uint8 :offset-assert 8037) + (mid-minz uint8 :offset-assert 8038) + (mid-maxz uint8 :offset-assert 8039) + (near-minx uint8 :offset-assert 8040) + (near-maxx uint8 :offset-assert 8041) + (near-minz uint8 :offset-assert 8042) + (near-maxz uint8 :offset-assert 8043) + (temp-minx uint8 :offset-assert 8044) + (temp-maxx uint8 :offset-assert 8045) + (temp-minz uint8 :offset-assert 8046) + (temp-maxz uint8 :offset-assert 8047) + (tex1 uint64 :offset-assert 8048) + (tex1-near uint64 :offset-assert 8056) + (corner00 float :offset-assert 8064) + (corner01 float :offset-assert 8068) + (corner10 float :offset-assert 8072) + (corner11 float :offset-assert 8076) + (frame-num float :offset-assert 8080) + (frame-speed float :offset-assert 8084) + (frame-num2 float :offset-assert 8088) + (frame-speed2 float :offset-assert 8092) + (cloud-interp float :offset-assert 3676) + (scales vector :inline :offset-assert 8096) + (mask-hi vector4w :inline :offset-assert 8112) + (mask-lo vector4w :inline :offset-assert 8128) + (lights vu-lights :inline :offset-assert 8144) + (uv-scroll-0 vector4w :inline :offset-assert 8256) + (uv-scroll-1 vector4w :inline :offset-assert 8272) + (st-scroll vector2 :inline :offset-assert 8288) + (wait-to-vu0 uint32 :offset-assert 8296) + ) + :method-count-assert 92 + :size-assert #x206c + :flag-assert #x5c0000206c + (:methods + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + (dummy-40 () none 40) + (dummy-41 () none 41) + (dummy-42 () none 42) + (dummy-43 () none 43) + (dummy-44 () none 44) + (dummy-45 () none 45) + (dummy-46 () none 46) + (dummy-47 () none 47) + (dummy-48 () none 48) + (dummy-49 () none 49) + (dummy-50 () none 50) + (dummy-51 () none 51) + (dummy-52 () none 52) + (dummy-53 () none 53) + (dummy-54 () none 54) + (dummy-55 () none 55) + (dummy-56 () none 56) + (dummy-57 () none 57) + (dummy-58 () none 58) + (dummy-59 () none 59) + (dummy-60 () none 60) + (dummy-61 () none 61) + (dummy-62 () none 62) + (dummy-63 () none 63) + (dummy-64 () none 64) + (dummy-65 () none 65) + (dummy-66 () none 66) + (dummy-67 () none 67) + (dummy-68 () none 68) + (dummy-69 () none 69) + (dummy-70 () none 70) + (dummy-71 () none 71) + (dummy-72 () none 72) + (dummy-73 () none 73) + (dummy-74 () none 74) + (dummy-75 () none 75) + (dummy-76 () none 76) + (dummy-77 () none 77) + (dummy-78 () none 78) + (dummy-79 () none 79) + (dummy-80 () none 80) + (dummy-81 () none 81) + (dummy-82 () none 82) + (dummy-83 () none 83) + (dummy-84 () none 84) + (dummy-85 () none 85) + (dummy-86 () none 86) + (dummy-87 () none 87) + (dummy-88 () none 88) + (dummy-89 () none 89) + (dummy-90 () none 90) + (dummy-91 () none 91) + ) + ) +|# + +;; (define-extern *ocean-map* object) ;; ocean-map +;; (define-extern *ocean* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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-tables ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-spheres-city* object) +;; (define-extern *ocean-colors-city* object) +;; (define-extern *ocean-near-indices-city* object) +;; (define-extern *ocean-trans-indices-city* object) +;; (define-extern *ocean-mid-indices-city* object) +;; (define-extern *ocean-mid-masks-city* object) +;; (define-extern *ocean-map-city* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-frames ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-wave-frames* object) ;; (pointer uint32) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + (dummy-9 () none 9) ;; (reset! (_type_) symbol 9) + (dummy-10 () none 10) ;; (set-fade! (_type_ int float float vector) object 10) + ) + ) +|# + +#| +(deftype time-of-day-proc (process) + ((hours int32 :offset-assert 124) + (minutes int32 :offset-assert 128) + (seconds int32 :offset-assert 132) + (old-frame uint64 :offset-assert 140) + (current-frame uint64 :offset-assert 148) + (frames uint64 :offset-assert 156) + (time-of-day float :offset-assert 164) + (time-ratio float :offset-assert 168) + (dest-time-ratio float :offset-assert 172) + (dest-time-delta float :offset-assert 176) + (sun-count int32 :offset-assert 180) + (sun sparticle-launch-control :offset-assert 184) ;; guessed by decompiler + (green-sun-count int32 :offset-assert 188) + (green-sun sparticle-launch-control :offset-assert 192) ;; guessed by decompiler + (moon-count int32 :offset-assert 196) + (moon sparticle-launch-control :offset-assert 200) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #xd0 + :flag-assert #xe005000d0 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + ) + ) +|# + +#| +(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 6 :offset-assert 4) ;; guessed by decompiler + (current-fog mood-fog :inline :offset-assert 32) + (current-sky-color vector :inline :offset-assert 80) + (current-env-color vector :inline :offset-assert 96) + (current-prt-color vector :inline :offset-assert 112) + (current-shadow-color vector :inline :offset-assert 128) + (light-group light-group 8 :offset-assert 144) ;; guessed by decompiler + (current-clouds mood-clouds :inline :offset-assert 1680) + (times UNKNOWN 8 :offset-assert 1696) + (title-light-group light-group :inline :offset-assert 1824) + (filter vector :inline :offset-assert 2016) + (filter-color vector :inline :offset-assert 2032) + (time float :offset-assert 2048) + (target-interp float :offset-assert 2052) + (erase-color rgba :offset-assert 2056) ;; guessed by decompiler + (sky symbol :offset-assert 2060) ;; guessed by decompiler + (use-camera-other basic :offset-assert 2064) + (title-updated symbol :offset-assert 2068) ;; guessed by decompiler + (mode uint32 :offset-assert 2072) + (overide-enable basic :offset-assert 2076) + (overide-palette uint32 :offset-assert 2080) + (max-rain float :offset-assert 2084) + (fog-mult float :offset-assert 2088) + (exterior-level basic :offset-assert 2092) + (ocean-alpha float :offset-assert 2096) + ) + :method-count-assert 9 + :size-assert #x834 + :flag-assert #x900000834 + ) +|# + +#| +(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* object) ;; time-of-day-context + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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-transformq (joint-anim) + () + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ;; Failed to read fields. + ) +|# + +#| +(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 matrix :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) ;; uint32 + (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 13 + :size-assert #x14 + :flag-assert #xd00000014 + (:methods + (dummy-9 () none 9) ;; (login (_type_) _type_ 9) + (dummy-10 () none 10) ;; (lookup-art (_type_ string type) joint 10) + (dummy-11 () none 11) ;; (lookup-idx-of-art (_type_ string type) int 11) + (dummy-12 () none 12) ;; (needs-link? (_type_) symbol 12) + ) + ) +|# + +#| +(deftype art-element (art) + () + :method-count-assert 13 + :size-assert #x20 + :flag-assert #xd00000020 + (:methods + ) + ) +|# + +#| +(deftype art-joint-anim (art-element) + ((speed float :offset-assert 20) + (artist-base float :offset-assert 24) + (artist-step float :offset-assert 28) + (eye-anim basic :offset-assert 4) + (master-art-group-name string :offset-assert 32) ;; guessed by decompiler + (master-art-group-index int32 :offset-assert 36) + (blend-shape-anim basic :offset-assert 40) + (frames joint-anim-compressed-control :offset-assert 44) + ) + :method-count-assert 13 + :size-assert #x30 + :flag-assert #xd00000030 + ;; field blend-shape-anim uses ~A with a signed load + (:methods + ) + ) +|# + +#| +(deftype art-joint-anim-manager-slot (structure) + ((anim basic :offset-assert 0) + (comp-data uint32 :offset-assert 4) + (time-stamp uint64 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype art-joint-anim-manager (basic) + () + :method-count-assert 14 + :size-assert #x430 + :flag-assert #xe00000430 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + ) + ) +|# + +#| +(deftype skeleton-group (art-group) + ((name basic :offset-assert 8) + (length int32 :offset-assert 12) + (extra basic :offset-assert 16) + (info basic :offset-assert 4) + (data UNKNOWN :dynamic :offset-assert 32) + (art-group-name string :offset-assert 32) ;; guessed by decompiler + (jgeo int32 :offset-assert 36) + (janim int32 :offset-assert 40) + (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 int8 :offset-assert 110) + (sort int8 :offset-assert 111) + (origin-joint-index int8 :offset-assert 112) + (shadow-joint-index int8 :offset-assert 113) + (light-index uint8 :offset-assert 114) + ) + :method-count-assert 16 + :size-assert #x74 + :flag-assert #x1000000074 + (:methods + (dummy-15 () none 15) + ) + ) +|# + +#| +(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 + (dummy-9 () none 9) ;; (setup-lods! (_type_ skeleton-group art-group entity) _type_ 9) + ) + ) +|# + +#| +(deftype draw-control (basic) + () + :method-count-assert 15 + :size-assert #xd8 + :flag-assert #xf000000d8 + ;; Failed to read fields. + (:methods + ;; (new (symbol type process art-joint-geo) _type_ 0) + (dummy-9 () none 9) ;; (get-skeleton-origin (_type_) vector 9) + (dummy-10 () none 10) ;; (lod-set! (_type_ int) none 10) + (dummy-11 () none 11) ;; (lods-assign! (_type_ lod-set) none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 UNKNOWN 5 :offset-assert 0) + (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 UNKNOWN 2 :offset-assert 80) + (num-strips uint32 :offset-assert 76) + (num-dps uint32 :offset-assert 92) + (kick-offset uint32 :offset-assert 108) + (shader UNKNOWN :dynamic :offset-assert 112) + ) + :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) + ((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 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(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 + (dummy-9 () none 9) ;; (login-adgifs (_type_) none 9) + ) + ) +|# + +#| +(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-data (UNKNOWN) + ((int8-data int8 :dynamic :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(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 uint32 :offset-assert 8) + (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) + (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 + (dummy-9 () none 9) ;; (login-adgifs (_type_) none 9) + ) + ) +|# + +#| +(deftype merc-eye-ctrl (structure) + ((eye-slot int8 :offset-assert 0) + (shader-offset int8 :offset-assert 1) + (shader-count int8 :offset-assert 2) + (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 UNKNOWN 7 :offset-assert 0) + ) + :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 UNKNOWN 3 :offset-assert 68) + (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 20) + (seg-table basic :offset-assert 24) + (header merc-ctrl-header :inline :offset-assert 32) + (effect merc-effect :dynamic :offset-assert 160) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #xa0 + :flag-assert #xd000000a0 + (:methods + ) + ) +|# + +#| +(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) + (ad-gif qword :inline :offset-assert 16) + (hvdf-offset vector :inline :offset-assert 32) + (perspective UNKNOWN 4 :offset-assert 48) + (fog vector :inline :offset-assert 112) + (unperspect vector :inline :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +#| +(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) ;; uint32 + ) + :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 + ) +|# + +;; (define-extern merc-fragment-fp-data object) ;; (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) ;; pointer + (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) + ) + :method-count-assert 9 + :size-assert #x190 + :flag-assert #x900000190 + ) +|# + +#| +(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 6912) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c00 + :flag-assert #x900001c00 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 ad-cmd 2 :offset-assert 80) ;; guessed by decompiler + (adnop1 gs-adcmd :inline :offset-assert 80) ;; ad-cmd :inline + (adnop2 gs-adcmd :inline :offset-assert 96) ;; ad-cmd :inline + (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 float float float float float) _type_ 0) + (dummy-9 () none 9) ;; (clear-offset-bit (shadow-control) int 9) + (dummy-10 () none 10) ;; (set-offset-bit (shadow-control) int 10) + (dummy-11 () none 11) ;; (set-top-plane-offset (shadow-control float) int 11) + (dummy-12 () none 12) ;; (set-bottom-plane-offset (shadow-control float) int 12) + (dummy-13 () none 13) ;; (unused-13 (_type_) none 13) + (dummy-14 () none 14) ;; (update-direction-from-time-of-day (_type_) none 14) + ) + ) +|# + +#| +(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 uint32 :offset-assert 0) + (next uint32 :offset-assert 4) + (bucket-id int32 :offset-assert 8) + (shadow-color uint32 :offset-assert 12) + (constants basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype shadow-globals (structure) + ((num-buckets uint32 :offset-assert 0) + (cur-bucket uint32 :offset-assert 4) + (bucket UNKNOWN 2 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ) +|# + +#| +(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 uint16 :offset-assert 0) + (ind-1 uint16 :offset-assert 2) + (tri-0 uint16 :offset-assert 4) + (tri-1 uint16 :offset-assert 6) + ) + :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-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-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-old (art-element) + ((version uint32 :offset-assert 20) + (header shadow-frag-header :inline :offset-assert 32) + (total-qwc uint32 :offset-assert 32) + (rest UNKNOWN :dynamic :offset-assert 80) + ) + :method-count-assert 13 + :size-assert #x50 + :flag-assert #xd00000050 + (:methods + ) + ) +|# + +#| +(deftype shadow-geo (art-element) + ((version uint32 :offset-assert 20) + (total-qwc uint32 :offset-assert 32) + (num-joints uint32 :offset-assert 36) + (num-fragments uint32 :offset-assert 40) + (frags UNKNOWN :dynamic :offset-assert 44) + ) + :method-count-assert 13 + :size-assert #x2c + :flag-assert #xd0000002c + (:methods + ) + ) +|# + +;; (define-extern *shadow-globals* object) +;; (define-extern *shadow* object) ;; symbol +;; (define-extern *shadow-object* object) ;; symbol +;; (define-extern *shadow-debug* object) ;; symbol +;; (define-extern *shadow-dma-buf* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shadow-vu1-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; memcard-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mc-file-info (structure) + ((present int32 :offset-assert 0) + (blind-data float 16 :offset-assert 4) ;; guessed by decompiler + (blind-data-int8 int8 64 :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) + (game-time0 uint32 :offset-assert 36) + (game-time1 uint32 :offset-assert 40) + (secrets uint32 :offset-assert 44) + (features uint32 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype mc-slot-info (structure) + ((handle int32 :offset-assert 0) + (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 #x12c + :flag-assert #x90000012c + ) +|# + +;; (define-extern mc-sync object) ;; (function int) +;; (define-extern show-mc-info object) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 highscore-info (structure) + ((flags uint8 :offset-assert 0) + (award-scores UNKNOWN 3 :offset-assert 4) + (bronze-score float :offset-assert 4) + (silver-score float :offset-assert 8) + (gold-score float :offset-assert 12) + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (dummy-9 () none 9) + ) + ) +|# + +#| +(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 + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype load-state (basic) + () + :method-count-assert 22 + :size-assert #x878 + :flag-assert #x1600000878 + ;; Failed to read fields. + (:methods + ;; (new (symbol type) _type_ 0) + (dummy-9 () none 9) ;; (reset! (_type_) _type_ 9) + (dummy-10 () none 10) ;; (update! (_type_) int 10) + (dummy-11 () none 11) ;; (want-levels (_type_ symbol symbol) int 11) + (dummy-12 () none 12) ;; (want-display-level (_type_ symbol symbol) int 12) + (dummy-13 () none 13) ;; (want-vis (_type_ symbol) int 13) + (dummy-14 () none 14) ;; (want-force-vis (_type_ symbol symbol) int 14) + (dummy-15 () none 15) ;; (execute-command (_type_ pair) none 15) + (dummy-16 () none 16) ;; (execute-commands-up-to (_type_ float) int 16) + (dummy-17 () none 17) ;; (backup-load-state-and-set-cmds (_type_ pair) int 17) + (dummy-18 () none 18) ;; (restore-load-state-and-cleanup (_type_) int 18) + (dummy-19 () none 19) ;; (restore-load-state (_type_) int 19) + (dummy-20 () none 20) ;; (set-force-inside! (_type_ symbol symbol) none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype continue-point (basic) + () + :method-count-assert 12 + :size-assert #xd8 + :flag-assert #xc000000d8 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) ;; (debug-draw! (_type_) none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + ) + ) +|# + +#| +(deftype game-info (basic) + ((mode symbol :offset-assert 4) ;; guessed by decompiler + (save-name basic :offset-assert 8) + (life float :offset-assert 12) + (life-max float :offset-assert 16) + (money float :offset-assert 20) + (money-total float :offset-assert 24) + (money-per-level uint8 32 :offset-assert 28) ;; guessed by decompiler + (deaths-per-level uint8 32 :offset-assert 60) ;; guessed by decompiler + (buzzer-total float :offset-assert 92) + (fuel float :offset-assert 96) + (gem float :offset-assert 100) + (gem-total float :offset-assert 104) + (skill float :offset-assert 108) + (skill-total float :offset-assert 112) + (karma float :offset-assert 116) + (eco-pill-dark float :offset-assert 120) + (eco-pill-dark-total float :offset-assert 124) + (features uint64 :offset-assert 128) + (debug-features uint64 :offset-assert 136) + (secrets uint32 :offset-assert 144) + (purchase-secrets uint32 :offset-assert 152) + (gun-type int32 :offset-assert 160) + (gun-ammo UNKNOWN 4 :offset-assert 164) + (shield float :offset-assert 180) + (score float :offset-assert 184) + (score-owner uint64 :offset-assert 192) + (timer uint64 :offset-assert 200) + (timer-owner uint64 :offset-assert 208) + (timer-flash basic :offset-assert 216) + (counter float :offset-assert 220) + (counter-flash basic :offset-assert 224) + (attack-id uint32 :offset-assert 228) + (perm-list entity-perm-array :offset-assert 232) ;; guessed by decompiler + (task-perm-list entity-perm-array :offset-assert 236) ;; guessed by decompiler + (current-continue continue-point :offset-assert 240) ;; guessed by decompiler + (last-continue basic :offset-assert 244) + (task-counter uint32 :offset-assert 260) + (level-opened uint8 32 :offset-assert 268) ;; guessed by decompiler + (total-deaths int32 :offset-assert 300) + (continue-deaths int32 :offset-assert 304) + (task-deaths int32 :offset-assert 308) + (total-trys int32 :offset-assert 312) + (game-start-time uint64 :offset-assert 320) ;; time-frame + (continue-time uint64 :offset-assert 328) ;; time-frame + (death-time uint64 :offset-assert 336) ;; time-frame + (hit-time uint64 :offset-assert 344) ;; time-frame + (task-pickup-time uint64 :offset-assert 352) + (death-pos vector-array :offset-assert 372) ;; guessed by decompiler + (stop-watch-start uint64 :offset-assert 376) + (stop-watch-stop uint64 :offset-assert 384) + (blackout-time uint64 :offset-assert 392) ;; time-frame + (letterbox-time uint64 :offset-assert 400) ;; time-frame + (hint-play-time uint64 :offset-assert 408) ;; time-frame + (display-text-time uint64 :offset-assert 416) ;; time-frame + (display-text-handle uint64 :offset-assert 424) ;; handle + (death-movie-tick int32 :offset-assert 432) + (want-auto-save symbol :offset-assert 436) ;; guessed by decompiler + (auto-save-proc uint64 :offset-assert 440) ;; handle + (auto-save-status mc-status-code :offset-assert 448) ;; guessed by decompiler + (auto-save-card int32 :offset-assert 452) + (auto-save-which int32 :offset-assert 456) + (auto-save-count int32 :offset-assert 460) + (pov-camera-handle uint64 :offset-assert 464) ;; handle + (other-camera-handle uint64 :offset-assert 472) ;; handle + (controller UNKNOWN 2 :offset-assert 480) + (race-timer uint64 :offset-assert 496) + (race-current-lap-count int32 :offset-assert 504) + (race-total-lap-count int32 :offset-assert 508) + (race-position int32 :offset-assert 512) + (race-number-turbos int32 :offset-assert 516) + (bot-health UNKNOWN 3 :offset-assert 520) + (demo-state uint32 :offset-assert 532) + (wanted-flash basic :offset-assert 536) + (distance float :offset-assert 540) + (kiosk-timeout uint64 :offset-assert 544) + (pause-start-time uint64 :offset-assert 552) + (game-score basic :offset-assert 560) + (goal float :offset-assert 564) + (miss float :offset-assert 568) + (miss-max float :offset-assert 572) + (live-eco-pill-count int32 :offset-assert 580) + (live-gem-count int32 :offset-assert 584) + (air-supply float :offset-assert 588) + (homing-beacon int32 :offset-assert 592) + (dark-eco-pickup int32 :offset-assert 596) + (green-eco-pickup int32 :offset-assert 600) + ) + :method-count-assert 31 + :size-assert #x25c + :flag-assert #x1f0000025c + (:methods + (dummy-9 () none 9) ;; (initialize! (_type_ symbol game-save string) _type_ 9) + (dummy-10 () none 10) ;; (adjust (_type_ symbol float handle) float 10) + (dummy-11 () none 11) ;; (task-complete? (_type_ game-task) symbol 11) + (dummy-12 () none 12) ;; (lookup-entity-perm-by-aid (_type_ actor-id) entity-perm 12) + (dummy-13 () none 13) ;; (get-entity-task-perm (_type_ game-task) entity-perm 13) + (dummy-14 () none 14) ;; (copy-perms-from-level! (_type_ level) none 14) + (dummy-15 () none 15) ;; (copy-perms-to-level! (_type_ level) none 15) + (dummy-16 () none 16) ;; (debug-print (_type_ symbol) _type_ 16) + (dummy-17 () none 17) ;; (get-or-create-continue! (_type_) continue-point 17) + (dummy-18 () none 18) ;; (get-continue-by-name (_type_ string) continue-point 18) + (dummy-19 () none 19) ;; (set-continue! (_type_ basic) continue-point 19) + (dummy-20 () none 20) ;; (buzzer-count (_type_ game-task) int 20) + (dummy-21 () none 21) ;; (seen-text? (_type_ game-text-id) symbol 21) + (dummy-22 () none 22) ;; (mark-text-as-seen (_type_ game-text-id) none 22) + (dummy-23 () none 23) ;; (got-buzzer? (_type_ game-task int) symbol 23) + (dummy-24 () none 24) ;; (save-game! (_type_ game-save string) none 24) + (dummy-25 () none 25) ;; (load-game! (_type_ game-save) game-save 25) + (dummy-26 () none 26) ;; (clear-text-seen! (_type_ game-text-id) none 26) + (dummy-27 () none 27) ;; (get-death-count (_type_ symbol) int 27) + (dummy-28 () none 28) ;; (get-health-percent-lost (_type_ symbol) float 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + ) + ) +|# + +;; (define-extern *GAME-bank* object) ;; game-bank +;; (define-extern *game-info* object) ;; game-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gui-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gui-connection (connection) + () + :method-count-assert 14 + :size-assert #x30 + :flag-assert #xe00000030 + ;; Failed to read fields. + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ambient-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype talker-speech-class (structure) + ((name basic :offset-assert 0) + (channel uint8 :offset-assert 4) + (flags uint8 :offset-assert 5) + (speech uint16 :offset-assert 6) + (text-message uint32 :offset-assert 8) + (text-duration uint16 :offset-assert 12) + (delay uint16 :offset-assert 14) + (pos uint16 :offset-assert 16) + (neg uint16 :offset-assert 18) + (on-close basic :offset-assert 20) + ) + :method-count-assert 14 + :size-assert #x18 + :flag-assert #xe00000018 + ;; field on-close uses ~A with a signed load + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + ) + ) +|# + +#| +(deftype talker (process) + ((trans vector :inline :offset-assert 124) + (message talker-speech-class :offset-assert 140) + (total-time uint64 :offset-assert 148) + (total-off-time uint64 :offset-assert 156) + (start-time uint64 :offset-assert 164) + (state-time uint64 :offset-assert 172) + (voicebox uint64 :offset-assert 180) + (voice-id uint32 :offset-assert 188) + (message-id uint32 :offset-assert 192) + (region region :offset-assert 196) + (interp float :offset-assert 200) + (save? basic :offset-assert 204) + ) + :method-count-assert 18 + :size-assert #xd4 + :flag-assert #x12006000d4 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + ) + ) +|# + +;; (define-extern *talker-speech* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype speech-type-info (structure) + () + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ;; Failed to read fields. + ) +|# + +#| +(deftype speech-request (structure) + ((handle uint64 :offset-assert 0) + (time uint64 :offset-assert 8) + (priority float :offset-assert 16) + (speech-type int8 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x15 + :flag-assert #x900000015 + ) +|# + +#| +(deftype speech-channel (structure) + () + :method-count-assert 14 + :size-assert #x64 + :flag-assert #xe00000064 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + ) + ) +|# + +#| +(deftype speech-control (structure) + ((channel-array UNKNOWN 2 :offset-assert 0) + (speech-table UNKNOWN 57 :offset-assert 224) + ) + :method-count-assert 17 + :size-assert #x1c4 + :flag-assert #x11000001c4 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wind-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wind-vector (structure) + ((wind-pos vector4w :inline :offset-assert 0) ;; vector2w :inline + (wind-vel vector4w :inline :offset-assert 16) ;; vector2w :inline + (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 UNKNOWN 3 :offset-assert 1400) + ) + :method-count-assert 9 + :size-assert #x584 + :flag-assert #x900000584 + ) +|# + +#| +(deftype wind-dma (structure) + ((buffer0 UNKNOWN 128 :offset-assert 0) + (buffer1 UNKNOWN 128 :offset-assert 4096) + (buffer2 UNKNOWN 128 :offset-assert 8192) + ) + :method-count-assert 9 + :size-assert #x3000 + :flag-assert #x900003000 + ) +|# + +;; (define-extern *wind-scales* object) ;; (array uint8) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prototype-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype prototype-bucket (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (flags uint16 :offset-assert 8) ;; uint32 + (texture-masks-index uint16 :offset-assert 10) + (in-level uint16 :offset-assert 12) + (utextures 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 + (:methods + ) + ) +|# + +#| +(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 basic :offset-assert 176) + (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 UNKNOWN 4 :offset-assert 64) + (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 UNKNOWN 4 :offset-assert 64) + (trans-scissor-next UNKNOWN 4 :offset-assert 64) + (trans-near-next uint32 :offset-assert 68) + (trans-mid-next uint32 :offset-assert 72) + (trans-far-next uint32 :offset-assert 76) + (water-next UNKNOWN 4 :offset-assert 64) + (water-scissor-next UNKNOWN 4 :offset-assert 64) + (water-near-next uint32 :offset-assert 68) + (water-mid-next uint32 :offset-assert 72) + (water-far-next uint32 :offset-assert 76) + (envmap-next UNKNOWN 4 :offset-assert 80) + (envmap-scissor-next UNKNOWN 4 :offset-assert 80) + (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 UNKNOWN 4 :offset-assert 112) + (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 UNKNOWN 4 :offset-assert 112) + (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 UNKNOWN 4 :offset-assert 112) + (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 UNKNOWN 4 :offset-assert 120) + (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 + (dummy-9 () none 9) ;; (login (_type_) none 9) + ) + ) +|# + +#| +(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 instance (drawable) + ((bucket-index uint16 :offset-assert 6) + (origin matrix4h :inline :offset-assert 32) + (flags uint16 :offset-assert 46) + (wind-index uint16 :offset-assert 62) + ) + :method-count-assert 17 + :size-assert #x40 + :flag-assert #x1100000040 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; joint-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype joint-control-channel (structure) + () + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ;; Failed to read fields. + ) +|# + +#| +(deftype top-anim-joint-control (basic) + ((process uint32 :offset-assert 4) + (interp-select UNKNOWN 2 :offset-assert 8) + (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 basic :offset-assert 40) + (frame-group-push basic :offset-assert 44) + (frame-num float :offset-assert 48) + (frame-targ basic :offset-assert 52) + (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) + (frame-post-put-away basic :offset-assert 88) + (update-time uint64 :offset-assert 96) + ) + :method-count-assert 13 + :size-assert #x68 + :flag-assert #xd00000068 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + ) + ) +|# + +#| +(deftype joint-control (basic) + () + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + ;; Failed to read fields. + (:methods + ;; (new (symbol type int) _type_ 0) + (dummy-9 () none 9) ;; (current-cycle-distance (_type_) float 9) + (dummy-10 () none 10) ;; (debug-print-channels (_type_ symbol) int 10) + (dummy-11 () none 11) + ) + ) +|# + +#| +(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 joint-anim-compressed-hdr 16 :offset-assert 0) ;; guessed by decompiler + (bone bone 16 :offset-assert 1024) ;; guessed by decompiler + (output UNKNOWN 16 :offset-assert 2304) + ) + :method-count-assert 9 + :size-assert #x1100 + :flag-assert #x900001100 + ) +|# + +#| +(deftype bone-layout (structure) + ((data uint16 8 :offset-assert 0) ;; guessed by decompiler + (joint joint 2 :offset-assert 0) ;; guessed by decompiler + (bone bone 2 :offset-assert 8) ;; guessed by decompiler + (output uint32 2 :offset-assert 16) ;; guessed by decompiler + (unused UNKNOWN 2 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype bone-regs (structure) + ((dma-buf basic :offset-assert 0) + (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 uint32 :offset-assert 32) + ) + :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 matrix) :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 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + ) + :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) + ) + :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 UNKNOWN 7 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x150 + :flag-assert #x900000150 + ) +|# + +#| +(deftype foreground-bucket-grid (structure) + ((level-buckets UNKNOWN 7 :offset-assert 0) + (warp-chain mercneric-chain :inline :offset-assert 2352) + ) + :method-count-assert 9 + :size-assert #x944 + :flag-assert #x900000944 + ) +|# + +#| +(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 uint32 :offset-assert 24) + (bone-ptr uint32 :offset-assert 28) + (num-bones uint32 :offset-assert 32) + (mtxs uint32 :offset-assert 36) + (dma-buf basic :offset-assert 40) + (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 UNKNOWN 7 :offset-assert 64) + (grid foreground-bucket-grid :inline :offset-assert 80) + (bounds sphere :inline :offset-assert 2464) + (lights vu-lights :inline :offset-assert 2480) + (distance vector :inline :offset-assert 2592) + (next-tmpl dma-packet :inline :offset-assert 2608) + ) + :method-count-assert 9 + :size-assert #xa40 + :flag-assert #x900000a40 + ) +|# + +#| +(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 2384) + (texscroll texscroll-globals :inline :offset-assert 3024) + ) + :method-count-assert 9 + :size-assert #xc54 + :flag-assert #x900000c54 + ) +|# + +#| +(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 object) ;; (function pointer int) +;; (define-extern *foreground* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; engines ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *background-draw-engine* object) ;; engine +;; (define-extern *matrix-engine* object) ;; (array handle) +;; (define-extern *part-engine* object) +;; (define-extern *camera-engine* object) ;; engine +;; (define-extern *debug-engine* object) ;; engine +;; (define-extern *pad-engine* object) +;; (define-extern *lightning-engine* object) +;; (define-extern *hud-engine* object) +;; (define-extern *task-manager-engine* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lightning-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lightning-spec (basic) + ((name basic :offset-assert 4) + (flags uint16 :offset-assert 8) + (rand-func uint8 :offset-assert 10) + (adjust-distance uint8 :offset-assert 11) + (start-color uint32 :offset-assert 12) + (end-color uint32 :offset-assert 16) + (fade-to-color uint32 :offset-assert 20) + (fade-start-factor float :offset-assert 24) + (fade-time float :offset-assert 28) + (texture uint32 :offset-assert 32) + (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 basic :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 basic :offset-assert 128) + (meet basic :offset-assert 132) + (path basic :offset-assert 136) + (start-color uint32 :offset-assert 140) + (end-color uint32 :offset-assert 144) + ) + :method-count-assert 9 + :size-assert #x94 + :flag-assert #x900000094 + ) +|# + +#| +(deftype lightning-control (basic) + ((spec basic :offset-assert 4) + (process uint32 :offset-assert 8) + (state lightning-state :inline :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #xa4 + :flag-assert #xe000000a4 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + ) + ) +|# + +#| +(deftype lightning-probe-vars (basic) + ((src-joint-index uint32 :offset-assert 4) + (next-spawn-time uint64 :offset-assert 8) + (last-valid-time uint64 :offset-assert 16) + (point UNKNOWN 2 :offset-assert 32) + (start-pos vector :inline :offset-assert 32) + (end-pos vector :inline :offset-assert 48) + (probe-dirs uint32 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +;; (define-extern lookup-lightning-spec-by-name object) +;; (define-extern *lightning-probe-vars* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; res-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype res-lump (basic) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (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 int int) _type_ 0) + (dummy-9 () none 9) ;; (get-property-data (_type_ symbol symbol float pointer (pointer res-tag) pointer) pointer 9) + (dummy-10 () none 10) ;; (get-property-struct (_type_ symbol symbol float structure (pointer res-tag) pointer) structure 10) + (dummy-11 () none 11) ;; (get-property-value (_type_ symbol symbol float uint128 (pointer res-tag) pointer) uint128 11) + (dummy-12 () none 12) ;; (get-property-value-float (_type_ symbol symbol float float (pointer res-tag) pointer) float 12) + (dummy-13 () none 13) ;; (get-tag-index-data (_type_ int) pointer 13) + (dummy-14 () none 14) ;; (get-tag-data (_type_ res-tag) pointer 14) + (dummy-15 () none 15) ;; (allocate-data-memory-for-tag! (_type_ res-tag) res-tag 15) + (dummy-16 () none 16) ;; (sort! (_type_) _type_ 16) + (dummy-17 () none 17) ;; (add-data! (_type_ res-tag pointer) res-lump 17) + (dummy-18 () none 18) ;; (add-32bit-data! (_type_ res-tag object) res-lump 18) + (dummy-19 () none 19) ;; (lookup-tag-idx (_type_ symbol symbol float) res-tag-pair 19) + (dummy-20 () none 20) ;; (make-property-data (_type_ float res-tag-pair pointer) pointer 20) + (dummy-21 () none 21) ;; (get-curve-data! (_type_ curve symbol symbol float) symbol 21) + ) + ) +|# + +;; (define-extern *res-key-string* object) ;; string + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; res ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype res-lump (basic) + () + :method-count-assert 22 + :size-assert #x20 + :flag-assert #x1600000020 + ;; Failed to read fields. + (:methods + ;; (new (symbol type int int) _type_ 0) + (dummy-9 () none 9) ;; (get-property-data (_type_ symbol symbol float pointer (pointer res-tag) pointer) pointer 9) + (dummy-10 () none 10) ;; (get-property-struct (_type_ symbol symbol float structure (pointer res-tag) pointer) structure 10) + (dummy-11 () none 11) ;; (get-property-value (_type_ symbol symbol float uint128 (pointer res-tag) pointer) uint128 11) + (dummy-12 () none 12) ;; (get-property-value-float (_type_ symbol symbol float float (pointer res-tag) pointer) float 12) + (dummy-13 () none 13) ;; (get-tag-index-data (_type_ int) pointer 13) + (dummy-14 () none 14) ;; (get-tag-data (_type_ res-tag) pointer 14) + (dummy-15 () none 15) ;; (allocate-data-memory-for-tag! (_type_ res-tag) res-tag 15) + (dummy-16 () none 16) ;; (sort! (_type_) _type_ 16) + (dummy-17 () none 17) ;; (add-data! (_type_ res-tag pointer) res-lump 17) + (dummy-18 () none 18) ;; (add-32bit-data! (_type_ res-tag object) res-lump 18) + (dummy-19 () none 19) ;; (lookup-tag-idx (_type_ symbol symbol float) res-tag-pair 19) + (dummy-20 () none 20) ;; (make-property-data (_type_ float res-tag-pair pointer) pointer 20) + (dummy-21 () none 21) ;; (get-curve-data! (_type_ curve symbol symbol float) symbol 21) + ) + ) +|# + +;; (define-extern *res-static-buf* object) ;; pointer + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lights ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *light-hash-work* object) +;; (define-extern light-slerp object) ;; (function light light light float light) +;; (define-extern light-group-slerp object) ;; (function light-group light-group light-group float light-group) +;; (define-extern light-group-process! object) ;; (function vu-lights light-group vector vector none) +;; (define-extern *default-lights* object) ;; vu-lights +;; (define-extern vu-lights-default! object) ;; (function vu-lights vu-lights) +;; (define-extern init-light-hash object) +;; (define-extern light-hash-count-items object) +;; (define-extern light-hash-add-items object) +;; (define-extern reset-light-hash object) +;; (define-extern update-light-hash object) +;; (define-extern lookup-light-sphere-by-name object) +;; (define-extern light-hash-get-bucket-index object) +;; (define-extern add-light-sphere-to-light-group object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dynamics-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dynamics (basic) + ((name basic :offset-assert 4) + (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 + (dummy-9 () none 9) + ) + ) +|# + +;; (define-extern time-to-apex object) ;; (function float float int) +;; (define-extern time-to-ground object) ;; (function float float float int) +;; (define-extern *standard-dynamics* object) ;; dynamics + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; surface-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype surface (basic) + () + :method-count-assert 9 + :size-assert #x9c + :flag-assert #x90000009c + ;; Failed to read fields. + ) +|# + +;; (define-extern calc-terminal-vel object) ;; (function float float float float) +;; (define-extern calc-terminal2-vel object) ;; (function float float float float float) +;; (define-extern calc-terminal4-vel object) ;; (function float float float float) +;; (define-extern surface-interp! object) ;; (function surface surface surface float surface) +;; (define-extern surface-mult! object) ;; (function surface surface surface surface) +;; (define-extern surface-clamp-speed object) ;; (function surface surface surface int none) +;; (define-extern *walk-mods* object) ;; surface +;; (define-extern *walk-no-turn-mods* object) ;; surface +;; (define-extern *turn-around-mods* object) ;; surface +;; (define-extern *jump-mods* object) ;; surface +;; (define-extern *double-jump-mods* object) ;; surface +;; (define-extern *smack-jump-mods* object) ;; surface +;; (define-extern *high-jump-mods* object) ;; surface +;; (define-extern *launch-jump-mods* object) ;; surface +;; (define-extern *forward-high-jump-mods* object) ;; surface +;; (define-extern *flip-jump-mods* object) ;; surface +;; (define-extern *forward-jump-mods* object) ;; surface +;; (define-extern *forward-pole-jump-mods* object) ;; surface +;; (define-extern *dark-jump-mods* object) +;; (define-extern *roll-mods* object) +;; (define-extern *roll-flip-mods* object) +;; (define-extern *flop-mods* object) ;; surface +;; (define-extern *flop-land-mods* object) ;; surface +;; (define-extern *wade-mods* object) ;; surface +;; (define-extern *swim-mods* object) ;; surface +;; (define-extern *dive-mods* object) ;; surface +;; (define-extern *dive-bottom-mods* object) ;; surface +;; (define-extern *pole-mods* object) ;; surface +;; (define-extern *grab-mods* object) ;; surface +;; (define-extern *edge-grab-mods* object) ;; surface +;; (define-extern *empty-mods* object) ;; surface +;; (define-extern *neutral-mods* object) ;; surface +;; (define-extern *stone-surface* object) ;; surface +;; (define-extern *gravel-surface* object) +;; (define-extern *edge-surface* object) ;; surface +;; (define-extern *wade-surface* object) ;; surface +;; (define-extern *quicksand-surface* object) ;; surface +;; (define-extern *tar-surface* object) ;; surface +;; (define-extern *ice-surface* object) ;; surface +;; (define-extern *rail-surface* object) +;; (define-extern *standard-ground-surface* object) ;; surface +;; (define-extern *swim-surface* object) ;; surface + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pat-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pat-surface (uint32) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ;; Failed to read some fields. + ) +|# + +#| +(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 object) ;; (function pat-surface string) +;; (define-extern pat-mode->string object) ;; (function pat-surface string) +;; (define-extern pat-event->string object) ;; (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-single-inc float :offset-assert 44) + (health-default-inc float :offset-assert 48) + (health-darkjak-inc float :offset-assert 52) + (health-darkjak-min float :offset-assert 56) + (health-darkjak-error float :offset-assert 60) + (eco-pill-green-max-default float :offset-assert 64) + (eco-pill-dark-max-default float :offset-assert 68) + (health-small-inc float :offset-assert 72) + (buzzer-max-default float :offset-assert 76) + (buzzer-single-inc float :offset-assert 80) + (suck-bounce-dist meters :offset-assert 84) + (suck-suck-dist meters :offset-assert 88) + (default-eco-pill-green-inc float :offset-assert 92) + (default-eco-pill-dark-inc float :offset-assert 96) + (ammo-yellow-max float :offset-assert 100) + (ammo-red-max float :offset-assert 104) + (ammo-blue-max float :offset-assert 108) + (ammo-dark-max float :offset-assert 112) + (ammo-yellow-start float :offset-assert 116) + (ammo-red-start float :offset-assert 120) + (ammo-blue-start float :offset-assert 124) + (ammo-dark-start float :offset-assert 128) + (shield-max float :offset-assert 132) + (shield-use-speed float :offset-assert 136) + (shield-time-min seconds :offset-assert 144) + (trick-point-max float :offset-assert 152) + (super-skill-inc float :offset-assert 156) + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype fact-info (basic) + () + :method-count-assert 12 + :size-assert #x28 + :flag-assert #xc00000028 + ;; Failed to read fields. + (:methods + ;; (new (symbol type process-drawable pickup-type float) _type_ 0) + (dummy-9 () none 9) ;; (drop-pickup (_type_ symbol process-tree fact-info int) (pointer process) 9) + (dummy-10 () none 10) ;; (reset! (_type_ symbol) none 10) + (dummy-11 () none 11) ;; (pickup-collectable! (_type_ pickup-type float handle) float 11) + ) + ) +|# + +#| +(deftype fact-info-target (fact-info) + () + :method-count-assert 13 + :size-assert #x110 + :flag-assert #xd00000110 + ;; Failed to read fields. + (:methods + ;; (new (symbol type process-drawable pickup-type float) _type_ 0) + (dummy-12 () none 12) + ) + ) +|# + +#| +(deftype fact-info-enemy (fact-info) + () + :method-count-assert 13 + :size-assert #x53 + :flag-assert #xd00000053 + ;; Failed to read fields. + (:methods + ;; (new (symbol type process-drawable pickup-type float) _type_ 0) + (dummy-12 () none 12) + ) + ) +|# + +#| +(deftype fact-info-crate (fact-info) + () + :method-count-assert 12 + :size-assert #x2c + :flag-assert #xc0000002c + ;; Failed to read fields. + (:methods + ) + ) +|# + +#| +(deftype fact-info-enemy-defaults (basic) + ((idle-distance meters :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern *FACT-bank* object) ;; fact-bank +;; (define-extern pickup-type->string object) ;; (function pickup-type string) +;; (define-extern *fact-info-enemy-defaults* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; aligner-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype align-control (basic) + ((flags align-flags :offset-assert 4) ;; guessed by decompiler + (process process-drawable :offset-assert 8) ;; guessed by decompiler + (frame-group art-joint-anim :offset-assert 12) ;; guessed by decompiler + (frame-num float :offset-assert 16) + (matrix matrix 2 :offset-assert 32) ;; guessed by decompiler + (transform transform 2 :offset-assert 160) ;; guessed by decompiler + (delta transformq :inline :offset-assert 256) + (last-speed meters :offset-assert 304) + (align transformq :inline :offset-assert 160) + ) + :method-count-assert 14 + :size-assert #x134 + :flag-assert #xe00000134 + (:methods + ;; (new (symbol type process) _type_ 0) + (dummy-9 () none 9) ;; (compute-alignment! (_type_) transformq 9) + (dummy-10 () none 10) ;; (align! (_type_ align-opts float float float) trsqv 10) + (dummy-11 () none 11) ;; (align-vel-and-quat-only! (_type_ align-opts vector int float float) trsqv 11) + (dummy-12 () none 12) ;; (first-transform (_type_) transform 12) + (dummy-13 () none 13) ;; (snd-transform (_type_) transform 13) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; penetrate-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern penetrate-using->damage object) +;; (define-extern penetrated-by-all&hit-points->penetrated-by object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype process-drawable (process) + ((root trsqv :offset-assert 124) ;; guessed by decompiler + (node-list cspace-array :offset-assert 128) ;; guessed by decompiler + (draw draw-control :offset-assert 132) ;; guessed by decompiler + (skel joint-control :offset-assert 136) ;; guessed by decompiler + (nav nav-control :offset-assert 140) ;; guessed by decompiler + (align align-control :offset-assert 144) ;; guessed by decompiler + (path path-control :offset-assert 148) ;; guessed by decompiler + (vol vol-control :offset-assert 152) ;; guessed by decompiler + (fact fact-info :offset-assert 156) ;; guessed by decompiler + (link actor-link-info :offset-assert 160) ;; guessed by decompiler + (part sparticle-launch-control :offset-assert 164) ;; guessed by decompiler + (water water-control :offset-assert 168) ;; guessed by decompiler + (sound ambient-sound :offset-assert 172) ;; guessed by decompiler + (carry basic :offset-assert 176) + (rbody basic :offset-assert 180) + (state-flags state-flags :offset-assert 184) ;; guessed by decompiler + (state-time uint64 :offset-assert 188) ;; time-frame + ) + :method-count-assert 20 + :size-assert #xc8 + :flag-assert #x14005000c8 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) ;; (initialize-skeleton (_type_ skeleton-group pair) none 14) + (dummy-15 () none 15) ;; (initialize-skeleton-by-name (_type_ string object) _type_ 15) + (dummy-16 () none 16) ;; (apply-alignment (_type_ align-opts transformq vector) collide-shape 16) + (dummy-17 () none 17) ;; (do-joint-math! (_type_) none 17) + (dummy-18 () none 18) ;; (cleanup-for-death (_type_) none 18) + (dummy-19 () none 19) ;; (evaluate-joint-control (_type_) none 19) + ) + ) +|# + +#| +(deftype process-drawable-reserved (process-drawable) + () + :method-count-assert 178 + :size-assert #xc8 + :flag-assert #xb2005000c8 + (:methods + (dummy-20 () none 20) ;; (dummy-20 () none 20) + (dummy-21 () none 21) ;; (dummy-21 () none 21) + (dummy-22 () none 22) ;; (dummy-22 () none 22) + (dummy-23 () none 23) ;; (dummy-23 () none 23) + (dummy-24 () none 24) ;; (dummy-24 () none 24) + (dummy-25 () none 25) ;; (dummy-25 () none 25) + (dummy-26 () none 26) ;; (dummy-26 () none 26) + (dummy-27 () none 27) ;; (dummy-27 () none 27) + (dummy-28 () none 28) ;; (dummy-28 () none 28) + (dummy-29 () none 29) ;; (dummy-29 () none 29) + (dummy-30 () none 30) ;; (dummy-30 () none 30) + (dummy-31 () none 31) ;; (dummy-31 () none 31) + (dummy-32 () none 32) ;; (dummy-32 () none 32) + (dummy-33 () none 33) ;; (dummy-33 () none 33) + (dummy-34 () none 34) ;; (dummy-34 () none 34) + (dummy-35 () none 35) ;; (dummy-35 () none 35) + (dummy-36 () none 36) ;; (dummy-36 () none 36) + (dummy-37 () none 37) ;; (dummy-37 () none 37) + (dummy-38 () none 38) ;; (dummy-38 () none 38) + (dummy-39 () none 39) ;; (dummy-39 () none 39) + (dummy-40 () none 40) ;; (dummy-40 () none 40) + (dummy-41 () none 41) ;; (dummy-41 () none 41) + (dummy-42 () none 42) ;; (dummy-42 () none 42) + (dummy-43 () none 43) ;; (dummy-43 () none 43) + (dummy-44 () none 44) ;; (dummy-44 () none 44) + (dummy-45 () none 45) ;; (dummy-45 () none 45) + (dummy-46 () none 46) ;; (dummy-46 () none 46) + (dummy-47 () none 47) ;; (dummy-47 () none 47) + (dummy-48 () none 48) ;; (dummy-48 () none 48) + (dummy-49 () none 49) ;; (dummy-49 () none 49) + (dummy-50 () none 50) ;; (dummy-50 () none 50) + (dummy-51 () none 51) ;; (dummy-51 () none 51) + (dummy-52 () none 52) ;; (dummy-52 () none 52) + (dummy-53 () none 53) ;; (dummy-53 () none 53) + (dummy-54 () none 54) ;; (dummy-54 () none 54) + (dummy-55 () none 55) ;; (dummy-55 () none 55) + (dummy-56 () none 56) ;; (dummy-56 () none 56) + (dummy-57 () none 57) ;; (dummy-57 () none 57) + (dummy-58 () none 58) ;; (dummy-58 () none 58) + (dummy-59 () none 59) ;; (dummy-59 () none 59) + (dummy-60 () none 60) ;; (dummy-60 () none 60) + (dummy-61 () none 61) ;; (dummy-61 () none 61) + (dummy-62 () none 62) ;; (dummy-62 () none 62) + (dummy-63 () none 63) + (dummy-64 () none 64) + (dummy-65 () none 65) + (dummy-66 () none 66) + (dummy-67 () none 67) + (dummy-68 () none 68) + (dummy-69 () none 69) + (dummy-70 () none 70) + (dummy-71 () none 71) + (dummy-72 () none 72) + (dummy-73 () none 73) + (dummy-74 () none 74) + (dummy-75 () none 75) + (dummy-76 () none 76) + (dummy-77 () none 77) + (dummy-78 () none 78) + (dummy-79 () none 79) + (dummy-80 () none 80) + (dummy-81 () none 81) + (dummy-82 () none 82) + (dummy-83 () none 83) + (dummy-84 () none 84) + (dummy-85 () none 85) + (dummy-86 () none 86) + (dummy-87 () none 87) + (dummy-88 () none 88) + (dummy-89 () none 89) + (dummy-90 () none 90) + (dummy-91 () none 91) + (dummy-92 () none 92) + (dummy-93 () none 93) + (dummy-94 () none 94) + (dummy-95 () none 95) + (dummy-96 () none 96) + (dummy-97 () none 97) + (dummy-98 () none 98) + (dummy-99 () none 99) + (dummy-100 () none 100) + (dummy-101 () none 101) + (dummy-102 () none 102) + (dummy-103 () none 103) + (dummy-104 () none 104) + (dummy-105 () none 105) + (dummy-106 () none 106) + (dummy-107 () none 107) + (dummy-108 () none 108) + (dummy-109 () none 109) + (dummy-110 () none 110) + (dummy-111 () none 111) + (dummy-112 () none 112) + (dummy-113 () none 113) + (dummy-114 () none 114) + (dummy-115 () none 115) + (dummy-116 () none 116) + (dummy-117 () none 117) + (dummy-118 () none 118) + (dummy-119 () none 119) + (dummy-120 () none 120) + (dummy-121 () none 121) + (dummy-122 () none 122) + (dummy-123 () none 123) + (dummy-124 () none 124) + (dummy-125 () none 125) + (dummy-126 () none 126) + (dummy-127 () none 127) + (dummy-128 () none 128) + (dummy-129 () none 129) + (dummy-130 () none 130) + (dummy-131 () none 131) + (dummy-132 () none 132) + (dummy-133 () none 133) + (dummy-134 () none 134) + (dummy-135 () none 135) + (dummy-136 () none 136) + (dummy-137 () none 137) + (dummy-138 () none 138) + (dummy-139 () none 139) + (dummy-140 () none 140) + (dummy-141 () none 141) + (dummy-142 () none 142) + (dummy-143 () none 143) + (dummy-144 () none 144) + (dummy-145 () none 145) + (dummy-146 () none 146) + (dummy-147 () none 147) + (dummy-148 () none 148) + (dummy-149 () none 149) + (dummy-150 () none 150) + (dummy-151 () none 151) + (dummy-152 () none 152) + (dummy-153 () none 153) + (dummy-154 () none 154) + (dummy-155 () none 155) + (dummy-156 () none 156) + (dummy-157 () none 157) + (dummy-158 () none 158) + (dummy-159 () none 159) + (dummy-160 () none 160) + (dummy-161 () none 161) + (dummy-162 () none 162) + (dummy-163 () none 163) + (dummy-164 () none 164) + (dummy-165 () none 165) + (dummy-166 () none 166) + (dummy-167 () none 167) + (dummy-168 () none 168) + (dummy-169 () none 169) + (dummy-170 () none 170) + (dummy-171 () none 171) + (dummy-172 () none 172) + (dummy-173 () none 173) + (dummy-174 () none 174) + (dummy-175 () none 175) + (dummy-176 () none 176) + (dummy-177 () none 177) + ) + ) +|# + +#| +(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) + () + :method-count-assert 12 + :size-assert #xa0 + :flag-assert #xc000000a0 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) ;; (combine! (_type_ attack-info) none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + ) + ) +|# + +#| +(deftype ground-tween-info (structure) + ((chan uint8 3 :offset-assert 0) ;; guessed by decompiler + (blend float 3 :offset-assert 4) ;; guessed by decompiler + (group uint32 5 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; script-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype script-form (structure) + ((name basic :offset-assert 0) + (spec basic :offset-assert 4) + (func basic :offset-assert 8) + ) + :method-count-assert 10 + :size-assert #xc + :flag-assert #xa0000000c + (:methods + (dummy-9 () none 9) + ) + ) +|# + +#| +(deftype script-context (structure) + () + :method-count-assert 12 + :size-assert #xa0 + :flag-assert #xc000000a0 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; scene-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype scene-actor (basic) + ((name basic :offset-assert 4) + (level basic :offset-assert 8) + (art-group basic :offset-assert 12) + (prefix basic :offset-assert 16) + (draw-frames basic :offset-assert 20) + (scissor-frames basic :offset-assert 24) + (camera int16 :offset-assert 28) + (light-index uint8 :offset-assert 30) + (shadow-mask uint8 :offset-assert 31) + (shadow-values uint32 :offset-assert 32) + (flags uint32 :offset-assert 36) + (command-list basic :offset-assert 40) + (shadow-flags int32 :offset-assert 44) + (shadow-volume-joint basic :offset-assert 48) + (draw-seg uint64 :offset-assert 56) + (no-draw-seg uint64 :offset-assert 64) + (process uint64 :offset-assert 72) + ) + :method-count-assert 10 + :size-assert #x50 + :flag-assert #xa00000050 + (:methods + (dummy-9 () none 9) + ) + ) +|# + +#| +(deftype scene (art-group) + ((name basic :offset-assert 8) + (length int32 :offset-assert 12) + (extra basic :offset-assert 16) + (info basic :offset-assert 4) + (data UNKNOWN :dynamic :offset-assert 32) + (mask-to-clear uint32 :offset-assert 32) + (entity basic :offset-assert 36) + (art-group basic :offset-assert 40) + (anim basic :offset-assert 44) + (parts int32 :offset-assert 48) + (command-list basic :offset-assert 52) + (cut-list basic :offset-assert 56) + (wait-max-time uint64 :offset-assert 64) + (wait-air-time uint64 :offset-assert 72) + (wait-ground-time uint64 :offset-assert 80) + (draw-target basic :offset-assert 88) + (abort basic :offset-assert 92) + (actor basic :offset-assert 96) + (load-point basic :offset-assert 100) + (end-point basic :offset-assert 104) + (borrow basic :offset-assert 108) + (sfx-volume float :offset-assert 112) + (ambient-volume float :offset-assert 116) + (music-volume float :offset-assert 120) + (blackout-end basic :offset-assert 124) + (peaceful basic :offset-assert 128) + (music-delay float :offset-assert 132) + (save basic :offset-assert 136) + (scene-task uint16 :offset-assert 140) + ) + :method-count-assert 17 + :size-assert #x8e + :flag-assert #x110000008e + (:methods + (dummy-15 () none 15) + (dummy-16 () none 16) + ) + ) +|# + +#| +(deftype scene-player (process-drawable) + ((scene-list basic :offset-assert 196) + (scene basic :offset-assert 200) + (scene-index int32 :offset-assert 204) + (anim basic :offset-assert 208) + (next-anim basic :offset-assert 212) + (camera uint64 :offset-assert 220) + (main-entity basic :offset-assert 228) + (wait basic :offset-assert 232) + (old-target-pos transformq :inline :offset-assert 236) + (pre-cut-frame basic :offset-assert 284) + (preload-continue basic :offset-assert 288) + (dma-max uint32 :offset-assert 292) + (gui-id uint32 :offset-assert 296) + (aborted? basic :offset-assert 300) + (scene-start-time uint64 :offset-assert 308) + (targ-speed float :offset-assert 316) + (cur-speed float :offset-assert 320) + (speed-change-time uint64 :offset-assert 324) + (speed-press-time uint64 :offset-assert 332) + (speed-change-speed float :offset-assert 340) + (subtitle-change-time uint64 :offset-assert 348) + (user-sound UNKNOWN 4 :offset-assert 356) + ) + :method-count-assert 26 + :size-assert #x178 + :flag-assert #x1a01000178 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + ) + ) +|# + +;; (define-extern *scene-player* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sync-info-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sync-info-params (structure) + ((sync-type basic :offset-assert 0) + (sync-flags uint64 :offset-assert 8) + (entity basic :offset-assert 16) + (period uint32 :offset-assert 20) + (percent float :offset-assert 24) + (ease-in float :offset-assert 28) + (ease-out float :offset-assert 32) + (pause-in float :offset-assert 36) + (pause-out float :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype sync-info (structure) + ((sync-flags uint64 :offset-assert 0) + (offset float :offset-assert 8) + (period uint32 :offset-assert 12) + ) + :method-count-assert 16 + :size-assert #x10 + :flag-assert #x1000000010 + (:methods + (dummy-9 () none 9) ;; (get-current-value (_type_ float) float 9) + (dummy-10 () none 10) ;; (get-current-phase-no-mod (_type_) float 10) + (dummy-11 () none 11) ;; (get-current-phase (_type_) float 11) + (dummy-12 () none 12) ;; (get-current-value-with-mirror (_type_ float) float 12) + (dummy-13 () none 13) ;; (get-current-phase-with-mirror (_type_) float 13) + (dummy-14 () none 14) ;; (setup-params! (_type_ uint float float float) none 14) + (dummy-15 () none 15) ;; (load-params! (_type_ process uint float float float) symbol 15) + ) + ) +|# + +#| +(deftype sync-linear (sync-info) + () + :method-count-assert 16 + :size-assert #x10 + :flag-assert #x1000000010 + (:methods + ) + ) +|# + +#| +(deftype sync-eased (sync-info) + ((tlo float :offset-assert 16) + (thi float :offset-assert 20) + (ylo float :offset-assert 24) + (m2 float :offset-assert 28) + (yend float :offset-assert 32) + (pause-in float :offset-assert 36) + (pause-out float :offset-assert 40) + ) + :method-count-assert 16 + :size-assert #x2c + :flag-assert #x100000002c + (:methods + ) + ) +|# + +#| +(deftype sync-paused (sync-info) + ((pause-in float :offset-assert 16) + (pause-out float :offset-assert 20) + ) + :method-count-assert 16 + :size-assert #x18 + :flag-assert #x1000000018 + (:methods + ) + ) +|# + +#| +(deftype delayed-rand-float (structure) + ((min-time int32 :offset-assert 0) + (max-time int32 :offset-assert 4) + (max-val float :offset-assert 8) + (timer int32 :offset-assert 12) + (start-time uint64 :offset-assert 16) ;; time-frame + (value float :offset-assert 24) + ) + :method-count-assert 13 + :size-assert #x1c + :flag-assert #xd0000001c + (:methods + (dummy-9 () none 9) ;; (set-params! (_type_ int int float) float 9) + (dummy-10 () none 10) ;; (update! (_type_) float 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + ) + ) +|# + +#| +(deftype oscillating-float (structure) + ((value float :offset-assert 0) + (target float :offset-assert 4) + (vel float :offset-assert 8) + (max-vel float :offset-assert 12) + (damping float :offset-assert 16) + (accel float :offset-assert 20) + ) + :method-count-assert 11 + :size-assert #x18 + :flag-assert #xb00000018 + (:methods + (dummy-9 () none 9) ;; (set-params! (_type_ float float float float) float 9) + (dummy-10 () none 10) ;; (update! (_type_ float) float 10) + ) + ) +|# + +#| +(deftype bouncing-float (structure) + ((osc oscillating-float :inline :offset-assert 0) + (max-value float :offset-assert 24) + (min-value float :offset-assert 28) + (elasticity float :offset-assert 32) + (state int32 :offset-assert 36) + ) + :method-count-assert 13 + :size-assert #x28 + :flag-assert #xd00000028 + (:methods + (dummy-9 () none 9) ;; (set-params! (_type_ float float float float float float float) float 9) + (dummy-10 () none 10) ;; (update! (_type_ float) float 10) + (dummy-11 () none 11) ;; (at-min? (_type_) symbol 11) + (dummy-12 () none 12) ;; (at-max? (_type_) symbol 12) + ) + ) +|# + +#| +(deftype delayed-rand-vector (structure) + ((min-time int32 :offset-assert 0) + (max-time int32 :offset-assert 4) + (xz-max float :offset-assert 8) + (y-max float :offset-assert 12) + (timer int32 :offset-assert 16) + (start-time uint64 :offset-assert 24) ;; time-frame + (value vector :inline :offset-assert 32) + ) + :method-count-assert 13 + :size-assert #x30 + :flag-assert #xd00000030 + (:methods + (dummy-9 () none 9) ;; (set-params! (_type_ int int float float) vector 9) + (dummy-10 () none 10) ;; (update-now! (_type_) vector 10) + (dummy-11 () none 11) ;; (update-with-delay! (_type_) vector 11) + (dummy-12 () none 12) ;; (update-with-delay-or-reset! (_type_) vector 12) + ) + ) +|# + +#| +(deftype oscillating-vector (structure) + ((value vector :inline :offset-assert 0) + (target vector :inline :offset-assert 16) + (vel vector :inline :offset-assert 32) + (max-vel float :offset-assert 48) + (damping float :offset-assert 52) + (accel float :offset-assert 56) + ) + :method-count-assert 11 + :size-assert #x3c + :flag-assert #xb0000003c + (:methods + (dummy-9 () none 9) ;; (set-params! (_type_ vector float float float) vector 9) + (dummy-10 () none 10) ;; (update! (_type_ vector) vector 10) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pov-camera-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pov-camera (process-drawable) + ((flags int32 :offset-assert 196) ;; pov-camera-flag + (debounce-start-time uint64 :offset-assert 204) ;; time-frame + (notify-handle uint64 :offset-assert 212) ;; handle + (anim-name string :offset-assert 220) ;; guessed by decompiler + (command-list pair :offset-assert 224) ;; guessed by decompiler + (mask-to-clear process-mask :offset-assert 228) ;; guessed by decompiler + (music-volume-movie float :offset-assert 232) + (sfx-volume-movie float :offset-assert 236) + ) + :method-count-assert 30 + :size-assert #xf4 + :flag-assert #x1e008000f4 + (:methods + (dummy-20 () none 20) ;; (pov-camera-abort () _type_ :state 20) + (dummy-21 () none 21) ;; (pov-camera-done-playing () _type_ :state 21) + (dummy-22 () none 22) ;; (pov-camera-playing () _type_ :state 22) + (dummy-23 () none 23) ;; (pov-camera-start-playing () _type_ :state 23) + (dummy-24 () none 24) ;; (pov-camera-startup () _type_ :state 24) + (dummy-25 () none 25) ;; (check-for-abort (_type_) symbol 25) + (dummy-26 () none 26) ;; (target-grabbed? (_type_) symbol 26) + (dummy-27 () none 27) ;; (pre-startup-callback (_type_) none 27) + (dummy-28 () none 28) ;; (target-released? () symbol 28) + (dummy-29 () none 29) ;; (set-stack-size! (_type_) none 29) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + (dummy-9 () none 9) ;; (set-zero! (_type_) _type_ 9) + (dummy-10 () none 10) ;; (update! (_type_) float 10) + (dummy-11 () none 11) ;; (get-no-update (_type_) float 11) + (dummy-12 () none 12) ;; (activate! (_type_ float int int float float) _type_ 12) + (dummy-13 () none 13) ;; (nonzero-amplitude? (_type_) symbol 13) + (dummy-14 () none 14) ;; (die-on-next-update! (_type_) _type_ 14) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + ) +|# + +;; (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-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 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; joint-mod-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype joint-mod (basic) + () + :method-count-assert 16 + :size-assert #xb8 + :flag-assert #x10000000b8 + ;; Failed to read fields. + (:methods + ;; (new (symbol type joint-mod-handler-mode process-drawable int) _type_ 0) + (dummy-9 () none 9) ;; (set-mode! (_type_ joint-mod-handler-mode) _type_ 9) + (dummy-10 () none 10) ;; (set-target! (_type_ vector) none 10) + (dummy-11 () none 11) ;; (look-at-enemy! (_type_ vector symbol process) none 11) + (dummy-12 () none 12) ;; (reset-blend! (_type_) _type_ 12) + (dummy-13 () none 13) ;; (set-twist! (_type_ float float float) vector 13) + (dummy-14 () none 14) ;; (set-trs! (_type_ vector quaternion vector) none 14) + (dummy-15 () none 15) ;; (shut-down! (_type_) float 15) + ) + ) +|# + +#| +(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-wheel (basic) + ((last-position vector :inline :offset-assert 16) + (angle float :offset-assert 32) + (process process-drawable :offset-assert 36) ;; guessed by decompiler + (wheel-radius float :offset-assert 40) + (wheel-axis int8 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x2d + :flag-assert #x90000002d + ) +|# + +#| +(deftype joint-mod-set-local (basic) + ((transform transformq :inline :offset-assert 16) + (set-rotation basic :offset-assert 64) + (set-scale basic :offset-assert 68) + (set-translation basic :offset-assert 72) + (enable basic :offset-assert 76) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype joint-mod-add-local (basic) + ((transform transformq :inline :offset-assert 16) + (add-rotation basic :offset-assert 64) + (add-scale basic :offset-assert 68) + (add-translation basic :offset-assert 72) + (enable basic :offset-assert 76) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype joint-mod-set-world (basic) + ((transform transformq :inline :offset-assert 16) + (node-index int32 :offset-assert 64) + (enable basic :offset-assert 68) + ) + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ) +|# + +#| +(deftype joint-mod-blend-local (basic) + ((transform transformq :inline :offset-assert 16) + (blend-transform transformq :inline :offset-assert 64) + (node-index int32 :offset-assert 112) + (blend float :offset-assert 116) + (enable basic :offset-assert 120) + ) + :method-count-assert 9 + :size-assert #x7c + :flag-assert #x90000007c + ) +|# + +#| +(deftype joint-mod-spinner (basic) + ((spin-axis vector :inline :offset-assert 16) + (angle float :offset-assert 32) + (spin-rate float :offset-assert 36) + (enable basic :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype joint-mod-blend-world (basic) + ((transform transformq :inline :offset-assert 16) + (blend-transform transformq :inline :offset-assert 64) + (blend-flags uint32 :offset-assert 112) + (node-index int32 :offset-assert 116) + (blend float :offset-assert 120) + (enable basic :offset-assert 124) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype joint-mod-rotate-local (basic) + ((enable basic :offset-assert 4) + (rotation quaternion :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype joint-mod-ik (basic) + ((flags uint32 :offset-assert 4) + (process basic :offset-assert 8) + (hand-dist float :offset-assert 12) + (handle-pos vector :inline :offset-assert 16) + (elbow-pole-vector-axis uint32 :offset-assert 32) + (elbow-rotation-axis uint32 :offset-assert 36) + (user-position vector :inline :offset-assert 48) + (user-normal vector :inline :offset-assert 64) + (user-blend float :offset-assert 80) + (user-float float :offset-assert 84) + (callback basic :offset-assert 88) + (shoulder-matrix-no-ik matrix :inline :offset-assert 96) + (elbow-matrix-no-ik matrix :inline :offset-assert 160) + (blend float :offset-assert 224) + (blend-interp float :offset-assert 228) + ) + :method-count-assert 11 + :size-assert #xe8 + :flag-assert #xb000000e8 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +;; (define-extern joint-mod-debug-draw object) ;; (function joint-mod none) +;; (define-extern *joint-axis-vectors* object) ;; (inline-array vector) +;; (define-extern joint-mod-wheel-callback object) ;; (function cspace transformq none) +;; (define-extern joint-mod-set-local-callback object) ;; (function cspace transformq none) +;; (define-extern joint-mod-add-local-callback object) +;; (define-extern joint-mod-set-world-callback object) ;; (function cspace transformq none) +;; (define-extern joint-mod-blend-local-callback object) ;; (function cspace transformq none) +;; (define-extern joint-mod-spinner-callback object) ;; (function cspace transformq none) +;; (define-extern joint-mod-blend-world-callback object) +;; (define-extern joint-mod-rotate-local-callback object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 16 + :size-assert #x28 + :flag-assert #x1000000028 + (:methods + (dummy-9 () none 9) ;; (debug-draw-tris (_type_ process-drawable int) none 9) + (dummy-10 () none 10) ;; (overlap-test (_type_ collide-mesh-cache-tri vector) symbol 10) + (dummy-11 () none 11) ;; (should-push-away-test (_type_ collide-mesh-cache-tri collide-tri-result vector float) float 11) + (dummy-12 () none 12) ;; (sphere-on-platform-test (_type_ collide-mesh-cache-tri collide-tri-result vector float) float 12) + (dummy-13 () none 13) ;; (populate-cache! (_type_ collide-mesh-cache-tri matrix) none 13) + (dummy-14 () none 14) ;; (collide-mesh-math-1 (_type_ object object) none 14) + (dummy-15 () none 15) ;; (collide-mesh-math-2 (_type_ object object object) none 15) + ) + ) +|# + +#| +(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 UNKNOWN :dynamic :offset-assert 64) + ) + :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 uint64 :offset-assert 12) ;; guessed by decompiler + (data uint8 48000 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #xbb90 + :flag-assert #xd0000bb90 + (:methods + (dummy-9 () none 9) ;; (allocate! (_type_ int) int 9) + (dummy-10 () none 10) ;; (is-id? (_type_ int) symbol 10) + (dummy-11 () none 11) ;; (next-id! (_type_) uint 11) + (dummy-12 () none 12) + ) + ) +|# + +;; (define-extern *collide-mesh-cache* object) ;; collide-mesh-cache + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-shape-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-rider (structure) + ((rider-handle uint64 :offset-assert 0) + (sticky-prim basic :offset-assert 8) + (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 UNKNOWN 20 :offset-assert 16) + ) + :method-count-assert 11 + :size-assert #x290 + :flag-assert #xb00000290 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype pull-rider-info (structure) + ((rider collide-rider :offset-assert 0) ;; collide-sticky-rider + (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 uint32 :offset-assert 0) + (collide-with-filter uint32 :offset-assert 4) + (tlist touching-list :offset-assert 8) ;; guessed by decompiler + (filtered-root-collide-with uint32 :offset-assert 12) + (filtered-child-collide-with uint32 :offset-assert 16) + (filtered-other-collide-as uint32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype move-above-ground-params (structure) + ((gnd-collide-with uint32 :offset-assert 0) + (popup float :offset-assert 4) + (dont-move-if-overlaps? basic :offset-assert 8) + (hover-if-no-ground? basic :offset-assert 12) + (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 uint32 :offset-assert 96) + (on-ground? basic :offset-assert 100) + (do-move? basic :offset-assert 104) + ) + :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-kind :offset-assert 16) ;; guessed by decompiler + (collide-with uint32 :offset-assert 20) + (action collide-action :offset-assert 24) ;; guessed by decompiler + (prim-type int8 :offset-assert 28) + (unused1 UNKNOWN 3 :offset-assert 29) + (quad uint128 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype collide-shape-prim (basic) + () + :method-count-assert 20 + :size-assert #x50 + :flag-assert #x1400000050 + ;; Failed to read fields. + (:methods + ;; (new (symbol type collide-shape uint int) _type_ 0) + (dummy-9 () none 9) ;; (move-by-vector! (_type_ vector) none 9) + (dummy-10 () none 10) ;; (find-prim-by-id (_type_ uint) collide-shape-prim 10) + (dummy-11 () none 11) ;; (debug-draw-world-sphere (_type_) symbol 11) + (dummy-12 () none 12) ;; (add-fg-prim-using-box (_type_ collide-cache) none 12) + (dummy-13 () none 13) ;; (add-fg-prim-using-line-sphere (_type_ collide-cache) none 13) + (dummy-14 () none 14) ;; (add-fg-prim-using-y-probe (_type_ collide-cache) none 14) + (dummy-15 () none 15) ;; (overlaps-others-test (_type_ overlaps-others-params collide-shape-prim) symbol 15) + (dummy-16 () none 16) ;; (overlaps-others-group (_type_ overlaps-others-params collide-shape-prim-group) symbol 16) + (dummy-17 () none 17) ;; (unused-17 () none 17) + (dummy-18 () none 18) ;; (collide-with-collide-cache-prim-mesh (_type_ collide-shape-intersect collide-cache-prim) none 18) + (dummy-19 () none 19) ;; (collide-with-collide-cache-prim-sphere (_type_ collide-shape-intersect collide-cache-prim) none 19) + ) + ) +|# + +#| +(deftype collide-shape-prim-sphere (collide-shape-prim) + () + :method-count-assert 20 + :size-assert #x50 + :flag-assert #x1400000050 + ;; Failed to read fields. + (:methods + ;; (new (symbol type collide-shape uint) _type_ 0) + ) + ) +|# + +#| +(deftype collide-shape-prim-mesh (collide-shape-prim) + () + :method-count-assert 20 + :size-assert #x50 + :flag-assert #x1400000050 + ;; Failed to read fields. + (:methods + ;; (new (symbol type collide-shape uint uint) _type_ 0) + ) + ) +|# + +#| +(deftype collide-shape-prim-group (collide-shape-prim) + () + :method-count-assert 20 + :size-assert #x50 + :flag-assert #x1400000050 + ;; Failed to read fields. + (:methods + ;; (new (symbol type collide-shape uint int) _type_ 0) + ) + ) +|# + +#| +(deftype collide-shape (trsqv) + () + :method-count-assert 55 + :size-assert #xc8 + :flag-assert #x37000000c8 + ;; Failed to read fields. + (:methods + ;; (new (symbol type process-drawable collide-list-enum) _type_ 0) + (dummy-28 () none 28) ;; (move-by-vector! (_type_ vector) none 28) + (dummy-29 () none 29) ;; (alloc-riders (_type_ int) none 29) + (dummy-30 () none 30) ;; (move-to-point! (_type_ vector) none 30) + (dummy-31 () none 31) ;; (debug-draw (_type_) none 31) + (dummy-32 () none 32) ;; (fill-cache-for-shape! (_type_ float collide-kind) none 32) + (dummy-33 () none 33) ;; (fill-cache-integrate-and-collide! (_type_ vector collide-kind) none 33) + (dummy-34 () none 34) ;; (find-prim-by-id (_type_ uint) collide-shape-prim 34) + (dummy-35 () none 35) ;; (detect-riders! (_type_) symbol 35) + (dummy-36 () none 36) ;; (build-bounding-box-for-shape (_type_ bounding-box float collide-kind) symbol 36) + (dummy-37 () none 37) ;; (integrate-and-collide! (_type_ vector) none 37) + (dummy-38 () none 38) ;; (find-collision-meshes (_type_) symbol 38) + (dummy-39 () none 39) ;; (on-platform (_type_ collide-shape collide-overlap-result) symbol 39) + (dummy-40 () none 40) ;; (find-overlapping-shapes (_type_ overlaps-others-params) symbol 40) + (dummy-41 () none 41) ;; (dummy-41 (_type_ attack-info float) vector 41) + (dummy-42 () none 42) ;; (should-push-away (_type_ collide-shape collide-overlap-result) symbol 42) + (dummy-43 () none 43) ;; (pull-rider! (_type_ pull-rider-info) none 43) + (dummy-44 () none 44) ;; (pull-riders! (_type_) symbol 44) + (dummy-45 () none 45) ;; (do-push-aways! (_type_) symbol 45) + (dummy-46 () none 46) ;; (set-root-prim! (_type_ collide-shape-prim) collide-shape-prim 46) + (dummy-47 () none 47) ;; (update-transforms! (_type_) symbol 47) + (dummy-48 () none 48) ;; (clear-collide-with-as (_type_) none 48) + (dummy-49 () none 49) ;; (restore-collide-with-as (_type_) none 49) + (dummy-50 () none 50) ;; (backup-collide-with-as (_type_) none 50) + (dummy-51 () none 51) ;; (set-root-prim-collide-with! (_type_ collide-kind) none 51) + (dummy-52 () none 52) ;; (set-root-prim-collide-as! (_type_ collide-kind) none 52) + (dummy-53 () none 53) ;; (set-collide-kinds (_type_ int collide-kind collide-kind) none 53) + (dummy-54 () none 54) ;; (set-collide-offense (_type_ int collide-offense) none 54) + ) + ) +|# + +#| +(deftype collide-shape-moving (collide-shape) + () + :method-count-assert 68 + :size-assert #x1dc + :flag-assert #x44000001dc + ;; Failed to read fields. + (:methods + (dummy-55 () none 55) + (dummy-56 () none 56) ;; (set-and-handle-pat! (_type_ pat-surface) none 56) + (dummy-57 () none 57) ;; (integrate-no-collide! (_type_ vector) none 57) + (dummy-58 () none 58) ;; (dummy-58 (_type_ vector) symbol 58) + (dummy-59 () none 59) ;; (integrate-for-enemy-with-move-to-ground! (_type_ vector collide-kind float symbol symbol symbol) none 59) + (dummy-60 () none 60) ;; (move-to-ground (_type_ float float symbol collide-kind) symbol 60) + (dummy-61 () none 61) ;; (move-to-ground-point! (_type_ vector vector vector) none 61) + (dummy-62 () none 62) ;; (compute-acc-due-to-gravity (_type_ vector float) vector 62) + (dummy-63 () none 63) ;; (step-collison! (_type_ vector vector float) float 63) + (dummy-64 () none 64) ;; (move-to-tri! (_type_ collide-tri-result vector) none 64) + (dummy-65 () none 65) + (dummy-66 () none 66) + (dummy-67 () none 67) + ) + ) +|# + +;; (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* object) ;; collide-shape-prim-mesh +;; (define-extern *collide-shape-prim-water* object) ;; collide-shape-prim-mesh +;; (define-extern *collide-rider-pool* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-obs-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype part-spawner (process) + ((root trsqv :offset-assert 124) ;; guessed by decompiler + (part sparticle-launch-control :offset-assert 128) ;; guessed by decompiler + (sound ambient-sound :offset-assert 132) ;; guessed by decompiler + (mode (pointer sparticle-launch-group) :offset-assert 136) ;; guessed by decompiler + (enable symbol :offset-assert 140) ;; guessed by decompiler + (radius meters :offset-assert 144) + (world-sphere sphere :inline :offset-assert 156) + ) + :method-count-assert 16 + :size-assert #xb0 + :flag-assert #x10003000b0 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + ) + ) +|# + +#| +(deftype part-tracker (process) + ((root trsqv :offset-assert 124) ;; guessed by decompiler + (mat matrix :inline :offset-assert 140) + (part sparticle-launch-control :offset-assert 204) ;; guessed by decompiler + (callback (function part-tracker vector) :offset-assert 208) ;; guessed by decompiler + (linger-callback (function part-tracker vector) :offset-assert 212) ;; guessed by decompiler + (duration uint64 :offset-assert 220) ;; time-frame + (linger-duration uint64 :offset-assert 228) ;; time-frame + (start-time uint64 :offset-assert 236) ;; time-frame + (target uint64 :offset-assert 244) ;; handle + (target-joint int32 :offset-assert 252) + (offset vector :inline :offset-assert 268) + (userdata uint64 :offset-assert 284) + (user-time time-frame 2 :offset-assert 292) ;; guessed by decompiler + (user-vector vector :inline :offset-assert 316) + (user-handle uint32 2 :offset-assert 348) ;; guessed by decompiler + ) + :method-count-assert 16 + :size-assert #x168 + :flag-assert #x1000f00168 + ;; field userdata uses ~A with a 64-bit load + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + ) + ) +|# + +#| +(deftype lightning-tracker (process) + ((root basic :offset-assert 124) + (lightning basic :offset-assert 128) + (callback basic :offset-assert 132) + (duration uint64 :offset-assert 140) + (start-time uint64 :offset-assert 148) + (offset0 vector :inline :offset-assert 156) + (offset1 vector :inline :offset-assert 172) + (target0 uint64 :offset-assert 188) + (target1 uint64 :offset-assert 196) + (target-joint0 int32 :offset-assert 204) + (target-joint1 int32 :offset-assert 208) + (sound uint32 :offset-assert 212) + (userdata uint64 :offset-assert 220) + (user-time UNKNOWN 2 :offset-assert 228) + (user-vector vector :inline :offset-assert 252) + (user-handle UNKNOWN 2 :offset-assert 284) + ) + :method-count-assert 17 + :size-assert #x130 + :flag-assert #x1100b00130 + ;; field userdata uses ~A with a 64-bit load + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + ) + ) +|# + +#| +(deftype touch-tracker (process-drawable) + ((duration uint64 :offset-assert 196) ;; time-frame + (target uint64 :offset-assert 204) ;; handle + (event symbol :offset-assert 212) ;; guessed by decompiler + (run-function (function object) :offset-assert 216) ;; guessed by decompiler + (callback (function touch-tracker none) :offset-assert 220) ;; guessed by decompiler + (event-mode basic :offset-assert 224) + ) + :method-count-assert 21 + :size-assert #xe8 + :flag-assert #x15007000e8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype swingpole (process-drawable) + ((edge-length meters :offset-assert 196) + (path-pos float :offset-assert 200) + (joint-track int32 :offset-assert 204) + (speed meters :offset-assert 208) + (dir vector :inline :offset-assert 220) + (sync sync-eased :inline :offset-assert 236) + ) + :method-count-assert 23 + :size-assert #x11c + :flag-assert #x1700a0011c + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(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 + (dummy-9 () none 9) ;; (init! (_type_ string int int int symbol string) none 9) + (dummy-10 () none 10) ;; (get-response (_type_) symbol 10) + ) + ) +|# + +#| +(deftype othercam (process) + ((hand uint64 :offset-assert 124) ;; handle + (old-global-mask process-mask :offset-assert 132) ;; guessed by decompiler + (mask-to-clear process-mask :offset-assert 136) ;; guessed by decompiler + (cam-joint-index int32 :offset-assert 140) + (old-pos vector :inline :offset-assert 156) + (old-mat-z vector :inline :offset-assert 172) + (had-valid-frame basic :offset-assert 188) + (border-value basic :offset-assert 192) + (die? symbol :offset-assert 196) ;; guessed by decompiler + (survive-anim-end? symbol :offset-assert 200) ;; guessed by decompiler + (spooling? symbol :offset-assert 204) ;; guessed by decompiler + (fov float :offset-assert 208) + ) + :method-count-assert 14 + :size-assert #xd8 + :flag-assert #xe006000d8 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + ) + ) +|# + +#| +(deftype explosion (process-drawable) + ((start-time uint64 :offset-assert 196) + (duration uint32 :offset-assert 204) + (linger-duration uint32 :offset-assert 208) + (attack-id uint32 :offset-assert 212) + ) + :method-count-assert 23 + :size-assert #xdc + :flag-assert #x17006000dc + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype explosion-init-params (structure) + ((spawn-point vector :inline :offset-assert 0) + (spawn-quat quaternion :inline :offset-assert 16) + (radius float :offset-assert 32) + (group basic :offset-assert 36) + (collide-with uint32 :offset-assert 40) + (penetrate-using uint64 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ) +|# + +#| +(deftype process-hidden (process) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) ;; (die () _type_ :state 14) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + (dummy-9 () none 9) ;; (eval-position! (_type_ float vector) vector 9) + (dummy-10 () none 10) ;; (eval-velocity! (_type_ float vector) vector 10) + (dummy-11 () none 11) ;; (setup-from-to-duration! (_type_ vector vector float float) none 11) + (dummy-12 () none 12) ;; (setup-from-to-xz-vel! (_type_ vector vector float float) none 12) + (dummy-13 () none 13) ;; (setup-from-to-y-vel! (_type_ vector vector float float) none 13) + (dummy-14 () none 14) ;; (setup-from-to-height! (_type_ vector vector float float) none 14) + (dummy-15 () none 15) ;; (debug-draw! (_type_) none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + ) + ) +|# + +#| +(deftype impact-control (structure) + () + :method-count-assert 12 + :size-assert #x50 + :flag-assert #xc00000050 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + ) + ) +|# + +#| +(deftype point-tracker (structure) + () + :method-count-assert 12 + :size-assert #x20 + :flag-assert #xc00000020 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + ) + ) +|# + +#| +(deftype combo-tracker (point-tracker) + () + :method-count-assert 14 + :size-assert #x30 + :flag-assert #xe00000030 + ;; Failed to read fields. + (:methods + (dummy-12 () none 12) + (dummy-13 () none 13) + ) + ) +|# + +#| +(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 + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-target-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 12 + :size-assert #xe8 + :flag-assert #xc000000e8 + (:methods + (dummy-9 () none 9) ;; (get-touched-prim (_type_ trsqv touching-shapes-entry) collide-shape-prim 9) + (dummy-10 () none 10) ;; (dummy-10 () none 10) + (dummy-11 () none 11) ;; (get-middle-of-bsphere-overlap (_type_ vector) vector 11) + ) + ) +|# + +#| +(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) + (dummy-9 () none 9) ;; (alloc-node (_type_) touching-prims-entry 9) + (dummy-10 () none 10) ;; (get-free-node-count (_type_) int 10) + (dummy-11 () none 11) ;; (init-list! (_type_) none 11) + (dummy-12 () none 12) ;; (free-node (_type_ touching-prims-entry) touching-prims-entry 12) + ) + ) +|# + +#| +(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) + (handle2 uint64 :offset-assert 24) + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + (:methods + (dummy-9 () none 9) ;; (dummy-9 (_type_) none 9) + (dummy-10 () none 10) ;; (get-touched-shape (_type_ collide-shape) collide-shape 10) + (dummy-11 () none 11) ;; (dummy-11 () none 11) + (dummy-12 () none 12) ;; (prims-touching? (_type_ collide-shape-moving uint) touching-prims-entry 12) + (dummy-13 () none 13) ;; (prims-touching-action? (_type_ collide-shape collide-action collide-action) touching-prims-entry 13) + (dummy-14 () none 14) ;; (dummy-14 () none 14) + ) + ) +|# + +#| +(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) + (dummy-9 () none 9) ;; (add-touching-prims (_type_ collide-shape-prim collide-shape-prim float collide-tri-result collide-tri-result) none 9) + (dummy-10 () none 10) ;; (dummy-10 () none 10) + (dummy-11 () none 11) ;; (update-from-step-size (_type_ float) none 11) + (dummy-12 () none 12) ;; (send-events-for-touching-shapes (_type_) none 12) + (dummy-13 () none 13) ;; (get-shapes-entry (_type_ collide-shape collide-shape) touching-shapes-entry 13) + ) + ) +|# + +;; (define-extern *touching-prims-entry-pool* object) ;; touching-prims-entry-pool +;; (define-extern *touching-list* object) ;; touching-list + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-edge-grab-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pilot-edge-grab-info (structure) + ((local-pos vector :inline :offset-assert 0) + (local-dir vector :inline :offset-assert 16) + (handle uint64 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype edge-grab-info (structure) + ((world-vertex vector 8 :offset-assert 0) ;; guessed by decompiler + (local-vertex vector 8 :offset-assert 128) ;; guessed by decompiler + (status uint64 :offset-assert 256) + (actor-cshape-prim-offset int32 :offset-assert 264) + (actor-handle uint64 :offset-assert 272) ;; handle + (hanging-matrix matrix :inline :offset-assert 288) + (edge-vertex vector 2 :offset-assert 0) ;; guessed by decompiler + (center-hold vector :inline :offset-assert 32) + (tri-vertex vector 3 :offset-assert 48) ;; guessed by decompiler + (adjacent-edge-left-vertex vector :inline :offset-assert 96) + (adjacent-edge-right-vertex vector :inline :offset-assert 112) + (left-hand-hold vector :inline :offset-assert 352) + (right-hand-hold vector :inline :offset-assert 368) + (center-hold-old vector :inline :offset-assert 384) + (edge-tri-pat uint32 :offset-assert 400) + (found-edge? basic :offset-assert 404) + (pilot-edge-grab? basic :offset-assert 408) + (pilot-edge-grab pilot-edge-grab-info :inline :offset-assert 416) + (pilot-start-grab-pos vector :inline :offset-assert 464) + (pilot-grab-interp float :offset-assert 480) + ) + :method-count-assert 11 + :size-assert #x1e4 + :flag-assert #xb000001e4 + (:methods + (dummy-9 () none 9) ;; (dummy-9 (_type_) symbol 9) + (dummy-10 () none 10) ;; (debug-draw (_type_) symbol 10) + ) + ) +|# + +#| +(deftype collide-edge-tri (structure) + ((ctri collide-cache-tri :offset-assert 0) ;; guessed by decompiler + (normal vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype collide-edge-edge (structure) + ((ignore basic :offset-assert 0) + (etri collide-edge-tri :offset-assert 4) + (vertex-ptr (inline-array vector) 2 :offset-assert 8) ;; guessed by decompiler + (outward vector :inline :offset-assert 16) + (edge-vec-norm vector :inline :offset-assert 32) + ) + :method-count-assert 10 + :size-assert #x30 + :flag-assert #xa00000030 + (:methods + (dummy-9 () none 9) + ) + ) +|# + +#| +(deftype collide-edge-hold-item (structure) + ((next collide-edge-hold-item :offset-assert 0) + (rating float :offset-assert 4) + (split int8 :offset-assert 8) + (edge collide-edge-edge :offset-assert 12) + (center-pt vector :inline :offset-assert 16) + (outward-pt vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype collide-edge-hold-list (structure) + ((num-allocs uint32 :offset-assert 0) + (num-attempts uint32 :offset-assert 4) + (head collide-edge-hold-item :offset-assert 8) + (items collide-edge-hold-item 32 :offset-assert 16) ;; guessed by decompiler + (attempts qword 32 :offset-assert 1552) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x810 + :flag-assert #xb00000810 + (:methods + (dummy-9 () none 9) ;; (debug-draw (_type_) object 9) + (dummy-10 () none 10) ;; (add-to-list! (_type_ collide-edge-hold-item) none 10) + ) + ) +|# + +#| +(deftype collide-edge-spec (structure) + ((split-dists UNKNOWN 2 :offset-assert 0) + (outward-offset vector :inline :offset-assert 16) + (flags uint64 :offset-assert 32) + (ignore-pat uint32 :offset-assert 40) + (max-dist-sqrd-to-outward-pt float :offset-assert 44) + (max-dir-cosa-delta float :offset-assert 48) + (max-dir-cosa-player float :offset-assert 52) + (touching-segment uint32 :offset-assert 56) + (local-cache-fill-box bounding-box :inline :offset-assert 64) + (local-within-reach-box bounding-box :inline :offset-assert 96) + (local-player-spheres UNKNOWN 12 :offset-assert 128) + (local-player-hanging-spheres UNKNOWN 6 :offset-assert 128) + (local-player-leap-up-spheres UNKNOWN 6 :offset-assert 224) + ) + :method-count-assert 9 + :size-assert #x140 + :flag-assert #x900000140 + ) +|# + +#| +(deftype collide-edge-work (structure) + ((ccache collide-cache :offset-assert 0) ;; guessed by decompiler + (cshape collide-shape :offset-assert 4) ;; guessed by decompiler + (num-verts uint32 :offset-assert 8) + (num-edges uint32 :offset-assert 12) + (num-tris uint32 :offset-assert 16) + (cache-fill-box bounding-box :inline :offset-assert 32) + (within-reach-box bounding-box :inline :offset-assert 64) + (within-reach-box4w bounding-box4w :inline :offset-assert 96) + (search-pt vector :inline :offset-assert 128) + (search-dir-vec vector :inline :offset-assert 144) + (world-player-spheres sphere 12 :offset-assert 160) ;; guessed by decompiler + (world-player-hanging-spheres sphere 6 :offset-assert 160) ;; guessed by decompiler + (world-player-leap-up-spheres sphere 6 :offset-assert 256) ;; guessed by decompiler + (spec collide-edge-spec :inline :offset-assert 352) + (process uint32 :offset-assert 672) + (verts vector 64 :offset-assert 688) ;; guessed by decompiler + (edges collide-edge-edge 96 :offset-assert 1712) ;; guessed by decompiler + (tris collide-edge-tri 48 :offset-assert 6320) ;; guessed by decompiler + (hold-list collide-edge-hold-list :inline :offset-assert 7856) + ) + :method-count-assert 21 + :size-assert #x26c0 + :flag-assert #x15000026c0 + (:methods + (dummy-9 () none 9) ;; (search-for-edges (_type_ collide-edge-hold-list) symbol 9) + (dummy-10 () none 10) ;; (debug-draw-edges (_type_) object 10) + (dummy-11 () none 11) ;; (debug-draw-tris (_type_) none 11) + (dummy-12 () none 12) ;; (debug-draw-sphere (_type_) symbol 12) + (dummy-13 () none 13) ;; (compute-center-point! (_type_ collide-edge-edge vector) float 13) + (dummy-14 () none 14) ;; (dummy-14 (_type_ vector vector int) float 14) + (dummy-15 () none 15) ;; (find-grabbable-edges! (_type_) none 15) + (dummy-16 () none 16) ;; (find-grabbable-tris! (_type_) none 16) + (dummy-17 () none 17) ;; (should-add-to-list? (_type_ collide-edge-hold-item collide-edge-edge) symbol 17) + (dummy-18 () none 18) ;; (find-best-grab! (_type_ collide-edge-hold-list edge-grab-info) symbol 18) + (dummy-19 () none 19) ;; (check-grab-for-collisions (_type_ collide-edge-hold-item edge-grab-info) symbol 19) + (dummy-20 () none 20) + ) + ) +|# + +;; (define-extern *collide-edge-spec* object) +;; (define-extern *collide-edge-work* object) ;; collide-edge-work +;; (define-extern *edge-grab-info* object) ;; edge-grab-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; process-drawable-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cspace-by-name-no-fail object) ;; (function process-drawable string cspace) +;; (define-extern cspace-index-by-name-no-fail object) ;; (function process-drawable string int) +;; (define-extern num-func-none object) ;; (function joint-control-channel float float float) +;; (define-extern num-func-+! object) ;; (function joint-control-channel float float float) +;; (define-extern num-func--! object) ;; (function joint-control-channel float float float) +;; (define-extern num-func-loop! object) ;; (function joint-control-channel float float float) +;; (define-extern num-func-loop-speedless! object) +;; (define-extern num-func-seek! object) ;; (function joint-control-channel float float float) +;; (define-extern num-func-blend-in! object) ;; (function joint-control-channel float float float) +;; (define-extern joint-channel-float-delete! object) +;; (define-extern num-func-interp-play! object) +;; (define-extern num-func-interp1-play! object) +;; (define-extern num-func-chan object) ;; (function joint-control-channel float float float) +;; (define-extern num-func-identity object) ;; (function joint-control-channel float float float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; process-focusable ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype process-focusable (process-drawable) + ((focus-status uint32 :offset-assert 196) + ) + :method-count-assert 27 + :size-assert #xcc + :flag-assert #x1b005000cc + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; process-taskable-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype process-taskable (process-focusable) + ((task basic :offset-assert 200) + (ambient ambient-control :inline :offset-assert 204) + (neck-joint-index int32 :offset-assert 220) + (talk-message game-text-id :offset-assert 224) ;; guessed by decompiler + (bounce-away symbol :offset-assert 228) ;; guessed by decompiler + (will-talk symbol :offset-assert 232) ;; guessed by decompiler + (look-at-me basic :offset-assert 236) + (hide-during-movie basic :offset-assert 240) + (talk-distance meters :offset-assert 244) + (talk-height meters :offset-assert 248) + (last-talk uint64 :offset-assert 252) ;; time-frame + (want-to-say uint64 :offset-assert 260) + (birth-time uint64 :offset-assert 268) + (slave uint64 :offset-assert 276) + ) + :method-count-assert 38 + :size-assert #x120 + :flag-assert #x2600a00120 + (:methods + (dummy-27 () none 27) ;; (play-anim () _type_ :state 27) + (dummy-28 () none 28) ;; (hidden () _type_ :state 28) + (dummy-29 () none 29) ;; (be-clone (handle) _type_ :state 29) + (dummy-30 () none 30) ;; (idle () _type_ :state 30) + (dummy-31 () none 31) ;; (get-art-elem (_type_) art-element 31) + (dummy-32 () none 32) ;; (play-anim! (_type_ symbol) basic 32) + (dummy-33 () none 33) ;; (dummy-33 (_type_) none 33) + (dummy-34 () none 34) ;; (get-accept-anim (_type_ symbol) spool-anim 34) + (dummy-35 () none 35) ;; (push-accept-anim (_type_) none 35) + (dummy-36 () none 36) ;; (get-reject-anim (_type_ symbol) spool-anim 36) + (dummy-37 () none 37) ;; (push-reject-anim (_type_) none 37) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; focus ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype focus (structure) + ((handle uint64 :offset-assert 0) + (collide-with uint32 :offset-assert 8) + ) + :method-count-assert 13 + :size-assert #xc + :flag-assert #xd0000000c + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; effect-control-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype effect-control (basic) + ((process process-drawable :offset-assert 4) ;; guessed by decompiler + (flags uint32 :offset-assert 8) + (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 process-drawable) _type_ 0) + (dummy-9 () none 9) ;; (TODO-RENAME-9 (_type_) none 9) + (dummy-10 () none 10) ;; (dummy-10 (_type_ symbol float int) object 10) + (dummy-11 () none 11) ;; (dummy-11 (_type_ symbol float int basic pat-surface) none 11) + (dummy-12 () none 12) ;; (dummy-12 (_type_ symbol float int basic sound-name) int 12) + (dummy-13 () none 13) ;; (set-channel-offset! (_type_ int) none 13) + (dummy-14 () none 14) ;; (TODO-RENAME-14 (_type_ float float float) none 14) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-frag-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-frag-vertex (vector) + ((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) + (quad uint128 :offset-assert 0) + ) + :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) ;; vector :inline + (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 + (:methods + ) + ) +|# + +#| +(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 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-hash-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-hash-scratch (structure) + ((collidable-bits UNKNOWN 128 :offset-assert 0) + (poly-bits UNKNOWN 2 :offset-assert 0) + (id-bits UNKNOWN 512 :offset-assert 0) + (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 UNKNOWN 4 :offset-assert 0) + (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 UNKNOWN 4 :offset-assert 44) + (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 + (:methods + ) + ) +|# + +#| +(deftype collide-hash-fragment-array (array) + ((type basic :offset-assert 0) + (length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (content-type basic :offset-assert 12) + ) + :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 uint32 :offset-assert 60) + (dimension-array UNKNOWN 3 :offset-assert 76) + (num-items uint32 :offset-assert 92) + ) + :method-count-assert 17 + :size-assert #x60 + :flag-assert #x1100000060 + (:methods + ) + ) +|# + +;; (define-extern *collide-list-boxes* object) +;; (define-extern *collide-hash-fragments* object) +;; (define-extern *collide-hash-fragments-tfrag* object) +;; (define-extern *collide-hash-fragments-instance* object) +;; (define-extern *already-printed-exeeded-max-cache-tris* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; chain-physics-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype chain-physics-setup (structure) + ((joint-index int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype chain-physics-joint (structure) + ((position vector :inline :offset-assert 0) + (velocity vector :inline :offset-assert 16) + (old-x vector :inline :offset-assert 32) + (joint-mod basic :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype chain-physics (basic) + ((chain-joints UNKNOWN 20 :offset-assert 16) + (num-joints uint8 :offset-assert 1296) + (root-joint-index uint8 :offset-assert 1297) + (joint-length float :offset-assert 1300) + (gravity vector :inline :offset-assert 1312) + (gravity-target vector :inline :offset-assert 1328) + (stretch-vel float :offset-assert 1344) + (stretch-vel-parallel float :offset-assert 1348) + (compress-vel float :offset-assert 1352) + (compress-vel-parallel float :offset-assert 1356) + (negate-y basic :offset-assert 1360) + (axial-slop float :offset-assert 1364) + (maximum-stretch float :offset-assert 1368) + (turn-off-start uint64 :offset-assert 1376) + (turn-off-duration uint64 :offset-assert 1384) + ) + :method-count-assert 18 + :size-assert #x570 + :flag-assert #x1200000570 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; projectile-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype projectile (process-drawable) + ((starting-pos vector :inline :offset-assert 204) + (starting-dir vector :inline :offset-assert 220) + (target-pos vector :inline :offset-assert 236) + (base-target-pos vector :inline :offset-assert 252) + (pre-move-transv vector :inline :offset-assert 268) + (timeout uint64 :offset-assert 284) ;; time-frame + (spawn-time uint64 :offset-assert 292) + (options uint64 :offset-assert 300) + (last-target uint64 :offset-assert 308) ;; handle + (notify-handle uint64 :offset-assert 316) ;; handle + (owner-handle uint64 :offset-assert 324) + (ignore-handle uint64 :offset-assert 332) + (update-velocity (function projectile none) :offset-assert 340) ;; guessed by decompiler + (move basic :offset-assert 344) + (pick-target basic :offset-assert 348) + (max-speed float :offset-assert 352) + (old-dist float 16 :offset-assert 356) ;; guessed by decompiler + (old-dist-count int32 :offset-assert 420) + (hits int32 :offset-assert 424) + (max-hits int32 :offset-assert 428) + (tween float :offset-assert 432) + (attack-mode symbol :offset-assert 436) ;; guessed by decompiler + (attack-id uint32 :offset-assert 440) + (damage float :offset-assert 444) + (charge-level float :offset-assert 448) + (sound-id sound-id :offset-assert 452) ;; guessed by decompiler + (stop-speed meters :offset-assert 456) + (invinc-time uint64 :offset-assert 460) + ) + :method-count-assert 40 + :size-assert #x1d8 + :flag-assert #x28016001d8 + (:methods + (dummy-20 () none 20) ;; (projectile-die () _type_ :state 20) + (dummy-21 () none 21) ;; (projectile-dissipate () _type_ :state 21) + (dummy-22 () none 22) ;; (projectile-impact () _type_ :state 22) + (dummy-23 () none 23) ;; (projectile-moving () _type_ :state 23) + (dummy-24 () none 24) ;; (dummy-24 (_type_) none 24) + (dummy-25 () none 25) ;; (dummy-25 (_type_) none 25) + (dummy-26 () none 26) ;; (dummy-26 (_type_) none 26) + (dummy-27 () none 27) ;; (dummy-27 (_type_) none 27) + (dummy-28 () none 28) ;; (dummy-28 (_type_) none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + ) + ) +|# + +#| +(deftype projectile-init-by-other-params (structure) + ((ent basic :offset-assert 0) + (charge float :offset-assert 4) + (attack-id uint32 :offset-assert 8) + (options uint64 :offset-assert 16) + (notify-handle uint64 :offset-assert 24) + (owner-handle uint64 :offset-assert 32) + (ignore-handle uint64 :offset-assert 40) + (pos vector :inline :offset-assert 48) + (vel vector :inline :offset-assert 64) + (timeout uint64 :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +#| +(deftype projectile-bounce (projectile) + ((played-bounce-time uint64 :offset-assert 468) + (tumble-quat quaternion :inline :offset-assert 476) + ) + :method-count-assert 42 + :size-assert #x1f0 + :flag-assert #x2a017001f0 + (:methods + (dummy-40 () none 40) + (dummy-41 () none 41) + ) + ) +|# + +;; (define-extern spawn-projectile object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; find-nearest-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype target (process-focusable) + ((control control-info :offset-assert 124) ;; guessed by decompiler + (skel2 basic :offset-assert 200) + (shadow-backup basic :offset-assert 204) + (target-flags uint32 :offset-assert 184) + (game game-info :offset-assert 208) ;; guessed by decompiler + (neck joint-mod :offset-assert 212) ;; guessed by decompiler + (head basic :offset-assert 216) + (upper-body basic :offset-assert 220) + (horns basic :offset-assert 224) + (hair UNKNOWN 2 :offset-assert 228) + (darkjak-interp float :offset-assert 236) + (darkjak-giant-interp float :offset-assert 240) + (arm-ik UNKNOWN 2 :offset-assert 244) + (leg-ik UNKNOWN 2 :offset-assert 252) + (foot UNKNOWN 2 :offset-assert 260) + (init-time uint64 :offset-assert 268) + (teleport-time uint64 :offset-assert 276) + (state-hook-time uint64 :offset-assert 284) ;; time-frame + (state-hook (function none :behavior target) :offset-assert 292) ;; guessed by decompiler + (cam-user-mode symbol :offset-assert 296) ;; guessed by decompiler + (sidekick (pointer sidekick) :offset-assert 300) ;; guessed by decompiler + (manipy (pointer manipy) :offset-assert 304) ;; guessed by decompiler + (mirror uint32 :offset-assert 308) + (attack-info attack-info :inline :offset-assert 316) + (attack-info-rec attack-info :inline :offset-assert 476) + (attack-info-old UNKNOWN 8 :offset-assert 636) + (anim-seed uint64 :offset-assert 1916) + (alt-cam-pos vector :inline :offset-assert 1932) + (current-level level :offset-assert 1948) ;; guessed by decompiler + (saved-pos transformq :inline :offset-assert 1964) + (saved-owner uint64 :offset-assert 2012) + (alt-neck-pos vector :inline :offset-assert 2028) + (focus-search basic :offset-assert 2044) + (excitement float :offset-assert 2048) + (shock-effect-time uint64 :offset-assert 2052) + (beard? basic :offset-assert 2060) + (spool-anim basic :offset-assert 2064) + (ambient-time uint64 :offset-assert 2068) + (fp-hud uint64 :offset-assert 2076) ;; handle + (no-load-wait uint64 :offset-assert 2084) ;; time-frame + (no-look-around-wait uint64 :offset-assert 2092) ;; time-frame + (burn-proc uint64 :offset-assert 2100) ;; handle + (pre-joint-hook basic :offset-assert 2108) + (notify uint64 :offset-assert 2116) + (mode-cache basic :offset-assert 2124) + (mode-param1 uint64 :offset-assert 2132) + (mode-param2 uint64 :offset-assert 2140) + (mode-param3 uint64 :offset-assert 2148) + (tobot-state basic :offset-assert 2156) + (tobot? basic :offset-assert 2160) + (tobot-recorder basic :offset-assert 2164) + (color-effect basic :offset-assert 2168) + (color-effect-start-time uint64 :offset-assert 2172) + (color-effect-duration uint64 :offset-assert 2180) + (racer racer-info :offset-assert 2188) ;; guessed by decompiler + (tube tube-info :offset-assert 2192) ;; guessed by decompiler + (flut flut-info :offset-assert 2196) ;; guessed by decompiler + (board basic :offset-assert 2200) + (pilot basic :offset-assert 2204) + (gun basic :offset-assert 2208) + (mech basic :offset-assert 2212) + (turret basic :offset-assert 2216) + (darkjak basic :offset-assert 2220) + (indax basic :offset-assert 2224) + ) + :method-count-assert 29 + :size-assert #x8b8 + :flag-assert #x1d084008b8 + ;; field mode-param2 uses ~A with a 64-bit load field mode-param3 uses ~A with a 64-bit load + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + ) + ) +|# + +#| +(deftype sidekick (process-drawable) + ((control control-info :offset-assert 124) ;; guessed by decompiler + (anim-seed uint64 :offset-assert 204) + (shadow-in-movie? symbol :offset-assert 212) ;; guessed by decompiler + (special-anim-time uint64 :offset-assert 220) + (special-anim-interp float :offset-assert 228) + (special-anim-frame float :offset-assert 232) + (offset transformq :inline :offset-assert 236) + (mirror uint32 :offset-assert 284) + ) + :method-count-assert 20 + :size-assert #x124 + :flag-assert #x1400b00124 + (:methods + ) + ) +|# + +;; (define-extern *target* object) ;; target +;; (define-extern *sidekick* object) ;; sidekick + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + (dummy-9 () none 9) ;; (dummy-9 (_type_) none 9) + (dummy-10 () none 10) ;; (print-to-stream (_type_ string basic) none 10) + (dummy-11 () none 11) ;; (reset! (_type_) none 11) + (dummy-12 () none 12) ;; (read! (_type_) none 12) + (dummy-13 () none 13) ;; (update-wait-stats (_type_ uint uint uint) none 13) + ) + ) +|# + +#| +(deftype perf-stat-array (inline-array-class) + ((data perf-stat :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern perf-stat-bucket->string object) ;; (function perf-stat-bucket string) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bsp-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bsp-node (structure) + ((front int16 :offset-assert 0) ;; int32 + (back int16 :offset-assert 2) ;; int32 + (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 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 bsp-header (drawable) + () + :method-count-assert 19 + :size-assert #x190 + :flag-assert #x1300000190 + ;; Failed to read fields. + (:methods + (dummy-17 () none 17) + (dummy-18 () none 18) ;; (birth (_type_) none 18) + ) + ) +|# + +#| +(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 object) ;; (function bsp-header bsp-node none) +;; (define-extern map-bsp-tree object) ;; (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 + (dummy-9 () none 9) ;; (dummy-9 (_type_ object object) symbol 9) + (dummy-10 () none 10) ;; (dummy-10 (_type_ object object) symbol 10) + ) + ) +|# + +#| +(deftype collide-cache-tri (structure) + ((vertex vector 3 :offset-assert 0) ;; guessed by decompiler + (extra-quad uint128 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 uint128 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) + (unused uint8 4 :offset-assert 44) ;; guessed by decompiler + (world-sphere vector :inline :offset-assert 0) + (collide-as collide-kind :offset-assert 16) ;; guessed by decompiler + (action collide-action :offset-assert 24) ;; guessed by decompiler + (prim-type int8 :offset-assert 28) + ) + :method-count-assert 11 + :size-assert #x30 + :flag-assert #xb00000030 + (:methods + (dummy-9 () none 9) ;; (resolve-moving-sphere-tri (_type_ collide-tri-result collide-prim-core vector float collide-action) float 9) + (dummy-10 () none 10) ;; (resolve-moving-sphere-sphere (_type_ collide-tri-result collide-prim-core vector float collide-action) float 10) + ) + ) +|# + +#| +(deftype collide-cache (basic) + ((num-tris int32 :offset-assert 4) + (num-prims int32 :offset-assert 8) + (ignore-mask pat-surface :offset-assert 12) ;; guessed by decompiler + (ignore-processes UNKNOWN 2 :offset-assert 16) + (collide-box bounding-box :inline :offset-assert 32) + (collide-box4w bounding-box4w :inline :offset-assert 64) + (collide-with collide-kind :offset-assert 96) ;; guessed by decompiler + (unused uint32 :offset-assert 100) + (prims collide-cache-prim 100 :offset-assert 112) ;; guessed by decompiler + (tris collide-cache-tri 461 :offset-assert 4912) ;; guessed by decompiler + ) + :method-count-assert 26 + :size-assert #x8670 + :flag-assert #x1a00008670 + (:methods + (dummy-9 () none 9) ;; (debug-draw (_type_) none 9) + (dummy-10 () none 10) ;; (fill-and-probe-using-line-sphere (_type_ vector vector float collide-kind process collide-tri-result pat-surface) float 10) + (dummy-11 () none 11) ;; (fill-and-probe-using-spheres (_type_ collide-using-spheres-params) symbol 11) + (dummy-12 () none 12) ;; (fill-and-probe-using-y-probe (_type_ vector float collide-kind process-drawable collide-tri-result pat-surface) float 12) + (dummy-13 () none 13) ;; (fill-using-bounding-box (_type_ bounding-box collide-kind process-drawable pat-surface) none 13) + (dummy-14 () none 14) ;; (fill-using-line-sphere (_type_ vector vector float collide-kind process-drawable pat-surface) none 14) + (dummy-15 () none 15) ;; (fill-using-spheres (_type_ collide-using-spheres-params) none 15) + (dummy-16 () none 16) ;; (fill-using-y-probe (_type_ vector float collide-kind process-drawable pat-surface) none 16) + (dummy-17 () none 17) ;; (initialize (_type_) none 17) + (dummy-18 () none 18) ;; (probe-using-line-sphere (_type_ vector vector float collide-kind collide-tri-result pat-surface) float 18) + (dummy-19 () none 19) ;; (probe-using-spheres (_type_ collide-using-spheres-params) symbol 19) + (dummy-20 () none 20) ;; (probe-using-y-probe (_type_ vector float collide-kind collide-tri-result pat-surface) float 20) + (dummy-21 () none 21) ;; (fill-from-background (_type_ (function bsp-header int collide-list none) (function collide-cache object none)) none 21) + (dummy-22 () none 22) ;; (fill-from-foreground-using-box (_type_) none 22) + (dummy-23 () none 23) ;; (fill-from-foreground-using-line-sphere (_type_) none 23) + (dummy-24 () none 24) ;; (fill-from-foreground-using-y-probe (_type_) none 24) + (dummy-25 () none 25) ;; (fill-from-water (_type_ water-control) none 25) + ) + ) +|# + +#| +(deftype collide-list-item (structure) + ((mesh collide-frag-mesh :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 UNKNOWN 2 :offset-assert 88) + (ignore-process0 basic :offset-assert 88) + (ignore-process1 basic :offset-assert 92) + (ignore-pat uint32 :offset-assert 96) + (collide-with uint32 :offset-assert 100) + (overlay-params UNKNOWN 3 :offset-assert 112) + (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 UNKNOWN 2 :offset-assert 256) + (radius float :offset-assert 268) + (inv-mat matrix :inline :offset-assert 288) + (spheres uint32 :offset-assert 112) + (num-spheres uint32 :offset-assert 116) + (solid-only basic :offset-assert 120) + (best-dist float :offset-assert 112) + (best-other-prim basic :offset-assert 116) + (best-my-prim basic :offset-assert 120) + (move-vec vector :inline :offset-assert 224) + (best-u float :offset-assert 112) + (action-mask uint32 :offset-assert 352) + (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 + (:methods + ) + ) +|# + +#| +(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 + (:methods + ) + ) +|# + +#| +(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 + (:methods + ) + ) +|# + +#| +(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 + (:methods + ) + ) +|# + +#| +(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 uint32 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 object) ;; (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 basic :offset-assert 4) + ) + :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) ;; uint32 + (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 + (:methods + ) + ) +|# + +#| +(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 + (:methods + ) + ) +|# + +#| +(deftype drawable-tree-instance-tie (drawable-tree) + () + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ;; Failed to read fields. + (:methods + ) + ) +|# + +#| +(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 basic :offset-assert 532) + (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) + (last UNKNOWN 16 :offset-assert 416) + (next UNKNOWN 16 :offset-assert 480) + (count UNKNOWN 16 :offset-assert 544) + (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 UNKNOWN 12 :offset-assert 10304) + (counts UNKNOWN 4 :offset-assert 10328) + (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 UNKNOWN 4 :offset-assert 10256) + (trans-near-next uint32 :offset-assert 10260) + (trans-mid-next uint32 :offset-assert 10264) + (trans-far-next uint32 :offset-assert 10268) + (water-scissor-next UNKNOWN 4 :offset-assert 10256) + (water-near-next uint32 :offset-assert 10260) + (water-mid-next uint32 :offset-assert 10264) + (water-far-next uint32 :offset-assert 10268) + (envmap-scissor-next UNKNOWN 4 :offset-assert 10272) + (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 UNKNOWN 3 :offset-assert 10256) + (count-clear UNKNOWN 3 :offset-assert 10304) + ) + :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 + (:methods + ) + ) +|# + +#| +(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 8 :offset-assert 8) ;; guessed by decompiler + (tfrag-levels level 8 :offset-assert 40) ;; guessed by decompiler + (tfrag-trans-tree-count int32 :offset-assert 72) + (tfrag-trans-trees UNKNOWN 8 :offset-assert 76) + (tfrag-trans-levels UNKNOWN 8 :offset-assert 108) + (tfrag-water-tree-count int32 :offset-assert 140) + (tfrag-water-trees UNKNOWN 8 :offset-assert 144) + (tfrag-water-levels UNKNOWN 8 :offset-assert 176) + (shrub-tree-count int32 :offset-assert 208) + (shrub-trees drawable-tree-instance-shrub 8 :offset-assert 212) ;; guessed by decompiler + (shrub-levels level 8 :offset-assert 244) ;; guessed by decompiler + (tie-tree-count int32 :offset-assert 276) + (tie-trees drawable-tree-instance-tie 8 :offset-assert 280) ;; guessed by decompiler + (tie-levels level 8 :offset-assert 312) ;; guessed by decompiler + (tie-generic basic 8 :offset-assert 344) ;; guessed by decompiler + (tie-generic-trans UNKNOWN 8 :offset-assert 376) + (wait-to-vu0 uint32 :offset-assert 408) + ) + :method-count-assert 9 + :size-assert #x19c + :flag-assert #x90000019c + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 8 :offset-assert 44) ;; guessed by decompiler + (far float 8 :offset-assert 76) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x6c + :flag-assert #x90000006c + ) +|# + +#| +(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 dma-area (structure) + ((instance-shrub-dma instance-shrub-dma :inline :offset-assert 0) + (draw-node-dma draw-node-dma :inline :offset-assert 0) + (tfrag-dma tfrag-dma :inline :offset-assert 0) + (instance-tie-dma instance-tie-dma :inline :offset-assert 0) + (prototype-tie-dma prototype-tie-dma :inline :offset-assert 0) + (wind-dma wind-dma :inline :offset-assert 0) + (time-of-day-dma time-of-day-dma :inline :offset-assert 0) + (decomp-work decomp-work :inline :offset-assert 0) + (ocean-vertex ocean-vertex 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x38a0 + :flag-assert #x9000038a0 + ) +|# + +#| +(deftype background-area (structure) + ((dma-area dma-area :inline :offset-assert 0) + (vis-list uint8 2048 :offset-assert 14496) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40a0 + :flag-assert #x9000040a0 + ) +|# + +#| +(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 UNKNOWN 320 :offset-assert 1364) + (region-enter-prim-list UNKNOWN 320 :offset-assert 2644) + (region-exit-count int32 :offset-assert 3924) + (region-exit-list UNKNOWN 320 :offset-assert 3928) + (region-exit-prim-list UNKNOWN 320 :offset-assert 5208) + (region-inside-count int32 :offset-assert 6488) + (region-inside-list UNKNOWN 320 :offset-assert 6492) + (region-inside-prim-list UNKNOWN 320 :offset-assert 7772) + (region-start-count int32 :offset-assert 9052) + (region-start-list UNKNOWN 320 :offset-assert 9056) + (region-start-prim-list UNKNOWN 320 :offset-assert 10336) + ) + :method-count-assert 13 + :size-assert #x2d60 + :flag-assert #xd00002d60 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + ) + ) +|# + +#| +(deftype sprite-area (structure) + ((clock-data UNKNOWN 13 :offset-assert 0) + (buffer UNKNOWN :dynamic :offset-assert 208) + ) + :method-count-assert 9 + :size-assert #xd0 + :flag-assert #x9000000d0 + ) +|# + +#| +(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 #x40a0 + :flag-assert #x9000040a0 + ) +|# + +#| +(deftype terrain-context (structure) + ((work work-area :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x40a0 + :flag-assert #x9000040a0 + ) +|# + +;; (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 + (dummy-9 () none 9) ;; (update-perm! (_type_ symbol entity-perm-status) _type_ 9) + ) + ) +|# + +#| +(deftype entity-links (structure) + () + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) ;; (birth? (_type_ vector) symbol 9) + ) + ) +|# + +#| +(deftype entity-perm-array (inline-array-class) + ((data entity-perm :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype entity-links-array (inline-array-class) + ((data entity-links :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype actor-reference (structure) + ((actor basic :offset-assert 0) + (id uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype actor-group (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype entity-info (basic) + ((ptype type :offset-assert 4) ;; guessed by decompiler + (package basic :offset-assert 8) + (art-group pair :offset-assert 12) ;; guessed by decompiler + (pool basic :offset-assert 16) + (heap-size int32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(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* object) ;; actor-bank + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 uint32 :offset-assert 56) + (dummy uint32 :offset-assert 60) + ) + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + (:methods + (dummy-9 () none 9) + ) + ) +|# + +#| +(deftype simple-sprite-system (structure) + ((count int16 :offset-assert 0) + (max-count int16 :offset-assert 2) + (data uint32 :offset-assert 4) + ) + :method-count-assert 12 + :size-assert #x8 + :flag-assert #xc00000008 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype eye-control (structure) + ((process uint64 :offset-assert 0) ;; handle + (draw-flag basic :offset-assert 8) + (different-eyes basic :offset-assert 12) + (random-time uint16 :offset-assert 16) + (bucket uint16 :offset-assert 18) + (blink float :offset-assert 20) + (shaders (inline-array adgif-shader) :offset-assert 24) ;; guessed by decompiler + (left eye :inline :offset-assert 32) + (right eye :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype eye-control-array (basic) + ((data eye-control 16 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x610 + :flag-assert #x900000610 + ) +|# + +#| +(deftype eye-control-arrays (basic) + ((data UNKNOWN 6 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x2474 + :flag-assert #x900002474 + ) +|# + +#| +(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-arrays* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + (sound basic :offset-assert 24) + (dataf float 1 :offset-assert 0) ;; guessed by decompiler + (data uint32 1 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(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 + (sound sound-spec :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) + (soundaccum float :offset-assert 8) + (init-specs (inline-array sp-field-init-spec) :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(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) ;; uint16 + (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 basic :offset-assert 32) + (swarm basic :offset-assert 20) + (seed uint32 :offset-assert 24) + (time uint32 :offset-assert 28) + (spec basic :offset-assert 16) + (id uint32 :offset-assert 12) + ) + :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) + (rotate-y deg :offset-assert 24) + (rotate-z deg :offset-assert 28) + (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 + (dummy-9 () none 9) ;; (create-launch-control (_type_ process) sparticle-launch-control 9) + ) + ) +|# + +#| +(deftype sparticle-launch-control (inline-array-class) + ((group sparticle-launch-group :offset-assert 16) ;; guessed by decompiler + (proc process :offset-assert 20) ;; guessed by decompiler + (local-clock int32 :offset-assert 24) + (fade float :offset-assert 28) + (matrix int8 :offset-assert 32) ;; int32 + (state-mode UNKNOWN 3 :offset-assert 33) + (state-counter 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 16 + :size-assert #x70 + :flag-assert #x1000000070 + (:methods + (dummy-9 () none 9) ;; (initialize (_type_ sparticle-launch-group process) none 9) + (dummy-10 () none 10) ;; (is-visible? (_type_ vector) symbol 10) + (dummy-11 () none 11) ;; (spawn (_type_ vector) object 11) + (dummy-12 () none 12) ;; (kill-and-free-particles (_type_) none 12) + (dummy-13 () none 13) ;; (kill-particles (_type_) none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + ) + ) +|# + +;; (define-extern *launch-matrix* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 basic :offset-assert 112) + (next-time uint32 :offset-assert 116) + (next-launcher basic :offset-assert 120) + (cache-alpha float :offset-assert 124) + (valid uint8 :offset-assert 128) ;; symbol + (clock-index uint8 :offset-assert 129) + (user1-int16 uint16 :offset-assert 130) + (key sparticle-launch-control :offset-assert 132) ;; guessed by decompiler + (binding sparticle-launch-state :offset-assert 136) + (data uint32 1 :offset-assert 12) ;; guessed by decompiler + (datab UNKNOWN 4 :offset-assert 12) + (dataf float 1 :offset-assert 12) ;; guessed by decompiler + (datac uint8 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 key 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 process) _type_ 0) + (dummy-9 () none 9) ;; (get-matching-actor-type-mask (_type_ type) int 9) + (dummy-10 () none 10) ;; (actor-count-before (_type_) int 10) + (dummy-11 () none 11) ;; (link-to-next-and-prev-actor (_type_) entity-actor 11) + (dummy-12 () none 12) ;; (get-next (_type_) entity-actor 12) + (dummy-13 () none 13) ;; (get-prev (_type_) entity-actor 13) + (dummy-14 () none 14) ;; (get-next-process (_type_) process 14) + (dummy-15 () none 15) ;; (get-prev-process (_type_) process 15) + (dummy-16 () none 16) ;; (apply-function-forward (_type_ (function entity-actor object object) object) int 16) + (dummy-17 () none 17) ;; (apply-function-reverse (_type_ (function entity-actor object object) object) int 17) + (dummy-18 () none 18) ;; (apply-all (_type_ (function entity-actor object object) object) int 18) + (dummy-19 () none 19) ;; (send-to-all (_type_ symbol) none 19) + (dummy-20 () none 20) ;; (send-to-all-after (_type_ symbol) object 20) + (dummy-21 () none 21) ;; (send-to-all-before (_type_ symbol) object 21) + (dummy-22 () none 22) ;; (send-to-next-and-prev (_type_ symbol) none 22) + (dummy-23 () none 23) ;; (send-to-next (_type_ symbol) none 23) + (dummy-24 () none 24) ;; (send-to-prev (_type_ symbol) none 24) + (dummy-25 () none 25) ;; (actor-count (_type_) int 25) + ) + ) +|# + +;; (define-extern entity-actor-lookup object) ;; (function res-lump symbol int entity-actor) +;; (define-extern entity-actor-count object) ;; (function res-lump symbol int) +;; (define-extern actor-link-subtask-complete-hook object) ;; (function entity-actor (pointer symbol) symbol) +;; (define-extern actor-link-subtask-incomplete-count-hook object) +;; (define-extern actor-link-dead-hook object) ;; (function entity-actor (pointer symbol) symbol) +;; (define-extern alt-actor-list-subtask-incomplete-count object) ;; (function process-drawable int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + (dummy-9 () none 9) ;; (dummy-9 (_type_ symbol entity vector curve) symbol 9) + (dummy-10 () none 10) ;; (dummy-10 (_type_ vector) float 10) + ) + ) +|# + +#| +(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 + (dummy-9 () none 9) ;; (TODO-RENAME-9 (_type_) none 9) + (dummy-10 () none 10) ;; (TODO-RENAME-10 (_type_ vector) none 10) + (dummy-11 () none 11) ;; (print-nth-point (_type_ int) none 11) + (dummy-12 () none 12) ;; (TODO-RENAME-12 (_type_) none 12) + (dummy-13 () none 13) ;; (TODO-RENAME-13 (_type_ int) none 13) + (dummy-14 () none 14) ;; (TODO-RENAME-14 (_type_ tracking-spline-sampler) none 14) + (dummy-15 () none 15) ;; (TODO-RENAME-15 (_type_) none 15) + (dummy-16 () none 16) ;; (TODO-RENAME-16 (_type_ float) none 16) + (dummy-17 () none 17) ;; (TODO-RENAME-17 (_type_ vector float float symbol) int 17) + (dummy-18 () none 18) ;; (TODO-RENAME-18 (_type_ float vector tracking-spline-sampler) vector 18) + (dummy-19 () none 19) ;; (TODO-RENAME-19 (_type_ float vector tracking-spline-sampler) vector 19) + (dummy-20 () none 20) ;; (TODO-RENAME-20 (_type_ vector int) none 20) + (dummy-21 () none 21) ;; (TODO-RENAME-21 (_type_ vector float float) vector 21) + (dummy-22 () none 22) ;; (TODO-RENAME-22 (_type_ float) none 22) + (dummy-23 () none 23) ;; (TODO-RENAME-23 (_type_) none 23) + ) + ) +|# + +#| +(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 + (dummy-9 () none 9) ;; (init-cam-float-seeker (_type_ float float float float) none 9) + (dummy-10 () none 10) ;; (copy-cam-float-seeker (_type_ _type_) none 10) + (dummy-11 () none 11) ;; (update! (_type_ float) none 11) + (dummy-12 () none 12) ;; (jump-to-target! (_type_ float) float 12) + ) + ) +|# + +#| +(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 + (dummy-9 () none 9) ;; (init! (_type_ vector float float float) none 9) + (dummy-10 () none 10) ;; (update! (_type_ vector) none 10) + ) + ) +|# + +#| +(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 124) + (inv-camera-rot matrix :inline :offset-assert 140) + (fov float :offset-assert 204) + (interp-val float :offset-assert 208) + (interp-step float :offset-assert 212) + (dist-from-src float :offset-assert 216) + (dist-from-dest float :offset-assert 220) + (flip-control-axis vector :inline :offset-assert 236) + (velocity vector :inline :offset-assert 252) + (tracking-status uint64 :offset-assert 268) + (tracking-options int32 :offset-assert 276) + (tracking cam-rotation-tracker :inline :offset-assert 284) + (fast-rot basic :offset-assert 548) + ) + :method-count-assert 14 + :size-assert #x22c + :flag-assert #xe01b0022c + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + ) + ) +|# + +#| +(deftype camera-slave (process) + ((trans vector :inline :offset-assert 124) + (fov float :offset-assert 140) + (fov0 float :offset-assert 144) + (fov1 float :offset-assert 148) + (fov-index cam-index :inline :offset-assert 156) + (tracking cam-rotation-tracker :inline :offset-assert 204) + (view-off-param float :offset-assert 468) + (view-off vector :inline :offset-assert 476) + (joystick-saved-view-off vector :inline :offset-assert 492) + (min-z-override float :offset-assert 508) + (view-flat vector :inline :offset-assert 524) + (string-vel-dir uint32 :offset-assert 540) + (string-trans vector :inline :offset-assert 556) + (position-spline tracking-spline :inline :offset-assert 572) + (pivot-pt vector :inline :offset-assert 2220) + (pivot-rad float :offset-assert 2236) + (circular-follow vector :inline :offset-assert 2252) + (max-angle-offset float :offset-assert 2268) + (max-angle-curr float :offset-assert 2272) + (options uint32 :offset-assert 2276) + (cam-entity entity :offset-assert 2280) ;; guessed by decompiler + (butt-timer uint64 :offset-assert 2284) + (butt-seek basic :offset-assert 2292) + (butt-vector vector :inline :offset-assert 2300) + (velocity vector :inline :offset-assert 2316) + (desired-pos vector :inline :offset-assert 2332) + (time-dist-too-far uint32 :offset-assert 2348) + (los-state slave-los-state :offset-assert 2352) ;; guessed by decompiler + (good-point vector :inline :offset-assert 2364) + (los-tgt-spline-pt int32 :offset-assert 2380) + (los-tgt-spline-pt-incarnation int32 :offset-assert 2384) + (los-last-pos vector :inline :offset-assert 2396) + (intro-curve curve :inline :offset-assert 2412) + (intro-offset vector :inline :offset-assert 2444) + (intro-t float :offset-assert 2460) + (intro-t-step float :offset-assert 2464) + (outro-exit-value float :offset-assert 2468) + (spline-exists basic :offset-assert 2472) + (spline-curve curve :inline :offset-assert 2476) + (spline-offset vector :inline :offset-assert 2508) + (index cam-index :inline :offset-assert 2524) + (saved-pt vector :inline :offset-assert 2572) + (spline-tt float :offset-assert 2588) + (spline-follow-dist float :offset-assert 2592) + (enter-has-run symbol :offset-assert 2596) ;; guessed by decompiler + (blend-from-type uint64 :offset-assert 2604) + (blend-to-type uint64 :offset-assert 2612) + (have-phony-joystick basic :offset-assert 2620) + (phony-joystick-x float :offset-assert 2624) + (phony-joystick-y float :offset-assert 2628) + (string-min-val vector :inline :offset-assert 2636) + (string-max-val vector :inline :offset-assert 2652) + (string-val-locked basic :offset-assert 2668) + (relative-position vector :inline :offset-assert 2684) + (string-relative basic :offset-assert 2700) + ) + :method-count-assert 14 + :size-assert #xa94 + :flag-assert #xe0a200a94 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + ) + ) +|# + +#| +(deftype camera-master (process) + ((master-options uint32 :offset-assert 124) + (settings cam-setting-data :offset-assert 128) + (slave (pointer camera-slave) :offset-assert 132) ;; guessed by decompiler + (decel uint32 :offset-assert 136) + (slave-options uint32 :offset-assert 140) + (view-off-param-save float :offset-assert 144) + (changer uint32 :offset-assert 148) + (string-min cam-vector-seeker :inline :offset-assert 156) + (string-max cam-vector-seeker :inline :offset-assert 220) + (string-push-z float :offset-assert 280) + (local-down vector :inline :offset-assert 284) + (focus focus :inline :offset-assert 300) + (being-attacked symbol :offset-assert 312) ;; guessed by decompiler + (attack-start uint64 :offset-assert 316) ;; time-frame + (on-ground symbol :offset-assert 324) ;; guessed by decompiler + (under-water int32 :offset-assert 328) + (on-pole symbol :offset-assert 332) ;; guessed by decompiler + (tgt-rot-mat matrix :inline :offset-assert 348) + (tgt-face-mat matrix :inline :offset-assert 412) + (tpos-old vector :inline :offset-assert 476) + (tpos-curr vector :inline :offset-assert 492) + (tpos-old-adj vector :inline :offset-assert 508) + (tpos-curr-adj vector :inline :offset-assert 524) + (tpos-tgt vector :inline :offset-assert 540) + (upspeed float :offset-assert 556) + (pitch-off vector :inline :offset-assert 572) + (target-spline tracking-spline :inline :offset-assert 588) + (ease-from vector :inline :offset-assert 2236) + (ease-t float :offset-assert 2252) + (ease-step float :offset-assert 2256) + (ease-to vector :inline :offset-assert 2268) + (outro-curve curve :inline :offset-assert 2284) + (outro-t float :offset-assert 2304) + (outro-t-step float :offset-assert 2308) + (outro-exit-value float :offset-assert 2312) + (water-drip-time uint64 :offset-assert 2316) ;; time-frame + (water-drip sparticle-launch-control :offset-assert 2324) ;; guessed by decompiler + (water-drip-mult float :offset-assert 2328) + (water-drip-speed float :offset-assert 2332) + ) + :method-count-assert 17 + :size-assert #x924 + :flag-assert #x1108b00924 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-debug-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *redline-table* object) ;; (pointer float) +;; (define-extern *redline-index* object) ;; int +;; (define-extern float-save-redline object) ;; (function float none) +;; (define-extern float-lookup-redline object) ;; (function float float) +;; (define-extern *blueline-table* object) ;; (pointer float) +;; (define-extern *blueline-index* object) ;; int +;; (define-extern float-save-blueline object) ;; (function float none) +;; (define-extern float-lookup-blueline object) ;; (function float float) +;; (define-extern *greenline-table* object) ;; (pointer float) +;; (define-extern *greenline-index* object) ;; int +;; (define-extern float-save-greenline object) ;; (function float none) +;; (define-extern float-lookup-greenline object) ;; (function float float) +;; (define-extern *yellowline-table* object) ;; (pointer float) +;; (define-extern *yellowline-index* object) ;; int +;; (define-extern float-save-yellowline object) ;; (function float none) +;; (define-extern float-lookup-yellowline object) ;; (function float float) +;; (define-extern *timeplot-table* object) ;; (pointer float) +;; (define-extern *timeplot-index* object) ;; int +;; (define-extern float-save-timeplot object) ;; (function float none) +;; (define-extern float-lookup-timeplot object) ;; (function float float) +;; (define-extern *cam-layout* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-interface-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *camera-init-mat* object) ;; matrix +;; (define-extern *camera* object) ;; camera-master +;; (define-extern *camera-combiner* object) ;; camera-combiner + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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* object) ;; 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-other-root* object) ;; vector +;; (define-extern *fix-visible-level-mask* object) +;; (define-extern *manual-sample-point* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hud-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-string (basic) + ((text basic :offset-assert 4) + (scale float :offset-assert 8) + (color uint32 :offset-assert 12) + (flags uint32 :offset-assert 16) + (pos vector4w :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype hud-sprite (structure) + ((pos vector4w :inline :offset-assert 0) + (color vector4w :inline :offset-assert 16) + (flags uint32 :offset-assert 32) + (scale-x float :offset-assert 36) + (scale-y float :offset-assert 40) + (angle float :offset-assert 44) + (tex basic :offset-assert 48) + ) + :method-count-assert 11 + :size-assert #x34 + :flag-assert #xb00000034 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype hud-box (structure) + ((min vector2 :inline :offset-assert 0) + (max vector2 :inline :offset-assert 8) + (color vector4w :inline :offset-assert 16) + ) + :method-count-assert 16 + :size-assert #x20 + :flag-assert #x1000000020 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + ) + ) +|# + +#| +(deftype hud-icon (basic) + ((icon (pointer manipy) :offset-assert 4) ;; 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-value (basic) + ((current int32 :offset-assert 4) + (target int32 :offset-assert 8) + (flags uint16 :offset-assert 12) + (counter uint16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype hud (process) + ((trigger-time uint64 :offset-assert 124) ;; time-frame + (last-hide-time uint64 :offset-assert 132) ;; time-frame + (offset float :offset-assert 140) ;; int32 + (flags uint32 :offset-assert 144) + (values UNKNOWN 8 :offset-assert 148) + (strings UNKNOWN 14 :offset-assert 284) + (sprites UNKNOWN 30 :offset-assert 956) + (icons hud-icon 2 :offset-assert 2876) ;; guessed by decompiler + (gui-id uint32 :offset-assert 2972) + ) + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) ;; (hidden? (_type_) symbol 14) + (dummy-15 () none 15) ;; (draw-hud (_type_) none 15) + (dummy-16 () none 16) ;; (tally-value (_type_ int int) none 16) + (dummy-17 () none 17) ;; (draw-icons (_type_) none 17) + (dummy-18 () none 18) ;; (draw-particles (_type_) none 18) + (dummy-19 () none 19) ;; (hud-update (_type_) none 19) + (dummy-20 () none 20) ;; (init-particles! (_type_ int) none 20) + (dummy-21 () none 21) ;; (get-icon-pos-x (_type_) int 21) + (dummy-22 () none 22) ;; (get-icon-pos-y (_type_) int 22) + (dummy-23 () none 23) ;; (dummy-23 (_type_) none 23) + (dummy-24 () none 24) ;; (set-pos-and-scale (_type_ symbol symbol) none 24) + (dummy-25 () none 25) ;; (get-icon-scale-x (_type_) float 25) + (dummy-26 () none 26) ;; (get-icon-scale-y (_type_) float 26) + ) + ) +|# + +#| +(deftype hud-ashelin (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-cargo (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-citizen (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-cpanel (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-dig-clasp (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-gun (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-health (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-dark-eco-symbol (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-helldog (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-lurker (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-map (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-moneybag (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-pegasus (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-plasmite (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-dig-button (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-predator (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-heatmeter (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-progress (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-rocketsensor (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-ruffians (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-score (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-sig (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-skill (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-skullgem (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-timer (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-turret (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-squid (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-gunturret (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-gruntegg (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-crimsonhover (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-metalkor (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-big-score (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-goal (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-miss (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-race-timer (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-race-lap-counter (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-race-turbo-counter (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-race-position (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-race-map (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-samos-old (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-samos-young (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-lurker-button (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-widow (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-race-final-stats (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-mech-air-tank (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-homing-beacon (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-dark-eco-pickup (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + +#| +(deftype hud-green-eco-pickup (hud) + () + :method-count-assert 27 + :size-assert #xba4 + :flag-assert #x1b0b300ba4 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; progress-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype progress (process-drawable) + ((current-options basic :offset-assert 196) + (menu-transition float :offset-assert 200) + (option-index int32 :offset-assert 204) + (want-option-index int32 :offset-assert 208) + (next-option-index int32 :offset-assert 212) + (graphic-index int32 :offset-assert 216) + (selected-option basic :offset-assert 220) + (current basic :offset-assert 224) + (next basic :offset-assert 228) + (ring-angle float :offset-assert 232) + (ring-want-angle float :offset-assert 236) + (init-quat quaternion :inline :offset-assert 252) + (pos-transition float :offset-assert 268) + (anim-frame float :offset-assert 272) + (swing float :offset-assert 276) + (main-menu basic :offset-assert 280) + (state-stack UNKNOWN 5 :offset-assert 284) + (option-index-stack int32 5 :offset-assert 304) ;; guessed by decompiler + (state-pos int32 :offset-assert 324) + (secret-buying basic :offset-assert 328) + (secret-buy-choice basic :offset-assert 332) + (sliding float :offset-assert 336) + (sliding-off float :offset-assert 340) + (scanlines-alpha float :offset-assert 344) + (sliding-height float :offset-assert 348) + ) + :method-count-assert 33 + :size-assert #x164 + :flag-assert #x2100f00164 + (:methods + (dummy-20 () none 20) ;; (hidden? (_type_) symbol 20) + (dummy-21 () none 21) ;; (adjust-sprites (_type_) none 21) + (dummy-22 () none 22) ;; (adjust-icons (_type_) none 22) + (dummy-23 () none 23) ;; (adjust-ratios (_type_ symbol symbol) none 23) + (dummy-24 () none 24) ;; (draw-fuel-cell-screen (_type_ int) none 24) + (dummy-25 () none 25) ;; (draw-money-screen (_type_ int) none 25) + (dummy-26 () none 26) ;; (draw-buzzer-screen (_type_ int) none 26) + (dummy-27 () none 27) ;; (draw-notice-screen (_type_) none 27) + (dummy-28 () none 28) ;; (draw-options (_type_ int int float) none 28) + (dummy-29 () none 29) ;; (respond-common (_type_) none 29) + (dummy-30 () none 30) ;; (respond-progress (_type_) none 30) + (dummy-31 () none 31) ;; (respond-memcard (_type_) none 31) + (dummy-32 () none 32) ;; (can-go-back? (_type_) symbol 32) + ) + ) +|# + +#| +(deftype menu-option (basic) + ((name uint32 :offset-assert 4) + (scale basic :offset-assert 8) + (box UNKNOWN 1 :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + ) + ) +|# + +#| +(deftype menu-on-off-option (menu-option) + ((value-to-modify uint32 :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + (:methods + ) + ) +|# + +#| +(deftype menu-yes-no-option (menu-option) + ((value-to-modify uint32 :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + (:methods + ) + ) +|# + +#| +(deftype menu-language-option (menu-option) + ((language-selection uint64 :offset-assert 48) + (language-direction basic :offset-assert 56) + (language-transition basic :offset-assert 60) + (language-x-offset int32 :offset-assert 64) + ) + :method-count-assert 12 + :size-assert #x44 + :flag-assert #xc00000044 + (:methods + ) + ) +|# + +#| +(deftype menu-quit-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-slider-option (menu-option) + ((value-to-modify uint32 :offset-assert 48) + (sprites UNKNOWN 5 :offset-assert 64) + ) + :method-count-assert 12 + :size-assert #x180 + :flag-assert #xc00000180 + (:methods + ) + ) +|# + +#| +(deftype menu-sub-menu-option (menu-option) + ((next-state basic :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #x60 + :flag-assert #xc00000060 + (:methods + ) + ) +|# + +#| +(deftype menu-sub-menu-sound-option (menu-option) + ((next-state basic :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + (:methods + ) + ) +|# + +#| +(deftype menu-stereo-mode-sound-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-sub-menu-graphic-option (menu-option) + ((next-state basic :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + (:methods + ) + ) +|# + +#| +(deftype menu-unlocked-menu-option (menu-sub-menu-option) + () + :method-count-assert 12 + :size-assert #x60 + :flag-assert #xc00000060 + (:methods + ) + ) +|# + +#| +(deftype menu-main-menu-option (menu-option) + ((next-state basic :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + (:methods + ) + ) +|# + +#| +(deftype menu-memcard-slot-option (menu-option) + ((sprites UNKNOWN 5 :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #x190 + :flag-assert #xc00000190 + (:methods + ) + ) +|# + +#| +(deftype menu-loading-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-insufficient-space-option (menu-option) + ((last-move uint64 :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #x38 + :flag-assert #xc00000038 + (:methods + ) + ) +|# + +#| +(deftype menu-secrets-insufficient-space-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-insert-card-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-error-loading-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-error-auto-saving-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-card-removed-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-error-disc-removed-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-error-reading-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-icon-info-option (menu-option) + ((sprites UNKNOWN 2 :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #xb0 + :flag-assert #xc000000b0 + (:methods + ) + ) +|# + +#| +(deftype menu-format-card-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-already-exists-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-create-game-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-video-mode-warning-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-video-mode-ok-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-progressive-mode-warning-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-progressive-mode-ok-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype menu-select-start-option (menu-option) + ((task-index int32 :offset-assert 48) + (real-task-index int32 :offset-assert 52) + (last-move uint64 :offset-assert 56) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ) + ) +|# + +#| +(deftype menu-select-scene-option (menu-option) + ((task-index int32 :offset-assert 48) + (last-move uint64 :offset-assert 56) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ) + ) +|# + +#| +(deftype menu-bigmap-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype paged-menu-option (menu-option) + ((page-index int32 :offset-assert 48) + (prev-page-index int32 :offset-assert 52) + (num-pages int32 :offset-assert 56) + (slide-dir float :offset-assert 60) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ) + ) +|# + +#| +(deftype menu-missions-option (paged-menu-option) + ((task-line-index int32 :offset-assert 64) + (last-move uint64 :offset-assert 72) + ) + :method-count-assert 12 + :size-assert #x50 + :flag-assert #xc00000050 + (:methods + ) + ) +|# + +#| +(deftype menu-highscores-option (paged-menu-option) + ((last-move uint64 :offset-assert 64) + (sprites UNKNOWN 2 :offset-assert 80) + ) + :method-count-assert 12 + :size-assert #xd0 + :flag-assert #xc000000d0 + (:methods + ) + ) +|# + +#| +(deftype secret-item-option (menu-option) + ((cost int32 :offset-assert 48) + (can-toggle basic :offset-assert 52) + (flag uint32 :offset-assert 56) + (avail-after uint16 :offset-assert 60) + ) + :method-count-assert 12 + :size-assert #x3e + :flag-assert #xc0000003e + (:methods + ) + ) +|# + +#| +(deftype menu-secret-option (menu-option) + ((item-index int32 :offset-assert 48) + (prev-item-index int32 :offset-assert 52) + (num-items int32 :offset-assert 56) + (num-hero-items int32 :offset-assert 60) + (secret-items basic :offset-assert 64) + (last-move uint64 :offset-assert 72) + (sprites UNKNOWN 2 :offset-assert 80) + ) + :method-count-assert 12 + :size-assert #xd0 + :flag-assert #xc000000d0 + (:methods + ) + ) +|# + +#| +(deftype menu-option-list (basic) + ((y-center int32 :offset-assert 4) + (y-space int32 :offset-assert 8) + (scale float :offset-assert 12) + (options basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype menu-qr-option (menu-option) + ((last-move uint64 :offset-assert 48) + (value-to-modify uint32 :offset-assert 60) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ) + ) +|# + +#| +(deftype menu-restart-mission-qr-option (menu-qr-option) + ((next-state basic :offset-assert 64) + ) + :method-count-assert 12 + :size-assert #x44 + :flag-assert #xc00000044 + (:methods + ) + ) +|# + +#| +(deftype menu-quit-qr-option (menu-qr-option) + ((next-state basic :offset-assert 64) + ) + :method-count-assert 12 + :size-assert #x44 + :flag-assert #xc00000044 + (:methods + ) + ) +|# + +#| +(deftype menu-sub-menu-qr-option (menu-qr-option) + ((next-state basic :offset-assert 64) + ) + :method-count-assert 12 + :size-assert #x44 + :flag-assert #xc00000044 + (:methods + ) + ) +|# + +#| +(deftype menu-graphic-option (menu-option) + ((last-move uint64 :offset-assert 48) + (value-to-modify uint32 :offset-assert 60) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ) + ) +|# + +#| +(deftype menu-on-off-progressive-scan-graphic-option (menu-graphic-option) + () + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ) + ) +|# + +#| +(deftype menu-aspect-ratio-option (menu-graphic-option) + () + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ) + ) +|# + +#| +(deftype menu-center-screen-graphic-option (menu-graphic-option) + ((next-state basic :offset-assert 64) + ) + :method-count-assert 12 + :size-assert #x44 + :flag-assert #xc00000044 + (:methods + ) + ) +|# + +#| +(deftype menu-video-mode-option (menu-graphic-option) + () + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ) + ) +|# + +#| +(deftype menu-game-option (menu-option) + ((last-move uint64 :offset-assert 48) + (value-to-modify uint32 :offset-assert 60) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ) + ) +|# + +#| +(deftype menu-on-off-game-vibrations-option (menu-game-option) + () + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ) + ) +|# + +#| +(deftype menu-on-off-game-subtitles-option (menu-game-option) + () + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ) + ) +|# + +#| +(deftype menu-sub-menu-game-option (menu-game-option) + ((next-state basic :offset-assert 64) + ) + :method-count-assert 12 + :size-assert #x44 + :flag-assert #xc00000044 + (:methods + ) + ) +|# + +#| +(deftype menu-language-game-option (menu-game-option) + ((language-selection uint64 :offset-assert 64) + (language-direction basic :offset-assert 72) + (language-transition basic :offset-assert 76) + (language-x-offset int32 :offset-assert 80) + ) + :method-count-assert 12 + :size-assert #x54 + :flag-assert #xc00000054 + (:methods + ) + ) +|# + +#| +(deftype menu-subtitle-language-game-option (menu-game-option) + ((language-selection uint64 :offset-assert 64) + (language-direction basic :offset-assert 72) + (language-transition basic :offset-assert 76) + (language-x-offset int32 :offset-assert 80) + ) + :method-count-assert 12 + :size-assert #x54 + :flag-assert #xc00000054 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 basic :offset-assert 16) + (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 uint uint int) rpc-buffer-pair 0) + (dummy-9 () none 9) ;; (call (rpc-buffer-pair uint pointer uint) int 9) + (dummy-10 () none 10) ;; (add-element (rpc-buffer-pair) pointer 10) + (dummy-11 () none 11) ;; (decrement-elt-used (rpc-buffer-pair) int 11) + (dummy-12 () none 12) ;; (sync (rpc-buffer-pair symbol) int 12) + (dummy-13 () none 13) ;; (check-busy (rpc-buffer-pair) symbol 13) + (dummy-14 () none 14) ;; (pop-last-received (rpc-buffer-pair) pointer 14) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + (curve curve :inline :offset-assert 16) + (num-cverts int32 :offset-assert 20) + (cverts (inline-array vector) :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 27 + :size-assert #x24 + :flag-assert #x1b00000024 + (:methods + ;; (new (symbol type process symbol float) _type_ 0) + (dummy-9 () none 9) ;; (dummy-9 (_type_) none 9) + (dummy-10 () none 10) ;; (eval-path-curve-div! (_type_ vector float symbol) vector 10) + (dummy-11 () none 11) ;; (get-random-point (_type_ vector) vector 11) + (dummy-12 () none 12) ;; (TODO-RENAME-12 (_type_ vector float) vector 12) + (dummy-13 () none 13) ;; (eval-path-curve! (_type_ vector float symbol) vector 13) + (dummy-14 () none 14) ;; (TODO-RENAME-14 (_type_ vector float) vector 14) + (dummy-15 () none 15) ;; (length-as-float (_type_) float 15) + (dummy-16 () none 16) ;; (path-distance (_type_) float 16) + (dummy-17 () none 17) ;; (get-num-verts (_type_) int 17) + (dummy-18 () none 18) ;; (should-display? (_type_) symbol 18) + (dummy-19 () none 19) ;; (TODO-RENAME-19 (_type_) float 19) + (dummy-20 () none 20) ;; (TODO-RENAME-20 (_type_) float 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + ) + ) +|# + +#| +(deftype curve-control (path-control) + () + :method-count-assert 27 + :size-assert #x24 + :flag-assert #x1b00000024 + (:methods + ;; (new (symbol type process symbol float) _type_ 0) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 UNKNOWN 16 :offset-assert 192) + ) + :method-count-assert 9 + :size-assert #x1c0 + :flag-assert #x9000001c0 + ) +|# + +#| +(deftype nav-mesh-work (structure) + ((vert0-table UNKNOWN 4 :offset-assert 0) + (vert1-table UNKNOWN 4 :offset-assert 4) + (edge-mask-table UNKNOWN 3 :offset-assert 8) + (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 UNKNOWN 16 :offset-assert 32) + (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 basic :offset-assert 296) + (nav basic :offset-assert 300) + (poly0 basic :offset-assert 304) + (poly1 basic :offset-assert 308) + (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 basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype nav-poly (structure) + ((data UNKNOWN 64 :offset-assert 0) + (vertex uint8 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) + ((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) + (quad uint128 :offset-assert 0) + ) + :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-poly nav-poly :offset-assert 48) + (next-poly nav-poly :offset-assert 52) + (len meters :offset-assert 56) + (last-edge int8 :offset-assert 60) + (ignore uint8 :offset-assert 61) + (terminated symbol :offset-assert 64) ;; guessed by decompiler + (reached-dest symbol :offset-assert 68) ;; guessed by decompiler + (hit-boundary symbol :offset-assert 72) ;; guessed by decompiler + (hit-gap symbol :offset-assert 76) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(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? basic :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype clamp-travel-vector-to-mesh-return-info (structure) + ((found-boundary basic :offset-assert 0) + (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) + (gap-poly nav-poly :offset-assert 84) + (edge int8 :offset-assert 88) + (ignore uint8 :offset-assert 89) + (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 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype nav-mesh (basic) + () + :method-count-assert 47 + :size-assert #x70 + :flag-assert #x2f00000070 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) ;; (tri-centroid-world (_type_ nav-poly vector) vector 9) + (dummy-10 () none 10) ;; (tri-centroid-local (_type_ nav-poly vector) vector 10) + (dummy-11 () none 11) ;; (get-adj-poly (_type_ nav-poly nav-poly symbol) nav-poly 11) + (dummy-12 () none 12) ;; (setup-portal (_type_ nav-poly nav-poly nav-route-portal) object 12) + (dummy-13 () none 13) ;; (initialize-mesh! (_type_) none 13) + (dummy-14 () none 14) ;; (move-along-nav-ray! (_type_ nav-ray) none 14) + (dummy-15 () none 15) ;; (try-move-along-ray (_type_ nav-poly vector vector float) meters 15) + (dummy-16 () none 16) ;; (TODO-RENAME-16 (_type_ vector nav-poly vector symbol float clip-travel-vector-to-mesh-return-info) none 16) + (dummy-17 () none 17) ;; (update-route-table (_type_) none 17) + (dummy-18 () none 18) ;; (dummy-18 (_type_ int vector int (pointer int8) int) none 18) + (dummy-19 () none 19) ;; (compute-bounding-box (_type_ vector vector) none 19) + (dummy-20 () none 20) ;; (debug-draw-poly (_type_ nav-poly rgba) none 20) + (dummy-21 () none 21) ;; (point-in-poly? (_type_ nav-poly vector) symbol 21) + (dummy-22 () none 22) ;; (find-opposite-vertices (_type_ nav-poly nav-poly) uint 22) + (dummy-23 () none 23) ;; (dummy-23 (_type_ nav-poly vector vector vector nav-route-portal) vector 23) + (dummy-24 () none 24) ;; (closest-point-on-boundary (_type_ nav-poly vector vector) vector 24) + (dummy-25 () none 25) ;; (project-point-into-tri-3d (_type_ nav-poly vector vector) none 25) + (dummy-26 () none 26) ;; (project-point-into-tri-2d (_type_ nav-poly vector vector) vector 26) + (dummy-27 () none 27) ;; (find-poly-fast (_type_ vector meters) nav-poly 27) + (dummy-28 () none 28) ;; (find-poly (_type_ vector meters (pointer nav-control-flags)) nav-poly 28) + (dummy-29 () none 29) ;; (is-in-mesh? (_type_ vector float meters) symbol 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + (dummy-40 () none 40) + (dummy-41 () none 41) + (dummy-42 () none 42) + (dummy-43 () none 43) + (dummy-44 () none 44) + (dummy-45 () none 45) + (dummy-46 () none 46) + ) + ) +|# + +;; (define-extern vector-normalize-unity! object) +;; (define-extern vector-normalize-unity-copy! object) +;; (define-extern debug-validate-current-poly object) +;; (define-extern init-ray object) ;; (function nav-ray symbol) +;; (define-extern point-poly-intersection? object) +;; (define-extern nav-sphere-from-cam object) ;; (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 UNKNOWN 2 :offset-assert 48) + (closest-sphere-dist2 float :offset-assert 80) + (avoiding-sphere? basic :offset-assert 84) + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +#| +(deftype nav-callback-info (structure) + ((callback-count int32 :offset-assert 0) + (callback-array UNKNOWN 10 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype nav-state (structure) + () + :method-count-assert 55 + :size-assert #xb0 + :flag-assert #x37000000b0 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + (dummy-40 () none 40) + (dummy-41 () none 41) + (dummy-42 () none 42) + (dummy-43 () none 43) + (dummy-44 () none 44) + (dummy-45 () none 45) + (dummy-46 () none 46) + (dummy-47 () none 47) + (dummy-48 () none 48) + (dummy-49 () none 49) + (dummy-50 () none 50) + (dummy-51 () none 51) + (dummy-52 () none 52) + (dummy-53 () none 53) + (dummy-54 () none 54) + ) + ) +|# + +#| +(deftype nav-control (structure) + () + :method-count-assert 47 + :size-assert #x120 + :flag-assert #x2f00000120 + ;; Failed to read fields. + (:methods + ;; (new (symbol type collide-shape int float) _type_ 0) + (dummy-9 () none 9) ;; (debug-draw (_type_) none 9) + (dummy-10 () none 10) ;; (point-in-bounds? (_type_ vector) symbol 10) + (dummy-11 () none 11) ;; (dummy-11 (_type_ vector) vector 11) + (dummy-12 () none 12) ;; (TODO-RENAME-12 (_type_ nav-gap-info) symbol 12) + (dummy-13 () none 13) ;; (dummy-13 (_type_ vector vector) vector 13) + (dummy-14 () none 14) ;; (set-current-poly! (_type_ nav-poly) none 14) + (dummy-15 () none 15) ;; (set-target-pos! (_type_ vector) none 15) + (dummy-16 () none 16) ;; (dummy-16 (_type_ vector) nav-poly 16) + (dummy-17 () none 17) ;; (project-onto-nav-mesh (_type_ vector vector) vector 17) + (dummy-18 () none 18) ;; (find-poly (_type_ vector) nav-poly 18) + (dummy-19 () none 19) ;; (dummy-19 (_type_ vector collide-shape-moving vector float) none 19) + (dummy-20 () none 20) ;; (project-point-into-tri-3d (_type_ nav-poly vector vector) vector 20) + (dummy-21 () none 21) ;; (TODO-RENAME-21 (_type_ vector) nav-poly 21) + (dummy-22 () none 22) ;; (TODO-RENAME-22 (_type_ vector float) symbol 22) + (dummy-23 () none 23) ;; (dummy-23 (_type_ vector check-vector-collision-with-nav-spheres-info) float 23) + (dummy-24 () none 24) ;; (dummy-24 (_type_ float clip-travel-vector-to-mesh-return-info) none 24) + (dummy-25 () none 25) ;; (is-in-mesh? (_type_ vector float) symbol 25) + (dummy-26 () none 26) ;; (TODO-RENAME-26 (_type_) none 26) + (dummy-27 () none 27) ;; (TODO-RENAME-27 (_type_) none 27) + (dummy-28 () none 28) ;; (TODO-RENAME-28 (_type_ collide-kind) none 28) + (dummy-29 () none 29) ;; (should-display? (_type_) symbol 29) + (dummy-30 () none 30) ;; (dummy-30 (_type_ vector vector vector) sphere 30) + (dummy-31 () none 31) ;; (intersect-ray-line-segment? (_type_ vector vector vector vector) symbol 31) + (dummy-32 () none 32) ;; (TODO-ASM-32 (_type_ vector vector vector vector float) symbol 32) + (dummy-33 () none 33) ;; (TODO-RENAME-33 (_type_ vector vector vector vector float) symbol 33) + (dummy-34 () none 34) ;; (dummy-34 () none 34) + (dummy-35 () none 35) ;; (dummy-35 (_type_ vector vector vector vector float) none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + (dummy-40 () none 40) + (dummy-41 () none 41) + (dummy-42 () none 42) + (dummy-43 () none 43) + (dummy-44 () none 44) + (dummy-45 () none 45) + (dummy-46 () none 46) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spatial-hash-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype grid-hash-box (structure) + ((min UNKNOWN 3 :offset-assert 0) + (max UNKNOWN 3 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype grid-hash (basic) + ((work basic :offset-assert 4) + (search-box grid-hash-box :inline :offset-assert 8) + (bucket-size int16 :offset-assert 14) + (axis-scale UNKNOWN 3 :offset-assert 16) + (dimension-array UNKNOWN 3 :offset-assert 28) + (vertical-cell-count int8 :offset-assert 31) + (bucket-array uint32 :offset-assert 32) + (box-min UNKNOWN 3 :offset-assert 36) + (box-max UNKNOWN 3 :offset-assert 48) + (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 uint32 :offset-assert 72) + (spr-bucket-array uint32 :offset-assert 76) + (debug-draw basic :offset-assert 80) + (use-scratch-ram basic :offset-assert 84) + ) + :method-count-assert 25 + :size-assert #x58 + :flag-assert #x1900000058 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + ) + ) +|# + +#| +(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 uint32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sphere-hash (grid-hash) + ((sphere-array uint32 :offset-assert 88) + (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 34 + :size-assert #x68 + :flag-assert #x2200000068 + (:methods + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + ) + ) +|# + +#| +(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 uint32 :offset-assert 104) + (mem-object-array uint32 :offset-assert 108) + (spr-object-array uint32 :offset-assert 112) + ) + :method-count-assert 41 + :size-assert #x74 + :flag-assert #x2900000074 + (:methods + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + (dummy-40 () none 40) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; actor-hash-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *actor-list* object) +;; (define-extern *actor-list-length* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(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 UNKNOWN 4 :offset-assert 16) + (basename sound-stream-name :inline :offset-assert 32) ;; uint8 48 + ) + :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 uint32 :offset-assert 4) + (section uint32 :offset-assert 8) + (maxlen uint32 :offset-assert 12) + (id UNKNOWN 4 :offset-assert 16) + (basename UNKNOWN 4 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #xe0 + :flag-assert #x9000000e0 + ) +|# + +#| +(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 + ) +|# + +;; (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 object) ;; (function string int pointer int symbol) +;; (define-extern str-load-status object) ;; (function (pointer int32) symbol) +;; (define-extern str-load-cancel object) ;; (function none) +;; (define-extern str-play-async object) ;; (function string sound-id none) +;; (define-extern str-play-stop object) ;; (function string none) +;; (define-extern str-play-queue object) ;; (function string none) +;; (define-extern str-ambient-play object) ;; (function string none) +;; (define-extern str-ambient-stop object) ;; (function string none) +;; (define-extern str-play-kick object) ;; (function none) +;; (define-extern *dgo-time* object) ;; time-frame +;; (define-extern dgo-load-begin object) ;; (function string pointer pointer pointer load-dgo-msg) +;; (define-extern dgo-load-get-next object) ;; (function (pointer symbol) pointer) +;; (define-extern dgo-load-continue object) ;; (function pointer int) +;; (define-extern dgo-load-cancel object) ;; (function none) +;; (define-extern find-temp-buffer object) ;; (function int pointer) +;; (define-extern dgo-load-link object) ;; (function dgo-header kheap symbol symbol symbol) +;; (define-extern destroy-mem object) ;; (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 object) ;; (function int uint uint pointer int) +;; (define-extern ramdisk-sync object) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gsound ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype engine-sound-pers (engine-pers) + () + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + (:methods + ) + ) +|# + +#| +(deftype sound-iop-info (structure) + () + :method-count-assert 9 + :size-assert #x241 + :flag-assert #x900000241 + ;; Failed to read fields. + ) +|# + +;; (define-extern *sound-loop-engine* object) +;; (define-extern *sound-player-rpc* object) ;; rpc-buffer-pair +;; (define-extern *sound-loader-rpc* object) ;; rpc-buffer-pair +;; (define-extern sound-name= object) ;; (function sound-name sound-name symbol) +;; (define-extern *sound-iop-info* object) ;; sound-iop-info +;; (define-extern str-is-playing? object) ;; (function symbol) +;; (define-extern str-id-is-playing? object) +;; (define-extern current-str-pos object) ;; (function sound-id int) +;; (define-extern is-ramdisk-loaded? object) +;; (define-extern is-cd-in? object) ;; (function symbol) +;; (define-extern new-sound-id object) ;; (function sound-id) +;; (define-extern check-irx-version object) ;; (function int) +;; (define-extern sound-bank-iop-store object) +;; (define-extern sound-bank-iop-free object) +;; (define-extern sound-bank-load object) ;; (function sound-name sound-id) +;; (define-extern sound-bank-load-from-iop object) +;; (define-extern sound-bank-load-from-ee object) +;; (define-extern sound-bank-unload object) ;; (function sound-name int) +;; (define-extern sound-music-load object) ;; (function sound-name int) +;; (define-extern sound-music-unload object) ;; (function int) +;; (define-extern set-language object) ;; (function language-enum int) +;; (define-extern sound-set-stereo-mode object) +;; (define-extern list-sounds object) ;; (function int) +;; (define-extern sound-command->string object) ;; (function sound-command string) +;; (define-extern sound-buffer-dump object) ;; (function int) +;; (define-extern *sound-player-enable* object) ;; symbol +;; (define-extern swap-sound-buffers object) ;; (function vector vector float int) +;; (define-extern get-sound-buffer-entry object) ;; (function pointer) +;; (define-extern free-last-sound-buffer-entry object) ;; (function int) +;; (define-extern sound-basic-cb object) ;; (function int (pointer int32) none) +;; (define-extern sound-trans-convert object) ;; (function vector3w vector int) +;; (define-extern sound-angle-convert object) ;; (function float int) +;; (define-extern string->sound-name object) ;; (function string sound-name) +;; (define-extern sound-set-volume object) ;; (function sound-group float int) +;; (define-extern sound-set-reverb object) ;; (function int float float uint int) +;; (define-extern sound-set-ear-trans object) ;; (function vector vector float int) +;; (define-extern sound-play-by-name object) ;; (function sound-name sound-id int int int sound-group symbol sound-id) +;; (define-extern sound-play-by-spec object) ;; (function sound-spec sound-id vector sound-id) +;; (define-extern sound-pause object) ;; (function sound-id int) +;; (define-extern sound-stop object) ;; (function sound-id int) +;; (define-extern sound-continue object) ;; (function sound-id int) +;; (define-extern sound-group-pause object) ;; (function sound-group int) +;; (define-extern sound-group-stop object) ;; (function sound-group int) +;; (define-extern sound-group-continue object) ;; (function sound-group int) +;; (define-extern sound-set-flava object) ;; (function uint int) +;; (define-extern sound-set-midi-reg object) +;; (define-extern sound-set-fps object) ;; (function int int) +;; (define-extern sound-volume-off object) ;; (function int) +;; (define-extern *ambient-spec* object) ;; sound-spec +;; (define-extern show-iop-info object) ;; (function dma-buffer int) +;; (define-extern show-iop-memory object) ;; (function dma-buffer int) +;; (define-extern ear-trans object) ;; (function vector) +;; (define-extern make-sqrt-table object) ;; (function int) +;; (define-extern loader-test-command object) +;; (define-extern doppler-pitch-shift object) +;; (define-extern sound-bank-reload object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; transformq ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern transformq-copy! object) ;; (function transformq transformq transformq) +;; (define-extern matrix<-transformq! object) ;; (function matrix transformq matrix) +;; (define-extern matrix<-no-trans-transformq! object) ;; (function matrix transformq matrix) +;; (define-extern matrix<-transformq+trans! object) ;; (function matrix transformq vector matrix) +;; (define-extern matrix<-transformq+world-trans! object) ;; (function matrix transformq vector matrix) +;; (define-extern matrix<-parented-transformq! object) ;; (function matrix transformq vector matrix) +;; (define-extern matrix<-transformq+rot-offset! object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-func ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern raw-ray-sphere-intersect object) ;; (function float float) +;; (define-extern ray-sphere-intersect object) ;; (function vector vector vector float float) +;; (define-extern ray-circle-intersect object) ;; (function vector vector vector float float) +;; (define-extern ray-cylinder-intersect object) ;; (function vector vector vector vector float float vector float) +;; (define-extern ray-plane-intersect object) ;; (function vector vector vector vector vector vector vector float) +;; (define-extern ray-triangle-intersect object) ;; (function vector vector float matrix vector vector float) +;; (define-extern collide-do-primitives object) ;; (function float) +;; (define-extern moving-sphere-triangle-intersect object) ;; (function vector vector float collide-cache-tri vector vector float) +;; (define-extern moving-sphere-sphere-intersect object) ;; (function vector vector vector vector float) +;; (define-extern moving-sphere-moving-sphere-intersect object) ;; (function vector vector vector vector vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; joint ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype art-group (art) + () + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + ;; Failed to read fields. + (:methods + (dummy-13 () none 13) ;; (link-art! (_type_) art-group 13) + (dummy-14 () none 14) ;; (unlink-art! (_type_) int 14) + ) + ) +|# + +;; (define-extern joint-anim-login object) ;; (function joint-anim-drawable joint-anim-drawable) +;; (define-extern joint-anim-inspect-elt object) ;; (function joint-anim float joint-anim) +;; (define-extern jacc-mem-usage object) ;; (function joint-anim-compressed-control memory-usage-block int joint-anim-compressed-control) +;; (define-extern joint-control-channel-eval object) ;; (function joint-control-channel none) +;; (define-extern joint-control-channel-eval! object) ;; (function joint-control-channel (function joint-control-channel float float float) none) +;; (define-extern joint-control-channel-group-eval! object) ;; (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) +;; (define-extern joint-control-channel-group! object) ;; (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) +;; (define-extern joint-control-copy! object) ;; (function joint-control joint-control joint-control) +;; (define-extern joint-control-remap! object) ;; (function joint-control art-group art-group pair int string object) +;; (define-extern flatten-joint-control-to-spr object) ;; (function joint-control int) +;; (define-extern matrix-from-joint-anim-frame object) ;; (function joint-anim-compressed-control int int matrix) +;; (define-extern matrix-from-control-channel! object) ;; (function matrix joint joint-control-channel matrix) +;; (define-extern matrix-from-control-pair! object) ;; (function matrix matrix joint matrix) +;; (define-extern matrix-from-control! object) ;; (function matrix-stack joint joint-control symbol matrix) +;; (define-extern cspace<-cspace! object) ;; (function cspace cspace matrix) +;; (define-extern cspace<-cspace-normalized! object) +;; (define-extern cspace<-parent-joint! object) +;; (define-extern cspace<-rot-yxy! object) ;; (function cspace transform matrix) +;; (define-extern cspace<-transform-yxy! object) ;; (function cspace transform matrix) +;; (define-extern cspace<-transformq! object) ;; (function cspace transformq matrix) +;; (define-extern cspace<-transformq+trans! object) ;; (function cspace transformq vector matrix) +;; (define-extern cspace<-transformq+world-trans! object) ;; (function cspace transformq vector matrix) +;; (define-extern cspace<-transformq+rot-offset! object) +;; (define-extern cspace-calc-total-matrix! object) ;; (function cspace matrix matrix) +;; (define-extern cspace<-matrix-no-push-joint! object) ;; (function cspace joint-control matrix) +;; (define-extern cspace<-matrix-joint! object) ;; (function cspace matrix matrix) +;; (define-extern cspace<-parented-matrix-joint! object) ;; (function cspace matrix matrix) +;; (define-extern cspace<-parented-matrix-mirror! object) +;; (define-extern cspace<-parented-matrix-joint-flip-z! object) +;; (define-extern cspace<-matrix-joint-flip-z! object) +;; (define-extern cspace<-parented-transformq-joint! object) ;; (function cspace transformq none) +;; (define-extern cspace<-parented-transformq-joint-flip-z! object) +;; (define-extern clear-frame-accumulator object) ;; (function (inline-array vector) none) +;; (define-extern normalize-frame-quaternions object) ;; function +;; (define-extern decompress-fixed-data-to-accumulator object) ;; (function none) +;; (define-extern decompress-frame-data-to-accumulator object) ;; (function none) +;; (define-extern decompress-frame-data-pair-to-accumulator object) ;; (function none) +;; (define-extern make-joint-jump-tables object) ;; (function int) +;; (define-extern calc-animation-from-spr object) ;; (function (inline-array vector) int none) +;; (define-extern create-interpolated-joint-animation-frame object) ;; (function (inline-array vector) int process-drawable int) +;; (define-extern create-interpolated2-joint-animation-frame object) +;; (define-extern *anim-manager* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; joint-mod ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern joint-mod-ik-callback object) +;; (define-extern real-joint-mod-gun-look-at-handler object) +;; (define-extern joint-mod-gun-look-at-handler object) +;; (define-extern joint-mod-foot-rot-handler object) +;; (define-extern last-try-to-look-at-data object) ;; try-to-look-at-info +;; (define-extern joint-mod-look-at-handler object) ;; (function cspace transformq none) +;; (define-extern joint-mod-polar-look-at-guts object) +;; (define-extern joint-mod-polar-look-at-handler object) +;; (define-extern joint-mod-world-look-at-handler object) ;; (function cspace transformq none) +;; (define-extern joint-mod-rotate-handler object) ;; (function cspace transformq none) +;; (define-extern joint-mod-scale-handler object) +;; (define-extern joint-mod-joint-set-handler object) ;; (function cspace transformq none) +;; (define-extern joint-mod-joint-set-world-handler object) +;; (define-extern joint-mod-joint-set*-handler object) ;; (function cspace transformq none) +;; (define-extern joint-mod-joint-set*-world-handler object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; chain-physics ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern chain-physics-initialize object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cylinder ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cylinder-verts (structure) + ((vert vector 24 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x180 + :flag-assert #x900000180 + ) +|# + +#| +(deftype cylinder-flat-verts (structure) + ((vert vector 10 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +;; (define-extern ray-arbitrary-circle-intersect object) ;; (function vector vector vector vector float float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wind-work ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *wind-work* object) ;; wind-work + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wind ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern update-wind object) ;; (function wind-work (array uint8) none) +;; (define-extern wind-get-hashed-index object) ;; (function vector int) +;; (define-extern level-update-wind object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bsp ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern mem-usage-bsp-tree object) ;; (function bsp-header bsp-node memory-usage-block int none) +;; (define-extern *test-shrub* object) ;; int +;; (define-extern bsp-camera-asm object) ;; (function bsp-header vector none) +;; (define-extern print-collide-stats object) ;; (function none) +;; (define-extern level-remap-texture object) ;; (function texture-id texture-id) +;; (define-extern build-masks object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; subdivide ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *merc-global-stats* object) ;; merc-global-stats +;; (define-extern clear-tr-stat object) ;; (function tr-stat none) +;; (define-extern *stat-string-tfrag* object) ;; string +;; (define-extern *stat-string-tfrag-scissor* object) +;; (define-extern *stat-string-total* object) ;; string +;; (define-extern print-tr-stat object) ;; (function tr-stat string string none) +;; (define-extern print-terrain-stats object) ;; (function none) +;; (define-extern update-subdivide-settings! object) ;; (function subdivide-settings math-camera int none) +;; (define-extern *subdivide-settings* object) ;; subdivide-settings +;; (define-extern set-tfrag-dists! object) ;; (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 object) ;; (function none) +;; (define-extern end-perf-stat-collection object) ;; (function none) +;; (define-extern print-perf-stats object) ;; (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 uint32 :offset-assert 0) + (data UNKNOWN 3 :offset-assert 4) + (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) + (data sprite-vec-data-2d :dynamic :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype sprite-aux-list (basic) + () + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ;; Failed to read fields. + ) +|# + +#| +(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 UNKNOWN 8 :offset-assert 0) + (st-array UNKNOWN 4 :offset-assert 128) + (xyz-array UNKNOWN 4 :offset-assert 192) + (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) + (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 object) ;; (function sprite-header int none) +;; (define-extern clear-sprite-aux-list object) ;; (function none) +;; (define-extern add-to-sprite-aux-list object) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d none) +;; (define-extern sprite-setup-frame-data object) ;; (function sprite-frame-data int none) +;; (define-extern sprite-vu1-block object) ;; vu-function +;; (define-extern sprite-set-3d-quaternion! object) ;; (function sprite-vec-data-3d quaternion quaternion) +;; (define-extern sprite-get-3d-quaternion! object) ;; (function quaternion sprite-vec-data-3d quaternion) +;; (define-extern sprite-add-matrix-data object) ;; (function dma-buffer uint none) +;; (define-extern sprite-add-frame-data object) ;; (function dma-buffer uint none) +;; (define-extern sprite-add-2d-chunk object) ;; (function sprite-array-2d int int dma-buffer int none) +;; (define-extern sprite-add-2d-all object) ;; (function sprite-array-2d dma-buffer int none) +;; (define-extern sprite-add-3d-chunk object) ;; (function sprite-array-3d int int dma-buffer none) +;; (define-extern sprite-add-3d-all object) ;; (function sprite-array-3d dma-buffer int none) +;; (define-extern sprite-draw object) ;; (function display none) +;; (define-extern sprite-allocate-user-hvdf object) ;; (function int) +;; (define-extern sprite-release-user-hvdf object) ;; (function int none) +;; (define-extern sprite-get-user-hvdf object) ;; (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 object) ;; (function none) +;; (define-extern sprite-distort-vu1-block object) ;; vu-function +;; (define-extern sprite-init-distorter object) ;; (function dma-buffer uint none) +;; (define-extern sprite-draw-distorters object) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sprite-glow ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sprite-glow-template (structure) + ((clear-init-giftag gs-gif-tag :inline :offset-assert 0) + (clear-init-adcmds UNKNOWN 5 :offset-assert 16) + (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 UNKNOWN 2 :offset-assert 128) + (clear-draw-clr-1 gs-packed-rgba :inline :offset-assert 160) + (clear-draw-xyz-1 UNKNOWN 2 :offset-assert 176) + (offscr-setup-giftag gs-gif-tag :inline :offset-assert 208) + (offscr-setup-adcmds UNKNOWN 8 :offset-assert 224) + (offscr-first-giftag gs-gif-tag :inline :offset-assert 352) + (offscr-first-clr gs-packed-rgba :inline :offset-assert 368) + (offscr-first-uv-0 gs-packed-uv :inline :offset-assert 384) + (offscr-first-xyzw-0 gs-packed-xyzw :inline :offset-assert 400) + (offscr-first-uv-1 gs-packed-uv :inline :offset-assert 416) + (offscr-first-xyzw-1 gs-packed-xyzw :inline :offset-assert 432) + (repeat-draw-giftag gs-gif-tag :inline :offset-assert 448) + (repeat-draw-adcmds UNKNOWN 29 :offset-assert 464) + (flare-alpha-giftag gs-gif-tag :inline :offset-assert 928) + (flare-alpha-clr gs-packed-rgba :inline :offset-assert 944) + (flare-alpha-uv gs-packed-uv :inline :offset-assert 960) + (flare-alpha-xyzw-0 gs-packed-xyzw :inline :offset-assert 976) + (flare-alpha-xyzw-1 gs-packed-xyzw :inline :offset-assert 992) + (flare-alpha-xyzw-2 gs-packed-xyzw :inline :offset-assert 1008) + (flare-alpha-xyzw-3 gs-packed-xyzw :inline :offset-assert 1024) + (flare-init-giftag gs-gif-tag :inline :offset-assert 1040) + (flare-init-adcmds UNKNOWN 8 :offset-assert 1056) + (flare-draw-giftag gs-gif-tag :inline :offset-assert 1184) + (flare-draw-clr gs-packed-rgba :inline :offset-assert 1200) + (flare-draw-stq-0 gs-packed-stq :inline :offset-assert 1216) + (flare-draw-xyzw-0 gs-packed-xyzw :inline :offset-assert 1232) + (flare-draw-stq-1 gs-packed-stq :inline :offset-assert 1248) + (flare-draw-xyzw-1 gs-packed-xyzw :inline :offset-assert 1264) + (flare-draw-stq-2 gs-packed-stq :inline :offset-assert 1280) + (flare-draw-xyzw-2 gs-packed-xyzw :inline :offset-assert 1296) + (flare-draw-stq-3 gs-packed-stq :inline :offset-assert 1312) + (flare-draw-xyzw-3 gs-packed-xyzw :inline :offset-assert 1328) + ) + :method-count-assert 9 + :size-assert #x540 + :flag-assert #x900000540 + ) +|# + +#| +(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 UNKNOWN 4 :offset-assert 288) + (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 UNKNOWN 3 :offset-assert 20) + (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 UNKNOWN 3 :offset-assert 20) + (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-template* object) +;; (define-extern sprite-glow-vu1-block object) +;; (define-extern sprite-glow-init-consts object) +;; (define-extern sprite-glow-init-engine object) +;; (define-extern *sprite-glow-dma-packet-data* object) +;; (define-extern sprite-glow-add-sprite object) +;; (define-extern sprite-glow-add-simple-sprite object) +;; (define-extern sprite-glow-draw object) +;; (define-extern add-shader-to-dma object) +;; (define-extern *simple-sprite-system* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debug-sphere ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern make-debug-sphere-table object) ;; (function debug-sphere-table none) +;; (define-extern *debug-sphere-table* object) ;; debug-sphere-table +;; (define-extern add-debug-sphere-from-table object) ;; (function bucket-id vector float rgba 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 font-color :offset-assert 32) ;; guessed by decompiler + (offset vector2h :inline :offset-assert 36) + (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 + ) +|# + +#| +(deftype debug-vertex-stats (basic) + () + :method-count-assert 9 + :size-assert #x4b10 + :flag-assert #x900004b10 + ;; Failed to read fields. + ) +|# + +;; (define-extern transform-float-point object) ;; (function vector vector4w vector4w) +;; (define-extern add-debug-point object) ;; (function symbol bucket-id vector symbol) +;; (define-extern debug-line-clip? object) +;; (define-extern internal-draw-debug-line object) ;; (function bucket-id vector vector rgba symbol rgba pointer) +;; (define-extern internal-draw-debug-text-3d object) ;; (function bucket-id string vector font-color vector2h pointer) +;; (define-extern add-debug-outline-triangle object) ;; (function symbol bucket-id vector vector vector rgba symbol) +;; (define-extern add-debug-triangle-normal object) ;; (function symbol bucket-id vector vector vector rgba symbol) +;; (define-extern add-debug-flat-triangle object) ;; (function symbol bucket-id vector vector vector rgba symbol) +;; (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 get-debug-line object) ;; (function debug-line) +;; (define-extern get-debug-text-3d object) ;; (function debug-text-3d) +;; (define-extern debug-reset-buffers object) ;; (function symbol) +;; (define-extern debug-draw-buffers object) ;; (function symbol) +;; (define-extern add-debug-line object) ;; (function symbol bucket-id vector vector rgba symbol rgba symbol) +;; (define-extern add-debug-line2d object) ;; (function symbol bucket-id vector vector vector symbol) +;; (define-extern add-debug-box object) ;; (function symbol bucket-id vector vector rgba symbol) +;; (define-extern add-debug-box-with-transform object) +;; (define-extern add-debug-x object) ;; (function symbol bucket-id vector rgba symbol) +;; (define-extern add-debug-cross object) +;; (define-extern add-debug-text-3d object) ;; (function symbol bucket-id string vector font-color vector2h symbol) +;; (define-extern add-debug-sphere-with-transform object) ;; (function symbol bucket-id vector meters matrix rgba symbol) +;; (define-extern add-debug-sphere object) ;; (function symbol bucket-id vector float rgba symbol) +;; (define-extern add-debug-text-sphere object) ;; (function symbol bucket-id vector float string rgba symbol) +;; (define-extern add-debug-spheres object) ;; (function symbol bucket-id (inline-array vector) int rgba symbol) +;; (define-extern add-debug-line-sphere object) +;; (define-extern add-debug-circle object) ;; (function symbol bucket-id vector float rgba matrix symbol) +;; (define-extern add-debug-vector object) ;; (function symbol bucket-id vector vector meters rgba symbol) +;; (define-extern add-debug-matrix object) ;; (function symbol bucket-id matrix matrix) +;; (define-extern add-debug-rot-matrix object) ;; (function symbol bucket-id matrix vector matrix) +;; (define-extern add-debug-quaternion object) +;; (define-extern add-debug-cspace object) +;; (define-extern add-debug-yrot-vector object) ;; (function symbol bucket-id vector float float rgba symbol) +;; (define-extern add-debug-arc object) ;; (function symbol bucket-id vector float float float rgba matrix symbol) +;; (define-extern add-debug-curve object) ;; (function symbol bucket-id (inline-array vector) int (pointer float) int rgba symbol) +;; (define-extern add-debug-curve2 object) ;; (function symbol bucket-id curve rgba symbol symbol) +;; (define-extern add-debug-points object) ;; (function symbol bucket-id (inline-array vector) int rgba float int symbol) +;; (define-extern debug-percent-bar object) ;; (function symbol bucket-id int int float rgba symbol) +;; (define-extern debug-pad-display object) ;; (function cpad-info symbol) +;; (define-extern add-debug-light object) ;; (function symbol bucket-id light vector string symbol) +;; (define-extern add-debug-lights object) ;; (function symbol bucket-id (inline-array light) vector symbol) +;; (define-extern drawable-frag-count object) ;; (function drawable int) +;; (define-extern history-init object) ;; (function pos-history int pos-history) +;; (define-extern history-draw-and-update object) ;; (function pos-history int vector symbol) +;; (define-extern dma-timeout-cam object) ;; (function vector) +;; (define-extern display-file-info object) ;; (function int) +;; (define-extern add-debug-cursor object) +;; (define-extern *boundary-polygon* object) ;; (inline-array lbvtx) +;; (define-extern init-boundary-regs object) ;; (function none) +;; (define-extern add-boundary-shader object) ;; (function texture-id dma-buffer none) +;; (define-extern draw-boundary-polygon object) ;; function +;; (define-extern render-boundary-quad object) ;; (function lbvtx dma-buffer none) +;; (define-extern render-boundary-tri object) ;; (function lbvtx dma-buffer none) +;; (define-extern add-debug-bound-internal object) +;; (define-extern add-debug-bound object) +;; (define-extern cpu-delay object) +;; (define-extern qword-read-time object) +;; (define-extern bugfix? object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; history ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype history-elt (structure) + ((record-tag-bytes UNKNOWN 4 :offset-assert 0) + (record-tag uint32 :offset-assert 0) + (record-id uint16 :offset-assert 0) + (owner uint8 :offset-assert 2) + (channel uint8 :offset-assert 4) + (timestamp uint64 :offset-assert 8) + (origin vector :inline :offset-assert 16) + (bytes UNKNOWN 16 :offset-assert 32) + (vector vector :inline :offset-assert 32) + (float float :offset-assert 32) + (collide-status uint64 :offset-assert 32) + (collide-reaction-flag uint32 :offset-assert 40) + (pat uint32 :offset-assert 32) + ) + :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 basic :offset-assert 12) + (out basic :offset-assert 16) + (channel-mask uint64 :offset-assert 24) + (index int32 :offset-assert 32) + (done? basic :offset-assert 36) + ) + :method-count-assert 12 + :size-assert #x28 + :flag-assert #xc00000028 + ;; field out uses ~A with a signed load + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + ) + ) +|# + +#| +(deftype history (basic) + ((alloc-index int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (elts UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +;; (define-extern history-channel->string object) +;; (define-extern *history* object) +;; (define-extern history-print object) +;; (define-extern history-draw object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; merc-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern merc-vu1-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; emerc-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern emerc-vu1-block object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; merc-blend-shape ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype blerc-block-header (structure) + ((tag generic-merc-tag :inline :offset-assert 0) + (vtx-count uint32 :offset-assert 16) + (overlap uint32 :offset-assert 20) + (lump-dest uint32 :offset-assert 24) + (lump-qwc uint32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype blerc-block (structure) + ((output uint8 848 :offset-assert 0) ;; guessed by decompiler + (header blerc-block-header :inline :offset-assert 848) + ) + :method-count-assert 9 + :size-assert #x370 + :flag-assert #x900000370 + ) +|# + +#| +(deftype blerc-dcache (structure) + ((repl-mult vector 40 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x280 + :flag-assert #x900000280 + ) +|# + +#| +(deftype blerc-globals (structure) + ((first uint32 :offset-assert 0) + (next uint32 :offset-assert 4) + (min-val int16 :offset-assert 8) + (max-val int16 :offset-assert 10) + (fragment-count int32 :offset-assert 12) + (vtx-count int32 :offset-assert 16) + (target-vtx-count int32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype blerc-context (structure) + ((block-a blerc-block :inline :offset-assert 0) + (dummy uint8 7312 :offset-assert 880) ;; guessed by decompiler + (block-b blerc-block :inline :offset-assert 8192) + ) + :method-count-assert 9 + :size-assert #x2370 + :flag-assert #x900002370 + ) +|# + +;; (define-extern *stats-blerc* object) ;; symbol +;; (define-extern *blerc-globals* object) ;; blerc-globals +;; (define-extern blerc-stats-init object) ;; (function none) +;; (define-extern blerc-init object) ;; (function none) +;; (define-extern blerc-a-fragment object) ;; function +;; (define-extern dma-from-spr object) ;; function +;; (define-extern merc-dma-chain-to-spr object) ;; function +;; (define-extern blerc-execute object) ;; (function none) +;; (define-extern merc-blend-shape object) ;; (function process-drawable object) +;; (define-extern setup-blerc-chains-for-one-fragment object) ;; (function object object object object object object object) +;; (define-extern setup-blerc-chains object) ;; (function merc-ctrl (pointer int16) dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; merc ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(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 merc-fragment-control (structure) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ;; Failed to read fields. + ) +|# + +#| +(deftype merc-ctrl (art-element) + () + :method-count-assert 13 + :size-assert #xa0 + :flag-assert #xd000000a0 + ;; Failed to read fields. + (:methods + ) + ) +|# + +;; (define-extern *texture-login-data* object) +;; (define-extern texture-usage-init object) +;; (define-extern texture-usage-update object) +;; (define-extern merc-stats-display object) ;; (function merc-ctrl none) +;; (define-extern merc-stats object) ;; (function none) +;; (define-extern merc-edge-stats object) ;; (function none) +;; (define-extern merc-vu1-add-vu-function object) ;; (function dma-packet vu-function int dma-gif-packet) +;; (define-extern merc-vu1-initialize-chain object) ;; (function dma-gif-packet dma-packet) +;; (define-extern merc-vu1-init-buffer object) ;; (function bucket-id gs-test int none) +;; (define-extern merc-vu1-init-buffers object) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; emerc ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern emerc-vu1-initialize-chain object) +;; (define-extern emerc-vu1-init-buffer object) +;; (define-extern emerc-vu1-init-buffers object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 object) ;; (function ripple-wave merc-effect none) +;; (define-extern ripple-update-waveform-offs object) ;; (function ripple-wave-set none) +;; (define-extern ripple-execute-init object) ;; (function none) +;; (define-extern ripple-create-wave-table object) ;; (function ripple-wave-set int) +;; (define-extern ripple-apply-wave-table object) ;; (function merc-effect symbol) +;; (define-extern ripple-execute object) ;; (function none) +;; (define-extern ripple-matrix-scale object) ;; function +;; (define-extern ripple-add-debug-sphere object) ;; (function process-drawable vector float float none) +;; (define-extern ripple-slow-add-sine-waves object) ;; (function ripple-wave-set float float float) +;; (define-extern ripple-find-height object) ;; (function process-drawable int vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bones ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(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 + ) +|# + +;; (define-extern *bone-calculation-list* object) ;; bone-calculation-list +;; (define-extern bone-list-init object) ;; (function none) +;; (define-extern bones-vu0-block object) ;; vu-function +;; (define-extern bones-set-sqwc object) ;; (function none) +;; (define-extern bones-reset-sqwc object) ;; (function none) +;; (define-extern bones-init object) ;; (function dma-buffer dma-foreground-sink-group none) +;; (define-extern bones-mtx-calc object) ;; (function int pointer pointer int object none) +;; (define-extern bones-mtx-calc-execute object) ;; (function none) +;; (define-extern dump-qword object) ;; (function qword none) +;; (define-extern dump-mem object) ;; (function pointer int none) +;; (define-extern bones-debug object) ;; (function none) +;; (define-extern dump-bone-mem object) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debug-foreground ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern diag-frag-print object) +;; (define-extern debug-merc-highres-runtime object) +;; (define-extern debug-merc-size-runtime object) +;; (define-extern debug-merc-fade-runtime object) +;; (define-extern foreground-check-longest-edge object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; foreground ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern foreground-vu0-block object) +;; (define-extern *bucket-map* object) +;; (define-extern vu1-bucket-map object) +;; (define-extern generic-bucket-state-init object) +;; (define-extern mercneric-chain-init object) +;; (define-extern foreground-init object) +;; (define-extern texscroll-make-request object) ;; (function merc-effect none) +;; (define-extern texscroll-execute object) ;; (function none) +;; (define-extern vu-lights<-light-group! object) ;; (function vu-lights light-group none) +;; (define-extern foreground-add-mtx-calc object) +;; (define-extern foreground-wrapup object) +;; (define-extern *default-shadow-settings* object) ;; shadow-settings +;; (define-extern foreground-shadow object) +;; (define-extern foreground-generic-merc-death object) +;; (define-extern foreground-generic-merc-add-fragments object) +;; (define-extern foreground-generic-merc object) +;; (define-extern foreground-merc object) +;; (define-extern foreground-emerc object) +;; (define-extern foreground-check-longest-edge-asm object) +;; (define-extern foreground-ripple object) +;; (define-extern foreground-draw object) +;; (define-extern foreground-draw-hud object) +;; (define-extern *foreground-draw-engine* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 object) ;; (function generic-constants int none) +;; (define-extern generic-add-constants object) ;; (function dma-buffer int none) +;; (define-extern generic-setup-shrub-constants object) +;; (define-extern generic-add-shrub-constants object) +;; (define-extern generic-init-buf object) ;; (function dma-buffer int gs-zbuf none) +;; (define-extern generic-vu1-init-buf object) +;; (define-extern generic-vu1-init-buf-special object) +;; (define-extern generic-vu1-init-buffers object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-effect ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *target-lock* object) ;; symbol +;; (define-extern *generic-consts* object) ;; generic-consts +;; (define-extern generic-work-init object) ;; (function generic-dma-foreground-sink none) +;; (define-extern generic-upload-vu0 object) ;; (function none) +;; (define-extern upload-vu0-program object) ;; (function vu-function pointer none) +;; (define-extern generic-initialize-without-sync object) +;; (define-extern generic-initialize object) ;; (function generic-dma-foreground-sink matrix vu-lights none) +;; (define-extern generic-wrapup object) ;; (function generic-dma-foreground-sink none) +;; (define-extern generic-dma-from-spr object) ;; function +;; (define-extern generic-light-proc object) ;; function +;; (define-extern generic-envmap-proc object) ;; function +;; (define-extern generic-prepare-dma-double object) ;; function +;; (define-extern generic-prepare-dma-single object) ;; function +;; (define-extern generic-envmap-dproc object) ;; function +;; (define-extern generic-interp-dproc object) ;; function +;; (define-extern generic-no-light-proc object) ;; function +;; (define-extern generic-no-light-dproc-only object) ;; function +;; (define-extern generic-no-light-dproc object) ;; function +;; (define-extern generic-no-light+envmap object) ;; function +;; (define-extern generic-no-light object) ;; function +;; (define-extern generic-envmap-only-proc object) ;; function +;; (define-extern generic-light object) ;; function +;; (define-extern generic-copy-vtx-dclr-dtex object) ;; function +;; (define-extern generic-none object) ;; function +;; (define-extern generic-none-dma-wait object) ;; function +;; (define-extern *warp-data* object) +;; (define-extern generic-warp-source-proc object) +;; (define-extern generic-warp-source object) +;; (define-extern generic-warp-dest-proc object) +;; (define-extern generic-warp-dest object) +;; (define-extern generic-warp-envmap-dest object) +;; (define-extern generic-debug-light-proc object) ;; function +;; (define-extern generic-post-debug object) ;; function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 object) ;; (function none) +;; (define-extern mercneric-matrix-asm object) ;; function +;; (define-extern mercneric-shader-asm object) ;; function +;; (define-extern mercneric-bittable-asm object) ;; function +;; (define-extern mercneric-convert object) ;; function +;; (define-extern high-speed-reject object) ;; (function none) +;; (define-extern generic-translucent object) +;; (define-extern generic-merc-query object) +;; (define-extern generic-merc-death object) +;; (define-extern generic-merc-execute-asm object) ;; (function none) +;; (define-extern generic-merc-do-chain object) +;; (define-extern generic-merc-execute-all object) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-tie ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gsf-vertex (structure) + () + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ;; Failed to read fields. + ) +|# + +;; (define-extern generic-tie-dma-to-spad object) ;; function +;; (define-extern generic-tie-dma-to-spad-sync object) ;; (function object object none) +;; (define-extern *generic-tie* object) ;; symbol +;; (define-extern generic-tie-decompress object) ;; function +;; (define-extern generic-tie-upload-next object) ;; function +;; (define-extern generic-tie-convert-proc object) ;; function +;; (define-extern generic-tie-convert object) ;; (function none) +;; (define-extern generic-tie-display-stats object) ;; function +;; (define-extern generic-tie-debug object) ;; function +;; (define-extern generic-tie-execute object) ;; (function generic-dma-foreground-sink dma-buffer basic none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shadow-cpu ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype shadow-stats (structure) + ((num-single-tris uint32 :offset-assert 0) + (num-double-tris uint32 :offset-assert 4) + (num-single-edges uint32 :offset-assert 8) + (num-double-edges uint32 :offset-assert 12) + (num-fragments uint16 :offset-assert 16) + (num-objects uint16 :offset-assert 18) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype shadow-dcache (structure) + ((vtx-table uint32 :offset-assert 0) + (single-edge-table uint32 :offset-assert 4) + (double-edge-table uint32 :offset-assert 8) + (double-tri-table uint32 :offset-assert 12) + (dcache-top uint32 :offset-assert 16) + (num-facing-single-tris uint32 :offset-assert 20) + (num-single-edges uint32 :offset-assert 24) + (num-double-edges uint32 :offset-assert 28) + (single-tri-list uint32 :offset-assert 32) + (single-edge-list uint32 :offset-assert 36) + (double-edge-list uint32 :offset-assert 40) + (ptr-dual-verts uint32 :offset-assert 44) + (stats shadow-stats :inline :offset-assert 48) + (frag-qwc uint32 :offset-assert 68) + (center vector :inline :offset-assert 80) + (plane vector :inline :offset-assert 96) + (top-plane vector :inline :offset-assert 112) + (near-plane vector :inline :offset-assert 128) + (light-dir vector :inline :offset-assert 144) + (vtx-min vector :inline :offset-assert 160) + (data uint8 :dynamic :offset-assert 176) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xb0 + :flag-assert #x9000000b0 + ) +|# + +;; (define-extern *shadow-data* object) ;; shadow-data +;; (define-extern shadow-invert-z-buf object) +;; (define-extern shadow-make-invert-buf object) +;; (define-extern *shadow-dma-invert-call* object) +;; (define-extern shadow-dma-init object) ;; (function dma-buffer none) +;; (define-extern shadow-dma-end object) ;; (function dma-buffer none) +;; (define-extern shadow-vu0-block object) ;; vu-function +;; (define-extern shadow-xform-verts object) ;; function +;; (define-extern shadow-calc-dual-verts object) ;; function +;; (define-extern shadow-scissor-edges object) ;; function +;; (define-extern shadow-scissor-top object) ;; function +;; (define-extern shadow-init-vars object) ;; function +;; (define-extern shadow-find-facing-single-tris object) ;; function +;; (define-extern shadow-find-single-edges object) ;; function +;; (define-extern shadow-find-facing-double-tris object) ;; function +;; (define-extern shadow-find-double-edges object) ;; function +;; (define-extern shadow-add-verts object) ;; function +;; (define-extern shadow-add-facing-single-tris object) ;; function +;; (define-extern shadow-add-single-edges object) ;; function +;; (define-extern shadow-add-single-tris object) +;; (define-extern shadow-add-double-tris object) ;; function +;; (define-extern shadow-add-double-edges object) ;; function +;; (define-extern debug-draw-settings object) +;; (define-extern shadow-execute object) ;; (function shadow-dma-packet pointer pointer) +;; (define-extern shadow-vu0-upload object) ;; (function none) +;; (define-extern shadow-execute-all object) ;; (function dma-buffer shadow-queue none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) ;; ad-cmd :inline + (flush gs-adcmd :inline :offset-assert 160) ;; ad-cmd :inline + (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 UNKNOWN 2 :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +;; (define-extern *shadow-vu1-data* object) +;; (define-extern shadow-vu1-block object) ;; vu-function +;; (define-extern shadow-vu1-add-constants object) ;; (function dma-buffer none) +;; (define-extern shadow-vu1-patch-consts object) +;; (define-extern shadow-vu1-add-matrix object) ;; (function dma-buffer math-camera none) +;; (define-extern shadow-vu1-init-buffer object) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; warp ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern fx-copy-buf object) +;; (define-extern *warp-shader* object) +;; (define-extern create-blanket object) +;; (define-extern *warp* object) +;; (define-extern warp-test object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-anim ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *texture-anim-work* object) +;; (define-extern texture-anim-layer-interp object) +;; (define-extern texture-anim-layer-add-shader object) +;; (define-extern texture-anim-layer-add-clut-shader object) +;; (define-extern texture-anim-layer-draw object) +;; (define-extern default-texture-anim-layer-func object) +;; (define-extern blend-clut-texture-anim-layer-func object) +;; (define-extern move-rg-to-ba-texture-anim-layer-func object) +;; (define-extern fill-rgb-texture-anim-layer-func object) +;; (define-extern update-texture-anim object) +;; (define-extern no-alpha-texture-anim-layer-func object) +;; (define-extern copy-alpha-texture-anim-layer-func object) +;; (define-extern copy-clut-alpha-texture-anim-layer-func object) +;; (define-extern set-alpha-texture-anim-layer-func object) +;; (define-extern set-clut-alpha-texture-anim-layer-func object) +;; (define-extern dest-texture-init object) +;; (define-extern src-texture-init object) +;; (define-extern src-texture-init-mt8 object) +;; (define-extern make-noise-texture object) +;; (define-extern make-cloud-clut object) +;; (define-extern texture-anim-cloud-clut-upload object) +;; (define-extern texture-anim-cloud-clut-init object) +;; (define-extern make-slime-clut object) +;; (define-extern texture-anim-slime-clut-upload object) +;; (define-extern texture-anim-slime-clut-init object) +;; (define-extern make-ramp-clut object) +;; (define-extern make-alpha-ramp-clut object) +;; (define-extern noise-texture-init object) +;; (define-extern texture-anim-alpha-ramp-clut-upload object) +;; (define-extern texture-anim-alpha-ramp-clut-init object) +;; (define-extern texture-anim-overide-size-init object) +;; (define-extern texture-anim-change-mt8h-init object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-anim-funcs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern noise-texture-anim-layer-func object) +;; (define-extern cloud-texture-anim-layer-func object) +;; (define-extern cloud-texture-anim-func object) +;; (define-extern fog-texture-anim-init object) +;; (define-extern *fog-texture-work* object) +;; (define-extern real-fog-texture-anim-func object) +;; (define-extern fog-texture-anim-func object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-anim-tables ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sky-texture-anim-array* object) +;; (define-extern set-fog-height! object) +;; (define-extern set-cloud-minmax! object) +;; (define-extern *darkjak-texture-anim-array* object) +;; (define-extern set-darkjak-texture-morph! object) +;; (define-extern *skull-gem-texture-anim-array* object) +;; (define-extern *waterfall-texture-anim-array* object) +;; (define-extern *waterfall-b-texture-anim-array* object) +;; (define-extern *bomb-texture-anim-array* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; blit-displays ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *blit-displays-work* object) +;; (define-extern blit-disp-slow object) +;; (define-extern blur-disp object) +;; (define-extern filter-disp object) +;; (define-extern hflip-disp object) +;; (define-extern blit-displays object) +;; (define-extern draw-color-bars object) +;; (define-extern draw-raw-image object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; font-data ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *font12-table* object) ;; (inline-array vector) +;; (define-extern *font24-table* object) ;; (inline-array vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; font ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern gen-font-12 object) +;; (define-extern draw-string-asm object) +;; (define-extern draw-string object) ;; (function string dma-buffer font-context float) +;; (define-extern get-string-length object) ;; (function string font-context float) +;; (define-extern draw-string-xy object) ;; (function string dma-buffer int int font-color font-flags float) +;; (define-extern draw-string-adv object) ;; (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 object) ;; (function (pointer int8) (pointer int8) none) +;; (define-extern unpack-comp-huf object) ;; (function (pointer uint8) (pointer uint8) uint huf-dictionary-node none) +;; (define-extern unpack-comp-lzo object) +;; (define-extern pack-comp-rle object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; background ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *background-work* object) ;; background-work +;; (define-extern background-vu0-block object) ;; vu-function +;; (define-extern background-upload-vu0 object) ;; (function none) +;; (define-extern init-background object) ;; (function none) +;; (define-extern upload-vis-bits object) ;; (function level level bsp-header none) +;; (define-extern set-background-regs! object) +;; (define-extern set-tie-quard-planes! object) +;; (define-extern set-shrub-quard-planes! object) +;; (define-extern finish-background object) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; draw-node ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-inline-array-node (drawable-inline-array) + () + :method-count-assert 17 + :size-assert #x44 + :flag-assert #x1100000044 + ;; Failed to read fields. + (:methods + ) + ) +|# + +;; (define-extern draw-node-cull object) ;; (function pointer pointer (inline-array draw-node) int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shrubbery ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype prototype-shrubbery (drawable-inline-array) + () + :method-count-assert 17 + :size-assert #x44 + :flag-assert #x1100000044 + ;; Failed to read fields. + (:methods + ) + ) +|# + +#| +(deftype dma-test (structure) + ((data UNKNOWN 101 :offset-assert 0) + ) + :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 + ) +|# + +;; (define-extern mem-usage-shrub-walk object) ;; (function draw-node int memory-usage-block int draw-node) +;; (define-extern shrub-vu1-block object) ;; vu-function +;; (define-extern shrub-num-tris object) ;; (function shrubbery uint) +;; (define-extern shrub-make-perspective-matrix object) ;; (function matrix matrix) +;; (define-extern shrub-init-view-data object) ;; (function shrub-view-data symbol) +;; (define-extern shrub-upload-view-data object) ;; (function dma-buffer symbol) +;; (define-extern shrub-time object) ;; (function int int int int int int) +;; (define-extern shrub-do-init-frame object) ;; (function dma-buffer symbol) +;; (define-extern shrub-init-frame object) ;; (function dma-buffer gs-test none) +;; (define-extern shrub-upload-model object) ;; (function shrubbery dma-buffer int symbol) +;; (define-extern draw-inline-array-instance-shrub object) ;; (function dma-buffer drawable int (inline-array prototype-bucket-shrub) none) +;; (define-extern draw-prototype-inline-array-shrub object) ;; (function int (inline-array prototype-bucket-shrub) pointer) +;; (define-extern draw-drawable-tree-instance-shrub object) ;; (function drawable-tree-instance-shrub level none) +;; (define-extern *dma-test* object) +;; (define-extern *dma-test-work* object) +;; (define-extern init-dma-test object) +;; (define-extern dma-test-func object) +;; (define-extern move-test-func object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shrub-work ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *instance-shrub-work* object) ;; instance-shrub-work +;; (define-extern upload-generic-shrub object) ;; (function dma-buffer generic-shrub-fragment int int dma-buffer) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tfrag-near ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern tnear-vu1-block object) ;; vu-function +;; (define-extern tfrag-details object) ;; (function tfragment none) +;; (define-extern clip-restore object) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tfrag ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-inline-array-tfrag (drawable-inline-array) + () + :method-count-assert 17 + :size-assert #x64 + :flag-assert #x1100000064 + ;; Failed to read fields. + (:methods + ) + ) +|# + +;; (define-extern *tfrag-display-stats* object) ;; symbol +;; (define-extern tfrag-vu1-block object) ;; vu-function +;; (define-extern tfrag-data-setup object) ;; (function tfrag-data int none) +;; (define-extern add-tfrag-mtx-0 object) ;; (function dma-buffer none) +;; (define-extern add-tfrag-mtx-1 object) ;; (function dma-buffer none) +;; (define-extern add-tfrag-data object) ;; (function dma-buffer int none) +;; (define-extern t-stat object) ;; tfrag-stats +;; (define-extern tfrag-print-stats object) ;; (function symbol none) +;; (define-extern tfrag-init-buffer object) ;; (function dma-buffer gs-test int none) +;; (define-extern tfrag-end-buffer object) ;; (function dma-buffer none) +;; (define-extern draw-inline-array-tfrag object) ;; (function pointer drawable-inline-array int dma-buffer none) +;; (define-extern tfrag-scissor-init-buffer object) +;; (define-extern tfrag-scissor-end-buffer object) +;; (define-extern draw-inline-array-tfrag-scissor object) +;; (define-extern stats-tfrag-asm object) ;; (function tfragment none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tfrag-methods ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tfrag-init-data (structure) + ((tfrag-bucket int32 :offset-assert 0) + (tfrag-scissor-bucket int32 :offset-assert 4) + (tfrag-trans-bucket int32 :offset-assert 8) + (tfrag-scissor-trans-bucket int32 :offset-assert 12) + (tfrag-water-bucket int32 :offset-assert 16) + (tfrag-water-scissor-bucket int32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern edge-debug-lines object) ;; (function (array vector-array) none) +;; (define-extern draw-drawable-tree-tfrag object) ;; (function drawable-tree-tfrag none) +;; (define-extern draw-drawable-tree-tfrag-trans object) +;; (define-extern draw-drawable-tree-tfrag-water object) +;; (define-extern tfrag-vu1-init-buf object) +;; (define-extern tfrag-scissor-vu1-init-buf object) +;; (define-extern *tfrag-init-table* object) +;; (define-extern tfrag-vu1-init-buffers object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tfrag-work ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *tfrag-work* object) ;; tfrag-work + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tie ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-inline-array-instance-tie (drawable-inline-array) + () + :method-count-assert 17 + :size-assert #x64 + :flag-assert #x1100000064 + ;; Failed to read fields. + (:methods + ) + ) +|# + +#| +(deftype prototype-tie (drawable-inline-array) + () + :method-count-assert 17 + :size-assert #x64 + :flag-assert #x1100000064 + ;; Failed to read fields. + (:methods + ) + ) +|# + +#| +(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) + (atest ad-cmd 2 :offset-assert 128) ;; guessed by decompiler + (atest-tra gs-adcmd :inline :offset-assert 128) ;; ad-cmd :inline + (atest-def gs-adcmd :inline :offset-assert 144) ;; ad-cmd :inline + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +;; (define-extern tie-vu1-block object) ;; vu-function +;; (define-extern tie-init-consts object) ;; (function tie-consts int none) +;; (define-extern tie-init-engine object) ;; (function dma-buffer gs-test int none) +;; (define-extern tie-end-buffer object) ;; (function dma-buffer none) +;; (define-extern tie-int-reg object) ;; (function int string) +;; (define-extern tie-float-reg object) ;; (function int string) +;; (define-extern tie-ints object) ;; (function none) +;; (define-extern tie-floats object) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; etie-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype etie-consts (structure) + ((gifbufs qword :inline :offset-assert 0) + (adgif qword :inline :offset-assert 16) + (alpha qword :inline :offset-assert 32) + (strgif qword :inline :offset-assert 48) + (envgif qword :inline :offset-assert 64) + (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) +;; (define-extern etie-magic object) +;; (define-extern etie-init-consts object) +;; (define-extern etie-init-engine object) +;; (define-extern etie-end-buffer object) +;; (define-extern etie-float-reg-bp object) +;; (define-extern etie-float-reg object) +;; (define-extern etie-floats object) +;; (define-extern etie-int-reg object) +;; (define-extern etie-ints object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 object) +;; (define-extern etn-init-consts object) +;; (define-extern etn-init-engine object) +;; (define-extern etn-end-buffer object) +;; (define-extern etn-float-reg-calc object) +;; (define-extern etn-float-reg object) +;; (define-extern etn-floats object) +;; (define-extern etn-int-reg-draw object) +;; (define-extern etn-int-reg object) +;; (define-extern etn-ints object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) ;; gs-gif-tag :inline + (strgif qword :inline :offset-assert 64) ;; gs-gif-tag :inline + (fangif qword :inline :offset-assert 80) ;; gs-gif-tag :inline + (hvdfoffs vector :inline :offset-assert 96) + (invhscale vector :inline :offset-assert 112) + (guard vector :inline :offset-assert 128) + (atest ad-cmd 2 :offset-assert 144) ;; guessed by decompiler + (atest-tra gs-adcmd :inline :offset-assert 144) ;; ad-cmd :inline + (atest-def gs-adcmd :inline :offset-assert 160) ;; ad-cmd :inline + ) + :method-count-assert 9 + :size-assert #xb0 + :flag-assert #x9000000b0 + ) +|# + +;; (define-extern tie-near-vu1-block object) ;; vu-function +;; (define-extern tie-near-init-consts object) ;; (function tie-near-consts int none) +;; (define-extern tie-near-init-engine object) ;; (function dma-buffer gs-test int none) +;; (define-extern tie-near-end-buffer object) ;; (function dma-buffer none) +;; (define-extern tie-scissor-make-perspective-matrix object) +;; (define-extern tie-near-int-reg object) ;; (function int string) +;; (define-extern tie-near-float-reg object) ;; (function int string) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + ) +|# + +#| +(deftype tie-init-data (structure) + ((tie-bucket int32 :offset-assert 0) + (tie-scissor-bucket int32 :offset-assert 4) + (tie-envmap-bucket int32 :offset-assert 8) + (tie-envmap-scissor-bucket int32 :offset-assert 12) + (tie-vanish-bucket int32 :offset-assert 16) + (tie-trans-bucket int32 :offset-assert 20) + (tie-scissor-trans-bucket int32 :offset-assert 24) + (tie-envmap-trans-bucket int32 :offset-assert 28) + (tie-envmap-scissor-trans-bucket int32 :offset-assert 32) + (tie-water-bucket int32 :offset-assert 36) + (tie-scissor-water-bucket int32 :offset-assert 40) + (tie-envmap-water-bucket int32 :offset-assert 44) + (tie-envmap-scissor-water-bucket int32 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +;; (define-extern *tie* object) ;; tie-instance-debug +;; (define-extern tie-debug-between object) ;; (function uint uint uint) +;; (define-extern tie-debug-one object) ;; (function uint uint uint) +;; (define-extern tie-debug-frag-between object) +;; (define-extern tie-debug-frag-one object) +;; (define-extern walk-tie-generic-prototypes object) ;; (function none) +;; (define-extern *pke-hack* object) ;; vector +;; (define-extern draw-inline-array-instance-tie object) ;; (function pointer (inline-array instance-tie) int dma-buffer none) +;; (define-extern draw-inline-array-prototype-tie-asm object) ;; (function dma-buffer int prototype-array-tie none) +;; (define-extern instance-tie-patch-buckets object) +;; (define-extern draw-drawable-tree-instance-tie object) ;; (function drawable-tree-instance-tie level none) +;; (define-extern tie-init-scissor-buf object) +;; (define-extern tie-init-buf object) +;; (define-extern tie-init-envmap-buf object) +;; (define-extern tie-init-envmap-scissor-buf object) +;; (define-extern *tie-init-table* object) +;; (define-extern tie-vu1-init-buffers object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sync-info ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trajectory ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern traj2d-calc-initial-speed-using-tilt object) +;; (define-extern traj3d-calc-initial-velocity-using-tilt object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sparticle-launcher ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sparticle-launcher (basic) + () + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(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) + ) + :method-count-assert 9 + :size-assert #x130 + :flag-assert #x900000130 + ;; 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 + ) +|# + +;; (define-extern *part-id-table* object) ;; (array sparticle-launcher) +;; (define-extern *part-group-id-table* object) ;; (array sparticle-launch-group) +;; (define-extern *sp-temp* object) +;; (define-extern lookup-part-group-by-name object) ;; (function string basic) +;; (define-extern lookup-part-group-pointer-by-name object) ;; (function string (pointer sparticle-launch-group)) +;; (define-extern part-group-pointer? object) ;; (function pointer symbol) +;; (define-extern unlink-part-group-by-heap object) ;; (function kheap int) +;; (define-extern sp-init-fields! object) ;; (function object (inline-array sp-field-init-spec) sp-field-id sp-field-id symbol object) +;; (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 object) ;; (function adgif-shader texture-id none) +;; (define-extern *particle-adgif-cache* object) ;; particle-adgif-cache +;; (define-extern particle-adgif-cache-flush object) +;; (define-extern particle-adgif object) ;; (function adgif-shader texture-id none) +;; (define-extern particle-adgif-callback object) +;; (define-extern sp-queue-launch object) ;; (function sparticle-system sparticle-launcher vector int) +;; (define-extern sp-adjust-launch object) ;; (function sparticle-launchinfo sparticle-cpuinfo (inline-array sp-field-init-spec) none) +;; (define-extern sp-euler-convert object) ;; (function sparticle-launchinfo sparticle-cpuinfo none) +;; (define-extern sp-rotate-system object) ;; (function sparticle-launchinfo sparticle-cpuinfo transformq none) +;; (define-extern sp-launch-particles-var object) ;; (function sparticle-system sparticle-launcher vector sparticle-launch-state sparticle-launch-control float none) +;; (define-extern *death-adgif* object) ;; adgif-shader +;; (define-extern sp-launch-particles-death object) ;; (function sparticle-system sparticle-launcher vector none) +;; (define-extern sp-clear-queue object) ;; (function none) +;; (define-extern sp-relaunch-setup-fields object) ;; (function object sparticle-launcher sparticle-cpuinfo sprite-vec-data-3d none) +;; (define-extern sp-relaunch-particle-2d object) ;; (function object sparticle-launcher sparticle-cpuinfo sprite-vec-data-3d none) +;; (define-extern sp-relaunch-particle-3d object) ;; (function object sparticle-launcher sparticle-cpuinfo sprite-vec-data-3d none) +;; (define-extern execute-part-engine object) +;; (define-extern sparticle-track-root object) ;; (function object sparticle-cpuinfo vector none) +;; (define-extern sparticle-track-root-prim object) ;; (function object sparticle-cpuinfo vector none) +;; (define-extern sparticle-track-joint object) +;; (define-extern sparticle-turn-to-vel object) +;; (define-extern birth-func-copy-rot-color object) ;; (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 object) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern birth-func-copy-omega-to-z object) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern birth-func-random-next-time object) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern sparticle-respawn-heights object) +;; (define-extern sparticle-respawn-timer object) +;; (define-extern sparticle-texture-animate object) +;; (define-extern sparticle-texture-day-night object) +;; (define-extern sparticle-mode-animate object) +;; (define-extern sparticle-motion-blur object) +;; (define-extern sparticle-motion-blur-old object) +;; (define-extern sparticle-set-conerot object) +;; (define-extern sparticle-next-on-mode-1 object) +;; (define-extern check-ground-bounce object) +;; (define-extern check-drop-group-center object) +;; (define-extern birth-func-y->userdata object) ;; (function sparticle-system sparticle-cpuinfo matrix none) +;; (define-extern birth-func-ocean-height object) ;; (function sparticle-system sparticle-cpuinfo matrix none) +;; (define-extern birth-func-camera-orient object) +;; (define-extern *particle-quat* object) ;; quaternion +;; (define-extern birth-func-set-quat object) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern *particle-vel* object) +;; (define-extern birth-func-set-vel object) +;; (define-extern birth-func-texture-group object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sparticle ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sp-particle-copy! object) ;; (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 object) ;; (function sparticle-system int int) +;; (define-extern sp-get-approx-alloc-size object) ;; (function sparticle-system int int) +;; (define-extern sp-free-particle object) ;; (function sparticle-system int sparticle-cpuinfo sprite-vec-data-2d none) +;; (define-extern sp-get-particle object) ;; (function sparticle-system int sparticle-launch-state sparticle-cpuinfo) +;; (define-extern sp-kill-particle object) ;; (function sparticle-system sparticle-cpuinfo none) +;; (define-extern sp-orbiter object) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sp-process-block-2d object) ;; (function sparticle-system int int int int symbol none) +;; (define-extern sp-process-block-3d object) ;; (function sparticle-system int int int int symbol none) +;; (define-extern sp-copy-to-spr object) ;; (function int pointer int none) +;; (define-extern sp-copy-from-spr object) ;; (function int pointer int none) +;; (define-extern memcpy object) ;; function +;; (define-extern sp-process-block object) ;; (function sparticle-system int sprite-array-2d int none) +;; (define-extern sp-process-particle-system object) ;; (function sparticle-system int sprite-array-2d none) +;; (define-extern *particles-flag* object) ;; symbol +;; (define-extern forall-particles-with-key-runner object) ;; (function sparticle-launch-control (function sparticle-system sparticle-cpuinfo none) sparticle-system none) +;; (define-extern forall-particles-with-key object) ;; (function sparticle-launch-control (function sparticle-system sparticle-cpuinfo none) symbol symbol none) +;; (define-extern sparticle-kill-it object) ;; (function sparticle-system sparticle-cpuinfo none) +;; (define-extern sparticle-kill-it-level0 object) ;; (function sparticle-system sparticle-cpuinfo none) +;; (define-extern sparticle-kill-it-level1 object) ;; (function sparticle-system sparticle-cpuinfo none) +;; (define-extern sparticle-kill-it-level2 object) +;; (define-extern sparticle-kill-it-level3 object) +;; (define-extern sparticle-kill-it-level4 object) +;; (define-extern sparticle-kill-it-level5 object) +;; (define-extern sparticle-60-to-50 object) ;; (function sparticle-system sparticle-cpuinfo pointer none) +;; (define-extern sparticle-50-to-60 object) ;; (function sparticle-system sparticle-cpuinfo pointer none) +;; (define-extern kill-all-particles-with-key object) ;; (function sparticle-launch-control none) +;; (define-extern forall-particles-runner object) ;; (function (function sparticle-system sparticle-cpuinfo pointer none) sparticle-system none) +;; (define-extern forall-particles object) ;; (function function symbol symbol none) +;; (define-extern kill-all-particles-in-level object) ;; (function level int) +;; (define-extern all-particles-50-to-60 object) ;; (function none) +;; (define-extern all-particles-60-to-50 object) ;; (function none) +;; (define-extern remap-particle object) +;; (define-extern remap-all-particles object) +;; (define-extern process-particles object) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; entity-table ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *entity-info* object) ;; (array entity-info) +;; (define-extern entity-info-lookup object) ;; (function type entity-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; loader ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype load-dir (basic) + () + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + ;; Failed to read fields. + (:methods + ;; (new (symbol type int level) _type_ 0) + (dummy-9 () none 9) ;; (load-to-heap-by-name (_type_ string symbol kheap int) art-group 9) + (dummy-10 () none 10) ;; (set-loaded-art (_type_ art-group) art-group 10) + ) + ) +|# + +#| +(deftype spooler-block (basic) + ((anim basic :offset-assert 4) + (idle basic :offset-assert 8) + (exit basic :offset-assert 12) + (break-func basic :offset-assert 16) + (part int32 :offset-assert 20) + (part-audio-start float :offset-assert 24) + (old-status uint16 :offset-assert 28) + (old-pos int32 :offset-assert 32) + (good-time uint64 :offset-assert 40) + (old-time uint64 :offset-assert 48) + (good-count int32 :offset-assert 56) + (sid uint32 :offset-assert 60) + (real-start-time uint64 :offset-assert 64) + (paused? basic :offset-assert 72) + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype gui-control (basic) + () + :method-count-assert 25 + :size-assert #xcd0 + :flag-assert #x1900000cd0 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + ) + ) +|# + +;; (define-extern drawable-load object) ;; (function drawable kheap drawable) +;; (define-extern art-load object) ;; (function string kheap art) +;; (define-extern art-group-load-check object) ;; (function string kheap int art-group) +;; (define-extern external-art-buffer-init object) +;; (define-extern *preload-spool-anims* object) ;; symbol +;; (define-extern ja-play-spooled-anim object) ;; (function spool-anim art-joint-anim art-joint-anim (function process-drawable symbol) int :behavior process-drawable) +;; (define-extern ja-abort-spooled-anim object) ;; (function spool-anim art-joint-anim int int :behavior process-drawable) +;; (define-extern *gui-control* object) +;; (define-extern *art-control* object) ;; external-art-control + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-info ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *default-continue* object) ;; continue-point +;; (define-extern task-level->string object) +;; (define-extern level-name->task-level object) +;; (define-extern trsq->continue-point object) ;; (function trsq none) +;; (define-extern position->stream object) +;; (define-extern bug-report-display object) +;; (define-extern print-continues object) +;; (define-extern *highscore-info-array* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-task ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + ((version int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (length int32 :offset-assert 12) + (info-int32 int32 16 :offset-assert 16) ;; guessed by decompiler + (info-int8 int8 64 :offset-assert 16) ;; guessed by decompiler + (level-index int32 :offset-assert 16) + (gem-count float :offset-assert 20) + (skill-count float :offset-assert 24) + (completion-percentage float :offset-assert 28) + (minute uint8 :offset-assert 36) + (hour uint8 :offset-assert 37) + (week uint8 :offset-assert 38) + (day uint8 :offset-assert 39) + (month uint8 :offset-assert 40) + (year uint8 :offset-assert 41) + (new-game int32 :offset-assert 44) + (game-time uint64 :offset-assert 48) + (secrets uint32 :offset-assert 56) + (features uint32 :offset-assert 60) + (tag game-save-tag :dynamic :offset-assert 80) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x50 + :flag-assert #xc00000050 + (:methods + ;; (new (symbol type int) _type_ 0) + (dummy-9 () none 9) ;; (save-to-file (_type_ string) _type_ 9) + (dummy-10 () none 10) ;; (load-from-file! (_type_ string) _type_ 10) + (dummy-11 () none 11) ;; (debug-print (_type_ symbol) _type_ 11) + ) + ) +|# + +#| +(deftype game-save (basic) + () + :method-count-assert 12 + :size-assert #x50 + :flag-assert #xc00000050 + ;; Failed to read fields. + (:methods + ;; (new (symbol type int) _type_ 0) + (dummy-9 () none 9) ;; (save-to-file (_type_ string) _type_ 9) + (dummy-10 () none 10) ;; (load-from-file! (_type_ string) _type_ 10) + (dummy-11 () none 11) ;; (debug-print (_type_ symbol) _type_ 11) + ) + ) +|# + +#| +(deftype auto-save (process) + ((card int32 :offset-assert 124) + (slot int32 :offset-assert 128) + (which int32 :offset-assert 132) + (buffer kheap :offset-assert 136) + (mode basic :offset-assert 140) + (result mc-status-code :offset-assert 144) ;; guessed by decompiler + (save game-save :offset-assert 148) ;; guessed by decompiler + (info mc-slot-info :inline :offset-assert 152) + (notify uint64 :offset-assert 452) ;; handle + (force basic :offset-assert 460) + (state-time uint64 :offset-assert 468) ;; time-frame + (icon hud-sprite :inline :offset-assert 476) + ) + :method-count-assert 23 + :size-assert #x214 + :flag-assert #x1701a00214 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) ;; (get-heap () _type_ :state 14) + (dummy-15 () none 15) ;; (get-card () _type_ :state 15) + (dummy-16 () none 16) ;; (format-card () _type_ :state 16) + (dummy-17 () none 17) ;; (create-file () _type_ :state 17) + (dummy-18 () none 18) ;; (save () _type_ :state 18) + (dummy-19 () none 19) ;; (restore () _type_ :state 19) + (dummy-20 () none 20) ;; (error (mc-status-code) _type_ :state 20) + (dummy-21 () none 21) ;; (done () _type_ :state 21) + (dummy-22 () none 22) ;; (unformat-card () _type_ :state 22) + ) + ) +|# + +;; (define-extern game-save-elt->string object) ;; (function game-save-elt string) +;; (define-extern *auto-save-info* object) ;; mc-slot-info +;; (define-extern auto-save-post object) ;; (function none :behavior auto-save) +;; (define-extern auto-save-init-by-other object) ;; (function symbol process-tree int int none :behavior auto-save) +;; (define-extern auto-save-command object) ;; (function symbol int int process-tree none) +;; (define-extern auto-save-check object) ;; (function none) +;; (define-extern auto-save-user object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; settings ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern get-current-language object) +;; (define-extern *setting-control* object) ;; setting-control + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-tables ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *no-cloud-haze-mood-fog-table* object) +;; (define-extern *no-cloud-clear-mood-fog-table* object) +;; (define-extern *no-cloud-smog-mood-fog-table* object) +;; (define-extern *overcast-fog-mood-fog-table* object) +;; (define-extern *overcast-clear-mood-fog-table* object) +;; (define-extern *overcast-rain-mood-fog-table* object) +;; (define-extern *storm-fog-mood-fog-table* object) +;; (define-extern *storm-clear-mood-fog-table* object) +;; (define-extern *storm-rain-mood-fog-table* object) +;; (define-extern *no-cloud-mood-color-table* object) +;; (define-extern *overcast-mood-color-table* object) +;; (define-extern *storm-mood-color-table* object) +;; (define-extern *no-cloud-mood-channel-group* object) +;; (define-extern *overcast-mood-channel-group* object) +;; (define-extern *stormy-mood-channel-group* object) +;; (define-extern *clouds-000* object) +;; (define-extern *clouds-125* object) +;; (define-extern *clouds-250* object) +;; (define-extern *clouds-375* object) +;; (define-extern *clouds-500* object) +;; (define-extern *clouds-625* object) +;; (define-extern *clouds-750* object) +;; (define-extern *clouds-875* object) +;; (define-extern *clouds-1000* object) +;; (define-extern *drill-mood-fog-table* object) +;; (define-extern *drill-mood-color-table* object) +;; (define-extern *drill-mood-direction-table* object) +;; (define-extern *mood-direction-table* object) +;; (define-extern *mood-sky-table* object) +;; (define-extern *mood-interp-table* object) +;; (define-extern init-mood-control object) +;; (define-extern *mood-control* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-tables2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *overide-mood-color-table* object) +;; (define-extern *overide-mood-fog-table* object) +;; (define-extern init-overide-table object) +;; (define-extern *overide-table* object) +;; (define-extern print-mood-tables object) +;; (define-extern desaturate-mood-colors object) +;; (define-extern desaturate-mood-fog object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype flames-state (structure) + ((time float :offset-assert 0) ;; uint8 + (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 light-state (structure) + ((time float :offset-assert 0) + (fade float :offset-assert 4) ;; uint8 + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype lava-state (structure) + ((lava float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(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) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype strobe-state (structure) + ((time float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern palette-select-special object) +;; (define-extern clear-mood-times object) ;; (function mood-context symbol) +;; (define-extern update-mood-itimes object) ;; (function mood-context none) +;; (define-extern update-mood-direction object) +;; (define-extern update-mood-exterior object) +;; (define-extern copy-mood-exterior object) +;; (define-extern copy-mood-exterior-ambi object) +;; (define-extern clear-mood-context object) +;; (define-extern update-mood-interior object) +;; (define-extern update-mood-flames object) ;; (function mood-context int int int float float float none) +;; (define-extern *flash0* object) ;; (array float) +;; (define-extern *flash1* object) ;; (array float) +;; (define-extern *flash2* object) ;; (array float) +;; (define-extern *flash3* object) ;; (array float) +;; (define-extern *flash4* object) ;; (array float) +;; (define-extern *flash5* object) ;; (array float) +;; (define-extern *flash6* object) ;; (array float) +;; (define-extern *flash7* object) ;; (array float) +;; (define-extern update-mood-light object) ;; (function mood-context int int int float float float int none) +;; (define-extern update-mood-lava object) ;; (function mood-context int int symbol none) +;; (define-extern update-mood-flicker object) +;; (define-extern update-mood-florescent object) +;; (define-extern update-mood-electricity object) +;; (define-extern update-mood-pulse object) +;; (define-extern update-mood-strobe object) +;; (define-extern update-mood-caustics object) ;; (function mood-context int int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-funcs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ruins-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (spec-0 sp-field-init-spec :offset-assert 8) + (spec-1 sp-field-init-spec :offset-assert 12) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype strip-states (UNKNOWN) + ((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) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype ctywide-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype ctyind-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype ctysluma-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (neon light-state :inline :offset-assert 8) + (flame flames-state :inline :offset-assert 16) + (spec-0 sp-field-init-spec :offset-assert 24) + (spec-1 sp-field-init-spec :offset-assert 28) + (neon-min-bright float :offset-assert 32) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype ctyslumb-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + (spec-0 sp-field-init-spec :offset-assert 16) + (spec-1 sp-field-init-spec :offset-assert 20) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype ctyslumc-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (spec-0 sp-field-init-spec :offset-assert 8) + (spec-1 sp-field-init-spec :offset-assert 12) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype ctyport-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (spec-0 sp-field-init-spec :offset-assert 8) + (neon-min-bright float :offset-assert 12) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype ctymarka-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (blink float :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype ctymarkb-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (blink float :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype palcab-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (turret-value float :offset-assert 8) + (electricity electricity-state :inline :offset-assert 12) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype stadium-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype stadiumb-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (shield-count float :offset-assert 8) + (shield float :offset-assert 12) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype skatea-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype ltentout-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + (totem flames-state :inline :offset-assert 16) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype mountain-states (UNKNOWN) + ((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 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype forest-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype atoll-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (explosion float :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype drill-states (UNKNOWN) + ((fire-floor float :offset-assert 0) + (fire-floor-fade float :offset-assert 4) + (fire-floor-flag basic :offset-assert 8) + (flame flames-state :inline :offset-assert 12) + (electricity UNKNOWN 2 :offset-assert 20) + (pulse pulse-state :inline :offset-assert 52) + (light-flag basic :offset-assert 56) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype drillb-states (UNKNOWN) + ((fire-floor float :offset-assert 0) + (fire-floor-fade float :offset-assert 4) + (fire-floor-flag basic :offset-assert 8) + (pulse pulse-state :inline :offset-assert 12) + (light-flag basic :offset-assert 16) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype casboss-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (explosion float :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype caspad-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (red float :offset-assert 8) + (white float :offset-assert 12) + (white-count int32 :offset-assert 16) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype palout-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype palroof-states (UNKNOWN) + ((electricity UNKNOWN 2 :offset-assert 0) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype palent-states (UNKNOWN) + ((flame flames-state :inline :offset-assert 0) + (turret-value float :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype nest-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (green-flag basic :offset-assert 8) + (green float :offset-assert 12) + (green-noise float :offset-assert 16) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype village1-states (UNKNOWN) + ((interp float :offset-assert 0) + (interp-flag basic :offset-assert 4) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype consite-states (UNKNOWN) + ((light light-state :inline :offset-assert 0) + (flash float :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype mincan-states (UNKNOWN) + ((beams UNKNOWN 2 :offset-assert 0) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern update-mood-default object) ;; (function mood-context float int none) +;; (define-extern get-sphere-interp object) +;; (define-extern init-mood-ruins object) +;; (define-extern update-mood-ruins object) +;; (define-extern init-mood-strip object) +;; (define-extern update-mood-strip object) +;; (define-extern update-mood-ctywide object) +;; (define-extern update-mood-copy-ctywide object) +;; (define-extern update-mood-ctyind object) +;; (define-extern init-mood-ctysluma object) +;; (define-extern update-mood-ctysluma object) +;; (define-extern init-mood-ctyslumb object) +;; (define-extern update-mood-ctyslumb object) +;; (define-extern init-mood-ctyslumc object) +;; (define-extern update-mood-ctyslumc object) +;; (define-extern init-mood-ctyport object) +;; (define-extern init-mood-ctyport-no-part object) +;; (define-extern update-mood-ctyport object) +;; (define-extern update-mood-ctymarka object) +;; (define-extern update-mood-ctymarkb object) +;; (define-extern init-mood-palcab object) +;; (define-extern update-mood-palcab object) +;; (define-extern set-palcab-turret-flash! object) +;; (define-extern update-stadium-lights object) +;; (define-extern update-mood-stadium object) +;; (define-extern update-mood-copy-stadium object) +;; (define-extern update-stadiumb-lights object) +;; (define-extern update-mood-stadiumb object) +;; (define-extern update-mood-skatea object) +;; (define-extern update-ltentout-lights object) +;; (define-extern update-mood-ltentout object) +;; (define-extern init-mood-mountain object) +;; (define-extern update-mood-mountain object) +;; (define-extern update-mood-forest object) +;; (define-extern init-mood-atoll object) +;; (define-extern update-mood-atoll object) +;; (define-extern set-atoll-explosion! object) +;; (define-extern update-mood-atollext object) +;; (define-extern init-mood-drill object) +;; (define-extern update-drill-lights object) +;; (define-extern update-mood-drill object) +;; (define-extern set-drill-fire-floor! object) +;; (define-extern set-drill-electricity-scale! object) +;; (define-extern update-mood-drillmnt object) +;; (define-extern init-mood-drillb object) +;; (define-extern update-mood-drillb object) +;; (define-extern update-casboss-lights object) +;; (define-extern update-mood-casboss object) +;; (define-extern set-casboss-explosion! object) +;; (define-extern update-mood-caspad object) +;; (define-extern init-mood-palout object) +;; (define-extern update-mood-palout object) +;; (define-extern init-mood-palroof object) +;; (define-extern update-mood-palroof object) +;; (define-extern set-palroof-electricity-scale! object) +;; (define-extern update-mood-palent object) +;; (define-extern set-palent-turret-flash! object) +;; (define-extern init-mood-nest object) +;; (define-extern update-nest-lights object) +;; (define-extern update-mood-nest object) +;; (define-extern set-nest-green-flag! object) +;; (define-extern init-mood-village1 object) +;; (define-extern update-village1-lights object) +;; (define-extern update-mood-village1 object) ;; (function mood-context float int none) +;; (define-extern update-mood-copy-village1 object) +;; (define-extern clear-village1-interp! object) +;; (define-extern set-village1-interp! object) +;; (define-extern update-mood-consite object) +;; (define-extern set-consite-flash! object) +;; (define-extern update-mood-mincan object) +;; (define-extern set-mincan-beam! object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-funcs2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype default-interior-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype vinroom-states (UNKNOWN) + ((main float :offset-assert 0) + (flicker1 float :offset-assert 4) + (flicker2 float :offset-assert 8) + (warp float :offset-assert 12) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype hideout-states (UNKNOWN) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype hiphog-states (UNKNOWN) + ((spec-m-on sp-field-init-spec :offset-assert 0) + (spec-o-on sp-field-init-spec :offset-assert 4) + (spec-r-on sp-field-init-spec :offset-assert 8) + (spec-g-on sp-field-init-spec :offset-assert 12) + (spec-a-on sp-field-init-spec :offset-assert 16) + (spec-n-on sp-field-init-spec :offset-assert 20) + (spec-m-off sp-field-init-spec :offset-assert 24) + (spec-o-off sp-field-init-spec :offset-assert 28) + (spec-r-off sp-field-init-spec :offset-assert 32) + (spec-g-off sp-field-init-spec :offset-assert 36) + (spec-a-off sp-field-init-spec :offset-assert 40) + (spec-n-off sp-field-init-spec :offset-assert 44) + (spec-hog-1-on sp-field-init-spec :offset-assert 48) + (spec-hog-2-on sp-field-init-spec :offset-assert 52) + (spec-hiphog-on sp-field-init-spec :offset-assert 56) + (spec-hiphog-off sp-field-init-spec :offset-assert 60) + (spec-hiphog-on2 sp-field-init-spec :offset-assert 64) + (spec-hiphog-off2 sp-field-init-spec :offset-assert 68) + (spec-clock-sun sp-field-init-spec :offset-assert 72) + (spec-clock-moon sp-field-init-spec :offset-assert 76) + (door basic :offset-assert 80) + (m-on uint8 :offset-assert 84) + (o-on uint8 :offset-assert 85) + (r-on uint8 :offset-assert 86) + (g-on uint8 :offset-assert 87) + (a-on uint8 :offset-assert 88) + (n-on uint8 :offset-assert 89) + (m-off uint8 :offset-assert 90) + (o-off uint8 :offset-assert 91) + (r-off uint8 :offset-assert 92) + (g-off uint8 :offset-assert 93) + (a-off uint8 :offset-assert 94) + (n-off uint8 :offset-assert 95) + (hog-on uint8 :offset-assert 96) + (hiphog-on uint8 :offset-assert 97) + (hiphog-off uint8 :offset-assert 98) + (clock-sun uint8 :offset-assert 99) + (clock-moon uint8 :offset-assert 100) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype sewer-states (UNKNOWN) + ((light-flag basic :offset-assert 0) + (light-count uint32 :offset-assert 4) + (turret-value float :offset-assert 8) + (spec-light-center sp-field-init-spec :offset-assert 12) + (spec-light sp-field-init-spec :offset-assert 16) + (explosion float :offset-assert 20) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype onintent-states (UNKNOWN) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + (flame2 flames-state :inline :offset-assert 16) + (green-flame flames-state :inline :offset-assert 24) + (totem0 flames-state :inline :offset-assert 32) + (totem1 flames-state :inline :offset-assert 40) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype oracle-states (UNKNOWN) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + (flame2 flames-state :inline :offset-assert 16) + (blue-flame flames-state :inline :offset-assert 24) + (door-entity basic :offset-assert 32) + (door-current float :offset-assert 36) + (door-target float :offset-assert 40) + (purple-flag basic :offset-assert 44) + (purple float :offset-assert 48) + (purple-noise float :offset-assert 52) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype tomba-states (UNKNOWN) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + (flame2 flames-state :inline :offset-assert 16) + (light light-state :inline :offset-assert 24) + (gem-light float :offset-assert 32) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype tombb-states (UNKNOWN) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + (flame2 flames-state :inline :offset-assert 16) + (light light-state :inline :offset-assert 24) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype tombc-states (UNKNOWN) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + (flame2 flames-state :inline :offset-assert 16) + (electricity electricity-state :inline :offset-assert 24) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype tombd-states (UNKNOWN) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + (flame2 flames-state :inline :offset-assert 16) + (light light-state :inline :offset-assert 24) + (gem-light float :offset-assert 32) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype tombe-states (UNKNOWN) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + (flame2 flames-state :inline :offset-assert 16) + (light light-state :inline :offset-assert 24) + (gem-light float :offset-assert 32) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype tombboss-states (UNKNOWN) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + (flame2 flames-state :inline :offset-assert 16) + (light light-state :inline :offset-assert 24) + (gem-light float :offset-assert 32) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype fortress-states (UNKNOWN) + ((pulse pulse-state :inline :offset-assert 0) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype fordumpa-states (UNKNOWN) + ((turret-value UNKNOWN 4 :offset-assert 0) + (pulse pulse-state :inline :offset-assert 16) + (electricity electricity-state :inline :offset-assert 20) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype fordumpc-states (UNKNOWN) + ((light-flag basic :offset-assert 0) + (pulse0 pulse-state :inline :offset-assert 4) + (pulse1 pulse-state :inline :offset-assert 8) + (strobe strobe-state :inline :offset-assert 12) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype forresca-states (UNKNOWN) + ((pulse pulse-state :inline :offset-assert 0) + (electricity UNKNOWN 2 :offset-assert 4) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype forrescb-states (UNKNOWN) + ((electricity UNKNOWN 2 :offset-assert 0) + (turret UNKNOWN 4 :offset-assert 32) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype prison-states (UNKNOWN) + ((pulse float :offset-assert 0) + (angle float :offset-assert 4) + (torture float :offset-assert 8) + (torture-flag basic :offset-assert 12) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype under-states (UNKNOWN) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + (rot float :offset-assert 16) + (rot2 float :offset-assert 20) + (time float :offset-assert 24) + (laser float :offset-assert 28) + (fog-interp float :offset-assert 32) + (flicker float :offset-assert 36) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype gungame-states (UNKNOWN) + ((florescent florescent-state :inline :offset-assert 0) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype dig1-states (UNKNOWN) + ((pulse0 pulse-state :inline :offset-assert 0) + (pulse1 pulse-state :inline :offset-assert 4) + (explosion float :offset-assert 8) + (drillbit float :offset-assert 12) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype vortex-states (UNKNOWN) + ((time float :offset-assert 0) + (level float :offset-assert 4) + (delta float :offset-assert 8) + (scale float :offset-assert 12) + (flash float :offset-assert 16) + (num int32 :offset-assert 20) + (white basic :offset-assert 24) + (white-count float :offset-assert 28) + (pos vector :inline :offset-assert 32) + (dir vector :inline :offset-assert 48) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype nestb-states (UNKNOWN) + ((pulse pulse-state :inline :offset-assert 0) + (rot float :offset-assert 4) + (purple float :offset-assert 8) + (purple-noise float :offset-assert 12) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype consiteb-states (UNKNOWN) + ((flicker float :offset-assert 0) + (flicker-count float :offset-assert 4) + (flicker-state int32 :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype castle-states (UNKNOWN) + ((electricity electricity-state :inline :offset-assert 0) + (pulse UNKNOWN 2 :offset-assert 8) + (rot float :offset-assert 40) + (robot-rot float :offset-assert 44) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype garage-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype palshaft-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern update-mood-default-interior object) +;; (define-extern update-vinroom-lights object) +;; (define-extern update-mood-vinroom object) +;; (define-extern update-hideout-lights object) +;; (define-extern update-mood-hideout object) +;; (define-extern update-mood-copy-hideout object) +;; (define-extern init-mood-hiphog object) +;; (define-extern update-hiphog-lights object) +;; (define-extern update-mood-hiphog object) +;; (define-extern update-mood-copy-hiphog object) +;; (define-extern update-sewer-lights object) +;; (define-extern init-mood-sewer object) +;; (define-extern update-mood-sewer object) +;; (define-extern update-mood-copy-sewerb object) +;; (define-extern update-mood-copy-sewescb object) +;; (define-extern set-sewer-lights-flag! object) +;; (define-extern set-sewer-turret-flash! object) +;; (define-extern set-sewesc-explosion! object) +;; (define-extern update-onintent-lights object) +;; (define-extern update-mood-onintent object) +;; (define-extern init-mood-oracle object) +;; (define-extern update-mood-oracle object) +;; (define-extern set-oracle-purple-flag! object) +;; (define-extern update-tomba-lights object) +;; (define-extern update-mood-tomba object) +;; (define-extern update-tombb-lights object) +;; (define-extern update-mood-tombb object) +;; (define-extern init-mood-tombc object) +;; (define-extern update-mood-tombc object) +;; (define-extern set-tombc-electricity-scale! object) +;; (define-extern update-tombd-lights object) +;; (define-extern update-mood-tombd object) +;; (define-extern update-mood-tombe object) +;; (define-extern update-tombboss-lights object) +;; (define-extern update-mood-tombboss object) +;; (define-extern set-tombboss-gem-light! object) +;; (define-extern update-fortress-lights object) +;; (define-extern update-mood-fortress object) +;; (define-extern init-mood-fordumpa object) +;; (define-extern update-mood-fordumpa object) +;; (define-extern set-fordumpa-turret-flash! object) +;; (define-extern set-fordumpa-electricity-scale! object) +;; (define-extern init-mood-fordumpc object) +;; (define-extern update-mood-fordumpc object) +;; (define-extern set-fordumpc-light-flag! object) +;; (define-extern init-mood-forresca object) +;; (define-extern update-mood-forresca object) +;; (define-extern set-forresca-electricity-scale! object) +;; (define-extern init-mood-forrescb object) +;; (define-extern update-mood-forrescb object) +;; (define-extern set-forrescb-turret-flash! object) +;; (define-extern set-forrescb-electricity-scale! object) +;; (define-extern update-prison-lights object) +;; (define-extern init-mood-prison object) +;; (define-extern update-mood-prison object) +;; (define-extern update-mood-copy-prison object) +;; (define-extern set-prison-torture-flag! object) +;; (define-extern update-under-lights object) +;; (define-extern update-mood-under object) +;; (define-extern update-mood-copy-underb object) +;; (define-extern set-under-laser! object) +;; (define-extern set-under-fog-interp! object) +;; (define-extern update-gungame-lights object) +;; (define-extern update-mood-gungame object) +;; (define-extern init-mood-dig1 object) +;; (define-extern update-dig1-lights object) +;; (define-extern update-mood-dig1 object) +;; (define-extern set-dig1-explosion! object) +;; (define-extern update-vortex-lights object) +;; (define-extern update-mood-vortex object) +;; (define-extern set-vortex-flash! object) +;; (define-extern set-vortex-white! object) +;; (define-extern update-nestb-lights object) +;; (define-extern update-mood-nestb object) +;; (define-extern set-nestb-purple! object) +;; (define-extern get-nestb-purple object) +;; (define-extern init-mood-consiteb object) +;; (define-extern update-mood-consiteb object) +;; (define-extern update-castle-lights object) +;; (define-extern init-mood-castle object) +;; (define-extern update-mood-castle object) +;; (define-extern set-castle-electricity-scale! object) +;; (define-extern init-mood-garage object) +;; (define-extern update-garage-lights object) +;; (define-extern update-mood-garage object) +;; (define-extern update-mood-copy-garage object) +;; (define-extern update-mood-palshaft object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; weather-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern group-rain-screend-drop object) ;; sparticle-launch-group +;; (define-extern update-snow object) ;; (function target none) +;; (define-extern birth-func-omega-normal-orient object) +;; (define-extern birth-func-rain object) +;; (define-extern check-drop-level-rain object) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-drop-level-rain2 object) +;; (define-extern check-drop-level-splash object) +;; (define-extern update-rain object) ;; (function target none) +;; (define-extern cam-master-effect object) ;; (function none :behavior camera-master) +;; (define-extern sparticle-track-sun object) ;; (function int sparticle-cpuinfo matrix none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; time-of-day ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern time-of-day-effect object) ;; (function none) +;; (define-extern time-of-day-update object) ;; (function none :behavior time-of-day-proc) +;; (define-extern update-counters object) +;; (define-extern time-of-day-tick object) ;; (state time-of-day-proc) +;; (define-extern init-time-of-day object) ;; (function none :behavior time-of-day-proc) +;; (define-extern start-time-of-day object) ;; (function none) +;; (define-extern time-of-day-setup object) ;; (function symbol symbol) +;; (define-extern time-of-day-interp-colors object) ;; (function (pointer rgba) uint mood-context none) +;; (define-extern time-of-day-interp-colors-scratch object) ;; (function (pointer rgba) time-of-day-palette mood-context none) +;; (define-extern init-time-of-day-context object) ;; (function time-of-day-context none) +;; (define-extern set-filter-color! object) +;; (define-extern tod-madd! object) +;; (define-extern update-environment-colors object) +;; (define-extern update-time-of-day object) ;; (function time-of-day-context none) +;; (define-extern calc-fade-from-fog object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) +;; (define-extern *cloud-poly* object) +;; (define-extern init-cloud-vert-array object) +;; (define-extern *haze-vert-array* object) +;; (define-extern *haze-poly* object) +;; (define-extern init-haze-vert-array object) +;; (define-extern sky-make-sun-data object) ;; (function sky-parms int float none) +;; (define-extern sky-make-moon-data object) ;; (function sky-parms float none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sky-tng ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern set-tex-offset object) ;; (function int int none) +;; (define-extern draw-large-polygon object) ;; function +;; (define-extern clip-polygon-against-positive-hyperplane object) ;; function +;; (define-extern clip-polygon-against-negative-hyperplane object) ;; function +;; (define-extern render-sky-quad object) ;; (function int dma-buffer none) +;; (define-extern render-sky-tri object) ;; (function (inline-array sky-vertex) dma-buffer none) +;; (define-extern close-sky-buffer object) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; load-state ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (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 *task-level* object) +;; (define-extern default-level object) ;; level-load-info +;; (define-extern intro object) ;; level-load-info +;; (define-extern demo object) ;; level-load-info +;; (define-extern title object) ;; level-load-info +;; (define-extern vinroom object) +;; (define-extern drillmid object) +;; (define-extern drill object) +;; (define-extern drillb object) +;; (define-extern drillmtn object) +;; (define-extern sewer object) +;; (define-extern sewerb object) +;; (define-extern sewesc object) +;; (define-extern sewescb object) +;; (define-extern tomba object) +;; (define-extern tombb object) +;; (define-extern tombc object) +;; (define-extern tombd object) +;; (define-extern tombe object) +;; (define-extern tombext object) +;; (define-extern tombboss object) +;; (define-extern under object) +;; (define-extern underb object) +;; (define-extern palcab object) +;; (define-extern palshaft object) +;; (define-extern palboss object) +;; (define-extern palroof object) +;; (define-extern palout object) +;; (define-extern throne object) +;; (define-extern lbrnermk object) +;; (define-extern lashthrn object) +;; (define-extern lthrnout object) +;; (define-extern palent object) +;; (define-extern prison object) +;; (define-extern ldjakbrn object) +;; (define-extern lprsncst object) +;; (define-extern forexita object) +;; (define-extern forexitb object) +;; (define-extern forresca object) +;; (define-extern forrescb object) +;; (define-extern fordumpa object) +;; (define-extern fordumpb object) +;; (define-extern fordumpc object) +;; (define-extern fordumpd object) +;; (define-extern strip object) +;; (define-extern ruins object) +;; (define-extern sagehut object) +;; (define-extern atoll object) +;; (define-extern atollext object) +;; (define-extern mountain object) +;; (define-extern mtnext object) +;; (define-extern forest object) +;; (define-extern forestb object) +;; (define-extern mincan object) +;; (define-extern ctywide object) +;; (define-extern lwidea object) +;; (define-extern lwideb object) +;; (define-extern lwidec object) +;; (define-extern ctykora object) +;; (define-extern ctyasha object) +;; (define-extern ctygena object) +;; (define-extern ctygenb object) +;; (define-extern ctygenc object) +;; (define-extern ctysluma object) +;; (define-extern ctyslumb object) +;; (define-extern ctyslumc object) +;; (define-extern ctyport object) +;; (define-extern ljkdxash object) +;; (define-extern ctyfarma object) +;; (define-extern ctyfarmb object) +;; (define-extern ctyinda object) +;; (define-extern consite object) +;; (define-extern consiteb object) +;; (define-extern ctyindb object) +;; (define-extern ctymarka object) +;; (define-extern ctymarkb object) +;; (define-extern ctypal object) +;; (define-extern stadium object) +;; (define-extern stadiumb object) +;; (define-extern stadiumc object) +;; (define-extern stadiumd object) +;; (define-extern skatea object) +;; (define-extern garage object) +;; (define-extern stadblmp object) +;; (define-extern lwidesta object) +;; (define-extern lerrol object) +;; (define-extern lkeirift object) +;; (define-extern lracelit object) +;; (define-extern lracebb object) +;; (define-extern lracebf object) +;; (define-extern lracecb object) +;; (define-extern lracecf object) +;; (define-extern lracedb object) +;; (define-extern lracedf object) +;; (define-extern lgarcsta object) +;; (define-extern lsamergd object) +;; (define-extern lerbrngd object) +;; (define-extern lsmysbrt object) +;; (define-extern lashgrd object) +;; (define-extern onintent object) +;; (define-extern ltentout object) +;; (define-extern ltentob object) +;; (define-extern kiosk object) +;; (define-extern oracle object) ;; type +;; (define-extern hideout object) +;; (define-extern ltrntess object) +;; (define-extern ltrnkrkd object) +;; (define-extern ltrnysam object) +;; (define-extern lysamsam object) +;; (define-extern lyskdcd object) +;; (define-extern lkiddoge object) +;; (define-extern lhelldog object) +;; (define-extern lpackage object) +;; (define-extern lsack object) +;; (define-extern lportrun object) +;; (define-extern lshuttle object) +;; (define-extern lmeetbrt object) +;; (define-extern lpower object) +;; (define-extern lerlchal object) +;; (define-extern lprtrace object) +;; (define-extern lbombbot object) +;; (define-extern lbbush object) +;; (define-extern lprotect object) +;; (define-extern hiphog object) +;; (define-extern ltess object) +;; (define-extern lhipout object) +;; (define-extern lwhack object) +;; (define-extern lguard object) +;; (define-extern lcguard object) +;; (define-extern lerltess object) +;; (define-extern gungame object) +;; (define-extern dig1 object) +;; (define-extern dig3a object) +;; (define-extern dig3b object) +;; (define-extern caspad object) +;; (define-extern castle object) +;; (define-extern casboss object) +;; (define-extern casext object) +;; (define-extern cascity object) +;; (define-extern village1 object) ;; level-load-info +;; (define-extern introcst object) +;; (define-extern lcitylow object) +;; (define-extern lintcstb object) +;; (define-extern ljakdax object) +;; (define-extern nest object) +;; (define-extern nestb object) +;; (define-extern outrocst object) +;; (define-extern portwall object) +;; (define-extern loutcstb object) +;; (define-extern island1 object) +;; (define-extern city-start object) +;; (define-extern skatepark object) +;; (define-extern halfpipe object) ;; level-load-info +;; (define-extern vistest object) +;; (define-extern woodstest object) +;; (define-extern tobytest object) +;; (define-extern chartest object) +;; (define-extern dptest object) +;; (define-extern ctyfence object) +;; (define-extern *level-load-list* object) ;; pair + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; level ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern lookup-level-info object) ;; (function symbol level-load-info) +;; (define-extern remap-level-name object) ;; (function level-load-info symbol) +;; (define-extern add-bsp-drawable object) ;; (function bsp-header level symbol display-frame none) +;; (define-extern *login-state* object) ;; login-state +;; (define-extern *print-login* object) ;; symbol +;; (define-extern load-buffer-resize object) +;; (define-extern level-update-after-load object) ;; (function level login-state level) +;; (define-extern bg object) ;; (function symbol int) +;; (define-extern play object) ;; (function symbol symbol int) +;; (define-extern play-boot object) +;; (define-extern update-sound-banks object) ;; (function int) +;; (define-extern show-level object) ;; (function symbol int) +;; (define-extern *default-level* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; text ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype game-text-info (basic) + () + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) ;; (lookup-text! (_type_ game-text-id symbol) string 9) + ) + ) +|# + +;; (define-extern *expand-buf-number* object) +;; (define-extern *game-text-word* object) ;; string +;; (define-extern *game-text-line* object) ;; string +;; (define-extern *expanded-text-line0* object) +;; (define-extern *expanded-text-line1* object) +;; (define-extern *level-text-file-load-flag* object) ;; symbol +;; (define-extern convert-korean-text object) +;; (define-extern text-is-loading object) ;; symbol +;; (define-extern load-game-text-info object) ;; (function string symbol kheap int) +;; (define-extern load-level-text-files object) ;; (function int none) +;; (define-extern draw-debug-text-box object) ;; (function font-context none) +;; (define-extern print-game-text-scaled object) ;; (function string float font-context int none) +;; (define-extern print-game-text object) ;; (function string font-context symbol int int float) +;; (define-extern disable-level-text-file-loading object) ;; (function none) +;; (define-extern enable-level-text-file-loading object) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-hash ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern add-collide-debug-box object) +;; (define-extern print-collide-cache-tri-count object) +;; (define-extern print-exceeded-max-cache-tris object) +;; (define-extern fill-bg-using-box-new object) +;; (define-extern fill-bg-using-line-sphere-new object) +;; (define-extern collide-list-fill-bg-using-box object) +;; (define-extern collide-list-fill-bg-using-line-sphere object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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? object) ;; (function type int symbol) +;; (define-extern overrides-parent-method? object) ;; (function type int symbol) +;; (define-extern describe-methods object) ;; (function type symbol) +;; (define-extern indent-to object) ;; (function int none) +;; (define-extern probe-traverse-draw-node object) ;; (function draw-node int none) +;; (define-extern probe-traverse-inline-array-node object) ;; (function drawable-inline-array-node int none) +;; (define-extern probe-traverse-collide-fragment object) ;; (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 object) ;; (function (inline-array draw-node) int collide-list int) +;; (define-extern print-out object) ;; (function int object) +;; (define-extern collide-probe-instance-tie-collide-frags object) ;; (function none) +;; (define-extern collide-probe-instance-tie object) ;; (function object int collide-list int int) +;; (define-extern collide-probe-collide-fragment-tree-make-list object) ;; (function drawable-tree-collide-fragment collide-list none) +;; (define-extern collide-probe-instance-tie-tree-make-list object) ;; (function drawable-tree-instance-tie collide-list int) +;; (define-extern collide-upload-vu0 object) ;; (function none) +;; (define-extern collide-probe-make-list object) ;; (function level collide-list none) +;; (define-extern distc object) ;; (function vector vector float) +;; (define-extern interpolate object) ;; (function float float float float float float) +;; (define-extern misty-ambush-height object) ;; (function vector float) +;; (define-extern misty-ambush-height-probe object) ;; (function vector float float) +;; (define-extern pke-collide-test object) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-frag ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-mesh ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sopt-work (structure) + ((intersect vector :inline :offset-assert 0) + (sphere-bbox4w bounding-box4w :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype spat-work (structure) + ((intersect vector :inline :offset-assert 0) + (sphere-bbox4w bounding-box4w :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype oot-work (structure) + ((intersect vector :inline :offset-assert 0) + (sphere-bbox4w bounding-box4w :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 object) ;; (function vector touching-prims-entry control-info process vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-edge-grab ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pbhp-stack-vars (structure) + ((edge collide-edge-edge :offset-assert 0) + (allocated basic :offset-assert 4) + (neg-hold-pt vector :inline :offset-assert 16) + (split-vec vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype faei-stack-vars (structure) + ((hold-edge-vec-norm vector :inline :offset-assert 0) + (adj-edge-vec-norm vector :inline :offset-assert 16) + (found-left? basic :offset-assert 32) + (left-dot float :offset-assert 36) + (found-right? basic :offset-assert 40) + (right-dot float :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +;; (define-extern *no-walk-surface* object) ;; surface + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-shape ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern find-ground-point object) ;; (function control-info vector float float vector) +;; (define-extern target-attack-up object) ;; (function target symbol symbol none) +;; (define-extern collide-shape-moving-angle-set! object) ;; (function collide-shape-moving vector vector none) +;; (define-extern cshape-reaction-update-state object) +;; (define-extern cshape-reaction-default object) +;; (define-extern cshape-reaction-just-move object) +;; (define-extern collide-shape-draw-debug-marks object) ;; (function none) +;; (define-extern *col-timer* object) ;; stopwatch +;; (define-extern *frame-timer* object) ;; stopwatch +;; (define-extern *col-timer-enable* object) ;; symbol +;; (define-extern debug-report-col-stats object) ;; (function int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-shape-rider ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *collide-vif0-init* object) ;; (array uint32) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-planes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern collide-planes-intersect object) ;; (function vector (inline-array bounding-box) vector float) +;; (define-extern collide-planes-test0 object) ;; (function vector float float vector vector bounding-box vector float) +;; (define-extern collide-planes-test1 object) ;; (function vector float vector (inline-array vector) vector float) +;; (define-extern collide-planes object) ;; (function (inline-array vector) int vector (inline-array vector) symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spatial-hash ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype grid-hash-work (basic) + ((result-words UNKNOWN 32 :offset-assert 16) + (result-bits UNKNOWN 32 :offset-assert 16) + (object-id int32 :offset-assert 48) + (temp-box-min vector :inline :offset-assert 64) + (temp-box-max vector :inline :offset-assert 80) + (visit-count int32 :offset-assert 96) + (temp-time uint32 :offset-assert 100) + (queue-object-time uint32 :offset-assert 104) + (make-hash-time uint32 :offset-assert 108) + (search-time uint32 :offset-assert 112) + (add-object-time uint32 :offset-assert 116) + ) + :method-count-assert 9 + :size-assert #x78 + :flag-assert #x900000078 + ) +|# + +;; (define-extern *grid-hash-work* object) +;; (define-extern validate-bucket-bits object) +;; (define-extern draw-grid object) +;; (define-extern draw-sphere-box object) +;; (define-extern draw-line-sphere object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; actor-hash ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype actor-cshape-ptr (structure) + ((cshape basic :offset-assert 0) + ) + :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 uint32 :offset-assert 4) + ) + :method-count-assert 10 + :size-assert #x8 + :flag-assert #xa00000008 + (:methods + (dummy-9 () none 9) + ) + ) +|# + +#| +(deftype actor-hash-buckets (structure) + ((hash basic :offset-assert 0) + (list basic :offset-assert 4) + (data UNKNOWN 4 :offset-assert 8) + (tpos vector :inline :offset-assert 80) + ) + :method-count-assert 10 + :size-assert #x60 + :flag-assert #xa00000060 + (:methods + (dummy-9 () none 9) + ) + ) +|# + +;; (define-extern *actor-hash* object) +;; (define-extern *actor-hash-buckets* object) +;; (define-extern update-actor-hash object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; merc-death ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(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 symbol :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *merc-death-globals* object) ;; vector +;; (define-extern birth-func-death-sparks object) ;; (function none) +;; (define-extern death-seed object) +;; (define-extern start-seed-effect object) +;; (define-extern death-default object) ;; death-info +;; (define-extern death-warp-in object) ;; death-info +;; (define-extern death-warp-out object) ;; death-info +;; (define-extern sparticle-texture-glow-soft object) +;; (define-extern merc-death-spawn object) ;; (function int vector vector none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype flow-section-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype flow-control (basic) + ((path basic :offset-assert 4) + (speed float :offset-assert 8) + (belt-radius float :offset-assert 12) + (sections basic :offset-assert 16) + (leading plane :inline :offset-assert 32) + (collide-bounds sphere :inline :offset-assert 48) + ) + :method-count-assert 13 + :size-assert #x40 + :flag-assert #xd00000040 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + ) + ) +|# + +;; (define-extern ray-plane-equation-intersect object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; water-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype water-info (structure) + () + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ;; Failed to read fields. + ) +|# + +#| +(deftype water-control (basic) + () + :method-count-assert 17 + :size-assert #x128 + :flag-assert #x1100000128 + ;; Failed to read fields. + (:methods + ;; (new (symbol type process int float float float) _type_ 0) + (dummy-9 () none 9) ;; (dummy-9 (_type_) none 9) + (dummy-10 () none 10) ;; (dummy-10 (_type_) none 10) + (dummy-11 () none 11) ;; (start-bobbing! (_type_ float int int) none 11) + (dummy-12 () none 12) ;; (distance-from-surface (_type_) float 12) + (dummy-13 () none 13) ;; (dummy-13 (_type_ float vector int vector) none 13) + (dummy-14 () none 14) ;; (display-water-marks? (_type_) symbol 14) + (dummy-15 () none 15) ;; (TODO-RENAME-15 (_type_) none 15) + (dummy-16 () none 16) ;; (TODO-RENAME-16 (_type_) none 16) + ) + ) +|# + +#| +(deftype water-vol (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ;; Failed to read fields. + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; camera ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *cam-res-string* object) ;; string +;; (define-extern cam-slave-get-vector-with-offset object) ;; (function entity-actor vector symbol symbol) +;; (define-extern cam-slave-get-flags object) ;; (function entity symbol uint128) +;; (define-extern cam-slave-get-float object) ;; (function entity symbol float float) +;; (define-extern cam-slave-get-fov object) ;; (function entity float) +;; (define-extern cam-slave-get-intro-step object) ;; (function entity float) +;; (define-extern cam-slave-get-interp-time object) ;; (function entity float) +;; (define-extern cam-slave-get-rot object) ;; (function entity-actor matrix matrix) +;; (define-extern cam-state-from-entity object) ;; (function entity state) +;; (define-extern parameter-ease-none object) ;; (function object object) +;; (define-extern parameter-ease-clamp object) ;; (function float float) +;; (define-extern parameter-ease-lerp-clamp object) ;; (function float float) +;; (define-extern parameter-ease-sqrt-clamp object) ;; (function float float) +;; (define-extern fourth-power object) ;; (function float float) +;; (define-extern third-power object) ;; (function float float) +;; (define-extern parameter-ease-sqr-clamp object) ;; (function float float) +;; (define-extern parameter-ease-cube-clamp object) +;; (define-extern parameter-ease-sin-clamp object) ;; (function float float) +;; (define-extern cam-slave-init-vars object) ;; (function none :behavior camera-slave) +;; (define-extern cam-slave-go object) ;; (function state none) +;; (define-extern cam-slave-init object) ;; (function state entity none :behavior camera-slave) +;; (define-extern cam-standard-event-handler object) ;; (function process int symbol event-message-block object :behavior camera-slave) +;; (define-extern cam-curve-pos object) ;; (function vector vector curve symbol vector :behavior camera-slave) +;; (define-extern cam-curve-setup object) ;; (function vector none :behavior camera-slave) +;; (define-extern cam-calc-follow! object) ;; (function cam-rotation-tracker vector symbol vector) +;; (define-extern mat-remove-z-rot object) ;; (function matrix vector matrix) +;; (define-extern slave-matrix-blend-2 object) ;; (function matrix float vector matrix matrix) +;; (define-extern vector-into-frustum-nosmooth! object) ;; (function matrix vector float vector) +;; (define-extern slave-set-rotation! object) ;; (function cam-rotation-tracker vector float float symbol none) +;; (define-extern v-slrp2! object) ;; (function vector vector vector float vector float vector) +;; (define-extern v-slrp3! object) ;; (function vector vector vector vector float vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-interface ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern position-in-front-of-camera! object) ;; (function vector float float vector) +;; (define-extern position-in-front-of-screen! object) +;; (define-extern matrix-local->world object) ;; (function symbol symbol matrix) +;; (define-extern matrix-world->local object) ;; (function matrix) +;; (define-extern *camera-dummy-vector* object) ;; vector +;; (define-extern camera-pos object) ;; (function vector) +;; (define-extern math-camera-pos object) ;; (function vector) +;; (define-extern camera-matrix object) +;; (define-extern math-camera-matrix object) +;; (define-extern camera-angle object) ;; (function float) +;; (define-extern camera-teleport-to-entity object) ;; (function entity-actor none :behavior process) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-master ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern reset-follow object) ;; (function float :behavior camera-master) +;; (define-extern reset-target-tracking object) ;; (function symbol :behavior camera-master) +;; (define-extern master-track-target object) ;; (function symbol :behavior camera-master) +;; (define-extern setup-slave-for-hopefull object) ;; (function camera-slave none) +;; (define-extern master-is-hopeful-better? object) ;; (function camera-slave camera-slave symbol :behavior camera-master) +;; (define-extern master-choose-entity object) +;; (define-extern cam-master-set-entity object) +;; (define-extern cam-master-activate-slave object) +;; (define-extern cam-master-active object) ;; (state camera-master) +;; (define-extern cam-master-init object) ;; (function none :behavior camera-master) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cam-eye-bank (UNKNOWN) + ((rot-speed float :offset-assert 4) + (max-degrees float :offset-assert 8) + (max-fov float :offset-assert 12) + (min-fov float :offset-assert 16) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype cam-string-bank (UNKNOWN) + ((los-coll-rad meters :offset-assert 4) + (los-coll-rad2 meters :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype los-dist (UNKNOWN) + ((par-dist float :offset-assert 0) + (lat-dist float :offset-assert 4) + (vert-dist float :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype collide-los-dist-info (UNKNOWN) + ((min-par float :offset-assert 0) + (max-par float :offset-assert 4) + (min-lat float :offset-assert 8) + (max-lat float :offset-assert 12) + (min-vp float :offset-assert 16) + (max-vp float :offset-assert 20) + (min-vn float :offset-assert 24) + (max-vn float :offset-assert 28) + (count int32 :offset-assert 32) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype collide-los-result (UNKNOWN) + ((lateral vector :inline :offset-assert 0) + (cw collide-los-dist-info :inline :offset-assert 16) + (ccw collide-los-dist-info :inline :offset-assert 64) + (straddle collide-los-dist-info :inline :offset-assert 112) + (lateral-valid symbol :offset-assert 148) ;; guessed by decompiler + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype cam-stick-bank (UNKNOWN) + ((max-z meters :offset-assert 4) + (min-z meters :offset-assert 8) + (max-y meters :offset-assert 12) + (min-y meters :offset-assert 16) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype cam-bike-bank (UNKNOWN) + ((min-z meters :offset-assert 4) + (max-z meters :offset-assert 8) + (min-y meters :offset-assert 12) + (max-y meters :offset-assert 16) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern cam-really-fixed object) +;; (define-extern cam-fixed object) ;; (state camera-slave) +;; (define-extern cam-fixed-read-entity object) ;; (state camera-slave) +;; (define-extern cam-pov object) ;; (state camera-slave) +;; (define-extern cam-pov180 object) ;; (state camera-slave) +;; (define-extern cam-pov-track object) ;; (state camera-slave) +;; (define-extern cam-standoff-calc-trans object) ;; (function vector :behavior camera-slave) +;; (define-extern cam-standoff object) ;; (state camera-slave) +;; (define-extern cam-standoff-read-entity object) ;; (state camera-slave) +;; (define-extern *CAM_EYE-bank* object) ;; cam-eye-bank +;; (define-extern cam-eye object) ;; (state camera-slave) +;; (define-extern cam-spline object) ;; (state camera-slave) +;; (define-extern cam-decel object) ;; (state camera-slave) +;; (define-extern cam-endlessfall object) ;; (state camera-slave) +;; (define-extern cam-circular-position-into-max-angle object) ;; (function vector vector float vector :behavior camera-slave) +;; (define-extern cam-circular-position object) ;; (function symbol vector :behavior camera-slave) +;; (define-extern cam-circular-code object) ;; (function float :behavior camera-slave) +;; (define-extern cam-circular object) ;; (state camera-slave) +;; (define-extern cam-lookat object) ;; (state camera-slave) +;; (define-extern *CAM_STRING-bank* object) ;; cam-string-bank +;; (define-extern cam-string-find-position-rel! object) ;; (function vector symbol) +;; (define-extern cam-string-set-position-rel! object) ;; (function vector int :behavior camera-slave) +;; (define-extern string-push-help object) ;; (function float) +;; (define-extern cam-draw-collide-cache object) ;; (function collide-cache none) +;; (define-extern dist-info-init object) ;; (function collide-los-dist-info none) +;; (define-extern dist-info-valid? object) ;; (function collide-los-dist-info symbol) +;; (define-extern dist-info-append object) ;; (function collide-los-dist-info vector none) +;; (define-extern dist-info-print object) ;; (function collide-los-dist-info string object) +;; (define-extern los-cw-ccw object) ;; (function (inline-array collide-cache-tri) vector vector float clip-travel-vector-to-mesh-return-info vector float symbol) +;; (define-extern cam-los-spline-collide object) ;; (function vector vector pat-surface float) +;; (define-extern cam-los-setup-lateral object) ;; (function clip-travel-vector-to-mesh-return-info vector vector symbol :behavior camera-slave) +;; (define-extern cam-los-collide object) ;; (function vector vector clip-travel-vector-to-mesh-return-info pat-surface symbol :behavior camera-slave) +;; (define-extern cam-string-follow object) ;; (function object :behavior camera-slave) +;; (define-extern cam-string-line-of-sight object) ;; (function vector :behavior camera-slave) +;; (define-extern cam-dist-analog-input object) ;; (function int float float) +;; (define-extern cam-string-joystick object) ;; (function vector :behavior camera-slave) +;; (define-extern cam-string-find-hidden object) ;; (function none :behavior camera-slave) +;; (define-extern cam-string-move object) ;; (function object :behavior camera-slave) +;; (define-extern cam-string-code object) ;; (function vector :behavior camera-slave) +;; (define-extern set-string-params object) +;; (define-extern cam-string object) ;; (state camera-slave) +;; (define-extern *CAM_STICK-bank* object) ;; cam-stick-bank +;; (define-extern cam-stick-code object) ;; (function none :behavior camera-slave) +;; (define-extern cam-stick object) ;; (state camera-slave) +;; (define-extern *CAM_BIKE-bank* object) ;; cam-bike-bank +;; (define-extern cam-calc-bike-follow! object) ;; (function cam-rotation-tracker vector symbol vector :behavior camera-slave) +;; (define-extern cam-bike-code object) ;; (function none :behavior camera-slave) +;; (define-extern cam-bike object) ;; (state camera-slave) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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* object) ;; cam-point-watch-bank +;; (define-extern cam-point-watch object) ;; (state camera-slave) +;; (define-extern *CAM_FREE-bank* object) ;; cam-free-bank +;; (define-extern cam-mouse-input object) +;; (define-extern cam-free-floating-input object) ;; (function vector vector symbol int vector) +;; (define-extern cam-free-floating-move object) ;; (function matrix vector vector int vector) +;; (define-extern cam-free-floating object) ;; (state camera-slave) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-combiner ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cam-helper-temp object) +;; (define-extern cam-combiner-active object) ;; (state camera-combiner) +;; (define-extern cam-combiner-init object) ;; (function none :behavior camera-combiner) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-update ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern plane-from-points object) ;; (function (inline-array plane) vector vector vector int none) +;; (define-extern set-point object) ;; (function vector float float float none) +;; (define-extern update-view-planes object) ;; (function math-camera (inline-array plane) float none) +;; (define-extern *update-leaf-when-outside-bsp* object) ;; symbol +;; (define-extern update-visible object) ;; (function math-camera symbol) +;; (define-extern *save-camera-inv-rot* object) ;; matrix +;; (define-extern move-camera-from-pad object) ;; (function math-camera math-camera) +;; (define-extern external-cam-reset! object) ;; (function none) +;; (define-extern *start-timer* object) ;; int +;; (define-extern *timer-value* object) ;; int +;; (define-extern *start-pos* object) ;; vector +;; (define-extern update-camera object) ;; (function symbol) +;; (define-extern move-level-by-name object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 + (dummy-9 () none 9) ;; (dummy-9 (_type_ symbol vector-array vector-array) symbol 9) + (dummy-10 () none 10) ;; (debug-draw (_type_) none 10) + (dummy-11 () none 11) ;; (dummy-11 (_type_ vector float) symbol 11) + ) + ) +|# + +#| +(deftype vol-control (basic) + ((flags uint32 :offset-assert 4) + (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 process-drawable) _type_ 0) + (dummy-9 () none 9) ;; (dummy-9 (_type_) symbol 9) + (dummy-10 () none 10) ;; (dummy-10 (_type_ vector) symbol 10) + (dummy-11 () none 11) ;; (TODO-RENAME-11 (_type_) symbol 11) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-layout ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cam-layout-bank (UNKNOWN) + ((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 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype clm-basic (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype clm-item-action (UNKNOWN) + ((button uint64 :offset-assert 0) + (options uint64 :offset-assert 8) + (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 0 + :size-assert #x0 + :flag-assert #x0 + ;; field parm0 uses ~A with a signed load field parm1 uses ~A with a signed load + ) +|# + +#| +(deftype clm-item (UNKNOWN) + ((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 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype clm-list-item (UNKNOWN) + ((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 0 + :size-assert #x0 + :flag-assert #x0 + ;; 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 (UNKNOWN) + ((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 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype clm (UNKNOWN) + ((title string :offset-assert 4) ;; guessed by decompiler + (items (array clm-basic) :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype volume-descriptor-array (UNKNOWN) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data plane-volume :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype cam-layout (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype interp-test-info (UNKNOWN) + ((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 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype clmf-cam-flag-toggle-info (UNKNOWN) + ((key float :offset-assert 0) + (force-on int32 :offset-assert 4) + (force-off int32 :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern *camera-layout-blink* object) ;; symbol +;; (define-extern *CAM_LAYOUT-bank* object) ;; 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 object) ;; (function int int string pointer) +;; (define-extern cam-layout-intersect-dist object) ;; (function vector vector vector float) +;; (define-extern cam-layout-entity-volume-info-create object) ;; (function entity-camera symbol symbol :behavior cam-layout) +;; (define-extern cam-layout-entity-volume-info object) ;; (function symbol :behavior cam-layout) +;; (define-extern v-slrp! object) ;; (function vector vector vector float vector) +;; (define-extern interp-test object) ;; (function (function vector vector vector float vector float none) interp-test-info basic) +;; (define-extern interp-test-deg object) ;; (function (function vector vector vector vector float none) interp-test-info basic) +;; (define-extern cam-layout-entity-info object) ;; (function entity-actor basic) +;; (define-extern clmf-button-test object) ;; (function symbol) +;; (define-extern clmf-bna object) ;; (function symbol) +;; (define-extern clmf-implement object) ;; (function symbol) +;; (define-extern clmf-input object) ;; (function vector vector int vector) +;; (define-extern clmf-pos-rot object) ;; (function symbol symbol symbol :behavior cam-layout) +;; (define-extern clmf-next-volume object) ;; (function int symbol :behavior cam-layout) +;; (define-extern clmf-next-vol-dpad object) ;; (function symbol) +;; (define-extern clmf-to-edit-cam object) ;; (function symbol) +;; (define-extern *last-cur-entity* object) ;; int +;; (define-extern clmf-next-entity object) ;; (function int symbol :behavior cam-layout) +;; (define-extern clmf-to-spline-attr object) ;; (function symbol) +;; (define-extern clmf-to-intro-attr object) ;; (function symbol) +;; (define-extern clmf-to-index-attr object) ;; (function symbol) +;; (define-extern clmf-to-focalpull-attr object) ;; (function symbol) +;; (define-extern clmf-to-edit object) ;; (function symbol :behavior cam-layout) +;; (define-extern clmf-to-select object) ;; (function symbol) +;; (define-extern clmf-look-through object) ;; (function symbol :behavior cam-layout) +;; (define-extern fov->maya object) ;; (function float float) +;; (define-extern cam-layout-save-cam-rot object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-cam-trans object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-pivot object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-align object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-interesting object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-fov object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-focalpull object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-flags object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-focalpull-flags object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-campoints-flags object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-introsplinetime object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-introsplineexitval object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-interptime object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-splineoffset object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-spline-follow-dist-offset object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-campointsoffset object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-tiltAdjust object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-stringMinLength object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-stringMaxLength object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-stringMinHeight object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-stringMaxHeight object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-stringCliffHeight object) ;; (function symbol string entity-actor string) +;; (define-extern cam-layout-save-maxAngle object) ;; (function symbol string entity-actor string) +;; (define-extern clmf-save-single object) ;; (function entity-camera symbol symbol file-stream :behavior cam-layout) +;; (define-extern clmf-save-one object) ;; (function symbol symbol :behavior cam-layout) +;; (define-extern clmf-save-all object) ;; (function symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-flag-toggle object) ;; (function int int symbol :behavior cam-layout) +;; (define-extern clmf-cam-flag object) ;; (function string uint uint symbol :behavior cam-layout) +;; (define-extern clmf-cam-float-adjust object) ;; (function symbol (pointer float) symbol :behavior cam-layout) +;; (define-extern clmf-cam-meters object) ;; (function meters symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-fov object) ;; (function degrees symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-deg object) ;; (function degrees symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-intro-time object) ;; (function float symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-interp-time object) ;; (function float symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-float object) ;; (function float symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-string object) ;; (function string symbol symbol :behavior cam-layout) +;; (define-extern *clm-focalpull-attr* object) ;; clm +;; (define-extern *clm-index-attr* object) ;; clm +;; (define-extern *clm-intro-attr* object) ;; clm +;; (define-extern *clm-spline-attr* object) ;; clm +;; (define-extern *clm-cam-attr* object) ;; clm +;; (define-extern *clm-cam-lookthrough* object) ;; clm +;; (define-extern *clm-edit* object) ;; clm +;; (define-extern *clm-save-all* object) ;; clm +;; (define-extern *clm-save-one* object) ;; clm +;; (define-extern *clm-select* object) ;; clm +;; (define-extern *clm* object) ;; clm +;; (define-extern cam-layout-do-action object) ;; (function clm-item-action symbol :behavior cam-layout) +;; (define-extern cam-layout-function-call object) ;; (function symbol string int basic symbol :behavior cam-layout) +;; (define-extern cam-layout-do-menu object) ;; (function clm none :behavior cam-layout) +;; (define-extern cam-layout-active object) ;; (state cam-layout) +;; (define-extern cam-layout-init object) ;; (function none :behavior cam-layout) +;; (define-extern cam-layout-stop object) ;; (function symbol) +;; (define-extern cam-layout-start object) ;; (function none) +;; (define-extern cam-layout-restart object) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-debug ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cam-dbg-scratch (structure) + ((linevec4w vector :inline :offset-assert 0) ;; vector4w 2 :inline + (color vector :inline :offset-assert 32) + (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) + ((data cam-collision-record :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (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 object) ;; (function cam-slave-options object string) +;; (define-extern cam-index-options->string object) ;; (function cam-index-options object string) +;; (define-extern slave-los-state->string object) ;; (function slave-los-state string) +;; (define-extern cam-line-dma object) ;; (function pointer) +;; (define-extern camera-line2d object) ;; (function vector4w vector4w pointer) +;; (define-extern camera-plot-float-func object) ;; (function float float float float (function float float) vector4w none) +;; (define-extern camera-line-setup object) ;; (function vector4w none) +;; (define-extern camera-line-draw object) ;; (function vector vector symbol) +;; (define-extern camera-line object) ;; (function vector vector vector4w none) +;; (define-extern camera-line-rel object) ;; (function vector vector vector4w none) +;; (define-extern camera-line-rel-len object) ;; (function vector vector float vector4w none) +;; (define-extern camera-sphere object) ;; (function vector float vector none) +;; (define-extern camera-cross object) ;; (function vector vector vector vector4w meters basic) +;; (define-extern camera-bounding-box-draw object) ;; (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 object) ;; (function none) +;; (define-extern cam-debug-add-los-tri object) ;; (function (inline-array collide-cache-tri) vector vector none) +;; (define-extern cam-debug-add-coll-tri object) ;; (function cam-debug-tri vector cam-debug-tri none) +;; (define-extern cam-debug-draw-tris object) ;; (function symbol) +;; (define-extern camera-fov-draw object) ;; (function int int vector float float vector4w symbol) +;; (define-extern camera-fov-frame object) ;; (function matrix vector float float float vector4w none) +;; (define-extern debug-euler object) ;; (function cam-dbg-scratch object) +;; (define-extern bike-cam-limit object) ;; (function float float) +;; (define-extern camera-slave-debug object) ;; (function camera-slave none) +;; (define-extern master-draw-coordinates object) ;; (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 object) ;; (function vector vector int symbol camera-slave none) +;; (define-extern cam-collision-record-step object) ;; (function int none) +;; (define-extern cam-collision-record-draw object) ;; (function none) +;; (define-extern camera-master-debug object) ;; (function camera-master none) +;; (define-extern debug-set-camera-pos-rot! object) ;; (function vector matrix vector) +;; (define-extern cam-restore object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-start ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cam-stop object) ;; (function none) +;; (define-extern cam-start object) ;; (function symbol none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; process-drawable ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cspace-by-name object) ;; (function process-drawable string cspace) +;; (define-extern cspace-index-by-name object) ;; (function process-drawable string int) +;; (define-extern vector<-cspace! object) ;; (function vector cspace vector) +;; (define-extern vector<-matrix! object) +;; (define-extern vector<-cspace+vector! object) ;; (function vector cspace vector vector) +;; (define-extern cspace-children object) ;; (function process-drawable int pair) +;; (define-extern cspace-inspect-tree object) ;; (function process-drawable cspace int int object object) +;; (define-extern execute-math-engine object) ;; (function int) +;; (define-extern draw-joint-axes object) +;; (define-extern draw-root object) +;; (define-extern empty-state object) ;; (state process) +;; (define-extern process-drawable-art-error object) ;; (state string process-drawable) +;; (define-extern process-drawable-idle object) ;; (state process-drawable) +;; (define-extern skeleton-group->draw-control object) +;; (define-extern ja-done? object) ;; (function int symbol :behavior process-drawable) +;; (define-extern ja-min? object) ;; (function int symbol :behavior process-drawable) +;; (define-extern ja-max? object) ;; (function int symbol :behavior process-drawable) +;; (define-extern ja-num-frames object) ;; (function int int :behavior process-drawable) +;; (define-extern ja-frame-num object) ;; (function int float :behavior process-drawable) +;; (define-extern ja-aframe-num object) ;; (function int float :behavior process-drawable) +;; (define-extern ja-aframe object) ;; (function float int float :behavior process-drawable) +;; (define-extern ja-speed object) ;; (function int float :behavior process-drawable) +;; (define-extern ja-step object) ;; (function int float :behavior process-drawable) +;; (define-extern ja-channel-set! object) ;; (function int int :behavior process-drawable) +;; (define-extern ja-channel-push! object) ;; (function int time-frame int :behavior process-drawable) +;; (define-extern ja-channel-float! object) +;; (define-extern joint-control-reset! object) ;; (function joint-control joint-control-channel none :behavior process-drawable) +;; (define-extern ja-group-size object) ;; (function int :behavior process-drawable) +;; (define-extern ja-eval object) ;; (function int :behavior process-drawable) +;; (define-extern ja-blend-eval object) ;; (function int :behavior process-drawable) +;; (define-extern ja-post object) ;; (function none :behavior process-drawable) +;; (define-extern sleep-code object) +;; (define-extern transform-and-sleep object) +;; (define-extern transform-and-sleep-code object) +;; (define-extern transform-post object) ;; (function int :behavior process-drawable) +;; (define-extern rider-trans object) ;; (function int :behavior process-drawable) +;; (define-extern rider-post object) ;; (function int :behavior process-drawable) +;; (define-extern pusher-post object) ;; (function int :behavior process-drawable) +;; (define-extern process-drawable-delay-player object) ;; (function time-frame int :behavior process-drawable) +;; (define-extern process-drawable-fuel-cell-handler object) ;; (function process int symbol event-message-block none :behavior process-drawable) +;; (define-extern process-drawable-birth-fuel-cell object) ;; (function entity vector symbol none :behavior process-drawable) +;; (define-extern find-offending-process-focusable object) +;; (define-extern *valid-con* object) ;; string +;; (define-extern process-drawable-valid? object) ;; (function process-drawable symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ambient ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern can-display-query? object) +;; (define-extern talker-surpress! object) +;; (define-extern talker-displayed? object) +;; (define-extern kill-current-talker object) +;; (define-extern string->talker-speech object) +;; (define-extern talker-spawn-func object) +;; (define-extern talker-init object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *speech-control* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; region ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern region-tree-execute object) +;; (define-extern region-execute object) +;; (define-extern region-prim-lookup-by-id object) +;; (define-extern region-lookup-by-id object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fma-sphere ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fma-sphere (process-drawable) + ((first-time? basic :offset-assert 196) + (mode uint32 :offset-assert 200) + (track-handle uint64 :offset-assert 204) + (track-joint int32 :offset-assert 212) + (attack-id uint32 :offset-assert 216) + (duration uint64 :offset-assert 220) + (sphere sphere :inline :offset-assert 236) + (danger traffic-danger-info :inline :offset-assert 252) + ) + :method-count-assert 21 + :size-assert #x136 + :flag-assert #x1500c00136 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +;; (define-extern fma-sphere-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; script ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern command-get-int object) ;; (function object int int) +;; (define-extern command-get-float object) ;; (function object float float) +;; (define-extern command-get-time object) ;; (function object int int) +;; (define-extern command-get-param object) ;; (function object object object) +;; (define-extern command-get-quoted-param object) ;; (function object object object) +;; (define-extern command-get-process object) ;; (function object process process :behavior camera-tracker) +;; (define-extern command-get-entity object) +;; (define-extern command-get-trans object) ;; (function object vector vector) +;; (define-extern key-assoc object) +;; (define-extern *script-form* object) +;; (define-extern level-from-heap object) +;; (define-extern *syntax-context* object) +;; (define-extern *script-context* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype target-start (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ;; Failed to read fields. + (:methods + ) + ) +|# + +#| +(deftype camera-start (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ;; Failed to read fields. + (:methods + ) + ) +|# + +#| +(deftype med-res-level (process-drawable) + ((level-name basic :offset-assert 196) + (part-mode basic :offset-assert 200) + (index int32 :offset-assert 204) + ) + :method-count-assert 21 + :size-assert #xd4 + :flag-assert #x15006000d4 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype launcher (process-drawable) + ((spring-height meters :offset-assert 196) + (camera state :offset-assert 200) ;; guessed by decompiler + (active-distance float :offset-assert 204) + (seek-time uint64 :offset-assert 212) ;; time-frame + (dest vector :inline :offset-assert 220) + (sound-id sound-id :offset-assert 236) ;; guessed by decompiler + ) + :method-count-assert 23 + :size-assert #xf4 + :flag-assert #x17008000f4 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +;; (define-extern entity-lookup-part-group object) +;; (define-extern clone-anim-once object) ;; (function handle int symbol string none :behavior process-drawable) +;; (define-extern clone-anim object) ;; (function handle int symbol string none :behavior process-drawable) +;; (define-extern swingpole-init object) +;; (define-extern manipy-post object) +;; (define-extern manipy-init object) ;; (function vector entity-actor skeleton-group vector none :behavior manipy) +;; (define-extern part-tracker-init object) ;; (function sparticle-launch-group time-frame (function part-tracker none) (pointer process-drawable) process collide-prim-core none :behavior part-tracker) +;; (define-extern part-tracker-track-root object) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern part-tracker-move-to-target object) ;; (function part-tracker vector) +;; (define-extern part-tracker-track-target object) ;; (function part-tracker vector) +;; (define-extern lightning-tracker-init object) +;; (define-extern process-grab? object) ;; (function process symbol :behavior camera-tracker) +;; (define-extern process-release? object) ;; (function process symbol :behavior process) +;; (define-extern camera-look-at object) ;; (function pair uint process :behavior camera-tracker) +;; (define-extern ja-anim-done? object) ;; (function process symbol) +;; (define-extern camera-pov-from object) ;; (function pair uint process :behavior camera-tracker) +;; (define-extern cam-launcher-joystick object) ;; (function vector :behavior camera-slave) +;; (define-extern cam-launcher-shortfall object) ;; (state camera-slave) +;; (define-extern cam-launcher-long-joystick object) ;; (function vector :behavior camera-slave) +;; (define-extern cam-launcher-longfall object) ;; (state camera-slave) +;; (define-extern launcher-init-by-other object) ;; (function vector float int float none :behavior launcher) +;; (define-extern touch-tracker-init object) ;; (function vector float time-frame none :behavior touch-tracker) +;; (define-extern explosion-init-by-other object) +;; (define-extern explosion-spawn object) +;; (define-extern process-drawable-random-point! object) ;; (function process-drawable vector vector) +;; (define-extern process-drawable-pair-random-point! object) ;; (function process-drawable process-drawable vector float vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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) +;; (define-extern *lightning-gcf* object) +;; (define-extern lightning-fractal-gen object) +;; (define-extern lightning-uniform-gen object) +;; (define-extern lightning-trail-uniform-gen object) +;; (define-extern lightning-trail-fractal-gen object) +;; (define-extern gs-packed-rgba-lerp! object) +;; (define-extern rgba-lerp object) +;; (define-extern lightning-fade object) +;; (define-extern lightning-update object) +;; (define-extern lightning-draw object) +;; (define-extern lightning-start object) +;; (define-extern *lightning-globals* object) +;; (define-extern *lightning* object) +;; (define-extern lightning-draw-all object) +;; (define-extern unlink-lightning-spec-by-heap object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; carry-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype carry-info (basic) + () + :method-count-assert 17 + :size-assert #xb0 + :flag-assert #x11000000b0 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pilot-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-controls (structure) + ((steering float :offset-assert 0) + (throttle float :offset-assert 4) + (brake float :offset-assert 8) + (lean-z float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype pilot-info (basic) + ((entity basic :offset-assert 4) + (vehicle uint64 :offset-assert 8) + (left-right-interp float :offset-assert 16) + (front-back-interp float :offset-assert 20) + (up-down-interp float :offset-assert 24) + (up-down-accel-factor float :offset-assert 28) + (front-back-accel-factor float :offset-assert 32) + (left-right-accel-factor float :offset-assert 36) + (stance uint8 :offset-assert 40) + (seat-index int8 :offset-assert 41) + (backup-nav-radius float :offset-assert 44) + (cam-side-shift float :offset-assert 48) + (enable-cam-side-shift basic :offset-assert 52) + (gun? basic :offset-assert 56) + (controls vehicle-controls :inline :offset-assert 60) + (accel-array vector :inline :offset-assert 80) + (local-accel vector :inline :offset-assert 208) + (pilot-trans vector :inline :offset-assert 224) + (pilot-quat vector :inline :offset-assert 240) + (pilot-scale vector :inline :offset-assert 256) + (pilot-time uint64 :offset-assert 272) + (as-daxter? basic :offset-assert 280) + (art-group-backup basic :offset-assert 284) + ) + :method-count-assert 9 + :size-assert #x120 + :flag-assert #x900000120 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun (process-drawable) + ((control basic :offset-assert 124) + (shadow-backup basic :offset-assert 204) + (read-scale basic :offset-assert 208) + (gun-type int32 :offset-assert 212) + (barrel basic :offset-assert 216) + (mag UNKNOWN 4 :offset-assert 220) + (mag-scale UNKNOWN 4 :offset-assert 236) + ) + :method-count-assert 24 + :size-assert #x100 + :flag-assert #x1800800100 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +#| +(deftype gun-info (basic) + () + :method-count-assert 10 + :size-assert #x2c0 + :flag-assert #xa000002c0 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + ) + ) +|# + +;; (define-extern want-to-gun? object) +;; (define-extern using-gun? object) +;; (define-extern enabled-gun? object) +;; (define-extern gun->ammo object) +;; (define-extern *gun-shadow-control* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; board-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype board (process-drawable) + ((control basic :offset-assert 124) + (shadow-backup basic :offset-assert 204) + (main basic :offset-assert 208) + ) + :method-count-assert 23 + :size-assert #xd8 + :flag-assert #x17006000d8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype board-info (basic) + () + :method-count-assert 11 + :size-assert #xd48 + :flag-assert #xb00000d48 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype target-board-bank (basic) + ((jump-height-min meters :offset-assert 4) + (jump-height-max meters :offset-assert 8) + (duck-jump-height-min meters :offset-assert 12) + (duck-jump-height-max meters :offset-assert 16) + (turn-frames float :offset-assert 20) + (wall-kick-window seconds :offset-assert 24) + (cushion meters :offset-assert 32) + (trickx-jump-height-min meters :offset-assert 36) + (trickx-jump-height-max meters :offset-assert 40) + (tricky-jump-height-min meters :offset-assert 44) + (tricky-jump-height-max meters :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +;; (define-extern *TARGET_BOARD-bank* object) +;; (define-extern want-to-board? object) +;; (define-extern *board-shadow-control* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; darkjak-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype darkjak-info (basic) + ((process uint32 :offset-assert 4) + (attack-id uint32 :offset-assert 8) + (start-time uint64 :offset-assert 16) + (attack-time uint64 :offset-assert 24) + (attack-count uint64 :offset-assert 32) + (stage uint32 :offset-assert 40) + (want-stage uint32 :offset-assert 44) + (clock-pos float :offset-assert 48) + (clock-vel float :offset-assert 52) + (clock-on basic :offset-assert 56) + (hud UNKNOWN 1 :offset-assert 64) + (tone uint32 :offset-assert 72) + (bomb uint32 :offset-assert 76) + ) + :method-count-assert 10 + :size-assert #x50 + :flag-assert #xa00000050 + (:methods + (dummy-9 () none 9) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype target-bank (basic) + ((jump-collide-offset meters :offset-assert 4) + (jump-height-min meters :offset-assert 8) + (jump-height-max meters :offset-assert 12) + (double-jump-height-min meters :offset-assert 16) + (double-jump-height-max meters :offset-assert 20) + (flip-jump-height-min meters :offset-assert 24) + (flip-jump-height-max meters :offset-assert 28) + (duck-jump-height-min meters :offset-assert 32) + (duck-jump-height-max meters :offset-assert 36) + (flop-jump-height-min meters :offset-assert 40) + (flop-jump-height-max meters :offset-assert 44) + (attack-jump-height-min meters :offset-assert 48) + (attack-jump-height-max meters :offset-assert 52) + (edge-grab-jump-height-min meters :offset-assert 56) + (edge-grab-jump-height-max meters :offset-assert 60) + (swim-jump-height-min meters :offset-assert 64) + (swim-jump-height-max meters :offset-assert 68) + (tube-jump-height-min meters :offset-assert 72) + (tube-jump-height-max meters :offset-assert 76) + (carry-jump-height-min meters :offset-assert 80) + (carry-jump-height-max meters :offset-assert 84) + (mech-jump-height-min meters :offset-assert 88) + (mech-jump-height-max meters :offset-assert 92) + (mech-carry-jump-height-min meters :offset-assert 96) + (mech-carry-jump-height-max meters :offset-assert 100) + (indax-jump-height-min meters :offset-assert 104) + (indax-jump-height-max meters :offset-assert 108) + (indax-double-jump-height-min meters :offset-assert 112) + (indax-double-jump-height-max meters :offset-assert 116) + (roll-duration uint64 :offset-assert 120) + (roll-jump-pre-window uint64 :offset-assert 128) + (roll-jump-post-window uint64 :offset-assert 136) + (roll-timeout uint64 :offset-assert 144) + (roll-speed-min meters :offset-assert 152) + (roll-speed-inc meters :offset-assert 156) + (roll-flip-duration uint64 :offset-assert 160) + (roll-flip-height meters :offset-assert 168) + (roll-flip-dist meters :offset-assert 172) + (roll-flip-art-height meters :offset-assert 176) + (roll-flip-art-dist meters :offset-assert 180) + (duck-slide-distance meters :offset-assert 184) + (fall-far meters :offset-assert 188) + (fall-far-inc meters :offset-assert 192) + (attack-timeout uint64 :offset-assert 200) ;; time-frame + (ground-timeout uint64 :offset-assert 208) ;; time-frame + (slide-down-timeout uint64 :offset-assert 216) ;; time-frame + (fall-timeout uint64 :offset-assert 224) ;; time-frame + (fall-stumble-threshold meters :offset-assert 232) + (yellow-projectile-speed meters :offset-assert 236) + (hit-invulnerable-timeout uint64 :offset-assert 240) ;; time-frame + (same-attack-invulnerable-timeout uint64 :offset-assert 248) + (run-cycle-length float :offset-assert 256) + (walk-cycle-dist meters :offset-assert 260) + (walk-up-cycle-dist meters :offset-assert 264) + (walk-down-cycle-dist meters :offset-assert 268) + (walk-side-cycle-dist meters :offset-assert 272) + (run-cycle-dist meters :offset-assert 276) + (run-up-cycle-dist meters :offset-assert 280) + (run-down-cycle-dist meters :offset-assert 284) + (run-side-cycle-dist meters :offset-assert 288) + (run-wall-cycle-dist meters :offset-assert 292) + (duck-walk-cycle-dist meters :offset-assert 296) + (wade-shallow-walk-cycle-dist meters :offset-assert 300) + (wade-deep-walk-cycle-dist meters :offset-assert 304) + (mech-walk-cycle-dist meters :offset-assert 308) + (mech-run-cycle-dist meters :offset-assert 312) + (smack-surface-dist meters :offset-assert 316) + (smack-surface-height meters :offset-assert 320) + (min-dive-depth meters :offset-assert 324) + (root-radius meters :offset-assert 328) + (root-offset vector :inline :offset-assert 336) + (body-radius meters :offset-assert 352) + (edge-radius meters :offset-assert 356) + (edge-offset vector :inline :offset-assert 368) + (edge-grab-height-off-ground meters :offset-assert 384) + (head-radius meters :offset-assert 388) + (head-height meters :offset-assert 392) + (head-offset vector :inline :offset-assert 400) + (spin-radius meters :offset-assert 416) + (spin-offset vector :inline :offset-assert 432) + (duck-spin-radius meters :offset-assert 448) + (duck-spin-offset vector :inline :offset-assert 464) + (punch-radius meters :offset-assert 480) + (punch-offset vector :inline :offset-assert 496) + (uppercut-radius meters :offset-assert 512) + (uppercut0-offset vector :inline :offset-assert 528) + (uppercut1-offset vector :inline :offset-assert 544) + (flop-radius meters :offset-assert 560) + (flop0-offset vector :inline :offset-assert 576) + (flop1-offset vector :inline :offset-assert 592) + (stuck-time seconds :offset-assert 608) + (stuck-timeout seconds :offset-assert 616) + (stuck-distance meters :offset-assert 624) + (tongue-pull-speed-min float :offset-assert 628) + (tongue-pull-speed-max float :offset-assert 632) + (yellow-attack-timeout uint64 :offset-assert 640) ;; time-frame + (fall-height meters :offset-assert 648) + (mech-jump-thrust-fuel float :offset-assert 652) + (strafe-jump-pre-window uint64 :offset-assert 656) + (strafe-jump basic :offset-assert 664) + (strafe-duck-jump basic :offset-assert 668) + (dark-jump-height-min meters :offset-assert 672) + (dark-jump-height-max meters :offset-assert 676) + ) + :method-count-assert 9 + :size-assert #x2a8 + :flag-assert #x9000002a8 + ) +|# + +;; (define-extern *target-shadow-control* object) ;; shadow-control +;; (define-extern *TARGET-bank* object) ;; target-bank +;; (define-extern target-start-attack object) ;; (function none :behavior target) +;; (define-extern target-danger-set! object) ;; (function symbol symbol float :behavior target) +;; (define-extern target-collide-set! object) ;; (function symbol float int :behavior target) +;; (define-extern debounce-speed object) +;; (define-extern target-align-vel-z-adjust object) ;; (function float float :behavior target) +;; (define-extern average-turn-angle object) ;; (function target float) +;; (define-extern can-play-stance-amibent? object) ;; (function symbol :behavior target) +;; (define-extern target-height-above-ground object) ;; (function float :behavior target) +;; (define-extern can-jump? object) ;; (function symbol symbol :behavior target) +;; (define-extern target-jump-go object) +;; (define-extern move-legs? object) ;; (function symbol :behavior target) +;; (define-extern jump-hit-ground-stuck? object) +;; (define-extern target-time-to-ground object) +;; (define-extern fall-test object) ;; (function none :behavior target) +;; (define-extern slide-down-test object) ;; (function none :behavior target) +;; (define-extern smack-surface? object) ;; (function symbol symbol :behavior target) +;; (define-extern can-roll? object) +;; (define-extern can-duck? object) ;; (function symbol :behavior target) +;; (define-extern can-exit-duck? object) ;; (function symbol :behavior target) +;; (define-extern can-hands? object) ;; (function symbol symbol :behavior target) +;; (define-extern can-feet? object) ;; (function symbol :behavior target) +;; (define-extern are-still? object) +;; (define-extern vector-local+! object) ;; (function vector vector vector :behavior target) +;; (define-extern move-forward object) ;; (function float vector :behavior target) +;; (define-extern set-forward-vel object) ;; (function float vector :behavior target) +;; (define-extern delete-back-vel object) ;; (function none :behavior target) +;; (define-extern set-side-vel object) ;; (function float vector :behavior target) +;; (define-extern target-timed-invulnerable object) ;; (function time-frame target none) +;; (define-extern target-timed-invulnerable-off object) ;; (function target none) +;; (define-extern target-log-attack object) +;; (define-extern ground-tween-initialize object) ;; (function ground-tween-info uint uint uint uint uint uint ground-tween-info :behavior target) +;; (define-extern ground-tween-update object) ;; (function ground-tween-info float float none :behavior target) +;; (define-extern target-pos object) ;; (function int vector) +;; (define-extern target-cam-pos object) ;; (function vector) +;; (define-extern target-rot object) ;; (function quaternion) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern birth-func-copy-target-y-rot object) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern birth-func-ground-orient object) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern birth-func-target-orient object) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern birth-func-vector-orient object) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern birth-func-set-alpha-from-userdata object) +;; (define-extern part-tracker-track-target-joint object) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern process-drawable-burn-effect object) ;; (function time-frame rgbaf :behavior target) +;; (define-extern lightning-probe-callback object) +;; (define-extern process-drawable-shock-effect object) +;; (define-extern process-drawable-shock-wall-effect object) +;; (define-extern process-drawable2-shock-effect object) +;; (define-extern process-drawable-shock-skel-effect object) +;; (define-extern *lightning-darkjak-pill* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *red-shot-colors* object) +;; (define-extern check-shell-level1 object) +;; (define-extern check-shell-level2 object) +;; (define-extern sparticle-dark-shot-lightning object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-reaction-target ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern poly-find-nearest-edge object) ;; (function vector (inline-array vector) vector vector vector) +;; (define-extern target-collision-low-coverage object) ;; (function control-info collide-shape-intersect vector (pointer uint32) (pointer uint64) (pointer symbol) uint) +;; (define-extern target-collision-reaction object) ;; (function control-info collide-shape-intersect vector vector cshape-moving-flags) +;; (define-extern target-collision-no-reaction object) ;; (function control-info collide-shape-intersect vector vector none) +;; (define-extern *collide-edge-board-spec* object) +;; (define-extern rail-surface-touch object) +;; (define-extern gravel-surface-touch object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; logic-target ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern build-conversions object) ;; (function vector vector :behavior target) +;; (define-extern vector-turn-to object) ;; (function vector vector :behavior target) +;; (define-extern reverse-conversions object) ;; (function vector none :behavior target) +;; (define-extern draw-history object) ;; (function control-info symbol) +;; (define-extern target-history-print object) +;; (define-extern target-print-stats object) ;; (function target symbol symbol) +;; (define-extern read-pad object) ;; (function vector vector :behavior target) +;; (define-extern set-pad object) +;; (define-extern warp-vector-into-surface! object) ;; (function vector vector vector vector) +;; (define-extern vector<-pad-in-surface! object) ;; (function vector symbol vector :behavior target) +;; (define-extern vector<-pad-in-matrix! object) +;; (define-extern local-pad-angle object) ;; (function float :behavior target) +;; (define-extern turn-around? object) ;; (function symbol :behavior target) +;; (define-extern wall-hide? object) +;; (define-extern target-log-trans object) +;; (define-extern target-move-dist object) ;; (function time-frame float :behavior target) +;; (define-extern turn-to-vector object) ;; (function vector float symbol :behavior target) +;; (define-extern target-bend-vel-turn object) +;; (define-extern target-add-slide-factor object) +;; (define-extern add-thrust object) ;; (function symbol :behavior target) +;; (define-extern add-gravity object) ;; (function vector :behavior target) +;; (define-extern target-compute-slopes object) ;; (function vector int :behavior target) +;; (define-extern do-rotations1 object) ;; (function quaternion :behavior target) +;; (define-extern do-rotations2 object) ;; (function int :behavior target) +;; (define-extern leg-ik-callback object) +;; (define-extern target-update-ik object) +;; (define-extern pre-collide-setup object) +;; (define-extern level-setup object) ;; (function none :behavior target) +;; (define-extern flag-setup object) ;; (function none :behavior target) +;; (define-extern post-flag-setup object) ;; (function none :behavior target) +;; (define-extern bend-gravity object) ;; (function symbol :behavior target) +;; (define-extern target-compute-edge object) ;; (function none :behavior target) +;; (define-extern target-compute-edge-rider object) ;; (function none :behavior target) +;; (define-extern target-compute-pole object) ;; (function none :behavior target) +;; (define-extern target-calc-camera-pos object) ;; (function none :behavior target) +;; (define-extern joint-points object) ;; (function none :behavior target) +;; (define-extern do-target-gspot object) +;; (define-extern target-real-post object) ;; (function none :behavior target) +;; (define-extern target-post object) ;; (function none :behavior target) +;; (define-extern target-swim-post object) ;; (function none :behavior target) +;; (define-extern target-no-stick-post object) ;; (function none :behavior target) +;; (define-extern target-no-move-post object) ;; (function none :behavior target) +;; (define-extern target-no-ja-move-post object) ;; (function none :behavior target) +;; (define-extern reset-target-state object) ;; (function symbol target :behavior target) +;; (define-extern target-init object) +;; (define-extern tobot-init object) +;; (define-extern stop object) ;; (function symbol int) +;; (define-extern start object) ;; (function symbol continue-point target) +;; (define-extern tobot-start object) +;; (define-extern tobot-stop object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sidekick ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sidekick-remap* object) ;; pair +;; (define-extern cspace<-cspace+transformq! object) +;; (define-extern target-sidekick-setup object) +;; (define-extern sidekick-clone object) ;; (state sidekick) +;; (define-extern init-sidekick object) ;; (function none :behavior sidekick) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; voicebox ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype camera-remote (camera-slave) + () + :method-count-assert 14 + :size-assert #xa94 + :flag-assert #xe0a200a94 + (:methods + ) + ) +|# + +#| +(deftype remote (process-drawable) + ((base-trans vector :inline :offset-assert 204) + (focus focus :inline :offset-assert 220) + (seeker cam-float-seeker :inline :offset-assert 232) + (start-time uint64 :offset-assert 260) + (blend float :offset-assert 268) + (twist float :offset-assert 272) + (speak-effect? basic :offset-assert 276) + ) + :method-count-assert 26 + :size-assert #x11c + :flag-assert #x1a00a0011c + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + ) + ) +|# + +#| +(deftype voicebox (remote) + ((hint uint64 :offset-assert 284) ;; handle + ) + :method-count-assert 26 + :size-assert #x128 + :flag-assert #x1a00b00128 + (:methods + ) + ) +|# + +#| +(deftype judge (remote) + ((total-time uint64 :offset-assert 284) + (beep-time uint64 :offset-assert 292) + (hud-timer uint64 :offset-assert 300) + (score uint8 :offset-assert 308) + ) + :method-count-assert 28 + :size-assert #x139 + :flag-assert #x1c00c00139 + (:methods + (dummy-26 () none 26) + (dummy-27 () none 27) + ) + ) +|# + +;; (define-extern remote-track object) +;; (define-extern cam-remote object) +;; (define-extern voicebox-init-by-other object) ;; (function vector handle none :behavior voicebox) +;; (define-extern voicebox-spawn object) ;; (function process vector (pointer process)) +;; (define-extern judge-init-by-other object) +;; (define-extern judge-spawn object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collectables-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern eco-fadeout object) ;; (function sparticle-system sparticle-cpuinfo none) +;; (define-extern eco-track-root-prim-fadeout object) ;; (function sparticle-system sparticle-cpuinfo vector none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debug-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sparticle-track-root-money object) ;; (function sparticle-system sparticle-cpuinfo vector none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; find-nearest ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype search-info (structure) + () + :method-count-assert 9 + :size-assert #x64 + :flag-assert #x900000064 + ;; Failed to read fields. + ) +|# + +;; (define-extern *search-info* object) ;; search-info +;; (define-extern find-nearest-attackable object) ;; (function vector float uint uint vector float projectile) +;; (define-extern find-nearest-focusable object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; task-arrow ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-arrow-params (structure) + ((flags uint32 :offset-assert 0) + (map-icon uint16 :offset-assert 4) + (pos vector :inline :offset-assert 16) + (quat quaternion :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype task-arrow (process-drawable) + ((pos vector :inline :offset-assert 204) + (theta float :offset-assert 220) + (phi float :offset-assert 224) + (dist float :offset-assert 228) + (smoothed-dist float :offset-assert 232) + (max-dist float :offset-assert 236) + (flags uint32 :offset-assert 240) + (map-icon uint16 :offset-assert 244) + (minimap connection-minimap :offset-assert 248) + (hud-dist uint64 :offset-assert 252) + (base-quat quaternion :inline :offset-assert 268) + (rod-of-god-scale float :offset-assert 284) + (moving basic :offset-assert 288) + ) + :method-count-assert 25 + :size-assert #x128 + :flag-assert #x1900b00128 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + ) + ) +|# + +;; (define-extern task-arrow-init-by-other object) +;; (define-extern task-arrow-spawn object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; projectile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cshape-reaction-projectile object) +;; (define-extern projectile-event-handler object) +;; (define-extern projectile-move-fill-all-dirs object) +;; (define-extern projectile-move-fill-line-sphere object) +;; (define-extern projectile-update-velocity-add-gravity object) +;; (define-extern projectile-update-velocity-space-wars object) ;; (function projectile none) +;; (define-extern projectile-init-by-other object) ;; (function entity-actor vector vector uint handle none :behavior projectile) +;; (define-extern projectile-bounce-update-velocity object) +;; (define-extern projectile-bounce-falling-post object) +;; (define-extern projectile-bounce-move object) +;; (define-extern projectile-bounce-reaction object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-handler ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-shoved object) ;; (function meters meters process (state object object target) object :behavior target) +;; (define-extern attack-mode-is-invinc object) +;; (define-extern target-attacked object) ;; (function symbol attack-info process process (state symbol attack-info target) object :behavior target) +;; (define-extern target-send-attack object) ;; (function process uint uint int int symbol :behavior target) +;; (define-extern target-generic-event-handler object) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-standard-event-handler object) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-dangerous-event-handler object) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-bonk-event-handler object) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-jump-event-handler object) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-walk-event-handler object) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-exit object) ;; (function none :behavior target) +;; (define-extern target-state-hook-exit object) ;; (function none :behavior target) +;; (define-extern target-effect-exit object) ;; (function none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-anim ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-land-anim object) +;; (define-extern target-stance-anim object) +;; (define-extern target-stance-push object) +;; (define-extern target-falling-anim object) ;; (function time-frame time-frame symbol :behavior target) +;; (define-extern target-falling-anim-trans object) ;; (function none :behavior target) +;; (define-extern target-walk-anim object) +;; (define-extern target-hit-ground-flop-anim object) +;; (define-extern target-hit-ground-anim object) ;; (function symbol symbol :behavior target) +;; (define-extern target-attack-air-anim object) +;; (define-extern target-edge-grab-anim object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-falling-trans object) ;; (function basic time-frame none :behavior target) +;; (define-extern target-startup object) ;; (state target) +;; (define-extern target-stance object) ;; (state target) +;; (define-extern target-walk object) ;; (state target) +;; (define-extern target-turn-around object) ;; (state target) +;; (define-extern target-slide-down object) ;; (state target) +;; (define-extern *slide-down-mods* object) +;; (define-extern *slide-jump-mods* object) +;; (define-extern target-slide-down-to-ground object) +;; (define-extern init-var-jump object) ;; (function float float vector vector vector vector :behavior target) +;; (define-extern mod-var-jump object) ;; (function symbol symbol symbol vector vector :behavior target) +;; (define-extern *duck-mods* object) ;; surface +;; (define-extern target-duck-stance object) ;; (state target) +;; (define-extern target-duck-walk object) ;; (state target) +;; (define-extern target-jump-top-anim object) +;; (define-extern target-jump object) ;; (state float float surface target) +;; (define-extern target-jump-forward object) ;; (state float float target) +;; (define-extern target-double-jump object) ;; (state float float target) +;; (define-extern target-high-jump object) ;; (state float float basic target) +;; (define-extern target-duck-high-jump object) ;; (state float float symbol target) +;; (define-extern target-duck-high-jump-jump object) ;; (state float float symbol target) +;; (define-extern target-falling object) ;; (state symbol target) +;; (define-extern target-hit-ground object) ;; (state symbol target) +;; (define-extern *attack-mods* object) ;; surface +;; (define-extern *attack-end-mods* object) +;; (define-extern target-attack object) ;; (state target) +;; (define-extern *run-attack-mods* object) ;; surface +;; (define-extern target-running-attack object) ;; (state target) +;; (define-extern *jump-attack-mods* object) ;; surface +;; (define-extern target-attack-air object) ;; (state symbol target) +;; (define-extern *uppercut-mods* object) +;; (define-extern *uppercut-jump-mods* object) ;; surface +;; (define-extern target-attack-uppercut object) ;; (state float float target) +;; (define-extern target-attack-uppercut-jump object) ;; (state float float target) +;; (define-extern target-flop object) ;; (state float float float target) +;; (define-extern target-flop-hit-ground object) ;; (state symbol target) +;; (define-extern target-roll object) +;; (define-extern target-roll-flip object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *trip-mods* object) +;; (define-extern target-load-wait object) ;; (state target) +;; (define-extern target-stance-ambient object) ;; (state target) +;; (define-extern target-stance-look-around object) ;; (state target) +;; (define-extern *look-around-mods* object) +;; (define-extern target-look-around object) ;; (state target) +;; (define-extern target-grab object) ;; (state target) +;; (define-extern target-pole-cycle object) ;; (state handle target) +;; (define-extern target-pole-flip-up object) ;; (state object object float target) +;; (define-extern target-pole-flip-up-jump object) ;; (state float float target) +;; (define-extern target-pole-flip-forward object) ;; (state float float float target) +;; (define-extern target-pole-flip-forward-jump object) ;; (state float float target) +;; (define-extern target-edge-grab object) ;; (state target) +;; (define-extern target-edge-grab-jump object) ;; (state float float target) +;; (define-extern target-edge-grab-off object) ;; (state target) +;; (define-extern *hit-ground-hard-mods* object) +;; (define-extern target-hit-ground-hard object) ;; (state float target) +;; (define-extern *hide-mods* object) +;; (define-extern target-hide object) +;; (define-extern target-launch object) ;; (state float symbol vector int target) +;; (define-extern target-play-anim object) ;; (state string handle target) +;; (define-extern target-clone-anim object) ;; (state handle target) +;; (define-extern *float-mods* object) +;; (define-extern target-float object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-swim ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-wade-stance object) ;; (state target) +;; (define-extern target-wade-walk object) ;; (state target) +;; (define-extern target-swim-tilt object) ;; (function float float float float float :behavior target) +;; (define-extern target-swim-stance object) ;; (state target) +;; (define-extern target-swim-walk object) ;; (state target) +;; (define-extern target-swim-down object) ;; (state target) +;; (define-extern target-swim-up object) ;; (state target) +;; (define-extern target-swim-jump-jump object) ;; (state float float surface target) +;; (define-extern target-swim-jump object) ;; (state float float target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-carry ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *carry-walk-mods* object) +;; (define-extern *carry-jump-mods* object) +;; (define-extern target-carry-update object) +;; (define-extern target-carry-post object) +;; (define-extern target-carry-pickup object) +;; (define-extern target-carry-drop object) +;; (define-extern target-carry-stance object) +;; (define-extern target-carry-walk object) +;; (define-extern target-carry-falling object) +;; (define-extern target-carry-hit-ground object) +;; (define-extern target-carry-jump object) +;; (define-extern target-carry-throw object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-darkjak ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-darkjak-setup object) +;; (define-extern want-to-darkjak? object) +;; (define-extern *darkjak-trans-mods* object) +;; (define-extern target-darkjak-end-mode object) +;; (define-extern target-darkjak-process object) +;; (define-extern target-darkjak-get-on object) +;; (define-extern target-darkjak-get-off object) +;; (define-extern target-darkjak-running-attack object) +;; (define-extern target-darkjak-bomb-collide object) +;; (define-extern target-darkjak-bomb0 object) +;; (define-extern target-bomb1-fire-shot object) +;; (define-extern target-darkjak-bomb1 object) +;; (define-extern target-darkjak-giant object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-death ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype kill-nearby-enemies-info (UNKNOWN) + ((dist float :offset-assert 4) + (pos vector :inline :offset-assert 16) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern *auto-continue* object) ;; symbol +;; (define-extern next-continue object) +;; (define-extern target-continue object) ;; (state continue-point target) +;; (define-extern *smack-mods* object) ;; surface +;; (define-extern *smack-up-mods* object) ;; surface +;; (define-extern velocity-set-to-target! object) ;; (function vector float attack-info vector :behavior target) +;; (define-extern target-hit-effect object) ;; (function attack-info none :behavior target) +;; (define-extern target-hit-push object) ;; (function vector matrix float float attack-info object :behavior target) +;; (define-extern target-hit-orient object) ;; (function attack-info vector symbol :behavior target) +;; (define-extern target-hit-setup-anim object) ;; (function attack-info object :behavior target) +;; (define-extern target-hit-move object) ;; (function attack-info symbol (function none :behavior target) float none :behavior target) +;; (define-extern target-hit object) ;; (state symbol attack-info target) +;; (define-extern *death-spool-array* object) ;; (array spool-anim) +;; (define-extern death-movie-remap object) ;; (function int int int) +;; (define-extern *kill-nearby-enemies-info* object) +;; (define-extern kill-nearby-enemies object) +;; (define-extern target-death-anim-trans object) +;; (define-extern target-death-anim object) ;; (function spool-anim none :behavior target) +;; (define-extern target-death-main object) +;; (define-extern target-death-reset object) +;; (define-extern target-death object) ;; (state symbol target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-gun ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *gun-walk-mods* object) +;; (define-extern target-gun-event-handler object) +;; (define-extern target-gun-setup object) +;; (define-extern target-gun-init object) +;; (define-extern target-gun-exit object) +;; (define-extern target-gun-end-mode object) +;; (define-extern quat<-gun! object) +;; (define-extern target-gun-ammo-out-pick object) +;; (define-extern target-gun-type-set! object) +;; (define-extern target-gun-marking-menu object) +;; (define-extern target-gun-build-track-list object) +;; (define-extern target-gun-find-track object) +;; (define-extern target-top-anim-base-mode object) +;; (define-extern target-gun-combo-start object) +;; (define-extern target-gun-joint-pre0 object) +;; (define-extern target-gun-joint-pre object) +;; (define-extern target-gun-compute-pos object) +;; (define-extern target-gun-joint-points object) +;; (define-extern target-gun-fire object) +;; (define-extern target-gun-check object) +;; (define-extern camera-rotate-to-vector object) +;; (define-extern target-gun-real-post object) +;; (define-extern target-gun-post object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun-eject (projectile-bounce) + () + :method-count-assert 42 + :size-assert #x1f0 + :flag-assert #x2a017001f0 + (:methods + ) + ) +|# + +#| +(deftype gun-mag-yellow (projectile-bounce) + () + :method-count-assert 42 + :size-assert #x1f0 + :flag-assert #x2a017001f0 + (:methods + ) + ) +|# + +#| +(deftype gun-mag-red (projectile-bounce) + () + :method-count-assert 42 + :size-assert #x1f0 + :flag-assert #x2a017001f0 + (:methods + ) + ) +|# + +#| +(deftype gun-mag-blue (projectile-bounce) + () + :method-count-assert 42 + :size-assert #x1f0 + :flag-assert #x2a017001f0 + (:methods + ) + ) +|# + +#| +(deftype gun-mag-dark (projectile-bounce) + () + :method-count-assert 42 + :size-assert #x1f0 + :flag-assert #x2a017001f0 + (:methods + ) + ) +|# + +#| +(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) +;; (define-extern birth-func-setup-beam object) +;; (define-extern birth-func-laser-pointer object) +;; (define-extern draw-beam object) +;; (define-extern gun-post object) +;; (define-extern gun-init object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-blue-shot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun-blue-shot (projectile) + ((init-pos vector :inline :offset-assert 476) + (init-dir vector :inline :offset-assert 492) + (collide-normal vector :inline :offset-assert 508) + ) + :method-count-assert 40 + :size-assert #x210 + :flag-assert #x2801900210 + (:methods + ) + ) +|# + +;; (define-extern target-gun-fire-blue object) +;; (define-extern gun-blue-shot-move object) +;; (define-extern cshape-reaction-blue-shot object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-yellow-shot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun-yellow-shot (projectile) + ((hit-actor? basic :offset-assert 468) + (tail-pos vector :inline :offset-assert 476) + (hit-pos vector :inline :offset-assert 492) + ) + :method-count-assert 40 + :size-assert #x200 + :flag-assert #x2801800200 + (:methods + ) + ) +|# + +;; (define-extern target-gun-fire-yellow object) +;; (define-extern someone-fire-yellow object) +;; (define-extern gun-yellow-shot-move object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-red-shot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun-red-shot (process-drawable) + ((probe-count int32 :offset-assert 196) + (probe-mask uint32 :offset-assert 200) + (actor-count int32 :offset-assert 204) + (attack-id uint32 :offset-assert 208) + (start-pos vector :inline :offset-assert 220) + (start-dir vector :inline :offset-assert 236) + (start-rot vector :inline :offset-assert 252) + (probe-dir UNKNOWN 19 :offset-assert 268) + ) + :method-count-assert 30 + :size-assert #x240 + :flag-assert #x1e01c00240 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + ) + ) +|# + +;; (define-extern target-gun-fire-red object) +;; (define-extern gun-red-shot-event-handler object) +;; (define-extern gun-red-shot-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-dark-shot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun-dark-shot (projectile) + ((blast-radius float :offset-assert 468) + (core-position vector :inline :offset-assert 476) + (core-velocity vector :inline :offset-assert 492) + (spin-vector vector :inline :offset-assert 508) + (track-target uint64 :offset-assert 524) + (size-t float :offset-assert 532) + (result-array UNKNOWN 16 :offset-assert 540) + (charge-sound uint32 :offset-assert 668) + (fire-sound uint32 :offset-assert 672) + (trail-sound uint32 :offset-assert 676) + (explode-sound uint32 :offset-assert 680) + (start-pilot? basic :offset-assert 684) + ) + :method-count-assert 42 + :size-assert #x2b4 + :flag-assert #x2a024002b4 + (:methods + (dummy-40 () none 40) + (dummy-41 () none 41) + ) + ) +|# + +;; (define-extern target-gun-fire-dark object) +;; (define-extern process-drawable-shock-effect-bullseye object) +;; (define-extern gun-dark-shot-init-fizzle object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-gun-stance object) +;; (define-extern target-gun-walk object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; board-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern board-post object) +;; (define-extern board-init object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-board ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *board-walk-mods* object) +;; (define-extern *board-duck-mods* object) +;; (define-extern *board-air-mods* object) +;; (define-extern *board-jump-mods* object) +;; (define-extern *board-ride-jump-mods* object) +;; (define-extern *board-duck-jump-mods* object) +;; (define-extern *board-spin-mods* object) +;; (define-extern *board-spin-post-mods* object) +;; (define-extern *board-flip-mods* object) +;; (define-extern *board-wall-kick-mods* object) +;; (define-extern *board-halfpipe-mods* object) +;; (define-extern *board-turn-to-mods* object) +;; (define-extern *board-ride-mods* object) +;; (define-extern *collide-edge-board-halfpipe-spec* object) +;; (define-extern target-board-handler object) +;; (define-extern target-board-setup object) +;; (define-extern target-board-init object) +;; (define-extern target-board-exit object) +;; (define-extern target-board-falling-anim-trans object) +;; (define-extern board-on-ground? object) +;; (define-extern target-board-smack-surface? object) +;; (define-extern board-add-thrust object) +;; (define-extern segment-array-vector->index object) +;; (define-extern segment-array-index->vector object) +;; (define-extern target-board-exit-check object) +;; (define-extern target-board-effect object) +;; (define-extern target-board-physics object) +;; (define-extern target-board-collision object) +;; (define-extern target-board-joint-points object) +;; (define-extern target-board-pre-move object) +;; (define-extern target-board-real-post object) +;; (define-extern probe-test object) +;; (define-extern target-board-compute-edge object) +;; (define-extern board-ride-add-thrust object) +;; (define-extern target-board-ride-post object) +;; (define-extern target-board-post object) +;; (define-extern target-board-center-anim object) +;; (define-extern target-board-turn-anim object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; board-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; board-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern vector-vector-angle object) +;; (define-extern target-board-anim-trans object) +;; (define-extern target-board-spin-check object) +;; (define-extern target-board-halfpipe-trans object) +;; (define-extern target-board-resolve-points object) +;; (define-extern target-board-ground-check object) +;; (define-extern target-board-halfpipe-check object) +;; (define-extern target-board-jump-trans object) +;; (define-extern target-board-start object) +;; (define-extern target-board-stance object) +;; (define-extern target-board-duck-stance object) +;; (define-extern target-board-jump object) +;; (define-extern target-board-halfpipe object) +;; (define-extern target-board-falling object) +;; (define-extern target-board-jump-kick object) +;; (define-extern target-board-wall-kick object) +;; (define-extern target-board-flip object) +;; (define-extern target-board-hold object) +;; (define-extern target-board-trickx object) +;; (define-extern target-board-hit-ground object) +;; (define-extern target-board-turn-to object) +;; (define-extern target-board-ride-edge object) +;; (define-extern target-board-grenade object) +;; (define-extern target-board-get-on object) +;; (define-extern target-board-pegasus object) +;; (define-extern target-board-get-off object) +;; (define-extern target-board-grab object) +;; (define-extern target-board-clone-anim object) +;; (define-extern target-board-hit object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mech-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mech-info (basic) + ((entity basic :offset-assert 4) + (hud UNKNOWN 1 :offset-assert 8) + (mech-trans vector :inline :offset-assert 16) + (mech-quat vector :inline :offset-assert 32) + (mech-scale vector :inline :offset-assert 48) + (engine-sound-id uint32 :offset-assert 64) + (engine-sound-volume float :offset-assert 68) + (engine-sound-pitch float :offset-assert 72) + (thrust-sound-id uint32 :offset-assert 76) + (drag-sound-id uint32 :offset-assert 80) + (whine-sound-id uint32 :offset-assert 84) + (mech-start-time uint64 :offset-assert 88) + (mech-time uint64 :offset-assert 96) + (no-get-off-time uint64 :offset-assert 104) + (stick-lock basic :offset-assert 112) + (stick-off basic :offset-assert 116) + (forward-vel meters :offset-assert 120) + (jump-thrust meters :offset-assert 124) + (jump-thrust-fuel float :offset-assert 128) + (unstuck-time uint64 :offset-assert 136) + (stuck-count int32 :offset-assert 144) + (back-touch-point vector :inline :offset-assert 160) + (back-touch-trans vector :inline :offset-assert 176) + (back-touch-time uint64 :offset-assert 192) + (attack-id uint32 :offset-assert 200) + (shield-value float :offset-assert 204) + (shield-max float :offset-assert 208) + (walk-anim-leg int32 :offset-assert 212) + (state-impact? UNKNOWN 1 :offset-assert 216) + (state-impact UNKNOWN 1 :offset-assert 224) + (thruster-flame-width meters :offset-assert 304) + (thruster-flame-length meters :offset-assert 308) + (thruster-local-pos UNKNOWN 2 :offset-assert 320) + (exhaust-local-pos UNKNOWN 2 :offset-assert 352) + (exhaust-local-dir UNKNOWN 2 :offset-assert 384) + (smoke-local-pos UNKNOWN 2 :offset-assert 416) + (smoke-local-vel UNKNOWN 2 :offset-assert 448) + (particle-system-2d basic :offset-assert 480) + (particle-system-3d basic :offset-assert 484) + (part-thruster basic :offset-assert 488) + (part-thruster-scale-x sp-field-init-spec :offset-assert 492) + (part-thruster-scale-y sp-field-init-spec :offset-assert 496) + (part-quat quaternion :offset-assert 500) + (part-vel vector :offset-assert 504) + ) + :method-count-assert 9 + :size-assert #x1fc + :flag-assert #x9000001fc + ) +|# + +;; (define-extern *mech-shadow-control* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 none) :offset-assert 48) ;; guessed by decompiler + (joypad-item basic :offset-assert 52) + (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 object :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 object) ;; (function debug-menu-item-var debug-menu-item-var) +;; (define-extern debug-menu-item-var-make-int object) ;; (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 object) ;; (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 object) ;; (function debug-menu-context basic (function basic none) symbol) +;; (define-extern debug-menu-context-release-joypad object) ;; (function debug-menu-context symbol) +;; (define-extern debug-menu-item-get-max-width object) ;; (function debug-menu-item debug-menu int) +;; (define-extern debug-menu-context-default-selection object) ;; (function debug-menu-context symbol debug-menu-context) +;; (define-extern debug-menu-rebuild object) ;; (function debug-menu debug-menu) +;; (define-extern debug-menu-context-set-root-menu object) ;; (function debug-menu-context debug-menu debug-menu-context) +;; (define-extern debug-menu-append-item object) ;; (function debug-menu debug-menu-node debug-menu-node) +;; (define-extern debug-menu-remove-all-items object) ;; (function debug-menu debug-menu) +;; (define-extern debug-menu-func-decode object) ;; (function object function) +;; (define-extern debug-menu-make-from-template object) ;; (function debug-menu-context pair debug-menu-node) +;; (define-extern debug-menu-find-from-template object) ;; (function debug-menu-context pair debug-menu) +;; (define-extern debug-menu-item-submenu-render object) ;; (function debug-menu-item-submenu int int int symbol debug-menu-item-submenu) +;; (define-extern debug-menu-item-function-render object) ;; (function debug-menu-item-function int int int symbol debug-menu-item-function) +;; (define-extern debug-menu-item-flag-render object) ;; (function debug-menu-item-flag int int int symbol debug-menu-item-flag) +;; (define-extern debug-menu-item-var-render object) ;; (function debug-menu-item-var int int int symbol debug-menu-item-var) +;; (define-extern debug-menu-item-render object) ;; (function debug-menu-item int int int symbol debug-menu-item) +;; (define-extern debug-menu-render object) ;; (function debug-menu int int debug-menu-node int debug-menu) +;; (define-extern debug-menu-context-render object) ;; (function debug-menu-context debug-menu-context) +;; (define-extern debug-menu-context-select-next-or-prev-item object) ;; (function debug-menu-context int debug-menu-context) +;; (define-extern debug-menu-context-select-new-item object) ;; (function debug-menu-context int debug-menu-context) +;; (define-extern debug-menu-context-open-submenu object) ;; (function debug-menu-context debug-menu basic) +;; (define-extern debug-menu-context-close-submenu object) ;; (function debug-menu-context debug-menu-context) +;; (define-extern debug-menu-item-submenu-msg object) ;; (function debug-menu-item-submenu debug-menu-msg debug-menu-item-submenu) +;; (define-extern debug-menu-item-function-msg object) ;; (function debug-menu-item-function debug-menu-msg debug-menu-item-function) +;; (define-extern debug-menu-item-flag-msg object) ;; (function debug-menu-item-flag debug-menu-msg debug-menu-item-flag) +;; (define-extern debug-menu-item-var-joypad-handler object) ;; (function debug-menu-item-var debug-menu-item-var) +;; (define-extern debug-menu-item-var-msg object) ;; (function debug-menu-item-var debug-menu-msg debug-menu-item-var) +;; (define-extern debug-menu-item-send-msg object) ;; (function debug-menu-item debug-menu-msg debug-menu-item) +;; (define-extern debug-menu-send-msg object) ;; (function debug-menu debug-menu-msg symbol debug-menu) +;; (define-extern debug-menu-context-send-msg object) ;; (function debug-menu-context debug-menu-msg debug-menu-dest debug-menu-context) +;; (define-extern debug-menu-context-activate-selection object) ;; (function debug-menu-context debug-menu-context) +;; (define-extern debug-menus-default-joypad-func object) ;; (function debug-menu-context debug-menu-context) +;; (define-extern debug-menus-active object) ;; (function debug-menu-context debug-menu-context) +;; (define-extern debug-menus-handler object) ;; (function debug-menu-context debug-menu-context) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sphere-cull object) ;; (function vector symbol) +;; (define-extern guard-band-cull object) ;; (function vector symbol) +;; (define-extern sphere-in-view-frustum? object) ;; (function sphere symbol) +;; (define-extern line-in-view-frustum? object) ;; (function vector vector symbol) +;; (define-extern vis-cull object) ;; (function int symbol) +;; (define-extern vis-cull-debug object) +;; (define-extern error-sphere object) ;; (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 object) +;; (define-extern find-instance-by-name object) ;; (function string prototype-bucket) +;; (define-extern prototypes-game-visible-set! object) +;; (define-extern find-instance-by-index object) ;; (function type int bsp-header prototype-bucket) +;; (define-extern prototype-bucket-type object) ;; (function prototype-bucket type) +;; (define-extern prototype-bucket-recalc-fields object) ;; (function prototype-bucket prototype-bucket) +;; (define-extern print-prototype-list object) +;; (define-extern draw-instance-info object) ;; (function string none) +;; (define-extern set-shadow-by-name object) +;; (define-extern get-shadow-by-name object) +;; (define-extern teleport-camera-by-name object) +;; (define-extern dma-add-process-drawable object) ;; (function process-drawable draw-control symbol dma-buffer none) +;; (define-extern *hud-lights* object) ;; vu-lights +;; (define-extern dma-add-process-drawable-hud object) ;; (function process-drawable draw-control symbol dma-buffer none) +;; (define-extern add-process-drawable object) ;; (function process-drawable draw-control symbol dma-buffer none) +;; (define-extern foreground-engine-execute object) ;; (function engine display-frame int int none) +;; (define-extern main-debug-hook object) ;; (function none) +;; (define-extern *add-sphere* object) ;; symbol +;; (define-extern *generic-effect-mode* object) ;; int +;; (define-extern foreground-initialize-engines object) +;; (define-extern foreground-execute-cpu-vu0-engines object) +;; (define-extern real-main-draw-hook object) ;; (function none) +;; (define-extern main-draw-hook object) ;; (function none) +;; (define-extern default-init-buffer object) +;; (define-extern default-end-buffer object) +;; (define-extern screen-shot-scale object) +;; (define-extern screen-shot object) +;; (define-extern display-frame-start object) ;; (function display int int none) +;; (define-extern display-frame-finish object) ;; (function display display) +;; (define-extern determine-pause-mode object) ;; (function int) +;; (define-extern display-sync object) ;; (function display none) +;; (define-extern swap-display object) ;; (function display none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-group ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-inline-array ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-tree ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prototype ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; main-collide ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern drawable-sphere-box-intersect? object) ;; (function drawable bounding-box4w symbol) +;; (define-extern instance-sphere-box-intersect? object) ;; (function drawable instance-tie bounding-box4w symbol) +;; (define-extern instance-tfragment-add-debug-sphere object) ;; (function drawable instance-tie symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; video ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern set-video-mode object) ;; (function symbol none) +;; (define-extern get-video-mode object) ;; (function symbol) +;; (define-extern set-aspect-ratio object) ;; (function symbol none) +;; (define-extern get-aspect-ratio object) ;; (function symbol) +;; (define-extern set-progressive-scan object) +;; (define-extern get-progressive-scan object) +;; (define-extern *smode2* object) +;; (define-extern set-graphics-mode object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; main ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern set-letterbox-frames object) ;; (function time-frame none) +;; (define-extern letterbox object) ;; (function none) +;; (define-extern set-blackout-frames object) ;; (function time-frame none) +;; (define-extern blackout object) ;; (function none) +;; (define-extern paused? object) ;; (function symbol) +;; (define-extern movie? object) ;; (function symbol) +;; (define-extern demo? object) +;; (define-extern *last-master-mode* object) ;; symbol +;; (define-extern set-master-mode object) ;; (function symbol none) +;; (define-extern pause-allowed? object) ;; (function symbol) +;; (define-extern toggle-pause object) ;; (function int) +;; (define-extern *screen-filter* object) ;; screen-filter +;; (define-extern *cheat-temp* object) ;; (pointer int32) +;; (define-extern *master-exit* object) ;; symbol +;; (define-extern *progress-cheat* object) ;; symbol +;; (define-extern *first-boot* object) ;; symbol +;; (define-extern main-cheats object) ;; (function int) +;; (define-extern end-display object) +;; (define-extern display-loop-main object) +;; (define-extern display-loop object) ;; (function int :behavior process) +;; (define-extern on object) ;; (function symbol process) +;; (define-extern off object) ;; (function int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-cache ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-puls-work (structure) + ((ignore-pat pat-surface :offset-assert 0) ;; guessed by decompiler + (bsphere sphere :inline :offset-assert 16) + (move-dist vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype lsmi-work (structure) + ((best-u float :offset-assert 0) + (orig-best-u float :offset-assert 4) + (action uint32 :offset-assert 8) + (cquery collide-query :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x22c + :flag-assert #x90000022c + ) +|# + +;; (define-extern test-closest-pt-in-triangle object) ;; (function collide-cache symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-debug ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype col-rend-filter (structure) + ((show-pat-set uint32 :offset-assert 0) + (show-pat-clear uint32 :offset-assert 4) + (event-mask uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; (define-extern col-rend-draw object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; relocate ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; memory-usage ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype memory-usage-block (basic) + () + :method-count-assert 12 + :size-assert #x710 + :flag-assert #xc00000710 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) ;; (reset! (_type_) _type_ 9) + (dummy-10 () none 10) ;; (calculate-total (_type_) int 10) + (dummy-11 () none 11) ;; (print-mem-usage (_type_ level object) none 11) + ) + ) +|# + +;; (define-extern mem-size object) ;; (function basic symbol int int) +;; (define-extern *max-dma* object) ;; int + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; entity ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype actor-group (inline-array-class) + () + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ;; Failed to read fields. + ) +|# + +#| +(deftype entity (res-lump) + () + :method-count-assert 27 + :size-assert #x34 + :flag-assert #x1b00000034 + ;; Failed to read fields. + (:methods + (dummy-22 () none 22) ;; (birth! (_type_) _type_ 22) + (dummy-23 () none 23) ;; (kill! (_type_) _type_ 23) + (dummy-24 () none 24) ;; (add-to-level! (_type_ level-group level actor-id) none 24) + (dummy-25 () none 25) ;; (remove-from-level! (_type_ level-group) _type_ 25) + (dummy-26 () none 26) ;; (get-level (_type_) level 26) + ) + ) +|# + +#| +(deftype entity-nav-mesh (entity) + () + :method-count-assert 29 + :size-assert #x38 + :flag-assert #x1d00000038 + ;; Failed to read fields. + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + ) + ) +|# + +#| +(deftype entity-actor (entity) + () + :method-count-assert 33 + :size-assert #x50 + :flag-assert #x2100000050 + ;; Failed to read fields. + (:methods + (dummy-27 () none 27) ;; (next-actor (_type_) entity-actor 27) + (dummy-28 () none 28) ;; (prev-actor (_type_) entity-actor 28) + (dummy-29 () none 29) ;; (debug-print (_type_ symbol type) none 29) + (dummy-30 () none 30) ;; (dummy-30 (_type_ entity-perm-status symbol) none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + ) + ) +|# + +#| +(deftype debug-actor-info (basic) + ((name basic :offset-assert 4) + (handle uint64 :offset-assert 8) + (process basic :offset-assert 16) + (pid int32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern *spawn-actors* object) ;; symbol +;; (define-extern *compact-actors* object) ;; symbol +;; (define-extern *vis-actors* object) ;; symbol +;; (define-extern entity-by-name object) ;; (function string entity) +;; (define-extern entity-by-type object) ;; (function type entity-actor) +;; (define-extern entity-by-aid object) ;; (function uint entity) +;; (define-extern entity-actor-from-level-name object) +;; (define-extern entity-nav-mesh-by-aid object) +;; (define-extern nav-mesh-from-res-tag object) +;; (define-extern entity-by-meters object) ;; (function float float float entity-actor) +;; (define-extern process-by-ename object) ;; (function string process) +;; (define-extern entity-process-count object) ;; (function symbol int) +;; (define-extern entity-count object) ;; (function int) +;; (define-extern entity-remap-names object) ;; (function pair none) +;; (define-extern process-status-bits object) ;; (function process symbol none) +;; (define-extern process-entity-set! object) +;; (define-extern process-task-mask object) +;; (define-extern update-actor-vis-box object) ;; (function process-drawable vector vector none) +;; (define-extern expand-bounding-box object) +;; (define-extern expand-vis-box-with-point object) ;; (function entity vector none) +;; (define-extern *debug-actor-info* object) +;; (define-extern *pid-string* object) +;; (define-extern debug-actor object) +;; (define-extern draw-actor-marks object) +;; (define-extern init-entity object) ;; (function process entity-actor none) +;; (define-extern check-for-rougue-process object) +;; (define-extern process-drawable-scale-from-entity! object) +;; (define-extern process-drawable-from-entity! object) ;; (function process-drawable entity-actor none) +;; (define-extern reset-actors object) ;; (function symbol none) +;; (define-extern reset-cameras object) ;; (function none) +;; (define-extern entity-birth-no-kill object) ;; (function entity none) +;; (define-extern entity-task-complete-on object) ;; (function entity none) +;; (define-extern entity-task-complete-off object) ;; (function entity none) +;; (define-extern process-entity-status! object) ;; (function process entity-perm-status symbol int) +;; (define-extern find-nearest-entity object) +;; (define-extern entity-speed-test object) ;; (function string none) +;; (define-extern dump-entity-remap object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; path ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vol ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern plane-volume-intersect-dist object) ;; (function vector vector vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-mesh ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-engine-spr-buffer (structure) + ((mem-addr uint32 :offset-assert 0) + (mem-nav uint32 :offset-assert 0) + (spr-addr uint32 :offset-assert 4) + (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 uint32 :offset-assert 8) + (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 UNKNOWN 3 :offset-assert 28) + (spr-work nav-mesh-work :offset-assert 4) + (mem-work nav-mesh-work :offset-assert 76) + (spr-mesh basic :offset-assert 8) + (mem-mesh basic :offset-assert 80) + (spr-poly-array uint32 :offset-assert 12) + (mem-poly-array uint32 :offset-assert 84) + (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 + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +;; (define-extern *debug-nav-control-output* object) +;; (define-extern *debug-nav-control* object) +;; (define-extern *debug-nav-mesh-output* object) +;; (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) +;; (define-extern *default-nav-mesh* object) ;; nav-mesh +;; (define-extern nav-mesh-connect-from-ent object) +;; (define-extern connection-validate object) +;; (define-extern connection-list-validate object) +;; (define-extern nav-control-validate object) +;; (define-extern debug-validate-nav-poly object) +;; (define-extern nav-dma-send-to-spr-no-flush object) +;; (define-extern nav-dma-send-from-spr-no-flush object) +;; (define-extern inc-mod3 object) ;; (function int int) +;; (define-extern nav-state-patch-pointers object) +;; (define-extern vu-point-triangle-intersection? object) ;; (function vector vector vector vector symbol) +;; (define-extern poly-in-height-range? object) +;; (define-extern init-ray-local object) ;; (function nav-ray nav-poly vector vector symbol) +;; (define-extern init-ray-dir-local object) ;; (function nav-ray nav-poly vector vector float symbol) +;; (define-extern nav-ray-test object) ;; (function nav-mesh nav-poly vector vector meters) +;; (define-extern point-poly-distance-min object) +;; (define-extern nav-mesh-route-table-bit-index object) +;; (define-extern ray-ccw-line-segment-intersection? object) ;; (function vector vector vector vector symbol) +;; (define-extern ray-line-segment-intersection? object) ;; (function vector vector vector vector symbol) +;; (define-extern plane-height-at-xz-point object) +;; (define-extern nav-normal-from-3-points object) +;; (define-extern get-nav-mesh object) +;; (define-extern find-nearest-nav-mesh object) +;; (define-extern point-to-poly-boundary object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(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 object) ;; (function nav-mesh nav-poly vector symbol) +;; (define-extern debug-report-nav-stats object) ;; (function none) +;; (define-extern get-nav-control object) +;; (define-extern add-nav-sphere object) ;; (function nav-control vector none) +;; (define-extern add-collide-shape-spheres object) ;; (function nav-control collide-shape vector none) +;; (define-extern circle-tangent-directions object) ;; (function vector vector vector vector vector) +;; (define-extern circle-ray-intersection? object) +;; (define-extern find-closest-circle-ray-intersection object) ;; (function vector vector float int (inline-array vector) int int) +;; (define-extern compute-dir-parm object) ;; (function vector vector vector float) +;; (define-extern vector-rotate-y-sincos! object) +;; (define-extern test-xz-point-on-line-segment? object) ;; (function vector vector vector float symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; aligner ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; water ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern check-water-level-drop object) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-water-level-drop-and-die object) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-water-level-drop-and-die-motion object) +;; (define-extern check-water-level-above-and-die object) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-water-level-drop-motion object) +;; (define-extern part-water-splash-callback object) ;; (function part-tracker none) +;; (define-extern splash-spawn object) ;; (function basic basic int none) +;; (define-extern rings-water-spawn object) +;; (define-extern water-info<-region object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collectables ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collectable (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype eco (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype eco-yellow (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype eco-red (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype eco-blue (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype eco-green (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype health (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype eco-pill (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype money (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gem (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype skill (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype fuel-cell (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype trick-point (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype skate-point (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype ammo-collectable (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype ammo (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype shield (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype upgrade-collectable (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype ecovent (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern initialize-eco-by-other object) ;; (function vector vector fact-info none :behavior eco) +;; (define-extern add-blue-shake object) ;; (function vector vector vector vector) +;; (define-extern check-blue-suck object) ;; (function process-drawable none :behavior eco-collectable) +;; (define-extern add-blue-motion object) ;; (function symbol symbol symbol symbol symbol :behavior eco-collectable) +;; (define-extern collectable-standard-event-handler object) +;; (define-extern money-init-by-other object) ;; (function vector vector fact-info entity-actor none :behavior money) +;; (define-extern money-init-by-other-no-bob object) ;; (function vector vector fact-info float entity-actor none :behavior money) +;; (define-extern *collectable-dummy-shadow-control* object) +;; (define-extern initialize-ammo-by-other object) +;; (define-extern initialize-upgrade-by-other object) +;; (define-extern birth-pickup-at-point object) ;; (function vector pickup-type float symbol process-tree fact-info (pointer process) :behavior process) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; task-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fail-mission-params (structure) + ((message uint8 :offset-assert 0) + (flags uint8 :offset-assert 1) + (retry-continue basic :offset-assert 4) + (fail-continue basic :offset-assert 8) + (reset-delay uint32 :offset-assert 12) + (task uint8 :offset-assert 16) + (fail-message uint32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype fail-mission-control (basic) + ((process uint64 :offset-assert 8) + (handle-init-hack basic :offset-assert 8) + ) + :method-count-assert 13 + :size-assert #x10 + :flag-assert #xd00000010 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + ) + ) +|# + +#| +(deftype fail-mission (process) + ((message uint8 :offset-assert 124) + (flags uint8 :offset-assert 125) + (retry-continue basic :offset-assert 128) + (fail-continue basic :offset-assert 132) + (reset-delay uint32 :offset-assert 136) + (grabbed-time uint64 :offset-assert 140) + (retry basic :offset-assert 148) + (task uint8 :offset-assert 152) + (message-id uint32 :offset-assert 156) + (fail-message uint32 :offset-assert 160) + (stinger uint32 :offset-assert 164) + ) + :method-count-assert 17 + :size-assert #xac + :flag-assert #x11003000ac + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + ) + ) +|# + +;; (define-extern *fail-mission-control* object) +;; (define-extern game-task-node->string object) +;; (define-extern update-task-masks object) +;; (define-extern play-clean object) +;; (define-extern play-task object) +;; (define-extern restart-mission object) +;; (define-extern task-node-by-name object) +;; (define-extern task-resolution-close! object) +;; (define-extern task-close! object) +;; (define-extern task-closed? object) ;; (function game-task task-status symbol) +;; (define-extern open-task-nodes object) +;; (define-extern task-node-closed? object) +;; (define-extern task-node-close! object) +;; (define-extern task-node-open? object) +;; (define-extern task-node-open! object) +;; (define-extern task-node-reset object) +;; (define-extern task-node-dump object) +;; (define-extern fail-mission-init-by-other object) +;; (define-extern task-manager-init-by-other object) +;; (define-extern task-manager-event-handler object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; scene ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype scene-stage (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ;; Failed to read fields. + (:methods + ) + ) +|# + +#| +(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 object) +;; (define-extern scene-lookup object) +;; (define-extern *subtitle-work* object) +;; (define-extern draw-subtitle-image object) +;; (define-extern process-drawable-draw-subtitles object) +;; (define-extern scene-player-init object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pov-camera ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern pov-camera-play-and-reposition object) ;; (function art-joint-anim vector float none :behavior pov-camera) +;; (define-extern pov-camera-init-by-other object) ;; (function vector skeleton-group string pov-camera-flag process-drawable pair none :behavior pov-camera) +;; (define-extern othercam-calc object) ;; (function float none) +;; (define-extern othercam-running object) ;; (state othercam) +;; (define-extern othercam-init-by-other object) ;; (function process-taskable symbol symbol symbol none :behavior othercam) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; powerups ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cloud-track object) ;; (function process-tree process-tree (function vector none) time-frame time-frame time-frame none :behavior process) +;; (define-extern eco-blue-glow object) ;; (function vector none) +;; (define-extern target-eco-process object) +;; (define-extern target-color-effect-process object) +;; (define-extern target-powerup-process object) ;; (function none :behavior target) +;; (define-extern target-powerup-effect object) ;; (function symbol none :behavior target) +;; (define-extern process-contact-action object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; crates ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype crate-bank (basic) + ((COLLIDE_YOFF float :offset-assert 4) + (COLLIDE_RADIUS float :offset-assert 8) + (DARKECO_EXPLODE_RADIUS float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype crate (process-focusable) + ((smush smush-control :inline :offset-assert 204) + (base vector :inline :offset-assert 236) + (look symbol :offset-assert 252) ;; guessed by decompiler + (defense symbol :offset-assert 256) ;; guessed by decompiler + (incoming-attack-id uint32 :offset-assert 260) + (target uint64 :offset-assert 268) ;; handle + (child-count int32 :offset-assert 276) + (victory-anim spool-anim :offset-assert 280) ;; guessed by decompiler + ) + :method-count-assert 41 + :size-assert #x120 + :flag-assert #x2900a00120 + (:methods + (dummy-27 () none 27) ;; (params-set! (_type_ symbol symbol) none 27) + (dummy-28 () none 28) ;; (dummy-28 (_type_) none 28) + (dummy-29 () none 29) ;; (smush-update! (_type_) none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + (dummy-40 () none 40) + ) + ) +|# + +#| +(deftype pickup-spawner (crate) + ((blocker entity-actor :offset-assert 284) ;; guessed by decompiler + ) + :method-count-assert 41 + :size-assert #x124 + :flag-assert #x2900b00124 + (:methods + ) + ) +|# + +;; (define-extern *CRATE-bank* object) ;; crate-bank +;; (define-extern crate-post object) ;; (function int :behavior crate) +;; (define-extern crate-standard-event-handler object) ;; (function process int symbol event-message-block object :behavior crate) +;; (define-extern crate-init-by-other object) ;; (function entity vector symbol none :behavior crate) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hud ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-sprite-work (structure) + ((adgif-tmpl dma-gif-packet :inline :offset-assert 0) + (sprite-tmpl dma-gif-packet :inline :offset-assert 32) + (draw-tmpl dma-gif-packet :inline :offset-assert 64) + (box-tmpl dma-gif-packet :inline :offset-assert 96) + (box2-tmpl dma-gif-packet :inline :offset-assert 128) + (mask-tmpl dma-gif-packet :inline :offset-assert 160) + (line-tmpl dma-gif-packet :inline :offset-assert 192) + (scan-tmpl dma-gif-packet :inline :offset-assert 224) + (line-color uint64 :offset-assert 256) + (scan-colors UNKNOWN 32 :offset-assert 272) + (scanline uint32 :offset-assert 784) + ) + :method-count-assert 9 + :size-assert #x314 + :flag-assert #x900000314 + ) +|# + +;; (define-extern *hud-sprite-work* object) +;; (define-extern hud-create-icon object) +;; (define-extern hud-hidden object) ;; (state hud) +;; (define-extern hud-arriving object) ;; (state hud) +;; (define-extern hud-in object) ;; (state hud) +;; (define-extern hud-leaving object) ;; (state int hud) +;; (define-extern hud-init-by-other object) ;; (function int none :behavior hud) +;; (define-extern hide-hud object) ;; (function none) +;; (define-extern enable-hud object) ;; (function none) +;; (define-extern hide-hud-quick object) ;; (function none) +;; (define-extern show-hud object) ;; (function none) +;; (define-extern hud-hidden? object) ;; (function symbol) +;; (define-extern set-hud-piece-position! object) +;; (define-extern set-as-offset-from! object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hud-classes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *hud-skullgem* object) +;; (define-extern activate-hud object) ;; (function process none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; progress-static ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-scene-info (basic) + ((name basic :offset-assert 4) + (continue basic :offset-assert 8) + (info basic :offset-assert 12) + (text uint32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ;; field info uses ~A with a signed load + ) +|# + +;; (define-extern *main-options* object) ;; (array game-option) +;; (define-extern *main-options-debug* object) +;; (define-extern *main-kiosk-options* object) +;; (define-extern *main-demo-options* object) +;; (define-extern *title* object) ;; (array game-option) +;; (define-extern *unlocked-secrets* object) +;; (define-extern *options* object) ;; (array game-option) +;; (define-extern *game-options* object) ;; (array game-option) +;; (define-extern *game-options-japan* object) ;; (array game-option) +;; (define-extern *game-options-demo* object) ;; (array game-option) +;; (define-extern *graphic-options* object) ;; (array game-option) +;; (define-extern *graphic-title-options-pal* object) ;; (array game-option) +;; (define-extern *sound-options* object) ;; (array game-option) +;; (define-extern *quit-restart-options* object) +;; (define-extern *load-save-options* object) +;; (define-extern *save-options-title* object) ;; (array game-option) +;; (define-extern *loading-options* object) +;; (define-extern *insufficient-space-options* object) +;; (define-extern *secrets-insufficient-space-options* object) +;; (define-extern *insert-card-options* object) +;; (define-extern *error-loading-options* object) +;; (define-extern *error-auto-saving-options* object) +;; (define-extern *card-removed-options* object) +;; (define-extern *error-disc-removed-options* object) +;; (define-extern *error-reading-options* object) +;; (define-extern *icon-info-options* object) +;; (define-extern *format-card-options* object) +;; (define-extern *already-exists-options* object) +;; (define-extern *create-game-options* object) +;; (define-extern *video-mode-warning-options* object) +;; (define-extern *video-mode-ok-options* object) +;; (define-extern *progressive-mode-warning-options* object) +;; (define-extern *progressive-mode-ok-options* object) +;; (define-extern *quit-options* object) +;; (define-extern *select-start-options* object) +;; (define-extern *select-scene-options* object) +;; (define-extern *bigmap-options* object) +;; (define-extern *missions-options* object) +;; (define-extern *highscores-options* object) +;; (define-extern *secret-options* object) +;; (define-extern *language-name-remap* object) ;; (array game-text-id) +;; (define-extern *stereo-mode-name-remap* object) +;; (define-extern *hud-ring-graphic-remap* object) +;; (define-extern *hud-ring-kiosk-graphic-remap* object) +;; (define-extern *hud-ring-demo-graphic-remap* object) +;; (define-extern *hud-select-scene-act1* object) +;; (define-extern *hud-select-scene-act2* object) +;; (define-extern *hud-select-scene-act3* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; progress ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype progress-global-state (UNKNOWN) + ((aspect-ratio-choice symbol :offset-assert 4) ;; guessed by decompiler + (video-mode-choice symbol :offset-assert 8) ;; guessed by decompiler + (yes-no-choice symbol :offset-assert 12) ;; guessed by decompiler + (on-off-choice basic :offset-assert 16) + (which-slot int32 :offset-assert 20) + (starting-state progress-screen :offset-assert 24) ;; guessed by decompiler + (last-slot-saved int32 :offset-assert 28) + (slider-backup float :offset-assert 32) + (language-backup uint64 :offset-assert 40) ;; language-enum + (center-x-backup int32 :offset-assert 48) + (center-y-backup int32 :offset-assert 52) + (aspect-ratio-backup symbol :offset-assert 56) ;; guessed by decompiler + (last-slider-sound uint64 :offset-assert 64) ;; time-frame + (video-mode-timeout uint64 :offset-assert 72) + (progressive-mode-timeout uint64 :offset-assert 80) + (current-task-index int32 :offset-assert 88) + (current-line-index int32 :offset-assert 92) + (first-closed-line-index int32 :offset-assert 96) + (extra-text-state int32 :offset-assert 100) + (current-task uint8 :offset-assert 104) + (num-open-tasks-found int32 :offset-assert 108) + (num-closed-tasks-found int32 :offset-assert 112) + (color-flash-counter int32 :offset-assert 116) + (num-unlocked-secrets int32 :offset-assert 120) + (game-options-item-selected int32 :offset-assert 124) + (game-options-item-picked basic :offset-assert 128) + (game-options-last-move uint64 :offset-assert 136) + (game-options-vibrations basic :offset-assert 144) + (game-options-subtitles basic :offset-assert 148) + (game-options-language-index int32 :offset-assert 152) + (game-options-subtitle-language-index int32 :offset-assert 156) + (graphic-options-item-selected int32 :offset-assert 160) + (graphic-options-item-picked basic :offset-assert 164) + (graphic-options-last-move uint64 :offset-assert 168) + (graphic-options-aspect-ratio basic :offset-assert 176) + (graphic-options-progressive-scan basic :offset-assert 180) + (qr-options-item-selected int32 :offset-assert 184) + (qr-options-item-picked basic :offset-assert 188) + (qr-options-last-move uint64 :offset-assert 192) + (qr-options-restart basic :offset-assert 200) + (qr-options-quit basic :offset-assert 204) + (total-num-tasks int32 :offset-assert 208) + (scene-player-act int32 :offset-assert 212) + (stereo-mode-backup int32 :offset-assert 216) + (secrets-unlocked basic :offset-assert 220) + (missions-total-spacing float :offset-assert 224) + (clear-screen basic :offset-assert 228) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype hud-ring-cell (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern *progress-stack* object) ;; (pointer uint8) +;; (define-extern *progress-process* object) ;; (pointer progress) +;; (define-extern *progress-state* object) ;; progress-global-state +;; (define-extern *progress-save-info* object) ;; mc-slot-info +;; (define-extern min-max-wrap-around object) +;; (define-extern progress-intro-start object) +;; (define-extern hud-ring-cell-init-by-other object) +;; (define-extern progress-init-by-other object) ;; (function none :behavior progress) +;; (define-extern set-ring-position object) +;; (define-extern activate-progress object) ;; (function process progress-screen none) +;; (define-extern deactivate-progress object) ;; (function none) +;; (define-extern hide-progress-screen object) ;; (function none) +;; (define-extern progress-allowed? object) ;; (function symbol) +;; (define-extern menu-update-purchase-secrets object) +;; (define-extern progress-trans object) +;; (define-extern begin-scan object) +;; (define-extern end-scan object) +;; (define-extern progress-post object) +;; (define-extern update-center-screen object) +;; (define-extern update-restart-quit object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; progress-draw ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype print-highscore-obj (UNKNOWN) + ((self basic :offset-assert 4) + (index int32 :offset-assert 8) + (previous basic :offset-assert 12) + (place int32 :offset-assert 16) + (score float :offset-assert 20) + (game-score basic :offset-assert 24) + (context basic :offset-assert 28) + (local-scale float :offset-assert 32) + (interp float :offset-assert 36) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern progress-selected object) +;; (define-extern draw-percent-bar object) ;; (function int int float rgba none) +;; (define-extern draw-highlight object) +;; (define-extern draw-busy-loading object) +;; (define-extern draw-previous-next object) +;; (define-extern draw-up-down object) +;; (define-extern draw-missions-up-down object) +;; (define-extern draw-scene-up-down object) +;; (define-extern begin-scissor object) +;; (define-extern end-scissor object) +;; (define-extern begin-scissor-secret object) +;; (define-extern end-scissor-secret object) +;; (define-extern begin-scissor-missions object) +;; (define-extern end-scissor-missions object) +;; (define-extern begin-scissor-scene object) +;; (define-extern end-scissor-scene object) +;; (define-extern begin-scissor-level object) +;; (define-extern end-scissor-level object) +;; (define-extern print-language-name object) ;; (function int font-context int symbol font-context) +;; (define-extern unlocked-secret-menu? object) +;; (define-extern memcard-unlocked-secrets? object) +;; (define-extern num-unlocked-secret? object) +;; (define-extern print-menu-text object) +;; (define-extern draw-yes-no object) +;; (define-extern draw-continue-retry object) +;; (define-extern draw-savegame-box object) +;; (define-extern get-level-icon-id-01 object) +;; (define-extern get-level-icon-id-02 object) +;; (define-extern get-level-icon-id-03 object) +;; (define-extern get-level-icon-id-04 object) +;; (define-extern draw-decoration object) +;; (define-extern draw-missions-decoration object) +;; (define-extern draw-sound-options-decoration object) +;; (define-extern draw-decoration-secrets object) +;; (define-extern draw-decoration-load-save object) +;; (define-extern sort-task-node-result object) +;; (define-extern find-mission-text-at-index object) +;; (define-extern draw-secret-list object) +;; (define-extern draw-highscore-icon object) +;; (define-extern draw-highscore-cup object) +;; (define-extern get-highscore-score object) +;; (define-extern eval-highscore object) +;; (define-extern str-print-time object) +;; (define-extern print-highscore object) +;; (define-extern get-highscore-text object) +;; (define-extern get-highscore-text-sub object) +;; (define-extern get-highscore-icon object) +;; (define-extern get-highscore-type object) +;; (define-extern highscore-available? object) +;; (define-extern get-num-highscores object) +;; (define-extern get-next-highscore object) +;; (define-extern get-prev-highscore object) +;; (define-extern get-highscore-icon-scale object) +;; (define-extern get-highscore-icon-xoffset object) +;; (define-extern get-highscore-icon-yoffset object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern init-ocean-far-regs object) ;; (function none) +;; (define-extern draw-large-polygon-ocean object) ;; (function none) +;; (define-extern render-ocean-quad object) ;; (function (inline-array ocean-vertex) dma-buffer symbol) +;; (define-extern test-seq-read object) +;; (define-extern test-worst-read object) +;; (define-extern test-seq-write object) +;; (define-extern test-worst-write object) +;; (define-extern test-to-spr object) +;; (define-extern test-from-spr object) +;; (define-extern test-to-from-spr object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-vu0 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern ocean-vu0-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern ocean-texture-vu1-block object) ;; vu-function +;; (define-extern check-normals object) +;; (define-extern generate-cloud-verts object) +;; (define-extern generate-cloud-nrms object) +;; (define-extern set-ocean-lk object) +;; (define-extern set-ocean-normal-scale object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-mid ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern ocean-mid-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-transition ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-near ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern ocean-near-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; minimap ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype minimap-texture-name-array (structure) + ((data UNKNOWN 35 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8c + :flag-assert #x90000008c + ) +|# + +#| +(deftype minimap-corner-array (structure) + ((data UNKNOWN 35 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x230 + :flag-assert #x900000230 + ) +|# + +#| +(deftype engine-minimap (engine-pers) + () + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + ;; Failed to read fields. + (:methods + ) + ) +|# + +;; (define-extern *minimap-texture-name-array* object) +;; (define-extern *minimap-corner-array* object) +;; (define-extern *minimap* object) +;; (define-extern *minimap-class-list* object) +;; (define-extern lookup-minimap-texture-by-name object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bigmap-data ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *bigmap-compressed-layers* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bigmap ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *circle-mask-1x1-meter* object) +;; (define-extern *circle-mask-2x2-meters* object) +;; (define-extern *image-mask-table* object) +;; (define-extern *map-save-ptr* object) +;; (define-extern *bigmap* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; eye ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *eye-work* object) ;; eye-work +;; (define-extern render-eyes-32 object) +;; (define-extern render-eyes-32-different object) +;; (define-extern render-eyes-64 object) +;; (define-extern render-eyes-64-different object) +;; (define-extern debug-eyes object) +;; (define-extern update-eyes object) ;; (function none) +;; (define-extern get-eye-block object) ;; (function int int int) +;; (define-extern convert-eye-data object) ;; (function eye uint float) +;; (define-extern merc-eye-anim object) ;; (function process-drawable none) +;; (define-extern set-eye-draw-flag object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 object) ;; (function glst-node glst-node) +;; (define-extern glst-prev object) ;; (function glst-node glst-node) +;; (define-extern glst-head object) ;; (function glst-list glst-node) +;; (define-extern glst-tail object) ;; (function glst-list glst-node) +;; (define-extern glst-end-of-list? object) ;; (function glst-node symbol) +;; (define-extern glst-start-of-list? object) ;; (function glst-node symbol) +;; (define-extern glst-empty? object) ;; (function glst-list symbol) +;; (define-extern glst-node-name object) ;; (function glst-named-node string) +;; (define-extern glst-set-name! object) ;; (function glst-named-node string string) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; glist ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern glst-num-elements object) ;; (function glst-list int) +;; (define-extern glst-remove object) ;; (function glst-list glst-node glst-node) +;; (define-extern glst-remove-tail object) ;; (function glst-list glst-node) +;; (define-extern glst-remove-head object) ;; (function glst-list glst-node) +;; (define-extern glst-insert-before object) ;; (function glst-list glst-node glst-node glst-node) +;; (define-extern glst-insert-after object) ;; (function glst-list glst-node glst-node glst-node) +;; (define-extern glst-add-tail object) ;; (function glst-list glst-node glst-node) +;; (define-extern glst-add-head object) ;; (function glst-list glst-node glst-node) +;; (define-extern glst-init-list! object) ;; (function glst-list glst-list) +;; (define-extern glst-find-node-by-name object) ;; (function glst-list string glst-node) +;; (define-extern glst-get-node-by-index object) ;; (function glst-list int glst-node) +;; (define-extern glst-length-of-longest-name object) ;; (function glst-list int) +;; (define-extern glst-get-node-index object) ;; (function glst-list glst-node int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; anim-tester ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype list-control (UNKNOWN) + ((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 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype list-field (UNKNOWN) + ((left int32 :offset-assert 0) + (width int32 :offset-assert 4) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype DISP_LIST-bank (UNKNOWN) + ((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 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype anim-tester-bank (UNKNOWN) + ((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 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype anim-tester (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype anim-test-obj (UNKNOWN) + ((next glst-node :offset-assert 0) + (prev glst-node :offset-assert 4) + (privname string :offset-assert 8) ;; guessed by decompiler + (obj-art-group art-group :offset-assert 12) ;; guessed by decompiler + (seq-list glst-list :inline :offset-assert 16) + (flags int32 :offset-assert 32) + (mesh-geo merc-ctrl :offset-assert 36) ;; guessed by decompiler + (joint-geo art-joint-geo :offset-assert 40) ;; guessed by decompiler + (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 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype anim-test-sequence (UNKNOWN) + ((next glst-node :offset-assert 0) + (prev glst-node :offset-assert 4) + (privname string :offset-assert 8) ;; guessed by decompiler + (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 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype anim-test-seq-item (UNKNOWN) + ((next glst-node :offset-assert 0) + (prev glst-node :offset-assert 4) + (privname string :offset-assert 8) ;; guessed by decompiler + (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 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype anim-tester (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern *DISP_LIST-bank* object) ;; DISP_LIST-bank +;; (define-extern display-list-control object) ;; (function list-control none) +;; (define-extern *ANIM_TESTER-bank* object) ;; anim-tester-bank +;; (define-extern anim-tester-num-print object) ;; (function basic float none) +;; (define-extern *anim-tester* object) ;; (pointer anim-tester) +;; (define-extern anim-test-obj-init object) ;; (function anim-test-obj list-control none) +;; (define-extern anim-test-sequence-init object) ;; (function anim-test-sequence anim-test-obj none) +;; (define-extern anim-test-seq-item-copy! object) ;; (function anim-test-seq-item anim-test-seq-item anim-test-sequence) +;; (define-extern anim-test-obj-item-valid? object) ;; (function anim-test-obj anim-test-seq-item symbol) +;; (define-extern anim-test-obj-remove-invalid object) ;; (function anim-test-obj symbol) +;; (define-extern anim-tester-real-post object) ;; (function none :behavior anim-tester) +;; (define-extern anim-tester-post object) ;; (function none :behavior anim-tester) +;; (define-extern anim-tester-update-anim-info object) ;; (function anim-test-seq-item float :behavior anim-tester) +;; (define-extern anim-tester-reset object) ;; (function none :behavior anim-tester) +;; (define-extern anim-tester-disp-frame-num object) ;; (function string float float font-context pointer) +;; (define-extern anim-tester-standard-event-handler object) ;; (function process int symbol event-message-block object :behavior anim-tester) +;; (define-extern anim-test-obj-list-handler object) ;; (function int list-control symbol) +;; (define-extern anim-test-anim-list-handler object) ;; (function int list-control symbol) +;; (define-extern anim-test-sequence-list-handler object) ;; (function int list-control symbol) +;; (define-extern anim-test-field-highlight-lw object) ;; (inline-array list-field) +;; (define-extern anim-tester-adjust-frame object) ;; (function float float float) +;; (define-extern anim-tester-pick-item-setup object) ;; (function anim-test-seq-item anim-test-sequence none) +;; (define-extern anim-test-seq-mark-as-edited object) ;; (function anim-test-sequence none) +;; (define-extern anim-test-edit-seq-insert-item object) ;; (function anim-test-seq-item anim-test-sequence none) +;; (define-extern anim-test-edit-sequence-list-handler object) ;; (function int list-control symbol) +;; (define-extern anim-tester-interface object) ;; (function none :behavior anim-tester) +;; (define-extern anim-tester-get-playing-item object) ;; (function anim-test-sequence anim-test-seq-item) +;; (define-extern anim-tester-process object) ;; (state anim-tester) +;; (define-extern initialize-anim-tester object) ;; (function none :behavior anim-tester) +;; (define-extern anim-tester-string-get-frame!! object) ;; (function list-field string symbol) +;; (define-extern anim-tester-load-object-seqs object) ;; (function anim-tester string symbol) +;; (define-extern anim-tester-save-object-seqs object) ;; (function anim-test-obj file-stream) +;; (define-extern anim-tester-save-all-objects object) ;; (function anim-tester symbol) +;; (define-extern anim-tester-add-newobj object) ;; (function anim-tester string art-group object) +;; (define-extern anim-tester-stop object) ;; (function symbol) +;; (define-extern anim-tester-start object) ;; (function symbol) +;; (define-extern anim-tester-add-object object) ;; (function string none) +;; (define-extern anim-tester-set-name object) ;; (function string object) +;; (define-extern anim-tester-add-sequence object) ;; (function string none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; viewer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype viewer (process-drawable) + ((janim art-joint-anim :offset-assert 196) ;; guessed by decompiler + ) + :method-count-assert 20 + :size-assert #xcc + :flag-assert #x14005000cc + (:methods + ) + ) +|# + +;; (define-extern *viewer-sg* object) ;; skeleton-group +;; (define-extern viewer-process object) ;; (state viewer) +;; (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! object) ;; (function string string string symbol) +;; (define-extern art-part-name object) ;; (function string string) +;; (define-extern init-viewer object) ;; (function string object :behavior viewer) +;; (define-extern init-viewer-for-other object) ;; (function string vector none :behavior viewer) +;; (define-extern add-a-bunch object) ;; (function string int int float symbol) +;; (define-extern birth-viewer object) ;; (function process entity-actor object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; part-tester ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype part-tester (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern *part-tester-name* object) ;; string +;; (define-extern part-tester-idle object) ;; (state part-tester) +;; (define-extern part-tester-init-by-other object) ;; (function vector none :behavior process-drawable) +;; (define-extern *debug-part-dead-pool* object) ;; dead-pool +;; (define-extern start-part object) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; editable-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype editable-region (basic) + ((changed basic :offset-assert 4) + (locked basic :offset-assert 8) + (id uint64 :offset-assert 16) + (filter uint32 :offset-assert 24) + (tree basic :offset-assert 28) + (level basic :offset-assert 32) + (on-enter basic :offset-assert 36) + (on-inside basic :offset-assert 40) + (on-exit basic :offset-assert 44) + ) + :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 + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + ) + ) +|# + +#| +(deftype editable (basic) + () + :method-count-assert 30 + :size-assert #x18 + :flag-assert #x1e00000018 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + ) + ) +|# + +#| +(deftype editable-array (basic) + () + :method-count-assert 18 + :size-assert #x7c + :flag-assert #x120000007c + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + ) + ) +|# + +#| +(deftype editable-point (editable) + () + :method-count-assert 30 + :size-assert #x30 + :flag-assert #x1e00000030 + ;; Failed to read fields. + (:methods + ) + ) +|# + +#| +(deftype editable-sphere (editable-point) + () + :method-count-assert 30 + :size-assert #x30 + :flag-assert #x1e00000030 + ;; Failed to read fields. + (:methods + ) + ) +|# + +#| +(deftype editable-sample (editable-point) + () + :method-count-assert 30 + :size-assert #x30 + :flag-assert #x1e00000030 + ;; Failed to read fields. + (:methods + ) + ) +|# + +#| +(deftype editable-light (editable-sphere) + () + :method-count-assert 30 + :size-assert #x5c + :flag-assert #x1e0000005c + ;; Failed to read fields. + (:methods + ) + ) +|# + +#| +(deftype editable-entity (editable-point) + () + :method-count-assert 30 + :size-assert #x30 + :flag-assert #x1e00000030 + ;; Failed to read fields. + (:methods + ) + ) +|# + +#| +(deftype editable-face (editable) + () + :method-count-assert 32 + :size-assert #x58 + :flag-assert #x2000000058 + ;; Failed to read fields. + (:methods + (dummy-30 () none 30) + (dummy-31 () none 31) + ) + ) +|# + +#| +(deftype editable-plane (editable) + () + :method-count-assert 32 + :size-assert #x28 + :flag-assert #x2000000028 + ;; Failed to read fields. + (:methods + (dummy-30 () none 30) + (dummy-31 () none 31) + ) + ) +|# + +#| +(deftype editable-player (process-drawable) + ((current basic :offset-assert 196) + (select-command uint32 :offset-assert 200) + (move-command uint32 :offset-assert 204) + (extra-command uint32 :offset-assert 208) + (left-handed basic :offset-assert 212) + (light-names basic :offset-assert 216) + (external-cam-mode basic :offset-assert 220) + (command UNKNOWN 6 :offset-assert 224) + (close-menu-time uint64 :offset-assert 252) + ) + :method-count-assert 22 + :size-assert #x108 + :flag-assert #x1600900108 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(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) + (found UNKNOWN 256 :offset-assert 16) + (dists UNKNOWN 256 :offset-assert 1040) + ) + :method-count-assert 9 + :size-assert #x810 + :flag-assert #x900000810 + ) +|# + +;; (define-extern *editable-temp-id* object) +;; (define-extern editable-command->string object) +;; (define-extern editable-filter->string object) +;; (define-extern *editable-work* object) +;; (define-extern *editable* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; editable ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern update-light-sphere-from-editable-light object) +;; (define-extern *editable-sample-region* object) +;; (define-extern *editable-light-region* object) +;; (define-extern *editable-entity-region* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; editable-player ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cleanup-selection object) +;; (define-extern insert-box object) +;; (define-extern execute-select object) +;; (define-extern execute-mouse-move object) +;; (define-extern execute-move object) +;; (define-extern editable-player-init object) +;; (define-extern *editable-menu-context* object) +;; (define-extern editable-menu-command object) +;; (define-extern editable-menu-command-no-close object) +;; (define-extern dm-region-tree-pick-func object) +;; (define-extern dm-editable-flag-pick-func object) +;; (define-extern dm-editable-filter0-pick-func object) +;; (define-extern dm-editable-filter1-pick-func object) +;; (define-extern dm-editable-light-float-func object) +;; (define-extern dm-cam-externalize2 object) +;; (define-extern dm-editable-boolean-toggle-pick-func object) +;; (define-extern editable-menu-context-make-menus object) +;; (define-extern insert-sample-camera object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mysql-nav-graph ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mysql-nav-node (structure) + ((mysql-save-flag uint32 :offset-assert 0) + (runtime-id uint32 :offset-assert 4) + (temp-edge-list basic :offset-assert 8) + (level-node-index int32 :offset-assert 12) + (cam-dist float :offset-assert 16) + (visible basic :offset-assert 20) + (nav_node_id uint32 :offset-assert 24) + (nav_graph_id uint32 :offset-assert 28) + (position vector :inline :offset-assert 32) + (level_name basic :offset-assert 48) + (angle float :offset-assert 52) + (radius float :offset-assert 56) + (nav_node_flag uint32 :offset-assert 60) + (nav_mesh_id uint32 :offset-assert 64) + ) + :method-count-assert 11 + :size-assert #x44 + :flag-assert #xb00000044 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype mysql-nav-node-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype mysql-nav-edge (structure) + ((mysql-save-flag uint32 :offset-assert 0) + (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 uint32 :offset-assert 36) + (speed_limit float :offset-assert 40) + (density float :offset-assert 44) + (traffic_edge_flag int32 :offset-assert 48) + (nav_clock_mask uint32 :offset-assert 52) + (nav_clock_type uint32 :offset-assert 56) + (width float :offset-assert 60) + (minimap_edge_flag int32 :offset-assert 64) + ) + :method-count-assert 10 + :size-assert #x44 + :flag-assert #xa00000044 + (:methods + (dummy-9 () none 9) + ) + ) +|# + +#| +(deftype mysql-nav-edge-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype mysql-nav-visnode (structure) + ((mysql-save-flag uint32 :offset-assert 0) + (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 + (dummy-9 () none 9) + ) + ) +|# + +#| +(deftype mysql-nav-visnode-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype mysql-nav-graph-level-info (structure) + ((level basic :offset-assert 0) + (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) + (node-array basic :offset-assert 8) + (edge-array basic :offset-assert 12) + (visnode-array basic :offset-assert 16) + (level-info-array-length int32 :offset-assert 20) + (level-info-last-lookup int32 :offset-assert 24) + (level-info-array UNKNOWN 32 :offset-assert 28) + ) + :method-count-assert 21 + :size-assert #x41c + :flag-assert #x150000041c + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-graph-editor ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-graph-command (structure) + ((com-type uint32 :offset-assert 0) + (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) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype nav-graph-editor (process) + ((nav-graph basic :offset-assert 124) + (mode uint32 :offset-assert 128) + (command-id int32 :offset-assert 132) + (max-command int32 :offset-assert 136) + (selected-index int32 :offset-assert 140) + (selected-dist float :offset-assert 144) + (selected-node-edge? basic :offset-assert 148) + (closest-node int32 :offset-assert 152) + (dist-closest-node float :offset-assert 156) + (closest-edge int32 :offset-assert 160) + (dist-closest-edge float :offset-assert 164) + (mouse-pos vector :inline :offset-assert 172) + (mouse-hit vector :inline :offset-assert 188) + (mouse-hit-pick vector :inline :offset-assert 204) + (mouse-normal vector :inline :offset-assert 220) + (mouse-spos-hold vector :inline :offset-assert 236) + (edge-src int32 :offset-assert 252) + (edge-dst int32 :offset-assert 256) + (edge-visibility int32 :offset-assert 260) + (vehicle-edit-mode basic :offset-assert 264) + (hover-edit-mode basic :offset-assert 268) + (clipping-dist float :offset-assert 272) + (plane-height float :offset-assert 276) + (plane-height-hold float :offset-assert 280) + (default-node mysql-nav-node :inline :offset-assert 284) + (default-edge mysql-nav-edge :inline :offset-assert 352) + (command-array basic :offset-assert 420) + ) + :method-count-assert 64 + :size-assert #x1ac + :flag-assert #x40013001ac + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + (dummy-40 () none 40) + (dummy-41 () none 41) + (dummy-42 () none 42) + (dummy-43 () none 43) + (dummy-44 () none 44) + (dummy-45 () none 45) + (dummy-46 () none 46) + (dummy-47 () none 47) + (dummy-48 () none 48) + (dummy-49 () none 49) + (dummy-50 () none 50) + (dummy-51 () none 51) + (dummy-52 () none 52) + (dummy-53 () none 53) + (dummy-54 () none 54) + (dummy-55 () none 55) + (dummy-56 () none 56) + (dummy-57 () none 57) + (dummy-58 () none 58) + (dummy-59 () none 59) + (dummy-60 () none 60) + (dummy-61 () none 61) + (dummy-62 () none 62) + (dummy-63 () none 63) + ) + ) +|# + +;; (define-extern *nav-graph-editor* object) +;; (define-extern nav-graph-editor-init-by-other object) +;; (define-extern run-nav-graph-editor object) +;; (define-extern get-nav-graph-editor object) +;; (define-extern exit-nav-graph-editor object) +;; (define-extern set-minimap-edge-flag object) +;; (define-extern set-vehicle-edit-mode object) +;; (define-extern translate-nav-graph object) +;; (define-extern update-nav-meshes object) +;; (define-extern smooth-nav-graph object) +;; (define-extern update-height object) +;; (define-extern update-width object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sampler ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sampler-mem* object) +;; (define-extern *sampler-compare* object) +;; (define-extern *sampler-count* object) +;; (define-extern timer0-handler object) +;; (define-extern sampler-start object) +;; (define-extern sampler-stop object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; 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 object) ;; (function (state camera-slave) debug-menu-msg object) +;; (define-extern dm-cam-mode-default object) +;; (define-extern dm-cam-settings-default object) +;; (define-extern dm-cam-settings-func object) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-cam-settings-func-int object) ;; (function int debug-menu-msg int int int) +;; (define-extern dm-cam-externalize object) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-cam-setting-float object) +;; (define-extern dm-cam-render-float object) ;; (function int debug-menu-msg float float float) +;; (define-extern dm-subdiv-float object) ;; (function symbol debug-menu-msg float float float) +;; (define-extern dm-subdiv-int object) ;; (function symbol debug-menu-msg int int int) +;; (define-extern dm-select-race-path object) +;; (define-extern dm-setting-language object) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-setting-subtitle-language object) +;; (define-extern dm-setting-stereo-mode object) +;; (define-extern dm-current-continue object) ;; (function string debug-menu-msg symbol) +;; (define-extern dm-subdiv-draw-func object) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-scissor-subdiv-draw-func object) +;; (define-extern dm-foreground-subdiv-draw-func object) +;; (define-extern dm-col-rend-on-func object) +;; (define-extern dm-col-rend-outline-func object) +;; (define-extern dm-col-rend-back-face-func object) +;; (define-extern dm-col-rend-normals-func object) +;; (define-extern dm-col-rend-ghost-hidden-func object) +;; (define-extern dm-col-rend-track-func object) +;; (define-extern dm-col-rend-show-only-toggle-func object) +;; (define-extern dm-col-rend-show-only-set-func object) +;; (define-extern dm-col-rend-cspec-toggle object) +;; (define-extern dm-col-rend-size object) +;; (define-extern dm-col-rend-cam-dist object) +;; (define-extern dm-ocean-height-func object) +;; (define-extern dm-ocean-subdiv-draw-func object) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-time-of-day-func object) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-time-of-day-func2 object) ;; (function (pointer symbol) debug-menu-msg symbol) +;; (define-extern dm-time-of-day-palette-func object) +;; (define-extern dm-boolean-toggle-pick-func object) ;; (function (pointer symbol) debug-menu-msg symbol) +;; (define-extern dm-time-of-day-pick-func object) ;; (function symbol debug-menu-msg none) +;; (define-extern dm-stats-memory-func object) +;; (define-extern dm-actor-marks-pick-func object) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-select-race-pick-func object) +;; (define-extern dm-compact-actor-pick-func object) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-actor-vis-pick-func object) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-game-mode-pick-func object) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-game-feature-toggle-pick-func object) +;; (define-extern dm-game-secret-toggle-pick-func object) +;; (define-extern display-scene-control-toggle-pick-func object) +;; (define-extern display-scene-control-set-pick-func object) +;; (define-extern display-bot-marks-toggle-pick-func object) +;; (define-extern display-bot-marks-set-pick-func object) +;; (define-extern display-race-marks-toggle-pick-func object) +;; (define-extern display-race-marks-set-pick-func object) +;; (define-extern dm-vu1-user-toggle-pick-func object) ;; (function vu1-renderer-mask debug-menu-msg symbol) +;; (define-extern dm-vu1-user-all-pick-func object) +;; (define-extern dm-vu1-user-none-pick-func object) +;; (define-extern dm-texture-user-toggle-pick-func object) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-texture-user-set-pick-func object) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-strip-lines-toggle-pick-func object) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-strip-lines-set-pick-func object) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-edit-instance-toggle-pick-func object) ;; (function int debug-menu-msg symbol) +;; (define-extern all-texture-tweak-adjust object) ;; (function texture-page-dir float none) +;; (define-extern dm-float-field-tie-rvanish-func object) +;; (define-extern dm-float-field-tie-vanish-far-func object) +;; (define-extern dm-bug-report-output-pick-func object) +;; (define-extern dm-bug-report-report-pick-func object) +;; (define-extern debug-menu-nodeknocked-type object) +;; (define-extern *farm-marrow-exploder-params* object) +;; (define-extern farm-marrow-callback object) +;; (define-extern *farm-beetree-exploder-params* object) +;; (define-extern farm-beetree-callback object) +;; (define-extern *farm-cabbage-exploder-params* object) +;; (define-extern farm-cabbage-callback object) +;; (define-extern *farm-small-cabbage-exploder-params* object) +;; (define-extern farm-small-cabbage-callback object) +;; (define-extern *farm-chilirots-exploder-params* object) +;; (define-extern farm-chilirots-callback object) +;; (define-extern farm-activate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyfarma-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctyfarma-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern birth-func-ctyfarma-drip object) +;; (define-extern check-drop-level-ctyfarma-drop-userdata object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyfarmb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctyfarmb-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern birth-func-ctyfarmb-drip object) +;; (define-extern check-drop-level-ctyfarmb-drop-userdata object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; yakow ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype yakow (nav-enemy) + ((incoming-attack-id uint32 :offset-assert 600) + (grazing basic :offset-assert 604) + ) + :method-count-assert 179 + :size-assert #x264 + :flag-assert #xb301f00264 + (:methods + (dummy-178 () none 178) + ) + ) +|# + +;; (define-extern *yakow-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; casboss-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *krew-holo-texture-anim-array* object) +;; (define-extern krew-texture-anim-func object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; castle-baron ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cboss-tractor (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cboss-elevator (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype krew-boss-clone (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype krew-boss (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype krew-boss-shot (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype hud-krew-boss (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern clones-wave-speech object) +;; (define-extern krew-hit-speech object) +;; (define-extern krew-hits-jak-speech object) +;; (define-extern krew-comes-in-speech object) +;; (define-extern *krew-boss-clone-nav-enemy-info* object) +;; (define-extern krew-boss-shot-move object) +;; (define-extern *krew-boss-crate-spawn-points* object) +;; (define-extern *krew-boss-clone-spawn-points* object) +;; (define-extern *krew-boss-idle-path* object) +;; (define-extern *krew-boss-nav-enemy-info* object) +;; (define-extern baron-move-point-on-ground object) +;; (define-extern *krew-boss-die-positions* object) +;; (define-extern casboss-deactivate object) +;; (define-extern casboss-activate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; castle-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; casboss-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype casboss-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cascity-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; strip-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; strip-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype strip-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern check-drop-level-strip-fencespikes-sparks-10 object) +;; (define-extern check-drop-level-ecowell-victory-dirt-rubble object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; strip-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-spheres-strip* object) +;; (define-extern *ocean-colors-strip* object) +;; (define-extern *ocean-near-indices-strip* object) +;; (define-extern *ocean-trans-indices-strip* object) +;; (define-extern *ocean-mid-indices-strip* object) +;; (define-extern *ocean-mid-masks-strip* object) +;; (define-extern *ocean-map-strip* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; strip-rescue ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cntrlrm-door (process-drawable) + ((root collide-shape :offset-assert 124) + ) + :method-count-assert 22 + :size-assert #x198 + :flag-assert #x1601200198 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype cntrlrm-button (process-drawable) + ((root collide-shape :offset-assert 124) + ) + :method-count-assert 21 + :size-assert #x198 + :flag-assert #x1501200198 + (:methods + (dummy-20 () none 20) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; strip-drop ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype strip-game-crate (process-drawable) + ((local-offset vector :inline :offset-assert 204) + (swing-angle vector :inline :offset-assert 220) + ) + :method-count-assert 23 + :size-assert #xf0 + :flag-assert #x17007000f0 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype crane (process-drawable) + ((angle-vel float :offset-assert 196) + (angle float :offset-assert 200) + (init-quat quaternion :inline :offset-assert 204) + (final-quat quaternion :inline :offset-assert 220) + (crate uint32 :offset-assert 236) + ) + :method-count-assert 23 + :size-assert #xf4 + :flag-assert #x17008000f4 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype cranecrate (process-drawable) + ((root collide-shape :offset-assert 124) + ) + :method-count-assert 22 + :size-assert #x198 + :flag-assert #x1601200198 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype grunt-egg (process-drawable) + ((idle-anim-player idle-control :inline :offset-assert 204) + (attack-id uint32 :offset-assert 220) + ) + :method-count-assert 24 + :size-assert #xe4 + :flag-assert #x18007000e4 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +#| +(deftype grunt-egg-a (grunt-egg) + () + :method-count-assert 24 + :size-assert #xe4 + :flag-assert #x18007000e4 + (:methods + ) + ) +|# + +#| +(deftype grunt-egg-b (grunt-egg) + () + :method-count-assert 24 + :size-assert #xe4 + :flag-assert #x18007000e4 + (:methods + ) + ) +|# + +#| +(deftype grunt-egg-c (grunt-egg) + () + :method-count-assert 24 + :size-assert #xe4 + :flag-assert #x18007000e4 + (:methods + ) + ) +|# + +#| +(deftype grunt-egg-d (grunt-egg) + () + :method-count-assert 24 + :size-assert #xe4 + :flag-assert #x18007000e4 + (:methods + ) + ) +|# + +;; (define-extern check-drop-level-strip-crate-drop-userdata-nosplat object) +;; (define-extern check-drop-level-strip-crate-drop-userdata object) +;; (define-extern strip-game-crate-init-by-other object) +;; (define-extern *grunt-egg-a-script* object) +;; (define-extern *grunt-egg-b-script* object) +;; (define-extern *grunt-egg-c-script* object) +;; (define-extern *grunt-egg-d-script* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; strip-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype strip-hazard (process-drawable) + ((sync sync-linear :inline :offset-assert 196) + (shove-vec vector :inline :offset-assert 220) + (no-collision-timer uint64 :offset-assert 236) + (attack-id uint32 :offset-assert 244) + ) + :method-count-assert 21 + :size-assert #xfc + :flag-assert #x15008000fc + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype fencespikes (strip-hazard) + ((start-quat quaternion :inline :offset-assert 252) + (spin float :offset-assert 268) + (offset float :offset-assert 272) + (sparks-group uint32 :offset-assert 276) + ) + :method-count-assert 21 + :size-assert #x11c + :flag-assert #x1500a0011c + (:methods + ) + ) +|# + +#| +(deftype pitspikes (strip-hazard) + ((spinner basic :offset-assert 248) + ) + :method-count-assert 21 + :size-assert #x100 + :flag-assert #x1500800100 + (:methods + ) + ) +|# + +#| +(deftype curtainsaw (strip-hazard) + () + :method-count-assert 21 + :size-assert #xfc + :flag-assert #x15008000fc + (:methods + ) + ) +|# + +#| +(deftype grenade-point (process-drawable) + ((camera-name basic :offset-assert 196) + (parented? basic :offset-assert 200) + (lightning-time uint64 :offset-assert 204) + (strike-table basic :offset-assert 212) + (last-strike-index int32 :offset-assert 216) + (speed meters :offset-assert 220) + (part2 basic :offset-assert 224) + (part3 basic :offset-assert 228) + (part-lightning-hit basic :offset-assert 232) + (enter-time uint64 :offset-assert 236) + (minimap connection-minimap :offset-assert 244) + ) + :method-count-assert 22 + :size-assert #xfc + :flag-assert #x16008000fc + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype grenade (projectile) + ((tumble-quat quaternion :inline :offset-assert 476) + (blast-radius float :offset-assert 492) + (end-target uint64 :offset-assert 500) + ) + :method-count-assert 42 + :size-assert #x200 + :flag-assert #x2a01800200 + (:methods + (dummy-40 () none 40) + (dummy-41 () none 41) + ) + ) +|# + +#| +(deftype drill-plat (strip-hazard) + ((plat-sound basic :offset-assert 248) + ) + :method-count-assert 21 + :size-assert #x100 + :flag-assert #x1500800100 + (:methods + ) + ) +|# + +;; (define-extern strip-handler object) +;; (define-extern strip-trans object) +;; (define-extern *pitspikes-rotate-pos* object) +;; (define-extern pitspikes-birth-func object) +;; (define-extern *grenade-point-strike-table* object) +;; (define-extern strip-login object) +;; (define-extern strip-activate object) +;; (define-extern strip-deactivate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; chaincrate ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype strip-chain-crate-slave (process-drawable) + ((part2 basic :offset-assert 196) + (path-u float :offset-assert 200) + (path-speed float :offset-assert 204) + (guide-sound-mask uint32 :offset-assert 208) + (guide-num int8 :offset-assert 212) + ) + :method-count-assert 23 + :size-assert #xd9 + :flag-assert #x17006000d9 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype strip-chain-crate (process-drawable) + ((spawn-pos vector :inline :offset-assert 204) + (next-spawn-time uint64 :offset-assert 220) + (spawn-delay uint32 :offset-assert 228) + (spawn-offset uint32 :offset-assert 232) + (dist-apart float :offset-assert 236) + (crate-speed float :offset-assert 240) + ) + :method-count-assert 22 + :size-assert #xf8 + :flag-assert #x16008000f8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +;; (define-extern *strip-chain-crate-guides* object) +;; (define-extern strip-chain-crate-slave-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-buoy ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun-buoy-shot (guard-shot) + () + :method-count-assert 40 + :size-assert #x200 + :flag-assert #x2801800200 + (:methods + ) + ) +|# + +#| +(deftype gun-buoy (nav-enemy) + ((gun-elev-jmod basic :offset-assert 600) + (start-pos vector :inline :offset-assert 604) + (aim-dir vector :inline :offset-assert 620) + (focus-pos vector :inline :offset-assert 348) + (banking-quat quaternion :inline :offset-assert 652) + (offset-from-player vector :inline :offset-assert 668) + (offset-y-angular float :offset-assert 684) + (elev-angle float :offset-assert 688) + (y-final float :offset-assert 692) + (y-offset float :offset-assert 696) + (y-bob float :offset-assert 700) + (y-speed float :offset-assert 704) + (warning-interval uint64 :offset-assert 708) + (warning-timer uint64 :offset-assert 716) + (splash-timer uint64 :offset-assert 724) + (stare-down-timer uint64 :offset-assert 732) + (warning-id uint32 :offset-assert 740) + (voice-id uint32 :offset-assert 744) + (flags uint16 :offset-assert 748) + ) + :method-count-assert 184 + :size-assert #x2f2 + :flag-assert #xb8028002f2 + (:methods + (dummy-178 () none 178) + (dummy-179 () none 179) + (dummy-180 () none 180) + (dummy-181 () none 181) + (dummy-182 () none 182) + (dummy-183 () none 183) + ) + ) +|# + +;; (define-extern gun-buoy-shot-move object) +;; (define-extern *gun-buoy-nav-enemy-info* object) +;; (define-extern *gun-buoy-warning-speech* object) +;; (define-extern *gun-buoy-warning-index* object) +;; (define-extern *gun-buoy-victory-speech* object) +;; (define-extern *gun-buoy-victory-index* object) +;; (define-extern gun-buoy-chase-post object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; atoll-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype atoll-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern birth-func-atoll-bird-wing object) +;; (define-extern check-drop-level-atoll-drop object) +;; (define-extern check-drop-level-atoll-drop-userdata object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; atoll-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype piston (process-focusable) + ((sound-trans vector :inline :offset-assert 204) + (init-height float :offset-assert 220) + (range-top float :offset-assert 224) + (range-bottom float :offset-assert 228) + (sound-time UNKNOWN 2 :offset-assert 236) + (sync sync-eased :inline :offset-assert 252) + (piston-id int32 :offset-assert 296) + (looping-id uint32 :offset-assert 300) + ) + :method-count-assert 31 + :size-assert #x134 + :flag-assert #x1f00c00134 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + ) + ) +|# + +#| +(deftype turbine (process-drawable) + ((dest-height float :offset-assert 196) + (rise-height float :offset-assert 200) + (rotspeed float :offset-assert 204) + (risen basic :offset-assert 208) + ) + :method-count-assert 22 + :size-assert #xd8 + :flag-assert #x16006000d8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype liftcat (process-drawable) + ((up-y float :offset-assert 196) + (down-y float :offset-assert 200) + ) + :method-count-assert 23 + :size-assert #xd0 + :flag-assert #x17005000d0 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype atollrotpipe (process-drawable) + ((smush smush-control :inline :offset-assert 196) + (init-quat quaternion :inline :offset-assert 236) + (rot-angle float :offset-assert 252) + (shudder-angle float :offset-assert 256) + (cycle-time float :offset-assert 260) + (cycle-offset float :offset-assert 264) + ) + :method-count-assert 21 + :size-assert #x110 + :flag-assert #x1500900110 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype slider (process-drawable) + ((path-pos float :offset-assert 196) + (sync sync-eased :inline :offset-assert 204) + (attack-id uint32 :offset-assert 248) + (sound-id uint32 :offset-assert 252) + (collide-off-timer uint64 :offset-assert 260) + (l-points UNKNOWN 6 :offset-assert 268) + (l-bolts UNKNOWN 4 :offset-assert 364) + ) + :method-count-assert 21 + :size-assert #x180 + :flag-assert #x1501000180 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype atoll-windmill (process-drawable) + ((sync sync-linear :inline :offset-assert 196) + (blade-normal vector :inline :offset-assert 220) + (orig-quat quaternion :inline :offset-assert 236) + ) + :method-count-assert 21 + :size-assert #x100 + :flag-assert #x1500800100 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype atoll-valve (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype atoll-hatch (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype atoll-hellcat (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype atoll-mar-symbol (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fodder ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fodder-anim-info (structure) + ((anim-index int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype fodder-global-info (basic) + ((prev-blue-hit int8 :offset-assert 4) + (blue-hit-anim UNKNOWN 3 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype fodder (nav-enemy) + ((left-eye basic :offset-assert 600) + (right-eye basic :offset-assert 604) + (look-at-other uint64 :offset-assert 612) + (neck-away-from basic :offset-assert 620) + (look-at-other-time uint64 :offset-assert 628) + (focus-pos vector :inline :offset-assert 348) + (slow-timer uint64 :offset-assert 652) + (fast-timer uint64 :offset-assert 660) + (attack-type uint64 :offset-assert 668) + (test-vec vector :inline :offset-assert 684) + ) + :method-count-assert 183 + :size-assert #x2c0 + :flag-assert #xb7024002c0 + (:methods + (dummy-178 () none 178) + (dummy-179 () none 179) + (dummy-180 () none 180) + (dummy-181 () none 181) + (dummy-182 () none 182) + ) + ) +|# + +;; (define-extern *fodder-global-info* object) +;; (define-extern *fodder-nav-enemy-info* object) +;; (define-extern fodder-setup-eye-control object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hal-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hal (bot) + ((handle-failed-slave-id int8 :offset-assert 988) + (slave-handle UNKNOWN 3 :offset-assert 996) + ) + :method-count-assert 227 + :size-assert #x400 + :flag-assert #xe303800400 + (:methods + (dummy-225 () none 225) + (dummy-226 () none 226) + ) + ) +|# + +#| +(deftype halt-wait-spot (ai-task) + ((check-done basic :offset-assert 32) + (which-spot int8 :offset-assert 36) + (num-spots uint8 :offset-assert 37) + (spot-indexes UNKNOWN 6 :offset-assert 38) + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hal-task ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hal ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *hal-nav-enemy-info* object) +;; (define-extern hal-simple-check-too-far object) +;; (define-extern hal-post object) +;; (define-extern hal-event-handler object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ruf-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ruffian-course (bot-course) + ((ouch-speeches basic :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ;; field default-check-too-far uses ~A with a signed load + ) +|# + +#| +(deftype ruffian (bot) + ((travel-anim-interp float :offset-assert 988) + (fired-gun-count uint32 :offset-assert 992) + (next-fire-time uint64 :offset-assert 996) + ) + :method-count-assert 246 + :size-assert #x3f0 + :flag-assert #xf6037003f0 + (:methods + (dummy-225 () none 225) + (dummy-226 () none 226) + (dummy-227 () none 227) + (dummy-228 () none 228) + (dummy-229 () none 229) + (dummy-230 () none 230) + (dummy-231 () none 231) + (dummy-232 () none 232) + (dummy-233 () none 233) + (dummy-234 () none 234) + (dummy-235 () none 235) + (dummy-236 () none 236) + (dummy-237 () none 237) + (dummy-238 () none 238) + (dummy-239 () none 239) + (dummy-240 () none 240) + (dummy-241 () none 241) + (dummy-242 () none 242) + (dummy-243 () none 243) + (dummy-244 () none 244) + (dummy-245 () none 245) + ) + ) +|# + +#| +(deftype ruft-wait-spot (ai-task) + ((check-done basic :offset-assert 32) + (which-spot int8 :offset-assert 36) + (num-spots uint8 :offset-assert 37) + (spot-indexes UNKNOWN 6 :offset-assert 38) + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype ruft-choose-jump (ai-task) + ((check-done basic :offset-assert 32) + (which-spot int8 :offset-assert 36) + (num-spots uint8 :offset-assert 37) + (src-spot-indexes UNKNOWN 4 :offset-assert 38) + (dest-spot-indexes UNKNOWN 4 :offset-assert 42) + ) + :method-count-assert 14 + :size-assert #x30 + :flag-assert #xe00000030 + (:methods + (dummy-12 () none 12) + (dummy-13 () none 13) + ) + ) +|# + +#| +(deftype ruft-fight-focus (ai-task) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + +#| +(deftype ruft-plant-bomb (ai-task) + ((check-done basic :offset-assert 32) + (which-spot int8 :offset-assert 36) + (num-spots uint8 :offset-assert 37) + (stand-spot-indexes UNKNOWN 2 :offset-assert 38) + (face-spot-indexes UNKNOWN 2 :offset-assert 40) + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ruf-task ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ruf ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ruf-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jinx-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype jinx (ruffian) + ((bomb-handle uint64 :offset-assert 1004) + (bomb-func basic :offset-assert 1012) + (bomb-fuse-delay uint32 :offset-assert 1016) + ) + :method-count-assert 246 + :size-assert #x400 + :flag-assert #xf603800400 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jinx-shot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype jinx-shot (projectile) + ((tail-pos vector :inline :offset-assert 476) + (hit-pos vector :inline :offset-assert 492) + ) + :method-count-assert 40 + :size-assert #x200 + :flag-assert #x2801800200 + (:methods + ) + ) +|# + +;; (define-extern jinx-shot-move object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jinx-bomb ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype jinx-bomb (process-focusable) + ((fuse-delay uint32 :offset-assert 200) + (attack-id uint32 :offset-assert 204) + (shake-screen? basic :offset-assert 208) + (explode-func basic :offset-assert 212) + ) + :method-count-assert 29 + :size-assert #xdc + :flag-assert #x1d006000dc + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + ) + ) +|# + +;; (define-extern jinx-bomb-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jinx ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype jinx-anim-info (structure) + ((anim-index int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype jinx-global-info (basic) + ((prev-blue-hit-front int8 :offset-assert 4) + (prev-blue-hit-back int8 :offset-assert 5) + (blue-hit-front-anim UNKNOWN 3 :offset-assert 8) + (blue-hit-back-anim UNKNOWN 3 :offset-assert 20) + (kick-anim UNKNOWN 2 :offset-assert 32) + (scared-idle-anim UNKNOWN 5 :offset-assert 40) + (bomb-recoil-anim UNKNOWN 2 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +;; (define-extern *jinx-global-info* object) +;; (define-extern *jinx-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jinx-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mog-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mog (jinx) + () + :method-count-assert 246 + :size-assert #x400 + :flag-assert #xf603800400 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mog ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *mog-nav-enemy-info* object) +;; (define-extern mog-prebind-function object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; grim-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype grim (jinx) + () + :method-count-assert 246 + :size-assert #x400 + :flag-assert #xf603800400 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; grim ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sewer-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sewer-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern sewer-drop-birth-func object) +;; (define-extern check-drop-level-sewer-drop object) +;; (define-extern sewer-drop2-birth-func object) +;; (define-extern check-drop2-level-sewer-drop object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sewer-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-spheres-sewer* object) +;; (define-extern *ocean-colors-sewer* object) +;; (define-extern *ocean-near-indices-sewer* object) +;; (define-extern *ocean-trans-indices-sewer* object) +;; (define-extern *ocean-mid-indices-sewer* object) +;; (define-extern *ocean-mid-masks-sewer* object) +;; (define-extern *ocean-map-sewer* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sewer-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sew-blade (process-drawable) + ((y-min float :offset-assert 196) + (y-max float :offset-assert 200) + (snd-water uint128 :offset-assert 204) + (snd-no-water uint128 :offset-assert 220) + (last-sound int32 :offset-assert 236) + (attack-id uint32 :offset-assert 240) + ) + :method-count-assert 21 + :size-assert #xf8 + :flag-assert #x15008000f8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype sew-single-blade (sew-blade) + ((quat quaternion :inline :offset-assert 252) + ) + :method-count-assert 22 + :size-assert #x110 + :flag-assert #x1600900110 + (:methods + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype sew-tri-blade (sew-blade) + ((anim-time float :offset-assert 244) + (anim-offset float :offset-assert 248) + (switch-state int32 :offset-assert 252) + ) + :method-count-assert 22 + :size-assert #x104 + :flag-assert #x1600900104 + (:methods + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype sew-arm-blade (sew-blade) + () + :method-count-assert 22 + :size-assert #xf8 + :flag-assert #x16008000f8 + (:methods + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype sew-multi-blade (sew-blade) + () + :method-count-assert 22 + :size-assert #xf8 + :flag-assert #x16008000f8 + (:methods + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype sew-twist-blade (sew-blade) + ((no-collision-timer uint64 :offset-assert 244) + ) + :method-count-assert 22 + :size-assert #x100 + :flag-assert #x1600800100 + (:methods + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype sew-light-switch (process-drawable) + () + :method-count-assert 24 + :size-assert #xd4 + :flag-assert #x18006000d4 + ;; Failed to read fields. + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +#| +(deftype sew-light-control (process) + ((search-switches basic :offset-assert 124) + (search-turrets basic :offset-assert 128) + (switch-ent basic :offset-assert 132) + (turret-ent basic :offset-assert 136) + ) + :method-count-assert 17 + :size-assert #x90 + :flag-assert #x1100100090 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + ) + ) +|# + +;; (define-extern sew-tri-blade-joint-callback object) +;; (define-extern sew-light-control-init-by-other object) +;; (define-extern sewer-startup object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sewer-obs2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sew-elevator (elevator) + ((sound-id uint32 :offset-assert 364) + ) + :method-count-assert 50 + :size-assert #x174 + :flag-assert #x3201000174 + (:methods + (dummy-49 () none 49) + ) + ) +|# + +#| +(deftype sew-valve (process-drawable) + () + :method-count-assert 22 + :size-assert #xe0 + :flag-assert #x16006000e0 + ;; Failed to read fields. + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype sew-mar-statue-debris (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype sew-mar-statue-debris-b (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype sew-mar-statue (process-drawable) + ((spawned-debris? basic :offset-assert 196) + ) + :method-count-assert 22 + :size-assert #xcc + :flag-assert #x16005000cc + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype sew-catwalk (drop-plat) + () + :method-count-assert 36 + :size-assert #x140 + :flag-assert #x2400c00140 + (:methods + ) + ) +|# + +#| +(deftype sew-mine (process-drawable) + ((last-time uint64 :offset-assert 196) + ) + :method-count-assert 23 + :size-assert #xd0 + :flag-assert #x17005000d0 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype sew-mine-a (sew-mine) + () + :method-count-assert 23 + :size-assert #xd0 + :flag-assert #x17005000d0 + (:methods + ) + ) +|# + +#| +(deftype sew-mine-b (sew-mine) + ((base-height float :offset-assert 204) + (center vector :inline :offset-assert 220) + (time-skew uint64 :offset-assert 236) + (period float :offset-assert 244) + ) + :method-count-assert 23 + :size-assert #xfc + :flag-assert #x17008000fc + (:methods + ) + ) +|# + +#| +(deftype sew-wall (process-focusable) + ((deadly-radius float :offset-assert 200) + (prev-deadly-radius float :offset-assert 204) + (attack-id uint32 :offset-assert 208) + (first-wall? basic :offset-assert 212) + (anim basic :offset-assert 216) + (art-name basic :offset-assert 220) + ) + :method-count-assert 30 + :size-assert #xe4 + :flag-assert #x1e007000e4 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + ) + ) +|# + +#| +(deftype sew-grill (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype sew-scare-grunt (grunt) + ((anim basic :offset-assert 688) + (manipy uint32 :offset-assert 692) + (spooled-sound-id uint32 :offset-assert 696) + (grill-actor basic :offset-assert 700) + ) + :method-count-assert 188 + :size-assert #x2c4 + :flag-assert #xbc025002c4 + (:methods + (dummy-186 () none 186) + (dummy-187 () none 187) + ) + ) +|# + +;; (define-extern sew-mar-statue-debris-init-by-other object) +;; (define-extern sew-mar-statue-debris-b-init-by-other object) +;; (define-extern sew-mar-statue-event-handler object) +;; (define-extern *sew-scare-grunt-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hosehead ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hosehead (nav-enemy) + () + :method-count-assert 198 + :size-assert #x33c + :flag-assert #xc602c0033c + ;; Failed to read fields. + (:methods + (dummy-178 () none 178) + (dummy-179 () none 179) + (dummy-180 () none 180) + (dummy-181 () none 181) + (dummy-182 () none 182) + (dummy-183 () none 183) + (dummy-184 () none 184) + (dummy-185 () none 185) + (dummy-186 () none 186) + (dummy-187 () none 187) + (dummy-188 () none 188) + (dummy-189 () none 189) + (dummy-190 () none 190) + (dummy-191 () none 191) + (dummy-192 () none 192) + (dummy-193 () none 193) + (dummy-194 () none 194) + (dummy-195 () none 195) + (dummy-196 () none 196) + (dummy-197 () none 197) + ) + ) +|# + +#| +(deftype ik-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 hosehead-anim-info (structure) + ((hit-index int32 :offset-assert 0) + (land-index int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype hosehead-global-info (basic) + ((prev-yellow-hit int8 :offset-assert 4) + (prev-blue-hit int8 :offset-assert 5) + (prev-knocked int8 :offset-assert 6) + (yellow-hit-anim UNKNOWN 2 :offset-assert 8) + (blue-hit-anim UNKNOWN 3 :offset-assert 24) + (knocked-anim UNKNOWN 2 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +;; (define-extern *hosehead-idle-wall* object) +;; (define-extern *hosehead-idle-ground* object) +;; (define-extern *hosehead-nav-enemy-info* object) +;; (define-extern *hosehead-ik-setup* object) +;; (define-extern *hosehead-global-info* object) +;; (define-extern point-line-distance object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hosehead-fake ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hosehead-fake-spawn-info (basic) + ((id int32 :offset-assert 4) + (walk-dist float :offset-assert 8) + (handle uint64 :offset-assert 16) + (trans vector :inline :offset-assert 32) + (quat quaternion :inline :offset-assert 48) + (trans-x float :offset-assert 32) + (trans-y float :offset-assert 36) + (trans-z float :offset-assert 40) + (trans-w float :offset-assert 44) + (quat-x float :offset-assert 48) + (quat-y float :offset-assert 52) + (quat-z float :offset-assert 56) + (quat-w float :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype hosehead-fake (process-drawable) + ((info basic :offset-assert 196) + (id int32 :offset-assert 200) + (walk-dest vector :inline :offset-assert 204) + ) + :method-count-assert 25 + :size-assert #xe0 + :flag-assert #x19006000e0 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + ) + ) +|# + +;; (define-extern hosehead-fake-event-handler object) +;; (define-extern hosehead-fake-init-by-other object) +;; (define-extern *hosehead-fakes* object) +;; (define-extern spawn-hosehead-fakes object) +;; (define-extern hosehead-fake-trigger object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gator ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gator (nav-enemy) + ((ocean-y float :offset-assert 600) + (lock-nav-target basic :offset-assert 604) + (new-facing vector :inline :offset-assert 620) + (old-facing vector :inline :offset-assert 636) + (turn-time uint64 :offset-assert 652) + ) + :method-count-assert 182 + :size-assert #x298 + :flag-assert #xb602200298 + (:methods + (dummy-178 () none 178) + (dummy-179 () none 179) + (dummy-180 () none 180) + (dummy-181 () none 181) + ) + ) +|# + +;; (define-extern *gator-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hal2-course ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hal2-course (UNKNOWN) + ((course-id uint8 :offset-assert 4) + (speech-count uint16 :offset-assert 6) + (spot-count uint16 :offset-assert 8) + (retry-cookie uint8 :offset-assert 10) + (too-far-warn-speeches basic :offset-assert 12) + (too-far-fail-speeches basic :offset-assert 16) + (attack-player-speeches basic :offset-assert 20) + (default-check-too-far basic :offset-assert 24) + (waypoints basic :offset-assert 28) + (speeches uint32 :offset-assert 32) + (speech-tunings uint32 :offset-assert 36) + (dirs uint32 :offset-assert 40) + (spots uint32 :offset-assert 44) + (sentries1-reminders basic :offset-assert 48) + (sentries2-reminders basic :offset-assert 52) + (bomb2-reminders basic :offset-assert 56) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; field default-check-too-far uses ~A with a signed load + ) +|# + +#| +(deftype hal-sewer (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern hal2-default-check-too-far object) +;; (define-extern hal2-near-start-check-too-far object) +;; (define-extern hal2-below-elevator-a-check-too-far object) +;; (define-extern hal2-force-fail-check-too-far object) +;; (define-extern hal2-onslaught-check-too-far object) +;; (define-extern *hal2-course* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mog2-course ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mog-sewer (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern *mog2-course* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jinx2-course ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype jinx-sewer (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern jinx2-bomb1-callback object) +;; (define-extern *jinx2-course* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; grim2-course ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype grim-sewer (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern *grim2-course* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sewer-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fake-jinx-bomb-info (basic) + ((handle uint64 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *fake-jinx-bomb-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sew-gunturret ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun-turret-params (structure) + ((normal-sg basic :offset-assert 0) + (explode-sg basic :offset-assert 4) + (enemy-info basic :offset-assert 8) + (idle-anim int32 :offset-assert 12) + (shoot-anim int32 :offset-assert 16) + (track-joint int32 :offset-assert 20) + (barrel-joint int32 :offset-assert 24) + (gun-joint int32 :offset-assert 28) + (hole-joints UNKNOWN 8 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype sew-gunturret (enemy) + ((gun-tilt-jm basic :offset-assert 528) + (params gun-turret-params :offset-assert 532) + (aim-pos vector :inline :offset-assert 540) + (gun-twist float :offset-assert 556) + (gun-tilt float :offset-assert 560) + (desired-twist float :offset-assert 564) + (desired-tilt float :offset-assert 568) + (los-clear basic :offset-assert 572) + (smoke-part basic :offset-assert 576) + (casing-part basic :offset-assert 580) + (flash-state basic :offset-assert 584) + (can-shoot basic :offset-assert 588) + (last-hit-time uint64 :offset-assert 596) + (init-mat matrix :inline :offset-assert 604) + (activate-distance float :offset-assert 668) + ) + :method-count-assert 142 + :size-assert #x2a4 + :flag-assert #x8e023002a4 + (:methods + (dummy-137 () none 137) + (dummy-138 () none 138) + (dummy-139 () none 139) + (dummy-140 () none 140) + (dummy-141 () none 141) + ) + ) +|# + +#| +(deftype pal-gun-turret (sew-gunturret) + () + :method-count-assert 142 + :size-assert #x2a4 + :flag-assert #x8e023002a4 + (:methods + ) + ) +|# + +;; (define-extern *sew-gunturret-exploder-params* object) +;; (define-extern *sew-gunturret-enemy-info* object) +;; (define-extern *pal-gun-turret-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctypower ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *city-power-switch-on-position* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyindb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctyindb-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyindb-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shuttle ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype citizen-rebel (citizen-norm) + ((nav-mesh-aid uint32 :offset-assert 1056) + (done? basic :offset-assert 1060) + (task-node uint16 :offset-assert 1064) + (end-pos vector :inline :offset-assert 1068) + (index uint32 :offset-assert 1084) + (gui-id uint32 :offset-assert 1088) + ) + :method-count-assert 219 + :size-assert #x448 + :flag-assert #xdb03d00448 + (:methods + ) + ) +|# + +#| +(deftype city-shuttle-info (structure) + ((pos vector :inline :offset-assert 0) + (level basic :offset-assert 16) + (nav-mesh-id uint32 :offset-assert 20) + (time uint64 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern *citizen-rebel-global-info* object) +;; (define-extern *citizen-rebel-nav-enemy-info* object) +;; (define-extern shuttle-init object) +;; (define-extern shuttle-cleanup object) +;; (define-extern shuttle-update object) +;; (define-extern *city-shuttle-info* object) +;; (define-extern *city-burning-bush-shuttle-1-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fordumpa-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *fortress-pris-texture-anim-array* object) +;; (define-extern *fortress-warp-texture-anim-array* object) +;; (define-extern set-roboscreen-alpha! object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fort-robotank-turret ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fort-robotank-turret (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype fort-robotank-reticle (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype fort-roboscreen (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype fort-robotank-shot (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern fort-roboscreen-init-by-other object) +;; (define-extern fort-robotank-reticle-post object) +;; (define-extern fort-robotank-reticle-handler object) +;; (define-extern fort-robotank-reticle-init-by-other object) +;; (define-extern draw-2d-hud object) +;; (define-extern turret-post object) +;; (define-extern robotank-turret-handler object) +;; (define-extern fort-robotank-turret-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fort-robotank ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fort-robotank-segment-event (UNKNOWN) + ((source uint64 :offset-assert 0) + (event-type basic :offset-assert 8) + (actor basic :offset-assert 12) + (pos-norm float :offset-assert 16) + (param basic :offset-assert 20) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; field param uses ~A with a signed load + ) +|# + +#| +(deftype fort-robotank-segment (UNKNOWN) + ((flags uint16 :offset-assert 0) + (max-speed float :offset-assert 4) + (next-segment int32 :offset-assert 8) + (next-segment-start float :offset-assert 12) + (event-count int32 :offset-assert 16) + (event-tbl uint32 :offset-assert 20) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype fort-robotank-path-info (UNKNOWN) + ((path basic :offset-assert 0) + (dir vector :inline :offset-assert 16) + (u float :offset-assert 32) + (du float :offset-assert 36) + (du-final float :offset-assert 40) + (prev-u float :offset-assert 44) + (max-speed float :offset-assert 48) + (dist float :offset-assert 52) + (dir-y-angle float :offset-assert 56) + (start-y-angle float :offset-assert 60) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype fort-robotank-path-info-array (UNKNOWN) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype fort-robotank-wheel-info (UNKNOWN) + ((jmod basic :offset-assert 0) + (radius float :offset-assert 4) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype fort-robotank-tread-info (UNKNOWN) + ((wheel UNKNOWN 7 :offset-assert 0) + (texture texture-anim :offset-assert 112) + (locator-joint int32 :offset-assert 116) + (pos vector :inline :offset-assert 128) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype fort-robotank (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern *fort-robotank-1-segment-table* object) +;; (define-extern *fort-robotank-2-segment-table* object) +;; (define-extern fort-robotank-post object) +;; (define-extern fort-robotank-handler object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fordumpc-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fordumpc-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fordumpc-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fort-dump-bomb-a (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype fort-missile-target (process-drawable) + ((part-mat UNKNOWN 2 :offset-assert 204) + (sound-id uint32 :offset-assert 332) + ) + :method-count-assert 22 + :size-assert #x154 + :flag-assert #x1600e00154 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype fort-missile (process-drawable) + ((part-doom basic :offset-assert 196) + (hud uint64 :offset-assert 204) + (door-actor UNKNOWN 2 :offset-assert 212) + (tank-actor basic :offset-assert 220) + (bomb UNKNOWN 4 :offset-assert 228) + (bomb-count uint32 :offset-assert 260) + (attack-id uint32 :offset-assert 264) + (explosion-sound-id uint32 :offset-assert 268) + (alarm-sound-id uint32 :offset-assert 272) + ) + :method-count-assert 25 + :size-assert #x118 + :flag-assert #x1900a00118 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + ) + ) +|# + +;; (define-extern *fort-missile-target-exploder-params* object) +;; (define-extern fort-missile-target-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fortress-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; throne-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype throne-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern throne-deactivate object) +;; (define-extern throne-activate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; palace-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype throne-throne (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +;; (define-extern check-drop-level-palace-roof-rain object) +;; (define-extern *metalkor-head-lightning-shock-skel* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; intro-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *jakb-prison-texture-anim-array* object) +;; (define-extern set-jakb-prison-texture-morph! object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prison-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype prison-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prison-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype prsn-hang-cell (process-drawable) + ((path-u float :offset-assert 196) + (path-du float :offset-assert 200) + ) + :method-count-assert 21 + :size-assert #xd0 + :flag-assert #x15005000d0 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype warp-gate-b (warp-gate) + () + :method-count-assert 26 + :size-assert #x100 + :flag-assert #x1a00800100 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + ) + ) +|# + +#| +(deftype prsn-cell-door (process-drawable) + ((frame float :offset-assert 196) + (desired float :offset-assert 200) + ) + :method-count-assert 21 + :size-assert #xd0 + :flag-assert #x15005000d0 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype prsn-vent-fan (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype prsn-torture (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +;; (define-extern *prsn-torture-lightning-joints* object) +;; (define-extern *prsn-chair-shackle-lightning-joints* object) +;; (define-extern dark-lightning-handler object) +;; (define-extern prsn-hang-cell-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kidesc-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype kid-escort (bot) + ((travel-anim-interp float :offset-assert 988) + (arrest-attempt-time uint64 :offset-assert 996) + (arrestor-handle uint64 :offset-assert 1004) + (crocadog-handle uint64 :offset-assert 1012) + (exit-vehicle-dest vector :inline :offset-assert 364) + ) + :method-count-assert 240 + :size-assert #x400 + :flag-assert #xf003800400 + (:methods + (dummy-225 () none 225) + (dummy-226 () none 226) + (dummy-227 () none 227) + (dummy-228 () none 228) + (dummy-229 () none 229) + (dummy-230 () none 230) + (dummy-231 () none 231) + (dummy-232 () none 232) + (dummy-233 () none 233) + (dummy-234 () none 234) + (dummy-235 () none 235) + (dummy-236 () none 236) + (dummy-237 () none 237) + (dummy-238 () none 238) + (dummy-239 () none 239) + ) + ) +|# + +#| +(deftype kidesct-wait-spot (ai-task) + ((check-done basic :offset-assert 32) + (which-spot int8 :offset-assert 36) + (num-spots uint8 :offset-assert 37) + (spot-indexes UNKNOWN 6 :offset-assert 38) + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; crocesc-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype crocadog-escort (bot) + ((travel-anim-interp float :offset-assert 988) + (anim-speed float :offset-assert 992) + (kid-handle uint64 :offset-assert 996) + (local-seat-pos vector :inline :offset-assert 1020) + (exit-vehicle-dest vector :inline :offset-assert 364) + ) + :method-count-assert 239 + :size-assert #x410 + :flag-assert #xef03900410 + (:methods + (dummy-225 () none 225) + (dummy-226 () none 226) + (dummy-227 () none 227) + (dummy-228 () none 228) + (dummy-229 () none 229) + (dummy-230 () none 230) + (dummy-231 () none 231) + (dummy-232 () none 232) + (dummy-233 () none 233) + (dummy-234 () none 234) + (dummy-235 () none 235) + (dummy-236 () none 236) + (dummy-237 () none 237) + (dummy-238 () none 238) + ) + ) +|# + +#| +(deftype crocesct-wait-spot (ai-task) + ((check-done basic :offset-assert 32) + (which-spot int8 :offset-assert 36) + (num-spots uint8 :offset-assert 37) + (spot-indexes UNKNOWN 6 :offset-assert 38) + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hal4-course ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hal4-course (bot-course) + ((defend-speeches basic :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ;; field default-check-too-far uses ~A with a signed load + ) +|# + +#| +(deftype hal-escort (hal) + ((vehicle-handle uint64 :offset-assert 772) + (arrow-handle uint64 :offset-assert 1028) + (arrestor-handle uint64 :offset-assert 1036) + (arrestor-time uint64 :offset-assert 1044) + (locked-player-time uint64 :offset-assert 1052) + (dont-fail-until uint64 :offset-assert 1060) + (played-defend-time uint64 :offset-assert 1068) + (played-get-in-time uint64 :offset-assert 1076) + (notice-plane plane :inline :offset-assert 1084) + ) + :method-count-assert 237 + :size-assert #x450 + :flag-assert #xed03d00450 + (:methods + (dummy-227 () none 227) + (dummy-228 () none 228) + (dummy-229 () none 229) + (dummy-230 () none 230) + (dummy-231 () none 231) + (dummy-232 () none 232) + (dummy-233 () none 233) + (dummy-234 () none 234) + (dummy-235 () none 235) + (dummy-236 () none 236) + ) + ) +|# + +;; (define-extern hal4-walking-too-far object) +;; (define-extern *hal4-course* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kidesc-task ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kidesc ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *kid-escort-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kidesc-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; crocesc-task ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; crocesc ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *crocadog-escort-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; crocesc-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kidesc4-course ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern kid4-update-spot-to-track-crocadog object) +;; (define-extern *kid4-course* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; crocesc4-course ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *crocadog4-course* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nest-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nest-switch (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype nest-piston (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mantis ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mantis-jump-info (structure) + ((distance float :offset-assert 0) + (search-step uint32 :offset-assert 4) + (destination vector :inline :offset-assert 16) + (direction uint16 :offset-assert 32) + (start-anim uint32 :offset-assert 36) + (air-anim uint32 :offset-assert 40) + (land-anim uint32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype mantis (nav-enemy) + () + :method-count-assert 195 + :size-assert #x2d0 + :flag-assert #xc3025002d0 + ;; Failed to read fields. + (:methods + (dummy-178 () none 178) + (dummy-179 () none 179) + (dummy-180 () none 180) + (dummy-181 () none 181) + (dummy-182 () none 182) + (dummy-183 () none 183) + (dummy-184 () none 184) + (dummy-185 () none 185) + (dummy-186 () none 186) + (dummy-187 () none 187) + (dummy-188 () none 188) + (dummy-189 () none 189) + (dummy-190 () none 190) + (dummy-191 () none 191) + (dummy-192 () none 192) + (dummy-193 () none 193) + (dummy-194 () none 194) + ) + ) +|# + +;; (define-extern *mantis-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mammoth ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mammoth (nav-enemy) + ((joint-ik UNKNOWN 4 :offset-assert 600) + (ik-handle-pos UNKNOWN 4 :offset-assert 620) + (ik-handle-y UNKNOWN 4 :offset-assert 684) + (heel-lerp UNKNOWN 4 :offset-assert 700) + (foot-flags uint16 :offset-assert 716) + (old-foot-flags uint16 :offset-assert 718) + (y-level float :offset-assert 720) + (foot-pos UNKNOWN 4 :offset-assert 732) + (my-up-vector vector :inline :offset-assert 796) + (my-up-quat quaternion :inline :offset-assert 812) + (move-pos UNKNOWN 2 :offset-assert 828) + (travel-dest vector :inline :offset-assert 860) + (tilt-quat quaternion :inline :offset-assert 876) + (path-index int32 :offset-assert 892) + (path-index-dir int32 :offset-assert 896) + (path-pos float :offset-assert 900) + (turn-angle float :offset-assert 904) + (gspot-timer uint64 :offset-assert 908) + (gspot-normal vector :inline :offset-assert 924) + (attack-timer uint64 :offset-assert 940) + (lightning-timer uint64 :offset-assert 948) + (lightning-attack-timer uint64 :offset-assert 956) + (spawn-timer uint64 :offset-assert 964) + (turn-anim-start int32 :offset-assert 972) + (turn-anim int32 :offset-assert 976) + (turn-anim-end int32 :offset-assert 980) + (turn-move-start float :offset-assert 984) + (turn-move-end float :offset-assert 988) + (feet-ik-init-timer uint64 :offset-assert 996) + ) + :method-count-assert 186 + :size-assert #x3f0 + :flag-assert #xba037003f0 + (:methods + (dummy-178 () none 178) + (dummy-179 () none 179) + (dummy-180 () none 180) + (dummy-181 () none 181) + (dummy-182 () none 182) + (dummy-183 () none 183) + (dummy-184 () none 184) + (dummy-185 () none 185) + ) + ) +|# + +#| +(deftype mammoth-ik-setup (structure) + ((elbow-index int32 :offset-assert 0) + (hand-dist float :offset-assert 4) + (ground-dist float :offset-assert 8) + (foot-flag uint16 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #xe + :flag-assert #x90000000e + ) +|# + +;; (define-extern *mammoth-nav-enemy-info* object) +;; (define-extern *mammoth-lightning-joint-tbl* object) +;; (define-extern *mammoth-ik-setup* object) +;; (define-extern mammoth-walk-post object) +;; (define-extern mammoth-walk-check-end object) +;; (define-extern next-path-index object) +;; (define-extern set-nav-destination object) +;; (define-extern mammoth-walk-handler object) +;; (define-extern mammoth-joint-mod-tilt object) +;; (define-extern mammoth-joint-mod-heel object) +;; (define-extern mammoth-leg-ik-callback object) +;; (define-extern mammoth-update-ik object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; flying-spider ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype flying-spider-shot (metalhead-shot) + () + :method-count-assert 40 + :size-assert #x1f0 + :flag-assert #x28017001f0 + (:methods + ) + ) +|# + +#| +(deftype flying-spider (nav-enemy) + ((my-up-vector vector :inline :offset-assert 604) + (gspot-normal vector :inline :offset-assert 620) + (gspot-timer uint64 :offset-assert 636) + (focus-dir uint16 :offset-assert 644) + (path-u float :offset-assert 648) + (path-du float :offset-assert 652) + ) + :method-count-assert 183 + :size-assert #x294 + :flag-assert #xb702200294 + (:methods + (dummy-178 () none 178) + (dummy-179 () none 179) + (dummy-180 () none 180) + (dummy-181 () none 181) + (dummy-182 () none 182) + ) + ) +|# + +;; (define-extern spawn-flying-spider-projectile object) +;; (define-extern *flying-spider-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nest-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-spheres-nest* object) +;; (define-extern *ocean-colors-nest* object) +;; (define-extern *ocean-near-indices-nest* object) +;; (define-extern *ocean-trans-indices-nest* object) +;; (define-extern *ocean-mid-indices-nest* object) +;; (define-extern *ocean-mid-masks-nest* object) +;; (define-extern *ocean-map-nest* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nest-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype canyon-lightning-thingy (process-drawable) + ((lightning UNKNOWN 5 :offset-assert 196) + ) + :method-count-assert 21 + :size-assert #xdc + :flag-assert #x15006000dc + (:methods + (dummy-20 () none 20) + ) + ) +|# + +;; (define-extern canyon-lightning-thingy-init-by-other object) +;; (define-extern activate-canyon-lightning-thingy object) +;; (define-extern nest-deactivate object) +;; (define-extern nest-activate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nest-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nest-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nest-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *darkjak-hires-nest-texture-anim-array* object) +;; (define-extern set-darkjak-highres-nest-texture-morph! object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; metalkor-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; metalkor-setup ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype metalkor-bomb (process-drawable) + ((joint-mods UNKNOWN 49 :offset-assert 196) + ) + :method-count-assert 21 + :size-assert #x18c + :flag-assert #x150110018c + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype gem-tracker (process) + ((gems UNKNOWN 10 :offset-assert 124) + (gems-collected int8 :offset-assert 204) + (perm-byte-index int8 :offset-assert 205) + ) + :method-count-assert 15 + :size-assert #xd2 + :flag-assert #xf006000d2 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + ) + ) +|# + +#| +(deftype flitter-gem-tracker (gem-tracker) + () + :method-count-assert 15 + :size-assert #xd2 + :flag-assert #xf006000d2 + (:methods + ) + ) +|# + +#| +(deftype wasp-gem-tracker (gem-tracker) + () + :method-count-assert 15 + :size-assert #xd2 + :flag-assert #xf006000d2 + (:methods + ) + ) +|# + +#| +(deftype rift-occlude (process-drawable) + ((original-trans vector :inline :offset-assert 204) + ) + :method-count-assert 21 + :size-assert #xe0 + :flag-assert #x15006000e0 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype metalkor-distort (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype metalkor-explode (process-drawable) + ((ring uint64 :offset-assert 196) + ) + :method-count-assert 21 + :size-assert #xd0 + :flag-assert #x15005000d0 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype metalkor-kid (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype nestb-tail-bound (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype metalkor-ja-float-info (structure) + ((float-anim basic :offset-assert 0) + (channel-index int8 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x5 + :flag-assert #x900000005 + ) +|# + +#| +(deftype metalkor-spinner-info (structure) + ((joint-index int8 :offset-assert 0) + (launch-angle float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype metalkor-shot (metalhead-shot) + ((old-transv vector :inline :offset-assert 492) + ) + :method-count-assert 40 + :size-assert #x200 + :flag-assert #x2801800200 + (:methods + ) + ) +|# + +#| +(deftype metalkor-flitter (flitter) + () + :method-count-assert 184 + :size-assert #x2b8 + :flag-assert #xb8024002b8 + (:methods + ) + ) +|# + +#| +(deftype metalkor-wasp (wasp) + () + :method-count-assert 166 + :size-assert #x388 + :flag-assert #xa603100388 + (:methods + ) + ) +|# + +#| +(deftype metalkor-spinner-chain-physics (chain-physics) + ((gravity-mult float :offset-assert 1392) + (velocity-mult float :offset-assert 1396) + ) + :method-count-assert 18 + :size-assert #x578 + :flag-assert #x1200000578 + (:methods + ) + ) +|# + +#| +(deftype metalkor-spinner (process-drawable) + ((parent-joint-index int8 :offset-assert 196) + (target-pos vector :inline :offset-assert 204) + (chain basic :offset-assert 220) + (anim-speed float :offset-assert 224) + ) + :method-count-assert 23 + :size-assert #xe8 + :flag-assert #x17007000e8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype metalkor-egg (process-focusable) + ((last-hit-normal vector :inline :offset-assert 204) + (sticky-time uint64 :offset-assert 220) + (flitter-slot int8 :offset-assert 228) + ) + :method-count-assert 31 + :size-assert #xe9 + :flag-assert #x1f007000e9 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + ) + ) +|# + +#| +(deftype metalkor-wings (process-drawable) + ((prefix basic :offset-assert 196) + ) + :method-count-assert 21 + :size-assert #xcc + :flag-assert #x15005000cc + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype metalkor-foot-lock (structure) + ((lock cam-float-seeker :inline :offset-assert 0) + (old-position vector :inline :offset-assert 32) + (initialized basic :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype metalkor-legs (process-focusable) + ((prefix basic :offset-assert 200) + (trackable basic :offset-assert 204) + (joint-ik UNKNOWN 6 :offset-assert 208) + (ja-float-info UNKNOWN 3 :offset-assert 232) + (foot-locks UNKNOWN 6 :offset-assert 284) + ) + :method-count-assert 28 + :size-assert #x2a0 + :flag-assert #x1c022002a0 + (:methods + (dummy-27 () none 27) + ) + ) +|# + +#| +(deftype metalkor-chain-physics (chain-physics) + ((prev-rotation float :offset-assert 1392) + (prev-y-rotation float :offset-assert 1396) + (osc-z oscillating-float :inline :offset-assert 1400) + (osc-y oscillating-float :inline :offset-assert 1424) + (rand-z delayed-rand-float :inline :offset-assert 1448) + (rand-y delayed-rand-float :inline :offset-assert 1480) + (move-with-parent basic :offset-assert 1508) + ) + :method-count-assert 18 + :size-assert #x5e8 + :flag-assert #x12000005e8 + (:methods + ) + ) +|# + +#| +(deftype metalkor-lowtorso (process-focusable) + ((prefix basic :offset-assert 200) + (tail basic :offset-assert 204) + (tail-initialized basic :offset-assert 208) + (spinners UNKNOWN 4 :offset-assert 212) + (ja-float-info UNKNOWN 3 :offset-assert 244) + (no-collision-timer uint64 :offset-assert 292) + (egg-toss-joint-1 basic :offset-assert 300) + (egg-toss-joint-2 basic :offset-assert 304) + (egg-toss-joint-3 basic :offset-assert 308) + (egg-toss-joint-angle oscillating-float :inline :offset-assert 312) + ) + :method-count-assert 28 + :size-assert #x154 + :flag-assert #x1c00e00154 + (:methods + (dummy-27 () none 27) + ) + ) +|# + +#| +(deftype metalkor (process-focusable) + ((trackable basic :offset-assert 200) + (flitters UNKNOWN 10 :offset-assert 204) + (flitter-gem-tracker uint64 :offset-assert 284) + (wasps UNKNOWN 3 :offset-assert 292) + (wasp-gem-tracker uint64 :offset-assert 316) + (last-flitter-launched int8 :offset-assert 324) + (last-wasp-launched int8 :offset-assert 325) + (live-flitters int8 :offset-assert 326) + (live-wasps int8 :offset-assert 327) + (shoot-timer uint64 :offset-assert 332) + (target-angle float :offset-assert 340) + (wave-timer uint64 :offset-assert 348) + (in-wave basic :offset-assert 356) + (flitter-timer uint64 :offset-assert 364) + (wasp-timer uint64 :offset-assert 372) + (launching-flitters basic :offset-assert 380) + (launching-wasps basic :offset-assert 384) + (egg-timer uint64 :offset-assert 388) + (last-close-attack int8 :offset-assert 396) + (last-standing-attack int8 :offset-assert 397) + (stage int8 :offset-assert 398) + (next-stage-timer uint64 :offset-assert 404) + (initial-y float :offset-assert 412) + (shots-fired int16 :offset-assert 416) + (stage-hit-points float :offset-assert 420) + (hud uint64 :offset-assert 428) + (lowtorso uint64 :offset-assert 436) + (legs uint64 :offset-assert 444) + (wings uint64 :offset-assert 452) + (kid uint64 :offset-assert 460) + (explode uint64 :offset-assert 468) + (rift-occlude uint64 :offset-assert 476) + (last-attack-id uint32 :offset-assert 484) + (current-nav-poly nav-poly :offset-assert 488) + (shot-anticipate basic :offset-assert 492) + (spinners UNKNOWN 4 :offset-assert 500) + (neck basic :offset-assert 532) + (previous-flat-travel vector :inline :offset-assert 540) + (previous-flat-travel-timer uint64 :offset-assert 556) + (previous-flat-travel-long-timer uint64 :offset-assert 564) + (min-state-hit-points float :offset-assert 572) + (countdown-to-roar int8 :offset-assert 576) + (for-back-interp cam-float-seeker :inline :offset-assert 580) + (run-walk-interp cam-float-seeker :inline :offset-assert 604) + (left-right-interp cam-float-seeker :inline :offset-assert 628) + (walk-turn-interp cam-float-seeker :inline :offset-assert 652) + (idle-interp cam-float-seeker :inline :offset-assert 676) + (tmp-hit-points float :offset-assert 700) + (reps-till-idle-alt int8 :offset-assert 704) + (last-rotation float :offset-assert 708) + (no-collision-timer uint64 :offset-assert 716) + (egg-timer uint64 :offset-assert 388) + (egg-angle float :offset-assert 732) + (arm-frame float :offset-assert 736) + (been-to-entity basic :offset-assert 740) + (flying-speed cam-float-seeker :inline :offset-assert 744) + (wing-sound uint32 :offset-assert 768) + (wing-sound-playing basic :offset-assert 772) + (explode-sound uint32 :offset-assert 776) + (bomb-sound uint32 :offset-assert 780) + (stop-bomb-sound basic :offset-assert 784) + (hit-ring-trans vector :inline :offset-assert 796) + (hit-ring-offset vector :inline :offset-assert 812) + (ring-cam-pos cam-float-seeker :inline :offset-assert 828) + (need-teleport basic :offset-assert 852) + ) + :method-count-assert 43 + :size-assert #x35c + :flag-assert #x2b02e0035c + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + (dummy-40 () none 40) + (dummy-41 () none 41) + (dummy-42 () none 42) + ) + ) +|# + +#| +(deftype metalkor-ik-setup (structure) + ((elbow-index int32 :offset-assert 0) + (hand-dist float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern gem-tracker-get-slot object) +;; (define-extern *metalkor-flitter-nav-enemy-info* object) +;; (define-extern *metalkor-bomb-probe-joints* object) +;; (define-extern metalkor-bomb-init-by-other object) +;; (define-extern gem-tracker-init-by-other object) +;; (define-extern rift-occlude-init-by-other object) +;; (define-extern metalkor-distort-init-by-other object) +;; (define-extern metalkor-explode-init-by-other object) +;; (define-extern metalkor-kid-init-by-other object) +;; (define-extern *metalkor-spinner-chain-setup* object) +;; (define-extern metalkor-spinner-init-by-other object) +;; (define-extern metalkor-egg-reaction object) +;; (define-extern metalkor-egg-init-by-other object) +;; (define-extern metalkor-wings-init-by-other object) +;; (define-extern *metalkor-ik-setup* object) +;; (define-extern metalkor-legs-init-by-other object) +;; (define-extern *metalkor-lowtorso-chain-setup* object) +;; (define-extern metalkor-lowtorso-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; metalkor-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *metalkor-spinner-setup* object) +;; (define-extern metalkor-start-spinner object) +;; (define-extern metalkor-spinners-off object) +;; (define-extern metalkor-lowtorso-spinners-off object) +;; (define-extern metalkor-spinner-check object) +;; (define-extern metalkor-lowtorso-spinner-check object) +;; (define-extern metalkor-update-hud object) +;; (define-extern metalkor-all-spinners-on object) +;; (define-extern metalkor-ja-float object) +;; (define-extern metalkor-ja-float-stop object) +;; (define-extern metalkor-ja-float-children object) +;; (define-extern metalkor-ja-float-group? object) +;; (define-extern metalkor-get-ring object) +;; (define-extern metalkor-common object) +;; (define-extern set-countdown-to-roar object) +;; (define-extern metalkor-go-next-stage object) +;; (define-extern metalkor-setup-hit-anim object) +;; (define-extern metalkor-get-gem-tracker object) +;; (define-extern metalkor-handler object) +;; (define-extern metalkor-start-egg object) +;; (define-extern metalkor-check-egg object) +;; (define-extern metalkor-shoot-projectile object) +;; (define-extern metalkor-face-to-vector object) +;; (define-extern update-walk-anim object) +;; (define-extern rotate-and-update-hang-anim object) +;; (define-extern set-color-vectors object) +;; (define-extern metalkor-walk-the-walk object) +;; (define-extern metalkor-set-deadly object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; metalkor-extras ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nestb-formation (hover-formation) + () + :method-count-assert 16 + :size-assert #x90 + :flag-assert #x1000100090 + (:methods + ) + ) +|# + +#| +(deftype rift-ring-ingame (process-drawable) + ((anim-speed delayed-rand-float :inline :offset-assert 196) + (stutter basic :offset-assert 224) + (spin-sound uint32 :offset-assert 228) + (spin-sound-playing basic :offset-assert 232) + ) + :method-count-assert 21 + :size-assert #xf0 + :flag-assert #x15007000f0 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype nest-break-precipice (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype metalkor-rays (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +;; (define-extern metalkor-egg-handler object) +;; (define-extern metalkor-shot-move object) +;; (define-extern metalkor-legs-handler object) +;; (define-extern ik-adjust object) +;; (define-extern metalkor-update-ik object) +;; (define-extern *metalkor-lowtorso-spinner-setup* object) +;; (define-extern metalkor-lowtorso-start-spinner object) +;; (define-extern ja-aframe-num-of-proc object) +;; (define-extern metalkor-distort-update object) +;; (define-extern metalkor-rays-init-by-other object) +;; (define-extern *metalkor-bomb-collide-joints* object) +;; (define-extern metalkor-bomb-collide object) +;; (define-extern metalkor-bomb-ground-check object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nestb-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nest-gun-parts (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype nest-unbroken-rocks (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +;; (define-extern movie-nest-metalkor-shot-draw-fire object) +;; (define-extern movie-nest-metalkor-shot-draw-moving object) +;; (define-extern movie-nest-metalkor-shot-draw-impact object) +;; (define-extern nestb-login object) +;; (define-extern nestb-deactivate object) +;; (define-extern nestb-activate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nestb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nestb-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; consiteb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype consiteb-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bombbot-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bombbot-node (structure) + ((position vector :inline :offset-assert 0) + (nav-mesh-id uint32 :offset-assert 16) + (pos-x float :offset-assert 0) + (pos-y float :offset-assert 4) + (pos-z float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype bombbot-path (structure) + ((node-count uint16 :offset-assert 0) + (node uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bombbot-path ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *bombbot-path-1* object) +;; (define-extern *bombbot-path-2* object) +;; (define-extern *bombbot-path-3* object) +;; (define-extern *bombbot-path-4* object) +;; (define-extern *bombbot-path-5* object) +;; (define-extern *bombbot-path-6* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bombbot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bombbot-foot (structure) + ((pos-offset vector :inline :offset-assert 0) + (joint-index uint32 :offset-assert 16) + (offset float :offset-assert 20) + (position vector :inline :offset-assert 32) + (next-position vector :inline :offset-assert 48) + (real-position vector :inline :offset-assert 64) + (speed vector :inline :offset-assert 80) + (moving basic :offset-assert 96) + (main-y float :offset-assert 100) + (delta-y float :offset-assert 104) + ) + :method-count-assert 9 + :size-assert #x6c + :flag-assert #x90000006c + ) +|# + +#| +(deftype bombbot (nav-enemy) + ((joint-ik UNKNOWN 4 :offset-assert 600) + (feet UNKNOWN 4 :offset-assert 620) + (legs-strength UNKNOWN 4 :offset-assert 1068) + (last-trans vector :inline :offset-assert 1084) + (linear-speed vector :inline :offset-assert 1100) + (last-quat quaternion :inline :offset-assert 1116) + (y-angular-velocity float :offset-assert 1132) + (main-quat quaternion :inline :offset-assert 1148) + (main-spd-y float :offset-assert 1164) + (main-pos-y float :offset-assert 1168) + (main-pos vector :inline :offset-assert 1180) + (city-path bombbot-path :offset-assert 1196) + (current-node uint32 :offset-assert 1200) + (shot-count uint32 :offset-assert 1204) + (next-shoot uint64 :offset-assert 1212) + (stop-shoot uint64 :offset-assert 1220) + (next-target uint64 :offset-assert 1228) + (start-target uint64 :offset-assert 1236) + (beep-time uint64 :offset-assert 1244) + (target-pos vector :inline :offset-assert 1260) + (start-target-pos vector :inline :offset-assert 1276) + (start-target-vel vector :inline :offset-assert 1292) + (top-quat quaternion :inline :offset-assert 1308) + (gun-swivel-quat quaternion :inline :offset-assert 1324) + (gun-quat quaternion :inline :offset-assert 1340) + (angle-turret float :offset-assert 1356) + (angle-gun float :offset-assert 1360) + (high float :offset-assert 1364) + (shield-hit-points float :offset-assert 1368) + (hit-axis vector :inline :offset-assert 1372) + (rigidbody basic :offset-assert 1388) + (info rigid-body-object-constants :offset-assert 1392) + (explosing basic :offset-assert 1396) + (minimap connection-minimap :offset-assert 1400) + (lazer-sound uint32 :offset-assert 1404) + (head-sound uint32 :offset-assert 1408) + (cannon-sound uint32 :offset-assert 1412) + (last-head-roty-speed float :offset-assert 1416) + (head-roty-speed float :offset-assert 1420) + (last-cannon-roty-speed float :offset-assert 1424) + (cannon-roty-speed float :offset-assert 1428) + ) + :method-count-assert 185 + :size-assert #x59c + :flag-assert #xb90520059c + (:methods + (dummy-178 () none 178) + (dummy-179 () none 179) + (dummy-180 () none 180) + (dummy-181 () none 181) + (dummy-182 () none 182) + (dummy-183 () none 183) + (dummy-184 () none 184) + ) + ) +|# + +#| +(deftype ik-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 spring-setup (structure) + ((bpos1 vector :offset-assert 0) + (wpos2 vector :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype bombbot-spawn-params (structure) + ((position vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + (nav-mesh basic :offset-assert 32) + (path bombbot-path :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +;; (define-extern *bombbot-body-constants* object) +;; (define-extern *bombbot-exploder-params* object) +;; (define-extern *bombbot-nav-enemy-info* object) +;; (define-extern *bombbot-ik-setup* object) +;; (define-extern bombbot-do-spline object) +;; (define-extern bombbot-spread-lightning-lazer object) +;; (define-extern bombbot-callback object) +;; (define-extern bombbot-head-callback object) +;; (define-extern bombbot-gun-swivel-callback object) +;; (define-extern bombbot-gun-callback object) +;; (define-extern *bombbot-spring-setup* object) +;; (define-extern bombbot-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; demo-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype demo-control (process) + () + :method-count-assert 15 + :size-assert #x154 + :flag-assert #xf00e00154 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + ) + ) +|# + +;; (define-extern demo-plug-lightning object) +;; (define-extern demo-screen-change object) +;; (define-extern demo-wait-for-press object) +;; (define-extern demo-menu object) +;; (define-extern demo-control-init object) +;; (define-extern target-demo object) ;; (state target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; errol-chal-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern city-race-borrow-level-activate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; errol-chal ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype errol-racer (vehicle-rider) + ((minimap connection-minimap :offset-assert 220) + ) + :method-count-assert 36 + :size-assert #xe4 + :flag-assert #x24007000e4 + (:methods + ) + ) +|# + +#| +(deftype vehicle-city-racer (vehicle-racer) + () + :method-count-assert 156 + :size-assert #x3f8 + :flag-assert #x9c038003f8 + (:methods + ) + ) +|# + +#| +(deftype race-bike-a (vehicle-city-racer) + () + :method-count-assert 156 + :size-assert #x3f8 + :flag-assert #x9c038003f8 + (:methods + ) + ) +|# + +#| +(deftype race-bike-b (vehicle-city-racer) + () + :method-count-assert 156 + :size-assert #x3f8 + :flag-assert #x9c038003f8 + (:methods + ) + ) +|# + +#| +(deftype turbo-ring (process-drawable) + ((touch-time uint64 :offset-assert 196) + (minimap connection-minimap :offset-assert 204) + (player-got basic :offset-assert 208) + (persistent basic :offset-assert 212) + (id int8 :offset-assert 216) + (boost float :offset-assert 220) + (plane vector :inline :offset-assert 236) + (part-track uint64 :offset-assert 252) + (mat matrix :inline :offset-assert 268) + ) + :method-count-assert 25 + :size-assert #x150 + :flag-assert #x1900d00150 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + ) + ) +|# + +;; (define-extern *race-bike-a-constants* object) +;; (define-extern *race-bike-b-constants* object) +;; (define-extern turbo-ring-init-by-other object) +;; (define-extern turbo-ring-spawn object) +;; (define-extern *city-errol-challenge-rings* object) +;; (define-extern *city-bush-port-rings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; credits ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern draw-end-credits object) ;; (function int symbol) +;; (define-extern start-credits object) +;; (define-extern check-pop-level-firework-userdata object) +;; (define-extern check-pop-level-firework-red-userdata object) +;; (define-extern check-pop-level-firework-green-userdata object) +;; (define-extern birth-func-firework-color object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; outro-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern death-precursor object) +;; (define-extern start-precursor-effect object) +;; (define-extern birth-func-pecker-feather-color object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; palroof-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype palroof-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern check-drop-level-palroof-drop-userdata object) +;; (define-extern palroof-deactivate object) +;; (define-extern palroof-activate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; palroof-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pal-lowrez-throne (med-res-level) + () + :method-count-assert 21 + :size-assert #xd4 + :flag-assert #x15006000d4 + (:methods + ) + ) +|# + +#| +(deftype pal-prong (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +;; (define-extern *pal-prong-exploder-params* object) +;; (define-extern pal-prong-small-collision object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; palboss-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *shield-texture-anim-array* object) +;; (define-extern set-shield-color! object) +;; (define-extern set-shield-flash! object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; palboss-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; palboss-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern attach-squid-movie-part object) +;; (define-extern func-squid-damaged-sparks-awake object) +;; (define-extern attach-squid-break-movie-part object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fordumpa-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fordumpa-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fordumpa-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fort-elec-switch (process-drawable) + () + :method-count-assert 23 + :size-assert #xdc + :flag-assert #x17006000dc + ;; Failed to read fields. + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype fort-fence (process-drawable) + ((anim basic :offset-assert 196) + (exit-anim basic :offset-assert 200) + (loading? basic :offset-assert 204) + (tank uint64 :offset-assert 212) + ) + :method-count-assert 24 + :size-assert #xe0 + :flag-assert #x18006000e0 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +#| +(deftype fort-fence-a (fort-fence) + () + :method-count-assert 24 + :size-assert #xe0 + :flag-assert #x18006000e0 + (:methods + ) + ) +|# + +#| +(deftype fort-fence-b (fort-fence) + () + :method-count-assert 24 + :size-assert #xe0 + :flag-assert #x18006000e0 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fort-turret ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fort-turret (enemy) + ((gun-tilt-jm basic :offset-assert 528) + (gun-shadow-jm basic :offset-assert 532) + (aim-pos vector :inline :offset-assert 540) + (target-bullseye vector :inline :offset-assert 556) + (gun-twist float :offset-assert 572) + (gun-tilt float :offset-assert 576) + (desired-twist float :offset-assert 580) + (desired-tilt float :offset-assert 584) + (los-clear basic :offset-assert 588) + (flash-state basic :offset-assert 592) + (flash-index uint32 :offset-assert 596) + (can-shoot basic :offset-assert 600) + (last-hit-time uint64 :offset-assert 604) + (init-mat matrix :inline :offset-assert 620) + (target-timeout uint64 :offset-assert 684) + (beam-intersect basic :offset-assert 692) + (sync sync-linear :inline :offset-assert 700) + (invincible basic :offset-assert 716) + ) + :method-count-assert 143 + :size-assert #x2d4 + :flag-assert #x8f026002d4 + (:methods + (dummy-137 () none 137) + (dummy-138 () none 138) + (dummy-139 () none 139) + (dummy-140 () none 140) + (dummy-141 () none 141) + (dummy-142 () none 142) + ) + ) +|# + +;; (define-extern fort-turret-draw-laser-spot object) +;; (define-extern fort-turret-draw-laser object) +;; (define-extern *fort-turret-exploder-params* object) +;; (define-extern *fort-turret-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; whack ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hip-mole-event (UNKNOWN) + ((min-time uint16 :offset-assert 0) + (max-time uint16 :offset-assert 2) + (mode uint8 :offset-assert 4) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype hip-mole (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype whack-a-metal (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern birth-func-whack-score object) +;; (define-extern *mole-data* object) +;; (define-extern hip-mole-init object) +;; (define-extern whack-a-metal-init object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; roboguard-level ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype roboguard-level (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern *roboguard-level-exploder-params* object) +;; (define-extern *roboguard-level-nav-enemy-info* object) +;; (define-extern roboguard-roll-travel-post object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; castle-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *slime-clut* object) +;; (define-extern *toxic-slime-texture-anim-array* object) +;; (define-extern set-slime-alphas object) +;; (define-extern get-slime-alphas object) +;; (define-extern set-slime-speed object) +;; (define-extern *cas-conveyor-texture-anim-array* object) +;; (define-extern set-conveyor-speed! object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; castle-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cas-conveyor (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cas-conveyor-switch (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cas-electric-fence (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cas-button (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cas-elevator (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cas-rot-bridge (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cas-switch (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cas-trapdoor (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cas-chain-plat (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cas-rot-blade (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cas-flag-a (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cas-flag-b (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cas-robot-door (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype lightning-ball (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern *cas-conveyor-room-id* object) +;; (define-extern sound-update object) +;; (define-extern *cas-electric-fence-exploder-params* object) +;; (define-extern *cas-trapdoor-exploder-params* object) +;; (define-extern *cas-rot-blade-shadow-control* object) +;; (define-extern cas-rot-blade-callback object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; castle-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype castle-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern check-drop-level-castle-drop-userdata object) +;; (define-extern castle-green-dome-light-pulsate object) +;; (define-extern castle-green-slime-popper object) +;; (define-extern birth-func-castle-green-slime-tube object) +;; (define-extern castle-green-slime-tube-check-delta object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; consite-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *kor-transform-texture-anim-array* object) +;; (define-extern set-kor-texture-morph! object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; consite-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype consite-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; consite-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern consite-crimson-guard-shot object) +;; (define-extern movie-consite-metalkor-shot-draw-fire object) +;; (define-extern movie-consite-metalkor-shot-draw-moving object) +;; (define-extern movie-consite-metalkor-shot-draw-impact object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; consite-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype consite-break-scaffold (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype consite-bomb-elevator-hinges (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype consite-bomb-elevator (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype consite-silo-doors (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype baron-npc (process-taskable) + () + :method-count-assert 38 + :size-assert #x120 + :flag-assert #x2600a00120 + (:methods + ) + ) +|# + +;; (define-extern consite-bomb-elevator-hinges-init-by-other object) +;; (define-extern consite-activate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-indax ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype indax-info (basic) + ((indax-start-time uint64 :offset-assert 8) + (indax-time uint64 :offset-assert 16) + (art-group-backup basic :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +;; (define-extern *indax-walk-mods* object) +;; (define-extern *indax-jump-mods* object) +;; (define-extern *indax-double-jump-mods* object) +;; (define-extern *indax-bounce-mods* object) +;; (define-extern target-indax-handler object) +;; (define-extern target-indax-dangerous-event-handler object) +;; (define-extern target-indax-jump-event-handler object) +;; (define-extern target-indax-init object) +;; (define-extern target-indax-exit object) +;; (define-extern target-indax-real-post object) +;; (define-extern target-indax-post object) +;; (define-extern target-indax-start object) +;; (define-extern target-indax-stance object) +;; (define-extern target-indax-walk object) +;; (define-extern target-indax-falling object) +;; (define-extern target-indax-jump object) +;; (define-extern target-indax-double-jump object) +;; (define-extern target-indax-hit-ground object) +;; (define-extern target-indax-trip object) +;; (define-extern target-indax-attack object) +;; (define-extern target-indax-attack-air object) +;; (define-extern target-indax-running-attack object) +;; (define-extern target-indax-hit-setup-anim object) +;; (define-extern target-indax-hit object) +;; (define-extern target-indax-death object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tomb-boulder ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tomb-spider (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype tomb-boulder-stop (process-drawable) + ((prefix basic :offset-assert 196) + ) + :method-count-assert 21 + :size-assert #xcc + :flag-assert #x15005000cc + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype tomb-boulder-pillar (process-drawable) + ((prefix basic :offset-assert 196) + ) + :method-count-assert 21 + :size-assert #xcc + :flag-assert #x15005000cc + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype tomb-boulder (process-drawable) + () + :method-count-assert 22 + :size-assert #x174 + :flag-assert #x1601000174 + ;; Failed to read fields. + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype spider-eyes (process-drawable) + ((node-index uint32 :offset-assert 196) + ) + :method-count-assert 22 + :size-assert #xcc + :flag-assert #x16005000cc + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +;; (define-extern tomb-spider-init object) +;; (define-extern tomb-boulder-stop-init object) +;; (define-extern tomb-boulder-pillar-init object) +;; (define-extern spider-eyes-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; squid-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; squid-setup ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype squid-whirlwind (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype squid-collision (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype squid-driver (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype squid-baron (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype squid-tentacle-chain (UNKNOWN) + ((position vector :inline :offset-assert 0) + (velocity vector :inline :offset-assert 16) + (old-x vector :inline :offset-assert 32) + (joint-mod basic :offset-assert 48) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype squid-tentacle (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype squid-grenade-holder (UNKNOWN) + ((target-position vector :inline :offset-assert 0) + (show-it basic :offset-assert 16) + (grenade uint64 :offset-assert 24) + (marker uint64 :offset-assert 32) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype squid-grenade (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype squid (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype squid-shot (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern *squid-shield-exploder-params* object) +;; (define-extern *squid-tentacle-shield-exploder-params* object) +;; (define-extern squid-whirlwind-init-by-other object) +;; (define-extern squid-collision-init-by-other object) +;; (define-extern squid-driver-init-by-other object) +;; (define-extern squid-baron-init-by-other object) +;; (define-extern squid-tentacle-handler object) +;; (define-extern squid-tentacle-init-by-other object) +;; (define-extern squid-take-hit object) +;; (define-extern squid-increment-shield object) +;; (define-extern squid-check-hit-points object) +;; (define-extern squid-handler object) +;; (define-extern squid-num-grenades-to-shoot object) +;; (define-extern squid-shot-move object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; squid-extras ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern squid-grenade-move object) +;; (define-extern squid-whirlwind-move object) +;; (define-extern scene-tentacle-spawn object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; squid-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern squid-talker object) +;; (define-extern *squid-first-pole* object) +;; (define-extern *squid-second-pole* object) +;; (define-extern go-through-wall object) +;; (define-extern squid-adjust-fly-anim object) +;; (define-extern squid-whirlwind-time object) +;; (define-extern setup-grenade object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fort-floor-spike ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype spike-row-info (structure) + ((sync sync-linear :inline :offset-assert 0) + (table-ptr uint32 :offset-assert 16) + (on-ratio float :offset-assert 20) + (state int32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype spike-row-info-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype fort-floor-spike (process-drawable) + ((pos-table uint32 :offset-assert 196) + (spike-row basic :offset-assert 200) + (spike-dim UNKNOWN 2 :offset-assert 204) + (attack-id int32 :offset-assert 212) + (no-overlap-timer uint64 :offset-assert 220) + ) + :method-count-assert 24 + :size-assert #xe8 + :flag-assert #x18007000e8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +#| +(deftype fort-floor-spike-a (fort-floor-spike) + () + :method-count-assert 24 + :size-assert #xe8 + :flag-assert #x18007000e8 + (:methods + ) + ) +|# + +#| +(deftype fort-floor-spike-b (fort-floor-spike) + () + :method-count-assert 24 + :size-assert #xe8 + :flag-assert #x18007000e8 + (:methods + ) + ) +|# + +#| +(deftype fort-floor-spike-c (fort-floor-spike) + () + :method-count-assert 24 + :size-assert #xe8 + :flag-assert #x18007000e8 + (:methods + ) + ) +|# + +;; (define-extern joint-mod-set-y-callback object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; forrescb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype forrescb-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; forrescb-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fort-twist-rail (process-drawable) + ((sync sync-eased :inline :offset-assert 196) + (init-quat quaternion :inline :offset-assert 252) + ) + :method-count-assert 21 + :size-assert #x110 + :flag-assert #x1500900110 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype fort-elec-belt-inst (process-drawable) + ((l-spec basic :offset-assert 196) + (l-bolt basic :offset-assert 200) + (points UNKNOWN 17 :offset-assert 204) + (path-u float :offset-assert 476) + (path-du float :offset-assert 480) + (attack-id uint32 :offset-assert 484) + (sound-id uint32 :offset-assert 488) + ) + :method-count-assert 23 + :size-assert #x1f0 + :flag-assert #x17017001f0 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype fort-elec-belt (process) + ((l-spec basic :offset-assert 124) + (next-spawn-time uint64 :offset-assert 132) + (path basic :offset-assert 140) + (init-quat quaternion :inline :offset-assert 156) + (sync sync-linear :inline :offset-assert 172) + (attack-id uint32 :offset-assert 188) + (path-du float :offset-assert 192) + ) + :method-count-assert 16 + :size-assert #xc8 + :flag-assert #x10005000c8 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + ) + ) +|# + +#| +(deftype fort-conveyor (conveyor) + () + :method-count-assert 28 + :size-assert #x100 + :flag-assert #x1c00800100 + (:methods + ) + ) +|# + +;; (define-extern fort-elec-belt-inst-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spydroid ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype spydroid (nav-enemy) + ((old-y-deg float :offset-assert 600) + (diff-angle float :offset-assert 604) + (desire-turn basic :offset-assert 608) + (hit-target basic :offset-assert 612) + (lightning UNKNOWN 4 :offset-assert 616) + (floor float :offset-assert 632) + (explode-part basic :offset-assert 636) + ) + :method-count-assert 179 + :size-assert #x284 + :flag-assert #xb302100284 + (:methods + (dummy-178 () none 178) + ) + ) +|# + +;; (define-extern *spydroid-exploder-params* object) +;; (define-extern *spydroid-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; palent-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype palent-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern palent-deactivate object) +;; (define-extern palent-activate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pal-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pal-falling-plat (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype pal-ent-door (com-airlock) + () + :method-count-assert 28 + :size-assert #x174 + :flag-assert #x1c01000174 + (:methods + ) + ) +|# + +#| +(deftype pal-grind-ring-center (process-focusable) + ((speed-y float :offset-assert 200) + (hit-sound-played? basic :offset-assert 204) + ) + :method-count-assert 30 + :size-assert #xd4 + :flag-assert #x1e006000d4 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + ) + ) +|# + +#| +(deftype pal-grind-ring (process-focusable) + ((speed-y float :offset-assert 200) + (hit-sound-played? basic :offset-assert 204) + ) + :method-count-assert 30 + :size-assert #xd4 + :flag-assert #x1e006000d4 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + ) + ) +|# + +#| +(deftype pal-ent-glass (process-focusable) + () + :method-count-assert 31 + :size-assert #xcc + :flag-assert #x1f005000cc + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + ) + ) +|# + +#| +(deftype palent-turret-shot (guard-shot) + () + :method-count-assert 40 + :size-assert #x1f0 + :flag-assert #x28017001f0 + (:methods + ) + ) +|# + +#| +(deftype palent-turret (process-focusable) + ((next-shoot uint64 :offset-assert 204) + ) + :method-count-assert 29 + :size-assert #xd8 + :flag-assert #x1d006000d8 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + ) + ) +|# + +#| +(deftype pal-breakable-window (process-focusable) + () + :method-count-assert 31 + :size-assert #xcc + :flag-assert #x1f005000cc + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + ) + ) +|# + +;; (define-extern *pal-grind-ring-center-exploder-params* object) +;; (define-extern pal-grind-ring-center-init-by-other object) +;; (define-extern *pal-ent-glass-exploder-params* object) +;; (define-extern palent-turret-callback object) +;; (define-extern *pal-breakable-window-exploder-params* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; title-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype title-control (process) + () + :method-count-assert 18 + :size-assert #x15c + :flag-assert #x1200e0015c + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + ) + ) +|# + +;; (define-extern title-plug-lightning object) +;; (define-extern title-screen-change object) +;; (define-extern wait-for-press object) +;; (define-extern title-menu object) +;; (define-extern title-fade-out object) +;; (define-extern title-progress object) +;; (define-extern title-control-init object) +;; (define-extern target-title object) ;; (state target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mech-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern mech-spawn-thruster object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mech ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mech (process-drawable) + ((extra-trans vector :inline :offset-assert 204) + (condition int32 :offset-assert 220) + (shadow-backup basic :offset-assert 224) + (rider uint64 :offset-assert 228) + (shield-value float :offset-assert 236) + (nav-sphere-handle uint64 :offset-assert 244) + (probe-time uint64 :offset-assert 252) + ) + :method-count-assert 25 + :size-assert #x108 + :flag-assert #x1900900108 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + ) + ) +|# + +#| +(deftype mech-target (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +;; (define-extern mech-init object) +;; (define-extern mech-target-init object) +;; (define-extern mech-target-spawn object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-mech ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *mech-stance-mods* object) +;; (define-extern *mech-walk-mods* object) +;; (define-extern *mech-jump-mods* object) +;; (define-extern *mech-punch-mods* object) +;; (define-extern *mech-pickup-mods* object) +;; (define-extern *mech-carry-walk-mods* object) +;; (define-extern *mech-carry-drag-mods* object) +;; (define-extern *mech-carry-jump-mods* object) +;; (define-extern target-mech-falling-anim-trans object) +;; (define-extern target-mech-mech-effect object) +;; (define-extern mech-on-ground? object) +;; (define-extern target-mech-get-off? object) +;; (define-extern target-mech-handler object) +;; (define-extern target-mech-bonk-event-handler object) +;; (define-extern mech-leg-ik-callback object) +;; (define-extern mech-update-ik object) +;; (define-extern target-mech-init object) +;; (define-extern target-mech-exit object) +;; (define-extern target-mech-effect object) +;; (define-extern target-mech-add-thrust object) +;; (define-extern target-mech-collision object) +;; (define-extern target-mech-real-post object) +;; (define-extern target-mech-post object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mech-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *mech-exploder-params* object) +;; (define-extern target-mech-start object) +;; (define-extern target-mech-stance object) +;; (define-extern target-mech-walk object) +;; (define-extern target-mech-punch-pick object) +;; (define-extern target-mech-punch object) +;; (define-extern target-mech-falling object) +;; (define-extern target-mech-jump object) +;; (define-extern target-mech-hit-ground object) +;; (define-extern target-mech-hit object) +;; (define-extern target-mech-death object) +;; (define-extern target-mech-carry-update object) +;; (define-extern target-mech-carry-post object) +;; (define-extern target-mech-carry-pickup object) +;; (define-extern target-mech-carry-drop object) +;; (define-extern target-mech-carry-stance object) +;; (define-extern target-mech-carry-walk object) +;; (define-extern target-mech-carry-drag object) +;; (define-extern target-mech-carry-falling object) +;; (define-extern target-mech-carry-hit-ground object) +;; (define-extern target-mech-carry-jump object) +;; (define-extern target-mech-carry-throw object) +;; (define-extern target-mech-get-on object) +;; (define-extern target-mech-get-off object) +;; (define-extern target-mech-grab object) +;; (define-extern target-mech-clone-anim object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; grunt-mech ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype grunt-mech-hold (structure) + ((reserve-mask uint8 :offset-assert 0) + (lower-hold int8 :offset-assert 1) + (grunt-handle uint64 :offset-assert 8) + (timeout uint64 :offset-assert 16) + (local-pos vector :inline :offset-assert 32) + (local-rot vector :inline :offset-assert 48) + (local-mat matrix :inline :offset-assert 64) + (world-mat matrix :inline :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +#| +(deftype grunt-mech-info (basic) + ((reserved-mask uint8 :offset-assert 4) + (last-update-time uint64 :offset-assert 8) + (holds UNKNOWN 6 :offset-assert 16) + ) + :method-count-assert 11 + :size-assert #x490 + :flag-assert #xb00000490 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype grunt-mech (grunt) + ((hold-id int8 :offset-assert 688) + (dismount-dest vector :inline :offset-assert 700) + ) + :method-count-assert 196 + :size-assert #x2d0 + :flag-assert #xc4025002d0 + (:methods + (dummy-186 () none 186) + (dummy-187 () none 187) + (dummy-188 () none 188) + (dummy-189 () none 189) + (dummy-190 () none 190) + (dummy-191 () none 191) + (dummy-192 () none 192) + (dummy-193 () none 193) + (dummy-194 () none 194) + (dummy-195 () none 195) + ) + ) +|# + +;; (define-extern *grunt-mech-info* object) +;; (define-extern grunt-mech-hold-post object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; palcab-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype palcab-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern palcab-bird-bob-func object) +;; (define-extern sparticle-palcab-bird-moon object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; palcab-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pal-fan-ring (structure) + ((lightning basic :offset-assert 0) + (radius float :offset-assert 4) + (dist float :offset-assert 8) + (local-z-rotate float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype pal-fan-pole (structure) + ((rings UNKNOWN 6 :offset-assert 0) + (z-rotate float :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x64 + :flag-assert #x900000064 + ) +|# + +#| +(deftype pal-electric-fan (process-drawable) + ((poles UNKNOWN 3 :offset-assert 196) + (no-collision-timer uint64 :offset-assert 532) + (sound-timer uint64 :offset-assert 540) + (rotate-speed float :offset-assert 548) + (attack-id uint32 :offset-assert 552) + (sound-id uint32 :offset-assert 556) + ) + :method-count-assert 21 + :size-assert #x234 + :flag-assert #x1501c00234 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype pal-cable-nut (process-drawable) + ((sync sync-linear :inline :offset-assert 196) + (init-quat quaternion :inline :offset-assert 220) + (sound-played? UNKNOWN 2 :offset-assert 236) + (hold-percentage float :offset-assert 244) + (wiggle-percentage float :offset-assert 248) + ) + :method-count-assert 21 + :size-assert #x100 + :flag-assert #x1500800100 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype pal-rot-gun-shot (guard-shot) + () + :method-count-assert 40 + :size-assert #x1f0 + :flag-assert #x28017001f0 + (:methods + ) + ) +|# + +#| +(deftype pal-rot-gun (process-drawable) + ((init-quat quaternion :inline :offset-assert 204) + (fire-timer uint64 :offset-assert 220) + (gun-index int32 :offset-assert 228) + (spin-rate float :offset-assert 232) + (spin-rate-final float :offset-assert 236) + (sound-id uint32 :offset-assert 240) + (shot-sound-id uint32 :offset-assert 244) + (prev-z-rot float :offset-assert 248) + ) + :method-count-assert 24 + :size-assert #x100 + :flag-assert #x1800800100 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +#| +(deftype pal-windmill (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype pal-flip-step (process-drawable) + ((task-node basic :offset-assert 196) + ) + :method-count-assert 23 + :size-assert #xcc + :flag-assert #x17005000cc + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +;; (define-extern pal-rot-gun-shot-move object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; searchlight ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype searchlight (process-drawable) + ((sync sync-eased :inline :offset-assert 196) + ) + :method-count-assert 21 + :size-assert #xf4 + :flag-assert #x15008000f4 + (:methods + (dummy-20 () none 20) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; protect ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype seal-of-mar (process-drawable) + ((attach-object uint64 :offset-assert 196) + (scale float :offset-assert 204) + (trans-y float :offset-assert 208) + ) + :method-count-assert 24 + :size-assert #xd8 + :flag-assert #x18006000d8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +#| +(deftype city-slums-transport-info (structure) + ((id uint32 :offset-assert 0) + (spawned basic :offset-assert 4) + (plane-pos vector :inline :offset-assert 16) + (plane-quat quaternion :inline :offset-assert 32) + (t-pos vector :inline :offset-assert 48) + (t-quat quaternion :inline :offset-assert 64) + (num-guard uint32 :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x54 + :flag-assert #x900000054 + ) +|# + +;; (define-extern seal-of-mar-init-by-other object) +;; (define-extern seal-of-mar-spawn object) +;; (define-extern *city-slums-transport-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; forexita-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype forexita-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; forexita-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fort-lift-plat (plat) + ((sound-time uint64 :offset-assert 324) + (last-val float :offset-assert 332) + ) + :method-count-assert 38 + :size-assert #x154 + :flag-assert #x2600e00154 + (:methods + (dummy-37 () none 37) + ) + ) +|# + +#| +(deftype fort-claw (process-drawable) + ((path-u float :offset-assert 196) + (path-dest float :offset-assert 200) + ) + :method-count-assert 22 + :size-assert #xd0 + :flag-assert #x16005000d0 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; onintent-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype onintent-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern check-bubble-surface-onintent object) +;; (define-extern check-onintent-bugs object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; onintent-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; onin-game ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype onin-game-event (structure) + ((min-count uint16 :offset-assert 0) + (max-count uint16 :offset-assert 2) + (min-event uint16 :offset-assert 4) + (max-event uint16 :offset-assert 6) + (wave-delay uint16 :offset-assert 8) + (min-wave uint16 :offset-assert 10) + (max-wave uint16 :offset-assert 12) + (gravity meters :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype onin-game-bubble (process-drawable) + ((bubble-type int32 :offset-assert 196) + (bubble-start-time uint64 :offset-assert 204) + (gravity meters :offset-assert 212) + (dead? basic :offset-assert 216) + (angle float :offset-assert 220) + (height float :offset-assert 224) + ) + :method-count-assert 22 + :size-assert #xe8 + :flag-assert #x16007000e8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype onin-game (process-drawable) + ((wave int32 :offset-assert 196) + (event int32 :offset-assert 200) + (wave-time uint64 :offset-assert 204) + (wave-delay-time uint64 :offset-assert 212) + (wave-length uint64 :offset-assert 220) + (event-time uint64 :offset-assert 228) + (event-length uint64 :offset-assert 236) + (hud-score uint64 :offset-assert 244) + (hud-goal uint64 :offset-assert 252) + (hud-miss uint64 :offset-assert 260) + (score float :offset-assert 268) + (score-time uint64 :offset-assert 276) + (game uint32 :offset-assert 284) + (miss-max int32 :offset-assert 288) + (miss-count int32 :offset-assert 292) + (point-win float :offset-assert 296) + (game-start-time uint64 :offset-assert 300) + (last-type int32 :offset-assert 308) + (current-bonus float :offset-assert 312) + (last-angle float :offset-assert 316) + (wave-start-miss int32 :offset-assert 320) + ) + :method-count-assert 28 + :size-assert #x148 + :flag-assert #x1c00d00148 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + ) + ) +|# + +;; (define-extern *onin-game-data* object) +;; (define-extern birth-func-onin-bubble-pop object) +;; (define-extern birth-func-onin-bubble-birth-pop object) +;; (define-extern onin-game-bubble-init object) +;; (define-extern onin-game-init object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stadiumb-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *stadiumb-energy-wall-anim-array* object) +;; (define-extern set-stadiumb-energy-wall! object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stadium-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype stadium-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern check-drop-level-stadium-drop-userdata object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stadiumb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype stadiumb-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype stadiumc-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype stadiumd-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern race-birth-func-texture-lap-01 object) +;; (define-extern race-birth-func-texture-lap-02 object) +;; (define-extern race-birth-func-texture-position-01 object) +;; (define-extern race-birth-func-texture-position-02 object) +;; (define-extern race-birth-func-texture-position-word object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stadium-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype water-anim-stadium (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype dummy-vehicle (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gar-curtain (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype rift-rider (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype rift-rider-battle-info (UNKNOWN) + ((path-pos float :offset-assert 0) + (entity-index int32 :offset-assert 4) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype spotlight (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gar-door (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype stad-samos (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype stad-youngsamos (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype stadium-barrier (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype stad-force-field (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype stad-c-force-field (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype stad-d-force-field (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype stad-keira (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype stad-brutter (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype brutter-balloon (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern ripple-for-water-anim-stadium object) +;; (define-extern *rift-rider-physics-constants* object) +;; (define-extern *rift-rider-force-points* object) +;; (define-extern *rift-rider-battle-table* object) +;; (define-extern defend-stadium-rift-rider-handler object) +;; (define-extern rift-rider-travel-post object) +;; (define-extern rift-rider-bounce-reaction object) +;; (define-extern defend-stadium-wait object) +;; (define-extern *stad-nav-callback-info* object) +;; (define-extern *stad-samos-lightning-joint-tbl* object) +;; (define-extern stad-samos-post object) +;; (define-extern spawn-energy object) +;; (define-extern stad-samos-handler object) +;; (define-extern stadium-barrier-init-by-other object) +;; (define-extern stadium-barrier-spawn object) +;; (define-extern stad-keira-init-by-other object) +;; (define-extern stad-brutter-init-by-other object) +;; (define-extern *suppress-stadium* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stadium-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype keira-npc (process-taskable) + () + :method-count-assert 38 + :size-assert #x120 + :flag-assert #x2600a00120 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctygenc-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctygenc-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctymark-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype market-object (process-focusable) + ((part-explode basic :offset-assert 200) + (explode-matrix matrix :inline :offset-assert 204) + ) + :method-count-assert 29 + :size-assert #x110 + :flag-assert #x1d00900110 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + ) + ) +|# + +#| +(deftype market-basket-a (market-object) + () + :method-count-assert 29 + :size-assert #x110 + :flag-assert #x1d00900110 + (:methods + ) + ) +|# + +#| +(deftype market-basket-b (market-object) + () + :method-count-assert 29 + :size-assert #x110 + :flag-assert #x1d00900110 + (:methods + ) + ) +|# + +#| +(deftype market-crate (market-object) + () + :method-count-assert 29 + :size-assert #x110 + :flag-assert #x1d00900110 + (:methods + ) + ) +|# + +#| +(deftype market-sack-a (market-object) + () + :method-count-assert 29 + :size-assert #x110 + :flag-assert #x1d00900110 + (:methods + ) + ) +|# + +#| +(deftype market-sack-b (market-object) + () + :method-count-assert 29 + :size-assert #x110 + :flag-assert #x1d00900110 + (:methods + ) + ) +|# + +;; (define-extern check-market-piece-ground object) +;; (define-extern market-activate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctymarka-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctymarka-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctymarkb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctymarkb-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fordumpb-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fort-plat-orbit (process-drawable) + ((sync sync-linear :inline :offset-assert 196) + ) + :method-count-assert 21 + :size-assert #xd8 + :flag-assert #x15006000d8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype fort-plat-shuttle-plat (process-drawable) + ((path-pos float :offset-assert 196) + (path-speed float :offset-assert 200) + ) + :method-count-assert 21 + :size-assert #xd0 + :flag-assert #x15005000d0 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype fort-plat-shuttle (process-drawable) + ((next-spawn-time uint64 :offset-assert 196) + (sync sync-linear :inline :offset-assert 204) + ) + :method-count-assert 23 + :size-assert #xe0 + :flag-assert #x17006000e0 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype fort-conveyor (conveyor) + () + :method-count-assert 28 + :size-assert #x100 + :flag-assert #x1c00800100 + (:methods + ) + ) +|# + +;; (define-extern fort-plat-shuttle-plat-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fordumpb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fordumpb-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; skatea-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype skatea-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; skatea-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hoverboard-training-manager (process) + () + :method-count-assert 31 + :size-assert #x100 + :flag-assert #x1f00800100 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + ) + ) +|# + +#| +(deftype skate-training-ramp (process-focusable) + ((onoff basic :offset-assert 200) + ) + :method-count-assert 29 + :size-assert #xd0 + :flag-assert #x1d005000d0 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + ) + ) +|# + +#| +(deftype skate-gate (process-focusable) + ((onoff basic :offset-assert 200) + ) + :method-count-assert 30 + :size-assert #xd0 + :flag-assert #x1e005000d0 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + ) + ) +|# + +#| +(deftype skatea-jump-pad (bouncer) + () + :method-count-assert 25 + :size-assert #xd4 + :flag-assert #x19006000d4 + (:methods + ) + ) +|# + +#| +(deftype skatea-floating-ring (process-focusable) + ((pos-y float :offset-assert 200) + (offset float :offset-assert 204) + ) + :method-count-assert 29 + :size-assert #xd4 + :flag-assert #x1d006000d4 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + ) + ) +|# + +;; (define-extern trick-type-trick? object) +;; (define-extern hoverboard-training-manager-event-handler object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyinda-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctyinda-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyinda-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tomb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tomb-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tomb-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tomb-plat-wall (plat) + ((position vector :inline :offset-assert 332) + (last-pos float :offset-assert 348) + ) + :method-count-assert 37 + :size-assert #x164 + :flag-assert #x2500f00164 + (:methods + ) + ) +|# + +#| +(deftype tomb-stair-block-spikes (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype tomb-stair-block-spike-info (structure) + ((spike uint64 :offset-assert 0) + (joint int32 :offset-assert 8) + (y-offset float :offset-assert 12) + (up basic :offset-assert 16) + (sounded basic :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype tomb-stair-block (process-drawable) + ((initial-y float :offset-assert 196) + (spike-info UNKNOWN 4 :offset-assert 204) + (camera-state int32 :offset-assert 332) + (sink-sound uint32 :offset-assert 336) + (rise-sound uint32 :offset-assert 340) + ) + :method-count-assert 25 + :size-assert #x15c + :flag-assert #x1900e0015c + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + ) + ) +|# + +#| +(deftype tomb-bounce-web (bouncer) + () + :method-count-assert 25 + :size-assert #xd4 + :flag-assert #x19006000d4 + (:methods + ) + ) +|# + +#| +(deftype tomb-plat-pillar (plat) + () + :method-count-assert 37 + :size-assert #x144 + :flag-assert #x2500d00144 + (:methods + ) + ) +|# + +#| +(deftype tomb-elevator (elevator) + ((last-pos vector :inline :offset-assert 364) + (speed float :offset-assert 380) + ) + :method-count-assert 49 + :size-assert #x184 + :flag-assert #x3101100184 + (:methods + ) + ) +|# + +#| +(deftype tomb-boss-door (com-airlock) + () + :method-count-assert 28 + :size-assert #x174 + :flag-assert #x1c01000174 + (:methods + ) + ) +|# + +#| +(deftype water-anim-tomb (water-anim) + () + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + (:methods + ) + ) +|# + +#| +(deftype tomb-wing-door (com-airlock) + () + :method-count-assert 28 + :size-assert #x174 + :flag-assert #x1c01000174 + (:methods + ) + ) +|# + +#| +(deftype tomb-boulder-door (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype tomb-plat-return (base-plat) + ((intro-path basic :offset-assert 268) + (ride-timer uint64 :offset-assert 276) + (flags uint16 :offset-assert 284) + (path-pos float :offset-assert 288) + (dest-pos float :offset-assert 292) + (path-speed float :offset-assert 296) + (sound-id uint32 :offset-assert 300) + ) + :method-count-assert 39 + :size-assert #x134 + :flag-assert #x2700c00134 + (:methods + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + ) + ) +|# + +#| +(deftype tomb-sphinx (process-drawable) + ((target-actor basic :offset-assert 196) + (sound-id uint32 :offset-assert 200) + (move-dir float :offset-assert 212) + ) + :method-count-assert 23 + :size-assert #xdc + :flag-assert #x17006000dc + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +;; (define-extern tomb-stair-block-collision object) +;; (define-extern tomb-stair-block-spikes-init-by-other object) +;; (define-extern lift-pool object) +;; (define-extern drop-pool object) +;; (define-extern position-spikes object) +;; (define-extern ripple-for-water-anim-tomb object) +;; (define-extern tomb-sphinx-draw-beam object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tomb-water ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tomb-door (process-drawable) + ((notify-actor basic :offset-assert 196) + (round uint32 :offset-assert 200) + ) + :method-count-assert 22 + :size-assert #xd0 + :flag-assert #x16005000d0 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype tomb-beetle-door (process-drawable) + () + :method-count-assert 22 + :size-assert #x128 + :flag-assert #x1600b00128 + ;; Failed to read fields. + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype tomb-button (basebutton) + () + :method-count-assert 39 + :size-assert #x120 + :flag-assert #x2700a00120 + (:methods + ) + ) +|# + +#| +(deftype tomb-beetle-button (tomb-button) + ((round uint32 :offset-assert 284) + (speech-mask uint32 :offset-assert 288) + (speech-timer uint64 :offset-assert 292) + ) + :method-count-assert 40 + :size-assert #x130 + :flag-assert #x2800b00130 + (:methods + (dummy-39 () none 39) + ) + ) +|# + +#| +(deftype tomb-simon-block (base-plat) + ((sound-show uint128 :offset-assert 268) + (color vector :inline :offset-assert 284) + (my-idx int32 :offset-assert 300) + (next-idx int32 :offset-assert 304) + (flags uint16 :offset-assert 308) + (blink-timer UNKNOWN 2 :offset-assert 316) + (ride-timer uint64 :offset-assert 332) + (order int32 :offset-assert 340) + (base-height float :offset-assert 344) + (move-rate float :offset-assert 348) + ) + :method-count-assert 42 + :size-assert #x164 + :flag-assert #x2a00f00164 + (:methods + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + (dummy-40 () none 40) + (dummy-41 () none 41) + ) + ) +|# + +#| +(deftype tomb-plat-simon (process-drawable) + ((plat basic :offset-assert 196) + (plat-seq uint32 :offset-assert 200) + (plat-count int32 :offset-assert 204) + (plat-seq-count int32 :offset-assert 208) + (plat-idx int32 :offset-assert 212) + (button-handle uint64 :offset-assert 220) + (notify-actor basic :offset-assert 228) + (flags uint16 :offset-assert 232) + ) + :method-count-assert 25 + :size-assert #xee + :flag-assert #x19007000ee + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + ) + ) +|# + +#| +(deftype tomb-simon-button (process-drawable) + ((notify-actor basic :offset-assert 196) + (on-notice basic :offset-assert 200) + (on-activate basic :offset-assert 204) + ) + :method-count-assert 25 + :size-assert #xd4 + :flag-assert #x19006000d4 + ;; field on-notice uses ~A with a signed load field on-activate uses ~A with a signed load + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + ) + ) +|# + +#| +(deftype tomb-vibe (process-drawable) + () + :method-count-assert 24 + :size-assert #x110 + :flag-assert #x1800900110 + ;; Failed to read fields. + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +#| +(deftype tomb-water-trap (process-drawable) + ((bbox bounding-box :inline :offset-assert 204) + (run-bbox bounding-box :inline :offset-assert 236) + (sync sync-linear :inline :offset-assert 268) + (on-duration uint64 :offset-assert 284) + (harmless-time uint64 :offset-assert 292) + (l-spec basic :offset-assert 300) + (l-count uint32 :offset-assert 304) + (l-index basic :offset-assert 308) + (attack-id uint32 :offset-assert 312) + (volume float :offset-assert 316) + (can-exit-running? basic :offset-assert 320) + ) + :method-count-assert 25 + :size-assert #x148 + :flag-assert #x1900d00148 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + ) + ) +|# + +#| +(deftype tomb-smash-door (process-drawable) + ((timeout uint64 :offset-assert 196) + (button uint64 :offset-assert 204) + ) + :method-count-assert 23 + :size-assert #xd8 + :flag-assert #x17006000d8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +;; (define-extern tomb-beetle-door-offsets object) +;; (define-extern *tomb-simon-sound-tbl* object) +;; (define-extern *tomb-simon-color-tbl* object) +;; (define-extern tomb-plat-simon-handler object) +;; (define-extern simon-block-handler object) +;; (define-extern tomb-simon-block-post object) +;; (define-extern tomb-simon-block-trans object) +;; (define-extern tomb-simon-block-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tomb-beetle ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tomb-beetle-fly-info (structure) + ((dst vector :inline :offset-assert 0) + (dst-quat quaternion :inline :offset-assert 16) + (dist meters :offset-assert 32) + (threshold meters :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype tomb-beetle (nav-enemy) + ((src-quat quaternion :inline :offset-assert 604) + (fly-info UNKNOWN 2 :offset-assert 620) + (speed meters :offset-assert 716) + (init-height meters :offset-assert 720) + (flags uint16 :offset-assert 724) + (dest-index int32 :offset-assert 728) + (round uint32 :offset-assert 732) + (flying? basic :offset-assert 736) + (fly-away-radius float :offset-assert 740) + (fly-away-ry float :offset-assert 744) + (fly-away-ry-speed float :offset-assert 748) + (fly-away-acc float :offset-assert 752) + (fly-away-dir vector :inline :offset-assert 764) + ) + :method-count-assert 186 + :size-assert #x310 + :flag-assert #xba02900310 + (:methods + (dummy-178 () none 178) + (dummy-179 () none 179) + (dummy-180 () none 180) + (dummy-181 () none 181) + (dummy-182 () none 182) + (dummy-183 () none 183) + (dummy-184 () none 184) + (dummy-185 () none 185) + ) + ) +|# + +;; (define-extern *tomb-beetle-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; widow-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern birth-func-boss-pebble object) +;; (define-extern check-drop-level-boss-pebble object) +;; (define-extern func-widow-damaged-sparks-awake object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; widow-baron ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype widow-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) + (bounce-high float :offset-assert 24) + ) + :method-count-assert 13 + :size-assert #x1c + :flag-assert #xd0000001c + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + ) + ) +|# + +#| +(deftype widow-rand-vector (structure) + ((min-time int32 :offset-assert 0) + (max-time int32 :offset-assert 4) + (xz-max float :offset-assert 8) + (y-max float :offset-assert 12) + (timer int32 :offset-assert 16) + (value vector :inline :offset-assert 32) + ) + :method-count-assert 11 + :size-assert #x30 + :flag-assert #xb00000030 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype widow-oscillator (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) + (damping float :offset-assert 56) + ) + :method-count-assert 11 + :size-assert #x3c + :flag-assert #xb0000003c + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype widow-shot (guard-shot) + () + :method-count-assert 40 + :size-assert #x1f0 + :flag-assert #x28017001f0 + (:methods + ) + ) +|# + +#| +(deftype widow (process-drawable) + ((bomb UNKNOWN 8 :offset-assert 196) + (next-launch int32 :offset-assert 260) + (launch-dest vector :inline :offset-assert 268) + (next-jumper int32 :offset-assert 284) + (ammos UNKNOWN 2 :offset-assert 292) + (ammo-timers UNKNOWN 2 :offset-assert 308) + (bomb-hits int32 :offset-assert 324) + (circle-center vector :inline :offset-assert 332) + (theta cam-float-seeker :inline :offset-assert 348) + (traj trajectory :inline :offset-assert 380) + (osc widow-oscillator :inline :offset-assert 428) + (noise-osc widow-oscillator :inline :offset-assert 492) + (rand-vec widow-rand-vector :inline :offset-assert 556) + (attack-from-high-deg basic :offset-assert 604) + (which-gun int32 :offset-assert 608) + (which-pod int32 :offset-assert 612) + (left-cover-angle widow-float-seeker :inline :offset-assert 616) + (right-cover-angle widow-float-seeker :inline :offset-assert 644) + (left-cover-jm basic :offset-assert 672) + (right-cover-jm basic :offset-assert 676) + (drill-speed cam-float-seeker :inline :offset-assert 680) + (drill-angle float :offset-assert 704) + (left-drill-jm basic :offset-assert 708) + (right-drill-jm basic :offset-assert 712) + (flying basic :offset-assert 716) + (previous-anim int32 :offset-assert 720) + (launched-a-bomb basic :offset-assert 724) + (old-bomb-hits int32 :offset-assert 728) + (catwalk UNKNOWN 8 :offset-assert 732) + (heart uint64 :offset-assert 796) + (pod uint64 :offset-assert 804) + (baron uint32 :offset-assert 812) + (drill-spark-part basic :offset-assert 816) + (drill-spark-part-alt basic :offset-assert 820) + (extract-stone-time uint64 :offset-assert 828) + (extract-stone-part basic :offset-assert 836) + (insert-stone-time uint64 :offset-assert 844) + (insert-stone-part basic :offset-assert 852) + (land-part basic :offset-assert 856) + (green-charge-part basic :offset-assert 860) + (green-fire-part basic :offset-assert 864) + (lightning UNKNOWN 5 :offset-assert 868) + (stop-catwalk-sound basic :offset-assert 888) + (catwalk-sound uint32 :offset-assert 892) + (drill-sound uint32 :offset-assert 896) + (drill-sound-playing basic :offset-assert 900) + (drill-sweeten-sound uint32 :offset-assert 904) + (drill-sweeten-sound-playing basic :offset-assert 908) + (movie-handle uint64 :offset-assert 916) + (tilt cam-float-seeker :inline :offset-assert 924) + (targetted-catwalk int32 :offset-assert 948) + (hover-sound uint32 :offset-assert 952) + (hover-sound-playing basic :offset-assert 956) + (shake-sound uint32 :offset-assert 960) + (shake-sound-playing basic :offset-assert 964) + (hud uint64 :offset-assert 972) + (last-want-stone-talker int8 :offset-assert 980) + (last-general-flying-talker int8 :offset-assert 981) + (last-launch-droids-talker int8 :offset-assert 982) + (last-launch-bombs-talker int8 :offset-assert 983) + (last-shoot-gun-talker int8 :offset-assert 984) + (last-stone-charge-up-talker int8 :offset-assert 985) + (last-after-stone-shot-talker int8 :offset-assert 986) + (last-leave-perch-talker int8 :offset-assert 987) + (last-damaged-talker int8 :offset-assert 988) + (kicked-bombs int8 :offset-assert 989) + (launch-stages-completed int8 :offset-assert 990) + (current-shoot-stage int16 :offset-assert 992) + (last-gun-hit-stage int16 :offset-assert 994) + (gun-hits int16 :offset-assert 996) + (last-attack-id uint32 :offset-assert 1000) + ) + :method-count-assert 47 + :size-assert #x3f0 + :flag-assert #x2f037003f0 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + (dummy-40 () none 40) + (dummy-41 () none 41) + (dummy-42 () none 42) + (dummy-43 () none 43) + (dummy-44 () none 44) + (dummy-45 () none 45) + (dummy-46 () none 46) + ) + ) +|# + +#| +(deftype baron-pod (process-drawable) + ((red-tip-change-time uint64 :offset-assert 196) + (alt-red-tip-on basic :offset-assert 204) + (blink-time uint64 :offset-assert 212) + (blink-mask int32 :offset-assert 220) + (has-stone basic :offset-assert 224) + ) + :method-count-assert 22 + :size-assert #xe8 + :flag-assert #x16007000e8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype tomb-boss-bridge (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +;; (define-extern baron-pod-init-by-other object) +;; (define-extern widow-want-stone-talker object) +;; (define-extern widow-general-flying-talker object) +;; (define-extern widow-launch-droids-talker object) +;; (define-extern widow-launch-bombs-talker object) +;; (define-extern widow-shoot-gun-talker object) +;; (define-extern widow-stone-charge-up-talker object) +;; (define-extern widow-after-stone-shot-talker object) +;; (define-extern widow-leave-perch-talker object) +;; (define-extern widow-damaged-talker object) +;; (define-extern widow-handler object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; widow-extras ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tomb-boss-catwalk (process-drawable) + ((which-look int32 :offset-assert 196) + ) + :method-count-assert 23 + :size-assert #xcc + :flag-assert #x17005000cc + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype tomb-boss-catwalk-main (tomb-boss-catwalk) + () + :method-count-assert 23 + :size-assert #xcc + :flag-assert #x17005000cc + (:methods + ) + ) +|# + +#| +(deftype widow-bomb (process-focusable) + ((traj trajectory :inline :offset-assert 204) + (explode-part basic :offset-assert 244) + (trail-part basic :offset-assert 248) + (warning-glow-part basic :offset-assert 252) + (warning-spark-part basic :offset-assert 256) + (impact impact-control :inline :offset-assert 268) + (which-trajectory int32 :offset-assert 348) + (next-countdown-tick uint64 :offset-assert 356) + (skid-part basic :offset-assert 364) + (x-rotate float :offset-assert 368) + (y-rotate float :offset-assert 372) + (spin-jm basic :offset-assert 376) + (firework-sound-played basic :offset-assert 380) + (steam-sound uint32 :offset-assert 384) + (launch vector :inline :offset-assert 396) + (launch-pos vector :inline :offset-assert 412) + (fizzle-timer uint64 :offset-assert 428) + ) + :method-count-assert 35 + :size-assert #x1b8 + :flag-assert #x23014001b8 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + ) + ) +|# + +#| +(deftype heart-mar (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype tomb-boss-pillar (process-drawable) + ((explode-part basic :offset-assert 196) + (segs-shot int32 :offset-assert 200) + (last-pillar-hit uint64 :offset-assert 204) + ) + :method-count-assert 23 + :size-assert #xd8 + :flag-assert #x17006000d8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype tomb-boss-firepot (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +;; (define-extern tomb-boss-catwalk-init-by-other object) +;; (define-extern widow-bomb-handler object) +;; (define-extern widow-bomb-back-handler object) +;; (define-extern widow-bomb-reaction object) +;; (define-extern widow-bomb-init-by-other object) +;; (define-extern heart-mar-init-by-other object) +;; (define-extern damage-pillar object) +;; (define-extern tomb-boss-pillar-shrink-collision object) +;; (define-extern tomb-boss-firepot-shrink-collision object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; widow-more-extras ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tomb-boss-debris (process-drawable) + ((y-velocity float :offset-assert 196) + (floor float :offset-assert 200) + (sound-floor float :offset-assert 204) + (rot quaternion :inline :offset-assert 220) + (look int32 :offset-assert 236) + ) + :method-count-assert 22 + :size-assert #xf4 + :flag-assert #x16008000f4 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype cave-in-master (process-drawable) + ((prev-points UNKNOWN 100 :offset-assert 196) + ) + :method-count-assert 22 + :size-assert #x258 + :flag-assert #x1601e00258 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +;; (define-extern tomb-boss-debris-init-by-other object) +;; (define-extern cavein-get-random-point object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; widow ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern widow-common object) +;; (define-extern widow-calc-position object) +;; (define-extern widow-calc-target-position object) +;; (define-extern widow-calc-root-from-osc object) +;; (define-extern widow-next-pod object) +;; (define-extern widow-pod-position object) +;; (define-extern spydroid-setup object) +;; (define-extern widow-bomb-setup object) +;; (define-extern spydroid-launch object) +;; (define-extern widow-bomb-launch object) +;; (define-extern widow-give-ammo object) +;; (define-extern widow-bomb-slots-full object) +;; (define-extern widow-debug object) +;; (define-extern widow-cleanup-launch-anim object) +;; (define-extern widow-last-bomb-anim object) +;; (define-extern widow-flying-anim object) +;; (define-extern widow-kaboom-check object) +;; (define-extern hover-seek-under-stage-3 object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; widow2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; monster-frog ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype monster-frog (nav-enemy) + () + :method-count-assert 181 + :size-assert #x25c + :flag-assert #xb501e0025c + (:methods + (dummy-178 () none 178) + (dummy-179 () none 179) + (dummy-180 () none 180) + ) + ) +|# + +;; (define-extern *monster-frog-nav-enemy-info* object) +;; (define-extern monster-frog-hop-slow-code object) +;; (define-extern monster-frog-hop-fast-code object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tomb-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern attach-pod-part object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; com-elevator ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype com-elevator (elevator) + ((camera-startup UNKNOWN 2 :offset-assert 364) + (use-camera-startup? UNKNOWN 2 :offset-assert 396) + (sound-id uint32 :offset-assert 404) + ) + :method-count-assert 50 + :size-assert #x19c + :flag-assert #x320120019c + (:methods + (dummy-49 () none 49) + ) + ) +|# + +#| +(deftype tomb-trans-elevator (com-elevator) + () + :method-count-assert 50 + :size-assert #x1a0 + :flag-assert #x32012001a0 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; palshaft-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype palshaft-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern palshaft-deactivate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-bbush ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype race-ring (process-drawable) + ((last-target-pos vector :inline :offset-assert 204) + (keep-part-track-alive symbol :offset-assert 220) ;; guessed by decompiler + (part-track uint64 :offset-assert 228) ;; handle + (rot-y float :offset-assert 236) + (cyl cylinder-flat :inline :offset-assert 252) + ) + :method-count-assert 24 + :size-assert #x128 + :flag-assert #x1800b00128 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +#| +(deftype bb-ring-info (structure) + ((time uint64 :offset-assert 0) + (start-pos vector :inline :offset-assert 16) + (rotation float :offset-assert 32) + (rings basic :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype bush-collect (process-drawable) + ((minimap connection-minimap :offset-assert 196) + (trans-y float :offset-assert 200) + (beep-time float :offset-assert 204) + ) + :method-count-assert 24 + :size-assert #xd4 + :flag-assert #x18006000d4 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +#| +(deftype burning-bush-collection-info (structure) + ((pos vector :inline :offset-assert 0) + (handle uint64 :offset-assert 16) + (minimap connection-minimap :offset-assert 24) + ) + :method-count-assert 10 + :size-assert #x1c + :flag-assert #xa0000001c + (:methods + (dummy-9 () none 9) + ) + ) +|# + +#| +(deftype bb-collection-info (structure) + ((user-data uint32 :offset-assert 0) + (time uint64 :offset-assert 8) + (colls basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype burning-bush-get-on-info (structure) + ((trans vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + (camera-trans vector :inline :offset-assert 32) + (camera-rot UNKNOWN 9 :offset-assert 48) + (time float :offset-assert 84) + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +;; (define-extern race-ring-set-particle-rotation-callback object) ;; (function part-tracker none) +;; (define-extern race-ring-init-by-other object) +;; (define-extern race-ring-spawn object) +;; (define-extern *bb-ring-info* object) +;; (define-extern *city-race-ring-edit-info* object) +;; (define-extern bush-collect-init-by-other object) +;; (define-extern bush-collect-dark-eco-init-by-other object) +;; (define-extern bush-collect-homing-beacon-init-by-other object) +;; (define-extern bush-collect-spawn object) +;; (define-extern bush-collect-homing-beacon-spawn object) +;; (define-extern bush-collect-dark-eco-spawn object) +;; (define-extern *bb-collection-info* object) +;; (define-extern *city-bb-collection-edit-info* object) +;; (define-extern *burning-bush-get-on-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; delivery-task ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype krew-package (process-drawable) + ((attach-object uint64 :offset-assert 196) + (scale float :offset-assert 204) + ) + :method-count-assert 24 + :size-assert #xd4 + :flag-assert #x18006000d4 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +;; (define-extern krew-package-init-by-other object) +;; (define-extern krew-package-spawn object) +;; (define-extern delivery-task-setup-ambush-1 object) +;; (define-extern delivery-task-setup-ambush-2 object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; portrun ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype city-port-run-mine-info (structure) + ((handle uint64 :offset-assert 0) + (pos1-x float :offset-assert 8) + (pos1-y float :offset-assert 12) + (pos1-z float :offset-assert 16) + (type uint32 :offset-assert 20) + (pos2-x float :offset-assert 24) + (pos2-y float :offset-assert 28) + (pos2-z float :offset-assert 32) + (speed float :offset-assert 36) + (offset float :offset-assert 40) + (center-x float :offset-assert 8) + (center-y float :offset-assert 12) + (center-z float :offset-assert 16) + (radius float :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype ctyport-mine (process-drawable) + ((info city-port-run-mine-info :offset-assert 196) + (base-height float :offset-assert 200) + (center vector :inline :offset-assert 204) + (time-skew uint64 :offset-assert 220) + (period float :offset-assert 228) + (trans-y float :offset-assert 232) + (speed-y float :offset-assert 236) + (acc-y float :offset-assert 240) + (beep basic :offset-assert 244) + (beep-time uint64 :offset-assert 252) + (beep-color vector :inline :offset-assert 268) + ) + :method-count-assert 24 + :size-assert #x120 + :flag-assert #x1800a00120 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +#| +(deftype ctyport-spy (process-drawable) + ((trans-y float :offset-assert 196) + ) + :method-count-assert 21 + :size-assert #xcc + :flag-assert #x15005000cc + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype ctyport-cargo (process-focusable) + ((minimap connection-minimap :offset-assert 200) + (trans-y float :offset-assert 204) + (speed-y float :offset-assert 208) + ) + :method-count-assert 31 + :size-assert #xd8 + :flag-assert #x1f006000d8 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + ) + ) +|# + +#| +(deftype city-port-run-cargo-info (structure) + ((pos vector :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern check-cargo-piece-ground object) +;; (define-extern *city-port-run-mine-info* object) +;; (define-extern ctyport-mine-init-by-other object) +;; (define-extern ctyport-mine-spawn object) +;; (define-extern ctyport-spy-init-by-other object) +;; (define-extern ctyport-spy-spawn object) +;; (define-extern *city-port-position* object) +;; (define-extern *ctyport-cargo-exploder-params* object) +;; (define-extern ctyport-cargo-init-by-other object) +;; (define-extern ctyport-cargo-spawn object) +;; (define-extern *city-port-run-cargo-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctygenb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctygenb-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; helldog ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype helldog (hellcat) + ((current-level basic :offset-assert 1076) + ) + :method-count-assert 159 + :size-assert #x43c + :flag-assert #x9f03c0043c + (:methods + ) + ) +|# + +;; (define-extern *helldog-constants* object) +;; (define-extern *helldog-front-turret-control-info* object) +;; (define-extern *helldog-top-turret-control-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-dummy ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tpath-control-frame (UNKNOWN) + ((time float :offset-assert 0) + (path-pos uint8 :offset-assert 4) + (command uint8 :offset-assert 5) + (move-type uint8 :offset-assert 6) + (path-num uint8 :offset-assert 7) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype tpath-info (UNKNOWN) + ((s-time float :offset-assert 0) + (num uint16 :offset-assert 4) + (ref-time-num int16 :offset-assert 6) + (score int16 :offset-assert 8) + (flags uint8 :offset-assert 10) + (num-anims uint8 :offset-assert 11) + (bonus-time float :offset-assert 12) + (list basic :offset-assert 16) + (anims UNKNOWN 3 :offset-assert 20) + (anim1 uint32 :offset-assert 20) + (anim2 uint32 :offset-assert 24) + (anim3 uint32 :offset-assert 28) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype gun-dummy (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gun-dummy-a (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gun-dummy-b (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gun-dummy-c (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gun-dummy-big (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gun-dummy-gold (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gun-dummy-peace (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gun-cit-a (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gun-cit-b (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gun-cit-c (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gun-cit-d (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern check-gungame-piece-ground object) +;; (define-extern *tpath-rand* object) +;; (define-extern *gun-dummy-a-exploder-params* object) +;; (define-extern *gun-dummy-b-exploder-params* object) +;; (define-extern *gun-dummy-c-exploder-params* object) +;; (define-extern *gun-dummy-big-exploder-params* object) +;; (define-extern *gun-dummy-gold-exploder-params* object) +;; (define-extern *gun-dummy-peace-exploder-params* object) +;; (define-extern *gun-cit-a-exploder-params* object) +;; (define-extern *gun-cit-b-exploder-params* object) +;; (define-extern *gun-cit-c-exploder-params* object) +;; (define-extern *gun-cit-d-exploder-params* object) +;; (define-extern gun-dummy-init-by-other object) +;; (define-extern gun-dummy-a-init-by-other object) +;; (define-extern gun-dummy-b-init-by-other object) +;; (define-extern gun-dummy-c-init-by-other object) +;; (define-extern gun-dummy-big-init-by-other object) +;; (define-extern gun-dummy-gold-init-by-other object) +;; (define-extern gun-dummy-peace-init-by-other object) +;; (define-extern gun-cit-a-init-by-other object) +;; (define-extern gun-cit-b-init-by-other object) +;; (define-extern gun-cit-c-init-by-other object) +;; (define-extern gun-cit-d-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gungame-data ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gungame-crate (UNKNOWN) + ((pos vector :inline :offset-assert 0) + (pos-x float :offset-assert 0) + (pos-y float :offset-assert 4) + (pos-z float :offset-assert 8) + (angle float :offset-assert 12) + (ammo int32 :offset-assert 16) + (num uint32 :offset-assert 20) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern *entrance-gungame-crates-pos* object) +;; (define-extern *gungame-red-crates-pos* object) +;; (define-extern *gungame-yellow-crates-pos* object) +;; (define-extern *gungame-blue-crates-pos* object) +;; (define-extern *gungame-peace-crates-pos* object) +;; (define-extern *red-training-path-global-info* object) +;; (define-extern *yellow-training-path-global-info* object) +;; (define-extern *blue-training-path-global-info* object) +;; (define-extern *peace-training-path-global-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gungame-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype training-path (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype training-manager (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype gungame-door (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern yellow-training object) +;; (define-extern *yellow-training-path-combo-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gungame-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gungame-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mincan-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype water-anim-mincan (water-anim) + () + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + (:methods + ) + ) +|# + +#| +(deftype mincan-lighthouse-lens (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype mincan-lighthouse (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype mincan-lens (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype mincan-cogs (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +;; (define-extern ripple-for-water-anim-mincan object) +;; (define-extern mincan-lighthouse-lens-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; canyon-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern canyon-draw-beam object) +;; (define-extern canyon-draw-beam-lens object) +;; (define-extern canyon-draw-beam-statue object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vinroom-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vinroom-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern birth-func-vinroom-sphere object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vinroom-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vin-npc (process-taskable) + () + :method-count-assert 38 + :size-assert #x120 + :flag-assert #x2600a00120 + (:methods + ) + ) +|# + +;; (define-extern check-drop-level-vinroom-piss-drop-userdata object) +;; (define-extern vin-rescue-yellow-shot object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vinroom-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vin-turbine (process-drawable) + ((dont-draw-outside? basic :offset-assert 196) + (lightning-timer uint64 :offset-assert 204) + (outside-plane plane :inline :offset-assert 220) + (lightning-plane plane :inline :offset-assert 236) + ) + :method-count-assert 22 + :size-assert #x100 + :flag-assert #x1600800100 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype vin-door (com-airlock) + () + :method-count-assert 28 + :size-assert #x174 + :flag-assert #x1c01000174 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctygena-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctygena-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype citytest-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; neon-praxis-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype city-neon-praxis (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern *praxis* object) +;; (define-extern *praxis-backing* object) +;; (define-extern *city-neon-praxis-group-ids* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctypal-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctypal-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern check-drop-level-ctypal-drop-userdata object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctypal-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype water-anim-ctypal (water-anim) + () + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + (:methods + ) + ) +|# + +#| +(deftype palace-door (com-airlock) + () + :method-count-assert 28 + :size-assert #x174 + :flag-assert #x1c01000174 + (:methods + ) + ) +|# + +#| +(deftype ctypal-broke-wall (process-drawable) + ((ent basic :offset-assert 196) + ) + :method-count-assert 22 + :size-assert #xcc + :flag-assert #x16005000cc + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype ctypal-baron-statue-broken (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +;; (define-extern ripple-for-water-anim-ctypal object) +;; (define-extern ripple-ctypal-smlground-pool object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; under-shoot-block ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype under-block-spawner (basic) + ((col int8 :offset-assert 4) + (row int8 :offset-assert 5) + (active-handle uint64 :offset-assert 8) + (waiting-handle uint64 :offset-assert 16) + (exploded-time uint64 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype under-block-slot (basic) + ((col int8 :offset-assert 4) + (row int8 :offset-assert 5) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype under-block-puzzle (basic) + ((auto-unlock? basic :offset-assert 4) + (cells-wide int8 :offset-assert 8) + (cells-tall int8 :offset-assert 9) + (last-block-id int8 :offset-assert 10) + (slot-mask uint8 :offset-assert 11) + (slot-mask-full uint8 :offset-assert 12) + (prev-special-attack-id uint32 :offset-assert 16) + (orient-ry float :offset-assert 20) + (spawners basic :offset-assert 24) + (slots basic :offset-assert 28) + (cells uint32 :offset-assert 32) + (pulse-ops uint32 :offset-assert 36) + (origin vector :inline :offset-assert 48) + (local-to-world matrix :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype under-block (process-focusable) + ((puzzle basic :offset-assert 200) + (my-parent uint32 :offset-assert 204) + (prev-attack-id uint32 :offset-assert 208) + (spawner-id int8 :offset-assert 212) + (my-id int8 :offset-assert 213) + (col int8 :offset-assert 214) + (row int8 :offset-assert 215) + (prev-col int8 :offset-assert 216) + (prev-row int8 :offset-assert 217) + (move-dir-x int8 :offset-assert 218) + (move-dir-z int8 :offset-assert 219) + (pulse-op int8 :offset-assert 220) + (pulse-pc int8 :offset-assert 221) + (pulse-ctr int8 :offset-assert 222) + (flags uint64 :offset-assert 228) + (activated-time uint64 :offset-assert 236) + (rot-axis vector :inline :offset-assert 252) + (away-from-focal-pt vector :inline :offset-assert 268) + ) + :method-count-assert 51 + :size-assert #x120 + :flag-assert #x3300a00120 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + (dummy-40 () none 40) + (dummy-41 () none 41) + (dummy-42 () none 42) + (dummy-43 () none 43) + (dummy-44 () none 44) + (dummy-45 () none 45) + (dummy-46 () none 46) + (dummy-47 () none 47) + (dummy-48 () none 48) + (dummy-49 () none 49) + (dummy-50 () none 50) + ) + ) +|# + +#| +(deftype under-shoot-block (process-drawable) + ((puzzle basic :offset-assert 196) + (actor-group uint32 :offset-assert 200) + (allow-unlock? basic :offset-assert 204) + ) + :method-count-assert 29 + :size-assert #xe0 + :flag-assert #x1d006000e0 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + ) + ) +|# + +;; (define-extern *under-block-puzzles* object) +;; (define-extern *under-shoot-block-exploder-params* object) +;; (define-extern under-block-event-handler object) +;; (define-extern cshape-reaction-under-block object) +;; (define-extern under-block-init-by-other object) +;; (define-extern under-shoot-block-event-handler object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; underb-master ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype under-warp (process-drawable) + ((interp float :offset-assert 196) + ) + :method-count-assert 23 + :size-assert #xcc + :flag-assert #x17005000cc + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype underb-master (process) + ((warp-handle uint64 :offset-assert 124) + (tank-handle uint64 :offset-assert 132) + (underwater-time uint64 :offset-assert 140) + (last-air-beep-time uint64 :offset-assert 148) + (ambient-sound-id uint32 :offset-assert 156) + (air-supply float :offset-assert 160) + (air-charge-up? basic :offset-assert 164) + (under-water-pitch-mod float :offset-assert 168) + (big-room-entered basic :offset-assert 172) + (big-room-timer uint64 :offset-assert 180) + (under-plat-player-on basic :offset-assert 188) + (under-plat-is-up basic :offset-assert 192) + ) + :method-count-assert 24 + :size-assert #xc8 + :flag-assert #x18005000c8 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +#| +(deftype under-locking (process-drawable) + ((id int8 :offset-assert 196) + (up-y float :offset-assert 200) + (down-y float :offset-assert 204) + (mode uint64 :offset-assert 212) + (which-reminder? basic :offset-assert 220) + (spooled-sound-id uint32 :offset-assert 224) + (draining-part basic :offset-assert 228) + (actor-group uint32 :offset-assert 232) + (spooled-sound-delay int32 :offset-assert 236) + (last-reminder-time uint64 :offset-assert 252) + ) + :method-count-assert 24 + :size-assert #x108 + :flag-assert #x1800900108 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + +#| +(deftype water-anim-under (water-anim) + () + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + (:methods + ) + ) +|# + +;; (define-extern under-warp-init-by-other object) +;; (define-extern *underb-master* object) +;; (define-extern underb-master-event-handler object) +;; (define-extern underb-master-post object) +;; (define-extern underb-master-init-by-other object) +;; (define-extern underb-login object) +;; (define-extern underb-deactivate object) +;; (define-extern underb-activate object) +;; (define-extern ripple-for-water-anim-under object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; under-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bubbler (process-drawable) + ((rod-of-god-scale float :offset-assert 196) + (ambient-id uint32 :offset-assert 200) + (last-recharge-time uint64 :offset-assert 204) + ) + :method-count-assert 22 + :size-assert #xd8 + :flag-assert #x16006000d8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype under-rise-plat (process-drawable) + ((up-y float :offset-assert 196) + (down-y float :offset-assert 200) + (delta-y float :offset-assert 204) + (up-threshold float :offset-assert 208) + (down-threshold float :offset-assert 212) + (last-ridden uint64 :offset-assert 220) + (ridden basic :offset-assert 228) + (rider-started basic :offset-assert 232) + (extra-id int32 :offset-assert 236) + ) + :method-count-assert 26 + :size-assert #xf4 + :flag-assert #x1a008000f4 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + ) + ) +|# + +#| +(deftype under-buoy-base (process-drawable) + ((release basic :offset-assert 196) + (open-anim-frame float :offset-assert 200) + ) + :method-count-assert 22 + :size-assert #xd0 + :flag-assert #x16005000d0 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype under-buoy-chain (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype under-buoy-plat (rigid-body-platform) + ((orig-trans vector :inline :offset-assert 380) + (surface-height float :offset-assert 396) + (anchor-point vector :inline :offset-assert 412) + (base uint32 :offset-assert 428) + ) + :method-count-assert 59 + :size-assert #x1b4 + :flag-assert #x3b014001b4 + (:methods + (dummy-57 () none 57) + (dummy-58 () none 58) + ) + ) +|# + +#| +(deftype under-mine-chain-physics (chain-physics) + () + :method-count-assert 18 + :size-assert #x570 + :flag-assert #x1200000570 + (:methods + ) + ) +|# + +#| +(deftype under-mine (process-drawable) + ((chain basic :offset-assert 196) + (chain-initialized basic :offset-assert 200) + (main-mod basic :offset-assert 204) + (head-mod basic :offset-assert 208) + ) + :method-count-assert 22 + :size-assert #xd8 + :flag-assert #x16006000d8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype under-lift (elevator) + ((sound-id uint32 :offset-assert 364) + ) + :method-count-assert 50 + :size-assert #x174 + :flag-assert #x3201000174 + (:methods + (dummy-49 () none 49) + ) + ) +|# + +#| +(deftype under-break-door (process-focusable) + ((anim basic :offset-assert 200) + (art-name basic :offset-assert 204) + (collide-mesh int32 :offset-assert 208) + ) + :method-count-assert 29 + :size-assert #xd8 + :flag-assert #x1d006000d8 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + ) + ) +|# + +#| +(deftype under-seaweed-a (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype under-seaweed-b (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype under-seaweed-c (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype under-seaweed-d (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +;; (define-extern under-rise-plat-event-handler object) +;; (define-extern under-buoy-base-init-by-other object) +;; (define-extern under-buoy-chain-init-by-other object) +;; (define-extern *under-buoy-plat-platform-constants* object) +;; (define-extern *under-mine-chain-setup* object) +;; (define-extern *under-mine-exploder-params* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; under-sig-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype under-plat-shoot (plat) + ((draw-test-script basic :offset-assert 320) + (incoming-attack-id uint32 :offset-assert 324) + (angle-flip float :offset-assert 328) + (angle-flip-vel float :offset-assert 332) + (state-flip uint32 :offset-assert 336) + (time-flip uint32 :offset-assert 340) + (disable-track-under basic :offset-assert 344) + (dest-angle float :offset-assert 348) + (on-shake basic :offset-assert 352) + (hint-count float :offset-assert 356) + (hit-time uint64 :offset-assert 364) + (knocked-sound-time uint64 :offset-assert 364) + (axe-flip vector :inline :offset-assert 380) + ) + :method-count-assert 39 + :size-assert #x190 + :flag-assert #x2701100190 + ;; field draw-test-script uses ~A with a signed load + (:methods + (dummy-37 () none 37) + (dummy-38 () none 38) + ) + ) +|# + +#| +(deftype under-break-floor (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype under-break-wall (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype under-break-bridge (process-drawable) + ((bridge-id int8 :offset-assert 196) + ) + :method-count-assert 23 + :size-assert #xc9 + :flag-assert #x17005000c9 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype under-int-door (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype under-plat-long (base-plat) + ((sync sync-eased :inline :offset-assert 268) + (move-start vector :inline :offset-assert 316) + (move-end vector :inline :offset-assert 332) + ) + :method-count-assert 35 + :size-assert #x160 + :flag-assert #x2300e00160 + (:methods + (dummy-34 () none 34) + ) + ) +|# + +#| +(deftype under-plat-wall (process-drawable) + ((extended-amount float :offset-assert 196) + (in-trans vector :inline :offset-assert 204) + (out-trans vector :inline :offset-assert 220) + (sync sync-paused :inline :offset-assert 236) + ) + :method-count-assert 21 + :size-assert #x108 + :flag-assert #x1500900108 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype under-pipe-growls (process-drawable) + ((volume float :offset-assert 196) + (desired-volume float :offset-assert 200) + (volume-seek-speed float :offset-assert 204) + (approach-sound-id uint32 :offset-assert 208) + (approach-play-time uint64 :offset-assert 212) + ) + :method-count-assert 23 + :size-assert #xe8 + :flag-assert #x17007000e8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +;; (define-extern cshape-reaction-under-plat-shoot object) +;; (define-extern *under-break-floor-exploder-params* object) +;; (define-extern under-pipe-growls-post object) +;; (define-extern under-pipe-growls-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; under-laser ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype under-laser-info (basic) + ((options uint8 :offset-assert 4) + (laser-radius float :offset-assert 8) + (laser-move-dist float :offset-assert 12) + (shadow-top-y float :offset-assert 16) + (shadow-height float :offset-assert 20) + (shadow-radius-adjust float :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype under-laser-shadow (process-drawable) + ((info basic :offset-assert 196) + (trans-xz-offset vector :inline :offset-assert 204) + ) + :method-count-assert 21 + :size-assert #xe0 + :flag-assert #x15006000e0 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype under-laser-slave (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype under-laser (process-drawable) + ((info basic :offset-assert 196) + (id int8 :offset-assert 200) + (lightning basic :offset-assert 204) + (draw-test-script basic :offset-assert 208) + (sync sync-eased :inline :offset-assert 212) + (laser-dir vector :inline :offset-assert 268) + (slave-trans-offset vector :inline :offset-assert 284) + (zero-pos vector :inline :offset-assert 300) + (one-pos vector :inline :offset-assert 316) + ) + :method-count-assert 23 + :size-assert #x150 + :flag-assert #x1700d00150 + ;; field draw-test-script uses ~A with a signed load + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +;; (define-extern *under-laser-infos* object) +;; (define-extern under-laser-shadow-init-by-other object) +;; (define-extern under-laser-slave-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pipe-grunt ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pipe-grunt (grunt) + ((pipe-front vector :inline :offset-assert 700) + (pipe-dir vector :inline :offset-assert 716) + ) + :method-count-assert 187 + :size-assert #x2e0 + :flag-assert #xbb026002e0 + (:methods + (dummy-186 () none 186) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; jellyfish ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype jellyfish-formation (hover-formation) + () + :method-count-assert 16 + :size-assert #x90 + :flag-assert #x1000100090 + (:methods + ) + ) +|# + +#| +(deftype jellyfish-chain-physics (chain-physics) + () + :method-count-assert 18 + :size-assert #x570 + :flag-assert #x1200000570 + (:methods + ) + ) +|# + +#| +(deftype jellyfish (hover-enemy) + ((los los-control :inline :offset-assert 780) + (sync sync-eased :inline :offset-assert 932) + (sound-id uint32 :offset-assert 976) + (path-player-u float :offset-assert 980) + (path-my-u float :offset-assert 984) + (path-y-offset float :offset-assert 988) + (path-stare-u float :offset-assert 992) + (tentacle-clock float :offset-assert 996) + (tentacle-blend float :offset-assert 1000) + (last-attack-time uint64 :offset-assert 1004) + (last-fire-time uint64 :offset-assert 1012) + (charge-path-timer uint64 :offset-assert 1020) + (tentacles UNKNOWN 5 :offset-assert 1028) + (tentacles-initialized basic :offset-assert 1048) + (stare-pos vector :inline :offset-assert 1052) + (charge-pos vector :inline :offset-assert 1068) + (grab-front basic :offset-assert 1084) + (grab-offset vector :inline :offset-assert 1100) + (grab-start-pos vector :inline :offset-assert 1116) + (grab-start-quat quaternion :inline :offset-assert 1132) + (focus-rot quaternion :inline :offset-assert 1148) + (attach-lerp float :offset-assert 1164) + ) + :method-count-assert 165 + :size-assert #x494 + :flag-assert #xa504200494 + (:methods + (dummy-156 () none 156) + (dummy-157 () none 157) + (dummy-158 () none 158) + (dummy-159 () none 159) + (dummy-160 () none 160) + (dummy-161 () none 161) + (dummy-162 () none 162) + (dummy-163 () none 163) + (dummy-164 () none 164) + ) + ) +|# + +#| +(deftype jellyfish-joint-mod-tentacle-info (structure) + ((axis vector :inline :offset-assert 0) + (angle float :offset-assert 16) + (period float :offset-assert 20) + (offset float :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +;; (define-extern *jellyfish-mech-reserved* object) +;; (define-extern *jellyfish-mainvein-chain-setup* object) +;; (define-extern *jellyfish-lfront-chain-setup* object) +;; (define-extern *jellyfish-rfront-chain-setup* object) +;; (define-extern *jellyfish-lrear-chain-setup* object) +;; (define-extern *jellyfish-rrear-chain-setup* object) +;; (define-extern *jellyfish-enemy-info* object) +;; (define-extern jellyfish-joint-mod-tentacle object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; under-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype under-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern check-drop-level-under-drip object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; centipede ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype centipede-cam (structure) + ((init? basic :offset-assert 0) + (trans vector :inline :offset-assert 16) + (dir vector :inline :offset-assert 32) + (track-focus-tilt float :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype centipede (nav-enemy) + ((id int8 :offset-assert 600) + (anim-ctr int8 :offset-assert 601) + (focus-pos-hist-count int8 :offset-assert 602) + (legs-sound basic :offset-assert 604) + (grabbed-focus? basic :offset-assert 608) + (using-chan1-effects? basic :offset-assert 612) + (set-camera-mode? basic :offset-assert 616) + (talking-volume float :offset-assert 620) + (desired-talking-volume float :offset-assert 624) + (legs-volume float :offset-assert 628) + (focus-gnd-height float :offset-assert 632) + (track-focus-tilt float :offset-assert 636) + (bobbing-intensity float :offset-assert 640) + (bobbing basic :offset-assert 644) + (src-quat quaternion :inline :offset-assert 652) + (dest-quat quaternion :inline :offset-assert 668) + (cam centipede-cam :inline :offset-assert 684) + (focus-pos-hist UNKNOWN 15 :offset-assert 748) + ) + :method-count-assert 189 + :size-assert #x3e0 + :flag-assert #xbd036003e0 + (:methods + (dummy-178 () none 178) + (dummy-179 () none 179) + (dummy-180 () none 180) + (dummy-181 () none 181) + (dummy-182 () none 182) + (dummy-183 () none 183) + (dummy-184 () none 184) + (dummy-185 () none 185) + (dummy-186 () none 186) + (dummy-187 () none 187) + (dummy-188 () none 188) + ) + ) +|# + +;; (define-extern *centipede-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sig5-cent1-path0 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sig5-cent1-path0* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sig5-cent2-path0 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sig5-cent2-path0* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sig5-course ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sig5-course (bot-course) + ((chase-speeches basic :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ;; field default-check-too-far uses ~A with a signed load + ) +|# + +#| +(deftype sig-under (sig) + ((shot-at-growls-index int8 :offset-assert 1068) + (growls UNKNOWN 2 :offset-assert 1076) + (next-chase-play-time uint64 :offset-assert 1092) + (grating-broken-time uint64 :offset-assert 1092) + (test-plane plane :inline :offset-assert 1100) + ) + :method-count-assert 265 + :size-assert #x460 + :flag-assert #x10903e00460 + (:methods + (dummy-259 () none 259) + (dummy-260 () none 260) + (dummy-261 () none 261) + (dummy-262 () none 262) + (dummy-263 () none 263) + (dummy-264 () none 264) + ) + ) +|# + +;; (define-extern sig5-default-check-too-far object) +;; (define-extern *sig5-course* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; under-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern under-sig-red-shot object) +;; (define-extern under-sig-red-shot-overhead object) +;; (define-extern under-sig-red-shot-grunt object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sig-recorder ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sig-path-info (basic) + ((name basic :offset-assert 4) + (finish-center-p0 vector :inline :offset-assert 16) + (finish-center-p1 vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype sigrec-sample (structure) + ((sample-time uint64 :offset-assert 0) + (pos vector :inline :offset-assert 16) + (quat quaternion :inline :offset-assert 32) + (flags uint8 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x31 + :flag-assert #x900000031 + ) +|# + +#| +(deftype sig-recorder-samples (basic) + ((samples uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sig-recorder (process) + ((path-num int32 :offset-assert 124) + (info basic :offset-assert 128) + (sample-count int32 :offset-assert 132) + (samples uint32 :offset-assert 136) + (state-time uint64 :offset-assert 140) + (start-time uint64 :offset-assert 148) + (finish-record-plane plane :inline :offset-assert 156) + (finish-record-center vector :inline :offset-assert 172) + (prev-pos vector :inline :offset-assert 188) + ) + :method-count-assert 29 + :size-assert #xd0 + :flag-assert #x1d005000d0 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + ) + ) +|# + +;; (define-extern *sig-paths* object) +;; (define-extern *sig-recorder-samples* object) +;; (define-extern *sig-recorder* object) +;; (define-extern *sigrec-out* object) +;; (define-extern sig-recorder-init-by-other object) +;; (define-extern start-sig-recorder object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyport-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctyport-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype hiphog-exterior-marquee (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype farthy (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern check-drop-level-ctyport-drop-userdata object) +;; (define-extern *hiphog-exterior-marquee* object) +;; (define-extern *hiphog-exterior-marquee-group-ids* object) +;; (define-extern *hiphog-exterior-marquee-daxter-group-ids* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; caspad-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cpad-elevator (elevator) + ((sound-id uint32 :offset-assert 364) + ) + :method-count-assert 50 + :size-assert #x174 + :flag-assert #x3201000174 + (:methods + (dummy-49 () none 49) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; caspad-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype caspad-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; castle-tasks ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-graph-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-branch (structure) + ((node UNKNOWN 2 :offset-assert 0) + (src-node basic :offset-assert 0) + (dest-node basic :offset-assert 4) + (temp-dest-node-id int32 :offset-assert 4) + (speed-limit uint8 :offset-assert 8) + (density uint8 :offset-assert 9) + (clock-type uint8 :offset-assert 10) + (clock-mask uint8 :offset-assert 11) + (max-user-count uint8 :offset-assert 12) + (user-count uint8 :offset-assert 13) + (width uint8 :offset-assert 14) + (flags uint8 :offset-assert 15) + ) + :method-count-assert 21 + :size-assert #x10 + :flag-assert #x1500000010 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype nav-node (structure) + () + :method-count-assert 22 + :size-assert #x20 + :flag-assert #x1600000020 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype nav-graph-link (structure) + ((id uint32 :offset-assert 0) + (dest-graph-id uint32 :offset-assert 4) + (src-branch-id uint16 :offset-assert 8) + (dest-node-id uint16 :offset-assert 10) + (dest-graph basic :offset-assert 12) + (dummy-node nav-node :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype nav-graph (basic) + ((node-count int16 :offset-assert 4) + (branch-count int16 :offset-assert 6) + (node-array uint32 :offset-assert 8) + (branch-array uint32 :offset-assert 12) + (link-count int16 :offset-assert 16) + (pad2 uint16 :offset-assert 18) + (link-array uint32 :offset-assert 20) + (first-node int16 :offset-assert 24) + (pad0 uint16 :offset-assert 26) + (patched basic :offset-assert 28) + (id uint32 :offset-assert 32) + (pad1 UNKNOWN 6 :offset-assert 36) + ) + :method-count-assert 45 + :size-assert #x3c + :flag-assert #x2d0000003c + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + (dummy-40 () none 40) + (dummy-41 () none 41) + (dummy-42 () none 42) + (dummy-43 () none 43) + (dummy-44 () none 44) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; traffic-engine-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-segment (structure) + ((vertex UNKNOWN 2 :offset-assert 0) + (length float :offset-assert 12) + (spawn-spacing float :offset-assert 28) + (branch nav-branch :offset-assert 32) + (nav-mesh-id uint32 :offset-assert 36) + (id uint16 :offset-assert 40) + (cell-id uint16 :offset-assert 42) + (from-cell-id uint16 :offset-assert 44) + (tracker-id int8 :offset-assert 46) + (pad0 int8 :offset-assert 47) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype vis-cell (structure) + () + :method-count-assert 11 + :size-assert #x20 + :flag-assert #xb00000020 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype vis-grid-pos (structure) + ((data UNKNOWN 3 :offset-assert 0) + (x int8 :offset-assert 0) + (y int8 :offset-assert 1) + (z int8 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x3 + :flag-assert #x900000003 + ) +|# + +#| +(deftype vis-grid-box (structure) + ((min vis-grid-pos :inline :offset-assert 0) + (max vis-grid-pos :inline :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype vis-ray (structure) + ((pos vector :inline :offset-assert 0) + (dir vector :inline :offset-assert 16) + (dest-pos vector :inline :offset-assert 32) + (plane plane :inline :offset-assert 48) + (grid-pos vis-grid-pos :inline :offset-assert 64) + (len float :offset-assert 68) + (cell vis-cell :offset-assert 72) + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype grid-info (structure) + ((axis-scale UNKNOWN 3 :offset-assert 0) + (dimension-array UNKNOWN 3 :offset-assert 12) + (pad0 UNKNOWN 1 :offset-assert 15) + (box bounding-box :inline :offset-assert 16) + (cell-size vector :inline :offset-assert 48) + ) + :method-count-assert 14 + :size-assert #x40 + :flag-assert #xe00000040 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + ) + ) +|# + +#| +(deftype city-level-info (structure) + ((grid-info grid-info :inline :offset-assert 0) + (cell-array uint32 :offset-assert 64) + (segment-count int16 :offset-assert 68) + (cell-count uint16 :offset-assert 70) + (segment-array uint32 :offset-assert 72) + (nav-graph basic :offset-assert 76) + (camera-ceiling meters :offset-assert 80) + (pad-array UNKNOWN 56 :offset-assert 84) + ) + :method-count-assert 19 + :size-assert #x8c + :flag-assert #x130000008c + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + ) + ) +|# + +#| +(deftype traffic-level-data (structure) + ((city-info city-level-info :offset-assert 0) + (active-cell-count uint8 :offset-assert 4) + (newly-active-cell-count uint8 :offset-assert 5) + (active-cell-list UNKNOWN 255 :offset-assert 8) + (newly-active-cell-list UNKNOWN 255 :offset-assert 1028) + (active-cell-box bounding-box :inline :offset-assert 2048) + ) + :method-count-assert 15 + :size-assert #x820 + :flag-assert #xf00000820 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + ) + ) +|# + +#| +(deftype traffic-suppression-box (structure) + ((data UNKNOWN 32 :offset-assert 0) + (bbox bounding-box :inline :offset-assert 0) + (flags uint8 :offset-assert 12) + (duration uint32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype traffic-guard-type-info (structure) + ((object-type uint8 :offset-assert 0) + (max-target-count int8 :offset-assert 1) + (min-target-count int8 :offset-assert 2) + (target-count int8 :offset-assert 3) + (count int8 :offset-assert 4) + (change-to-type uint8 :offset-assert 5) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype traffic-guard-type-settings (structure) + ((target-count int8 :offset-assert 0) + (inaccuracy float :offset-assert 4) + (acquire-delay uint16 :offset-assert 8) + (shot-delay uint16 :offset-assert 10) + (burst-delay uint16 :offset-assert 12) + (shot-count int8 :offset-assert 14) + (rand-shot-count int8 :offset-assert 15) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype traffic-alert-state-settings (structure) + ((guard-settings-array UNKNOWN 6 :offset-assert 0) + (ped-tazer traffic-guard-type-settings :inline :offset-assert 0) + (ped-rifle traffic-guard-type-settings :inline :offset-assert 16) + (ped-grenade traffic-guard-type-settings :inline :offset-assert 32) + (ped-roboguard traffic-guard-type-settings :inline :offset-assert 48) + (bike-turret traffic-guard-type-settings :inline :offset-assert 64) + (hellcat-turret traffic-guard-type-settings :inline :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype traffic-target-status (structure) + () + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ;; Failed to read fields. + ) +|# + +#| +(deftype traffic-alert-state (structure) + () + :method-count-assert 10 + :size-assert #x3d8 + :flag-assert #xa000003d8 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + ) + ) +|# + +#| +(deftype traffic-object-type-info (structure) + ((flags uint8 :offset-assert 0) + (target-count int8 :offset-assert 1) + (active-count int8 :offset-assert 2) + (inactive-count int8 :offset-assert 3) + (reserve-count uint16 :offset-assert 4) + (killed-count uint16 :offset-assert 6) + (want-count int8 :offset-assert 8) + (tracker-index uint8 :offset-assert 9) + (parking-spot-prob uint8 :offset-assert 10) + (guard-type uint8 :offset-assert 11) + (array uint32 :offset-assert 12) + (level basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype traffic-suppressor (structure) + ((flags uint8 :offset-assert 0) + (bbox bounding-box :inline :offset-assert 16) + (array UNKNOWN 16 :offset-assert 48) + ) + :method-count-assert 14 + :size-assert #x230 + :flag-assert #xe00000230 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + ) + ) +|# + +#| +(deftype traffic-tracker (structure) + ((traffic basic :offset-assert 0) + (object-hash basic :offset-assert 4) + (rand float :offset-assert 8) + (id uint8 :offset-assert 12) + (active-object-count uint8 :offset-assert 13) + (inactive-object-count int8 :offset-assert 14) + (active-object-list UNKNOWN 126 :offset-assert 16) + (active-object-type-list UNKNOWN 126 :offset-assert 1024) + ) + :method-count-assert 27 + :size-assert #x47e + :flag-assert #x1b0000047e + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + ) + ) +|# + +#| +(deftype traffic-engine (basic) + ((object-hash basic :offset-assert 4) + (manager uint64 :offset-assert 8) + (inv-density-factor float :offset-assert 16) + (sync-clock uint8 :offset-assert 20) + (sync-mask-8 uint8 :offset-assert 21) + (sync-mask-16 uint16 :offset-assert 22) + (sync-mask-32 uint32 :offset-assert 24) + (sync-array UNKNOWN 4 :offset-assert 28) + (flags uint8 :offset-assert 32) + (alert-state traffic-alert-state :inline :offset-assert 48) + (level-data-array UNKNOWN 2 :offset-assert 1040) + (object-type-info-array UNKNOWN 21 :offset-assert 5200) + (tracker-array UNKNOWN 2 :offset-assert 5872) + (inactive-object-array UNKNOWN 420 :offset-assert 8176) + (suppressor traffic-suppressor :inline :offset-assert 11536) + (danger-sphere-count int8 :offset-assert 12096) + (danger-sphere-array UNKNOWN 4 :offset-assert 12112) + ) + :method-count-assert 74 + :size-assert #x3050 + :flag-assert #x4a00003050 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + (dummy-25 () none 25) + (dummy-26 () none 26) + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + (dummy-36 () none 36) + (dummy-37 () none 37) + (dummy-38 () none 38) + (dummy-39 () none 39) + (dummy-40 () none 40) + (dummy-41 () none 41) + (dummy-42 () none 42) + (dummy-43 () none 43) + (dummy-44 () none 44) + (dummy-45 () none 45) + (dummy-46 () none 46) + (dummy-47 () none 47) + (dummy-48 () none 48) + (dummy-49 () none 49) + (dummy-50 () none 50) + (dummy-51 () none 51) + (dummy-52 () none 52) + (dummy-53 () none 53) + (dummy-54 () none 54) + (dummy-55 () none 55) + (dummy-56 () none 56) + (dummy-57 () none 57) + (dummy-58 () none 58) + (dummy-59 () none 59) + (dummy-60 () none 60) + (dummy-61 () none 61) + (dummy-62 () none 62) + (dummy-63 () none 63) + (dummy-64 () none 64) + (dummy-65 () none 65) + (dummy-66 () none 66) + (dummy-67 () none 67) + (dummy-68 () none 68) + (dummy-69 () none 69) + (dummy-70 () none 70) + (dummy-71 () none 71) + (dummy-72 () none 72) + (dummy-73 () none 73) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-lookup-info (structure) + ((turn-radius meters :offset-assert 0) + (throttle-turning float :offset-assert 4) + (throttle-straight float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype vehicle-control-point (structure) + ((local-pos vector :inline :offset-assert 0) + (normal vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype vehicle-section-info (structure) + ((damage-seg-array UNKNOWN 3 :offset-assert 0) + (damage-seg-count int8 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x19 + :flag-assert #x900000019 + ) +|# + +#| +(deftype vehicle-seat-info (structure) + ((data UNKNOWN 16 :offset-assert 0) + (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) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vehicle-explosion-info (joint-exploder-static-params) + ((skel basic :offset-assert 16) + (skel-name basic :offset-assert 20) + (anim int32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype vehicle-grab-rail-info (structure) + ((local-pos UNKNOWN 2 :offset-assert 0) + (normal vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype rigid-body-vehicle-constants (rigid-body-object-constants) + ((flags uint32 :offset-assert 208) + (object-type uint8 :offset-assert 212) + (guard-type uint8 :offset-assert 213) + (max-engine-thrust meters :offset-assert 216) + (inv-max-engine-thrust float :offset-assert 220) + (engine-response-rate float :offset-assert 224) + (engine-intake-factor float :offset-assert 228) + (brake-factor float :offset-assert 232) + (turbo-boost-factor float :offset-assert 236) + (max-xz-speed meters :offset-assert 240) + (ground-probe-distance meters :offset-assert 244) + (ground-probe-offset meters :offset-assert 248) + (cos-ground-effect-angle float :offset-assert 252) + (spring-lift-factor float :offset-assert 256) + (air-steering-factor float :offset-assert 260) + (air-drag-factor float :offset-assert 264) + (steering-fin-angle float :offset-assert 268) + (steering-thruster-factor float :offset-assert 272) + (steering-thruster-max-gain float :offset-assert 276) + (steering-thruster-half-gain-speed meters :offset-assert 280) + (tire-steering-angle float :offset-assert 284) + (tire-friction-factor float :offset-assert 288) + (tire-static-friction float :offset-assert 292) + (tire-static-friction-speed meters :offset-assert 296) + (tire-dynamic-friction float :offset-assert 300) + (tire-dynamic-friction-speed meters :offset-assert 304) + (tire-inv-max-friction-speed float :offset-assert 308) + (airfoil-factor float :offset-assert 312) + (drag-force-factor float :offset-assert 316) + (speed-scrubbing-drag float :offset-assert 320) + (speed-limiting-drag float :offset-assert 324) + (pitch-control-factor float :offset-assert 328) + (roll-control-factor float :offset-assert 332) + (roll-angle float :offset-assert 336) + (jump-thrust-factor float :offset-assert 340) + (buoyancy-factor float :offset-assert 344) + (player-weight float :offset-assert 348) + (player-shift-x meters :offset-assert 352) + (player-shift-z meters :offset-assert 356) + (target-speed-offset meters :offset-assert 360) + (turning-accel meters :offset-assert 364) + (toughness-factor float :offset-assert 368) + (damage-factor float :offset-assert 372) + (camera-string-min-height meters :offset-assert 376) + (camera-string-max-height meters :offset-assert 380) + (camera-string-min-length meters :offset-assert 384) + (camera-string-max-length meters :offset-assert 388) + (camera-min-fov float :offset-assert 392) + (camera-max-fov float :offset-assert 396) + (camera-head-offset float :offset-assert 400) + (camera-foot-offset float :offset-assert 404) + (camera-normal-max-angle-offset float :offset-assert 408) + (camera-air-max-angle-offset float :offset-assert 412) + (camera-max-lookaround-speed float :offset-assert 416) + (seat-count int8 :offset-assert 420) + (section-count int8 :offset-assert 421) + (rider-stance uint8 :offset-assert 422) + (grab-rail-count int8 :offset-assert 423) + (grab-rail-array uint32 :offset-assert 424) + (seat-array UNKNOWN 4 :offset-assert 432) + (rider-hand-offset UNKNOWN 2 :offset-assert 496) + (section-array UNKNOWN 4 :offset-assert 528) + (section-bike-front vehicle-section-info :inline :offset-assert 528) + (section-bike-rear vehicle-section-info :inline :offset-assert 560) + (section-car-front-left vehicle-section-info :inline :offset-assert 528) + (section-car-rear-left vehicle-section-info :inline :offset-assert 560) + (section-car-front-right vehicle-section-info :inline :offset-assert 592) + (section-car-rear-right vehicle-section-info :inline :offset-assert 624) + (explosion basic :offset-assert 656) + (engine-pitch-scale float :offset-assert 660) + (engine-pitch-offset float :offset-assert 664) + (engine-pitch-mod-amp float :offset-assert 668) + (engine-sound-select int8 :offset-assert 672) + (engine-sound uint128 :offset-assert 688) + (thrust-sound uint128 :offset-assert 704) + (scrape-sound uint128 :offset-assert 720) + (glance-sound uint128 :offset-assert 736) + (impact-sound uint128 :offset-assert 752) + (extra-sound uint128 :offset-assert 768) + (explosion-part int32 :offset-assert 784) + (headlight-count int8 :offset-assert 788) + (taillight-count int8 :offset-assert 789) + (thruster-flame-width meters :offset-assert 792) + (thruster-flame-length meters :offset-assert 796) + (thruster-local-pos UNKNOWN 2 :offset-assert 800) + (exhaust-local-pos UNKNOWN 2 :offset-assert 832) + (exhaust-local-dir UNKNOWN 2 :offset-assert 864) + (smoke-local-pos UNKNOWN 2 :offset-assert 896) + (smoke-local-vel UNKNOWN 2 :offset-assert 928) + (headlight-local-pos UNKNOWN 3 :offset-assert 960) + (taillight-local-pos UNKNOWN 2 :offset-assert 1008) + (lift-thruster-count int8 :offset-assert 1040) + (roll-thruster-count int8 :offset-assert 1041) + (steering-thruster-count int8 :offset-assert 1042) + (stabilizer-count int8 :offset-assert 1043) + (inv-lift-thruster-count float :offset-assert 1044) + (lift-thruster-array UNKNOWN 2 :offset-assert 1056) + (roll-thruster-array UNKNOWN 2 :offset-assert 1120) + (steering-thruster-array UNKNOWN 2 :offset-assert 1184) + (stabilizer-array UNKNOWN 6 :offset-assert 1248) + (engine-thrust-local-pos vector :inline :offset-assert 1440) + (brake-local-pos vector :inline :offset-assert 1456) + (particle-system-2d basic :offset-assert 1472) + (particle-system-3d basic :offset-assert 1476) + (part-thruster basic :offset-assert 1480) + (part-thruster-scale-x sp-field-init-spec :offset-assert 1484) + (part-thruster-scale-y sp-field-init-spec :offset-assert 1488) + (part-quat quaternion :offset-assert 1492) + (part-vel vector :offset-assert 1496) + (color-option-count int8 :offset-assert 1500) + (color-option-select int8 :offset-assert 1501) + (color-option-array uint32 :offset-assert 1504) + (sample-dir vector :inline :offset-assert 1520) + (sample-time uint64 :offset-assert 1536) + (sample-index int32 :offset-assert 1544) + ) + :method-count-assert 11 + :size-assert #x60c + :flag-assert #xb0000060c + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + ) + ) +|# + +#| +(deftype vehicle-controller (structure) + () + :method-count-assert 22 + :size-assert #x90 + :flag-assert #x1600000090 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) ;; (init! (_type_ vehicle-path (pointer float) (pointer float) int float) none 9) + (dummy-10 () none 10) ;; (TODO-RENAME-10 (_type_ vector float int) none 10) + (dummy-11 () none 11) ;; (dummy-11 (_type_) none 11) + (dummy-12 () none 12) ;; (TODO-RENAME-12 (_type_ int vector) none 12) + (dummy-13 () none 13) ;; (move-to-next-point (_type_ vector) none 13) + (dummy-14 () none 14) ;; (TODO-RENAME-14 (_type_ vector vector) none 14) + (dummy-15 () none 15) ;; (dummy-15 (_type_ collide-shape-moving) none 15) + (dummy-16 () none 16) ;; (dummy-16 (_type_) none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype vehicle-section (structure) + ((damage float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype vehicle (rigid-body-object) + () + :method-count-assert 144 + :size-assert #x370 + :flag-assert #x9002f00370 + ;; Failed to read fields. + (:methods + (dummy-53 () none 53) + (dummy-54 () none 54) + (dummy-55 () none 55) + (dummy-56 () none 56) + (dummy-57 () none 57) + (dummy-58 () none 58) + (dummy-59 () none 59) + (dummy-60 () none 60) + (dummy-61 () none 61) + (dummy-62 () none 62) + (dummy-63 () none 63) + (dummy-64 () none 64) + (dummy-65 () none 65) + (dummy-66 () none 66) + (dummy-67 () none 67) + (dummy-68 () none 68) + (dummy-69 () none 69) + (dummy-70 () none 70) + (dummy-71 () none 71) + (dummy-72 () none 72) + (dummy-73 () none 73) + (dummy-74 () none 74) + (dummy-75 () none 75) + (dummy-76 () none 76) + (dummy-77 () none 77) + (dummy-78 () none 78) + (dummy-79 () none 79) + (dummy-80 () none 80) + (dummy-81 () none 81) + (dummy-82 () none 82) + (dummy-83 () none 83) + (dummy-84 () none 84) + (dummy-85 () none 85) + (dummy-86 () none 86) + (dummy-87 () none 87) + (dummy-88 () none 88) + (dummy-89 () none 89) + (dummy-90 () none 90) + (dummy-91 () none 91) + (dummy-92 () none 92) + (dummy-93 () none 93) + (dummy-94 () none 94) + (dummy-95 () none 95) + (dummy-96 () none 96) + (dummy-97 () none 97) + (dummy-98 () none 98) + (dummy-99 () none 99) + (dummy-100 () none 100) + (dummy-101 () none 101) + (dummy-102 () none 102) + (dummy-103 () none 103) + (dummy-104 () none 104) + (dummy-105 () none 105) + (dummy-106 () none 106) + (dummy-107 () none 107) + (dummy-108 () none 108) + (dummy-109 () none 109) + (dummy-110 () none 110) + (dummy-111 () none 111) + (dummy-112 () none 112) + (dummy-113 () none 113) + (dummy-114 () none 114) + (dummy-115 () none 115) + (dummy-116 () none 116) + (dummy-117 () none 117) + (dummy-118 () none 118) + (dummy-119 () none 119) + (dummy-120 () none 120) + (dummy-121 () none 121) + (dummy-122 () none 122) + (dummy-123 () none 123) + (dummy-124 () none 124) + (dummy-125 () none 125) + (dummy-126 () none 126) + (dummy-127 () none 127) + (dummy-128 () none 128) + (dummy-129 () none 129) + (dummy-130 () none 130) + (dummy-131 () none 131) + (dummy-132 () none 132) + (dummy-133 () none 133) + (dummy-134 () none 134) + (dummy-135 () none 135) + (dummy-136 () none 136) + (dummy-137 () none 137) + (dummy-138 () none 138) + (dummy-139 () none 139) + (dummy-140 () none 140) + (dummy-141 () none 141) + (dummy-142 () none 142) + (dummy-143 () none 143) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; citizen-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype citizen (nav-enemy) + () + :method-count-assert 201 + :size-assert #x3c4 + :flag-assert #xc9035003c4 + ;; Failed to read fields. + (:methods + (dummy-178 () none 178) + (dummy-179 () none 179) + (dummy-180 () none 180) + (dummy-181 () none 181) + (dummy-182 () none 182) + (dummy-183 () none 183) + (dummy-184 () none 184) + (dummy-185 () none 185) + (dummy-186 () none 186) + (dummy-187 () none 187) + (dummy-188 () none 188) + (dummy-189 () none 189) + (dummy-190 () none 190) + (dummy-191 () none 191) + (dummy-192 () none 192) + (dummy-193 () none 193) + (dummy-194 () none 194) + (dummy-195 () none 195) + (dummy-196 () none 196) + (dummy-197 () none 197) + (dummy-198 () none 198) + (dummy-199 () none 199) + (dummy-200 () none 200) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; height-map-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype xz-height-map (structure) + ((offset UNKNOWN 3 :offset-assert 0) + (x-offset float :offset-assert 0) + (y-offset float :offset-assert 4) + (z-offset float :offset-assert 8) + (x-inv-spacing float :offset-assert 12) + (z-inv-spacing float :offset-assert 16) + (y-scale float :offset-assert 20) + (dim UNKNOWN 2 :offset-assert 24) + (x-dim int16 :offset-assert 24) + (z-dim int16 :offset-assert 26) + (data uint32 :offset-assert 28) + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + ) + ) +|# + +;; (define-extern get-traffic-height object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-obs-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype city-race-ring-info (structure) + ((pos vector :inline :offset-assert 0) + (angle float :offset-assert 12) + (boost float :offset-assert 16) + (dist float :offset-assert 20) + ) + :method-count-assert 10 + :size-assert #x18 + :flag-assert #xa00000018 + (:methods + (dummy-9 () none 9) + ) + ) +|# + +#| +(deftype city-ambush-spot (structure) + ((pos vector :inline :offset-assert 0) + (obj-type uint8 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x11 + :flag-assert #x900000011 + ) +|# + +#| +(deftype city-ambush-info (structure) + ((count int16 :offset-assert 0) + (array uint32 :offset-assert 4) + ) + :method-count-assert 10 + :size-assert #x8 + :flag-assert #xa00000008 + (:methods + (dummy-9 () none 9) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; height-map ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern point-in-bbox? object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; traffic-height-map ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *traffic-height-map* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-graph ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern make-nav-graph object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-rider ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-rider (process-focusable) + ((flags uint8 :offset-assert 200) + (riding-anim int32 :offset-assert 204) + (anim-t float :offset-assert 208) + (anim-speed float :offset-assert 212) + (seat-index int8 :offset-assert 216) + ) + :method-count-assert 36 + :size-assert #xdd + :flag-assert #x24006000dd + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + ) + ) +|# + +#| +(deftype citizen-norm-rider (vehicle-rider) + () + :method-count-assert 36 + :size-assert #xdd + :flag-assert #x24006000dd + (:methods + ) + ) +|# + +#| +(deftype crimson-guard-rider (vehicle-rider) + () + :method-count-assert 36 + :size-assert #xdd + :flag-assert #x24006000dd + (:methods + ) + ) +|# + +;; (define-extern vehicle-rider-event-handler object) +;; (define-extern vehicle-rider-init-by-other object) +;; (define-extern vehicle-rider-spawn object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *vehicle-control-debug-obj* object) +;; (define-extern nearest-dist2-between-moving-points object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern calc-fade-vals object) +;; (define-extern *vehicle-headlight-glow-template* object) +;; (define-extern *vehicle-taillight-glow-template* object) +;; (define-extern *vehicle-thruster-glow-template* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype debug-vehicle-work (basic) + ((impact-time uint64 :offset-assert 8) + (impact rigid-body-impact :inline :offset-assert 16) + (prim-sphere1 sphere :inline :offset-assert 80) + (prim-sphere2 sphere :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +;; (define-extern string-word-wrap object) +;; (define-extern *debug-vehicle-work* object) +;; (define-extern *vehicle-shadow-control* object) +;; (define-extern *vehicle-shadow-control-disabled* object) +;; (define-extern vehicle-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-hud-request (structure) + ((handle uint64 :offset-assert 0) + (hack-handle-init basic :offset-assert 0) + (priority float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype vehicle-hud-requests (structure) + ((time uint64 :offset-assert 0) + (requests UNKNOWN 4 :offset-assert 8) + ) + :method-count-assert 12 + :size-assert #x48 + :flag-assert #xc00000048 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + ) + ) +|# + +#| +(deftype vehicle-hud-chooser (structure) + ((cur vehicle-hud-requests :inline :offset-assert 0) + (last vehicle-hud-requests :inline :offset-assert 72) + ) + :method-count-assert 10 + :size-assert #x90 + :flag-assert #xa00000090 + (:methods + (dummy-9 () none 9) + ) + ) +|# + +;; (define-extern *vehicle-hud-chooser* object) +;; (define-extern *pilot-edge-grab-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-physics ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-probe-work (structure) + ((local-pos vector :inline :offset-assert 0) + (local-normal vector :inline :offset-assert 16) + (world-pos vector :inline :offset-assert 32) + (world-normal vector :inline :offset-assert 48) + (probe-pos vector :inline :offset-assert 64) + (ground-pos vector :inline :offset-assert 80) + (ground-normal vector :inline :offset-assert 96) + (velocity vector :inline :offset-assert 112) + (tire-force vector :inline :offset-assert 128) + (wheel-axis vector :inline :offset-assert 144) + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype vehicle-physics-work (structure) + ((mat matrix :inline :offset-assert 0) + (force vector :inline :offset-assert 64) + (velocity vector :inline :offset-assert 80) + (world-pos vector :inline :offset-assert 96) + (world-normal vector :inline :offset-assert 112) + (local-pos vector :inline :offset-assert 128) + (steering-axis vector :inline :offset-assert 144) + (lift-dir vector :inline :offset-assert 160) + (normal vector :inline :offset-assert 176) + (tmp vector :inline :offset-assert 192) + (p-body vector :inline :offset-assert 208) + (axis vector :inline :offset-assert 224) + (dir vector :inline :offset-assert 240) + (ground-normal vector :inline :offset-assert 256) + (impulse float :offset-assert 272) + (vel-dot-norm float :offset-assert 276) + (friction-coef float :offset-assert 280) + (speed-factor float :offset-assert 284) + (probe-work-array UNKNOWN 2 :offset-assert 288) + ) + :method-count-assert 9 + :size-assert #x260 + :flag-assert #x900000260 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern vehicle-event-handler object) +;; (define-extern vehicle-explode-post object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-guard ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype turret-barrel-info (structure) + ((local-pos vector :inline :offset-assert 0) + (local-dir vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype turret-control-info (structure) + ((joint-index int8 :offset-assert 0) + (barrel-count int8 :offset-assert 1) + (shot-speed float :offset-assert 4) + (attack-range float :offset-assert 8) + (rot-min UNKNOWN 2 :offset-assert 12) + (rot-max UNKNOWN 2 :offset-assert 20) + (rot-x-min float :offset-assert 12) + (rot-x-max float :offset-assert 20) + (rot-y-min float :offset-assert 16) + (rot-y-max float :offset-assert 24) + (local-pos vector :inline :offset-assert 32) + (local-dir vector :inline :offset-assert 48) + (barrel-array UNKNOWN 4 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +#| +(deftype turret-control (structure) + () + :method-count-assert 18 + :size-assert #x50 + :flag-assert #x1200000050 + ;; Failed to read fields. + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + ) + ) +|# + +#| +(deftype vehicle-guard-target-data (structure) + ((tpos vector :inline :offset-assert 0) + (spos vector :inline :offset-assert 16) + (tvel vector :inline :offset-assert 32) + (svel vector :inline :offset-assert 48) + (tdir vector :inline :offset-assert 64) + (sdir vector :inline :offset-assert 80) + (to-target vector :inline :offset-assert 96) + (to-target-dir vector :inline :offset-assert 112) + (temp vector :inline :offset-assert 128) + (target basic :offset-assert 144) + (dist float :offset-assert 148) + (inv-dist float :offset-assert 152) + (attack-range float :offset-assert 156) + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype vehicle-guard (vehicle) + () + :method-count-assert 159 + :size-assert #x434 + :flag-assert #x9f03c00434 + ;; Failed to read fields. + (:methods + (dummy-144 () none 144) + (dummy-145 () none 145) + (dummy-146 () none 146) + (dummy-147 () none 147) + (dummy-148 () none 148) + (dummy-149 () none 149) + (dummy-150 () none 150) + (dummy-151 () none 151) + (dummy-152 () none 152) + (dummy-153 () none 153) + (dummy-154 () none 154) + (dummy-155 () none 155) + (dummy-156 () none 156) + (dummy-157 () none 157) + (dummy-158 () none 158) + ) + ) +|# + +;; (define-extern vehicle-los-clear? object) +;; (define-extern vehicle-draw-beam object) +;; (define-extern vehicle-draw-laser-spot object) +;; (define-extern vehicle-draw-laser object) +;; (define-extern vehicle-guard-choose-branch object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; transport ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-turret (process-focusable) + ((turret-jm basic :offset-assert 200) + (turret turret-control :inline :offset-assert 204) + (target uint64 :offset-assert 284) + ) + :method-count-assert 31 + :size-assert #x128 + :flag-assert #x1f00b00128 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + ) + ) +|# + +#| +(deftype transport-params (structure) + ((spawn-pos vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + (nav-mesh basic :offset-assert 32) + (max-guard uint32 :offset-assert 36) + (max-time float :offset-assert 40) + (turret? basic :offset-assert 44) + (speeches? basic :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype transport (process-focusable) + ((y-dest float :offset-assert 200) + (last-guard-spawn-time uint64 :offset-assert 204) + (nav-mesh basic :offset-assert 212) + (spawn-side uint32 :offset-assert 216) + (spawn? basic :offset-assert 220) + (leave-time uint64 :offset-assert 228) + (max-guard uint32 :offset-assert 236) + (count-guard uint32 :offset-assert 240) + (max-time float :offset-assert 244) + (ambient-sound-id uint32 :offset-assert 248) + (turret uint64 :offset-assert 252) + ) + :method-count-assert 36 + :size-assert #x108 + :flag-assert #x2400900108 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + (dummy-31 () none 31) + (dummy-32 () none 32) + (dummy-33 () none 33) + (dummy-34 () none 34) + (dummy-35 () none 35) + ) + ) +|# + +;; (define-extern *transport-turret-state-info* object) +;; (define-extern vehicle-turret-init-by-other object) +;; (define-extern *transport-turret-control-info* object) +;; (define-extern transport-event-handler object) +;; (define-extern transport-init-by-other object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bike ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bike-base (vehicle) + () + :method-count-assert 144 + :size-assert #x370 + :flag-assert #x9002f00370 + (:methods + ) + ) +|# + +#| +(deftype bikea (bike-base) + ((fin-fl basic :offset-assert 876) + (fin-fr basic :offset-assert 880) + (fin-rl basic :offset-assert 884) + (fin-rr basic :offset-assert 888) + (rudder basic :offset-assert 892) + (brake-l basic :offset-assert 896) + (brake-r basic :offset-assert 900) + ) + :method-count-assert 144 + :size-assert #x38c + :flag-assert #x900310038c + (:methods + ) + ) +|# + +#| +(deftype bikeb (bike-base) + ((fin-rl basic :offset-assert 876) + (fin-rr basic :offset-assert 880) + (rudder basic :offset-assert 884) + (rudder-f basic :offset-assert 888) + (brake-l basic :offset-assert 892) + (brake-r basic :offset-assert 896) + (flap-l basic :offset-assert 900) + (flap-r basic :offset-assert 904) + ) + :method-count-assert 144 + :size-assert #x390 + :flag-assert #x9003100390 + (:methods + ) + ) +|# + +#| +(deftype bikec (bike-base) + ((fin-fl basic :offset-assert 876) + (fin-fr basic :offset-assert 880) + (fin-rl basic :offset-assert 884) + (fin-rr basic :offset-assert 888) + (fin2-fl basic :offset-assert 892) + (fin2-fr basic :offset-assert 896) + (rudder basic :offset-assert 900) + (brake-l basic :offset-assert 904) + (brake-r basic :offset-assert 908) + (spoiler-l basic :offset-assert 912) + (spoiler-r basic :offset-assert 916) + ) + :method-count-assert 144 + :size-assert #x39c + :flag-assert #x900320039c + (:methods + ) + ) +|# + +#| +(deftype guard-bike (vehicle-guard) + ((turret-jm basic :offset-assert 1072) + ) + :method-count-assert 159 + :size-assert #x438 + :flag-assert #x9f03c00438 + (:methods + ) + ) +|# + +;; (define-extern *bike-explosion-info* object) +;; (define-extern *bikea-constants* object) +;; (define-extern *bikeb-constants* object) +;; (define-extern *bikec-constants* object) +;; (define-extern *guard-bike-constants* object) +;; (define-extern *guard-bike-turret-control-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; car ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype car-base (vehicle) + ((rider-hand-joint-array UNKNOWN 2 :offset-assert 876) + ) + :method-count-assert 144 + :size-assert #x372 + :flag-assert #x9003000372 + (:methods + ) + ) +|# + +#| +(deftype cara (car-base) + ((steering-wheel-l basic :offset-assert 880) + (steering-wheel-r basic :offset-assert 884) + (fin-fl basic :offset-assert 888) + (fin-fr basic :offset-assert 892) + (fin-rl basic :offset-assert 896) + (fin-rr basic :offset-assert 900) + (rudder-l basic :offset-assert 904) + (rudder-r basic :offset-assert 908) + (rudder basic :offset-assert 912) + ) + :method-count-assert 144 + :size-assert #x398 + :flag-assert #x9003200398 + (:methods + ) + ) +|# + +#| +(deftype carb (car-base) + ((steering-wheel-l basic :offset-assert 880) + (steering-wheel-r basic :offset-assert 884) + (fin-fl basic :offset-assert 888) + (fin-fr basic :offset-assert 892) + (fin-rl basic :offset-assert 896) + (fin-rr basic :offset-assert 900) + ) + :method-count-assert 144 + :size-assert #x38c + :flag-assert #x900310038c + (:methods + ) + ) +|# + +#| +(deftype carc (car-base) + ((steering-wheel basic :offset-assert 880) + (fin-fl basic :offset-assert 884) + (fin-fr basic :offset-assert 888) + (fin-rl basic :offset-assert 892) + (fin-rr basic :offset-assert 896) + (fin2-rl basic :offset-assert 900) + (fin2-rr basic :offset-assert 904) + ) + :method-count-assert 144 + :size-assert #x390 + :flag-assert #x9003100390 + (:methods + ) + ) +|# + +#| +(deftype hellcat (vehicle-guard) + ((turret-jm basic :offset-assert 1072) + ) + :method-count-assert 159 + :size-assert #x438 + :flag-assert #x9f03c00438 + (:methods + ) + ) +|# + +;; (define-extern *car-explosion-info* object) +;; (define-extern *cara-constants* object) +;; (define-extern *carb-constants* object) +;; (define-extern *carc-constants* object) +;; (define-extern *hellcat-constants* object) +;; (define-extern *hellcat-front-turret-control-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; test-bike ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype test-bike (bikec) + () + :method-count-assert 144 + :size-assert #x39c + :flag-assert #x900320039c + (:methods + ) + ) +|# + +#| +(deftype evan-test-bike (bikea) + () + :method-count-assert 144 + :size-assert #x38c + :flag-assert #x900310038c + (:methods + ) + ) +|# + +;; (define-extern *test-bike-constants* object) +;; (define-extern *evan-test-bike-constants* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; test-car ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype test-car (cara) + () + :method-count-assert 144 + :size-assert #x398 + :flag-assert #x9003200398 + (:methods + ) + ) +|# + +;; (define-extern *test-car-constants* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; citizen ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype iter-seg (structure) + ((self basic :offset-assert 0) + (score float :offset-assert 4) + (seg nav-segment :offset-assert 8) + (cp-plane plane :inline :offset-assert 16) + (desired-dir vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +;; (define-extern *citizen-debug* object) +;; (define-extern citizen-init-by-other object) +;; (define-extern citizen-travel-anim object) +;; (define-extern iter-seg-clear-path object) +;; (define-extern iter-seg-new-dir object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; civilian ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype civilian-anim-info (structure) + ((anim-index UNKNOWN 2 :offset-assert 0) + (anim-index-front int32 :offset-assert 0) + (anim-index-back int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype civilian-global-info (basic) + ((prev-yellow-hit int8 :offset-assert 4) + (prev-blue-hit int8 :offset-assert 5) + (knocked UNKNOWN 2 :offset-assert 8) + (anim-knocked-front int32 :offset-assert 8) + (anim-knocked-back int32 :offset-assert 12) + (knocked-land UNKNOWN 2 :offset-assert 16) + (anim-knocked-front-land int32 :offset-assert 16) + (anim-knocked-back-land int32 :offset-assert 20) + (yellow-hit-anim UNKNOWN 1 :offset-assert 24) + (blue-hit-anim UNKNOWN 3 :offset-assert 32) + (anim-cover-head-start int32 :offset-assert 56) + (anim-cover-head-loop int32 :offset-assert 60) + (anim-cover-head-end int32 :offset-assert 64) + (car-stance-anim int32 :offset-assert 68) + (bike-stance-anim int32 :offset-assert 72) + (get-in-car-anim int32 :offset-assert 76) + (get-on-bike-anim int32 :offset-assert 80) + (seat-flag uint8 :offset-assert 84) + (speech-ambient int8 :offset-assert 85) + (speech-alert int8 :offset-assert 86) + (speech-cower int8 :offset-assert 87) + (speech-touched-by-player int8 :offset-assert 88) + (speech-shot-by-player int8 :offset-assert 89) + (speech-avoiding-player-vehicle int8 :offset-assert 90) + (speech-hit-by-player-vehicle int8 :offset-assert 91) + (speech-player-stealing-vehicle int8 :offset-assert 92) + ) + :method-count-assert 9 + :size-assert #x5d + :flag-assert #x90000005d + ) +|# + +#| +(deftype civilian (citizen) + ((info basic :offset-assert 960) + (anim-panic-run int32 :offset-assert 964) + (anim-on-ground int32 :offset-assert 968) + (anim-dive int32 :offset-assert 972) + (anim-get-up-front int32 :offset-assert 976) + (anim-get-up-back int32 :offset-assert 980) + (last-second-pos vector :inline :offset-assert 988) + (last-distance float :offset-assert 1004) + (next-time uint64 :offset-assert 1012) + (dive-target-point vector :inline :offset-assert 1020) + (dive-reaction float :offset-assert 1036) + (allow-dive basic :offset-assert 1040) + (dive-finished? basic :offset-assert 1044) + (hit-face uint32 :offset-assert 1048) + (seat int32 :offset-assert 1052) + ) + :method-count-assert 218 + :size-assert #x424 + :flag-assert #xda03b00424 + (:methods + (dummy-201 () none 201) + (dummy-202 () none 202) + (dummy-203 () none 203) + (dummy-204 () none 204) + (dummy-205 () none 205) + (dummy-206 () none 206) + (dummy-207 () none 207) + (dummy-208 () none 208) + (dummy-209 () none 209) + (dummy-210 () none 210) + (dummy-211 () none 211) + (dummy-212 () none 212) + (dummy-213 () none 213) + (dummy-214 () none 214) + (dummy-215 () none 215) + (dummy-216 () none 216) + (dummy-217 () none 217) + ) + ) +|# + +;; (define-extern civilian-flee-post object) +;; (define-extern civilian-avoid-danger-post object) +;; (define-extern civilian-avoid-danger-post2 object) +;; (define-extern civilian-clear-path-post object) +;; (define-extern civilian-clear-path-post2 object) +;; (define-extern civilian-falling-post object) +;; (define-extern do-spline2 object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; guard ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype guard-anim-info (UNKNOWN) + ((anim-index UNKNOWN 2 :offset-assert 0) + (anim-index-front int32 :offset-assert 0) + (anim-index-back int32 :offset-assert 4) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype guard-global-info (UNKNOWN) + ((prev-yellow-hit int8 :offset-assert 4) + (prev-blue-hit int8 :offset-assert 5) + (knocked UNKNOWN 2 :offset-assert 8) + (knocked-land UNKNOWN 2 :offset-assert 16) + (anim-knocked-front int32 :offset-assert 8) + (anim-knocked-back int32 :offset-assert 12) + (anim-knocked-front-land int32 :offset-assert 16) + (anim-knocked-back-land int32 :offset-assert 20) + (yellow-hit-anim UNKNOWN 2 :offset-assert 24) + (yellow-land-anim UNKNOWN 2 :offset-assert 40) + (blue-hit-anim UNKNOWN 1 :offset-assert 56) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype guard-shoot-info (UNKNOWN) + ((anim-index int32 :offset-assert 0) + (start float :offset-assert 4) + (end float :offset-assert 8) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype crimson-guard (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern *crimson-guard-global-info* object) +;; (define-extern *crimson-guard-nav-enemy-info* object) +;; (define-extern *guard-min-id-hack* object) +;; (define-extern do-spline object) +;; (define-extern spread-lightning-lazer object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; citizen-norm ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype citizen-norm (civilian) + () + :method-count-assert 219 + :size-assert #x424 + :flag-assert #xdb03b00424 + (:methods + (dummy-218 () none 218) + ) + ) +|# + +;; (define-extern *citizen-norm-global-info* object) +;; (define-extern *citizen-norm-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; citizen-fat ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype citizen-fat (civilian) + () + :method-count-assert 218 + :size-assert #x424 + :flag-assert #xda03b00424 + (:methods + ) + ) +|# + +;; (define-extern *citizen-fat-global-info* object) +;; (define-extern *citizen-fat-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; citizen-chick ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype citizen-chick (civilian) + () + :method-count-assert 218 + :size-assert #x424 + :flag-assert #xda03b00424 + (:methods + ) + ) +|# + +;; (define-extern *citizen-chick-global-info* object) +;; (define-extern *citizen-chick-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; citizen-enemy ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype citizen-enemy (citizen) + ((next-update-target uint64 :offset-assert 964) + (minimap connection-minimap :offset-assert 972) + ) + :method-count-assert 203 + :size-assert #x3d4 + :flag-assert #xcb036003d4 + (:methods + (dummy-201 () none 201) + (dummy-202 () none 202) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; metalhead-predator ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype metalhead-predator-shot (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype metalhead-predator (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern *metalhead-predator-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; metalhead-grunt ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype metalhead-grunt (citizen-enemy) + ((patrol-anim grunt-anim-info :offset-assert 976) + (charge-anim grunt-anim-info :offset-assert 980) + (attack-anim grunt-anim-info :offset-assert 984) + (knocked-anim grunt-anim-info :offset-assert 988) + (yellow-hit-anim grunt-anim-info :offset-assert 992) + (blue-hit-anim grunt-anim-info :offset-assert 996) + (intro-path basic :offset-assert 1000) + (circle-radial-dist float :offset-assert 240) + (use-charge-anim-index int8 :offset-assert 1008) + (knocked-anim-index int8 :offset-assert 1009) + (jumping-ambush-path-pt int8 :offset-assert 1010) + (grunt-flags uint8 :offset-assert 1011) + (state-timeout2 uint64 :offset-assert 1012) + (next-warn-time uint64 :offset-assert 1020) + (dest vector :inline :offset-assert 1036) + (focus-pos vector :inline :offset-assert 348) + ) + :method-count-assert 212 + :size-assert #x430 + :flag-assert #xd403b00430 + (:methods + (dummy-203 () none 203) + (dummy-204 () none 204) + (dummy-205 () none 205) + (dummy-206 () none 206) + (dummy-207 () none 207) + (dummy-208 () none 208) + (dummy-209 () none 209) + (dummy-210 () none 210) + (dummy-211 () none 211) + ) + ) +|# + +;; (define-extern *metalhead-grunt-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; metalhead-flitter ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype metalhead-flitter (citizen-enemy) + ((move-angle float :offset-assert 976) + (heading basic :offset-assert 980) + (change-dir-time uint64 :offset-assert 988) + (last-change-dir uint64 :offset-assert 996) + (off-screen-timer uint64 :offset-assert 1004) + (amb-sound-timer uint64 :offset-assert 1012) + (attack-time uint64 :offset-assert 1020) + (target-pos vector :inline :offset-assert 1036) + (attack-pos vector :inline :offset-assert 1052) + (base-height float :offset-assert 1068) + ) + :method-count-assert 210 + :size-assert #x434 + :flag-assert #xd203c00434 + (:methods + (dummy-203 () none 203) + (dummy-204 () none 204) + (dummy-205 () none 205) + (dummy-206 () none 206) + (dummy-207 () none 207) + (dummy-208 () none 208) + (dummy-209 () none 209) + ) + ) +|# + +;; (define-extern *metalhead-flitter-nav-enemy-info* object) +;; (define-extern metalhead-flitter-fall-and-play-death-anim object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; traffic-engine ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype traffic-find-segment-struct (UNKNOWN) + ((best-seg nav-segment :offset-assert 0) + (best-rating float :offset-assert 4) + (dir vector :inline :offset-assert 16) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern *traffic-suppress-activation* object) +;; (define-extern *mysql-nav-graph* object) +;; (define-extern *traffic-rigid-body-queue* object) +;; (define-extern get-level-nav-graph-by-id object) +;; (define-extern add-debug-line-arrow object) +;; (define-extern traffic-los-clear? object) +;; (define-extern *guard-target-spots* object) +;; (define-extern *guard-id-spots* object) +;; (define-extern *guard-status-spots* object) +;; (define-extern update-guard-status-spots object) +;; (define-extern generate-target-spots object) +;; (define-extern *alert-level-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trail-graph ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trail ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype trail-vis-work (structure) + ((best-count uint32 :offset-assert 0) + (best-dist float :offset-assert 4) + (start-conn-id uint32 :offset-assert 8) + (p0 vector :inline :offset-assert 16) + (p1 vector :inline :offset-assert 32) + (best-node-id UNKNOWN 64 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #xb0 + :flag-assert #x9000000b0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; traffic-manager ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype traffic-manager (process) + ((traffic-engine basic :offset-assert 124) + (fast-spawn basic :offset-assert 128) + (dark-guard-ratio int32 :offset-assert 132) + (spawn-params traffic-object-spawn-params :inline :offset-assert 140) + ) + :method-count-assert 22 + :size-assert #xf8 + :flag-assert #x16008000f8 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + (dummy-16 () none 16) + (dummy-17 () none 17) + (dummy-18 () none 18) + (dummy-19 () none 19) + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +;; (define-extern *traffic-fast-spawn* object) +;; (define-extern draw-city-info object) +;; (define-extern vehicle-spawn object) +;; (define-extern citizen-spawn object) +;; (define-extern traffic-object-spawn object) +;; (define-extern type-from-vehicle-type object) +;; (define-extern traffic-manager-event-handler object) +;; (define-extern traffic-manager-init-by-other object) +;; (define-extern traffic-start object) +;; (define-extern traffic-kill object) +;; (define-extern riders-on object) +;; (define-extern riders-off object) +;; (define-extern ctywide-login object) +;; (define-extern ctywide-activate object) +;; (define-extern *traffic-alert-level-force* object) +;; (define-extern lwide-activate object) +;; (define-extern lwide-deactivate object) +;; (define-extern ctywide-deactivate object) +;; (define-extern ctywide-entity-hack object) +;; (define-extern lwide-entity-hack object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *security-texture-anim-array* object) +;; (define-extern set-security-color! object) +;; (define-extern set-security-flash! object) +;; (define-extern set-security-texture-masks! object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctywide-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype citywide-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern birth-func-race-poster object) +;; (define-extern birth-func-ctywide-baron-propoganda-ticker-rotate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype security-wall (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype fruit-stand (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cty-fruit-stand (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype cty-guard-turret (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype parking-spot (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype propa (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype baron-statue (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype burning-bush (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype barons-ship-lores (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype lurker-pipe-lid (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype ctyn-lamp (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern *fruit-check-ground-counter* object) +;; (define-extern fruit-check-ground-bounce object) +;; (define-extern fruit-sparticle-next-on-mode-1 object) +;; (define-extern fruit-stand-event-handler object) +;; (define-extern *cty-guard-turret-exploder-params* object) +;; (define-extern cty-guard-turret-event-handler object) +;; (define-extern *propa-sounds* object) +;; (define-extern *propa-sounds-class-3* object) +;; (define-extern *propa-sounds-class-2* object) +;; (define-extern *propa-sounds-class-1* object) +;; (define-extern *propa-sounds-metalheads* object) +;; (define-extern *propa-sounds-baron-construction* object) +;; (define-extern propa-pu->knocked-type object) +;; (define-extern *ctyn-lamp-exploder-params* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-tasks ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype city-bb-racepoint-info (structure) + ((bike-pos vector :inline :offset-assert 0) + (end-pos vector :inline :offset-assert 16) + (bike-angle float :offset-assert 32) + (map basic :offset-assert 36) + (time float :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +;; (define-extern wait-for-speech-end object) +;; (define-extern *city-bb-racepoint-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-speech ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern restore-city-speeches object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyport-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype boat-manager (process) + ((mesh basic :offset-assert 124) + (paths UNKNOWN 4 :offset-assert 128) + ) + :method-count-assert 16 + :size-assert #x94 + :flag-assert #x1000200094 + (:methods + (dummy-9 () none 9) + (dummy-10 () none 10) + (dummy-11 () none 11) + (dummy-12 () none 12) + (dummy-13 () none 13) + (dummy-14 () none 14) + (dummy-15 () none 15) + ) + ) +|# + +#| +(deftype boat-base (vehicle) + ((angle float :offset-assert 876) + (y-rot float :offset-assert 880) + (path-num uint32 :offset-assert 884) + (path-index float :offset-assert 888) + ) + :method-count-assert 149 + :size-assert #x380 + :flag-assert #x9503000380 + (:methods + (dummy-144 () none 144) + (dummy-145 () none 145) + (dummy-146 () none 146) + (dummy-147 () none 147) + (dummy-148 () none 148) + ) + ) +|# + +#| +(deftype barge (boat-base) + ((engine uint32 :offset-assert 892) + (bow-wash uint32 :offset-assert 896) + ) + :method-count-assert 149 + :size-assert #x388 + :flag-assert #x9503100388 + (:methods + ) + ) +|# + +;; (define-extern *barge-constants* object) +;; (define-extern *boat-nav-callback-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-pilot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *pilot-mods* object) +;; (define-extern target-pilot-handler object) +;; (define-extern target-pilot-pidax-enter object) +;; (define-extern target-pilot-pidax-exit object) +;; (define-extern target-pilot-exit object) +;; (define-extern target-pilot-init object) +;; (define-extern pilot-on-ground? object) +;; (define-extern target-pilot-post object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pilot-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-pilot-start object) +;; (define-extern target-pilot-bike-anim-loop object) +;; (define-extern target-pilot-car-anim-loop object) +;; (define-extern target-daxter-pilot-car-anim-loop object) +;; (define-extern target-pilot-trans object) +;; (define-extern target-pilot-signal-ready object) +;; (define-extern target-pilot-stance object) +;; (define-extern target-pilot-impact object) +;; (define-extern *pilot-get-on-mods* object) +;; (define-extern target-pilot-get-on object) +;; (define-extern *pilot-get-off-mods* object) +;; (define-extern target-pilot-get-off object) +;; (define-extern target-pilot-grab object) +;; (define-extern target-pilot-clone-anim object) +;; (define-extern target-pilot-edge-grab object) +;; (define-extern target-pilot-hit object) +;; (define-extern target-pilot-death object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kid-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype kid (bot) + ((travel-anim-interp float :offset-assert 988) + (arrest-attempt-time uint64 :offset-assert 996) + (arrestor-handle uint64 :offset-assert 1004) + ) + :method-count-assert 235 + :size-assert #x3f8 + :flag-assert #xeb038003f8 + (:methods + (dummy-225 () none 225) + (dummy-226 () none 226) + (dummy-227 () none 227) + (dummy-228 () none 228) + (dummy-229 () none 229) + (dummy-230 () none 230) + (dummy-231 () none 231) + (dummy-232 () none 232) + (dummy-233 () none 233) + (dummy-234 () none 234) + ) + ) +|# + +#| +(deftype kidt-wait-spot (ai-task) + ((check-done basic :offset-assert 32) + (which-spot int8 :offset-assert 36) + (num-spots uint8 :offset-assert 37) + (spot-indexes UNKNOWN 6 :offset-assert 38) + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kor-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype kor (bot) + ((travel-anim-interp float :offset-assert 988) + (arrest-attempt-time uint64 :offset-assert 996) + (arrestor-handle uint64 :offset-assert 1004) + ) + :method-count-assert 235 + :size-assert #x3f8 + :flag-assert #xeb038003f8 + (:methods + (dummy-225 () none 225) + (dummy-226 () none 226) + (dummy-227 () none 227) + (dummy-228 () none 228) + (dummy-229 () none 229) + (dummy-230 () none 230) + (dummy-231 () none 231) + (dummy-232 () none 232) + (dummy-233 () none 233) + (dummy-234 () none 234) + ) + ) +|# + +#| +(deftype kort-wait-spot (ai-task) + ((check-done basic :offset-assert 32) + (which-spot int8 :offset-assert 36) + (num-spots uint8 :offset-assert 37) + (spot-indexes UNKNOWN 6 :offset-assert 38) + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hal3-course ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hal3-course (bot-course) + ((transport uint64 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ;; field default-check-too-far uses ~A with a signed load + ) +|# + +#| +(deftype hal-help-kid (hal) + ((nav-mesh basic :offset-assert 1020) + (alley-bbox bounding-box :inline :offset-assert 1036) + (suppress UNKNOWN 2 :offset-assert 1068) + ) + :method-count-assert 229 + :size-assert #x490 + :flag-assert #xe504100490 + (:methods + (dummy-227 () none 227) + (dummy-228 () none 228) + ) + ) +|# + +;; (define-extern *hal3-course* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kid-task ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kid ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *kid-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kid-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kor-task ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kor ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype kor-anim-info (structure) + ((anim-index int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern *kor-nav-enemy-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kor-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kid3-course ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern kid-update-during-battle object) +;; (define-extern *kid3-course* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kor3-course ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern kor-update-during-battle object) +;; (define-extern *kor3-course* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ruins-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-spheres-ruins* object) +;; (define-extern *ocean-colors-ruins* object) +;; (define-extern *ocean-near-indices-ruins* object) +;; (define-extern *ocean-trans-indices-ruins* object) +;; (define-extern *ocean-mid-indices-ruins* object) +;; (define-extern *ocean-mid-masks-ruins* object) +;; (define-extern *ocean-map-ruins* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ruins-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype flag (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype ruins-precipice (process-drawable) + ((play? basic :offset-assert 196) + ) + :method-count-assert 21 + :size-assert #xcc + :flag-assert #x15005000cc + (:methods + (dummy-20 () none 20) + ) + ) +|# + +;; (define-extern ruins-slide-sparks object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mechtest-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mechblock (process-drawable) + ((origin vector :inline :offset-assert 204) + (drop-point vector :inline :offset-assert 252) + (allow-drag? basic :offset-assert 268) + (reset-on-land? basic :offset-assert 272) + (hit-something? basic :offset-assert 276) + (attack-id uint32 :offset-assert 280) + (next-entity basic :offset-assert 284) + ) + :method-count-assert 25 + :size-assert #x124 + :flag-assert #x1900b00124 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + (dummy-24 () none 24) + ) + ) +|# + +#| +(deftype throwblock (mechblock) + () + :method-count-assert 25 + :size-assert #x124 + :flag-assert #x1900b00124 + (:methods + ) + ) +|# + +#| +(deftype pushblock (mechblock) + () + :method-count-assert 25 + :size-assert #x124 + :flag-assert #x1900b00124 + (:methods + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ruins-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ruins-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +;; (define-extern check-drop-level-ruins-rubble object) +;; (define-extern ruins-bird-bob-func object) +;; (define-extern sparticle-ruins-bird-moon object) +;; (define-extern check-drop-level-ruins-tower-userdata-nosplat object) +;; (define-extern check-drop-level-ruins-tower-userdata object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; breakable-wall ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rbw-side (basic) + ((break-anim basic :offset-assert 4) + (end-anim basic :offset-assert 8) + (break-prim-mask uint8 :offset-assert 12) + (break-root-prim-joint int16 :offset-assert 14) + (break-bounds-joint int16 :offset-assert 16) + (break-root-prim-sphere sphere :inline :offset-assert 32) + (break-bounds-sphere sphere :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype rbw-info (basic) + ((skel-group basic :offset-assert 4) + (anim basic :offset-assert 8) + (sides basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype ruins-breakable-wall (process-focusable) + ((info basic :offset-assert 200) + (side basic :offset-assert 204) + (nav-mesh basic :offset-assert 208) + ) + :method-count-assert 31 + :size-assert #xd8 + :flag-assert #x1f006000d8 + (:methods + (dummy-27 () none 27) + (dummy-28 () none 28) + (dummy-29 () none 29) + (dummy-30 () none 30) + ) + ) +|# + +;; (define-extern *rbw-infos* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pillar-collapse ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ruins-pillar-collapse (process-drawable) + ((player-attack-id int32 :offset-assert 196) + (fall-anim-index int32 :offset-assert 200) + (hit-points int8 :offset-assert 204) + (mesh-trans UNKNOWN 3 :offset-assert 205) + (mesh-joint UNKNOWN 2 :offset-assert 208) + (deadly? basic :offset-assert 212) + (art-name basic :offset-assert 216) + (anim basic :offset-assert 220) + ) + :method-count-assert 24 + :size-assert #xe4 + :flag-assert #x18007000e4 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + (dummy-23 () none 23) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ruins-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sinking-plat (rigid-body-platform) + ((anchor-point vector :inline :offset-assert 380) + ) + :method-count-assert 57 + :size-assert #x190 + :flag-assert #x3901100190 + (:methods + ) + ) +|# + +#| +(deftype beam (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype ruins-bridge (drop-plat) + () + :method-count-assert 36 + :size-assert #x140 + :flag-assert #x2400c00140 + (:methods + ) + ) +|# + +#| +(deftype ruins-drop-plat (drop-plat) + () + :method-count-assert 36 + :size-assert #x140 + :flag-assert #x2400c00140 + (:methods + ) + ) +|# + +;; (define-extern *ruins-sinking-platform-constants* object) +;; (define-extern ruins-activate object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rapid-gunner ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rapid-gunner (nav-enemy) + ((los los-control :inline :offset-assert 604) + (joint basic :offset-assert 752) + (joint-blend float :offset-assert 756) + (joint-enable basic :offset-assert 760) + (shot-timer uint64 :offset-assert 764) + (predict-timer uint64 :offset-assert 772) + (target-prev-pos vector :inline :offset-assert 780) + (target-next-pos vector :inline :offset-assert 796) + (focus-dir vector :inline :offset-assert 812) + (y-diff float :offset-assert 828) + (shots-fired uint32 :offset-assert 832) + (spin-up-angle float :offset-assert 836) + (spin-up-timer uint64 :offset-assert 844) + (shoot-anim-index int32 :offset-assert 852) + (status-flags uint64 :offset-assert 860) + (start-pos vector :inline :offset-assert 876) + (dest-pos vector :inline :offset-assert 892) + (hop-dir vector :inline :offset-assert 908) + (roam-radius float :offset-assert 924) + ) + :method-count-assert 187 + :size-assert #x3a4 + :flag-assert #xbb033003a4 + (:methods + (dummy-178 () none 178) + (dummy-179 () none 179) + (dummy-180 () none 180) + (dummy-181 () none 181) + (dummy-182 () none 182) + (dummy-183 () none 183) + (dummy-184 () none 184) + (dummy-185 () none 185) + (dummy-186 () none 186) + ) + ) +|# + +#| +(deftype shield-gunner (rapid-gunner) + () + :method-count-assert 187 + :size-assert #x3a4 + :flag-assert #xbb033003a4 + (:methods + ) + ) +|# + +;; (define-extern *rapid-gunner-nav-enemy-info* object) +;; (define-extern vector-average-copy! object) +;; (define-extern *aim-pos* object) +;; (define-extern rapid-gunner-common-post object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collection-task ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype krew-collection-item (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +;; (define-extern krew-collection-item-init-by-other object) +;; (define-extern krew-collection-item-spawn object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyasha-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tanker-grunt (grunt) + ((expensive-gnd-collide? basic :offset-assert 688) + ) + :method-count-assert 186 + :size-assert #x2b8 + :flag-assert #xba024002b8 + (:methods + ) + ) +|# + +#| +(deftype tanker-juicer (juicer) + ((expensive-gnd-collide? basic :offset-assert 844) + ) + :method-count-assert 185 + :size-assert #x354 + :flag-assert #xb902e00354 + (:methods + ) + ) +|# + +#| +(deftype tanker-container (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + (dummy-22 () none 22) + ) + ) +|# + +#| +(deftype tanker-crash (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +#| +(deftype tanker-deadly (process-drawable) + ((track-joint int32 :offset-assert 196) + (attack-id uint32 :offset-assert 200) + (die-time uint64 :offset-assert 204) + (prev-pos vector :inline :offset-assert 220) + ) + :method-count-assert 22 + :size-assert #xf0 + :flag-assert #x16007000f0 + (:methods + (dummy-20 () none 20) + (dummy-21 () none 21) + ) + ) +|# + +;; (define-extern tanker-container-event-handler object) +;; (define-extern tanker-deadly-init-by-other object) +;; (define-extern tanker-spawn-deadly-barrels object) +;; (define-extern tanker-spawn-deadly-cab object) +;; (define-extern tanker-spawn-deadly-trailers object) +;; (define-extern tanker-spawn-deadly-container object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ash4-course ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ashelin-tanker (ashelin) + ((suppress traffic-suppression-params :inline :offset-assert 1036) + ) + :method-count-assert 252 + :size-assert #x439 + :flag-assert #xfc03c00439 + (:methods + (dummy-251 () none 251) + ) + ) +|# + +;; (define-extern *ash4-course* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hiphog-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hip-trophy-a (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype hip-trophy-d (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype hip-trophy-f (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype hip-trophy-g (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype hip-trophy-i (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype hip-trophy-j (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype hip-trophy-n (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype hip-trophy-m (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hiphog-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hiphog-part (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ;; Failed to read fields. + ) +|# + +#| +(deftype hiphog-mirror-wf-pt (UNKNOWN) + ((x float :offset-assert 0) + (y float :offset-assert 4) + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern birth-func-rotate-minute object) +;; (define-extern birth-func-rotate-hour object) +;; (define-extern birth-func-rotate-second object) +;; (define-extern *hiphog-mirror-sheen-waveform* object) +;; (define-extern hiphog-mirror-sheen-func object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hiphog-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hip-door-b (com-airlock) + () + :method-count-assert 28 + :size-assert #x174 + :flag-assert #x1c01000174 + (:methods + ) + ) +|# + +#| +(deftype hip-whack-a-metal (process-taskable) + () + :method-count-assert 38 + :size-assert #x120 + :flag-assert #x2600a00120 + (:methods + ) + ) +|# + +#| +(deftype hip-mirror (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (dummy-20 () none 20) + ) + ) +|# + +#| +(deftype sig-npc (process-taskable) + () + :method-count-assert 38 + :size-assert #x120 + :flag-assert #x2600a00120 + (:methods + ) + ) +|# + +;; (define-extern hiphog-activate object) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-upload ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *generic-envmap-texture* object) ;; texture +;; (define-extern *default-envmap-shader* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-finish ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; \ No newline at end of file diff --git a/decompiler/config/jak2_ntsc_v1.jsonc b/decompiler/config/jak2_ntsc_v1.jsonc index 9b11d97d07..458aae7d98 100644 --- a/decompiler/config/jak2_ntsc_v1.jsonc +++ b/decompiler/config/jak2_ntsc_v1.jsonc @@ -87,7 +87,7 @@ "inputs_file": "decompiler/config/jak2/inputs.jsonc", "art_info_file": "decompiler/config/jak2/art_info.jsonc", "import_deps_file": "decompiler/config/jak2/import_deps.jsonc", - "all_types_file": "decompiler/config/all-types2.gc", + "all_types_file": "decompiler/config/jak2/all-types.gc", // optional: a predetermined object file name map from a file.