decomp: decompile target-util | logic-target (#662)

* add IR syntax highlighting

* set the filterFileRegex properly!

* stash

* decompiler: Add print if conditional fails

* decomp: Mostly finish `target-util`

* decomp: figured out a bit more with `target-util`, a bit stuck now

* decomp: *deep breath* `logic-target` mostly complete

* decompiler: More robust arg_count checking for `format` calls

* decomp: some more work in `target-util`

* fix sllv usage

* decomp: `logic-target` is compiling

* decomp: `target-util` very close - blocked by decomp issue!

* decomp: finish `target-util` except for one issue

#772

* demp: update goal_src

* linting

* add back the one remaining method

* address feedback, update source files
This commit is contained in:
Tyler Wilding 2021-08-22 20:46:37 -04:00 committed by GitHub
parent 928a12debd
commit 991a438927
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
55 changed files with 10582 additions and 436 deletions

View file

@ -6,6 +6,7 @@
#include "Register.h"
#include "common/util/assert.h"
#include <stdexcept>
#include "third-party/fmt/core.h"
namespace decompiler {
namespace Reg {
@ -123,10 +124,16 @@ Register::Register(Reg::RegisterKind kind, uint32_t num) {
case Reg::VF:
case Reg::COP0:
case Reg::VI:
assert(num < 32);
if (num > 32) {
fmt::print("RegisterKind: {}, greater than 32: {}\n", kind, num);
assert(false);
}
break;
case Reg::SPECIAL:
assert(num < Reg::MAX_SPECIAL);
if (num > 4) {
fmt::print("Special RegisterKind: {}, greater than 4: {}\n", kind, num);
assert(false);
}
break;
default:
assert(false);

View file

@ -1193,6 +1193,13 @@ TypeState CallOp::propagate_types_internal(const TypeState& input,
arg_count = arg_type.get_format_string_arg_count();
}
if (arg_count + 2 > 8) {
throw std::runtime_error(
"Call to `format` pushed the arg-count beyond the acceptable arg limit (8), do you "
"need to add "
"a code to the ignore lists?");
}
TypeSpec format_call_type("function");
format_call_type.add_arg(TypeSpec("object")); // destination
format_call_type.add_arg(TypeSpec("string")); // format string
@ -1201,6 +1208,7 @@ TypeState CallOp::propagate_types_internal(const TypeState& input,
}
format_call_type.add_arg(TypeSpec("object"));
arg_count += 2; // for destination and format string.
m_call_type = format_call_type;
m_call_type_set = true;

View file

@ -950,7 +950,8 @@ void SimpleExpressionElement::update_from_stack_add_i(const Env& env,
result->push_back(pool.alloc_element<DerefElement>(args.at(0), rd_ok.addr_of, tokens));
return;
} else {
throw std::runtime_error("Failed to match product_with_constant inline array access 1.");
throw std::runtime_error(fmt::format(
"Failed to match product_with_constant inline array access 1 at Op. {}", m_my_idx));
}
}
} else if (arg0_type.kind == TP_Type::Kind::PRODUCT_WITH_CONSTANT &&
@ -4105,10 +4106,9 @@ void ConditionElement::update_from_stack(const Env& env,
}
} else if (m_src[i]->is_sym_val() && m_src[i]->get_str() == "#f") {
source_types.push_back(TypeSpec("symbol"));
}
else {
throw std::runtime_error("Unsupported atom in ConditionElement::update_from_stack");
} else {
throw std::runtime_error("Unsupported atom in ConditionElement::update_from_stack: " +
m_src[i]->to_string(env));
}
}
if (m_flipped) {

View file

@ -2215,7 +2215,6 @@
(point-toward-point! (_type_ vector) quaternion 12)
(seek-toward-yaw-angle! (_type_ float float int) quaternion 13)
(set-yaw-angle-clear-roll-pitch! (_type_ float) quaternion 14)
(set-roll-to-grav! (_type_ float) quaternion 15)
(set-roll-to-grav-2! (_type_ float) quaternion 16)
(rotate-toward-orientation! (_type_ quaternion float float) quaternion 17)
@ -9621,7 +9620,7 @@
;; - Types
(deftype surface (basic)
((name basic :offset-assert 4)
((name symbol :offset-assert 4)
;; data went here
(turnv float :offset-assert 8)
(turnvv float :offset-assert 12)
@ -9646,15 +9645,15 @@
(slope-up-traction float :offset-assert 88)
(align-speed float :offset-assert 92)
;; hook went here
(active-hook basic :offset 128)
(touch-hook basic :offset-assert 132)
(impact-hook basic :offset-assert 136)
(active-hook (function none) :offset 128) ;; from logic-target::flag-setup not 100% sure but seems to pass no args
(touch-hook (function none) :offset-assert 132) ;; from logic-target::flag-setup not 100% sure but seems to pass no args
(impact-hook function :offset-assert 136)
(mult-hook (function surface surface surface int none) :offset-assert 140)
;; dataw went here
(mode basic :offset-assert 144)
(mode symbol :offset-assert 144)
(flags uint32 :offset-assert 148)
(data float 30 :offset 8)
(hook basic 4 :offset 128)
(hook function 4 :offset 128)
(dataw uint32 2 :offset 144)
)
:method-count-assert 9
@ -10007,8 +10006,8 @@
((trans vector :inline :offset-assert 0)
(vector vector :inline :offset-assert 16)
(intersection vector :inline :offset-assert 32)
(attacker uint64 :offset-assert 48) ;; handle
(invinc-time uint64 :offset-assert 56)
(attacker handle :offset-assert 48)
(invinc-time uint64 :offset-assert 56) ;; likely useconds?
(mask uint32 :offset-assert 64)
(mode symbol :offset-assert 68)
(shove-back meters :offset-assert 72)
@ -10025,13 +10024,13 @@
:flag-assert #xa00000068
;; field handle is likely a value type
(:methods
(dummy-9 () none 9)
(dummy-9 (_type_ attack-info) none 9)
)
)
(deftype ground-tween-info (structure)
((chan uint8 3 :offset-assert 0)
(blend uint32 3 :offset-assert 4)
(blend float 3 :offset-assert 4)
(group uint32 5 :offset-assert 16)
)
:method-count-assert 9
@ -10164,7 +10163,7 @@
)
(deftype swingpole (process)
((root basic :offset-assert 112)
((root trsq :offset-assert 112)
(dir vector :inline :offset-assert 128)
(range meters :offset-assert 144)
(edge-length meters :offset-assert 148)
@ -10925,7 +10924,7 @@
:flag-assert #x1e00000054
(:methods
(new (symbol type basic uint int) _type_ 0)
(dummy-28 () none 28)
(dummy-28 (_type_) none 28)
(dummy-29 () none 29)
)
)
@ -10948,9 +10947,9 @@
:flag-assert #x38000000b8
(:methods
(new (symbol type process collide-list-enum) _type_)
(dummy-28 () none 28)
(TODO-RENAME-28 (_type_) none 28)
(dummy-29 () none 29)
(dummy-30 () none 30)
(TODO-RENAME-30 (_type_ vector) none 30)
(dummy-31 () none 31)
(dummy-32 () none 32)
(dummy-33 (_type_ vector uint) none 33)
@ -10960,20 +10959,20 @@
(dummy-37 () none 37)
(dummy-38 () none 38)
(dummy-39 () none 39)
(dummy-40 () none 40)
(dummy-40 (_type_ object) none 40) ;; TODO - object unknown, asm function, passed to a method 15...of a type ??
(dummy-41 () none 41)
(dummy-42 () none 42)
(dummy-43 () none 43)
(dummy-44 (_type_) none 44)
(dummy-45 (_type_) none 45)
(dummy-46 () none 46)
(dummy-46 (_type_) none 46)
(dummy-47 (_type_) none 47)
(dummy-48 (_type_) none 48)
(dummy-49 () none 49)
(dummy-50 () none 50)
(dummy-50 (_type_) none 50)
(dummy-51 () none 51)
(dummy-52 () none 52)
(dummy-53 () none 53)
(dummy-53 (_type_ int int int) none 53)
(dummy-54 (_type_ int int) none 54)
(dummy-55 () none 55)
)
@ -11062,26 +11061,117 @@
(deftype control-info (collide-shape-moving)
(
(some-quaternion quaternion :offset 496)
(unknown-vector00 vector :inline :offset 576)
(unknown-surface surface :offset 660)
(unknown-symbol symbol :offset 664)
(unknown-qword uint128 :offset 1136)
(unknown-vector10 vector :inline :offset 1216)
(unknown-vector11 vector :inline :offset 1232)
(unknown-vector12 vector :inline :offset 1248)
(unknown-vector13 vector :inline :offset 1264)
(unknown-vector00 vector :inline :offset 448) ;; from - logic-target::build-conversions
(unknown-vector01 vector :inline :offset 464) ;; from - logic-target::turn-to-vector
(unknown-vector02 vector :inline :offset 480) ;; from - logic-target::do-rotations2
(unknown-quaternion00 quaternion :inline :offset 496) ;; from - target-util::(method 27 control-info)
(unknown-quaternion01 quaternion :inline :offset 512) ;; from - logic-target::do-rotations2
(unknown-float00 float :offset 528) ;; from - logic-target::do-rotations2
(unknown-float01 float :offset 532)
(unknown-float02 float :offset 536) ;; from - logic-target::add-thrust
(unknown-vector10 vector :inline :offset 544) ;; from - logic-target::flat-setup
(unknown-vector11 vector :inline :offset 560) ;; from - logic-target::target-no-move-post
(unknown-vector12 vector :inline :offset 576)
(unknown-vector13 vector :inline :offset 608) ;; from - logic-target::target-no-move-post
(unknown-dynamics00 dynamics :offset 656) ;; from - logic-target::bend-gravity
(unknown-surface00 surface :offset 660)
(unknown-surface01 surface :offset 664) ;; not a symbol - target-util::target-align-vel-z-adjust
(unknown-cpad-info00 cpad-info :offset 668) ;; not a symbol - target-util::move-legs?
(unknown-float10 float :offset 672) ;; from - logic-target::turn-to-vector
(unknown-float11 float :offset 676) ;; from - logic-target::turn-to-vector
(unknown-float12 float :offset 680) ;; from - logic-target::turn-to-vector
(unknown-float13 float :offset 684) ;; from - logic-target::turn-to-vector
(unknown-vector20 vector :inline :offset 688) ;; from - logic-target::turn-to-vector
(unknown-vector21 vector :inline :offset 704) ;; from - logic-target::turn-to-vector
(unknown-vector22 vector :inline :offset 720) ;; from - logic-target::turn-to-vector
(unknown-vector23 vector :inline :offset 736) ;; from - logic-target::turn-to-vector
; (unknown-dword-temp-01 uint64 :offset 776) ;; from - logic-target::read-pad
(unknown-vector-array00 vector 7 :inline :offset 752) ;; from - logic-target::turn-to-vector
(unknown-vector30 vector :inline :offset 880) ;; from - logic-target::read-pad
(unknown-vector31 vector :inline :offset 896) ;; from - logic-target::read-pad
(unknown-float20 float :offset 912) ;; from - logic-target::read-pad
(unknown-float21 float :offset 916) ;; from - logic-target::read-pad
(unknown-dword00 uint64 :offset 920) ;; from - logic-target::read-pad
(unknown-matrix00 matrix :inline :offset 928) ;; from - target-util::(method 16 target)
(unknown-matrix01 matrix :inline :offset 992) ;; from - target-util::(method 16 target)
(unknown-matrix02 matrix :inline :offset 1056) ;; from - logic-target::joint-points
(unknown-qword00 uint128 :offset 1136)
(unknown-float30 float :offset 1140) ;; from - logic-target::target-calc-camera-pos
(unknown-vector40 vector :inline :offset 1152) ;; from - logic-target::target-real-post
(unknown-float40 float :offset 1176) ;; from - logic-target::do-rotations2
(unknown-int00 int32 :offset 1180) ;; from - logic-target::joint-points
(unknown-float50 float :offset 1168) ;; from - logic-target::target-real-post
(unknown-vector50 vector :inline :offset 1184) ;; from - logic-target::build-conversions
(unknown-vector51 vector :inline :offset 1200) ;; from - logic-target::build-conversions
(unknown-vector52 vector :inline :offset 1216)
(unknown-vector53 vector :inline :offset 1232)
(unknown-vector54 vector :inline :offset 1248)
(unknown-vector55 vector :inline :offset 1264)
(unknown-dword10 int64 :offset 1288) ;; from - target-util::can-jump?
(unknown-float60 float :offset 1300) ;; from - target-util::can-duck?
(unknown-float61 float :offset 1304) ;; from - target-util::target-align-vel-z-adjust
(unknown-float62 float :offset 1308) ;; from - target-util::target-print-stats
(unknown-float63 float :offset 1312) ;; from - logic-target::target-compute-slopes
(unknown-float64 float :offset 1316) ;; from - logic-target::target-compute-slopes
(unknown-dword20 int64 :offset 1320) ;; from target-util::turn-around? - TODO
(unknown-dword21 int64 :offset 1328) ;; from target-util::turn-around? - TODO
(unknown-vector60 vector :inline :offset 1456) ;; from - logic-target::add-thrust
(unknown-vector61 vector :inline :offset 1504) ;; from - logic-target::add-thrust
(unknown-float70 float :offset 1520) ;; from - logic-target::add-thrust
(unknown-vector70 vector :inline :offset 1536) ;; from - logic-target::add-thrust
(unknown-handle00 handle :offset 1600) ;; from logic-target::reset-target-state
(unknown-sphere-array00 collide-shape-prim-sphere 3 :offset 1608) ;; from target-util::target-collide-set! and from target-util::target-danger-set!
(unknown-sphere00 collide-shape-prim-sphere :offset 1632) ;; from target-util::target-danger-set!
(unknown-sphere01 collide-shape-prim-sphere :offset 1636) ;; from target-util::target-danger-set!
(unknown-sphere02 collide-shape-prim-sphere :offset 1640) ;; from target-util::target-danger-set!
(unknown-dword30 int64 :offset 1672) ;; from target-util::can-hands?
(unknown-dword31 int64 :offset 1680) ;; from target-util::can-hands?
(unknown-dword32 int64 :offset 1688) ;; from target-util::can-feet?
(unknown-dword33 int64 :offset 1696) ;; from target-util::can-feet?
(unknown-float80 float :offset 1724) ;; from logic-target::bend-gravity
(unknown-float81 float :offset 1728) ;; from logic-target::bend-gravity
(unknown-float82 float :offset 1732) ;; from logic-target::bend-gravity
(unknown-vector80 vector :inline :offset 1744) ;; from logic-target::joint-points
(unknown-cspace00 cspace :inline :offset 1760) ;; from logic-target::joint-points
(unknown-vector90 vector :inline :offset 1776) ;; from logic-target::target-compute-edge
(unknown-vector91 vector :inline :offset 1792) ;; from logic-target::target-compute-edge
(unknown-vector92 vector :inline :offset 1824) ;; from logic-target::joint-points
(unknown-cspace10 cspace :inline :offset 1808) ;; from logic-target::joint-points
(unknown-symbol00 symbol :offset 1840) ;; from target-util::target-danger-set!
(unknown-float90 float :offset 1844) ;; from target-util::target-danger-set!
(unknown-float91 float :offset 1848) ;; from target-util::target-collide-set!
(unknown-vector-array10 vector 16 :inline :offset 1856) ;; from target-util::turn-around?
(unknown-float100 float :offset 2112) ;; from target-util::turn-around?
(unknown-int10 int32 :offset 2116) ;; from target-util::turn-around?
(unknown-float110 float :offset 2120) ;; from logic-target::target-compute-edge
(unknown-vector100 vector :inline :offset 2128) ;; from logic-target::target-compute-edge
(unknown-vector101 vector :inline :offset 2144) ;; from logic-target::target-compute-edge
(unknown-dword40 int64 :offset 2160) ;; from logic-target::target-compute-edge
(unknown-dword41 int64 :offset 2168) ;; from logic-target::target-compute-edge
(unknown-handle10 handle :offset 2176) ;; from logic-target::target-compute-pole - probably a swingpole
(unknown-int20 int32 :offset 2188) ;; from logic-target::target-compute-pole
(unknown-vector110 vector :inline :offset 2320) ;; from logic-target::flag-setup
(unknown-vector111 vector :inline :offset 2336) ;; from logic-target::flag-setup
(unknown-int30 int32 :offset 2384) ;; from target-util::target-danger-set!
(unknown-dword50 int64 :offset 2392) ;; from target-util::target-start-attack
(unknown-dword51 int64 :offset 2400) ;; from target-util::target-start-attack
(unknown-symbol10 symbol :offset 2428) ;; from logic-target::post-flag-setup
(unknown-halfword00 int16 :offset 2488) ;; from logic-target::target-move-dist
;; these were determined from racer-collision-reaction.
(history-length int16 :offset 2490)
(history-data collide-history 128 :inline :offset-assert 2496)
(pad uint32 27)
(unknown-dword60 int64 :offset 18952) ;; from logic-target::add-thrust
(unknown-int40 int32 :offset 18880) ;; from logic-target::flag-setup
(unknown-dword70 int64 :offset 18888) ;; from logic-target::post-flag-setup
(unknown-dword71 int64 :offset 18896) ;; from logic-target::post-flag-setup
(unknown-dword72 int64 :offset 18912) ;; from logic-target::reset-target-state
(pad uint32 7)
)
:size-assert #x4a2c
:method-count-assert 65
:flag-assert #x4100004a2c
)
;; ----------------------
;; File - collide-touch-h
;; Source Path - engine/collide/collide-touch-h.gc
@ -11209,8 +11299,8 @@
:size-assert #x144
:flag-assert #xb00000144
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-9 (_type_) symbol 9)
(dummy-10 (_type_) symbol 10)
)
)
@ -11510,8 +11600,10 @@
;; - Types
(declare-type sidekick basic)
(declare-type collide-cache basic)
(deftype target (process-drawable)
((control control-info :score 100 :offset 112)
(fact-info-target fact-info-target :score 100 :offset 144)
(skel2 basic :offset-assert 176)
(racer basic :offset-assert 180)
(game game-info :offset-assert 184)
@ -11542,7 +11634,7 @@
:flag-assert #x1501e00248
;; inherited inspect of process-drawable
(:methods
(dummy-20 () none 20)
(dummy-20 (_type_ collide-cache) none 20)
)
)
@ -11890,7 +11982,7 @@
((num-tris int32 :offset-assert 4)
(num-prims int32 :offset-assert 8)
(ignore-mask uint32 :offset-assert 12)
(proc basic :offset-assert 16)
(proc process-drawable :offset-assert 16) ;; types: target
(collide-box bounding-box :inline :offset-assert 32)
(collide-box4w bounding-box4w :inline :offset-assert 64)
(collide-with uint64 :offset-assert 96)
@ -11903,11 +11995,11 @@
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-11 (_type_ collide-using-spheres-params) none 11)
(dummy-12 (_type_ vector float uint process bone uint) float 12) ;; TODO - bone not confirmed
(dummy-13 () none 13)
(dummy-13 (_type_ int uint process-drawable uint) none 13)
(dummy-14 () none 14)
(dummy-15 () none 15)
(dummy-15 (_type_ int) none 15)
(dummy-16 (_type_ vector float uint process uint) none 16)
(dummy-17 () none 17)
(dummy-18 () none 18)
@ -16696,13 +16788,13 @@
(define-extern set-aspect-ratio (function symbol none))
(define-extern set-video-mode (function symbol none))
;; - Unknowns
(define-extern scf-get-volume (function int))
(define-extern scf-get-language (function uint))
(define-extern scf-get-aspect (function uint))
(define-extern *boot-video-mode* int) ;; TODO - a guess
;; - Symbols
(define-extern *boot-video-mode* int)
;; ----------------------
@ -17105,7 +17197,7 @@
;; - Functions
(define-extern matrix-local->world (function symbol matrix))
(define-extern matrix-local->world (function symbol symbol matrix))
(define-extern update-snow function)
(define-extern check-drop-level-rain function)
(define-extern update-rain function)
@ -17757,7 +17849,7 @@
(align-offset meters :offset 100)
(swim-depth meters :offset-assert 104)
(bob smush-control :inline :offset-assert 112)
(volume uint64 :offset-assert 144) ;; handle?
(volume handle :offset-assert 144) ;; handle?
(bottom vector 2 :inline :offset-assert 160)
(top vector 2 :inline :offset-assert 192)
(enter-water-pos vector :inline :offset-assert 224)
@ -17929,7 +18021,7 @@
(define-extern master-base-region function)
(define-extern setup-slave-for-hopefull function)
(define-extern master-is-hopeful-better? function)
(define-extern target-cam-pos function)
(define-extern target-cam-pos (function object)) ;; TODO - strange, not a vector?
(define-extern cam-master-init (function none :behavior camera-master))
;; - Symbols
@ -18861,130 +18953,130 @@
;; - Types
; (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)
; (wheel-duration uint64 :offset-assert 80)
; (wheel-jump-pre-window uint64 :offset-assert 88)
; (wheel-jump-post-window uint64 :offset-assert 96)
; (wheel-timeout uint64 :offset-assert 104)
; (wheel-speed-min meters :offset-assert 112)
; (wheel-speed-inc meters :offset-assert 116)
; (wheel-flip-duration uint64 :offset-assert 120)
; (wheel-flip-height meters :offset-assert 128)
; (wheel-flip-dist meters :offset-assert 132)
; (wheel-flip-art-height meters :offset-assert 136)
; (wheel-flip-art-dist meters :offset-assert 140)
; (duck-slide-distance meters :offset-assert 144)
; (fall-far meters :offset-assert 148)
; (fall-far-inc meters :offset-assert 152)
; (attack-timeout uint64 :offset-assert 160)
; (ground-timeout uint64 :offset-assert 168)
; (slide-down-timeout uint64 :offset-assert 176)
; (fall-timeout uint64 :offset-assert 184)
; (fall-stumble-threshold meters :offset-assert 192)
; (yellow-projectile-speed meters :offset-assert 196)
; (hit-invulnerable-timeout uint64 :offset-assert 200)
; (run-cycle-length float :offset-assert 208)
; (walk-cycle-dist meters :offset-assert 212)
; (walk-up-cycle-dist meters :offset-assert 216)
; (walk-down-cycle-dist meters :offset-assert 220)
; (walk-side-cycle-dist meters :offset-assert 224)
; (run-cycle-dist meters :offset-assert 228)
; (run-up-cycle-dist meters :offset-assert 232)
; (run-down-cycle-dist meters :offset-assert 236)
; (run-side-cycle-dist meters :offset-assert 240)
; (run-wall-cycle-dist meters :offset-assert 244)
; (duck-walk-cycle-dist meters :offset-assert 248)
; (wade-shallow-walk-cycle-dist meters :offset-assert 252)
; (wade-deep-walk-cycle-dist meters :offset-assert 256)
; (smack-surface-dist meters :offset-assert 260)
; (smack-surface-height meters :offset-assert 264)
; (min-dive-depth meters :offset-assert 268)
; (root-radius meters :offset-assert 272)
; (root-offset vector :inline :offset-assert 288)
; (body-radius meters :offset-assert 304)
; (edge-radius meters :offset-assert 308)
; (edge-offset vector :inline :offset-assert 320)
; (head-radius meters :offset-assert 336)
; (head-height meters :offset-assert 340)
; (head-offset vector :inline :offset-assert 352)
; (spin-radius meters :offset-assert 368)
; (spin-offset vector :inline :offset-assert 384)
; (duck-spin-radius meters :offset-assert 400)
; (duck-spin-offset vector :inline :offset-assert 416)
; (punch-radius meters :offset-assert 432)
; (punch-offset vector :inline :offset-assert 448)
; (uppercut-radius meters :offset-assert 464)
; (uppercut0-offset vector :inline :offset-assert 480)
; (uppercut1-offset vector :inline :offset-assert 496)
; (flop-radius meters :offset-assert 512)
; (flop0-offset vector :inline :offset-assert 528)
; (flop1-offset vector :inline :offset-assert 544)
; (stuck-time seconds :offset-assert 560)
; (stuck-timeout seconds :offset-assert 568)
; (stuck-distance meters :offset-assert 576)
; (tongue-pull-speed-min float :offset-assert 580)
; (tongue-pull-speed-max float :offset-assert 584)
; (yellow-attack-timeout uint64 :offset-assert 592)
; )
; :method-count-assert 9
; :size-assert #x258
; :flag-assert #x900000258
; )
(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)
(wheel-duration uint64 :offset-assert 80)
(wheel-jump-pre-window uint64 :offset-assert 88)
(wheel-jump-post-window uint64 :offset-assert 96)
(wheel-timeout uint64 :offset-assert 104)
(wheel-speed-min meters :offset-assert 112)
(wheel-speed-inc meters :offset-assert 116)
(wheel-flip-duration uint64 :offset-assert 120)
(wheel-flip-height meters :offset-assert 128)
(wheel-flip-dist meters :offset-assert 132)
(wheel-flip-art-height meters :offset-assert 136)
(wheel-flip-art-dist meters :offset-assert 140)
(duck-slide-distance meters :offset-assert 144)
(fall-far meters :offset-assert 148)
(fall-far-inc meters :offset-assert 152)
(attack-timeout uint64 :offset-assert 160)
(ground-timeout uint64 :offset-assert 168)
(slide-down-timeout uint64 :offset-assert 176)
(fall-timeout uint64 :offset-assert 184)
(fall-stumble-threshold meters :offset-assert 192)
(yellow-projectile-speed meters :offset-assert 196)
(hit-invulnerable-timeout uint64 :offset-assert 200)
(run-cycle-length float :offset-assert 208)
(walk-cycle-dist meters :offset-assert 212)
(walk-up-cycle-dist meters :offset-assert 216)
(walk-down-cycle-dist meters :offset-assert 220)
(walk-side-cycle-dist meters :offset-assert 224)
(run-cycle-dist meters :offset-assert 228)
(run-up-cycle-dist meters :offset-assert 232)
(run-down-cycle-dist meters :offset-assert 236)
(run-side-cycle-dist meters :offset-assert 240)
(run-wall-cycle-dist meters :offset-assert 244)
(duck-walk-cycle-dist meters :offset-assert 248)
(wade-shallow-walk-cycle-dist meters :offset-assert 252)
(wade-deep-walk-cycle-dist meters :offset-assert 256)
(smack-surface-dist meters :offset-assert 260)
(smack-surface-height meters :offset-assert 264)
(min-dive-depth meters :offset-assert 268)
(root-radius meters :offset-assert 272)
(root-offset vector :inline :offset-assert 288)
(body-radius meters :offset-assert 304)
(edge-radius meters :offset-assert 308)
(edge-offset vector :inline :offset-assert 320)
(head-radius meters :offset-assert 336)
(head-height meters :offset-assert 340)
(head-offset vector :inline :offset-assert 352)
(spin-radius meters :offset-assert 368)
(spin-offset vector :inline :offset-assert 384)
(duck-spin-radius meters :offset-assert 400)
(duck-spin-offset vector :inline :offset-assert 416)
(punch-radius meters :offset-assert 432)
(punch-offset vector :inline :offset-assert 448)
(uppercut-radius meters :offset-assert 464)
(uppercut0-offset vector :inline :offset-assert 480)
(uppercut1-offset vector :inline :offset-assert 496)
(flop-radius meters :offset-assert 512)
(flop0-offset vector :inline :offset-assert 528)
(flop1-offset vector :inline :offset-assert 544)
(stuck-time seconds :offset-assert 560)
(stuck-timeout seconds :offset-assert 568)
(stuck-distance meters :offset-assert 576)
(tongue-pull-speed-min float :offset-assert 580)
(tongue-pull-speed-max float :offset-assert 584)
(yellow-attack-timeout uint64 :offset-assert 592)
)
:method-count-assert 9
:size-assert #x258
:flag-assert #x900000258
)
;; - Functions
(define-extern target-height-above-ground function)
(define-extern target-align-vel-z-adjust function)
(define-extern target-collide-set! (function symbol float int))
(define-extern target-start-attack function)
(define-extern target-danger-set! function)
(define-extern average-turn-angle function)
(define-extern can-play-stance-amibent? function)
(define-extern can-jump? function)
(define-extern move-legs? function)
(define-extern fall-test function)
(define-extern slide-down-test function)
(define-extern smack-surface? function)
(define-extern can-wheel? function)
(define-extern can-duck? function)
(define-extern can-exit-duck? function)
(define-extern can-hands? function)
(define-extern can-feet? function)
(define-extern vector-local+! function)
(define-extern move-forward function)
(define-extern set-forward-vel function)
(define-extern delete-back-vel function)
(define-extern set-side-vel function)
(define-extern target-timed-invulnerable function)
(define-extern target-timed-invulnerable-off function)
(define-extern ground-tween-initialize function)
(define-extern ground-tween-update function)
(define-extern target-rot function)
(define-extern target-height-above-ground (function float :behavior target))
(define-extern target-align-vel-z-adjust (function float float :behavior target))
(define-extern target-collide-set! (function symbol float int :behavior target))
(define-extern target-start-attack (function none :behavior target))
(define-extern target-danger-set! (function symbol symbol float :behavior target))
(define-extern average-turn-angle (function target float)) ;; NOTE - arg not confirmed, also unused
(define-extern can-play-stance-amibent? (function symbol :behavior target))
(define-extern can-jump? (function symbol symbol :behavior target))
(define-extern move-legs? (function symbol :behavior target))
(define-extern fall-test (function symbol symbol object :behavior target)) ;; NOTE - first arg unused
(define-extern slide-down-test (function symbol symbol object :behavior target))
(define-extern smack-surface? (function symbol symbol :behavior target))
(define-extern can-wheel? (function symbol :behavior target))
(define-extern can-duck? (function symbol :behavior target))
(define-extern can-exit-duck? (function symbol :behavior target)) ;; TODO - have to investigate collide-cache for this
(define-extern can-hands? (function symbol symbol :behavior target))
(define-extern can-feet? (function symbol :behavior target))
(define-extern vector-local+! (function vector vector vector :behavior target))
(define-extern move-forward (function float vector :behavior target))
(define-extern set-forward-vel (function float vector :behavior target))
(define-extern delete-back-vel (function float none :behavior target))
(define-extern set-side-vel (function float vector :behavior target))
(define-extern target-timed-invulnerable (function uint64 target none)) ;; TODO - likely useconds
(define-extern target-timed-invulnerable-off (function target none))
(define-extern ground-tween-initialize (function ground-tween-info uint uint uint uint uint uint ground-tween-info :behavior target)) ;; TODO - dealing with inline-array issues
(define-extern ground-tween-update (function ground-tween-info float float none :behavior target)) ;; TODO - inline array issues as well
(define-extern target-rot (function quaternion))
;; - Unknowns
;; - Symbols
;;(define-extern *TARGET-bank* object) ;; unknown type
;;(define-extern target-slide-down object) ;; unknown type
;;(define-extern target-falling object) ;; unknown type
(define-extern *TARGET-bank* target-bank)
(define-extern target-slide-down (state none))
(define-extern target-falling (state symbol none))
(define-extern *jchar-sg* skeleton-group)
(define-extern *target-shadow-control* shadow-control)
@ -19028,52 +19120,52 @@
;; - Functions
(define-extern init-target (function continue-point object))
(define-extern target-print-stats function)
(define-extern init-target (function continue-point none :behavior target))
(define-extern target-print-stats (function target symbol symbol ))
(define-extern activate-hud (function process none))
(define-extern reset-target-state (function symbol none))
(define-extern init-sidekick function)
(define-extern target-generic-event-handler function)
(define-extern level-setup (function none))
(define-extern target-exit function)
(define-extern target-calc-camera-pos function)
(define-extern reset-target-state (function symbol target :behavior target))
(define-extern init-sidekick (function none)) ;; TODO - not finished
(define-extern target-generic-event-handler (function process int symbol event-message-block object))
(define-extern level-setup (function none :behavior target))
(define-extern target-exit (function none))
(define-extern target-calc-camera-pos (function none :behavior target))
(define-extern do-target-shadow (function none :behavior target))
(define-extern target-powerup-process function)
(define-extern flag-setup function)
(define-extern build-conversions function)
(define-extern do-rotations1 function)
(define-extern read-pad function)
(define-extern turn-to-vector function)
(define-extern add-thrust function)
(define-extern add-gravity function)
(define-extern do-rotations2 function)
(define-extern reverse-conversions function)
(define-extern bend-gravity function)
(define-extern post-flag-setup function)
(define-extern joint-points function)
(define-extern target-real-post function)
(define-extern target-compute-edge function)
(define-extern target-compute-pole function)
(define-extern target-compute-slopes function)
(define-extern warp-vector-into-surface! function)
(define-extern vector<-pad-in-surface! function)
(define-extern draw-history function)
(define-extern vector-turn-to function)
(define-extern print-history function)
(define-extern local-pad-angle function)
(define-extern turn-around? function)
(define-extern target-move-dist function)
(define-extern target-compute-edge-rider function)
(define-extern target-post function)
(define-extern target-swim-post function)
(define-extern target-no-stick-post function)
(define-extern target-no-move-post function)
(define-extern target-slide-down-post function)
(define-extern target-no-ja-move-post function)
(define-extern target-powerup-process (function none))
(define-extern flag-setup (function none :behavior target))
(define-extern build-conversions (function vector vector :behavior target))
(define-extern do-rotations1 (function quaternion :behavior target))
(define-extern read-pad (function vector vector :behavior target))
(define-extern turn-to-vector (function vector float symbol :behavior target))
(define-extern add-thrust (function symbol :behavior target))
(define-extern add-gravity (function vector :behavior target))
(define-extern do-rotations2 (function int :behavior target))
(define-extern reverse-conversions (function vector uint :behavior target))
(define-extern bend-gravity (function symbol :behavior target))
(define-extern post-flag-setup (function none :behavior target))
(define-extern joint-points (function none :behavior target))
(define-extern target-real-post (function none :behavior target))
(define-extern target-compute-edge (function none :behavior target))
(define-extern target-compute-pole (function none :behavior target))
(define-extern target-compute-slopes (function vector int :behavior target))
(define-extern warp-vector-into-surface! (function vector vector vector vector))
(define-extern vector<-pad-in-surface! (function vector symbol vector :behavior target))
(define-extern draw-history (function control-info symbol))
(define-extern vector-turn-to (function vector vector :behavior target))
(define-extern print-history (function control-info none))
(define-extern local-pad-angle (function float :behavior target))
(define-extern turn-around? (function symbol :behavior target))
(define-extern target-move-dist (function int float :behavior target))
(define-extern target-compute-edge-rider (function none :behavior target))
(define-extern target-post (function none))
(define-extern target-swim-post (function none :behavior target))
(define-extern target-no-stick-post (function none :behavior target))
(define-extern target-no-move-post (function none :behavior target))
(define-extern target-slide-down-post (function none :behavior target))
(define-extern target-no-ja-move-post (function none :behavior target))
;; - Unknowns
(define-extern target-continue state)
(define-extern target-continue (state continue-point none))
;; ----------------------
@ -19692,7 +19784,7 @@
;; - Unknowns
;;(define-extern *already-printed-exeeded-max-cache-tris* object) ;; unknown type
(define-extern *already-printed-exeeded-max-cache-tris* symbol) ;; TODO - not confirmed
;; ----------------------

