decomp: target, target-board, board-states (#1915)

Just missing `target-board-handler` because it errored with `Bad delay
slot in clean_up_cond_no_else_final` and I wasn't able to figure out
where the asm branch was.

Commented out `target-board-clone-anim` because it crashes even after
adding `clone-anim` and `clone-anim-once`.
This commit is contained in:
Hat Kid 2022-09-25 18:07:37 +02:00 committed by GitHub
parent e8b1aee24d
commit a53c06fe2b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
42 changed files with 26584 additions and 3004 deletions

View file

@ -741,7 +741,8 @@ void clean_up_cond_no_else_final(Function& func, CondNoElseElement* cne) {
if (branch_info_i.written_and_unused.find(reg->reg()) ==
branch_info_i.written_and_unused.end()) {
lg::error("Branch delay register used improperly: {}", reg->to_string(func.ir2.env));
throw std::runtime_error("Bad delay slot in clean_up_cond_no_else_final");
throw std::runtime_error("Bad delay slot in clean_up_cond_no_else_final: OP " +
std::to_string(branch->op()->op_id()));
}
// ASSERT(branch_info_i.written_and_unused.find(reg->reg()) !=
// branch_info_i.written_and_unused.end());

File diff suppressed because it is too large Load diff

View file

@ -341,5 +341,21 @@
7,
"(function process int symbol event-message-block object :behavior pov-camera)"
]
],
"target-board": [
[26, "(function surface surface surface int none)"],
[27, "(function surface surface surface int none :behavior target)"],
[28, "(function surface surface surface int none :behavior target)"],
[29, "(function surface surface surface int none :behavior target)"]
],
"target": [
[1, "(function none :behavior target)"],
[7, "(function none :behavior target)"],
[18, "(function target float :behavior target)"],
[28, "(function surface surface surface int float :behavior target)"],
[34, "(function surface object object int symbol :behavior target)"],
[44, "(function surface surface surface int none :behavior target)"],
[45, "(function surface object object int float :behavior target)"],
[76, "(function surface surface surface int float :behavior target)"]
]
}

View file

@ -120,7 +120,6 @@
"draw-inline-array-instance-shrub",
// "reset-target-tracking",
"(anon-function 1 target)",
"target-land-effect",
"(method 12 effect-control)",
"(method 11 effect-control)",

View file

@ -209,5 +209,46 @@
["L893", "uint64", true],
["L953", "uint64", true],
["L954", "uint64", true]
]
],
"board-states": [
["L653", "uint64", true],
["L654", "uint64", true],
["L655", "uint64", true],
["L656", "uint64", true],
["L657", "uint64", true],
["L658", "uint64", true],
["L659", "uint64", true],
["L660", "uint64", true],
["L661", "uint64", true],
["L662", "uint64", true],
["L663", "uint64", true],
["L664", "uint64", true],
["L665", "uint64", true],
["L666", "uint64", true],
["L667", "uint64", true],
["L668", "uint64", true],
["L669", "uint64", true]
],
"target-board": [
["L505", "sound-spec"],
["L509", "attack-info"],
["L520", "(pointer uint64)", 1],
["L521", "uint64", true],
["L522", "(pointer uint64)", 1],
["L523", "uint64", true],
["L524", "uint64", true],
["L525", "uint64", true],
["L526", "uint64", true],
["L527", "uint64", true]
],
"target": [
["L785", "uint64", true],
["L786", "uint64", true],
["L787", "uint64", true],
["L788", "uint64", true],
["L789", "uint64", true],
["L790", "uint64", true],
["L791", "uint64", true]
],
"target-gun": [["L595", "uint64", true]]
}

View file

@ -781,5 +781,131 @@
"(method 26 level-group)": [
[64, "vector"],
[80, "vector"]
]
],
"(event target-board-halfpipe)": [[16, "vector"]],
"process-drawable-shock-effect": [[16, "matrix"]],
"(code target-board-get-on)": [[16, "event-message-block"]],
"(enter target-board-get-on)": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "vector"]
],
"(enter target-board-get-off)": [
[16, "vector"],
[32, "vector"]
],
"(trans target-board-ride-edge)": [[16, "vector"]],
"target-board-compute-edge": [
[16, "vector"],
[32, "vector"],
[128, "vector"]
],
"target-board-spin-check": [
[16, "vector"],
[32, "vector"]
],
"(code target-board-hit)": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "vector"],
[80, "event-message-block"]
],
"target-board-ground-check": [
[16, "vector"],
[32, "event-message-block"]
],
"(enter target-board-jump)": [
[48, "vector"],
[64, "event-message-block"]
],
"(trans target-board-halfpipe)": [
// stack guess hang
[16, "vector"],
[32, "vector"],
[48, "vector"]
],
"(enter target-board-halfpipe)": [
// stack guess hang
[16, "vector"],
[32, "vector"],
[48, "vector"]
],
"(enter target-board-grenade)": [[16, "vector"]],
"(enter target-board-turn-to)": [
[16, "vector"],
[32, "vector"]
],
"(code target-board-hold)": [
[16, "vector"],
[32, "vector"]
],
"(code target-board-flip)": [[16, "vector"]],
"(exit target-board-ride-edge)": [[32, "collide-query"]],
"(code target-board-trickx)": [[16, "vector"]],
"(method 9 board-info)": [[16, "event-message-block"]],
"init-var-jump": [
[16, "event-message-block"],
[96, "vector"]
],
"(post target-slide-down-to-ground)": [
// stack guess hang
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "vector"],
[80, "vector"]
],
"(enter target-attack-air)": [
// stack guess hang
[16, "vector"],
[32, "vector"],
[48, "vector"]
],
"(event target-attack-uppercut-jump)": [
// stack guess hang
[16, "vector"],
[32, "vector"],
[48, "vector"]
],
"target-board-ride-post": [
[48, "vector"],
[64, "vector"],
[80, "collide-query"]
],
"probe-test": [[16, "collide-query"]],
"target-board-real-post": [
[16, "vector"],
[128, "vector"]
],
"board-add-thrust": [[16, "vector"]],
"target-board-collision": [
[16, "vector"],
[32, "vector"]
],
"(code target-roll-flip)": [
[16, "vector"],
[32, "vector"]
],
"(code target-flop)": [
[16, "vector"],
[32, "vector"],
[48, "vector"]
],
"(trans target-flop)": [[16, "event-message-block"]],
"(enter target-flop)": [[16, "vector"]],
"(code target-running-attack)": [[32, "collide-query"]],
"mod-var-jump": [
[16, "vector"],
[32, "vector"]
],
"(trans target-running-attack)": [
[16, "vector"],
[32, "vector"],
[48, "vector"]
],
"target-board-pre-move": [[112, "vector"]],
// placeholder
"placeholder-do-not-add-below": []
}

View file

@ -2321,9 +2321,7 @@
[[42, 46], "t2", "(pointer int8)"]
],
"(method 14 drawable-tree-array)": [[11, "s5", "drawable-tree-array"]],
"upload-vis-bits": [
[14, "a1", "(pointer uint128)"]
],
"upload-vis-bits": [[14, "a1", "(pointer uint128)"]],
"set-background-regs!": [
[42, "v1", "(pointer int32)"],
[47, "v1", "(pointer int32)"],
@ -2339,19 +2337,13 @@
[941, "a3", "(pointer float)"],
[974, "t3", "(pointer int32)"]
],
"(method 16 drawable-inline-array-node)": [
[[1,7], "v1", "draw-node"]
],
"(method 16 drawable-inline-array-node)": [[[1, 7], "v1", "draw-node"]],
"(method 9 tfragment)": [
[27, "a3", "(pointer int32)"],
[32, "t0", "texture"]
],
"add-tfrag-mtx-0": [
[[3, 17], "a0", "dma-packet"]
],
"add-tfrag-mtx-1": [
[[3, 17], "a0", "dma-packet"]
],
"add-tfrag-mtx-0": [[[3, 17], "a0", "dma-packet"]],
"add-tfrag-mtx-1": [[[3, 17], "a0", "dma-packet"]],
"add-tfrag-data": [
[[3, 17], "a0", "dma-packet"],
[[24, 31], "v1", "dma-packet"]
@ -2445,7 +2437,152 @@
"end-scan": [
[[18, 22], "v1", "dma-packet"]
],
"(code target-board-jump)": [[17, "v1", "art-joint-anim"]],
"(code target-board-get-on)": [[55, "v1", "art-joint-anim"]],
"(code target-board-jump-kick)": [[15, "v1", "art-joint-anim"]],
"(code target-board-get-off)": [[78, "v1", "art-joint-anim"]],
"(code target-board-stance)": [[49, "v1", "art-joint-anim"]],
"(code target-board-wall-kick)": [
[10, "v1", "art-joint-anim"],
[59, "f0", "float"]
],
"(code target-board-pegasus)": [
[32, "s4", "art-joint-anim"],
[68, "s4", "process-focusable"],
[85, "s4", "process-focusable"],
[149, "s4", "target"]
],
"(code target-board-trickx)": [
[81, "v1", "art-joint-anim"],
[149, "v1", "art-joint-anim"],
[218, "v1", "art-joint-anim"],
[301, "v1", "art-joint-anim"]
],
"(code target-board-flip)": [
[108, "v1", "art-joint-anim"],
[218, "v1", "art-joint-anim"],
[319, "v1", "art-joint-anim"],
[385, "v1", "art-joint-anim"]
],
"(code target-board-hold)": [
[100, "v1", "art-joint-anim"],
[227, "v1", "art-joint-anim"],
[415, "v1", "art-joint-anim"],
[485, "v1", "art-joint-anim"]
],
"(code target-board-hit-ground)": [
[77, "v1", "art-joint-anim"],
[147, "v1", "art-joint-anim"]
],
"target-board-ground-check": [
[205, "v1", "board"],
[265, "v1", "board"]
],
"(enter target-board-jump)": [
[174, "v1", "board"],
[231, "v1", "board"]
],
"(trans target-board-ride-edge)": [[107, "v0", "sound-rpc-set-param"]],
"(enter target-board-flip)": [[78, "v0", "sound-rpc-set-param"]],
"target-board-anim-trans": [[192, "v0", "sound-rpc-set-param"]],
"(exit target-board-ride-edge)": [[8, "v0", "sound-rpc-set-param"]],
"(exit target-board-flip)": [[31, "v0", "sound-rpc-set-param"]],
"(exit target-board-hold)": [[9, "v0", "sound-rpc-set-param"]],
"(code target-board-hit)": [
[304, "v1", "fact-info-target"],
[455, "v1", "fact-info-target"]
],
"(code target-board-halfpipe)": [
[173, "t9", "(function none :behavior target)"]
],
"(event target-board-grab)": [[24, "a0", "process"]],
"(event target-board-halfpipe)": [[82, "v1", "float"]],
"talker-spawn-func": [
[79, "a0", "talker"],
[82, "v1", "talker"],
[85, "v1", "talker"]
],
"(method 9 board-info)": [
[45, "a0", "fact-info-target"],
[55, "a0", "fact-info-target"]
],
"target-board-real-post": [[346, "v0", "sound-rpc-set-param"]],
"target-board-effect": [[334, "v0", "sound-rpc-set-param"]],
"target-board-handler": [[123, "a0", "process"]],
"(trans target-flop-hit-ground)": [
[52, "v1", "fact-info-target"],
[58, "v1", "fact-info-target"]
],
"(code target-flop)": [[32, "v1", "art-joint-anim"]],
"(trans target-flop)": [
[73, "v1", "fact-info-target"],
[79, "v1", "fact-info-target"],
[108, "v1", "fact-info-target"],
[114, "v1", "fact-info-target"],
[187, "v1", "fact-info-target"],
[193, "v1", "fact-info-target"]
],
"(enter target-flop)": [
[2, "v1", "fact-info-target"],
[8, "v1", "fact-info-target"]
],
"(trans target-attack-uppercut-jump)": [
[183, "v1", "fact-info-target"],
[189, "v1", "fact-info-target"]
],
"(trans target-attack-air)": [
[83, "v1", "fact-info-target"],
[89, "v1", "fact-info-target"]
],
"(code target-running-attack)": [
[115, "gp", "art-joint-anim"],
[398, "v1", "art-joint-anim"],
[426, "v1", "art-joint-anim"],
[454, "v1", "art-joint-anim"],
[542, "t1", "sound-name"],
[547, "t1", "sound-name"],
[557, "t1", "sound-name"],
[226, "f26", "float"],
[309, "f26", "float"]
],
"(trans target-duck-high-jump-jump)": [[11, "v0", "sound-rpc-set-param"]],
"(code target-double-jump)": [
[81, "v1", "art-joint-anim"],
[119, "v1", "art-joint-anim"]
],
"(code target-jump-forward)": [[55, "v1", "art-joint-anim"]],
"(code target-falling)": [[67, "v1", "art-joint-anim"]],
"mod-var-jump": [
[76, "f1", "float"],
[171, "v0", "vector"]
],
"(code target-slide-down)": [[28, "v1", "art-joint-anim"]],
"(code target-duck-stance)": [
[59, "v1", "art-joint-anim"],
[291, "v1", "art-joint-anim"],
[112, "v1", "art-joint-anim"],
[239, "v1", "art-joint-anim"]
],
"(enter target-double-jump)": [[15, "v1", "vector"]],
"(enter target-jump)": [[42, "v1", "vector"]],
"(enter target-high-jump)": [[21, "v1", "vector"]],
"(code target-attack)": [
[145, "gp", "art-joint-anim"],
[177, "v1", "fact-info-target"],
[183, "v1", "fact-info-target"]
],
"(event target-running-attack)": [[48, "v1", "target"]],
"(trans target-running-attack)": [
[211, "v1", "fact-info-target"],
[217, "v1", "fact-info-target"]
],
"target-gun-end-mode": [[58, "v0", "sound-rpc-set-param"]],
"target-board-physics": [[167, "v0", "sound-rpc-set-param"]],
"clone-anim-once": [
[[22, 69], "gp", "process-drawable"],
[46, "s5", "collide-shape"],
[107, "v1", "manipy"]
],
// placeholder
"placeholder-do-not-add-below": []
}

File diff suppressed because it is too large Load diff

View file