View file

@ -577,7 +577,7 @@
[3, "(function basic symbol)"],
[2, "(function process symbol)"]
],
"anim-tester": [
[11, "(function none :behavior anim-tester)"],
[12, "(function none :behavior anim-tester)"],
@ -585,8 +585,8 @@
],
"cam-combiner": [
[1, "(function none :behavior camera-combiner)"],
[2, "(function basic int basic event-message-block object :behavior camera-combiner)"]
[1, "(function none :behavior camera-combiner)"],
[2, "(function basic int basic event-message-block object :behavior camera-combiner)"]
],
"title-obs": [
@ -676,5 +676,10 @@
[1, "(function none :behavior minershort)"]
],
"time-of-day": [
[10, "(function none)"],
[12, "(function sparticle-system sparticle-cpuinfo int none)"]
],
"placeholder-do-not-add-below": []
}

View file

@ -267,7 +267,6 @@
"(method 15 collide-shape-prim-sphere)", // BUG:
"(method 16 collide-shape-prim)",
"(method 15 collide-shape-prim-group)",
"(method 40 collide-shape)",
"(method 45 collide-shape)",
"(method 28 collide-shape-prim-mesh)", // BUG:
"(method 29 collide-shape-prim-group)",

View file

@ -654,12 +654,6 @@
["L259", "float", true]
],
"logic-target": [
["L264", "float", true],
["L253", "float", true],
["L255", "float", true]
],
"load-boundary": [
["L327", "(inline-array lbvtx)", true, 3],
["L336", "float", true],
@ -1933,6 +1927,67 @@
["L298", "float", true]
],
"target-util": [
["L180", "vector", true],
["L181", "vector", true],
["L182", "vector", true],
["L183", "vector", true],
["L184", "vector", true],
["L185", "vector", true],
["L186", "vector", true],
["L187", "vector", true],
["L188", "vector", true],
["L189", "vector", true],
["L190", "vector", true],
["L191", "target-bank", true],
["L192", "shadow-control", true],
["L193", "skeleton-group", true],
["L196", "float", true],
["L201", "float", true],
["L208", "float", true],
["L209", "float", true],
["L213", "float", true],
["L214", "float", true],
["L219", "float", true],
["L220", "float", true],
["L224", "float", true],
["L225", "rgba", true]
],
"logic-target": [
["L227", "attack-info", true],
["L231", "(pointer uint64)", true, 1],
["L233", "float", true],
["L235", "float", true],
["L240", "float", true],
["L243", "float", true],
["L246", "float", true],
["L249", "float", true],
["L250", "float", true],
["L251", "float", true],
["L252", "float", true],
["L253", "float", true],
["L255", "float", true],
["L258", "float", true],
["L259", "float", true],
["L260", "float", true],
["L261", "float", true],
["L264", "float", true],
["L265", "rgba", true],
["L266", "rgba", true],
["L267", "rgba", true],
["L268", "rgba", true],
["L269", "rgba", true],
["L270", "rgba", true],
["L271", "rgba", true],
["L272", "rgba", true],
["L273", "rgba", true],
["L274", "rgba", true],
["L381", "float", true],
["L382", "float", true],
["L383", "uint64", true]
],
// please do not add things after this entry! git is dumb.
"object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": []
}

View file

@ -1178,5 +1178,192 @@
[16, "event-message-block"]
],
"draw-joint-spheres": [[16, "vector"]],
"(method 16 process-drawable)": [[16, "matrix"], [80, "matrix"], [144, "vector"], [160, "vector"]],
"(method 16 target)": [
[16, "vector"],
[32, "vector"],
[48, "vector"]
],
"vector-local+!": [
[16, "vector"]
],
"move-forward": [
[16, "vector"],
[32, "vector"]
],
"set-forward-vel": [
[16, "vector"]
],
"delete-back-vel": [
[16, "vector"],
[32, "vector"]
],
"set-side-vel": [
[16, "vector"]
],
"build-conversions": [
[16, "vector"]
],
"vector-turn-to": [
[16, "vector"],
[32, "vector"]
],
"warp-vector-into-surface!": [
[16, "matrix"]
],
"vector<-pad-in-surface!": [
[16, "vector"]
],
"local-pad-angle": [
[16, "vector"],
[32, "vector"]
],
"turn-around?": [
[16, "vector"],
[32, "vector"]
],
"target-move-dist": [
[16, "vector"]
],
"turn-to-vector": [
[16, "vector"],
[32, "vector"]
],
"add-thrust": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "vector"],
[80, "vector"],
[96, "vector"],
[112, "vector"],
[128, "vector"],
[144, "vector"],
[160, "vector"],
[176, "vector"],
[192, "vector"],
[208, "vector"],
[224, "vector"]
],
"add-gravity": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "vector"]
],
"target-compute-slopes": [
[16, "vector"],
[32, "vector"],
[48, "matrix"]
],
"do-rotations2": [
[16, "vector"],
[32, "quaternion"],
[48, "quaternion"]
],
"level-setup": [
[16, "event-message-block"]
],
"flag-setup": [
[16, "vector"],
[32, "event-message-block"],
[112, "vector"],
[128, "vector"],
[144, "vector"],
[160, "vector"]
],
"target-compute-edge": [
[16, "event-message-block"],
[96, "vector"],
[112, "vector"]
],
"target-compute-edge-rider": [
[16, "event-message-block"],
[96, "vector"]
],
"target-calc-camera-pos": [
[16, "vector"]
],
"joint-points": [
[16, "vector"],
[32, "vector"]
],
"target-real-post": [
[16, "vector"],
[32, "vector"],
[48, "vector"]
],
"target-swim-post": [
[16, "vector"]
],
"target-no-stick-post": [
[16, "vector"]
],
"target-no-move-post": [
[16, "collide-edge-hold-list"] // a total guess
],
"target-slide-down-post": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "matrix"]
],
"target-no-ja-move-post": [
[16, "collide-edge-hold-list"] // a total guess
],
"target-print-stats": [
[16, "vector"],
[32, "vector"],
[48, "vector"]
],
"target-compute-pole": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "vector"],
[80, "event-message-block"],
[160, "vector"],
[176, "vector"],
[192, "vector"]
],
"can-exit-duck?": [
[16, "collide-using-spheres-params"],
[48, ["inline-array", "sphere", 2]]
],
"placeholder-do-not-add-below!": []
}