@ -9,6 +9,11 @@
:bitfield #t
:type uint32
(disabled) ;; keep object velocity
(af01)
(af02)
(af03)
(af04)
(af05)
)
(defenum align-opts

View file

@ -54,34 +54,34 @@
(deftype top-anim-joint-control (basic)
((process uint32 :offset-assert 4)
(interp-select uint64 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 art-joint-anim :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 time-frame :offset-assert 80)
(frame-post-put-away basic :offset-assert 88)
(update-time time-frame :offset-assert 96)
((process (pointer process-drawable) :offset-assert 4)
(interp-select uint64 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 art-joint-anim :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 time-frame :offset-assert 80)
(frame-post-put-away basic :offset-assert 88)
(update-time time-frame :offset-assert 96)
)
:method-count-assert 13
:size-assert #x68
:flag-assert #xd00000068
(:methods
(top-anim-joint-control-method-9 () none 9)
(top-anim-joint-control-method-10 () none 10)
(top-anim-joint-control-method-11 () none 11)
(top-anim-joint-control-method-12 () none 12)
(top-anim-joint-control-method-9 (_type_) none 9)
(top-anim-joint-control-method-10 (_type_) none 10)
(top-anim-joint-control-method-11 (_type_ int) joint-control-channel 11)
(top-anim-joint-control-method-12 (_type_ art-element float int int float float symbol) none 12)
)
)

View file

@ -8,6 +8,7 @@
(declare-type collide-shape trsqv)
(declare-type collide-shape-moving collide-shape)
(declare-type touching-list structure)
(declare-type collide-query structure)
(defenum penetrate
:bitfield #t
@ -458,7 +459,7 @@
(collide-shape-method-29 (_type_ vector) none 29)
(collide-shape-method-30 () none 30)
(collide-shape-method-31 () none 31)
(collide-shape-method-32 (_type_ vector uint int) none 32)
(collide-shape-method-32 (_type_ vector collide-query meters) none 32)
(collide-shape-method-33 () none 33)
(collide-shape-method-34 () none 34)
(collide-shape-method-35 () none 35)
@ -518,7 +519,7 @@
:flag-assert #x44000001dc
(:methods
(new (symbol type process-drawable collide-list-enum) _type_ 0)
(collide-shape-moving-method-55 (_type_) symbol 55)
(collide-shape-moving-method-55 (_type_ collide-query collide-spec float float float) symbol 55)
(collide-shape-moving-method-56 () none 56)
(collide-shape-moving-method-57 () none 57)
(collide-shape-moving-method-58 () none 58)

View file

@ -30,7 +30,8 @@
(unknown-word00 int32 :offset 3712)
(unknown-vector04 vector :inline :offset 3728)
(unknown-vector05 vector :inline :offset 3744)
(unknown-vector06 vector :inline :offset 3776)
(unknown-vector06 vector :inline :offset 3760)
(unknown-vector07 vector :inline :offset 3776)
(unknown-dynamics00 dynamics :offset 3824)
(unknown-surface00 surface :offset 3828)
(unknown-surface01 surface :offset 3832)
@ -41,10 +42,10 @@
(unknown-float09 float :offset 3856)
(unknown-float10 float :offset 3860)
(unknown-float11 float :offset 3864)
(unknown-vector07 vector :inline :offset 3872)
(unknown-vector08 vector :inline :offset 3888)
(unknown-vector09 vector :inline :offset 3904)
(unknown-vector10 vector :inline :offset 3920)
(unknown-vector08 vector :inline :offset 3872)
(unknown-vector09 vector :inline :offset 3888)
(unknown-vector10 vector :inline :offset 3904)
(unknown-vector11 vector :inline :offset 3920)
(unknown-vector-array01 vector 7 :inline :offset 3936)
(unknown-vector12 vector :inline :offset 4064)
(unknown-vector13 vector :inline :offset 4080)
@ -78,75 +79,121 @@
(unknown-float19 float :offset 4644)
(unknown-float20 float :offset 4648)
(unknown-time-frame06 time-frame :offset 4656)
(unknown-float21 float :offset 4664)
(unknown-time-frame07 time-frame :offset 4672)
(unknown-pat-surface00 pat-surface :offset 4680)
(unknown-vector24 vector :inline :offset 4688)
(unknown-vector25 vector :inline :offset 4720)
(unknown-handle01 handle :offset 4768)
(unknown-handle00 handle :offset 4768)
(unknown-pat-surface01 pat-surface :offset 4776)
(unknown-float21 float :offset 4780)
(unknown-float22 float :offset 4784)
(unknown-float23 float :offset 4788)
(unknown-float24 float :offset 4792)
(unknown-float25 float :offset 4796)
(unknown-float22 float :offset 4780)
(unknown-float23 float :offset 4784)
(unknown-float24 float :offset 4788)
(unknown-float25 float :offset 4792)
(unknown-float26 float :offset 4796)
(unknown-time-frame08 time-frame :offset 4816)
(unknown-vector26 vector :inline :offset 4928)
(unknwon-vector27 vector :inline :offset 4976)
(unknown-float26 float :offset 4992)
(unknown-float27 float :offset 4992)
(unknown-time-frame09 time-frame :offset 5000)
(unknown-sphere-array00 collide-shape-prim-sphere 10 :offset 5016)
(unknown-float27 float :offset 5132)
(unknown-float28 float :offset 5136)
(unknown-float29 float :offset 5140)
(unknown-word02 int32 :offset 5064)
(unknown-time-frame10 time-frame :offset 5072)
(unknown-time-frame11 time-frame :offset 5080)
(unknown-time-frame12 time-frame :offset 5096)
(unknown-time-frame13 time-frame :offset 5112)
(unknown-time-frame14 time-frame :offset 5120)
(unknown-float28 float :offset 5132)
(unknown-float29 float :offset 5136)
(unknown-float30 float :offset 5140)
(unknown-vector28 vector :inline :offset 5152)
(unknown-vector29 vector :inline :offset 5168)
(unknown-vector30 vector :inline :offset 5184)
(unknown-vector31 vector :inline :offset 5200)
(unknown-vector32 vector :inline :offset 5216)
(unknown-vector33 vector :inline :offset 5232)
(unknown-symbol00 symbol :offset 5248)
(unknown-float000 float :offset 5252)
(unknown-float31 float :offset 5256)
(unknown-vector-array02 vector 15 :inline :offset 5264)
(unknown-float32 float :offset 5520)
(unknown-word02 int32 :offset 5524)
(unknown-word03 int32 :offset 5524)
(unknown-float33 float :offset 5528)
(unknown-vector34 vector :inline :offset 5536)
(unknown-vector35 vector :inline :offset 5568)
(unknown-time-frame10 time-frame :offset 5584)
(unknown-time-frame11 time-frame :offset 5592)
(unknown-handle00 handle :offset 5608)
(unknown-symbol00 symbol :offset 5620)
(unknown-cspace02 cspace :inline :offset 5824)
(unknown-vector36 vector :inline :offset 5904)
(unknown-float34 float :offset 5908)
(unknown-vector37 vector :inline :offset 5920)
(unknown-float35 float :offset 5924)
(unknown-time-frame12 time-frame :offset 5944)
(unknown-dword05 uint64 :offset 6008)
(unknown-symbol01 symbol :offset 6144)
(unknown-vector35 vector :inline :offset 5552)
(unknown-vector36 vector :inline :offset 5568)
(unknown-time-frame15 time-frame :offset 5584)
(unknown-time-frame16 time-frame :offset 5592)
(unknown-handle01 handle :offset 5608)
(unknown-word04 uint32 :offset 5616)
(unknown-spool-anim00 spool-anim :offset 5616)
(unknown-word05 int32 :offset 5616)
(unknown-symbol01 symbol :offset 5616)
(unknown-float34 float :offset 5616)
(unknown-symbol02 float :offset 5620)
(unknown-symbol03 float :offset 5624)
(unknown-float35 float :offset 5628)
(unknown-float36 float :offset 5632)
(unknown-float37 float :offset 5636)
(unknown-vector37 vector :inline :offset 5648)
(unknown-vector38 vector :inline :offset 5664)
(unknown-vector39 vector :inline :offset 5680)
(unknown-vector40 vector :inline :offset 5696)
(unknown-time-frame17 time-frame :offset 5712)
(unknown-time-frame18 time-frame :offset 5720)
(unknown-sound-id00 sound-id :offset 5776)
(unknown-handle02 handle :offset 5792)
(unknown-impact-control00 impact-control :inline :offset 5824)
(unknown-word06 int32 :offset 5832)
(unknown-vector41 vector :inline :offset 5888)
(unknown-vector42 vector :inline :offset 5904)
(unknown-float38 float :offset 5908)
(unknown-vector43 vector :inline :offset 5920)
(unknown-float39 float :offset 5924)
(unknown-time-frame19 time-frame :offset 5936)
(unknown-time-frame20 time-frame :offset 5944)
(unknown-symbol04 symbol :offset 5984)
(unknown-symbol05 symbol :offset 5988)
(unknown-dword05 uint64 :offset 6000)
(unknown-dword06 uint64 :offset 6008)
(unknown-combo-tracker00 combo-tracker :inline :offset 6032)
(unknown-time-frame21 time-frame :offset 6072)
(unknown-dword07 int64 :offset 6096)
(unknown-dword08 int64 :offset 6104)
(unknown-dword09 int64 :offset 6112)
(unknown-dword10 int64 :offset 6120)
(unknown-symbol06 symbol :offset 6144)
(unknown-quaternion04 quaternion :inline :offset 6160)
(unknown-sound-id01 sound-id :offset 6176)
(unknown-float40 float :offset 6180)
(unknown-float41 float :offset 6184)
(unknown-halfword00 uint16 :offset 6188)
(history-length uint16 :offset 6190)
(unknown-word03 int32 :offset 6192)
(unknown-time-frame13 time-frame :offset 6200)
(unknown-time-frame14 time-frame :offset 6208)
(unknown-time-frame15 time-frame :offset 6216)
(unknown-time-frame16 time-frame :offset 6224)
(unknown-time-frame17 time-frame :offset 6248)
(unknown-time-frame18 time-frame :offset 6256)
(unknown-dword06 int64 :offset 6264)
(unknown-sound-id00 sound-id :offset 6240)
(unknown-sound-id01 sound-id :offset 6244)
(unknown-sound-id02 sound-id :offset 6292)
(unknown-word04 int32 :offset 6300)
(unknown-word05 int32 :offset 6304)
(unknown-word06 int32 :offset 6308)
(unknown-word07 int32 :offset 6312)
(unknown-time-frame19 time-frame :offset 6320)
(unknown-time-frame20 time-frame :offset 6328)
(unknown-dword07 int64 :offset 6336)
(unknown-time-frame21 time-frame :offset 6368)
(unknown-quaternion04 quaternion :inline :offset 6384)
(unknown-time-frame22 time-frame :offset 6400)
(unknown-time-frame23 time-frame :offset 6408)
(unknown-word07 int32 :offset 6192)
(unknown-time-frame22 time-frame :offset 6200)
(unknown-time-frame23 time-frame :offset 6208)
(unknown-time-frame24 time-frame :offset 6216)
(unknown-time-frame25 time-frame :offset 6224)
(unknown-float42 float :offset 6232)
(unknown-sound-id02 sound-id :offset 6240)
(unknown-sound-id03 sound-id :offset 6244)
(unknown-time-frame26 time-frame :offset 6248)
(unknown-time-frame27 time-frame :offset 6256)
(unknown-dword11 int64 :offset 6264)
(unknown-vector44 vector :inline :offset 6272)
(unknown-float43 float :offset 6288)
(unknown-sound-id04 sound-id :offset 6292)
(unknown-word08 int32 :offset 6300)
(unknown-word09 int32 :offset 6304)
(unknown-word10 int32 :offset 6308)
(unknown-word11 int32 :offset 6312)
(unknown-time-frame28 time-frame :offset 6320)
(unknown-time-frame29 time-frame :offset 6328)
(unknown-dword12 int64 :offset 6336)
(unknown-time-frame30 time-frame :offset 6368)
(unknown-quaternion05 quaternion :inline :offset 6384)
(unknown-time-frame31 time-frame :offset 6400)
(unknown-time-frame32 time-frame :offset 6408)
(pad uint8 :offset 6415)
)
:method-count-assert 68

View file

@ -99,7 +99,7 @@
(get-head (_type_) touching-prims-entry 9)
(get-next (_type_ touching-shapes-entry) touching-prims-entry 10)
(touching-shapes-entry-method-11 () none 11)
(touching-shapes-entry-method-12 () none 12)
(touching-shapes-entry-method-12 (_type_ collide-shape uint) touching-prims-entry 12)
(touching-shapes-entry-method-13 () none 13)
(touching-shapes-entry-method-14 () none 14)
)

View file

@ -93,22 +93,22 @@
)
(deftype lightning-tracker (process)
((root basic :offset-assert 128)
(lightning basic :offset-assert 132)
(callback basic :offset-assert 136)
(duration uint64 :offset-assert 144)
(start-time time-frame :offset-assert 152)
(offset0 vector :inline :offset-assert 160)
(offset1 vector :inline :offset-assert 176)
(target0 uint64 :offset-assert 192)
(target1 uint64 :offset-assert 200)
(target-joint0 int32 :offset-assert 208)
(target-joint1 int32 :offset-assert 212)
(sound uint32 :offset-assert 216)
(userdata uint64 :offset-assert 224)
(user-time time-frame 2 :offset-assert 232)
(user-vector vector :inline :offset-assert 256)
(user-handle handle 2 :offset 288)
((root basic :offset-assert 128)
(lightning lightning-spec :offset-assert 132)
(callback basic :offset-assert 136)
(duration uint64 :offset-assert 144)
(start-time time-frame :offset-assert 152)
(offset0 vector :inline :offset-assert 160)
(offset1 vector :inline :offset-assert 176)
(target0 uint64 :offset-assert 192)
(target1 uint64 :offset-assert 200)
(target-joint0 int32 :offset-assert 208)
(target-joint1 int32 :offset-assert 212)
(sound uint32 :offset-assert 216)
(userdata uint64 :offset-assert 224)
(user-time time-frame 2 :offset-assert 232)
(user-vector vector :inline :offset-assert 256)
(user-handle handle 2 :offset 288)
)
:heap-base #xb0
:method-count-assert 17

View file

@ -5,5 +5,91 @@
;; name in dgo: generic-obs
;; dgos: ENGINE, GAME
(define-extern ja-post (function none :behavior process-drawable))
(define-extern merc-blend-shape (function process-drawable object))
(define-extern merc-eye-anim (function process-drawable none))
;; DECOMP BEGINS
(defbehavior clone-anim-once process-drawable ((arg0 handle) (arg1 symbol) (arg2 string))
(logclear! (-> self skel status) (joint-control-status valid-spooled-frame))
(let ((gp-0 (handle->process arg0)))
(if gp-0
(joint-control-copy! (-> self skel) (-> (the-as process-drawable gp-0) skel))
)
(cond
((and (the-as process-drawable gp-0) (joint-control-remap!
(-> self skel)
(-> self draw art-group)
(-> (the-as process-drawable gp-0) draw art-group)
'()
0
arg2
)
)
(when arg1
(let* ((s5-1 (-> self root))
(a0-7 (if (type? s5-1 collide-shape)
(the-as collide-shape s5-1)
)
)
)
(if a0-7
(collide-shape-method-29 a0-7 (-> (the-as process-drawable gp-0) root trans))
(set! (-> self root trans quad) (-> (the-as process-drawable gp-0) root trans quad))
)
)
(quaternion-copy! (-> self root quat) (-> (the-as process-drawable gp-0) root quat))
)
(if (logtest? (-> (the-as process-drawable gp-0) skel status) (joint-control-status valid-spooled-frame))
(logior! (-> self skel status) (joint-control-status valid-spooled-frame))
)
(logclear! (-> self draw status) (draw-control-status no-draw no-draw-temp uninited))
(if (or (zero? (-> self skel active-channels)) (not (-> self skel root-channel 0 frame-group)))
(logior! (-> self draw status) (draw-control-status no-draw-temp))
)
(let* ((gp-1 self)
(v1-38 (if (type? gp-1 manipy)
gp-1
)
)
)
(if (and v1-38 (not (-> (the-as manipy v1-38) draw?)))
(logior! (-> self draw status) (draw-control-status no-draw-temp))
)
)
(joint-control-method-10 (-> self skel))
(draw-control-method-14 (-> self draw) (-> self node-list) (-> self skel))
(let ((a0-22 (-> self skel effect)))
(if a0-22
((method-of-object a0-22 effect-control-method-9))
)
)
(if (logtest? (-> self skel status) (joint-control-status blend-shape blend-shape-valid))
(merc-blend-shape self)
)
(if (logtest? (-> self skel status) (joint-control-status eye-anim-valid eye-anim))
(merc-eye-anim self)
)
)
(else
(set! (-> self skel active-channels) (the-as uint 0))
(logior! (-> self draw status) (draw-control-status no-draw))
(ja-post)
)
)
)
0
(none)
)
(defbehavior clone-anim process-drawable ((arg0 handle) (arg1 symbol) (arg2 string))
(ja-post)
(while (handle->process arg0)
(clone-anim-once arg0 #t arg2)
(suspend)
)
(logclear! (-> self skel status) (joint-control-status valid-spooled-frame))
0
(none)
)

View file

@ -109,7 +109,7 @@
(water-control-method-10 () none 10)
(water-control-method-11 () none 11)
(distance-from-surface (_type_) float 12)
(water-control-method-13 () none 13)
(water-control-method-13 (_type_ float vector int vector symbol) none 13)
(display-water-marks? (_type_) symbol 14)
(water-control-method-15 () none 15)
(water-control-method-16 () none 16)

View file

@ -62,7 +62,7 @@
(effect-control-method-9 () none 9)
(effect-control-method-10 () none 10)
(effect-control-method-11 () none 11)
(effect-control-method-12 () none 12)
(effect-control-method-12 (_type_ symbol float int basic sound-name) int 12)
(set-channel-offset! (_type_ int) none 13)
(effect-control-method-14 () none 14)
)

View file

@ -93,6 +93,9 @@
(fo-min)
(fo-max)
(fo-curve)
(sm09)
(sm10)
(sm11)
)
(defenum stream-status

View file

@ -408,6 +408,13 @@
0
)
(defmacro sound-play (name &key (id (new-sound-id))
&key (vol 100.0) &key (pitch 0) &key (bend 0)
&key (group sfx)
&key (position #t))
`(sound-play-by-name (static-sound-name ,name) ,id (the int (* (/ 1024.0 100.0) ,vol)) (the int (* 1524.0 ,pitch)) ,bend (sound-group ,group) ,position)
)
(defbehavior sound-play-by-name process-drawable ((arg0 sound-name) (arg1 sound-id) (arg2 int) (arg3 int) (arg4 int) (arg5 sound-group) (arg6 object))
(local-vars (sv-16 sound-group))
"Last arg can by a symbol with value [[#t]], in which case it will pull `trans` [[vector]] off the current [[process-drawable]]

View file

@ -5,6 +5,30 @@
;; name in dgo: board-h
;; dgos: ENGINE, GAME
(defenum board-tricks ;; (method 9 board-info)
:type uint32
:bitfield #f
(none 0)
(board-spin 1)
(board-boost 2)
(board-flip 3)
(board-rail 4)
(board-rail-jump 5)
(board-nosegrab 6)
(board-method 7)
(board-board-spin 8)
(board-board-flip 9)
(board-noseflip 10)
(board-kickflip 11)
(board-jump 12)
(board-duck-jump 13)
(board-quick-jump 14)
(darkjak 15)
(darkjak-bomb0 16)
(darkjak-bomb1 17)
(darkjak-giant 18)
)
;; DECOMP BEGINS
(deftype board (process-drawable)
@ -25,139 +49,160 @@
(deftype board-info (basic)
((board (pointer board) :offset-assert 4)
(camera-interp float :offset-assert 8)
(process (pointer target) :offset-assert 12)
(board-trans vector :inline :offset-assert 16)
(board-quat vector :inline :offset-assert 32)
(board-scale vector :inline :offset-assert 48)
(main joint-mod :offset-assert 64)
(upper-body basic :offset-assert 68)
(sound-bank-knob float :offset-assert 72)
(sound-air-knob float :offset-assert 76)
(wind-sound-id uint32 :offset-assert 80)
(wind-sound-pitch float :offset-assert 84)
(wind-sound-volume float :offset-assert 88)
(engine-sound-id uint32 :offset-assert 92)
(engine-sound-pitch float :offset-assert 96)
(engine-sound-volume float :offset-assert 100)
(bank-sound-id uint32 :offset-assert 104)
(bank-sound-pitch float :offset-assert 108)
(bank-sound-volume float :offset-assert 112)
(ride-sound-id uint32 :offset-assert 116)
(spin-sound-id uint32 :offset-assert 120)
(spin-sound-volume float :offset-assert 124)
(spin-sound-pitch float :offset-assert 128)
(up-vector vector 2 :inline :offset-assert 144)
(slow-transv vector :inline :offset-assert 176)
(board-time time-frame :offset-assert 192)
(board-get-on-time time-frame :offset-assert 200)
(in-air-time time-frame :offset-assert 208)
(stick-lock basic :offset 240)
(stick-off basic :offset-assert 244)
(stance-info ground-tween-info :inline :offset-assert 248)
(mods-backup basic :offset-assert 284)
(attack-id uint32 :offset-assert 288)
(latch? symbol :offset-assert 292)
(unstuck-time time-frame :offset 344)
(stuck-count int32 :offset-assert 352)
(thrust-scale float :offset-assert 356)
(flip-time time-frame :offset-assert 360)
(transv-max meters :offset-assert 368)
(turn-anim-tilt? symbol :offset-assert 372)
(turn-anim-mag float :offset-assert 376)
(turn-anim-targ float :offset-assert 380)
(turn-anim-frame float :offset-assert 384)
(turn-anim-vel float :offset-assert 388)
(turn-anim-duck float :offset-assert 392)
(turn-anim-duck-vel float :offset-assert 396)
(tilt-anim-frame vector :inline :offset-assert 400)
(tilt-anim-target vector :inline :offset-assert 416)
(smack-surface-time time-frame :offset-assert 432)
(smack-speed meters :offset-assert 440)
(smack-normal vector :inline :offset-assert 448)
(glance-time time-frame :offset-assert 464)
(glance-speed meters :offset-assert 472)
(glance-in-transv vector :inline :offset-assert 480)
(glance-out-transv vector :inline :offset-assert 496)
(glance-normal vector :inline :offset-assert 512)
(on-flat-time time-frame :offset-assert 528)
(jump-land-time time-frame :offset-assert 536)
(slip-factor float :offset-assert 544)
(ground-on-dir vector :inline :offset-assert 560)
(ride-time time-frame :offset-assert 576)
(ride-start-time time-frame :offset-assert 584)
(ride-button-time time-frame :offset-assert 592)
(ride-lean-targ float :offset-assert 600)
(ride-lean float :offset-assert 604)
(ride-leanv float :offset-assert 608)
(ride-lean-mag float :offset-assert 612)
(ride-tilt-targ float :offset-assert 616)
(ride-tilt float :offset-assert 620)
(ride-tiltv float :offset-assert 624)
(ride-tilt-mag float :offset-assert 628)
(ride-lock symbol :offset-assert 632)
(ride-lock-on symbol :offset-assert 636)
(ride-speed meters :offset-assert 640)
(ride-mode uint32 :offset-assert 644)
(ride-rot degrees :offset-assert 648)
(ride-rot-old degrees :offset-assert 652)
(ride-rot-abs degrees 2 :offset-assert 656)
(ride-rtv-abs degrees :offset-assert 664)
(ride-touch-segment vector 2 :inline :offset-assert 672)
(ride-dir vector :inline :offset-assert 704)
(ride-vertex-length int16 :offset-assert 720)
(ride-vertex-length-old int16 :offset-assert 722)
(ride-vertex-base int16 :offset-assert 724)
(ride-vertex-base2 int16 :offset-assert 726)
(ride-vertex-index float :offset-assert 728)
(ride-vertex-index2 float :offset-assert 732)
(ride-vertex-index-old float :offset-assert 736)
(ride-vertex vector 3 :inline :offset-assert 752)
(ride-segment vector :inline :offset-assert 800)
(ride-dir-lean vector :inline :offset-assert 816)
(ride-pad-vector vector 1 :inline :offset-assert 832)
(ride-vertex-old vector 3 :inline :offset-assert 848)
(ride-segment-old vector :inline :offset-assert 896)
(ride-vertex-trail vector 128 :inline :offset-assert 912)
(halfpipe-side-time time-frame :offset-assert 2960)
(halfpipe-jump-time time-frame :offset-assert 2968)
(halfpipe-lip-time time-frame :offset-assert 2976)
(halfpipe-time time-frame :offset-assert 2984)
(halfpipe-gspot-time time-frame :offset-assert 2992)
(halfpipe-lip-event symbol :offset-assert 3000)
(spin-check-time time-frame :offset-assert 3008)
(spin-time time-frame :offset-assert 3016)
(spin-start-time time-frame :offset-assert 3024)
(spin-start-dir vector :inline :offset-assert 3040)
(spin-control float :offset-assert 3056)
(spin-ground-start-time time-frame :offset-assert 3064)
(spin-ground-time time-frame :offset-assert 3072)
(spin-ground-press-time time-frame :offset-assert 3080)
(flip-control float :offset-assert 3088)
(flip-count int32 :offset-assert 3092)
(trickx-count int32 :offset 3144)
(trotyv-max degrees :offset-assert 3148)
(trotyv degrees :offset-assert 3152)
(troty degrees :offset-assert 3156)
(troty-cum degrees :offset-assert 3160)
(upper-body-rotyv-max degrees :offset 3168)
(upper-body-rotyv degrees :offset-assert 3172)
(upper-body-roty degrees :offset-assert 3176)
(cushion-base meters :offset-assert 3180)
(cushion-offset meters :offset-assert 3184)
(shock-offset meters :offset-assert 3188)
(shock-offsetv meters :offset-assert 3192)
(shock-rotx meters :offset-assert 3196)
(trick-count int32 :offset 3204)
(pad uint8 :offset 3399)
((board (pointer board) :offset-assert 4)
(camera-interp float :offset-assert 8)
(process (pointer target) :offset-assert 12)
(board-trans vector :inline :offset-assert 16)
(board-quat vector :inline :offset-assert 32)
(board-scale vector :inline :offset-assert 48)
(main joint-mod :offset-assert 64)
(upper-body joint-mod :offset-assert 68)
(sound-bank-knob float :offset-assert 72)
(sound-air-knob float :offset-assert 76)
(wind-sound-id uint32 :offset-assert 80)
(wind-sound-pitch float :offset-assert 84)
(wind-sound-volume float :offset-assert 88)
(engine-sound-id uint32 :offset-assert 92)
(engine-sound-pitch float :offset-assert 96)
(engine-sound-volume float :offset-assert 100)
(bank-sound-id uint32 :offset-assert 104)
(bank-sound-pitch float :offset-assert 108)
(bank-sound-volume float :offset-assert 112)
(ride-sound-id uint32 :offset-assert 116)
(spin-sound-id uint32 :offset-assert 120)
(spin-sound-volume float :offset-assert 124)
(spin-sound-pitch float :offset-assert 128)
(unknown-sound-id00 sound-id :offset-assert 132)
(unknown-sound-id01 sound-id :offset-assert 136)
(unknown-sound-id02 sound-id :offset-assert 140)
(up-vector vector 2 :inline :offset-assert 144)
(slow-transv vector :inline :offset-assert 176)
(board-time time-frame :offset-assert 192)
(board-get-on-time time-frame :offset-assert 200)
(in-air-time time-frame :offset-assert 208)
(unknown-time-frame00 time-frame :offset-assert 216)
(unknown-time-frame01 time-frame :offset 224)
(unknown-time-frame02 time-frame :offset 232)
(stick-lock symbol :offset 240)
(stick-off symbol :offset-assert 244)
(stance-info ground-tween-info :inline :offset-assert 248)
(mods-backup basic :offset-assert 284)
(attack-id uint32 :offset-assert 288)
(latch? symbol :offset-assert 292)
(unknown-vector00 vector :inline :offset 304)
(unknown-vector01 vector :inline :offset 320)
(unknown-int00 uint32 :offset 336)
(unknown-symbol00 symbol :offset 340)
(unstuck-time time-frame :offset 344)
(stuck-count int32 :offset-assert 352)
(thrust-scale float :offset-assert 356)
(flip-time time-frame :offset-assert 360)
(transv-max meters :offset-assert 368)
(turn-anim-tilt? symbol :offset-assert 372)
(turn-anim-mag float :offset-assert 376)
(turn-anim-targ float :offset-assert 380)
(turn-anim-frame float :offset-assert 384)
(turn-anim-vel float :offset-assert 388)
(turn-anim-duck float :offset-assert 392)
(turn-anim-duck-vel float :offset-assert 396)
(tilt-anim-frame vector :inline :offset-assert 400)
(tilt-anim-target vector :inline :offset-assert 416)
(smack-surface-time time-frame :offset-assert 432)
(smack-speed meters :offset-assert 440)
(smack-normal vector :inline :offset-assert 448)
(glance-time time-frame :offset-assert 464)
(glance-speed meters :offset-assert 472)
(glance-in-transv vector :inline :offset-assert 480)
(glance-out-transv vector :inline :offset-assert 496)
(glance-normal vector :inline :offset-assert 512)
(on-flat-time time-frame :offset-assert 528)
(jump-land-time time-frame :offset-assert 536)
(slip-factor float :offset-assert 544)
(ground-on-dir vector :inline :offset-assert 560)
(ride-time time-frame :offset-assert 576)
(ride-start-time time-frame :offset-assert 584)
(ride-button-time time-frame :offset-assert 592)
(ride-lean-targ float :offset-assert 600)
(ride-lean float :offset-assert 604)
(ride-leanv float :offset-assert 608)
(ride-lean-mag float :offset-assert 612)
(ride-tilt-targ float :offset-assert 616)
(ride-tilt float :offset-assert 620)
(ride-tiltv float :offset-assert 624)
(ride-tilt-mag float :offset-assert 628)
(ride-lock symbol :offset-assert 632)
(ride-lock-on symbol :offset-assert 636)
(ride-speed meters :offset-assert 640)
(ride-mode uint32 :offset-assert 644)
(ride-rot degrees :offset-assert 648)
(ride-rot-old degrees :offset-assert 652)
(ride-rot-abs degrees 2 :offset-assert 656)
(ride-rtv-abs degrees :offset-assert 664)
(ride-touch-segment vector 2 :inline :offset-assert 672)
(ride-dir vector :inline :offset-assert 704)
(ride-vertex-length int16 :offset-assert 720)
(ride-vertex-length-old int16 :offset-assert 722)
(ride-vertex-base int16 :offset-assert 724)
(ride-vertex-base2 int16 :offset-assert 726)
(ride-vertex-index float :offset-assert 728)
(ride-vertex-index2 float :offset-assert 732)
(ride-vertex-index-old float :offset-assert 736)
(ride-vertex vector 3 :inline :offset-assert 752)
(ride-segment vector :inline :offset-assert 800)
(ride-dir-lean vector :inline :offset-assert 816)
(ride-pad-vector vector 1 :inline :offset-assert 832)
(ride-vertex-old vector 3 :inline :offset-assert 848)
(ride-segment-old vector :inline :offset-assert 896)
(ride-vertex-trail vector 128 :inline :offset-assert 912)
(halfpipe-side-time time-frame :offset-assert 2960)
(halfpipe-jump-time time-frame :offset-assert 2968)
(halfpipe-lip-time time-frame :offset-assert 2976)
(halfpipe-time time-frame :offset-assert 2984)
(halfpipe-gspot-time time-frame :offset-assert 2992)
(halfpipe-lip-event symbol :offset-assert 3000)
(spin-check-time time-frame :offset-assert 3008)
(spin-time time-frame :offset-assert 3016)
(spin-start-time time-frame :offset-assert 3024)
(spin-start-dir vector :inline :offset-assert 3040)
(spin-control float :offset-assert 3056)
(spin-ground-start-time time-frame :offset-assert 3064)
(spin-ground-time time-frame :offset-assert 3072)
(spin-ground-press-time time-frame :offset-assert 3080)
(flip-control float :offset-assert 3088)
(flip-count int32 :offset-assert 3092)
(unknown-time-frame03 time-frame :offset 3104)
(unknown-time-frame04 time-frame :offset 3112)
(unknown-time-frame05 time-frame :offset 3120)
(unknown-time-frame06 time-frame :offset 3128)
(unknown-float00 float :offset 3136)
(unknown-float01 float :offset 3140)
(trickx-count int32 :offset 3144)
(trotyv-max degrees :offset-assert 3148)
(trotyv degrees :offset-assert 3152)
(troty degrees :offset-assert 3156)
(troty-cum degrees :offset-assert 3160)
(unknown-deg00 degrees :offset 3164)
(upper-body-rotyv-max degrees :offset 3168)
(upper-body-rotyv degrees :offset-assert 3172)
(upper-body-roty degrees :offset-assert 3176)
(cushion-base meters :offset-assert 3180)
(cushion-offset meters :offset-assert 3184)
(shock-offset meters :offset-assert 3188)
(shock-offsetv meters :offset-assert 3192)
(shock-rotx meters :offset-assert 3196)
(part-control sparticle-launch-control :offset-assert 3200)
(trick-count int32 :offset-assert 3204)
(trick-array board-tricks 16 :offset-assert 3208)
(trick-points-array float 16 :offset 3272)
(trick-list board-tricks 16 :offset 3336)
(pad uint8 :offset 3399)
)
:method-count-assert 11
:size-assert #xd48
:flag-assert #xb00000d48
(:methods
(board-info-method-9 () none 9)
(board-info-method-10 () none 10)
(add-to-trick-list (_type_ board-tricks float) none 9)
(flush-trick-list (_type_) none 10)
)
)
@ -204,8 +249,8 @@
)
)
(not *pause-lock*)
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame21)) (seconds 0.1))
(>= (-> self control unknown-time-frame06) (-> self control unknown-time-frame12))
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame30)) (seconds 0.1))
(>= (-> self control unknown-time-frame06) (-> self control unknown-time-frame20))
)
(-> self board latch?)
)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -56,9 +56,9 @@
(gun-roty-rel degrees :offset-assert 144)
(gun-roty degrees :offset-assert 148)
(gun-roty-targ degrees :offset-assert 152)
(hips basic :offset-assert 156)
(upper-body basic :offset-assert 160)
(chest basic :offset-assert 164)
(hips joint-mod :offset-assert 156)
(upper-body joint-mod :offset-assert 160)
(chest joint-mod :offset-assert 164)
(fire-dir-rot degrees :offset-assert 168)
(fire-dir vector 2 :inline :offset-assert 176)
(fire-point vector :inline :offset-assert 208)
@ -109,7 +109,7 @@
(top-anim-tilt-up degrees :offset-assert 600)
(attack-combo combo-tracker :inline :offset-assert 608)
(combo-window-start time-frame :offset-assert 656)
(combo-window-state uint32 :offset-assert 664)
(combo-window-state symbol :offset-assert 664)
(combo-fire-delay uint32 :offset-assert 668)
(charge-ammo float :offset-assert 672)
(charge-start-time time-frame :offset-assert 680)
@ -149,7 +149,7 @@
(-> arg0 gun latch?)
)
(not (-> arg0 skel top-anim frame-group))
(>= (- (-> self clock frame-counter) (-> arg0 control unknown-time-frame12)) (seconds 0.1))
(>= (- (-> self clock frame-counter) (-> arg0 control unknown-time-frame20)) (seconds 0.1))
)
)

View file

@ -491,7 +491,7 @@
(-> arg0 control unknown-vector21 y)
(- (-> (the-as target pp) clock frame-counter) (-> arg0 control unknown-time-frame06))
(- (-> arg0 control trans y) (-> arg0 control unknown-vector21 y))
(- (-> arg0 control unknown-vector37 y) (-> arg0 control unknown-vector36 y))
(- (-> arg0 control unknown-vector43 y) (-> arg0 control unknown-vector42 y))
(-> arg0 control ground-impact-vel)
)
(let* ((t9-76 format)
@ -499,16 +499,16 @@
(a1-56 "~0k~Tcd: ~,,2M md:~,,2M~%")
(v1-191 (vector-! (new-stack-vector0) (-> arg0 control trans) (-> arg0 control unknown-vector21)))
(a2-17 (sqrtf (+ (* (-> v1-191 x) (-> v1-191 x)) (* (-> v1-191 z) (-> v1-191 z)))))
(v1-193 (vector-! (new-stack-vector0) (-> arg0 control unknown-vector37) (-> arg0 control unknown-vector36)))
(v1-193 (vector-! (new-stack-vector0) (-> arg0 control unknown-vector43) (-> arg0 control unknown-vector42)))
)
(t9-76 a0-131 a1-56 a2-17 (sqrtf (+ (* (-> v1-193 x) (-> v1-193 x)) (* (-> v1-193 z) (-> v1-193 z)))))
)
(format
arg1
"~0kbend b:~F t:~F s:~F~%"
(-> arg0 control unknown-float27)
(-> arg0 control unknown-float28)
(-> arg0 control unknown-float29)
(-> arg0 control unknown-float30)
)
(set! sv-64 0)
(set! sv-72 0)
@ -670,7 +670,7 @@
)
)
(let ((f1-1 (* 0.0625 f1-0)))
(set! (-> self control unknown-word02) a0-3)
(set! (-> self control unknown-word03) a0-3)
(set! (-> self control unknown-float32) f1-1)
(if (logtest? (-> self control unknown-surface01 flags) (surface-flag no-turn-around))
(set! (-> v1-7 0) (-> self clock frame-counter))
@ -693,7 +693,7 @@
;; INFO: Used lq/sq
(defbehavior wall-hide? target ()
(when (and (< 0.7 (-> self control unknown-float12))
(< 0.7 (-> self control unknown-float26))
(< 0.7 (-> self control unknown-float27))
(and (< (-> self control unknown-float05) 8192.0)
(logtest? (-> self control status) (cshape-moving-flags t-wall))
(zero? (logand (-> self control status) (cshape-moving-flags t-act)))
@ -704,11 +704,11 @@
)
)
)
(if (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame22)) (seconds 0.1))
(set! (-> self control unknown-time-frame23) (-> self clock frame-counter))
(if (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame31)) (seconds 0.1))
(set! (-> self control unknown-time-frame32) (-> self clock frame-counter))
)
(set! (-> self control unknown-time-frame22) (-> self clock frame-counter))
(when (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame23)) (seconds 0.5))
(set! (-> self control unknown-time-frame31) (-> self clock frame-counter))
(when (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame32)) (seconds 0.5))
(let ((gp-0 (new 'stack-no-clear 'collide-query)))
(let ((v1-34 (-> gp-0 bbox))
(a0-13 (-> self control trans))
@ -814,12 +814,12 @@
(warp-vector-into-surface! gp-0 arg0 (-> self control local-normal) (-> self control unknown-matrix03))
(set! (-> self control unknown-float11) (-> self control unknown-float10))
(set! (-> self control unknown-float09) (-> self control unknown-float08))
(set! (-> self control unknown-vector08 quad) (-> self control unknown-vector07 quad))
(set! (-> self control unknown-vector10 quad) (-> self control unknown-vector09 quad))
(vector-float*! (-> self control unknown-vector09) gp-0 arg1)
(set! (-> self control unknown-vector09 quad) (-> self control unknown-vector08 quad))
(set! (-> self control unknown-vector11 quad) (-> self control unknown-vector10 quad))
(vector-float*! (-> self control unknown-vector10) gp-0 arg1)
(if (< 0.0 arg1)
(warp-vector-into-surface!
(-> self control unknown-vector07)
(-> self control unknown-vector08)
arg0
*up-vector*
(-> self control unknown-matrix03)
@ -1042,7 +1042,7 @@
(set! (-> s3-1 z) (fmax (fmin 0.0 (-> s3-1 z)) (-> s4-0 z)))
(set! (-> s3-1 z) (fmax 0.0 (fmin (-> s3-1 z) (-> s4-0 z))))
)
(if (< 0.2 (-> self control unknown-float26))
(if (< 0.2 (-> self control unknown-float27))
(vector-seek! s3-1 s4-0 (* 122880.0 (-> self clock seconds-per-frame)))
)
(vector-matrix*! s2-0 s3-1 (-> self control unknown-matrix01))
@ -1195,17 +1195,17 @@
(vector-matrix*! gp-0 gp-0 s3-0)
(set! (-> self control unknown-float19) (- (vector-dot (-> self control surface-normal) gp-0)))
(set! (-> self control unknown-float17) (- (vector-dot (-> self control local-normal) gp-0)))
(set! (-> self control unknown-float21) (- (vector-dot (-> self control gspot-normal) gp-0)))
(set! (-> self control unknown-float24) (- (vector-dot s4-0 gp-0)))
(set! (-> self control unknown-float22) (- (vector-dot (-> self control gspot-normal) gp-0)))
(set! (-> self control unknown-float25) (- (vector-dot s4-0 gp-0)))
(set-vector! gp-0 1.0 0.0 0.0 1.0)
(vector-matrix*! gp-0 gp-0 s3-0)
(set! (-> self control unknown-float20) (- (vector-dot (-> self control surface-normal) gp-0)))
(set! (-> self control unknown-float18) (- (vector-dot (-> self control local-normal) gp-0)))
(set! (-> self control unknown-float22) (- (vector-dot (-> self control gspot-normal) gp-0)))
(set! (-> self control unknown-float25) (- (vector-dot s4-0 gp-0)))
(set! (-> self control unknown-float23) (- (vector-dot (-> self control gspot-normal) gp-0)))
(set! (-> self control unknown-float26) (- (vector-dot s4-0 gp-0)))
(set-vector! gp-0 1.0 0.0 0.0 1.0)
(vector-matrix*! gp-0 gp-0 (-> self control unknown-matrix01))
(set! (-> self control unknown-float23) (vector-dot gp-0 s5-0))
(set! (-> self control unknown-float24) (vector-dot gp-0 s5-0))
)
0
)
@ -1249,7 +1249,7 @@
)
(zero? (logand (-> self control unknown-surface01 flags) (surface-flag turn-to-vel)))
)
(-> self control unknown-vector07)
(-> self control unknown-vector08)
)
(else
(-> self control transv)
@ -1675,17 +1675,17 @@
(defbehavior flag-setup target ()
(cond
((= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0)
(if (zero? (-> self control unknown-dword07))
(set! (-> self control unknown-dword07)
(the-as int (- (-> self clock frame-counter) (-> self control unknown-time-frame19)))
(if (zero? (-> self control unknown-dword12))
(set! (-> self control unknown-dword12)
(the-as int (- (-> self clock frame-counter) (-> self control unknown-time-frame28)))
)
)
(set! (-> self control unknown-time-frame19) (-> self clock frame-counter))
(quaternion-copy! (-> self control unknown-quaternion04) (-> self control dir-targ))
(set! (-> self control unknown-time-frame28) (-> self clock frame-counter))
(quaternion-copy! (-> self control unknown-quaternion05) (-> self control dir-targ))
)
(else
(set! (-> self control unknown-time-frame20) (-> self clock frame-counter))
(set! (-> self control unknown-dword07) 0)
(set! (-> self control unknown-time-frame29) (-> self clock frame-counter))
(set! (-> self control unknown-dword12) 0)
0
)
)
@ -1708,24 +1708,24 @@
(else
(let ((v1-49 (-> self control trans)))
(when (logtest? (-> self control old-status) (cshape-moving-flags on-surface))
(set! (-> self control unknown-vector36 quad) (-> self control unknown-vector21 quad))
(set! (-> self control unknown-vector37 quad) (-> self control unknown-vector21 quad))
(set! (-> self control unknown-vector42 quad) (-> self control unknown-vector21 quad))
(set! (-> self control unknown-vector43 quad) (-> self control unknown-vector21 quad))
)
(set! (-> self control unknown-vector37 x) (-> v1-49 x))
(set! (-> self control unknown-vector37 z) (-> v1-49 z))
(set! (-> self control unknown-vector43 x) (-> v1-49 x))
(set! (-> self control unknown-vector43 z) (-> v1-49 z))
(if (< (vector-dot
(-> self control dynam gravity-normal)
(vector-! (new 'stack-no-clear 'vector) (-> self control unknown-vector37) v1-49)
(vector-! (new 'stack-no-clear 'vector) (-> self control unknown-vector43) v1-49)
)
0.0
)
(set! (-> self control unknown-vector37 y) (-> v1-49 y))
(set! (-> self control unknown-vector43 y) (-> v1-49 y))
)
)
)
)
(when (and (cpad-pressed? (-> self control unknown-cpad-info00 number) r3)
(zero? (-> self control unknown-word03))
(zero? (-> self control unknown-word07))
(zero? (logand (-> *kernel-context* prevent-from-run) (process-mask movie)))
(not *pause-lock*)
)
@ -1800,7 +1800,7 @@
)
)
(send-event *camera* 'reset-follow)
(set! (-> self control unknown-time-frame12) (-> self clock frame-counter))
(set! (-> self control unknown-time-frame20) (-> self clock frame-counter))
(cond
((logtest? (focus-status mech indax) (-> self focus-status))
(if (not (and (-> self next-state)
@ -1918,7 +1918,7 @@
)
)
)
(set! (-> self control unknown-float29)
(set! (-> self control unknown-float30)
(if (logtest? (-> self control status) (cshape-moving-flags on-surface))
32.0
2.0
@ -1949,24 +1949,24 @@
(set! (-> self control unknown-time-frame07) (-> self clock frame-counter))
)
(when (logtest? (-> self state-flags) (state-flags tinvul1))
(if (< (logand (- (-> self clock frame-counter) (-> self control unknown-time-frame13)) 3) 1)
(if (< (logand (- (-> self clock frame-counter) (-> self control unknown-time-frame22)) 3) 1)
(logior! (-> self draw status) (draw-control-status no-draw-bounds))
(logclear! (-> self draw status) (draw-control-status no-draw-bounds))
)
(if (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame13))
(-> self control unknown-time-frame14)
(if (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame22))
(-> self control unknown-time-frame23)
)
(target-timed-invulnerable-off self 1)
)
)
(when (logtest? (state-flags tinvul2) (-> self state-flags))
(if (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame15))
(-> self control unknown-time-frame16)
(if (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame24))
(-> self control unknown-time-frame25)
)
(target-timed-invulnerable-off self 2)
)
)
(set! (-> self control unknown-symbol01) #f)
(set! (-> self control unknown-symbol06) #f)
(target-gun-joint-pre)
((-> self pre-joint-hook))
(target-log-trans)
@ -2045,14 +2045,14 @@
(zero? (logand (-> self control status) (cshape-moving-flags on-surface)))
)
0.0
(-> self control unknown-float28)
(-> self control unknown-float29)
)
)
)
(seek!
(-> self control unknown-float27)
(-> self control unknown-float28)
f0-1
(* (-> self control unknown-float29) (-> self clock seconds-per-frame))
(* (-> self control unknown-float30) (-> self clock seconds-per-frame))
)
)
(set! (-> self control dynam gravity-normal quad) (-> self control unknown-dynamics00 gravity-normal quad))
@ -2070,7 +2070,7 @@
s5-0
(-> self control unknown-dynamics00 gravity-normal)
gp-0
(-> self control unknown-float27)
(-> self control unknown-float28)
)
(let ((a2-3
(matrix-from-two-vectors-smooth!
@ -2188,7 +2188,7 @@
)
)
(let ((gp-2 (vector-cross!
(-> self control unknown-vector35)
(-> self control unknown-vector36)
(-> self control unknown-vector34)
(-> self control dynam gravity-normal)
)
@ -2198,7 +2198,7 @@
(set! (-> self control unknown-float33) (vector-length s4-1))
(cond
((and (< 819.2 (-> self control unknown-float33))
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame10)) (seconds 0.2))
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame15)) (seconds 0.2))
)
(cond
((-> s5-0 pilot-edge-grab?)
@ -2257,8 +2257,8 @@
((method-of-object (-> self control) collide-shape-method-28))
(vector-float*! (-> self control rider-last-move) s4-1 (-> self clock frames-per-second))
(set! (-> self control rider-time) (-> self clock frame-counter))
(if (and (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame11)) (seconds 0.5))
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame10)) (seconds 0.5))
(if (and (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame16)) (seconds 0.5))
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame15)) (seconds 0.5))
)
(send-event self 'end-mode)
)
@ -2275,7 +2275,7 @@
)
(set! (-> self control unknown-float33) 0.0)
(set! (-> self control unknown-vector21 quad) (-> self control trans quad))
(set! (-> self control unknown-time-frame10) (-> self clock frame-counter))
(set! (-> self control unknown-time-frame15) (-> self clock frame-counter))
)
)
)
@ -2338,7 +2338,7 @@
)
)
(vector-cross!
(-> self control unknown-vector35)
(-> self control unknown-vector36)
(-> self control unknown-vector34)
(-> self control dynam gravity-normal)
)
@ -2365,7 +2365,7 @@
(vf4 :class vf)
)
(init-vf0-vector)
(let* ((s2-0 (handle->process (-> self control unknown-handle00)))
(let* ((s2-0 (handle->process (-> self control unknown-handle01)))
(gp-0 (-> (the-as swingpole s2-0) dir))
)
(set! (-> self control unknown-vector34 quad) (-> gp-0 quad))
@ -2449,14 +2449,14 @@
)
(let ((a0-26 (vector-! (new-stack-vector0) s5-0 (-> self control unknown-vector30))))
(cond
((and (< 2457.6 (vector-length a0-26)) (not (-> self control unknown-symbol00)))
((and (< 2457.6 (vector-length a0-26)) (not (-> self control unknown-symbol02)))
(let ((s4-1 (method-of-object (-> self control) collide-shape-method-28)))
(vector-normalize! a0-26 2457.6)
(s4-1)
)
)
(else
(set! (-> self control unknown-symbol00) #t)
(set! (-> self control unknown-symbol02) (the-as float #t))
(collide-shape-method-29
(-> self control)
(vector-! (new 'stack-no-clear 'vector) s5-0 (-> self control unknown-vector31))
@ -2466,7 +2466,7 @@
)
)
)
(let ((s5-3 (vector-cross! (-> self control unknown-vector35) gp-0 (-> self control dynam gravity-normal))))
(let ((s5-3 (vector-cross! (-> self control unknown-vector36) gp-0 (-> self control dynam gravity-normal))))
(if (>= 0.0
(vector-dot s5-3 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self control unknown-quaternion00)))
)
@ -2522,7 +2522,7 @@
)
(vector<-cspace! gp-0 (-> self node-list data 6))
(cond
((>= (+ (-> self clock frame-counter) (seconds -2)) (-> self control unknown-time-frame17))
((>= (+ (-> self clock frame-counter) (seconds -2)) (-> self control unknown-time-frame26))
(set! (-> self control unknown-vector15 quad) (-> s5-0 quad))
)
((not (and (logtest? (-> self water flags) (water-flags under-water))
@ -2533,7 +2533,7 @@
(-> self control unknown-vector15)
gp-0
s5-0
(* 0.0016666667 (the float (- (-> self clock frame-counter) (-> self control unknown-time-frame17))))
(* 0.0016666667 (the float (- (-> self clock frame-counter) (-> self control unknown-time-frame26))))
)
)
(else
@ -2545,7 +2545,7 @@
0.0
(fmin
1.0
(* 0.0011111111 (the float (- (-> self clock frame-counter) (-> self control unknown-time-frame18))))
(* 0.0011111111 (the float (- (-> self clock frame-counter) (-> self control unknown-time-frame27))))
)
)
)
@ -2650,9 +2650,7 @@
(vector-average! (-> self control unknown-vector30) gp-0 s5-0)
)
(vector-! (-> self control unknown-vector31) (-> self control unknown-vector30) (-> self control trans))
((method-of-type impact-control update-from-cspace)
(the-as impact-control (-> self control unknown-cspace02))
)
(update-from-cspace (-> self control unknown-impact-control00))
(cond
((logtest? (-> self focus-status) (focus-status edge-grab))
(target-compute-edge)
@ -2691,15 +2689,15 @@
(set! (-> self control unknown-pat-surface01) (-> self control ground-pat))
)
(else
(let* ((gp-0 (new 'stack-no-clear 'collide-query))
(a0-15 (-> self control))
(t9-0 (method-of-object a0-15 collide-shape-moving-method-55))
)
(logclear (-> self control root-prim prim-core collide-with) (collide-spec water))
#x46000000
#x47a00000
#x44800000
(if (t9-0 a0-15)
(let ((gp-0 (new 'stack-no-clear 'collide-query)))
(if (collide-shape-moving-method-55
(-> self control)
gp-0
(logclear (-> self control root-prim prim-core collide-with) (collide-spec water))
8192.0
81920.0
1024.0
)
(set! (-> self control unknown-pat-surface01) (-> gp-0 best-other-tri pat))
)
)
@ -2717,7 +2715,7 @@
(update-rates! (-> self clock) (/ f30-0 (the float gp-1)))
(while (nonzero? gp-1)
(+! gp-1 -1)
(set! (-> self control unknown-word03) gp-1)
(set! (-> self control unknown-word07) gp-1)
(flag-setup)
(if (< (-> self control unknown-float15) 0.0)
(set! (-> self control unknown-float15) (- 1.0 (-> self control unknown-cpad-info00 stick0-speed)))
@ -2798,7 +2796,7 @@
(set! (-> a2-3 ignore-pat) (-> v1-52 pat-ignore-mask))
)
(set! (-> a2-3 action-mask) (collide-action solid))
(collide-shape-method-32 (-> self control) (-> self control transv) (the-as uint a2-3) #x45800000)
(collide-shape-method-32 (-> self control) (-> self control transv) a2-3 (meters 1.0))
)
(if (and (logtest? (-> self control root-prim prim-core action) (collide-action check-edge))
(>= (vector-dot
@ -2891,7 +2889,7 @@
(update-rates! (-> self clock) (/ f30-0 (the float gp-1)))
(while (nonzero? gp-1)
(+! gp-1 -1)
(set! (-> self control unknown-word03) gp-1)
(set! (-> self control unknown-word07) gp-1)
(flag-setup)
(build-conversions (-> self control transv))
(do-rotations1)
@ -2934,7 +2932,7 @@
(set! (-> a2-0 ignore-pat) (-> v1-30 pat-ignore-mask))
)
(set! (-> a2-0 action-mask) (collide-action solid))
(collide-shape-method-32 (-> self control) (-> self control transv) (the-as uint a2-0) #x45800000)
(collide-shape-method-32 (-> self control) (-> self control transv) a2-0 (meters 1.0))
)
(if (and (logtest? (-> self control root-prim prim-core action) (collide-action check-edge))
(>= (vector-dot
@ -3020,7 +3018,7 @@
(update-rates! (-> self clock) (/ f30-0 (the float gp-1)))
(while (nonzero? gp-1)
(+! gp-1 -1)
(set! (-> self control unknown-word03) gp-1)
(set! (-> self control unknown-word07) gp-1)
(flag-setup)
(build-conversions (-> self control transv))
(do-rotations1)
@ -3063,7 +3061,7 @@
(set! (-> a2-0 ignore-pat) (-> v1-29 pat-ignore-mask))
)
(set! (-> a2-0 action-mask) (collide-action solid))
(collide-shape-method-32 (-> self control) (-> self control transv) (the-as uint a2-0) #x45800000)
(collide-shape-method-32 (-> self control) (-> self control transv) a2-0 (meters 1.0))
)
(if (and (logtest? (-> self control root-prim prim-core action) (collide-action check-edge))
(>= (vector-dot
@ -3150,7 +3148,7 @@
(update-rates! (-> self clock) (/ f30-0 (the float gp-1)))
(while (nonzero? gp-1)
(+! gp-1 -1)
(set! (-> self control unknown-word03) gp-1)
(set! (-> self control unknown-word07) gp-1)
(flag-setup)
(build-conversions (-> self control transv))
(do-rotations1)
@ -3159,7 +3157,7 @@
(vector-!
(-> self control unknown-vector05)
(-> self control unknown-vector04)
(-> self control unknown-vector06)
(-> self control unknown-vector07)
)
(let ((a1-3 (new 'stack-no-clear 'overlaps-others-params)))
(set! (-> a1-3 options) (overlaps-others-options oo0))
@ -3246,7 +3244,7 @@
(vector-!
(-> self control unknown-vector05)
(-> self control unknown-vector04)
(-> self control unknown-vector06)
(-> self control unknown-vector07)
)
(let ((a1-2 (new 'stack-no-clear 'overlaps-others-params)))
(set! (-> a1-2 options) (overlaps-others-options oo0))
@ -3282,12 +3280,12 @@
(quaternion-identity! (-> self control unknown-quaternion01))
(set! (-> self control unknown-float04) 0.0)
(set! (-> self control unknown-time-frame06) (-> self clock frame-counter))
(set! (-> self control unknown-float27) 0.0)
(set! (-> self control unknown-float29) 32.0)
(set! (-> self control unknown-float28) 0.0)
(set! (-> self control unknown-float30) 32.0)
(set! (-> self cam-user-mode) 'normal)
(set! (-> self control unknown-handle00) (the-as handle #f))
(set! (-> self control unknown-handle01) (the-as handle #f))
(set! (-> self control unknown-dword06) 0)
(set! (-> self control unknown-handle00) (the-as handle #f))
(set! (-> self control unknown-dword11) 0)
(buzz-stop! 0)
self
)
@ -3402,10 +3400,10 @@
(set! (-> obj control) s0-0)
)
(let ((v1-69 (-> obj control)))
(set! (-> v1-69 unknown-word04) s4-0)
(set! (-> v1-69 unknown-word06) s3-0)
(set! (-> v1-69 unknown-word05) s2-0)
(set! (-> v1-69 unknown-word07) s1-0)
(set! (-> v1-69 unknown-word08) s4-0)
(set! (-> v1-69 unknown-word10) s3-0)
(set! (-> v1-69 unknown-word09) s2-0)
(set! (-> v1-69 unknown-word11) s1-0)
(set! (-> v1-69 max-iteration-count) (the-as uint 8))
(set! (-> v1-69 event-self) 'touched)
)
@ -3419,11 +3417,11 @@
(set! (-> obj control unknown-surface01 name) 'current)
(set! (-> obj control unknown-surface01 active-hook) nothing)
(set! (-> obj control unknown-surface01 touch-hook) nothing)
(set! (-> obj control unknown-dword05) (the-as uint #f))
(set! (-> obj control unknown-dword06) (the-as uint #f))
(dotimes (v1-84 8)
(set! (-> obj attack-info-old v1-84 attacker) (the-as handle #f))
)
(set! (-> obj notify) (the-as uint #f))
(set! (-> obj notify) (the-as handle #f))
(set! (-> obj mirror) (the-as (pointer process-drawable) #f))
(initialize-skeleton
obj
@ -3500,9 +3498,9 @@
(set! (-> obj control backup-collde-with) (-> v1-163 prim-core collide-with))
)
(set! (-> obj sound) (new 'process 'ambient-sound "none" (-> obj control trans)))
(set! (-> obj control unknown-sound-id04) (new-sound-id))
(set! (-> obj control unknown-sound-id03) (new-sound-id))
(set! (-> obj control unknown-sound-id02) (new-sound-id))
(set! (-> obj control unknown-sound-id01) (new-sound-id))
(set! (-> obj control unknown-sound-id00) (new-sound-id))
(if (and *debug-segment* (!= (-> obj tobot?) 'tobot))
(add-connection *debug-engine* obj target-print-stats obj *stdcon0* #f)
)

View file

@ -17,6 +17,93 @@
;; NOTE - for level-info, defined in `logic-target`
(define-extern start (function symbol continue-point target))
;; for target
(define-extern want-to-darkjak? (function symbol :behavior target))
(define-extern target-darkjak-get-on (state int target))
(define-extern target-darkjak-running-attack (state target))
(define-extern target-darkjak-bomb0 (state target))
(define-extern target-darkjak-bomb1 (state target))
(define-extern can-feet? (function symbol symbol :behavior target))
(define-extern target-attack-air (state symbol target))
(define-extern target-hit-ground (state symbol target))
(define-extern slide-down-test (function none :behavior target))
(define-extern target-startup (state target))
(define-extern target-standard-event-handler (function process int symbol event-message-block object :behavior target))
(define-extern target-stance (state target))
(define-extern target-state-hook-exit (function none :behavior target))
(define-extern target-wade-stance (state target))
(define-extern target-ice-stance (state target))
(define-extern move-legs? (function symbol :behavior target))
(define-extern target-walk (state target))
(define-extern can-duck? (function symbol :behavior target))
(define-extern target-duck-stance (state symbol target))
(define-extern can-jump? (function symbol symbol :behavior target))
(define-extern target-jump-go (function none :behavior target))
(define-extern target-attack (state target))
(define-extern can-hands? (function symbol symbol :behavior target))
(define-extern target-running-attack (state target))
(define-extern target-gun-stance (state target))
(define-extern target-carry-pickup (state target))
(define-extern fall-test (function state float none :behavior target))
(define-extern target-falling (state symbol target))
(define-extern target-stance-anim (function none :behavior target))
(define-extern target-effect-exit (function none :behavior target))
(define-extern target-ice-walk (state target))
(define-extern can-roll? (function symbol :behavior target))
(define-extern target-roll (state target))
(define-extern target-duck-walk (state symbol target))
(define-extern target-turn-around (state target))
(define-extern target-hide (state target))
(define-extern target-walk-event-handler (function process int symbol event-message-block object :behavior target))
(define-extern target-gun-walk (state target))
(define-extern target-walk-anim (function int none :behavior target))
(define-extern set-forward-vel (function float vector :behavior target))
(define-extern ja-done? (function int symbol :behavior process-drawable))
(define-extern target-jump (state float float surface target))
(define-extern delete-back-vel (function none :behavior target))
(define-extern target-high-jump (state float float object target))
(define-extern target-attack-uppercut (state float float target))
(define-extern target-top-anim-base-mode (function int none :behavior target))
(define-extern target-double-jump (state float float target))
(define-extern target-flop (state float float float target))
(define-extern target-jump-event-handler (function process int symbol event-message-block object :behavior target))
(define-extern talker-spawn-func (function talker-speech-class process-tree vector region int))
(define-extern target-launch (state float symbol vector int target))
(define-extern ja-group-size (function int :behavior process-drawable))
(define-extern target-falling-anim (function int time-frame symbol :behavior target))
(define-extern target-duck-high-jump (state float float symbol target))
(define-extern target-duck-high-jump-jump (state float float symbol target))
(define-extern *uppercut-jump-mods* surface)
(define-extern ja-eval (function int :behavior process-drawable))
(define-extern target-wade-walk (state target))
(define-extern target-hit-ground-hard (state float target))
(define-extern target-land-effect (function none :behavior target))
(define-extern target-hit-ground-anim (function symbol symbol :behavior target))
(define-extern are-still? (function symbol :behavior target))
(define-extern *attack-end-mods* surface)
(define-extern target-send-attack (function process uint uint int int symbol :behavior target))
(define-extern target-dangerous-event-handler (function process int symbol event-message-block object :behavior target))
(define-extern target-start-attack (function none :behavior target))
(define-extern target-danger-set! (function symbol symbol float :behavior target))
(define-extern smack-surface? (function symbol symbol :behavior target))
(define-extern target-height-above-ground (function float :behavior target))
(define-extern target-align-vel-z-adjust (function float float :behavior target))
(define-extern part-tracker-init (function sparticle-launch-group time-frame (function part-tracker none) (pointer process-drawable) process collide-prim-core none :behavior part-tracker))
(define-extern target-bonk-event-handler (function process int symbol event-message-block object :behavior target))
(define-extern target-attack-air-anim (function none :behavior target))
(define-extern *uppercut-mods* surface)
(define-extern target-attack-uppercut-jump (state float float target))
(define-extern touch-tracker-init (function vector float time-frame none :behavior touch-tracker))
(define-extern target-flop-hit-ground (state symbol target))
(define-extern target-swim-stance (state target))
(define-extern target-swim-walk (state target))
(define-extern target-swim-down (state target))
(define-extern target-swim-up (state target))
(define-extern target-yellow-jump-blast (state target))
(define-extern target-hit (state symbol attack-info target))
(define-extern target-shoved (function meters meters process (state object object target) object :behavior target))
(define-extern target-roll-flip (state float float target))
;; DECOMP BEGINS
(deftype target (process-focusable)
@ -63,7 +150,7 @@
(no-look-around-wait uint64 :offset-assert 2096)
(burn-proc handle :offset-assert 2104)
(pre-joint-hook (function none :behavior target) :offset-assert 2112)
(notify uint64 :offset-assert 2120)
(notify handle :offset-assert 2120)
(mode-cache basic :offset-assert 2128)
(mode-param1 uint64 :offset-assert 2136)
(mode-param2 uint64 :offset-assert 2144)

File diff suppressed because it is too large Load diff

View file

@ -204,6 +204,7 @@ Val* Compiler::compile_lambda(const goos::Object& form, const goos::Object& rest
if (args.has_named("behavior")) {
const std::string behavior_type = symbol_string(args.get_named("behavior"));
auto self_var = new_func_env->make_gpr(m_ts.make_typespec(behavior_type));
self_var->mark_as_settable();
IRegConstraint constr;
constr.contrain_everywhere = true;
constr.desired_register = emitter::gRegInfo.get_process_reg();

View file

@ -917,4 +917,18 @@
:regs14 (gif-reg-id a+d)
:regs15 (gif-reg-id a+d)
)
)
)
(defmacro sound-play (name &key (id (new-sound-id))
&key (vol 100.0) &key (pitch 0) &key (bend 0)
&key (group sfx)
&key (position #t))
`(sound-play-by-name (static-sound-name ,name) ,id (the int (* (/ 1024.0 100.0) ,vol)) (the int (* 1524.0 ,pitch)) ,bend (sound-group ,group) ,position)
)
(defmacro cmove-#f-zero (dest condition src)
`(if (zero? ,condition)
(set! ,dest #f)
(set! ,dest ,src)
)
)

File diff suppressed because it is too large Load diff

View file

@ -82,34 +82,34 @@
;; definition of type top-anim-joint-control
(deftype top-anim-joint-control (basic)
((process uint32 :offset-assert 4)
(interp-select uint64 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 art-joint-anim :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 time-frame :offset-assert 80)
(frame-post-put-away basic :offset-assert 88)
(update-time time-frame :offset-assert 96)
((process (pointer process-drawable) :offset-assert 4)
(interp-select uint64 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 art-joint-anim :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 time-frame :offset-assert 80)
(frame-post-put-away basic :offset-assert 88)
(update-time time-frame :offset-assert 96)
)
:method-count-assert 13
:size-assert #x68
:flag-assert #xd00000068
(:methods
(top-anim-joint-control-method-9 () none 9)
(top-anim-joint-control-method-10 () none 10)
(top-anim-joint-control-method-11 () none 11)
(top-anim-joint-control-method-12 () none 12)
(top-anim-joint-control-method-9 (_type_) none 9)
(top-anim-joint-control-method-10 (_type_) none 10)
(top-anim-joint-control-method-11 (_type_ int) joint-control-channel 11)
(top-anim-joint-control-method-12 (_type_ art-element float int int float float symbol) none 12)
)
)

View file

@ -1310,7 +1310,7 @@
(collide-shape-method-29 (_type_ vector) none 29)
(collide-shape-method-30 () none 30)
(collide-shape-method-31 () none 31)
(collide-shape-method-32 (_type_ vector uint int) none 32)
(collide-shape-method-32 (_type_ vector collide-query meters) none 32)
(collide-shape-method-33 () none 33)
(collide-shape-method-34 () none 34)
(collide-shape-method-35 () none 35)
@ -1614,7 +1614,7 @@
:flag-assert #x44000001dc
(:methods
(new (symbol type process-drawable collide-list-enum) _type_ 0)
(collide-shape-moving-method-55 (_type_) symbol 55)
(collide-shape-moving-method-55 (_type_ collide-query collide-spec float float float) symbol 55)
(collide-shape-moving-method-56 () none 56)
(collide-shape-moving-method-57 () none 57)
(collide-shape-moving-method-58 () none 58)

View file

@ -25,7 +25,8 @@
(unknown-word00 int32 :offset 3712)
(unknown-vector04 vector :inline :offset 3728)
(unknown-vector05 vector :inline :offset 3744)
(unknown-vector06 vector :inline :offset 3776)
(unknown-vector06 vector :inline :offset 3760)
(unknown-vector07 vector :inline :offset 3776)
(unknown-dynamics00 dynamics :offset 3824)
(unknown-surface00 surface :offset 3828)
(unknown-surface01 surface :offset 3832)
@ -36,10 +37,10 @@
(unknown-float09 float :offset 3856)
(unknown-float10 float :offset 3860)
(unknown-float11 float :offset 3864)
(unknown-vector07 vector :inline :offset 3872)
(unknown-vector08 vector :inline :offset 3888)
(unknown-vector09 vector :inline :offset 3904)
(unknown-vector10 vector :inline :offset 3920)
(unknown-vector08 vector :inline :offset 3872)
(unknown-vector09 vector :inline :offset 3888)
(unknown-vector10 vector :inline :offset 3904)
(unknown-vector11 vector :inline :offset 3920)
(unknown-vector-array01 vector 7 :inline :offset 3936)
(unknown-vector12 vector :inline :offset 4064)
(unknown-vector13 vector :inline :offset 4080)
@ -73,75 +74,121 @@
(unknown-float19 float :offset 4644)
(unknown-float20 float :offset 4648)
(unknown-time-frame06 time-frame :offset 4656)
(unknown-float21 float :offset 4664)
(unknown-time-frame07 time-frame :offset 4672)
(unknown-pat-surface00 pat-surface :offset 4680)
(unknown-vector24 vector :inline :offset 4688)
(unknown-vector25 vector :inline :offset 4720)
(unknown-handle01 handle :offset 4768)
(unknown-handle00 handle :offset 4768)
(unknown-pat-surface01 pat-surface :offset 4776)
(unknown-float21 float :offset 4780)
(unknown-float22 float :offset 4784)
(unknown-float23 float :offset 4788)
(unknown-float24 float :offset 4792)
(unknown-float25 float :offset 4796)
(unknown-float22 float :offset 4780)
(unknown-float23 float :offset 4784)
(unknown-float24 float :offset 4788)
(unknown-float25 float :offset 4792)
(unknown-float26 float :offset 4796)
(unknown-time-frame08 time-frame :offset 4816)
(unknown-vector26 vector :inline :offset 4928)
(unknwon-vector27 vector :inline :offset 4976)
(unknown-float26 float :offset 4992)
(unknown-float27 float :offset 4992)
(unknown-time-frame09 time-frame :offset 5000)
(unknown-sphere-array00 collide-shape-prim-sphere 10 :offset 5016)
(unknown-float27 float :offset 5132)
(unknown-float28 float :offset 5136)
(unknown-float29 float :offset 5140)
(unknown-word02 int32 :offset 5064)
(unknown-time-frame10 time-frame :offset 5072)
(unknown-time-frame11 time-frame :offset 5080)
(unknown-time-frame12 time-frame :offset 5096)
(unknown-time-frame13 time-frame :offset 5112)
(unknown-time-frame14 time-frame :offset 5120)
(unknown-float28 float :offset 5132)
(unknown-float29 float :offset 5136)
(unknown-float30 float :offset 5140)
(unknown-vector28 vector :inline :offset 5152)
(unknown-vector29 vector :inline :offset 5168)
(unknown-vector30 vector :inline :offset 5184)
(unknown-vector31 vector :inline :offset 5200)
(unknown-vector32 vector :inline :offset 5216)
(unknown-vector33 vector :inline :offset 5232)
(unknown-symbol00 symbol :offset 5248)
(unknown-float000 float :offset 5252)
(unknown-float31 float :offset 5256)
(unknown-vector-array02 vector 15 :inline :offset 5264)
(unknown-float32 float :offset 5520)
(unknown-word02 int32 :offset 5524)
(unknown-word03 int32 :offset 5524)
(unknown-float33 float :offset 5528)
(unknown-vector34 vector :inline :offset 5536)
(unknown-vector35 vector :inline :offset 5568)
(unknown-time-frame10 time-frame :offset 5584)
(unknown-time-frame11 time-frame :offset 5592)
(unknown-handle00 handle :offset 5608)
(unknown-symbol00 symbol :offset 5620)
(unknown-cspace02 cspace :inline :offset 5824)
(unknown-vector36 vector :inline :offset 5904)
(unknown-float34 float :offset 5908)
(unknown-vector37 vector :inline :offset 5920)
(unknown-float35 float :offset 5924)
(unknown-time-frame12 time-frame :offset 5944)
(unknown-dword05 uint64 :offset 6008)
(unknown-symbol01 symbol :offset 6144)
(unknown-vector35 vector :inline :offset 5552)
(unknown-vector36 vector :inline :offset 5568)
(unknown-time-frame15 time-frame :offset 5584)
(unknown-time-frame16 time-frame :offset 5592)
(unknown-handle01 handle :offset 5608)
(unknown-word04 uint32 :offset 5616)
(unknown-spool-anim00 spool-anim :offset 5616)
(unknown-word05 int32 :offset 5616)
(unknown-symbol01 symbol :offset 5616)
(unknown-float34 float :offset 5616)
(unknown-symbol02 float :offset 5620)
(unknown-symbol03 float :offset 5624)
(unknown-float35 float :offset 5628)
(unknown-float36 float :offset 5632)
(unknown-float37 float :offset 5636)
(unknown-vector37 vector :inline :offset 5648)
(unknown-vector38 vector :inline :offset 5664)
(unknown-vector39 vector :inline :offset 5680)
(unknown-vector40 vector :inline :offset 5696)
(unknown-time-frame17 time-frame :offset 5712)
(unknown-time-frame18 time-frame :offset 5720)
(unknown-sound-id00 sound-id :offset 5776)
(unknown-handle02 handle :offset 5792)
(unknown-impact-control00 impact-control :inline :offset 5824)
(unknown-word06 int32 :offset 5832)
(unknown-vector41 vector :inline :offset 5888)
(unknown-vector42 vector :inline :offset 5904)
(unknown-float38 float :offset 5908)
(unknown-vector43 vector :inline :offset 5920)
(unknown-float39 float :offset 5924)
(unknown-time-frame19 time-frame :offset 5936)
(unknown-time-frame20 time-frame :offset 5944)
(unknown-symbol04 symbol :offset 5984)
(unknown-symbol05 symbol :offset 5988)
(unknown-dword05 uint64 :offset 6000)
(unknown-dword06 uint64 :offset 6008)
(unknown-combo-tracker00 combo-tracker :inline :offset 6032)
(unknown-time-frame21 time-frame :offset 6072)
(unknown-dword07 int64 :offset 6096)
(unknown-dword08 int64 :offset 6104)
(unknown-dword09 int64 :offset 6112)
(unknown-dword10 int64 :offset 6120)
(unknown-symbol06 symbol :offset 6144)
(unknown-quaternion04 quaternion :inline :offset 6160)
(unknown-sound-id01 sound-id :offset 6176)
(unknown-float40 float :offset 6180)
(unknown-float41 float :offset 6184)
(unknown-halfword00 uint16 :offset 6188)
(history-length uint16 :offset 6190)
(unknown-word03 int32 :offset 6192)
(unknown-time-frame13 time-frame :offset 6200)
(unknown-time-frame14 time-frame :offset 6208)
(unknown-time-frame15 time-frame :offset 6216)
(unknown-time-frame16 time-frame :offset 6224)
(unknown-time-frame17 time-frame :offset 6248)
(unknown-time-frame18 time-frame :offset 6256)
(unknown-dword06 int64 :offset 6264)
(unknown-sound-id00 sound-id :offset 6240)
(unknown-sound-id01 sound-id :offset 6244)
(unknown-sound-id02 sound-id :offset 6292)
(unknown-word04 int32 :offset 6300)
(unknown-word05 int32 :offset 6304)
(unknown-word06 int32 :offset 6308)
(unknown-word07 int32 :offset 6312)
(unknown-time-frame19 time-frame :offset 6320)
(unknown-time-frame20 time-frame :offset 6328)
(unknown-dword07 int64 :offset 6336)
(unknown-time-frame21 time-frame :offset 6368)
(unknown-quaternion04 quaternion :inline :offset 6384)
(unknown-time-frame22 time-frame :offset 6400)
(unknown-time-frame23 time-frame :offset 6408)
(unknown-word07 int32 :offset 6192)
(unknown-time-frame22 time-frame :offset 6200)
(unknown-time-frame23 time-frame :offset 6208)
(unknown-time-frame24 time-frame :offset 6216)
(unknown-time-frame25 time-frame :offset 6224)
(unknown-float42 float :offset 6232)
(unknown-sound-id02 sound-id :offset 6240)
(unknown-sound-id03 sound-id :offset 6244)
(unknown-time-frame26 time-frame :offset 6248)
(unknown-time-frame27 time-frame :offset 6256)
(unknown-dword11 int64 :offset 6264)
(unknown-vector44 vector :inline :offset 6272)
(unknown-float43 float :offset 6288)
(unknown-sound-id04 sound-id :offset 6292)
(unknown-word08 int32 :offset 6300)
(unknown-word09 int32 :offset 6304)
(unknown-word10 int32 :offset 6308)
(unknown-word11 int32 :offset 6312)
(unknown-time-frame28 time-frame :offset 6320)
(unknown-time-frame29 time-frame :offset 6328)
(unknown-dword12 int64 :offset 6336)
(unknown-time-frame30 time-frame :offset 6368)
(unknown-quaternion05 quaternion :inline :offset 6384)
(unknown-time-frame31 time-frame :offset 6400)
(unknown-time-frame32 time-frame :offset 6408)
(pad uint8 :offset 6415)
)
:method-count-assert 68

View file

@ -145,7 +145,7 @@
(get-head (_type_) touching-prims-entry 9)
(get-next (_type_ touching-shapes-entry) touching-prims-entry 10)
(touching-shapes-entry-method-11 () none 11)
(touching-shapes-entry-method-12 () none 12)
(touching-shapes-entry-method-12 (_type_ collide-shape uint) touching-prims-entry 12)
(touching-shapes-entry-method-13 () none 13)
(touching-shapes-entry-method-14 () none 14)
)

View file

@ -166,22 +166,22 @@
;; definition of type lightning-tracker
(deftype lightning-tracker (process)
((root basic :offset-assert 128)
(lightning basic :offset-assert 132)
(callback basic :offset-assert 136)
(duration uint64 :offset-assert 144)
(start-time time-frame :offset-assert 152)
(offset0 vector :inline :offset-assert 160)
(offset1 vector :inline :offset-assert 176)
(target0 uint64 :offset-assert 192)
(target1 uint64 :offset-assert 200)
(target-joint0 int32 :offset-assert 208)
(target-joint1 int32 :offset-assert 212)
(sound uint32 :offset-assert 216)
(userdata uint64 :offset-assert 224)
(user-time time-frame 2 :offset-assert 232)
(user-vector vector :inline :offset-assert 256)
(user-handle handle 2 :offset 288)
((root basic :offset-assert 128)
(lightning lightning-spec :offset-assert 132)
(callback basic :offset-assert 136)
(duration uint64 :offset-assert 144)
(start-time time-frame :offset-assert 152)
(offset0 vector :inline :offset-assert 160)
(offset1 vector :inline :offset-assert 176)
(target0 uint64 :offset-assert 192)
(target1 uint64 :offset-assert 200)
(target-joint0 int32 :offset-assert 208)
(target-joint1 int32 :offset-assert 212)
(sound uint32 :offset-assert 216)
(userdata uint64 :offset-assert 224)
(user-time time-frame 2 :offset-assert 232)
(user-vector vector :inline :offset-assert 256)
(user-handle handle 2 :offset 288)
)
:heap-base #xb0
:method-count-assert 17
@ -599,7 +599,3 @@
;; failed to figure out what this is:
0

View file

@ -186,7 +186,7 @@
(water-control-method-10 () none 10)
(water-control-method-11 () none 11)
(distance-from-surface (_type_) float 12)
(water-control-method-13 () none 13)
(water-control-method-13 (_type_ float vector int vector symbol) none 13)
(display-water-marks? (_type_) symbol 14)
(water-control-method-15 () none 15)
(water-control-method-16 () none 16)

View file

@ -20,7 +20,7 @@
(effect-control-method-9 () none 9)
(effect-control-method-10 () none 10)
(effect-control-method-11 () none 11)
(effect-control-method-12 () none 12)
(effect-control-method-12 (_type_ symbol float int basic sound-name) int 12)
(set-channel-offset! (_type_ int) none 13)
(effect-control-method-14 () none 14)
)

View file

@ -37,139 +37,160 @@
;; definition of type board-info
(deftype board-info (basic)
((board (pointer board) :offset-assert 4)
(camera-interp float :offset-assert 8)
(process (pointer target) :offset-assert 12)
(board-trans vector :inline :offset-assert 16)
(board-quat vector :inline :offset-assert 32)
(board-scale vector :inline :offset-assert 48)
(main joint-mod :offset-assert 64)
(upper-body basic :offset-assert 68)
(sound-bank-knob float :offset-assert 72)
(sound-air-knob float :offset-assert 76)
(wind-sound-id uint32 :offset-assert 80)
(wind-sound-pitch float :offset-assert 84)
(wind-sound-volume float :offset-assert 88)
(engine-sound-id uint32 :offset-assert 92)
(engine-sound-pitch float :offset-assert 96)
(engine-sound-volume float :offset-assert 100)
(bank-sound-id uint32 :offset-assert 104)
(bank-sound-pitch float :offset-assert 108)
(bank-sound-volume float :offset-assert 112)
(ride-sound-id uint32 :offset-assert 116)
(spin-sound-id uint32 :offset-assert 120)
(spin-sound-volume float :offset-assert 124)
(spin-sound-pitch float :offset-assert 128)
(up-vector vector 2 :inline :offset-assert 144)
(slow-transv vector :inline :offset-assert 176)
(board-time time-frame :offset-assert 192)
(board-get-on-time time-frame :offset-assert 200)
(in-air-time time-frame :offset-assert 208)
(stick-lock basic :offset 240)
(stick-off basic :offset-assert 244)
(stance-info ground-tween-info :inline :offset-assert 248)
(mods-backup basic :offset-assert 284)
(attack-id uint32 :offset-assert 288)
(latch? symbol :offset-assert 292)
(unstuck-time time-frame :offset 344)
(stuck-count int32 :offset-assert 352)
(thrust-scale float :offset-assert 356)
(flip-time time-frame :offset-assert 360)
(transv-max meters :offset-assert 368)
(turn-anim-tilt? symbol :offset-assert 372)
(turn-anim-mag float :offset-assert 376)
(turn-anim-targ float :offset-assert 380)
(turn-anim-frame float :offset-assert 384)
(turn-anim-vel float :offset-assert 388)
(turn-anim-duck float :offset-assert 392)
(turn-anim-duck-vel float :offset-assert 396)
(tilt-anim-frame vector :inline :offset-assert 400)
(tilt-anim-target vector :inline :offset-assert 416)
(smack-surface-time time-frame :offset-assert 432)
(smack-speed meters :offset-assert 440)
(smack-normal vector :inline :offset-assert 448)
(glance-time time-frame :offset-assert 464)
(glance-speed meters :offset-assert 472)
(glance-in-transv vector :inline :offset-assert 480)
(glance-out-transv vector :inline :offset-assert 496)
(glance-normal vector :inline :offset-assert 512)
(on-flat-time time-frame :offset-assert 528)
(jump-land-time time-frame :offset-assert 536)
(slip-factor float :offset-assert 544)
(ground-on-dir vector :inline :offset-assert 560)
(ride-time time-frame :offset-assert 576)
(ride-start-time time-frame :offset-assert 584)
(ride-button-time time-frame :offset-assert 592)
(ride-lean-targ float :offset-assert 600)
(ride-lean float :offset-assert 604)
(ride-leanv float :offset-assert 608)
(ride-lean-mag float :offset-assert 612)
(ride-tilt-targ float :offset-assert 616)
(ride-tilt float :offset-assert 620)
(ride-tiltv float :offset-assert 624)
(ride-tilt-mag float :offset-assert 628)
(ride-lock symbol :offset-assert 632)
(ride-lock-on symbol :offset-assert 636)
(ride-speed meters :offset-assert 640)
(ride-mode uint32 :offset-assert 644)
(ride-rot degrees :offset-assert 648)
(ride-rot-old degrees :offset-assert 652)
(ride-rot-abs degrees 2 :offset-assert 656)
(ride-rtv-abs degrees :offset-assert 664)
(ride-touch-segment vector 2 :inline :offset-assert 672)
(ride-dir vector :inline :offset-assert 704)
(ride-vertex-length int16 :offset-assert 720)
(ride-vertex-length-old int16 :offset-assert 722)
(ride-vertex-base int16 :offset-assert 724)
(ride-vertex-base2 int16 :offset-assert 726)
(ride-vertex-index float :offset-assert 728)
(ride-vertex-index2 float :offset-assert 732)
(ride-vertex-index-old float :offset-assert 736)
(ride-vertex vector 3 :inline :offset-assert 752)
(ride-segment vector :inline :offset-assert 800)
(ride-dir-lean vector :inline :offset-assert 816)
(ride-pad-vector vector 1 :inline :offset-assert 832)
(ride-vertex-old vector 3 :inline :offset-assert 848)
(ride-segment-old vector :inline :offset-assert 896)
(ride-vertex-trail vector 128 :inline :offset-assert 912)
(halfpipe-side-time time-frame :offset-assert 2960)
(halfpipe-jump-time time-frame :offset-assert 2968)
(halfpipe-lip-time time-frame :offset-assert 2976)
(halfpipe-time time-frame :offset-assert 2984)
(halfpipe-gspot-time time-frame :offset-assert 2992)
(halfpipe-lip-event symbol :offset-assert 3000)
(spin-check-time time-frame :offset-assert 3008)
(spin-time time-frame :offset-assert 3016)
(spin-start-time time-frame :offset-assert 3024)
(spin-start-dir vector :inline :offset-assert 3040)
(spin-control float :offset-assert 3056)
(spin-ground-start-time time-frame :offset-assert 3064)
(spin-ground-time time-frame :offset-assert 3072)
(spin-ground-press-time time-frame :offset-assert 3080)
(flip-control float :offset-assert 3088)
(flip-count int32 :offset-assert 3092)
(trickx-count int32 :offset 3144)
(trotyv-max degrees :offset-assert 3148)
(trotyv degrees :offset-assert 3152)
(troty degrees :offset-assert 3156)
(troty-cum degrees :offset-assert 3160)
(upper-body-rotyv-max degrees :offset 3168)
(upper-body-rotyv degrees :offset-assert 3172)
(upper-body-roty degrees :offset-assert 3176)
(cushion-base meters :offset-assert 3180)
(cushion-offset meters :offset-assert 3184)
(shock-offset meters :offset-assert 3188)
(shock-offsetv meters :offset-assert 3192)
(shock-rotx meters :offset-assert 3196)
(trick-count int32 :offset 3204)
(pad uint8 :offset 3399)
((board (pointer board) :offset-assert 4)
(camera-interp float :offset-assert 8)
(process (pointer target) :offset-assert 12)
(board-trans vector :inline :offset-assert 16)
(board-quat vector :inline :offset-assert 32)
(board-scale vector :inline :offset-assert 48)
(main joint-mod :offset-assert 64)
(upper-body joint-mod :offset-assert 68)
(sound-bank-knob float :offset-assert 72)
(sound-air-knob float :offset-assert 76)
(wind-sound-id uint32 :offset-assert 80)
(wind-sound-pitch float :offset-assert 84)
(wind-sound-volume float :offset-assert 88)
(engine-sound-id uint32 :offset-assert 92)
(engine-sound-pitch float :offset-assert 96)
(engine-sound-volume float :offset-assert 100)
(bank-sound-id uint32 :offset-assert 104)
(bank-sound-pitch float :offset-assert 108)
(bank-sound-volume float :offset-assert 112)
(ride-sound-id uint32 :offset-assert 116)
(spin-sound-id uint32 :offset-assert 120)
(spin-sound-volume float :offset-assert 124)
(spin-sound-pitch float :offset-assert 128)
(unknown-sound-id00 sound-id :offset-assert 132)
(unknown-sound-id01 sound-id :offset-assert 136)
(unknown-sound-id02 sound-id :offset-assert 140)
(up-vector vector 2 :inline :offset-assert 144)
(slow-transv vector :inline :offset-assert 176)
(board-time time-frame :offset-assert 192)
(board-get-on-time time-frame :offset-assert 200)
(in-air-time time-frame :offset-assert 208)
(unknown-time-frame00 time-frame :offset-assert 216)
(unknown-time-frame01 time-frame :offset 224)
(unknown-time-frame02 time-frame :offset 232)
(stick-lock symbol :offset 240)
(stick-off symbol :offset-assert 244)
(stance-info ground-tween-info :inline :offset-assert 248)
(mods-backup basic :offset-assert 284)
(attack-id uint32 :offset-assert 288)
(latch? symbol :offset-assert 292)
(unknown-vector00 vector :inline :offset 304)
(unknown-vector01 vector :inline :offset 320)
(unknown-int00 uint32 :offset 336)
(unknown-symbol00 symbol :offset 340)
(unstuck-time time-frame :offset 344)
(stuck-count int32 :offset-assert 352)
(thrust-scale float :offset-assert 356)
(flip-time time-frame :offset-assert 360)
(transv-max meters :offset-assert 368)
(turn-anim-tilt? symbol :offset-assert 372)
(turn-anim-mag float :offset-assert 376)
(turn-anim-targ float :offset-assert 380)
(turn-anim-frame float :offset-assert 384)
(turn-anim-vel float :offset-assert 388)
(turn-anim-duck float :offset-assert 392)
(turn-anim-duck-vel float :offset-assert 396)
(tilt-anim-frame vector :inline :offset-assert 400)
(tilt-anim-target vector :inline :offset-assert 416)
(smack-surface-time time-frame :offset-assert 432)
(smack-speed meters :offset-assert 440)
(smack-normal vector :inline :offset-assert 448)
(glance-time time-frame :offset-assert 464)
(glance-speed meters :offset-assert 472)
(glance-in-transv vector :inline :offset-assert 480)
(glance-out-transv vector :inline :offset-assert 496)
(glance-normal vector :inline :offset-assert 512)
(on-flat-time time-frame :offset-assert 528)
(jump-land-time time-frame :offset-assert 536)
(slip-factor float :offset-assert 544)
(ground-on-dir vector :inline :offset-assert 560)
(ride-time time-frame :offset-assert 576)
(ride-start-time time-frame :offset-assert 584)
(ride-button-time time-frame :offset-assert 592)
(ride-lean-targ float :offset-assert 600)
(ride-lean float :offset-assert 604)
(ride-leanv float :offset-assert 608)
(ride-lean-mag float :offset-assert 612)
(ride-tilt-targ float :offset-assert 616)
(ride-tilt float :offset-assert 620)
(ride-tiltv float :offset-assert 624)
(ride-tilt-mag float :offset-assert 628)
(ride-lock symbol :offset-assert 632)
(ride-lock-on symbol :offset-assert 636)
(ride-speed meters :offset-assert 640)
(ride-mode uint32 :offset-assert 644)
(ride-rot degrees :offset-assert 648)
(ride-rot-old degrees :offset-assert 652)
(ride-rot-abs degrees 2 :offset-assert 656)
(ride-rtv-abs degrees :offset-assert 664)
(ride-touch-segment vector 2 :inline :offset-assert 672)
(ride-dir vector :inline :offset-assert 704)
(ride-vertex-length int16 :offset-assert 720)
(ride-vertex-length-old int16 :offset-assert 722)
(ride-vertex-base int16 :offset-assert 724)
(ride-vertex-base2 int16 :offset-assert 726)
(ride-vertex-index float :offset-assert 728)
(ride-vertex-index2 float :offset-assert 732)
(ride-vertex-index-old float :offset-assert 736)
(ride-vertex vector 3 :inline :offset-assert 752)
(ride-segment vector :inline :offset-assert 800)
(ride-dir-lean vector :inline :offset-assert 816)
(ride-pad-vector vector 1 :inline :offset-assert 832)
(ride-vertex-old vector 3 :inline :offset-assert 848)
(ride-segment-old vector :inline :offset-assert 896)
(ride-vertex-trail vector 128 :inline :offset-assert 912)
(halfpipe-side-time time-frame :offset-assert 2960)
(halfpipe-jump-time time-frame :offset-assert 2968)
(halfpipe-lip-time time-frame :offset-assert 2976)
(halfpipe-time time-frame :offset-assert 2984)
(halfpipe-gspot-time time-frame :offset-assert 2992)
(halfpipe-lip-event symbol :offset-assert 3000)
(spin-check-time time-frame :offset-assert 3008)
(spin-time time-frame :offset-assert 3016)
(spin-start-time time-frame :offset-assert 3024)
(spin-start-dir vector :inline :offset-assert 3040)
(spin-control float :offset-assert 3056)
(spin-ground-start-time time-frame :offset-assert 3064)
(spin-ground-time time-frame :offset-assert 3072)
(spin-ground-press-time time-frame :offset-assert 3080)
(flip-control float :offset-assert 3088)
(flip-count int32 :offset-assert 3092)
(unknown-time-frame03 time-frame :offset 3104)
(unknown-time-frame04 time-frame :offset 3112)
(unknown-time-frame05 time-frame :offset 3120)
(unknown-time-frame06 time-frame :offset 3128)
(unknown-float00 float :offset 3136)
(unknown-float01 float :offset 3140)
(trickx-count int32 :offset 3144)
(trotyv-max degrees :offset-assert 3148)
(trotyv degrees :offset-assert 3152)
(troty degrees :offset-assert 3156)
(troty-cum degrees :offset-assert 3160)
(unknown-deg00 degrees :offset 3164)
(upper-body-rotyv-max degrees :offset 3168)
(upper-body-rotyv degrees :offset-assert 3172)
(upper-body-roty degrees :offset-assert 3176)
(cushion-base meters :offset-assert 3180)
(cushion-offset meters :offset-assert 3184)
(shock-offset meters :offset-assert 3188)
(shock-offsetv meters :offset-assert 3192)
(shock-rotx meters :offset-assert 3196)
(part-control sparticle-launch-control :offset-assert 3200)
(trick-count int32 :offset-assert 3204)
(trick-array board-tricks 16 :offset-assert 3208)
(trick-points-array float 16 :offset 3272)
(trick-list board-tricks 16 :offset 3336)
(pad uint8 :offset 3399)
)
:method-count-assert 11
:size-assert #xd48
:flag-assert #xb00000d48
(:methods
(board-info-method-9 () none 9)
(board-info-method-10 () none 10)
(add-to-trick-list (_type_ board-tricks float) none 9)
(flush-trick-list (_type_) none 10)
)
)
@ -391,8 +412,8 @@
)
)
(not *pause-lock*)
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame21)) (seconds 0.1))
(>= (-> self control unknown-time-frame06) (-> self control unknown-time-frame12))
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame30)) (seconds 0.1))
(>= (-> self control unknown-time-frame06) (-> self control unknown-time-frame20))
)
(-> self board latch?)
)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -69,9 +69,9 @@
(gun-roty-rel degrees :offset-assert 144)
(gun-roty degrees :offset-assert 148)
(gun-roty-targ degrees :offset-assert 152)
(hips basic :offset-assert 156)
(upper-body basic :offset-assert 160)
(chest basic :offset-assert 164)
(hips joint-mod :offset-assert 156)
(upper-body joint-mod :offset-assert 160)
(chest joint-mod :offset-assert 164)
(fire-dir-rot degrees :offset-assert 168)
(fire-dir vector 2 :inline :offset-assert 176)
(fire-point vector :inline :offset-assert 208)
@ -122,7 +122,7 @@
(top-anim-tilt-up degrees :offset-assert 600)
(attack-combo combo-tracker :inline :offset-assert 608)
(combo-window-start time-frame :offset-assert 656)
(combo-window-state uint32 :offset-assert 664)
(combo-window-state symbol :offset-assert 664)
(combo-fire-delay uint32 :offset-assert 668)
(charge-ammo float :offset-assert 672)
(charge-start-time time-frame :offset-assert 680)
@ -487,7 +487,7 @@
(-> arg0 gun latch?)
)
(not (-> arg0 skel top-anim frame-group))
(>= (- (-> self clock frame-counter) (-> arg0 control unknown-time-frame12)) (seconds 0.1))
(>= (- (-> self clock frame-counter) (-> arg0 control unknown-time-frame20)) (seconds 0.1))
)
)

View file

@ -462,7 +462,7 @@
(-> arg0 control unknown-vector21 y)
(- (-> (the-as target pp) clock frame-counter) (-> arg0 control unknown-time-frame06))
(- (-> arg0 control trans y) (-> arg0 control unknown-vector21 y))
(- (-> arg0 control unknown-vector37 y) (-> arg0 control unknown-vector36 y))
(- (-> arg0 control unknown-vector43 y) (-> arg0 control unknown-vector42 y))
(-> arg0 control ground-impact-vel)
)
(let* ((t9-76 format)
@ -470,16 +470,16 @@
(a1-56 "~0k~Tcd: ~,,2M md:~,,2M~%")
(v1-191 (vector-! (new-stack-vector0) (-> arg0 control trans) (-> arg0 control unknown-vector21)))
(a2-17 (sqrtf (+ (* (-> v1-191 x) (-> v1-191 x)) (* (-> v1-191 z) (-> v1-191 z)))))
(v1-193 (vector-! (new-stack-vector0) (-> arg0 control unknown-vector37) (-> arg0 control unknown-vector36)))
(v1-193 (vector-! (new-stack-vector0) (-> arg0 control unknown-vector43) (-> arg0 control unknown-vector42)))
)
(t9-76 a0-131 a1-56 a2-17 (sqrtf (+ (* (-> v1-193 x) (-> v1-193 x)) (* (-> v1-193 z) (-> v1-193 z)))))
)
(format
arg1
"~0kbend b:~F t:~F s:~F~%"
(-> arg0 control unknown-float27)
(-> arg0 control unknown-float28)
(-> arg0 control unknown-float29)
(-> arg0 control unknown-float30)
)
(set! sv-64 0)
(set! sv-72 0)
@ -641,7 +641,7 @@
)
)
(let ((f1-1 (* 0.0625 f1-0)))
(set! (-> self control unknown-word02) a0-3)
(set! (-> self control unknown-word03) a0-3)
(set! (-> self control unknown-float32) f1-1)
(if (logtest? (-> self control unknown-surface01 flags) (surface-flag no-turn-around))
(set! (-> v1-7 0) (-> self clock frame-counter))
@ -664,7 +664,7 @@
;; INFO: Used lq/sq
(defbehavior wall-hide? target ()
(when (and (< 0.7 (-> self control unknown-float12))
(< 0.7 (-> self control unknown-float26))
(< 0.7 (-> self control unknown-float27))
(and (< (-> self control unknown-float05) 8192.0)
(logtest? (-> self control status) (cshape-moving-flags t-wall))
(zero? (logand (-> self control status) (cshape-moving-flags t-act)))
@ -675,11 +675,11 @@
)
)
)
(if (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame22)) (seconds 0.1))
(set! (-> self control unknown-time-frame23) (-> self clock frame-counter))
(if (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame31)) (seconds 0.1))
(set! (-> self control unknown-time-frame32) (-> self clock frame-counter))
)
(set! (-> self control unknown-time-frame22) (-> self clock frame-counter))
(when (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame23)) (seconds 0.5))
(set! (-> self control unknown-time-frame31) (-> self clock frame-counter))
(when (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame32)) (seconds 0.5))
(let ((gp-0 (new 'stack-no-clear 'collide-query)))
(let ((v1-34 (-> gp-0 bbox))
(a0-13 (-> self control trans))
@ -785,12 +785,12 @@
(warp-vector-into-surface! gp-0 arg0 (-> self control local-normal) (-> self control unknown-matrix03))
(set! (-> self control unknown-float11) (-> self control unknown-float10))
(set! (-> self control unknown-float09) (-> self control unknown-float08))
(set! (-> self control unknown-vector08 quad) (-> self control unknown-vector07 quad))
(set! (-> self control unknown-vector10 quad) (-> self control unknown-vector09 quad))
(vector-float*! (-> self control unknown-vector09) gp-0 arg1)
(set! (-> self control unknown-vector09 quad) (-> self control unknown-vector08 quad))
(set! (-> self control unknown-vector11 quad) (-> self control unknown-vector10 quad))
(vector-float*! (-> self control unknown-vector10) gp-0 arg1)
(if (< 0.0 arg1)
(warp-vector-into-surface!
(-> self control unknown-vector07)
(-> self control unknown-vector08)
arg0
*up-vector*
(-> self control unknown-matrix03)
@ -1013,7 +1013,7 @@
(set! (-> s3-1 z) (fmax (fmin 0.0 (-> s3-1 z)) (-> s4-0 z)))
(set! (-> s3-1 z) (fmax 0.0 (fmin (-> s3-1 z) (-> s4-0 z))))
)
(if (< 0.2 (-> self control unknown-float26))
(if (< 0.2 (-> self control unknown-float27))
(vector-seek! s3-1 s4-0 (* 122880.0 (-> self clock seconds-per-frame)))
)
(vector-matrix*! s2-0 s3-1 (-> self control unknown-matrix01))
@ -1166,17 +1166,17 @@
(vector-matrix*! gp-0 gp-0 s3-0)
(set! (-> self control unknown-float19) (- (vector-dot (-> self control surface-normal) gp-0)))
(set! (-> self control unknown-float17) (- (vector-dot (-> self control local-normal) gp-0)))
(set! (-> self control unknown-float21) (- (vector-dot (-> self control gspot-normal) gp-0)))
(set! (-> self control unknown-float24) (- (vector-dot s4-0 gp-0)))
(set! (-> self control unknown-float22) (- (vector-dot (-> self control gspot-normal) gp-0)))
(set! (-> self control unknown-float25) (- (vector-dot s4-0 gp-0)))
(set-vector! gp-0 1.0 0.0 0.0 1.0)
(vector-matrix*! gp-0 gp-0 s3-0)
(set! (-> self control unknown-float20) (- (vector-dot (-> self control surface-normal) gp-0)))
(set! (-> self control unknown-float18) (- (vector-dot (-> self control local-normal) gp-0)))
(set! (-> self control unknown-float22) (- (vector-dot (-> self control gspot-normal) gp-0)))
(set! (-> self control unknown-float25) (- (vector-dot s4-0 gp-0)))
(set! (-> self control unknown-float23) (- (vector-dot (-> self control gspot-normal) gp-0)))
(set! (-> self control unknown-float26) (- (vector-dot s4-0 gp-0)))
(set-vector! gp-0 1.0 0.0 0.0 1.0)
(vector-matrix*! gp-0 gp-0 (-> self control unknown-matrix01))
(set! (-> self control unknown-float23) (vector-dot gp-0 s5-0))
(set! (-> self control unknown-float24) (vector-dot gp-0 s5-0))
)
0
)
@ -1220,7 +1220,7 @@
)
(zero? (logand (-> self control unknown-surface01 flags) (surface-flag turn-to-vel)))
)
(-> self control unknown-vector07)
(-> self control unknown-vector08)
)
(else
(-> self control transv)
@ -1646,17 +1646,17 @@
(defbehavior flag-setup target ()
(cond
((= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0)
(if (zero? (-> self control unknown-dword07))
(set! (-> self control unknown-dword07)
(the-as int (- (-> self clock frame-counter) (-> self control unknown-time-frame19)))
(if (zero? (-> self control unknown-dword12))
(set! (-> self control unknown-dword12)
(the-as int (- (-> self clock frame-counter) (-> self control unknown-time-frame28)))
)
)
(set! (-> self control unknown-time-frame19) (-> self clock frame-counter))
(quaternion-copy! (-> self control unknown-quaternion04) (-> self control dir-targ))
(set! (-> self control unknown-time-frame28) (-> self clock frame-counter))
(quaternion-copy! (-> self control unknown-quaternion05) (-> self control dir-targ))
)
(else
(set! (-> self control unknown-time-frame20) (-> self clock frame-counter))
(set! (-> self control unknown-dword07) 0)
(set! (-> self control unknown-time-frame29) (-> self clock frame-counter))
(set! (-> self control unknown-dword12) 0)
0
)
)
@ -1679,24 +1679,24 @@
(else
(let ((v1-49 (-> self control trans)))
(when (logtest? (-> self control old-status) (cshape-moving-flags on-surface))
(set! (-> self control unknown-vector36 quad) (-> self control unknown-vector21 quad))
(set! (-> self control unknown-vector37 quad) (-> self control unknown-vector21 quad))
(set! (-> self control unknown-vector42 quad) (-> self control unknown-vector21 quad))
(set! (-> self control unknown-vector43 quad) (-> self control unknown-vector21 quad))
)
(set! (-> self control unknown-vector37 x) (-> v1-49 x))
(set! (-> self control unknown-vector37 z) (-> v1-49 z))
(set! (-> self control unknown-vector43 x) (-> v1-49 x))
(set! (-> self control unknown-vector43 z) (-> v1-49 z))
(if (< (vector-dot
(-> self control dynam gravity-normal)
(vector-! (new 'stack-no-clear 'vector) (-> self control unknown-vector37) v1-49)
(vector-! (new 'stack-no-clear 'vector) (-> self control unknown-vector43) v1-49)
)
0.0
)
(set! (-> self control unknown-vector37 y) (-> v1-49 y))
(set! (-> self control unknown-vector43 y) (-> v1-49 y))
)
)
)
)
(when (and (cpad-pressed? (-> self control unknown-cpad-info00 number) r3)
(zero? (-> self control unknown-word03))
(zero? (-> self control unknown-word07))
(zero? (logand (-> *kernel-context* prevent-from-run) (process-mask movie)))
(not *pause-lock*)
)
@ -1771,7 +1771,7 @@
)
)
(send-event *camera* 'reset-follow)
(set! (-> self control unknown-time-frame12) (-> self clock frame-counter))
(set! (-> self control unknown-time-frame20) (-> self clock frame-counter))
(cond
((logtest? (focus-status mech indax) (-> self focus-status))
(if (not (and (-> self next-state)
@ -1889,7 +1889,7 @@
)
)
)
(set! (-> self control unknown-float29)
(set! (-> self control unknown-float30)
(if (logtest? (-> self control status) (cshape-moving-flags on-surface))
32.0
2.0
@ -1920,24 +1920,24 @@
(set! (-> self control unknown-time-frame07) (-> self clock frame-counter))
)
(when (logtest? (-> self state-flags) (state-flags tinvul1))
(if (< (logand (- (-> self clock frame-counter) (-> self control unknown-time-frame13)) 3) 1)
(if (< (logand (- (-> self clock frame-counter) (-> self control unknown-time-frame22)) 3) 1)
(logior! (-> self draw status) (draw-control-status no-draw-bounds))
(logclear! (-> self draw status) (draw-control-status no-draw-bounds))
)
(if (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame13))
(-> self control unknown-time-frame14)
(if (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame22))
(-> self control unknown-time-frame23)
)
(target-timed-invulnerable-off self 1)
)
)
(when (logtest? (state-flags tinvul2) (-> self state-flags))
(if (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame15))
(-> self control unknown-time-frame16)
(if (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame24))
(-> self control unknown-time-frame25)
)
(target-timed-invulnerable-off self 2)
)
)
(set! (-> self control unknown-symbol01) #f)
(set! (-> self control unknown-symbol06) #f)
(target-gun-joint-pre)
((-> self pre-joint-hook))
(target-log-trans)
@ -2016,14 +2016,14 @@
(zero? (logand (-> self control status) (cshape-moving-flags on-surface)))
)
0.0
(-> self control unknown-float28)
(-> self control unknown-float29)
)
)
)
(seek!
(-> self control unknown-float27)
(-> self control unknown-float28)
f0-1
(* (-> self control unknown-float29) (-> self clock seconds-per-frame))
(* (-> self control unknown-float30) (-> self clock seconds-per-frame))
)
)
(set! (-> self control dynam gravity-normal quad) (-> self control unknown-dynamics00 gravity-normal quad))
@ -2041,7 +2041,7 @@
s5-0
(-> self control unknown-dynamics00 gravity-normal)
gp-0
(-> self control unknown-float27)
(-> self control unknown-float28)
)
(let ((a2-3
(matrix-from-two-vectors-smooth!
@ -2159,7 +2159,7 @@
)
)
(let ((gp-2 (vector-cross!
(-> self control unknown-vector35)
(-> self control unknown-vector36)
(-> self control unknown-vector34)
(-> self control dynam gravity-normal)
)
@ -2169,7 +2169,7 @@
(set! (-> self control unknown-float33) (vector-length s4-1))
(cond
((and (< 819.2 (-> self control unknown-float33))
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame10)) (seconds 0.2))
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame15)) (seconds 0.2))
)
(cond
((-> s5-0 pilot-edge-grab?)
@ -2228,8 +2228,8 @@
((method-of-object (-> self control) collide-shape-method-28))
(vector-float*! (-> self control rider-last-move) s4-1 (-> self clock frames-per-second))
(set! (-> self control rider-time) (-> self clock frame-counter))
(if (and (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame11)) (seconds 0.5))
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame10)) (seconds 0.5))
(if (and (>= (- (-> self clock frame-counter) (-> self control unknown-time-frame16)) (seconds 0.5))
(>= (- (-> self clock frame-counter) (-> self control unknown-time-frame15)) (seconds 0.5))
)
(send-event self 'end-mode)
)
@ -2246,7 +2246,7 @@
)
(set! (-> self control unknown-float33) 0.0)
(set! (-> self control unknown-vector21 quad) (-> self control trans quad))
(set! (-> self control unknown-time-frame10) (-> self clock frame-counter))
(set! (-> self control unknown-time-frame15) (-> self clock frame-counter))
)
)
)
@ -2309,7 +2309,7 @@
)
)
(vector-cross!
(-> self control unknown-vector35)
(-> self control unknown-vector36)
(-> self control unknown-vector34)
(-> self control dynam gravity-normal)
)
@ -2336,7 +2336,7 @@
(vf4 :class vf)
)
(init-vf0-vector)
(let* ((s2-0 (handle->process (-> self control unknown-handle00)))
(let* ((s2-0 (handle->process (-> self control unknown-handle01)))
(gp-0 (-> (the-as swingpole s2-0) dir))
)
(set! (-> self control unknown-vector34 quad) (-> gp-0 quad))
@ -2420,14 +2420,14 @@
)
(let ((a0-26 (vector-! (new-stack-vector0) s5-0 (-> self control unknown-vector30))))
(cond
((and (< 2457.6 (vector-length a0-26)) (not (-> self control unknown-symbol00)))
((and (< 2457.6 (vector-length a0-26)) (not (-> self control unknown-symbol02)))
(let ((s4-1 (method-of-object (-> self control) collide-shape-method-28)))
(vector-normalize! a0-26 2457.6)
(s4-1)
)
)
(else
(set! (-> self control unknown-symbol00) #t)
(set! (-> self control unknown-symbol02) (the-as float #t))
(collide-shape-method-29
(-> self control)
(vector-! (new 'stack-no-clear 'vector) s5-0 (-> self control unknown-vector31))
@ -2437,7 +2437,7 @@
)
)
)
(let ((s5-3 (vector-cross! (-> self control unknown-vector35) gp-0 (-> self control dynam gravity-normal))))
(let ((s5-3 (vector-cross! (-> self control unknown-vector36) gp-0 (-> self control dynam gravity-normal))))
(if (>= 0.0
(vector-dot s5-3 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> self control unknown-quaternion00)))
)
@ -2493,7 +2493,7 @@
)
(vector<-cspace! gp-0 (-> self node-list data 6))
(cond
((>= (+ (-> self clock frame-counter) (seconds -2)) (-> self control unknown-time-frame17))
((>= (+ (-> self clock frame-counter) (seconds -2)) (-> self control unknown-time-frame26))
(set! (-> self control unknown-vector15 quad) (-> s5-0 quad))
)
((not (and (logtest? (-> self water flags) (water-flags under-water))
@ -2504,7 +2504,7 @@
(-> self control unknown-vector15)
gp-0
s5-0
(* 0.0016666667 (the float (- (-> self clock frame-counter) (-> self control unknown-time-frame17))))
(* 0.0016666667 (the float (- (-> self clock frame-counter) (-> self control unknown-time-frame26))))
)
)
(else
@ -2516,7 +2516,7 @@
0.0
(fmin
1.0
(* 0.0011111111 (the float (- (-> self clock frame-counter) (-> self control unknown-time-frame18))))
(* 0.0011111111 (the float (- (-> self clock frame-counter) (-> self control unknown-time-frame27))))
)
)
)
@ -2621,9 +2621,7 @@
(vector-average! (-> self control unknown-vector30) gp-0 s5-0)
)
(vector-! (-> self control unknown-vector31) (-> self control unknown-vector30) (-> self control trans))
((method-of-type impact-control update-from-cspace)
(the-as impact-control (-> self control unknown-cspace02))
)
(update-from-cspace (-> self control unknown-impact-control00))
(cond
((logtest? (-> self focus-status) (focus-status edge-grab))
(target-compute-edge)
@ -2662,15 +2660,15 @@
(set! (-> self control unknown-pat-surface01) (-> self control ground-pat))
)
(else
(let* ((gp-0 (new 'stack-no-clear 'collide-query))
(a0-15 (-> self control))
(t9-0 (method-of-object a0-15 collide-shape-moving-method-55))
)
(logclear (-> self control root-prim prim-core collide-with) (collide-spec water))
#x46000000
#x47a00000
#x44800000
(if (t9-0 a0-15)
(let ((gp-0 (new 'stack-no-clear 'collide-query)))
(if (collide-shape-moving-method-55
(-> self control)
gp-0
(logclear (-> self control root-prim prim-core collide-with) (collide-spec water))
8192.0
81920.0
1024.0
)
(set! (-> self control unknown-pat-surface01) (-> gp-0 best-other-tri pat))
)
)
@ -2688,7 +2686,7 @@
(update-rates! (-> self clock) (/ f30-0 (the float gp-1)))
(while (nonzero? gp-1)
(+! gp-1 -1)
(set! (-> self control unknown-word03) gp-1)
(set! (-> self control unknown-word07) gp-1)
(flag-setup)
(if (< (-> self control unknown-float15) 0.0)
(set! (-> self control unknown-float15) (- 1.0 (-> self control unknown-cpad-info00 stick0-speed)))
@ -2769,7 +2767,7 @@
(set! (-> a2-3 ignore-pat) (-> v1-52 pat-ignore-mask))
)
(set! (-> a2-3 action-mask) (collide-action solid))
(collide-shape-method-32 (-> self control) (-> self control transv) (the-as uint a2-3) #x45800000)
(collide-shape-method-32 (-> self control) (-> self control transv) a2-3 (meters 1.0))
)
(if (and (logtest? (-> self control root-prim prim-core action) (collide-action check-edge))
(>= (vector-dot
@ -2862,7 +2860,7 @@
(update-rates! (-> self clock) (/ f30-0 (the float gp-1)))
(while (nonzero? gp-1)
(+! gp-1 -1)
(set! (-> self control unknown-word03) gp-1)
(set! (-> self control unknown-word07) gp-1)
(flag-setup)
(build-conversions (-> self control transv))
(do-rotations1)
@ -2905,7 +2903,7 @@
(set! (-> a2-0 ignore-pat) (-> v1-30 pat-ignore-mask))
)
(set! (-> a2-0 action-mask) (collide-action solid))
(collide-shape-method-32 (-> self control) (-> self control transv) (the-as uint a2-0) #x45800000)
(collide-shape-method-32 (-> self control) (-> self control transv) a2-0 (meters 1.0))
)
(if (and (logtest? (-> self control root-prim prim-core action) (collide-action check-edge))
(>= (vector-dot
@ -2991,7 +2989,7 @@
(update-rates! (-> self clock) (/ f30-0 (the float gp-1)))
(while (nonzero? gp-1)
(+! gp-1 -1)
(set! (-> self control unknown-word03) gp-1)
(set! (-> self control unknown-word07) gp-1)
(flag-setup)
(build-conversions (-> self control transv))
(do-rotations1)
@ -3034,7 +3032,7 @@
(set! (-> a2-0 ignore-pat) (-> v1-29 pat-ignore-mask))
)
(set! (-> a2-0 action-mask) (collide-action solid))
(collide-shape-method-32 (-> self control) (-> self control transv) (the-as uint a2-0) #x45800000)
(collide-shape-method-32 (-> self control) (-> self control transv) a2-0 (meters 1.0))
)
(if (and (logtest? (-> self control root-prim prim-core action) (collide-action check-edge))
(>= (vector-dot
@ -3121,7 +3119,7 @@
(update-rates! (-> self clock) (/ f30-0 (the float gp-1)))
(while (nonzero? gp-1)
(+! gp-1 -1)
(set! (-> self control unknown-word03) gp-1)
(set! (-> self control unknown-word07) gp-1)
(flag-setup)
(build-conversions (-> self control transv))
(do-rotations1)
@ -3130,7 +3128,7 @@
(vector-!
(-> self control unknown-vector05)
(-> self control unknown-vector04)
(-> self control unknown-vector06)
(-> self control unknown-vector07)
)
(let ((a1-3 (new 'stack-no-clear 'overlaps-others-params)))
(set! (-> a1-3 options) (overlaps-others-options oo0))
@ -3217,7 +3215,7 @@
(vector-!
(-> self control unknown-vector05)
(-> self control unknown-vector04)
(-> self control unknown-vector06)
(-> self control unknown-vector07)
)
(let ((a1-2 (new 'stack-no-clear 'overlaps-others-params)))
(set! (-> a1-2 options) (overlaps-others-options oo0))
@ -3253,12 +3251,12 @@
(quaternion-identity! (-> self control unknown-quaternion01))
(set! (-> self control unknown-float04) 0.0)
(set! (-> self control unknown-time-frame06) (-> self clock frame-counter))
(set! (-> self control unknown-float27) 0.0)
(set! (-> self control unknown-float29) 32.0)
(set! (-> self control unknown-float28) 0.0)
(set! (-> self control unknown-float30) 32.0)
(set! (-> self cam-user-mode) 'normal)
(set! (-> self control unknown-handle00) (the-as handle #f))
(set! (-> self control unknown-handle01) (the-as handle #f))
(set! (-> self control unknown-dword06) 0)
(set! (-> self control unknown-handle00) (the-as handle #f))
(set! (-> self control unknown-dword11) 0)
(buzz-stop! 0)
self
)
@ -3373,10 +3371,10 @@
(set! (-> obj control) s0-0)
)
(let ((v1-69 (-> obj control)))
(set! (-> v1-69 unknown-word04) s4-0)
(set! (-> v1-69 unknown-word06) s3-0)
(set! (-> v1-69 unknown-word05) s2-0)
(set! (-> v1-69 unknown-word07) s1-0)
(set! (-> v1-69 unknown-word08) s4-0)
(set! (-> v1-69 unknown-word10) s3-0)
(set! (-> v1-69 unknown-word09) s2-0)
(set! (-> v1-69 unknown-word11) s1-0)
(set! (-> v1-69 max-iteration-count) (the-as uint 8))
(set! (-> v1-69 event-self) 'touched)
)
@ -3390,11 +3388,11 @@
(set! (-> obj control unknown-surface01 name) 'current)
(set! (-> obj control unknown-surface01 active-hook) nothing)
(set! (-> obj control unknown-surface01 touch-hook) nothing)
(set! (-> obj control unknown-dword05) (the-as uint #f))
(set! (-> obj control unknown-dword06) (the-as uint #f))
(dotimes (v1-84 8)
(set! (-> obj attack-info-old v1-84 attacker) (the-as handle #f))
)
(set! (-> obj notify) (the-as uint #f))
(set! (-> obj notify) (the-as handle #f))
(set! (-> obj mirror) (the-as (pointer process-drawable) #f))
(initialize-skeleton
obj
@ -3471,9 +3469,9 @@
(set! (-> obj control backup-collde-with) (-> v1-163 prim-core collide-with))
)
(set! (-> obj sound) (new 'process 'ambient-sound "none" (-> obj control trans)))
(set! (-> obj control unknown-sound-id04) (new-sound-id))
(set! (-> obj control unknown-sound-id03) (new-sound-id))
(set! (-> obj control unknown-sound-id02) (new-sound-id))
(set! (-> obj control unknown-sound-id01) (new-sound-id))
(set! (-> obj control unknown-sound-id00) (new-sound-id))
(if (and *debug-segment* (!= (-> obj tobot?) 'tobot))
(add-connection *debug-engine* obj target-print-stats obj *stdcon0* #f)
)

File diff suppressed because it is too large Load diff