View file

@ -969,9 +969,7 @@
"(anon-function 29 process-drawable)": [
[[0, 99999], "s6", "process-drawable"]
],
//"bg": [[[25, 52], "a0", "string"]],
"(anon-function 29 process-drawable)": [[[0, 999], "s6", "process-drawable"]],
"ja-done?": [[[0, 999], "s6", "process-drawable"]],
"ja-min?": [[[0, 999], "s6", "process-drawable"]],
"ja-max?": [[[0, 999], "s6", "process-drawable"]],
@ -994,7 +992,6 @@
"rider-post": [[[0, 999], "s6", "process-drawable"]],
"pusher-post": [[[0, 999], "s6", "process-drawable"]],
"process-drawable-delay-player": [[[0, 999], "s6", "process-drawable"]],
"init-target": [[[0, 999], "s6", "target"]],
"upload-generic-shrub": [
[[3, 13], "t0", "dma-packet"],
@ -1829,9 +1826,12 @@
],
"draw-ocean-transition": [[255, "v1", "ocean-mid-mask"]],
"init-target": [
[408, "t9", "(function process function object)"]
],
"do-target-shadow": [
[[0, 999], "s6", "target"],
[46, "v1", "collide-shape-prim"] // `event-other` from collide-shape
],
@ -2300,5 +2300,38 @@
[138, "t9", "(function object string object none)"]
],
"target-compute-pole": [
[12, "s4", "swingpole"],
[21, "s4", "swingpole"],
[24, "s4", "swingpole"],
[30, "s4", "swingpole"],
[33, "s4", "swingpole"],
[76, "s4", "swingpole"],
[85, "s4", "swingpole"],
[87, "s4", "swingpole"]
],
"(method 10 target)": [
[[10, 13], "t9", "(function process-drawable none)"]
],
"draw-history": [
[[99, 101], "v1", "int"]
],
"(method 9 attack-info)": [
[82, "v1", "process-drawable"],
[87, "s3", "process-drawable"],
[89, "v1", "process-drawable"],
[118, "a0", "process-drawable"]
],
"ground-tween-update": [
[16, "f1", "float"],
[20, "f2", "float"],
[34, "f0", "float"],
[38, "f1", "float"]
],
"placeholder-do-not-add-below": []
}

View file

@ -3237,5 +3237,6 @@
"auto-save-init-by-other": {
"args":["desired-mode", "notify-proc", "card-idx", "file-idx"]
},
"aaaaaaaaaaaaaaaaaaaaaaa": {}
}

View file

@ -395,35 +395,34 @@ int DecompilerTypeSystem::get_format_arg_count(const std::string& str) const {
return bad_it->second;
}
std::vector<char> single_char_ignore_list = {'%', 'T'};
std::vector<std::string> double_two_char_ignore_list = {"0L", "3L", "1K", "2j", "0k"};
int arg_count = 0;
for (size_t i = 0; i < str.length(); i++) {
if (str.at(i) == '~') {
i++; // also eat the next character.
if (i < str.length() && (str.at(i) == '%' || str.at(i) == 'T')) {
// newline (~%) or tab (~T) don't take an argument.
continue;
// Check for codes that take no args
bool code_takes_no_arg = false;
for (char c : single_char_ignore_list) {
if (i < str.length() && str.at(i) == c) {
code_takes_no_arg = true;
break;
}
}
// ~3L, ~0L don't seem to take arguments either.
if (i + 1 < str.length() && (str.at(i) == '0' || str.at(i) == '3') && str.at(i + 1) == 'L') {
continue;
for (std::string code : double_two_char_ignore_list) {
if (i + 1 < str.length() && code.length() == 2 && (str.at(i) == code.at(0)) &&
str.at(i + 1) == code.at(1)) {
code_takes_no_arg = true;
break;
}
}
// ~1K
if (i + 1 < str.length() && (str.at(i) == '1') && str.at(i + 1) == 'K') {
continue;
if (!code_takes_no_arg) {
arg_count++;
}
// ~0k
if (i + 1 < str.length() && (str.at(i) == '0') && str.at(i + 1) == 'k') {
continue;
}
// ~2j
if (i + 1 < str.length() && (str.at(i) == '2') && str.at(i + 1) == 'j') {
continue;
}
arg_count++;
}
}
return arg_count;

View file

@ -7,3 +7,5 @@
;; TODO - for aligner
(define-extern cspace<-matrix-no-push-joint! (function cspace matrix matrix))
;; TODO - for logic-target
(define-extern cspace<-transformq+trans! (function cspace transformq vector matrix))

View file

@ -15,7 +15,7 @@
)
;; definition for function matrix-local->world
(defun matrix-local->world ((arg0 symbol))
(defun matrix-local->world ((arg0 symbol) (arg1 symbol))
(if arg0
(-> *math-camera* inv-camera-rot-smooth)
(-> *math-camera* inv-camera-rot)

View file

@ -96,7 +96,7 @@
((num-tris int32 :offset-assert 4)
(num-prims int32 :offset-assert 8)
(ignore-mask uint32 :offset-assert 12)
(proc basic :offset-assert 16)
(proc process-drawable :offset-assert 16) ;; types: target
(collide-box bounding-box :inline :offset-assert 32)
(collide-box4w bounding-box4w :inline :offset-assert 64)
(collide-with uint64 :offset-assert 96)
@ -109,11 +109,11 @@
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-11 (_type_ collide-using-spheres-params) none 11)
(dummy-12 (_type_ vector float uint process bone uint) float 12) ;; TODO - bone not confirmed
(dummy-13 () none 13)
(dummy-13 (_type_ int uint process-drawable uint) none 13)
(dummy-14 () none 14)
(dummy-15 () none 15)
(dummy-15 (_type_ int) none 15)
(dummy-16 (_type_ vector float uint process uint) none 16)
(dummy-17 () none 17)
(dummy-18 () none 18)

View file

@ -23,8 +23,8 @@
:size-assert #x144
:flag-assert #xb00000144
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-9 (_type_) symbol 9)
(dummy-10 (_type_) symbol 10)
)
)

View file

@ -5,3 +5,6 @@
;; name in dgo: collide-reaction-target
;; dgos: GAME, ENGINE
;; TODO - for logic-target
(define-extern target-collision-reaction function)
(define-extern target-collision-no-reaction function)

View file

@ -217,7 +217,7 @@
:flag-assert #x1e00000054
(:methods
(new (symbol type basic uint int) _type_ 0)
(dummy-28 () none 28)
(dummy-28 (_type_) none 28)
(dummy-29 () none 29)
)
)
@ -247,10 +247,10 @@
:size-assert #xb8
:flag-assert #x38000000b8
(:methods
(new (symbol type process collide-list-enum) _type_)
(dummy-28 () none 28)
(new (symbol type process collide-list-enum) _type_ 0)
(TODO-RENAME-28 (_type_) none 28)
(dummy-29 () none 29)
(dummy-30 () none 30)
(TODO-RENAME-30 (_type_ vector) none 30)
(dummy-31 () none 31)
(dummy-32 () none 32)
(dummy-33 (_type_ vector uint) none 33)
@ -260,20 +260,20 @@
(dummy-37 () none 37)
(dummy-38 () none 38)
(dummy-39 () none 39)
(dummy-40 () none 40)
(dummy-40 (_type_ object) none 40)
(dummy-41 () none 41)
(dummy-42 () none 42)
(dummy-43 () none 43)
(dummy-44 (_type_) none 44)
(dummy-45 (_type_) none 45)
(dummy-46 () none 46)
(dummy-46 (_type_) none 46)
(dummy-47 (_type_) none 47)
(dummy-48 (_type_) none 48)
(dummy-49 () none 49)
(dummy-50 () none 50)
(dummy-50 (_type_) none 50)
(dummy-51 () none 51)
(dummy-52 () none 52)
(dummy-53 () none 53)
(dummy-53 (_type_ int int int) none 53)
(dummy-54 (_type_ int int) none 54)
(dummy-55 () none 55)
)

View file

@ -32,19 +32,111 @@
(deftype control-info (collide-shape-moving)
(
(some-quaternion quaternion :offset 496)
(unknown-vector00 vector :inline :offset 576)
(unknown-surface surface :offset 660)
(unknown-symbol symbol :offset 664)
(unknown-qword uint128 :offset 1136)
(unknown-vector10 vector :inline :offset 1216)
(unknown-vector11 vector :inline :offset 1232)
(unknown-vector12 vector :inline :offset 1248)
(unknown-vector13 vector :inline :offset 1264)
(unknown-vector00 vector :inline :offset 448) ;; from - logic-target::build-conversions
(unknown-vector01 vector :inline :offset 464) ;; from - logic-target::turn-to-vector
(unknown-vector02 vector :inline :offset 480) ;; from - logic-target::do-rotations2
(unknown-quaternion00 quaternion :inline :offset 496) ;; from - target-util::(method 27 control-info)
(unknown-quaternion01 quaternion :inline :offset 512) ;; from - logic-target::do-rotations2
(unknown-float00 float :offset 528) ;; from - logic-target::do-rotations2
(unknown-float01 float :offset 532)
(unknown-float02 float :offset 536) ;; from - logic-target::add-thrust
(unknown-vector10 vector :inline :offset 544) ;; from - logic-target::flat-setup
(unknown-vector11 vector :inline :offset 560) ;; from - logic-target::target-no-move-post
(unknown-vector12 vector :inline :offset 576)
(unknown-vector13 vector :inline :offset 608) ;; from - logic-target::target-no-move-post
(unknown-dynamics00 dynamics :offset 656) ;; from - logic-target::bend-gravity
(unknown-surface00 surface :offset 660)
(unknown-surface01 surface :offset 664) ;; not a symbol - target-util::target-align-vel-z-adjust
(unknown-cpad-info00 cpad-info :offset 668) ;; not a symbol - target-util::move-legs?
(unknown-float10 float :offset 672) ;; from - logic-target::turn-to-vector
(unknown-float11 float :offset 676) ;; from - logic-target::turn-to-vector
(unknown-float12 float :offset 680) ;; from - logic-target::turn-to-vector
(unknown-float13 float :offset 684) ;; from - logic-target::turn-to-vector
(unknown-vector20 vector :inline :offset 688) ;; from - logic-target::turn-to-vector
(unknown-vector21 vector :inline :offset 704) ;; from - logic-target::turn-to-vector
(unknown-vector22 vector :inline :offset 720) ;; from - logic-target::turn-to-vector
(unknown-vector23 vector :inline :offset 736) ;; from - logic-target::turn-to-vector
; (unknown-dword-temp-01 uint64 :offset 776) ;; from - logic-target::read-pad
(unknown-vector-array00 vector 7 :inline :offset 752) ;; from - logic-target::turn-to-vector
(unknown-vector30 vector :inline :offset 880) ;; from - logic-target::read-pad
(unknown-vector31 vector :inline :offset 896) ;; from - logic-target::read-pad
(unknown-float20 float :offset 912) ;; from - logic-target::read-pad
(unknown-float21 float :offset 916) ;; from - logic-target::read-pad
(unknown-dword00 uint64 :offset 920) ;; from - logic-target::read-pad
(unknown-matrix00 matrix :inline :offset 928) ;; from - target-util::(method 16 target)
(unknown-matrix01 matrix :inline :offset 992) ;; from - target-util::(method 16 target)
(unknown-matrix02 matrix :inline :offset 1056) ;; from - logic-target::joint-points
(unknown-qword00 uint128 :offset 1136)
(unknown-float30 float :offset 1140) ;; from - logic-target::target-calc-camera-pos
(unknown-vector40 vector :inline :offset 1152) ;; from - logic-target::target-real-post
(unknown-float40 float :offset 1176) ;; from - logic-target::do-rotations2
(unknown-int00 int32 :offset 1180) ;; from - logic-target::joint-points
(unknown-float50 float :offset 1168) ;; from - logic-target::target-real-post
(unknown-vector50 vector :inline :offset 1184) ;; from - logic-target::build-conversions
(unknown-vector51 vector :inline :offset 1200) ;; from - logic-target::build-conversions
(unknown-vector52 vector :inline :offset 1216)
(unknown-vector53 vector :inline :offset 1232)
(unknown-vector54 vector :inline :offset 1248)
(unknown-vector55 vector :inline :offset 1264)
(unknown-dword10 int64 :offset 1288) ;; from - target-util::can-jump?
(unknown-float60 float :offset 1300) ;; from - target-util::can-duck?
(unknown-float61 float :offset 1304) ;; from - target-util::target-align-vel-z-adjust
(unknown-float62 float :offset 1308) ;; from - target-util::target-print-stats
(unknown-float63 float :offset 1312) ;; from - logic-target::target-compute-slopes
(unknown-float64 float :offset 1316) ;; from - logic-target::target-compute-slopes
(unknown-dword20 int64 :offset 1320) ;; from target-util::turn-around? - TODO
(unknown-dword21 int64 :offset 1328) ;; from target-util::turn-around? - TODO
(unknown-vector60 vector :inline :offset 1456) ;; from - logic-target::add-thrust
(unknown-vector61 vector :inline :offset 1504) ;; from - logic-target::add-thrust
(unknown-float70 float :offset 1520) ;; from - logic-target::add-thrust
(unknown-vector70 vector :inline :offset 1536) ;; from - logic-target::add-thrust
(unknown-handle00 handle :offset 1600) ;; from logic-target::reset-target-state
(unknown-sphere-array00 collide-shape-prim-sphere 3 :offset 1608) ;; from target-util::target-collide-set! and from target-util::target-danger-set!
(unknown-sphere00 collide-shape-prim-sphere :offset 1632) ;; from target-util::target-danger-set!
(unknown-sphere01 collide-shape-prim-sphere :offset 1636) ;; from target-util::target-danger-set!
(unknown-sphere02 collide-shape-prim-sphere :offset 1640) ;; from target-util::target-danger-set!
(unknown-dword30 int64 :offset 1672) ;; from target-util::can-hands?
(unknown-dword31 int64 :offset 1680) ;; from target-util::can-hands?
(unknown-dword32 int64 :offset 1688) ;; from target-util::can-feet?
(unknown-dword33 int64 :offset 1696) ;; from target-util::can-feet?
(unknown-float80 float :offset 1724) ;; from logic-target::bend-gravity
(unknown-float81 float :offset 1728) ;; from logic-target::bend-gravity
(unknown-float82 float :offset 1732) ;; from logic-target::bend-gravity
(unknown-vector80 vector :inline :offset 1744) ;; from logic-target::joint-points
(unknown-cspace00 cspace :inline :offset 1760) ;; from logic-target::joint-points
(unknown-vector90 vector :inline :offset 1776) ;; from logic-target::target-compute-edge
(unknown-vector91 vector :inline :offset 1792) ;; from logic-target::target-compute-edge
(unknown-vector92 vector :inline :offset 1824) ;; from logic-target::joint-points
(unknown-cspace10 cspace :inline :offset 1808) ;; from logic-target::joint-points
(unknown-symbol00 symbol :offset 1840) ;; from target-util::target-danger-set!
(unknown-float90 float :offset 1844) ;; from target-util::target-danger-set!
(unknown-float91 float :offset 1848) ;; from target-util::target-collide-set!
(unknown-vector-array10 vector 16 :inline :offset 1856) ;; from target-util::turn-around?
(unknown-float100 float :offset 2112) ;; from target-util::turn-around?
(unknown-int10 int32 :offset 2116) ;; from target-util::turn-around?
(unknown-float110 float :offset 2120) ;; from logic-target::target-compute-edge
(unknown-vector100 vector :inline :offset 2128) ;; from logic-target::target-compute-edge
(unknown-vector101 vector :inline :offset 2144) ;; from logic-target::target-compute-edge
(unknown-dword40 int64 :offset 2160) ;; from logic-target::target-compute-edge
(unknown-dword41 int64 :offset 2168) ;; from logic-target::target-compute-edge
(unknown-handle10 handle :offset 2176) ;; from logic-target::target-compute-pole - probably a swingpole
(unknown-int20 int32 :offset 2188) ;; from logic-target::target-compute-pole
(unknown-vector110 vector :inline :offset 2320) ;; from logic-target::flag-setup
(unknown-vector111 vector :inline :offset 2336) ;; from logic-target::flag-setup
(unknown-int30 int32 :offset 2384) ;; from target-util::target-danger-set!
(unknown-dword50 int64 :offset 2392) ;; from target-util::target-start-attack
(unknown-dword51 int64 :offset 2400) ;; from target-util::target-start-attack
(unknown-symbol10 symbol :offset 2428) ;; from logic-target::post-flag-setup
(unknown-halfword00 int16 :offset 2488) ;; from logic-target::target-move-dist
;; these were determined from racer-collision-reaction.
(history-length int16 :offset 2490)
(history-data collide-history 128 :inline :offset-assert 2496)
(pad uint32 27)
(unknown-dword60 int64 :offset 18952) ;; from logic-target::add-thrust
(unknown-int40 int32 :offset 18880) ;; from logic-target::flag-setup
(unknown-dword70 int64 :offset 18888) ;; from logic-target::post-flag-setup
(unknown-dword71 int64 :offset 18896) ;; from logic-target::post-flag-setup
(unknown-dword72 int64 :offset 18912) ;; from logic-target::reset-target-state
(pad uint32 7)
)
:size-assert #x4a2c
:method-count-assert 65

View file

@ -113,8 +113,8 @@
((trans vector :inline :offset-assert 0)
(vector vector :inline :offset-assert 16)
(intersection vector :inline :offset-assert 32)
(attacker uint64 :offset-assert 48) ;; handle
(invinc-time uint64 :offset-assert 56)
(attacker handle :offset-assert 48)
(invinc-time uint64 :offset-assert 56) ;; likely useconds?
(mask uint32 :offset-assert 64)
(mode symbol :offset-assert 68)
(shove-back meters :offset-assert 72)
@ -131,16 +131,16 @@
:flag-assert #xa00000068
;; field handle is likely a value type
(:methods
(dummy-9 () none 9)
(dummy-9 (_type_ attack-info) none 9)
)
)
(define *global-attack-id* 0)
(deftype ground-tween-info (structure)
((chan uint8 3 :offset-assert 0)
(blend uint32 3 :offset-assert 4)
(group uint32 5 :offset-assert 16)
((chan uint8 3 :offset-assert 0)
(blend float 3 :offset-assert 4)
(group uint32 5 :offset-assert 16)
)
:method-count-assert 9
:size-assert #x24

View file

@ -118,7 +118,7 @@
)
(deftype swingpole (process)
((root basic :offset-assert 112)
((root trsq :offset-assert 112)
(dir vector :inline :offset-assert 128)
(range meters :offset-assert 144)
(edge-length meters :offset-assert 148)

View file

@ -200,8 +200,8 @@
(if
(and
(logtest? (-> self control status) 1)
(!= (-> self control unknown-surface mode) 'swim)
(!= (-> self control unknown-surface mode) 'dive)
(!= (-> self control unknown-surface00 mode) 'swim)
(!= (-> self control unknown-surface00 mode) 'dive)
(!= (-> self next-state name) 'target-flop)
(zero? (logand (-> self draw status) 38))
)

View file

@ -29,7 +29,7 @@
(align-offset meters :offset 100)
(swim-depth meters :offset-assert 104)
(bob smush-control :inline :offset-assert 112)
(volume uint64 :offset-assert 144)
(volume handle :offset-assert 144)
(bottom vector 2 :inline :offset-assert 160)
(top vector 2 :inline :offset-assert 192)
(enter-water-pos vector :inline :offset-assert 224)
@ -61,7 +61,17 @@
(and *display-water-marks* (logtest? (-> obj flags) 1))
)
(defmethod new water-control ((allocation symbol) (type-to-make type) (arg0 process) (arg1 int) (arg2 float) (arg3 float) (arg4 float))
(defmethod
new
water-control
((allocation symbol)
(type-to-make type)
(arg0 process)
(arg1 int)
(arg2 float)
(arg3 float)
(arg4 float)
)
(let
((v0-0
(object-new allocation type-to-make (the-as int (-> type-to-make size)))
@ -73,13 +83,14 @@
(set! (-> v0-0 swim-height) arg3)
(set! (-> v0-0 bottom-height) 32768.0)
(set! (-> v0-0 ripple-size) 1638.4)
(set! (-> v0-0 volume) (the-as uint #f))
(set! (-> v0-0 volume) (the-as handle #f))
(set! (-> v0-0 drip-mult) 1.0)
(set! (-> v0-0 top-y-offset) arg2)
v0-0
)
)
(defmethod distance-from-surface water-control ((obj water-control))
(- (-> obj top 0 y) (-> obj height))
)

File diff suppressed because it is too large Load diff

View file

@ -6,8 +6,8 @@
;; dgos: GAME, ENGINE
(deftype surface (basic)
((name basic :offset-assert 4)
;;(data UNKNOWN 30 :offset-assert 8)
((name symbol :offset-assert 4)
;; data went here
(turnv float :offset-assert 8)
(turnvv float :offset-assert 12)
(tiltv float :offset-assert 16)
@ -30,18 +30,16 @@
(alignv float :offset-assert 84)
(slope-up-traction float :offset-assert 88)
(align-speed float :offset-assert 92)
;;(hook UNKNOWN 4 :offset-assert 128)
(active-hook basic :offset 128)
(touch-hook basic :offset-assert 132)
(impact-hook basic :offset-assert 136)
(mult-hook (function surface surface surface int none) :offset-assert 140)
;;(dataw UNKNOWN 2 :offset-assert 144)
(mode basic :offset-assert 144)
;; hook went here
(active-hook (function none) :offset 128) ;; from logic-target::flag-setup not 100% sure but seems to pass no args
(touch-hook (function none) :offset-assert 132) ;; from logic-target::flag-setup not 100% sure but seems to pass no args
(impact-hook function :offset-assert 136)
(mult-hook (function surface surface surface int none) :offset-assert 140)
;; dataw went here
(mode symbol :offset-assert 144)
(flags uint32 :offset-assert 148)
;; overlays used for copying data.
(data float 30 :offset 8)
(hook basic 4 :offset 128)
(hook function 4 :offset 128)
(dataw uint32 2 :offset 144)
)
:method-count-assert 9
@ -990,7 +988,10 @@
)
))
(define *stone-surface* v1-41)
(set! (-> v1-41 mult-hook) (the (function surface surface surface int none) nothing))
(set!
(-> v1-41 mult-hook)
(the-as (function surface surface surface int none) nothing)
)
(set! (-> v1-41 touch-hook) nothing)
(set! (-> v1-41 active-hook) nothing)
)
@ -1019,7 +1020,10 @@
)
))
(define *edge-surface* v1-42)
(set! (-> v1-42 mult-hook) (the (function surface surface surface int none) nothing))
(set!
(-> v1-42 mult-hook)
(the-as (function surface surface surface int none) nothing)
)
(set! (-> v1-42 touch-hook) nothing)
(set! (-> v1-42 active-hook) nothing)
)
@ -1050,7 +1054,10 @@
)
))
(define *wade-surface* v1-43)
(set! (-> v1-43 mult-hook) (the (function surface surface surface int none) nothing))
(set!
(-> v1-43 mult-hook)
(the-as (function surface surface surface int none) nothing)
)
(set! (-> v1-43 touch-hook) nothing)
(set! (-> v1-43 active-hook) nothing)
)
@ -1082,7 +1089,10 @@
)
)
(define *slope-surface* v1-44)
(set! (-> v1-44 mult-hook) (the (function surface surface surface int none) nothing))
(set!
(-> v1-44 mult-hook)
(the-as (function surface surface surface int none) nothing)
)
(set! (-> v1-44 touch-hook) nothing)
(set! (-> v1-44 active-hook) nothing)
)
@ -1114,7 +1124,10 @@
)
)
(define *quicksand-surface* v1-45)
(set! (-> v1-45 mult-hook) (the (function surface surface surface int none) nothing))
(set!
(-> v1-45 mult-hook)
(the-as (function surface surface surface int none) nothing)
)
(set! (-> v1-45 touch-hook) nothing)
(set! (-> v1-45 active-hook) nothing)
)
@ -1146,7 +1159,10 @@
)
)
(define *tar-surface* v1-46)
(set! (-> v1-46 mult-hook) (the (function surface surface surface int none) nothing))
(set!
(-> v1-46 mult-hook)
(the-as (function surface surface surface int none) nothing)
)
(set! (-> v1-46 touch-hook) nothing)
(set! (-> v1-46 active-hook) nothing)
)
@ -1175,7 +1191,10 @@
)
))
(define *grass-surface* v1-47)
(set! (-> v1-47 mult-hook) (the (function surface surface surface int none) nothing))
(set!
(-> v1-47 mult-hook)
(the-as (function surface surface surface int none) nothing)
)
(set! (-> v1-47 touch-hook) nothing)
(set! (-> v1-47 active-hook) nothing)
)
@ -1204,7 +1223,10 @@
)
))
(define *ice-surface* v1-48)
(set! (-> v1-48 mult-hook) (the (function surface surface surface int none) nothing))
(set!
(-> v1-48 mult-hook)
(the-as (function surface surface surface int none) nothing)
)
(set! (-> v1-48 touch-hook) nothing)
(set! (-> v1-48 active-hook) nothing)
)
@ -1235,7 +1257,10 @@
)
)
(define *tread-surface* v1-49)
(set! (-> v1-49 mult-hook) (the (function surface surface surface int none) nothing))
(set!
(-> v1-49 mult-hook)
(the-as (function surface surface surface int none) nothing)
)
(set! (-> v1-49 touch-hook) nothing)
(set! (-> v1-49 active-hook) nothing)
)

View file

@ -7,8 +7,10 @@
;; definition of type target
(declare-type sidekick basic)
(declare-type collide-cache basic)
(deftype target (process-drawable)
((control control-info :score 100 :offset 112)
(fact-info-target fact-info-target :score 100 :offset 144)
(skel2 basic :offset-assert 176)
(racer basic :offset-assert 180)
(game game-info :offset-assert 184)
@ -16,8 +18,8 @@
(state-hook-time uint64 :offset-assert 192)
(state-hook function :offset-assert 200)
(cam-user-mode symbol :offset-assert 204)
(sidekick (pointer sidekick) :offset-assert 208)
(manipy (pointer manipy) :offset-assert 212)
(sidekick (pointer sidekick) :offset-assert 208)
(manipy (pointer manipy) :offset-assert 212)
(attack-info attack-info :inline :offset-assert 224)
(attack-info-rec attack-info :inline :offset-assert 336)
(anim-seed uint64 :offset-assert 440)
@ -37,9 +39,8 @@
:method-count-assert 21
:size-assert #x248
:flag-assert #x1501e00248
;; inherited inspect of process-drawable
(:methods
(dummy-20 () none 20)
(dummy-20 (_type_ collide-cache) none 20)
)
)
@ -66,3 +67,19 @@
;; TODO - for mood
(define-extern target-joint-pos (function vector)) ;; TODO - unconfirmed
;; TODO - for target-util
(define-extern target-falling (state symbol none))
(define-extern target-slide-down (state none))
;; TODO - for logic-target - defined in shadow
(define-extern do-target-shadow (function none :behavior target))
;; TODO - for logic-target - defined in powerups
(define-extern target-powerup-process (function none))
;; TODO - for logic-target - defined in target-handler
(define-extern target-exit (function none))
(define-extern target-generic-event-handler (function process int symbol event-message-block object))
;; TODO - for logic-target - defined in sidekick
(define-extern init-sidekick (function none)) ;; TODO - not finished
;; TODO - for logic-target - defined in target-death
(define-extern target-continue (state continue-point none))

File diff suppressed because it is too large Load diff

View file

@ -113,3 +113,6 @@
:money-all #f
)
)
;; TODO - for logic-target
(define-extern activate-hud (function process none))

View file

@ -919,7 +919,7 @@
(and
v1-50
(= v1-50 *target*)
(!= (-> *target* control unknown-surface mode) 'swim)
(!= (-> *target* control unknown-surface00 mode) 'swim)
)
(when (not (-> self player-impulse))
(set! (-> self player-contact) #t)
@ -1126,9 +1126,9 @@
(set! (-> s4-0 transform-index) 0)
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 20480.0)
)
((method-of-object s5-0 dummy-46))
(dummy-46 s5-0)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
((method-of-object s5-0 dummy-50))
(dummy-50 s5-0)
(set! (-> obj root-overlay) s5-0)
)
0
@ -1206,4 +1206,4 @@
(TODO-RENAME-34 obj)
0
(none)
)
)

View file

@ -316,7 +316,7 @@
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 1))
(set-vector! (-> s3-0 local-sphere) 0.0 12288.0 0.0 36864.0)
((method-of-object s4-0 dummy-46))
(dummy-46 s4-0)
(let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 1))))
(set! (-> s2-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-0 collide-with) (the-as uint 16))
@ -325,7 +325,7 @@
(set! (-> s2-0 transform-index) 5)
(set-vector! (-> s2-0 local-sphere) -4096.0 2048.0 0.0 5120.0)
)
((method-of-object s3-0 dummy-28))
(dummy-28 s3-0)
(let
((s2-1
(new
@ -344,7 +344,7 @@
(set! (-> s2-1 transform-index) 7)
(set-vector! (-> s2-1 local-sphere) 0.0 0.0 0.0 32768.0)
)
((method-of-object s3-0 dummy-28))
(dummy-28 s3-0)
(let
((s2-2
(new
@ -363,7 +363,7 @@
(set! (-> s2-2 transform-index) 4)
(set-vector! (-> s2-2 local-sphere) 0.0 0.0 0.0 32768.0)
)
((method-of-object s3-0 dummy-28))
(dummy-28 s3-0)
(let
((s2-3
(new
@ -382,7 +382,7 @@
(set! (-> s2-3 transform-index) 3)
(set-vector! (-> s2-3 local-sphere) 0.0 0.0 0.0 32768.0)
)
((method-of-object s3-0 dummy-28))
(dummy-28 s3-0)
(let
((s2-4
(new
@ -401,10 +401,10 @@
(set! (-> s2-4 transform-index) 3)
(set-vector! (-> s2-4 local-sphere) 0.0 0.0 0.0 32768.0)
)
((method-of-object s3-0 dummy-28))
(dummy-28 s3-0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
((method-of-object s4-0 dummy-50))
(dummy-50 s4-0)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
@ -414,4 +414,4 @@
(set! (-> obj rock-is-dangerous) #f)
(go teetertotter-idle)
(none)
)
)

View file

@ -253,9 +253,9 @@
(set! (-> s3-0 transform-index) 4)
(set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 18432.0)
)
((method-of-object s4-0 dummy-46))
(dummy-46 s4-0)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
((method-of-object s4-0 dummy-50))
(dummy-50 s4-0)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
@ -353,9 +353,9 @@
(set! (-> s4-0 transform-index) 0)
(set-vector! (-> s4-0 local-sphere) -12288.0 0.0 0.0 40960.0)
)
((method-of-object s5-0 dummy-46))
(dummy-46 s5-0)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
((method-of-object s5-0 dummy-50))
(dummy-50 s5-0)
(set! (-> obj root-override) s5-0)
)
0
@ -382,4 +382,4 @@
(dummy-47 (-> obj root-override))
0
(none)
)
)

View file

@ -165,7 +165,7 @@
(set! (-> s4-0 prim-core action) (the-as uint 1))
(set! (-> s4-0 prim-core offense) 4)
(set-vector! (-> s4-0 local-sphere) 4096.0 8192.0 -4096.0 12288.0)
((method-of-object s5-0 dummy-46))
(dummy-46 s5-0)
(let ((s3-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint 256))
(set! (-> s3-0 collide-with) (the-as uint 16))
@ -173,7 +173,7 @@
(set! (-> s3-0 prim-core offense) 4)
(set-vector! (-> s3-0 local-sphere) 4096.0 6144.0 -4096.0 8192.0)
)
((method-of-object s4-0 dummy-28))
(dummy-28 s4-0)
(let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s3-1 prim-core collide-as) (the-as uint 256))
(set! (-> s3-1 collide-with) (the-as uint 16))
@ -181,10 +181,10 @@
(set! (-> s3-1 prim-core offense) 4)
(set-vector! (-> s3-1 local-sphere) 4096.0 10240.0 -4096.0 8192.0)
)
((method-of-object s4-0 dummy-28))
(dummy-28 s4-0)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
((method-of-object s5-0 dummy-50))
(dummy-50 s5-0)
(set! (-> obj root) s5-0)
)
0

View file

@ -1355,7 +1355,7 @@
(set! (-> s4-0 prim-core offense) 4)
(set! (-> s4-0 transform-index) arg0)
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 10240.0)
((method-of-object s5-0 dummy-46))
(dummy-46 s5-0)
(let ((s2-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s2-0 prim-core collide-as) (the-as uint 256))
(set! (-> s2-0 collide-with) (the-as uint 16))
@ -1364,7 +1364,7 @@
(set! (-> s2-0 transform-index) arg0)
(set-vector! (-> s2-0 local-sphere) 0.0 -2048.0 0.0 5324.8)
)
((method-of-object s4-0 dummy-28))
(dummy-28 s4-0)
(let ((s2-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s2-1 prim-core collide-as) (the-as uint 256))
(set! (-> s2-1 collide-with) (the-as uint 16))
@ -1373,10 +1373,10 @@
(set! (-> s2-1 transform-index) arg0)
(set-vector! (-> s2-1 local-sphere) 0.0 2048.0 0.0 5324.8)
)
((method-of-object s4-0 dummy-28))
(dummy-28 s4-0)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
((method-of-object s5-0 dummy-50))
(dummy-50 s5-0)
(set! (-> obj root) s5-0)
)
0

View file

@ -223,7 +223,7 @@
(vector-! gp-0 (-> self root-override trans) s5-0)
)
(when (< (-> self path-pos) 0.9)
((method-of-object (-> *target* control) dummy-28))
(TODO-RENAME-28 (-> *target* control))
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-2 from) self)
(set! (-> a1-2 num-params) 0)
@ -299,4 +299,4 @@
(dummy-14 obj *sunken-elevator-sg* '())
0
(none)
)
)

View file

@ -315,7 +315,7 @@
(set! (-> s4-0 prim-core action) (the-as uint 1))
(set! (-> s4-0 prim-core offense) 4)
(set-vector! (-> s4-0 local-sphere) -3072.0 8192.0 0.0 11264.0)
((method-of-object s5-0 dummy-46))
(dummy-46 s5-0)
(let ((s3-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint 256))
(set! (-> s3-0 collide-with) (the-as uint 16))
@ -323,7 +323,7 @@
(set! (-> s3-0 prim-core offense) 4)
(set-vector! (-> s3-0 local-sphere) -2048.0 9216.0 0.0 8192.0)
)
((method-of-object s4-0 dummy-28))
(dummy-28 s4-0)
(let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s3-1 prim-core collide-as) (the-as uint 256))
(set! (-> s3-1 collide-with) (the-as uint 16))
@ -331,10 +331,10 @@
(set! (-> s3-1 prim-core offense) 4)
(set-vector! (-> s3-1 local-sphere) 0.0 2048.0 0.0 4096.0)
)
((method-of-object s4-0 dummy-28))
(dummy-28 s4-0)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
((method-of-object s5-0 dummy-50))
(dummy-50 s5-0)
(set! (-> obj root) s5-0)
)
0

View file

@ -50,4 +50,3 @@ for label in labels_with_no_type:
print("- {}".format(label))
print("And here are the ones I could:")
print(",\n".join(label_lines))

View file

@ -10,7 +10,7 @@
)
;; definition for function matrix-local->world
(defun matrix-local->world ((arg0 symbol))
(defun matrix-local->world ((arg0 symbol) (arg1 symbol))
(if arg0
(-> *math-camera* inv-camera-rot-smooth)
(-> *math-camera* inv-camera-rot)

View file

@ -175,7 +175,7 @@
((num-tris int32 :offset-assert 4)
(num-prims int32 :offset-assert 8)
(ignore-mask uint32 :offset-assert 12)
(proc basic :offset-assert 16)
(proc process-drawable :offset-assert 16)
(collide-box bounding-box :inline :offset-assert 32)
(collide-box4w bounding-box4w :inline :offset-assert 64)
(collide-with uint64 :offset-assert 96)
@ -188,11 +188,11 @@
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-11 (_type_ collide-using-spheres-params) none 11)
(dummy-12 (_type_ vector float uint process bone uint) float 12)
(dummy-13 () none 13)
(dummy-13 (_type_ int uint process-drawable uint) none 13)
(dummy-14 () none 14)
(dummy-15 () none 15)
(dummy-15 (_type_ int) none 15)
(dummy-16 (_type_ vector float uint process uint) none 16)
(dummy-17 () none 17)
(dummy-18 () none 18)

View file

@ -20,8 +20,8 @@
:size-assert #x144
:flag-assert #xb00000144
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-9 (_type_) symbol 9)
(dummy-10 (_type_) symbol 10)
)
)

View file

@ -361,7 +361,7 @@
:flag-assert #x1e00000054
(:methods
(new (symbol type basic uint int) _type_ 0)
(dummy-28 () none 28)
(dummy-28 (_type_) none 28)
(dummy-29 () none 29)
)
)
@ -406,9 +406,9 @@
:flag-assert #x38000000b8
(:methods
(new (symbol type process collide-list-enum) _type_ 0)
(dummy-28 () none 28)
(TODO-RENAME-28 (_type_) none 28)
(dummy-29 () none 29)
(dummy-30 () none 30)
(TODO-RENAME-30 (_type_ vector) none 30)
(dummy-31 () none 31)
(dummy-32 () none 32)
(dummy-33 (_type_ vector uint) none 33)
@ -418,20 +418,20 @@
(dummy-37 () none 37)
(dummy-38 () none 38)
(dummy-39 () none 39)
(dummy-40 () none 40)
(dummy-40 (_type_ object) none 40)
(dummy-41 () none 41)
(dummy-42 () none 42)
(dummy-43 () none 43)
(dummy-44 (_type_) none 44)
(dummy-45 (_type_) none 45)
(dummy-46 () none 46)
(dummy-46 (_type_) none 46)
(dummy-47 (_type_) none 47)
(dummy-48 (_type_) none 48)
(dummy-49 () none 49)
(dummy-50 () none 50)
(dummy-50 (_type_) none 50)
(dummy-51 () none 51)
(dummy-52 () none 52)
(dummy-53 () none 53)
(dummy-53 (_type_ int int int) none 53)
(dummy-54 (_type_ int int) none 54)
(dummy-55 () none 55)
)

View file

@ -40,18 +40,109 @@
;; definition of type control-info
(deftype control-info (collide-shape-moving)
((some-quaternion quaternion :offset 496)
(unknown-vector00 vector :inline :offset 576)
(unknown-surface surface :offset 660)
(unknown-symbol symbol :offset 664)
(unknown-qword uint128 :offset 1136)
(unknown-vector10 vector :inline :offset 1216)
(unknown-vector11 vector :inline :offset 1232)
(unknown-vector12 vector :inline :offset 1248)
(unknown-vector13 vector :inline :offset 1264)
(history-length int16 :offset 2490)
(history-data collide-history 128 :inline :offset-assert 2496)
(pad uint32 27 :offset-assert 18880)
((unknown-vector00 vector :inline :offset 448)
(unknown-vector01 vector :inline :offset 464)
(unknown-vector02 vector :inline :offset 480)
(unknown-quaternion00 quaternion :inline :offset 496)
(unknown-quaternion01 quaternion :inline :offset 512)
(unknown-float00 float :offset 528)
(unknown-float01 float :offset 532)
(unknown-float02 float :offset 536)
(unknown-vector10 vector :inline :offset 544)
(unknown-vector11 vector :inline :offset 560)
(unknown-vector12 vector :inline :offset 576)
(unknown-vector13 vector :inline :offset 608)
(unknown-dynamics00 dynamics :offset 656)
(unknown-surface00 surface :offset 660)
(unknown-surface01 surface :offset 664)
(unknown-cpad-info00 cpad-info :offset 668)
(unknown-float10 float :offset 672)
(unknown-float11 float :offset 676)
(unknown-float12 float :offset 680)
(unknown-float13 float :offset 684)
(unknown-vector20 vector :inline :offset 688)
(unknown-vector21 vector :inline :offset 704)
(unknown-vector22 vector :inline :offset 720)
(unknown-vector23 vector :inline :offset 736)
(unknown-vector-array00 vector 7 :inline :offset 752)
(unknown-vector30 vector :inline :offset 880)
(unknown-vector31 vector :inline :offset 896)
(unknown-float20 float :offset 912)
(unknown-float21 float :offset 916)
(unknown-dword00 uint64 :offset 920)
(unknown-matrix00 matrix :inline :offset 928)
(unknown-matrix01 matrix :inline :offset 992)
(unknown-matrix02 matrix :inline :offset 1056)
(unknown-qword00 uint128 :offset 1136)
(unknown-float30 float :offset 1140)
(unknown-vector40 vector :inline :offset 1152)
(unknown-float40 float :offset 1176)
(unknown-int00 int32 :offset 1180)
(unknown-float50 float :offset 1168)
(unknown-vector50 vector :inline :offset 1184)
(unknown-vector51 vector :inline :offset 1200)
(unknown-vector52 vector :inline :offset 1216)
(unknown-vector53 vector :inline :offset 1232)
(unknown-vector54 vector :inline :offset 1248)
(unknown-vector55 vector :inline :offset 1264)
(unknown-dword10 int64 :offset 1288)
(unknown-float60 float :offset 1300)
(unknown-float61 float :offset 1304)
(unknown-float62 float :offset 1308)
(unknown-float63 float :offset 1312)
(unknown-float64 float :offset 1316)
(unknown-dword20 int64 :offset 1320)
(unknown-dword21 int64 :offset 1328)
(unknown-vector60 vector :inline :offset 1456)
(unknown-vector61 vector :inline :offset 1504)
(unknown-float70 float :offset 1520)
(unknown-vector70 vector :inline :offset 1536)
(unknown-handle00 handle :offset 1600)
(unknown-sphere-array00 collide-shape-prim-sphere 3 :offset 1608)
(unknown-sphere00 collide-shape-prim-sphere :offset 1632)
(unknown-sphere01 collide-shape-prim-sphere :offset 1636)
(unknown-sphere02 collide-shape-prim-sphere :offset 1640)
(unknown-dword30 int64 :offset 1672)
(unknown-dword31 int64 :offset 1680)
(unknown-dword32 int64 :offset 1688)
(unknown-dword33 int64 :offset 1696)
(unknown-float80 float :offset 1724)
(unknown-float81 float :offset 1728)
(unknown-float82 float :offset 1732)
(unknown-vector80 vector :inline :offset 1744)
(unknown-cspace00 cspace :inline :offset 1760)
(unknown-vector90 vector :inline :offset 1776)
(unknown-vector91 vector :inline :offset 1792)
(unknown-vector92 vector :inline :offset 1824)
(unknown-cspace10 cspace :inline :offset 1808)
(unknown-symbol00 symbol :offset 1840)
(unknown-float90 float :offset 1844)
(unknown-float91 float :offset 1848)
(unknown-vector-array10 vector 16 :inline :offset 1856)
(unknown-float100 float :offset 2112)
(unknown-int10 int32 :offset 2116)
(unknown-float110 float :offset 2120)
(unknown-vector100 vector :inline :offset 2128)
(unknown-vector101 vector :inline :offset 2144)
(unknown-dword40 int64 :offset 2160)
(unknown-dword41 int64 :offset 2168)
(unknown-handle10 handle :offset 2176)
(unknown-int20 int32 :offset 2188)
(unknown-vector110 vector :inline :offset 2320)
(unknown-vector111 vector :inline :offset 2336)
(unknown-int30 int32 :offset 2384)
(unknown-dword50 int64 :offset 2392)
(unknown-dword51 int64 :offset 2400)
(unknown-symbol10 symbol :offset 2428)
(unknown-halfword00 int16 :offset 2488)
(history-length int16 :offset 2490)
(history-data collide-history 128 :inline :offset-assert 2496)
(unknown-dword60 int64 :offset 18952)
(unknown-int40 int32 :offset 18880)
(unknown-dword70 int64 :offset 18888)
(unknown-dword71 int64 :offset 18896)
(unknown-dword72 int64 :offset 18912)
(pad uint32 7 :offset-assert 18960)
)
:method-count-assert 65
:size-assert #x4a2c

View file

@ -123,7 +123,7 @@
((trans vector :inline :offset-assert 0)
(vector vector :inline :offset-assert 16)
(intersection vector :inline :offset-assert 32)
(attacker uint64 :offset-assert 48)
(attacker handle :offset-assert 48)
(invinc-time uint64 :offset-assert 56)
(mask uint32 :offset-assert 64)
(mode symbol :offset-assert 68)
@ -140,7 +140,7 @@
:size-assert #x68
:flag-assert #xa00000068
(:methods
(dummy-9 () none 9)
(dummy-9 (_type_ attack-info) none 9)
)
)
@ -171,7 +171,7 @@
;; definition of type ground-tween-info
(deftype ground-tween-info (structure)
((chan uint8 3 :offset-assert 0)
(blend uint32 3 :offset-assert 4)
(blend float 3 :offset-assert 4)
(group uint32 5 :offset-assert 16)
)
:method-count-assert 9

View file

@ -209,7 +209,7 @@
;; definition of type swingpole
(deftype swingpole (process)
((root basic :offset-assert 112)
((root trsq :offset-assert 112)
(dir vector :inline :offset-assert 128)
(range meters :offset-assert 144)
(edge-length meters :offset-assert 148)

View file

@ -196,8 +196,8 @@
(if
(and
(logtest? (-> self control status) 1)
(!= (-> self control unknown-surface mode) 'swim)
(!= (-> self control unknown-surface mode) 'dive)
(!= (-> self control unknown-surface00 mode) 'swim)
(!= (-> self control unknown-surface00 mode) 'dive)
(!= (-> self next-state name) 'target-flop)
(zero? (logand (-> self draw status) 38))
)

View file

@ -26,7 +26,7 @@
(align-offset meters :offset 100)
(swim-depth meters :offset-assert 104)
(bob smush-control :inline :offset-assert 112)
(volume uint64 :offset-assert 144)
(volume handle :offset-assert 144)
(bottom vector 2 :inline :offset-assert 160)
(top vector 2 :inline :offset-assert 192)
(enter-water-pos vector :inline :offset-assert 224)
@ -122,7 +122,7 @@
(set! (-> v0-0 swim-height) arg3)
(set! (-> v0-0 bottom-height) 32768.0)
(set! (-> v0-0 ripple-size) 1638.4)
(set! (-> v0-0 volume) (the-as uint #f))
(set! (-> v0-0 volume) (the-as handle #f))
(set! (-> v0-0 drip-mult) 1.0)
(set! (-> v0-0 top-y-offset) arg2)
v0-0

File diff suppressed because it is too large Load diff

View file

@ -3,7 +3,7 @@
;; definition of type surface
(deftype surface (basic)
((name basic :offset-assert 4)
((name symbol :offset-assert 4)
(turnv float :offset-assert 8)
(turnvv float :offset-assert 12)
(tiltv float :offset-assert 16)
@ -26,14 +26,14 @@
(alignv float :offset-assert 84)
(slope-up-traction float :offset-assert 88)
(align-speed float :offset-assert 92)
(active-hook basic :offset 128)
(touch-hook basic :offset-assert 132)
(impact-hook basic :offset-assert 136)
(active-hook (function none) :offset 128)
(touch-hook (function none) :offset-assert 132)
(impact-hook function :offset-assert 136)
(mult-hook (function surface surface surface int none) :offset-assert 140)
(mode basic :offset-assert 144)
(mode symbol :offset-assert 144)
(flags uint32 :offset-assert 148)
(data float 30 :offset 8)
(hook basic 4 :offset 128)
(hook function 4 :offset 128)
(dataw uint32 2 :offset 144)
)
:method-count-assert 9

View file

@ -4,6 +4,7 @@
;; definition of type target
(deftype target (process-drawable)
((control control-info :offset 112)
(fact-info-target fact-info-target :offset 144)
(skel2 basic :offset-assert 176)
(racer basic :offset-assert 180)
(game game-info :offset-assert 184)
@ -33,7 +34,7 @@
:size-assert #x248
:flag-assert #x1501e00248
(:methods
(dummy-20 () none 20)
(dummy-20 (_type_ collide-cache) none 20)
)
)

File diff suppressed because it is too large Load diff

View file

@ -915,7 +915,7 @@
(and
v1-50
(= v1-50 *target*)
(!= (-> *target* control unknown-surface mode) 'swim)
(!= (-> *target* control unknown-surface00 mode) 'swim)
)
(when (not (-> self player-impulse))
(set! (-> self player-contact) #t)
@ -1122,9 +1122,9 @@
(set! (-> s4-0 transform-index) 0)
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 20480.0)
)
((method-of-object s5-0 dummy-46))
(dummy-46 s5-0)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
((method-of-object s5-0 dummy-50))
(dummy-50 s5-0)
(set! (-> obj root-overlay) s5-0)
)
0

View file

@ -317,7 +317,7 @@
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 1))
(set-vector! (-> s3-0 local-sphere) 0.0 12288.0 0.0 36864.0)
((method-of-object s4-0 dummy-46))
(dummy-46 s4-0)
(let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 1))))
(set! (-> s2-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-0 collide-with) (the-as uint 16))
@ -326,7 +326,7 @@
(set! (-> s2-0 transform-index) 5)
(set-vector! (-> s2-0 local-sphere) -4096.0 2048.0 0.0 5120.0)
)
((method-of-object s3-0 dummy-28))
(dummy-28 s3-0)
(let
((s2-1
(new
@ -345,7 +345,7 @@
(set! (-> s2-1 transform-index) 7)
(set-vector! (-> s2-1 local-sphere) 0.0 0.0 0.0 32768.0)
)
((method-of-object s3-0 dummy-28))
(dummy-28 s3-0)
(let
((s2-2
(new
@ -364,7 +364,7 @@
(set! (-> s2-2 transform-index) 4)
(set-vector! (-> s2-2 local-sphere) 0.0 0.0 0.0 32768.0)
)
((method-of-object s3-0 dummy-28))
(dummy-28 s3-0)
(let
((s2-3
(new
@ -383,7 +383,7 @@
(set! (-> s2-3 transform-index) 3)
(set-vector! (-> s2-3 local-sphere) 0.0 0.0 0.0 32768.0)
)
((method-of-object s3-0 dummy-28))
(dummy-28 s3-0)
(let
((s2-4
(new
@ -402,10 +402,10 @@
(set! (-> s2-4 transform-index) 3)
(set-vector! (-> s2-4 local-sphere) 0.0 0.0 0.0 32768.0)
)
((method-of-object s3-0 dummy-28))
(dummy-28 s3-0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
((method-of-object s4-0 dummy-50))
(dummy-50 s4-0)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)

View file

@ -250,9 +250,9 @@
(set! (-> s3-0 transform-index) 4)
(set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 18432.0)
)
((method-of-object s4-0 dummy-46))
(dummy-46 s4-0)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
((method-of-object s4-0 dummy-50))
(dummy-50 s4-0)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
@ -350,9 +350,9 @@
(set! (-> s4-0 transform-index) 0)
(set-vector! (-> s4-0 local-sphere) -12288.0 0.0 0.0 40960.0)
)
((method-of-object s5-0 dummy-46))
(dummy-46 s5-0)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
((method-of-object s5-0 dummy-50))
(dummy-50 s5-0)
(set! (-> obj root-override) s5-0)
)
0

View file

@ -167,7 +167,7 @@
(set! (-> s4-0 prim-core action) (the-as uint 1))
(set! (-> s4-0 prim-core offense) 4)
(set-vector! (-> s4-0 local-sphere) 4096.0 8192.0 -4096.0 12288.0)
((method-of-object s5-0 dummy-46))
(dummy-46 s5-0)
(let ((s3-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint 256))
(set! (-> s3-0 collide-with) (the-as uint 16))
@ -175,7 +175,7 @@
(set! (-> s3-0 prim-core offense) 4)
(set-vector! (-> s3-0 local-sphere) 4096.0 6144.0 -4096.0 8192.0)
)
((method-of-object s4-0 dummy-28))
(dummy-28 s4-0)
(let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s3-1 prim-core collide-as) (the-as uint 256))
(set! (-> s3-1 collide-with) (the-as uint 16))
@ -183,10 +183,10 @@
(set! (-> s3-1 prim-core offense) 4)
(set-vector! (-> s3-1 local-sphere) 4096.0 10240.0 -4096.0 8192.0)
)
((method-of-object s4-0 dummy-28))
(dummy-28 s4-0)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
((method-of-object s5-0 dummy-50))
(dummy-50 s5-0)
(set! (-> obj root) s5-0)
)
0

View file

@ -1359,7 +1359,7 @@
(set! (-> s4-0 prim-core offense) 4)
(set! (-> s4-0 transform-index) arg0)
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 10240.0)
((method-of-object s5-0 dummy-46))
(dummy-46 s5-0)
(let ((s2-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s2-0 prim-core collide-as) (the-as uint 256))
(set! (-> s2-0 collide-with) (the-as uint 16))
@ -1368,7 +1368,7 @@
(set! (-> s2-0 transform-index) arg0)
(set-vector! (-> s2-0 local-sphere) 0.0 -2048.0 0.0 5324.8)
)
((method-of-object s4-0 dummy-28))
(dummy-28 s4-0)
(let ((s2-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s2-1 prim-core collide-as) (the-as uint 256))
(set! (-> s2-1 collide-with) (the-as uint 16))
@ -1377,10 +1377,10 @@
(set! (-> s2-1 transform-index) arg0)
(set-vector! (-> s2-1 local-sphere) 0.0 2048.0 0.0 5324.8)
)
((method-of-object s4-0 dummy-28))
(dummy-28 s4-0)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
((method-of-object s5-0 dummy-50))
(dummy-50 s5-0)
(set! (-> obj root) s5-0)
)
0

View file

@ -231,7 +231,7 @@
(vector-! gp-0 (-> self root-override trans) s5-0)
)
(when (< (-> self path-pos) 0.9)
((method-of-object (-> *target* control) dummy-28))
(TODO-RENAME-28 (-> *target* control))
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-2 from) self)
(set! (-> a1-2 num-params) 0)

View file

@ -301,7 +301,7 @@
(set! (-> s4-0 prim-core action) (the-as uint 1))
(set! (-> s4-0 prim-core offense) 4)
(set-vector! (-> s4-0 local-sphere) -3072.0 8192.0 0.0 11264.0)
((method-of-object s5-0 dummy-46))
(dummy-46 s5-0)
(let ((s3-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint 256))
(set! (-> s3-0 collide-with) (the-as uint 16))
@ -309,7 +309,7 @@
(set! (-> s3-0 prim-core offense) 4)
(set-vector! (-> s3-0 local-sphere) -2048.0 9216.0 0.0 8192.0)
)
((method-of-object s4-0 dummy-28))
(dummy-28 s4-0)
(let ((s3-1 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
(set! (-> s3-1 prim-core collide-as) (the-as uint 256))
(set! (-> s3-1 collide-with) (the-as uint 16))
@ -317,10 +317,10 @@
(set! (-> s3-1 prim-core offense) 4)
(set-vector! (-> s3-1 local-sphere) 0.0 2048.0 0.0 4096.0)
)
((method-of-object s4-0 dummy-28))
(dummy-28 s4-0)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
((method-of-object s5-0 dummy-50))
(dummy-50 s5-0)
(set! (-> obj root) s5-0)
)
0