From aa6cdb273999a0bbd2d02d983f16e61624c88f58 Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Sun, 31 Jul 2022 23:53:36 -0400 Subject: [PATCH] languages: implement custom folder for IR2 files (#37) --- samples/sample_ir2.asm | 38154 ++++++--------------------- src/extension.ts | 7 + src/languages/ir2-folder.ts | 91 + syntaxes/configs/opengoal-ir.jsonc | 6 - 4 files changed, 8816 insertions(+), 29442 deletions(-) create mode 100644 src/languages/ir2-folder.ts diff --git a/samples/sample_ir2.asm b/samples/sample_ir2.asm index ee68736..e435bae 100644 --- a/samples/sample_ir2.asm +++ b/samples/sample_ir2.asm @@ -1,15799 +1,1500 @@ -; ALL_TYPES_USED:C:\Users\xtvas\Repositories\opengoal\jak-project\decompiler\config\all-types.gc +; ALL_TYPES=jak2=c:\Users\xtvas\Repositories\opengoal\jak-project\decompiler\config\jak2\all-types.gc ;------------------------------------------ ; top-level segment ;------------------------------------------ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (top-level-login target) +; .function (top-level-login ash) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x00, fp? 0 ra? 0 ep? 1 + ;stack: total 0x10, fp? 1 ra? 1 ep? 1 ;; Warnings: -;; INFO: Return type mismatch state vs none. - +;; WARN: Type Propagation failed: Failed type prop at op 7 ((set! a0 ashelin-anim-info)): Do not have the type of symbol ashelin-anim-info +;; WARN: Type Propagation failed: Type analysis failed +;; WARN: Decompiler type system did not know the type of symbol *ashelin-global-info*. Add it! +;; v1-0: type v1-1: none +;; v1-2: none v1-3: none +;; v1-4: none t9-0: (function symbol type int type) +;; t9-1: (function type int object none) t9-2: none +;; t9-3: none t9-4: none +;; t9-5: none t9-6: none +;; t9-7: none t9-8: none +;; t9-9: none t9-10: none +;; t9-11: none t9-12: none +;; t9-13: none t9-14: none +;; t9-15: none t9-16: none +;; t9-17: none t9-18: none +;; t9-19: none t9-20: none +;; t9-21: none t9-22: none +;; t9-23: none t9-24: none +;; t9-25: none t9-26: none +;; t9-27: none t9-28: none +;; t9-29: none t9-30: none +;; t9-31: none t9-32: none +;; t9-33: none t9-34: none +;; t9-35: none t9-36: none +;; t9-37: none t9-38: none +;; t9-39: none t9-40: none +;; t9-41: none t9-42: none +;; a0-0: symbol a0-4: none +;; a1-0: type a2-0: uint +;; a0-1: none a0-2: none +;; a0-3: none a0-5: none +;; a0-6: none a0-7: none +;; a0-8: none a0-9: none +;; a0-10: none a0-11: none +;; a0-12: none a0-13: none +;; a0-14: none a0-15: none +;; a0-16: none a0-17: none +;; a0-18: none a0-19: none +;; a0-20: none a0-21: none +;; a0-22: none a0-23: none +;; a0-24: none a0-25: none +;; a0-26: none a0-27: none +;; a0-28: none a0-29: none +;; a0-30: none a0-31: none +;; a0-32: none a0-33: none +;; a0-34: none a0-35: none +;; a0-36: none a0-37: none +;; a0-38: none a0-39: none +;; a0-40: none a0-41: none +;; a0-42: none a0-43: none +;; a1-1: none a1-2: none +;; a1-3: none a1-4: none +;; a1-5: none a1-6: none +;; a1-7: none a1-8: none +;; a1-9: none a1-10: none +;; a1-11: none a1-12: none +;; a1-13: none a1-14: none +;; a1-15: none a1-16: none +;; a1-17: none a1-18: none +;; a1-19: none a1-20: none +;; a1-21: none a1-22: none +;; a1-23: none a1-24: none +;; a1-25: none a1-26: none +;; a1-27: none a1-28: none +;; a1-29: none a1-30: none +;; a1-31: none a1-32: none +;; a1-33: none a1-34: none +;; a1-35: none a1-36: none +;; a1-37: none a1-38: none +;; a1-39: none a1-40: none +;; a1-41: none a1-42: none +;; a2-1: none a2-2: none +;; a2-3: none a2-4: none +;; a2-5: none a2-6: none +;; a2-7: none a2-8: none +;; a2-9: none a2-10: none +;; a2-11: none a2-12: none +;; a2-13: none a2-14: none +;; a2-15: none a2-16: none +;; a2-17: none a2-18: none +;; a2-19: none a2-20: none +;; a2-21: none a2-22: none +;; a2-23: none a2-24: none +;; a2-25: none a2-26: none +;; a2-27: none a2-28: none +;; a2-29: none a2-30: none +;; a2-31: none a2-32: none +;; a2-33: none a2-34: none +;; a2-35: none a2-36: none +;; a2-37: none a2-38: none +;; a2-39: none a2-40: none +;; a2-41: none a2-42: none +;; v0-0: type v0-1: none +;; v0-2: none v0-3: none +;; v0-4: none v0-5: none +;; v0-6: none v0-7: none +;; v0-8: none v0-9: none +;; v0-10: none v0-11: none +;; v0-12: none v0-13: none +;; v0-14: none v0-15: none +;; v0-16: none v0-17: none +;; v0-18: none v0-19: none +;; v0-20: none v0-21: none +;; v0-22: none v0-23: none +;; v0-24: none v0-25: none +;; v0-26: none v0-27: none +;; v0-28: none v0-29: none +;; v0-30: none v0-31: none +;; v0-32: none v0-33: none +;; v0-34: none v0-35: none +;; v0-36: none v0-37: none +;; v0-38: none v0-39: none +;; v0-40: none v0-41: none +;; v0-42: none + daddiu sp, sp, -16 + sd ra, 0(sp) + sd fp, 8(sp) + or fp, t9, r0 B0: - lui v1, L670 ;; [ 0] (set! v1-0 L670) - ;; [] -> [v1: (function time-frame time-frame symbol :behavior target) ] - ori v1, v1, L670 - sw v1, target-falling-anim(s7);; [ 1] (s.w! target-falling-anim v1-0) - ;; [v1: (function time-frame time-frame symbol :behavior target) ] -> [] - lui v1, L659 ;; [ 2] (set! v1-1 L659) [] -> [v1: (function none :behavior target) ] - ori v1, v1, L659 - sw v1, target-falling-anim-trans(s7);; [ 3] (s.w! target-falling-anim-trans v1-1) - ;; [v1: (function none :behavior target) ] -> [] - lui v1, L647 ;; [ 4] (set! v1-2 L647) [] -> [v1: (function basic time-frame none :behavior target) ] - ori v1, v1, L647 - sw v1, target-falling-trans(s7);; [ 5] (s.w! target-falling-trans v1-2) - ;; [v1: (function basic time-frame none :behavior target) ] -> [] - lui v1, L589 ;; [ 6] (set! v1-3 L589) [] -> [v1: (function symbol symbol :behavior target) ] - ori v1, v1, L589 - sw v1, target-hit-ground-anim(s7);; [ 7] (s.w! target-hit-ground-anim v1-3) - ;; [v1: (function symbol symbol :behavior target) ] -> [] - lui v1, L719 ;; [ 8] (set! v1-4 L719) [] -> [v1: state ] - ori v1, v1, L719 - sw v1, target-startup(s7) ;; [ 9] (s.w! target-startup v1-4) [v1: state ] -> [] - lw a0, target-standard-event-handler(s7);; [ 10] (set! a0-0 target-standard-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [ 11] (s.w! (+ v1-4 28) a0-0) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L588 ;; [ 12] (set! a0-1 L588) [] -> [a0: function ] - ori a0, a0, L588 - sw a0, 12(v1) ;; [ 13] (s.w! (+ v1-4 12) a0-1) [v1: state a0: function ] -> [] - lw a0, target-no-move-post(s7);; [ 14] (set! a0-2 target-no-move-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [ 15] (s.w! (+ v1-4 20) a0-2) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L718 ;; [ 16] (set! v1-5 L718) [] -> [v1: state ] - ori v1, v1, L718 - sw v1, target-stance(s7) ;; [ 17] (s.w! target-stance v1-5) [v1: state ] -> [] - lw a0, target-standard-event-handler(s7);; [ 18] (set! a0-3 target-standard-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [ 19] (s.w! (+ v1-5 28) a0-3) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L587 ;; [ 20] (set! a0-4 L587) [] -> [a0: function ] - ori a0, a0, L587 - sw a0, 24(v1) ;; [ 21] (s.w! (+ v1-5 24) a0-4) [v1: state a0: function ] -> [] - lui a0, L586 ;; [ 22] (set! a0-5 L586) [] -> [a0: function ] - ori a0, a0, L586 - sw a0, 8(v1) ;; [ 23] (s.w! (+ v1-5 8) a0-5) [v1: state a0: function ] -> [] - lui a0, L575 ;; [ 24] (set! a0-6 L575) [] -> [a0: function ] - ori a0, a0, L575 - sw a0, 16(v1) ;; [ 25] (s.w! (+ v1-5 16) a0-6) [v1: state a0: function ] -> [] - lui a0, L524 ;; [ 26] (set! a0-7 L524) [] -> [a0: function ] - ori a0, a0, L524 - sw a0, 12(v1) ;; [ 27] (s.w! (+ v1-5 12) a0-7) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [ 28] (set! a0-8 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [ 29] (s.w! (+ v1-5 20) a0-8) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L717 ;; [ 30] (set! v1-6 L717) [] -> [v1: state ] - ori v1, v1, L717 - sw v1, target-walk(s7) ;; [ 31] (s.w! target-walk v1-6) [v1: state ] -> [] - lw a0, target-walk-event-handler(s7);; [ 32] (set! a0-9 target-walk-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [ 33] (s.w! (+ v1-6 28) a0-9) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L523 ;; [ 34] (set! a0-10 L523) [] -> [a0: function ] - ori a0, a0, L523 - sw a0, 24(v1) ;; [ 35] (s.w! (+ v1-6 24) a0-10) [v1: state a0: function ] -> [] - lui a0, L522 ;; [ 36] (set! a0-11 L522) [] -> [a0: function ] - ori a0, a0, L522 - sw a0, 8(v1) ;; [ 37] (s.w! (+ v1-6 8) a0-11) [v1: state a0: function ] -> [] - lui a0, L507 ;; [ 38] (set! a0-12 L507) [] -> [a0: function ] - ori a0, a0, L507 - sw a0, 16(v1) ;; [ 39] (s.w! (+ v1-6 16) a0-12) [v1: state a0: function ] -> [] - lui a0, L445 ;; [ 40] (set! a0-13 L445) [] -> [a0: function ] - ori a0, a0, L445 - sw a0, 12(v1) ;; [ 41] (s.w! (+ v1-6 12) a0-13) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [ 42] (set! a0-14 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [ 43] (s.w! (+ v1-6 20) a0-14) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L716 ;; [ 44] (set! v1-7 L716) [] -> [v1: state ] - ori v1, v1, L716 - sw v1, target-turn-around(s7);; [ 45] (s.w! target-turn-around v1-7) [v1: state ] -> [] - lw a0, target-standard-event-handler(s7);; [ 46] (set! a0-15 target-standard-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [ 47] (s.w! (+ v1-7 28) a0-15) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L444 ;; [ 48] (set! a0-16 L444) [] -> [a0: function ] - ori a0, a0, L444 - sw a0, 24(v1) ;; [ 49] (s.w! (+ v1-7 24) a0-16) [v1: state a0: function ] -> [] - lui a0, L443 ;; [ 50] (set! a0-17 L443) [] -> [a0: function ] - ori a0, a0, L443 - sw a0, 8(v1) ;; [ 51] (s.w! (+ v1-7 8) a0-17) [v1: state a0: function ] -> [] - lui a0, L435 ;; [ 52] (set! a0-18 L435) [] -> [a0: function ] - ori a0, a0, L435 - sw a0, 16(v1) ;; [ 53] (s.w! (+ v1-7 16) a0-18) [v1: state a0: function ] -> [] - lui a0, L433 ;; [ 54] (set! a0-19 L433) [] -> [a0: function ] - ori a0, a0, L433 - sw a0, 12(v1) ;; [ 55] (s.w! (+ v1-7 12) a0-19) [v1: state a0: function ] -> [] - lw a0, target-no-stick-post(s7);; [ 56] (set! a0-20 target-no-stick-post) - ;; [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [ 57] (s.w! (+ v1-7 20) a0-20) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L715 ;; [ 58] (set! v1-8 L715) [] -> [v1: state ] - ori v1, v1, L715 - sw v1, target-slide-down(s7);; [ 59] (s.w! target-slide-down v1-8) [v1: state ] -> [] - lw a0, target-walk-event-handler(s7);; [ 60] (set! a0-21 target-walk-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [ 61] (s.w! (+ v1-8 28) a0-21) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L432 ;; [ 62] (set! a0-22 L432) [] -> [a0: function ] - ori a0, a0, L432 - sw a0, 24(v1) ;; [ 63] (s.w! (+ v1-8 24) a0-22) [v1: state a0: function ] -> [] - lui a0, L431 ;; [ 64] (set! a0-23 L431) [] -> [a0: function ] - ori a0, a0, L431 - sw a0, 8(v1) ;; [ 65] (s.w! (+ v1-8 8) a0-23) [v1: state a0: function ] -> [] - lui a0, L428 ;; [ 66] (set! a0-24 L428) [] -> [a0: function ] - ori a0, a0, L428 - sw a0, 16(v1) ;; [ 67] (s.w! (+ v1-8 16) a0-24) [v1: state a0: function ] -> [] - lui a0, L424 ;; [ 68] (set! a0-25 L424) [] -> [a0: function ] - ori a0, a0, L424 - sw a0, 12(v1) ;; [ 69] (s.w! (+ v1-8 12) a0-25) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [ 70] (set! a0-26 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [ 71] (s.w! (+ v1-8 20) a0-26) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L418 ;; [ 72] (set! v1-9 L418) - ;; [] -> [v1: (function float float vector vector vector vector :behavior target) ] - ori v1, v1, L418 - sw v1, init-var-jump(s7) ;; [ 73] (s.w! init-var-jump v1-9) - ;; [v1: (function float float vector vector vector vector :behavior target) ] -> [] - lui v1, L406 ;; [ 74] (set! v1-10 L406) - ;; [] -> [v1: (function symbol symbol symbol vector vector :behavior target) ] - ori v1, v1, L406 - sw v1, mod-var-jump(s7) ;; [ 75] (s.w! mod-var-jump v1-10) - ;; [v1: (function symbol symbol symbol vector vector :behavior target) ] -> [] - lui v1, L714 ;; [ 76] (set! v1-11 L714) [] -> [v1: state ] - ori v1, v1, L714 - sw v1, target-duck-stance(s7);; [ 77] (s.w! target-duck-stance v1-11) [v1: state ] -> [] - lw a0, target-standard-event-handler(s7);; [ 78] (set! a0-27 target-standard-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [ 79] (s.w! (+ v1-11 28) a0-27) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L405 ;; [ 80] (set! a0-28 L405) [] -> [a0: function ] - ori a0, a0, L405 - sw a0, 24(v1) ;; [ 81] (s.w! (+ v1-11 24) a0-28) [v1: state a0: function ] -> [] - lui a0, L402 ;; [ 82] (set! a0-29 L402) [] -> [a0: function ] - ori a0, a0, L402 - sw a0, 8(v1) ;; [ 83] (s.w! (+ v1-11 8) a0-29) [v1: state a0: function ] -> [] - lui a0, L390 ;; [ 84] (set! a0-30 L390) [] -> [a0: function ] - ori a0, a0, L390 - sw a0, 16(v1) ;; [ 85] (s.w! (+ v1-11 16) a0-30) [v1: state a0: function ] -> [] - lui a0, L378 ;; [ 86] (set! a0-31 L378) [] -> [a0: function ] - ori a0, a0, L378 - sw a0, 12(v1) ;; [ 87] (s.w! (+ v1-11 12) a0-31) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [ 88] (set! a0-32 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [ 89] (s.w! (+ v1-11 20) a0-32) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L713 ;; [ 90] (set! v1-12 L713) [] -> [v1: state ] - ori v1, v1, L713 - sw v1, target-duck-walk(s7);; [ 91] (s.w! target-duck-walk v1-12) [v1: state ] -> [] - lw a0, target-standard-event-handler(s7);; [ 92] (set! a0-33 target-standard-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [ 93] (s.w! (+ v1-12 28) a0-33) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L375 ;; [ 94] (set! a0-34 L375) [] -> [a0: function ] - ori a0, a0, L375 - sw a0, 24(v1) ;; [ 95] (s.w! (+ v1-12 24) a0-34) [v1: state a0: function ] -> [] - lw a0, target-duck-stance(s7);; [ 96] (set! a0-35 target-duck-stance) [] -> [a0: (state target) ] - lwu a0, 8(a0) ;; [ 97] (set! a0-36 (l.wu (+ a0-35 8))) [a0: (state target) ] -> [a0: (function none) ] - sw a0, 8(v1) ;; [ 98] (s.w! (+ v1-12 8) a0-36) [v1: state a0: (function none) ] -> [] - lui a0, L365 ;; [ 99] (set! a0-37 L365) [] -> [a0: function ] - ori a0, a0, L365 - sw a0, 16(v1) ;; [100] (s.w! (+ v1-12 16) a0-37) [v1: state a0: function ] -> [] - lui a0, L357 ;; [101] (set! a0-38 L357) [] -> [a0: function ] - ori a0, a0, L357 - sw a0, 12(v1) ;; [102] (s.w! (+ v1-12 12) a0-38) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [103] (set! a0-39 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [104] (s.w! (+ v1-12 20) a0-39) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L708 ;; [105] (set! v1-13 L708) [] -> [v1: state ] - ori v1, v1, L708 - sw v1, target-jump(s7) ;; [106] (s.w! target-jump v1-13) [v1: state ] -> [] - lw a0, target-jump-event-handler(s7);; [107] (set! a0-40 target-jump-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [108] (s.w! (+ v1-13 28) a0-40) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L352 ;; [109] (set! a0-41 L352) [] -> [a0: function ] - ori a0, a0, L352 - sw a0, 24(v1) ;; [110] (s.w! (+ v1-13 24) a0-41) [v1: state a0: function ] -> [] - lw a0, target-exit(s7) ;; [111] (set! a0-42 target-exit) [] -> [a0: (function none :behavior target) ] - sw a0, 8(v1) ;; [112] (s.w! (+ v1-13 8) a0-42) [v1: state a0: (function none :behavior target) ] -> [] - lui a0, L338 ;; [113] (set! a0-43 L338) [] -> [a0: function ] - ori a0, a0, L338 - sw a0, 16(v1) ;; [114] (s.w! (+ v1-13 16) a0-43) [v1: state a0: function ] -> [] - lui a0, L332 ;; [115] (set! a0-44 L332) [] -> [a0: function ] - ori a0, a0, L332 - sw a0, 12(v1) ;; [116] (s.w! (+ v1-13 12) a0-44) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [117] (set! a0-45 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [118] (s.w! (+ v1-13 20) a0-45) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L707 ;; [119] (set! v1-14 L707) [] -> [v1: state ] - ori v1, v1, L707 - sw v1, target-jump-forward(s7);; [120] (s.w! target-jump-forward v1-14) [v1: state ] -> [] - lw a0, target-jump-event-handler(s7);; [121] (set! a0-46 target-jump-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [122] (s.w! (+ v1-14 28) a0-46) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L331 ;; [123] (set! a0-47 L331) [] -> [a0: function ] - ori a0, a0, L331 - sw a0, 24(v1) ;; [124] (s.w! (+ v1-14 24) a0-47) [v1: state a0: function ] -> [] - lw a0, target-exit(s7) ;; [125] (set! a0-48 target-exit) [] -> [a0: (function none :behavior target) ] - sw a0, 8(v1) ;; [126] (s.w! (+ v1-14 8) a0-48) [v1: state a0: (function none :behavior target) ] -> [] - lw a0, target-jump(s7) ;; [127] (set! a0-49 target-jump) [] -> [a0: (state float float surface target) ] - lwu a0, 16(a0) ;; [128] (set! a0-50 (l.wu (+ a0-49 16))) - ;; [a0: (state float float surface target) ] -> [a0: (function none) ] - sw a0, 16(v1) ;; [129] (s.w! (+ v1-14 16) a0-50) [v1: state a0: (function none) ] -> [] - lui a0, L328 ;; [130] (set! a0-51 L328) [] -> [a0: function ] - ori a0, a0, L328 - sw a0, 12(v1) ;; [131] (s.w! (+ v1-14 12) a0-51) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [132] (set! a0-52 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [133] (s.w! (+ v1-14 20) a0-52) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L706 ;; [134] (set! v1-15 L706) [] -> [v1: state ] - ori v1, v1, L706 - sw v1, target-double-jump(s7);; [135] (s.w! target-double-jump v1-15) [v1: state ] -> [] - lw a0, target-jump-event-handler(s7);; [136] (set! a0-53 target-jump-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [137] (s.w! (+ v1-15 28) a0-53) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L326 ;; [138] (set! a0-54 L326) [] -> [a0: function ] - ori a0, a0, L326 - sw a0, 24(v1) ;; [139] (s.w! (+ v1-15 24) a0-54) [v1: state a0: function ] -> [] - lw a0, target-exit(s7) ;; [140] (set! a0-55 target-exit) [] -> [a0: (function none :behavior target) ] - sw a0, 8(v1) ;; [141] (s.w! (+ v1-15 8) a0-55) [v1: state a0: (function none :behavior target) ] -> [] - lui a0, L315 ;; [142] (set! a0-56 L315) [] -> [a0: function ] - ori a0, a0, L315 - sw a0, 16(v1) ;; [143] (s.w! (+ v1-15 16) a0-56) [v1: state a0: function ] -> [] - lui a0, L313 ;; [144] (set! a0-57 L313) [] -> [a0: function ] - ori a0, a0, L313 - sw a0, 12(v1) ;; [145] (s.w! (+ v1-15 12) a0-57) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [146] (set! a0-58 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [147] (s.w! (+ v1-15 20) a0-58) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L705 ;; [148] (set! v1-16 L705) [] -> [v1: state ] - ori v1, v1, L705 - sw v1, target-high-jump(s7);; [149] (s.w! target-high-jump v1-16) [v1: state ] -> [] - lw a0, target-jump-event-handler(s7);; [150] (set! a0-59 target-jump-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [151] (s.w! (+ v1-16 28) a0-59) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L305 ;; [152] (set! a0-60 L305) [] -> [a0: function ] - ori a0, a0, L305 - sw a0, 24(v1) ;; [153] (s.w! (+ v1-16 24) a0-60) [v1: state a0: function ] -> [] - lw a0, target-exit(s7) ;; [154] (set! a0-61 target-exit) [] -> [a0: (function none :behavior target) ] - sw a0, 8(v1) ;; [155] (s.w! (+ v1-16 8) a0-61) [v1: state a0: (function none :behavior target) ] -> [] - lui a0, L295 ;; [156] (set! a0-62 L295) [] -> [a0: function ] - ori a0, a0, L295 - sw a0, 16(v1) ;; [157] (s.w! (+ v1-16 16) a0-62) [v1: state a0: function ] -> [] - lw a0, target-jump(s7) ;; [158] (set! a0-63 target-jump) [] -> [a0: (state float float surface target) ] - lwu a0, 12(a0) ;; [159] (set! a0-64 (l.wu (+ a0-63 12))) - ;; [a0: (state float float surface target) ] -> [a0: function ] - sw a0, 12(v1) ;; [160] (s.w! (+ v1-16 12) a0-64) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [161] (set! a0-65 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [162] (s.w! (+ v1-16 20) a0-65) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L704 ;; [163] (set! v1-17 L704) [] -> [v1: state ] - ori v1, v1, L704 - sw v1, target-duck-high-jump(s7);; [164] (s.w! target-duck-high-jump v1-17) [v1: state ] -> [] - lw a0, target-standard-event-handler(s7);; [165] (set! a0-66 target-standard-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [166] (s.w! (+ v1-17 28) a0-66) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L294 ;; [167] (set! a0-67 L294) [] -> [a0: function ] - ori a0, a0, L294 - sw a0, 24(v1) ;; [168] (s.w! (+ v1-17 24) a0-67) [v1: state a0: function ] -> [] - lw a0, target-exit(s7) ;; [169] (set! a0-68 target-exit) [] -> [a0: (function none :behavior target) ] - sw a0, 8(v1) ;; [170] (s.w! (+ v1-17 8) a0-68) [v1: state a0: (function none :behavior target) ] -> [] - lui a0, L286 ;; [171] (set! a0-69 L286) [] -> [a0: function ] - ori a0, a0, L286 - sw a0, 12(v1) ;; [172] (s.w! (+ v1-17 12) a0-69) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [173] (set! a0-70 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [174] (s.w! (+ v1-17 20) a0-70) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L703 ;; [175] (set! v1-18 L703) [] -> [v1: state ] - ori v1, v1, L703 - sw v1, target-duck-high-jump-jump(s7);; [176] (s.w! target-duck-high-jump-jump v1-18) [v1: state ] -> [] - lw a0, target-jump-event-handler(s7);; [177] (set! a0-71 target-jump-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [178] (s.w! (+ v1-18 28) a0-71) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L283 ;; [179] (set! a0-72 L283) [] -> [a0: function ] - ori a0, a0, L283 - sw a0, 24(v1) ;; [180] (s.w! (+ v1-18 24) a0-72) [v1: state a0: function ] -> [] - lw a0, target-exit(s7) ;; [181] (set! a0-73 target-exit) [] -> [a0: (function none :behavior target) ] - sw a0, 8(v1) ;; [182] (s.w! (+ v1-18 8) a0-73) [v1: state a0: (function none :behavior target) ] -> [] - lw a0, target-high-jump(s7);; [183] (set! a0-74 target-high-jump) [] -> [a0: (state float float basic target) ] - lwu a0, 16(a0) ;; [184] (set! a0-75 (l.wu (+ a0-74 16))) - ;; [a0: (state float float basic target) ] -> [a0: (function none) ] - sw a0, 16(v1) ;; [185] (s.w! (+ v1-18 16) a0-75) [v1: state a0: (function none) ] -> [] - lui a0, L270 ;; [186] (set! a0-76 L270) [] -> [a0: function ] - ori a0, a0, L270 - sw a0, 12(v1) ;; [187] (s.w! (+ v1-18 12) a0-76) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [188] (set! a0-77 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [189] (s.w! (+ v1-18 20) a0-77) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L702 ;; [190] (set! v1-19 L702) [] -> [v1: state ] - ori v1, v1, L702 - sw v1, target-falling(s7) ;; [191] (s.w! target-falling v1-19) [v1: state ] -> [] - lw a0, target-jump-event-handler(s7);; [192] (set! a0-78 target-jump-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [193] (s.w! (+ v1-19 28) a0-78) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L269 ;; [194] (set! a0-79 L269) [] -> [a0: function ] - ori a0, a0, L269 - sw a0, 24(v1) ;; [195] (s.w! (+ v1-19 24) a0-79) [v1: state a0: function ] -> [] - lui a0, L266 ;; [196] (set! a0-80 L266) [] -> [a0: function ] - ori a0, a0, L266 - sw a0, 16(v1) ;; [197] (s.w! (+ v1-19 16) a0-80) [v1: state a0: function ] -> [] - lui a0, L265 ;; [198] (set! a0-81 L265) [] -> [a0: function ] - ori a0, a0, L265 - sw a0, 12(v1) ;; [199] (s.w! (+ v1-19 12) a0-81) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [200] (set! a0-82 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [201] (s.w! (+ v1-19 20) a0-82) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L701 ;; [202] (set! v1-20 L701) [] -> [v1: state ] - ori v1, v1, L701 - sw v1, target-hit-ground(s7);; [203] (s.w! target-hit-ground v1-20) [v1: state ] -> [] - lw a0, target-walk-event-handler(s7);; [204] (set! a0-83 target-walk-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [205] (s.w! (+ v1-20 28) a0-83) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L253 ;; [206] (set! a0-84 L253) [] -> [a0: function ] - ori a0, a0, L253 - sw a0, 24(v1) ;; [207] (s.w! (+ v1-20 24) a0-84) [v1: state a0: function ] -> [] - lui a0, L240 ;; [208] (set! a0-85 L240) [] -> [a0: function ] - ori a0, a0, L240 - sw a0, 16(v1) ;; [209] (s.w! (+ v1-20 16) a0-85) [v1: state a0: function ] -> [] - lui a0, L239 ;; [210] (set! a0-86 L239) [] -> [a0: function ] - ori a0, a0, L239 - sw a0, 12(v1) ;; [211] (s.w! (+ v1-20 12) a0-86) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [212] (set! a0-87 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [213] (s.w! (+ v1-20 20) a0-87) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L699 ;; [214] (set! v1-21 L699) [] -> [v1: state ] - ori v1, v1, L699 - sw v1, target-attack(s7) ;; [215] (s.w! target-attack v1-21) [v1: state ] -> [] - lw a0, target-dangerous-event-handler(s7);; [216] (set! a0-88 target-dangerous-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [217] (s.w! (+ v1-21 28) a0-88) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L238 ;; [218] (set! a0-89 L238) [] -> [a0: function ] - ori a0, a0, L238 - sw a0, 24(v1) ;; [219] (s.w! (+ v1-21 24) a0-89) [v1: state a0: function ] -> [] - lui a0, L237 ;; [220] (set! a0-90 L237) [] -> [a0: function ] - ori a0, a0, L237 - sw a0, 8(v1) ;; [221] (s.w! (+ v1-21 8) a0-90) [v1: state a0: function ] -> [] - lui a0, L231 ;; [222] (set! a0-91 L231) [] -> [a0: function ] - ori a0, a0, L231 - sw a0, 12(v1) ;; [223] (s.w! (+ v1-21 12) a0-91) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [224] (set! a0-92 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [225] (s.w! (+ v1-21 20) a0-92) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L698 ;; [226] (set! v1-22 L698) [] -> [v1: state ] - ori v1, v1, L698 - sw v1, target-running-attack(s7);; [227] (s.w! target-running-attack v1-22) [v1: state ] -> [] - lui a0, L218 ;; [228] (set! a0-93 L218) [] -> [a0: function ] - ori a0, a0, L218 - sw a0, 28(v1) ;; [229] (s.w! (+ v1-22 28) a0-93) [v1: state a0: function ] -> [] - lui a0, L211 ;; [230] (set! a0-94 L211) [] -> [a0: function ] - ori a0, a0, L211 - sw a0, 24(v1) ;; [231] (s.w! (+ v1-22 24) a0-94) [v1: state a0: function ] -> [] - lui a0, L210 ;; [232] (set! a0-95 L210) [] -> [a0: function ] - ori a0, a0, L210 - sw a0, 8(v1) ;; [233] (s.w! (+ v1-22 8) a0-95) [v1: state a0: function ] -> [] - lui a0, L196 ;; [234] (set! a0-96 L196) [] -> [a0: function ] - ori a0, a0, L196 - sw a0, 16(v1) ;; [235] (s.w! (+ v1-22 16) a0-96) [v1: state a0: function ] -> [] - lui a0, L171 ;; [236] (set! a0-97 L171) [] -> [a0: function ] - ori a0, a0, L171 - sw a0, 12(v1) ;; [237] (s.w! (+ v1-22 12) a0-97) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [238] (set! a0-98 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [239] (s.w! (+ v1-22 20) a0-98) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L697 ;; [240] (set! v1-23 L697) [] -> [v1: state ] - ori v1, v1, L697 - sw v1, target-attack-air(s7);; [241] (s.w! target-attack-air v1-23) [v1: state ] -> [] - lui a0, L168 ;; [242] (set! a0-99 L168) [] -> [a0: function ] - ori a0, a0, L168 - sw a0, 28(v1) ;; [243] (s.w! (+ v1-23 28) a0-99) [v1: state a0: function ] -> [] - lui a0, L161 ;; [244] (set! a0-100 L161) [] -> [a0: function ] - ori a0, a0, L161 - sw a0, 24(v1) ;; [245] (s.w! (+ v1-23 24) a0-100) [v1: state a0: function ] -> [] - lui a0, L160 ;; [246] (set! a0-101 L160) [] -> [a0: function ] - ori a0, a0, L160 - sw a0, 8(v1) ;; [247] (s.w! (+ v1-23 8) a0-101) [v1: state a0: function ] -> [] - lui a0, L153 ;; [248] (set! a0-102 L153) [] -> [a0: function ] - ori a0, a0, L153 - sw a0, 16(v1) ;; [249] (s.w! (+ v1-23 16) a0-102) [v1: state a0: function ] -> [] - lui a0, L143 ;; [250] (set! a0-103 L143) [] -> [a0: function ] - ori a0, a0, L143 - sw a0, 12(v1) ;; [251] (s.w! (+ v1-23 12) a0-103) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [252] (set! a0-104 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [253] (s.w! (+ v1-23 20) a0-104) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L696 ;; [254] (set! v1-24 L696) [] -> [v1: state ] - ori v1, v1, L696 - sw v1, target-attack-uppercut(s7);; [255] (s.w! target-attack-uppercut v1-24) [v1: state ] -> [] - lw a0, target-dangerous-event-handler(s7);; [256] (set! a0-105 target-dangerous-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [257] (s.w! (+ v1-24 28) a0-105) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L142 ;; [258] (set! a0-106 L142) [] -> [a0: function ] - ori a0, a0, L142 - sw a0, 24(v1) ;; [259] (s.w! (+ v1-24 24) a0-106) [v1: state a0: function ] -> [] - lw a0, target-exit(s7) ;; [260] (set! a0-107 target-exit) [] -> [a0: (function none :behavior target) ] - sw a0, 8(v1) ;; [261] (s.w! (+ v1-24 8) a0-107) [v1: state a0: (function none :behavior target) ] -> [] - lui a0, L137 ;; [262] (set! a0-108 L137) [] -> [a0: function ] - ori a0, a0, L137 - sw a0, 12(v1) ;; [263] (s.w! (+ v1-24 12) a0-108) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [264] (set! a0-109 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [265] (s.w! (+ v1-24 20) a0-109) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L695 ;; [266] (set! v1-25 L695) [] -> [v1: state ] - ori v1, v1, L695 - sw v1, target-attack-uppercut-jump(s7);; [267] (s.w! target-attack-uppercut-jump v1-25) [v1: state ] -> [] - lw a0, target-dangerous-event-handler(s7);; [268] (set! a0-110 target-dangerous-event-handler) - ;; [] -> [a0: (function process int symbol event-message-block object :behavior target) ] - sw a0, 28(v1) ;; [269] (s.w! (+ v1-25 28) a0-110) - ;; [v1: state a0: (function process int symbol event-message-block object :behavior target) ] -> [] - lui a0, L134 ;; [270] (set! a0-111 L134) [] -> [a0: function ] - ori a0, a0, L134 - sw a0, 24(v1) ;; [271] (s.w! (+ v1-25 24) a0-111) [v1: state a0: function ] -> [] - lw a0, target-exit(s7) ;; [272] (set! a0-112 target-exit) [] -> [a0: (function none :behavior target) ] - sw a0, 8(v1) ;; [273] (s.w! (+ v1-25 8) a0-112) [v1: state a0: (function none :behavior target) ] -> [] - lui a0, L119 ;; [274] (set! a0-113 L119) [] -> [a0: function ] - ori a0, a0, L119 - sw a0, 16(v1) ;; [275] (s.w! (+ v1-25 16) a0-113) [v1: state a0: function ] -> [] - lui a0, L114 ;; [276] (set! a0-114 L114) [] -> [a0: function ] - ori a0, a0, L114 - sw a0, 12(v1) ;; [277] (s.w! (+ v1-25 12) a0-114) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [278] (set! a0-115 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [279] (s.w! (+ v1-25 20) a0-115) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L694 ;; [280] (set! v1-26 L694) [] -> [v1: state ] - ori v1, v1, L694 - sw v1, target-flop(s7) ;; [281] (s.w! target-flop v1-26) [v1: state ] -> [] - lui a0, L108 ;; [282] (set! a0-116 L108) [] -> [a0: function ] - ori a0, a0, L108 - sw a0, 28(v1) ;; [283] (s.w! (+ v1-26 28) a0-116) [v1: state a0: function ] -> [] - lui a0, L103 ;; [284] (set! a0-117 L103) [] -> [a0: function ] - ori a0, a0, L103 - sw a0, 24(v1) ;; [285] (s.w! (+ v1-26 24) a0-117) [v1: state a0: function ] -> [] - lui a0, L81 ;; [286] (set! a0-118 L81) [] -> [a0: function ] - ori a0, a0, L81 - sw a0, 8(v1) ;; [287] (s.w! (+ v1-26 8) a0-118) [v1: state a0: function ] -> [] - lui a0, L82 ;; [288] (set! a0-119 L82) [] -> [a0: function ] - ori a0, a0, L82 - sw a0, 16(v1) ;; [289] (s.w! (+ v1-26 16) a0-119) [v1: state a0: function ] -> [] - lui a0, L74 ;; [290] (set! a0-120 L74) [] -> [a0: function ] - ori a0, a0, L74 - sw a0, 12(v1) ;; [291] (s.w! (+ v1-26 12) a0-120) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [292] (set! a0-121 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [293] (s.w! (+ v1-26 20) a0-121) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L693 ;; [294] (set! v1-27 L693) [] -> [v1: state ] - ori v1, v1, L693 - sw v1, target-flop-hit-ground(s7);; [295] (s.w! target-flop-hit-ground v1-27) [v1: state ] -> [] - lui a0, L71 ;; [296] (set! a0-122 L71) [] -> [a0: function ] - ori a0, a0, L71 - sw a0, 28(v1) ;; [297] (s.w! (+ v1-27 28) a0-122) [v1: state a0: function ] -> [] - lui a0, L69 ;; [298] (set! a0-123 L69) [] -> [a0: function ] - ori a0, a0, L69 - sw a0, 24(v1) ;; [299] (s.w! (+ v1-27 24) a0-123) [v1: state a0: function ] -> [] - lw a0, target-exit(s7) ;; [300] (set! a0-124 target-exit) [] -> [a0: (function none :behavior target) ] - sw a0, 8(v1) ;; [301] (s.w! (+ v1-27 8) a0-124) [v1: state a0: (function none :behavior target) ] -> [] - lui a0, L57 ;; [302] (set! a0-125 L57) [] -> [a0: function ] - ori a0, a0, L57 - sw a0, 16(v1) ;; [303] (s.w! (+ v1-27 16) a0-125) [v1: state a0: function ] -> [] - lui a0, L56 ;; [304] (set! a0-126 L56) [] -> [a0: function ] - ori a0, a0, L56 - sw a0, 12(v1) ;; [305] (s.w! (+ v1-27 12) a0-126) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [306] (set! a0-127 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [307] (s.w! (+ v1-27 20) a0-127) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L692 ;; [308] (set! v1-28 L692) [] -> [v1: state ] - ori v1, v1, L692 - sw v1, target-wheel(s7) ;; [309] (s.w! target-wheel v1-28) [v1: state ] -> [] - lui a0, L54 ;; [310] (set! a0-128 L54) [] -> [a0: function ] - ori a0, a0, L54 - sw a0, 28(v1) ;; [311] (s.w! (+ v1-28 28) a0-128) [v1: state a0: function ] -> [] - lui a0, L50 ;; [312] (set! a0-129 L50) [] -> [a0: function ] - ori a0, a0, L50 - sw a0, 24(v1) ;; [313] (s.w! (+ v1-28 24) a0-129) [v1: state a0: function ] -> [] - lui a0, L48 ;; [314] (set! a0-130 L48) [] -> [a0: function ] - ori a0, a0, L48 - sw a0, 8(v1) ;; [315] (s.w! (+ v1-28 8) a0-130) [v1: state a0: function ] -> [] - lui a0, L31 ;; [316] (set! a0-131 L31) [] -> [a0: function ] - ori a0, a0, L31 - sw a0, 12(v1) ;; [317] (s.w! (+ v1-28 12) a0-131) [v1: state a0: function ] -> [] - lw a0, target-post(s7) ;; [318] (set! a0-132 target-post) [] -> [a0: (function none :behavior target) ] - sw a0, 20(v1) ;; [319] (s.w! (+ v1-28 20) a0-132) [v1: state a0: (function none :behavior target) ] -> [] - lui v1, L691 ;; [320] (set! v0-0 L691) [] -> [v0: state ] - ori v0, v1, L691 - sw v0, target-wheel-flip(s7);; [321] (s.w! target-wheel-flip v0-0) [v0: state ] -> [] - lw v1, target-standard-event-handler(s7);; [322] (set! v1-29 target-standard-event-handler) - ;; [] -> [v1: (function process int symbol event-message-block object :behavior target) ] - sw v1, 28(v0) ;; [323] (s.w! (+ v0-0 28) v1-29) - ;; [v0: state v1: (function process int symbol event-message-block object :behavior target) ] -> [] - lui v1, L30 ;; [324] (set! v1-30 L30) [] -> [v1: function ] - ori v1, v1, L30 - sw v1, 24(v0) ;; [325] (s.w! (+ v0-0 24) v1-30) [v0: state v1: function ] -> [] - lw v1, target-exit(s7) ;; [326] (set! v1-31 target-exit) [] -> [v1: (function none :behavior target) ] - sw v1, 8(v0) ;; [327] (s.w! (+ v0-0 8) v1-31) [v0: state v1: (function none :behavior target) ] -> [] - lui v1, L23 ;; [328] (set! v1-32 L23) [] -> [v1: function ] - ori v1, v1, L23 - sw v1, 16(v0) ;; [329] (s.w! (+ v0-0 16) v1-32) [v0: state v1: function ] -> [] - lui v1, L1 ;; [330] (set! v1-33 L1) [] -> [v1: function ] - ori v1, v1, L1 - sw v1, 12(v0) ;; [331] (s.w! (+ v0-0 12) v1-33) [v0: state v1: function ] -> [] - lw v1, target-post(s7) ;; [332] (set! v1-34 target-post) [] -> [v1: (function none :behavior target) ] - sw v1, 20(v0) ;; [333] (s.w! (+ v0-0 20) v1-34) [v0: state v1: (function none :behavior target) ] -> [] + lw v1, type(s7) ;; [ 0] (set! v1-0 type) [] -> [v1: ] + lwu t9, 16(v1) ;; [ 1] (set! t9-0 (l.wu (+ v1-0 16))) + ;; [v1: ] -> [t9: (function symbol type int type) ] + daddiu a0, s7, ashelin-anim-info;; [ 2] (set! a0-0 'ashelin-anim-info) [] -> [a0: symbol ] + lw a1, structure(s7) ;; [ 3] (set! a1-0 structure) [] -> [a1: ] + ld a2, L238(fp) ;; [ 4] (set! a2-0 (l.d L238)) [] -> [a2: uint ] + jalr ra, t9 ;; [ 5] (call! a0-0 a1-0 a2-0) + ;; [a0: symbol a1: a2: uint t9: (function symbol type int type) ] -> [v0: type ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 6] (set! t9-1 method-set!) [] -> [t9: (function type int object none) ] + lw a0, ashelin-anim-info(s7);; [ 7] (set! a0-1 ashelin-anim-info) [] -> [a0: ] + addiu a1, r0, 3 ;; [ 8] (set! a1-1 3) [] -> [a1: ] + lui v1, L227 ;; [ 9] (set! a2-1 L227) [] -> [a2: ] + ori a2, v1, L227 + jalr ra, t9 ;; [ 10] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw v1, type(s7) ;; [ 11] (set! v1-1 type) [] -> [v1: ] + lwu t9, 16(v1) ;; [ 12] (set! t9-2 (l.wu (+ v1-1 16))) [v1: ] -> [t9: ] + daddiu a0, s7, ashelin-global-info;; [ 13] (set! a0-2 'ashelin-global-info) [] -> [a0: ] + lw a1, basic(s7) ;; [ 14] (set! a1-2 basic) [] -> [a1: ] + ld a2, L237(fp) ;; [ 15] (set! a2-2 (l.d L237)) [] -> [a2: ] + jalr ra, t9 ;; [ 16] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 17] (set! t9-3 method-set!) [] -> [t9: ] + lw a0, ashelin-global-info(s7);; [ 18] (set! a0-3 ashelin-global-info) [] -> [a0: ] + addiu a1, r0, 3 ;; [ 19] (set! a1-3 3) [] -> [a1: ] + lui v1, L224 ;; [ 20] (set! a2-3 L224) [] -> [a2: ] + ori a2, v1, L224 + jalr ra, t9 ;; [ 21] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lui v1, L223 ;; [ 22] (set! v1-2 L223) [] -> [v1: ] + ori v1, v1, L223 + sw v1, *ashelin-global-info*(s7);; [ 23] (s.w! *ashelin-global-info* v1-2) [v1: ] -> [] + lui v1, L221 ;; [ 24] (set! v1-3 L221) [] -> [v1: ] + ori v1, v1, L221 + sw v1, *ashelin-nav-enemy-info*(s7);; [ 25] (s.w! *ashelin-nav-enemy-info* v1-3) [v1: ] -> [] + lw v1, *fact-info-enemy-defaults*(s7);; [ 26] (set! v1-4 *fact-info-enemy-defaults*) [] -> [v1: ] + lw a0, *ashelin-nav-enemy-info*(s7);; [ 27] (set! a0-4 *ashelin-nav-enemy-info*) [] -> [a0: ] + sw v1, 0(a0) ;; [ 28] (s.w! a0-4 v1-4) [v1: a0: ] -> [] + lw t9, method-set!(s7) ;; [ 29] (set! t9-4 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 30] (set! a0-5 ashelin) [] -> [a0: ] + addiu a1, r0, 59 ;; [ 31] (set! a1-4 59) [] -> [a1: ] + lui v1, L216 ;; [ 32] (set! a2-4 L216) [] -> [a2: ] + ori a2, v1, L216 + jalr ra, t9 ;; [ 33] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 34] (set! t9-5 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 35] (set! a0-6 ashelin) [] -> [a0: ] + addiu a1, r0, 250 ;; [ 36] (set! a1-5 250) [] -> [a1: ] + lui v1, L213 ;; [ 37] (set! a2-5 L213) [] -> [a2: ] + ori a2, v1, L213 + jalr ra, t9 ;; [ 38] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 39] (set! t9-6 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 40] (set! a0-7 ashelin) [] -> [a0: ] + addiu a1, r0, 193 ;; [ 41] (set! a1-6 193) [] -> [a1: ] + lui v1, L209 ;; [ 42] (set! a2-6 L209) [] -> [a2: ] + ori a2, v1, L209 + jalr ra, t9 ;; [ 43] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 44] (set! t9-7 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 45] (set! a0-8 ashelin) [] -> [a0: ] + addiu a1, r0, 106 ;; [ 46] (set! a1-7 106) [] -> [a1: ] + lui v1, L207 ;; [ 47] (set! a2-7 L207) [] -> [a2: ] + ori a2, v1, L207 + jalr ra, t9 ;; [ 48] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 49] (set! t9-8 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 50] (set! a0-9 ashelin) [] -> [a0: ] + addiu a1, r0, 104 ;; [ 51] (set! a1-8 104) [] -> [a1: ] + lui v1, L203 ;; [ 52] (set! a2-8 L203) [] -> [a2: ] + ori a2, v1, L203 + jalr ra, t9 ;; [ 53] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 54] (set! t9-9 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 55] (set! a0-10 ashelin) [] -> [a0: ] + addiu a1, r0, 97 ;; [ 56] (set! a1-9 97) [] -> [a1: ] + lui v1, L175 ;; [ 57] (set! a2-9 L175) [] -> [a2: ] + ori a2, v1, L175 + jalr ra, t9 ;; [ 58] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 59] (set! t9-10 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 60] (set! a0-11 ashelin) [] -> [a0: ] + addiu a1, r0, 183 ;; [ 61] (set! a1-10 183) [] -> [a1: ] + lui v1, L173 ;; [ 62] (set! a2-10 L173) [] -> [a2: ] + ori a2, v1, L173 + jalr ra, t9 ;; [ 63] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 64] (set! t9-11 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 65] (set! a0-12 ashelin) [] -> [a0: ] + addiu a1, r0, 114 ;; [ 66] (set! a1-11 114) [] -> [a1: ] + lui v1, L172 ;; [ 67] (set! a2-11 L172) [] -> [a2: ] + ori a2, v1, L172 + jalr ra, t9 ;; [ 68] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 69] (set! t9-12 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 70] (set! a0-13 ashelin) [] -> [a0: ] + addiu a1, r0, 115 ;; [ 71] (set! a1-12 115) [] -> [a1: ] + lui v1, L170 ;; [ 72] (set! a2-12 L170) [] -> [a2: ] + ori a2, v1, L170 + jalr ra, t9 ;; [ 73] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 74] (set! t9-13 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 75] (set! a0-14 ashelin) [] -> [a0: ] + addiu a1, r0, 238 ;; [ 76] (set! a1-13 238) [] -> [a1: ] + lui v1, L163 ;; [ 77] (set! a2-13 L163) [] -> [a2: ] + ori a2, v1, L163 + jalr ra, t9 ;; [ 78] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 79] (set! t9-14 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 80] (set! a0-15 ashelin) [] -> [a0: ] + addiu a1, r0, 235 ;; [ 81] (set! a1-14 235) [] -> [a1: ] + lui v1, L160 ;; [ 82] (set! a2-14 L160) [] -> [a2: ] + ori a2, v1, L160 + jalr ra, t9 ;; [ 83] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 84] (set! t9-15 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 85] (set! a0-16 ashelin) [] -> [a0: ] + addiu a1, r0, 243 ;; [ 86] (set! a1-15 243) [] -> [a1: ] + lui v1, L154 ;; [ 87] (set! a2-15 L154) [] -> [a2: ] + ori a2, v1, L154 + jalr ra, t9 ;; [ 88] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 89] (set! t9-16 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 90] (set! a0-17 ashelin) [] -> [a0: ] + addiu a1, r0, 246 ;; [ 91] (set! a1-16 246) [] -> [a1: ] + lui v1, L150 ;; [ 92] (set! a2-16 L150) [] -> [a2: ] + ori a2, v1, L150 + jalr ra, t9 ;; [ 93] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 94] (set! t9-17 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [ 95] (set! a0-18 ashelin) [] -> [a0: ] + addiu a1, r0, 241 ;; [ 96] (set! a1-17 241) [] -> [a1: ] + lui v1, L139 ;; [ 97] (set! a2-17 L139) [] -> [a2: ] + ori a2, v1, L139 + jalr ra, t9 ;; [ 98] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [ 99] (set! t9-18 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [100] (set! a0-19 ashelin) [] -> [a0: ] + addiu a1, r0, 242 ;; [101] (set! a1-18 242) [] -> [a1: ] + lui v1, L135 ;; [102] (set! a2-18 L135) [] -> [a2: ] + ori a2, v1, L135 + jalr ra, t9 ;; [103] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [104] (set! t9-19 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [105] (set! a0-20 ashelin) [] -> [a0: ] + addiu a1, r0, 240 ;; [106] (set! a1-19 240) [] -> [a1: ] + lui v1, L131 ;; [107] (set! a2-19 L131) [] -> [a2: ] + ori a2, v1, L131 + jalr ra, t9 ;; [108] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [109] (set! t9-20 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [110] (set! a0-21 ashelin) [] -> [a0: ] + addiu a1, r0, 247 ;; [111] (set! a1-20 247) [] -> [a1: ] + lui v1, L122 ;; [112] (set! a2-20 L122) [] -> [a2: ] + ori a2, v1, L122 + jalr ra, t9 ;; [113] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [114] (set! t9-21 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [115] (set! a0-22 ashelin) [] -> [a0: ] + addiu a1, r0, 248 ;; [116] (set! a1-21 248) [] -> [a1: ] + lui v1, L118 ;; [117] (set! a2-21 L118) [] -> [a2: ] + ori a2, v1, L118 + jalr ra, t9 ;; [118] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [119] (set! t9-22 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [120] (set! a0-23 ashelin) [] -> [a0: ] + addiu a1, r0, 70 ;; [121] (set! a1-22 70) [] -> [a1: ] + lui v1, L113 ;; [122] (set! a2-22 L113) [] -> [a2: ] + ori a2, v1, L113 + jalr ra, t9 ;; [123] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [124] (set! t9-23 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [125] (set! a0-24 ashelin) [] -> [a0: ] + addiu a1, r0, 72 ;; [126] (set! a1-23 72) [] -> [a1: ] + lui v1, L110 ;; [127] (set! a2-23 L110) [] -> [a2: ] + ori a2, v1, L110 + jalr ra, t9 ;; [128] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [129] (set! t9-24 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [130] (set! a0-25 ashelin) [] -> [a0: ] + addiu a1, r0, 239 ;; [131] (set! a1-24 239) [] -> [a1: ] + lui v1, L107 ;; [132] (set! a2-24 L107) [] -> [a2: ] + ori a2, v1, L107 + jalr ra, t9 ;; [133] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [134] (set! t9-25 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [135] (set! a0-26 ashelin) [] -> [a0: ] + addiu a1, r0, 116 ;; [136] (set! a1-25 116) [] -> [a1: ] + lui v1, L106 ;; [137] (set! a2-25 L106) [] -> [a2: ] + ori a2, v1, L106 + jalr ra, t9 ;; [138] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [139] (set! t9-26 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [140] (set! a0-27 ashelin) [] -> [a0: ] + addiu a1, r0, 237 ;; [141] (set! a1-26 237) [] -> [a1: ] + lui v1, L99 ;; [142] (set! a2-26 L99) [] -> [a2: ] + ori a2, v1, L99 + jalr ra, t9 ;; [143] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [144] (set! t9-27 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [145] (set! a0-28 ashelin) [] -> [a0: ] + addiu a1, r0, 249 ;; [146] (set! a1-27 249) [] -> [a1: ] + lui v1, L86 ;; [147] (set! a2-27 L86) [] -> [a2: ] + ori a2, v1, L86 + jalr ra, t9 ;; [148] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [149] (set! t9-28 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [150] (set! a0-29 ashelin) [] -> [a0: ] + addiu a1, r0, 51 ;; [151] (set! a1-28 51) [] -> [a1: ] + lui v1, L71 ;; [152] (set! a2-28 L71) [] -> [a2: ] + ori a2, v1, L71 + jalr ra, t9 ;; [153] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [154] (set! t9-29 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [155] (set! a0-30 ashelin) [] -> [a0: ] + addiu a1, r0, 77 ;; [156] (set! a1-29 77) [] -> [a1: ] + lui v1, L61 ;; [157] (set! a2-29 L61) [] -> [a2: ] + ori a2, v1, L61 + jalr ra, t9 ;; [158] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [159] (set! t9-30 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [160] (set! a0-31 ashelin) [] -> [a0: ] + addiu a1, r0, 78 ;; [161] (set! a1-30 78) [] -> [a1: ] + lui v1, L49 ;; [162] (set! a2-30 L49) [] -> [a2: ] + ori a2, v1, L49 + jalr ra, t9 ;; [163] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [164] (set! t9-31 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [165] (set! a0-32 ashelin) [] -> [a0: ] + addiu a1, r0, 79 ;; [166] (set! a1-31 79) [] -> [a1: ] + lui v1, L29 ;; [167] (set! a2-31 L29) [] -> [a2: ] + ori a2, v1, L29 + jalr ra, t9 ;; [168] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [169] (set! t9-32 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [170] (set! a0-33 ashelin) [] -> [a0: ] + addiu a1, r0, 236 ;; [171] (set! a1-32 236) [] -> [a1: ] + lui v1, L25 ;; [172] (set! a2-32 L25) [] -> [a2: ] + ori a2, v1, L25 + jalr ra, t9 ;; [173] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [174] (set! t9-33 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [175] (set! a0-34 ashelin) [] -> [a0: ] + addiu a1, r0, 142 ;; [176] (set! a1-33 142) [] -> [a1: ] + lui v1, L22 ;; [177] (set! a2-33 L22) [] -> [a2: ] + ori a2, v1, L22 + jalr ra, t9 ;; [178] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [179] (set! t9-34 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [180] (set! a0-35 ashelin) [] -> [a0: ] + addiu a1, r0, 216 ;; [181] (set! a1-34 216) [] -> [a1: ] + lui v1, L18 ;; [182] (set! a2-34 L18) [] -> [a2: ] + ori a2, v1, L18 + jalr ra, t9 ;; [183] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [184] (set! t9-35 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [185] (set! a0-36 ashelin) [] -> [a0: ] + addiu a1, r0, 203 ;; [186] (set! a1-35 203) [] -> [a1: ] + lui v1, L12 ;; [187] (set! a2-35 L12) [] -> [a2: ] + ori a2, v1, L12 + jalr ra, t9 ;; [188] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [189] (set! t9-36 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [190] (set! a0-37 ashelin) [] -> [a0: ] + addiu a1, r0, 244 ;; [191] (set! a1-36 244) [] -> [a1: ] + lui v1, L10 ;; [192] (set! a2-36 L10) [] -> [a2: ] + ori a2, v1, L10 + jalr ra, t9 ;; [193] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [194] (set! t9-37 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [195] (set! a0-38 ashelin) [] -> [a0: ] + addiu a1, r0, 245 ;; [196] (set! a1-37 245) [] -> [a1: ] + lui v1, L7 ;; [197] (set! a2-37 L7) [] -> [a2: ] + ori a2, v1, L7 + jalr ra, t9 ;; [198] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [199] (set! t9-38 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [200] (set! a0-39 ashelin) [] -> [a0: ] + addiu a1, r0, 136 ;; [201] (set! a1-38 136) [] -> [a1: ] + lui v1, L5 ;; [202] (set! a2-38 L5) [] -> [a2: ] + ori a2, v1, L5 + jalr ra, t9 ;; [203] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [204] (set! t9-39 method-set!) [] -> [t9: ] + lw a0, ashelin(s7) ;; [205] (set! a0-40 ashelin) [] -> [a0: ] + addiu a1, r0, 206 ;; [206] (set! a1-39 206) [] -> [a1: ] + lui v1, L4 ;; [207] (set! a2-39 L4) [] -> [a2: ] + ori a2, v1, L4 + jalr ra, t9 ;; [208] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [209] (set! t9-40 method-set!) [] -> [t9: ] + lw a0, hud-ashelin(s7) ;; [210] (set! a0-41 hud-ashelin) [] -> [a0: ] + addiu a1, r0, 15 ;; [211] (set! a1-40 15) [] -> [a1: ] + lui v1, L3 ;; [212] (set! a2-40 L3) [] -> [a2: ] + ori a2, v1, L3 + jalr ra, t9 ;; [213] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [214] (set! t9-41 method-set!) [] -> [t9: ] + lw a0, hud-ashelin(s7) ;; [215] (set! a0-42 hud-ashelin) [] -> [a0: ] + addiu a1, r0, 16 ;; [216] (set! a1-41 16) [] -> [a1: ] + lui v1, L2 ;; [217] (set! a2-41 L2) [] -> [a2: ] + ori a2, v1, L2 + jalr ra, t9 ;; [218] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + lw t9, method-set!(s7) ;; [219] (set! t9-42 method-set!) [] -> [t9: ] + lw a0, hud-ashelin(s7) ;; [220] (set! a0-43 hud-ashelin) [] -> [a0: ] + addiu a1, r0, 17 ;; [221] (set! a1-42 17) [] -> [a1: ] + lui v1, L1 ;; [222] (set! a2-42 L1) [] -> [a2: ] + ori a2, v1, L1 + jalr ra, t9 ;; [223] (call!) [t9: ] -> [v0: ] + sll v0, ra, 0 + + ld ra, 0(sp) + ld fp, 8(sp) jr ra - daddu sp, sp, r0 + daddiu sp, sp, 16 - -;;-*-OpenGOAL-Start-*- - -(top-level-function - () - (set! target-falling-anim L670) - (set! target-falling-anim-trans L659) - (set! target-falling-trans L647) - (set! target-hit-ground-anim L589) - (defstate target-startup (target) - :event target-standard-event-handler - :code (behavior () - (suspend) - (suspend) - (go target-stance) - (none) - ) - :post target-no-move-post - ) - (defstate target-stance (target) - :event target-standard-event-handler - :enter (behavior () - (set! (-> self control unknown-surface00) *walk-mods*) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (none) - ) - :exit (behavior () - (set! (-> self control unknown-float81) 0.0) - (target-state-hook-exit) - (none) - ) - :trans (behavior () - ((-> self state-hook)) - (if (logtest? (-> self water flags) (water-flags wt10)) - (go target-wade-stance) - ) - (when (= (-> self control ground-pat material) (pat-material ice)) - (set! (-> self control unknown-float81) 0.0) - (remove-exit) - (go target-ice-stance) - ) - (when (move-legs?) - (set! (-> self control unknown-float81) 0.0) - (remove-exit) - (go target-walk) - ) - (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) - (set! (-> self control unknown-float81) 0.0) - (remove-exit) - (go target-duck-stance) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons circle) - ) - (can-feet?) - ) - (go target-attack) - ) - (if (can-hands? #t) - (go target-running-attack) - ) - (slide-down-test) - (fall-test) - (none) - ) - :code (behavior () - (let ((s5-0 22) - (gp-0 (new 'stack 'ground-tween-info)) - ) - (let ((v1-3 (ja-group))) - (cond - ((or (= v1-3 (-> self draw art-group data 89)) (= v1-3 (-> self draw art-group data 90))) - (set! s5-0 45) - ) - ((ja-group? (-> self draw art-group data 71)) - (ja-no-eval :group! (-> self draw art-group data 72) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - ((ja-group? (-> self draw art-group data 51)) - (cond - ((rand-vu-percent? (the-as float 0.3)) - (ja-no-eval :group! (-> self draw art-group data 53) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - (else - (ja-no-eval :group! (-> self draw art-group data 52) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - ) - ) - ((ja-group? (-> self draw art-group data 78)) - (ja-no-eval :group! (-> self draw art-group data 79) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - ((ja-group? (-> self draw art-group data 84)) - (ja-no-eval :group! (-> self draw art-group data 85) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - (set! s5-0 0) - ) - ((ja-group? (-> self draw art-group data 59)) - (set! (-> self control unknown-float81) (-> self control unknown-float80)) - (set! (-> self control unknown-surface00) *walk-no-turn-mods*) - (ja-no-eval :group! (if (rand-vu-percent? (the-as float 0.3)) - (-> self draw art-group data 61) - (-> self draw art-group data 60) - ) - :num! (seek!) - :frame-num 0.0 - ) - (until (ja-done? 0) - (seek! (-> self control unknown-float81) (the-as float 0.0) (-> *display* seconds-per-frame)) - (suspend) - (ja :num! (seek!)) - ) - (set! (-> self control unknown-surface00) *walk-mods*) - (set! (-> self control unknown-float81) 0.0) - (rot->dir-targ! (-> self control)) - ) - ((let ((v1-206 (ja-group))) - (or (= v1-206 (-> self draw art-group data 31)) (= v1-206 (-> self draw art-group data 32))) - ) - (ja-channel-push! 1 (seconds 0.04)) - (ja-no-eval :group! (-> self draw art-group data 30) :num! (seek! 0.0 1.2) :frame-num max) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! 0.0 1.2)) - ) - (set! s5-0 12) - ) - ((or (and (ja-group? (-> self draw art-group data 23)) - (begin (set! s5-0 45) (< 0.5 (-> self skel root-channel 6 frame-interp))) - ) - (let ((v1-243 (ja-group))) - (or (= v1-243 (-> self draw art-group data 28)) - (= v1-243 (-> self draw art-group data 29)) - (= v1-243 (-> self draw art-group data 54)) - (= v1-243 (-> self draw art-group data 55)) - ) - ) - ) - (let ((f30-1 (the-as float (cond - ((ja-group? (-> self draw art-group data 23)) - (let ((f0-57 (+ 50.0 (* 0.8333333 (+ -25.0 (ja-aframe-num 0)))))) - (- f0-57 (* (the float (the int (/ f0-57 50.0))) 50.0)) - ) - ) - (else - 0.0 - ) - ) - ) - ) - ) - (set! s5-0 45) - (ja-channel-push! 3 (the-as time-frame s5-0)) - (ground-tween-initialize - gp-0 - (the-as uint 0) - (the-as uint (-> self draw art-group data 4)) - (the-as uint (-> self draw art-group data 13)) - (the-as uint (-> self draw art-group data 16)) - (the-as uint (-> self draw art-group data 7)) - (the-as uint (-> self draw art-group data 10)) - ) - (ja :num-func num-func-identity :frame-num (ja-aframe f30-1 0)) - ) - (ja :chan 1 :num! (chan 0)) - (ja :chan 2 :num! (chan 0)) - (dotimes (s4-2 3) - (until (ja-done? 0) - (ground-tween-update gp-0 (-> self control unknown-float61) (-> self control unknown-float62)) - (suspend) - (ja :num! (seek!)) - (ja :chan 1 :num! (chan 0)) - (ja :chan 2 :num! (chan 0)) - ) - (ja :num-func num-func-identity :frame-num 0.0) - ) - (ground-tween-initialize - gp-0 - (the-as uint 0) - (the-as uint (-> self draw art-group data 3)) - (the-as uint (-> self draw art-group data 12)) - (the-as uint (-> self draw art-group data 15)) - (the-as uint (-> self draw art-group data 6)) - (the-as uint (-> self draw art-group data 9)) - ) - (until (ja-done? 0) - (ground-tween-update gp-0 (-> self control unknown-float61) (-> self control unknown-float62)) - (suspend) - (ja :num! (seek!)) - (ja :chan 1 :num! (chan 0)) - (ja :chan 2 :num! (chan 0)) - ) - ) - ((and (ja-group? (-> self draw art-group data 23)) (>= (-> self control unknown-float01) 5734.4)) - (set! s5-0 45) - ) - ) - ) - (if (not (and (ja-group? (-> self draw art-group data 5)) (= (ja-group-size) 3))) - (ja-channel-push! 3 (the-as time-frame s5-0)) - ) - (ground-tween-initialize - gp-0 - (the-as uint 0) - (the-as uint (-> self draw art-group data 5)) - (the-as uint (-> self draw art-group data 14)) - (the-as uint (-> self draw art-group data 17)) - (the-as uint (-> self draw art-group data 8)) - (the-as uint (-> self draw art-group data 11)) - ) - (loop - (ground-tween-update gp-0 (-> self control unknown-float61) (-> self control unknown-float62)) - (suspend) - (ja :num! (loop!)) - (ja :chan 1 :num! (chan 0)) - (ja :chan 2 :num! (chan 0)) - (if (can-play-stance-amibent?) - (go target-stance-ambient) - ) - ) - ) - (none) - ) - :post target-post - ) - (defstate target-walk (target) - :event target-walk-event-handler - :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-surface00) *walk-mods*) - (none) - ) - :exit (behavior () - (target-effect-exit) - (target-state-hook-exit) - (none) - ) - :trans (behavior () - ((-> self state-hook)) - (when (= (-> self control ground-pat material) (pat-material ice)) - (target-effect-exit) - (remove-exit) - (go target-ice-walk) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons l1 r1) - ) - (and (>= (- (-> *display* base-frame-counter) (-> *TARGET-bank* wheel-timeout)) (-> self control unknown-dword30)) - (and (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) (can-wheel?)) - ) - ) - (go target-wheel) - ) - (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) - (target-effect-exit) - (remove-exit) - (go target-duck-walk) - ) - (when (not (move-legs?)) - (target-effect-exit) - (remove-exit) - (go target-stance) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons circle) - ) - (can-feet?) - ) - (go target-attack) - ) - (if (can-hands? #t) - (go target-running-attack) - ) - (when (and (turn-around?) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.3))) - (set! (-> self control transv quad) - (-> self control unknown-vector-array10 (-> self control unknown-int10) quad) - ) - (set! (-> self control transv w) 1.0) - (go target-turn-around) - ) - (slide-down-test) - (fall-test) - (none) - ) - :code (behavior () - (let ((f28-0 0.0) - (f30-0 (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -16384.0 (-> self control unknown-float01)))))) - (gp-0 #f) - ) - (cond - ((ja-group? (-> self draw art-group data 33)) - (set! f30-0 1.0) - (ja-channel-push! 7 (seconds 0.05)) - ) - ((ja-group? (-> self draw art-group data 69)) - (ja-channel-push! 7 (seconds 0.075)) - (set! f30-0 1.0) - ) - ((ja-group? (-> self draw art-group data 51)) - (let ((f30-1 (fmax 0.8 (fmin 1.0 (* 0.000048828126 (-> self control unknown-float01)))))) - (cond - ((and (rand-vu-percent? (the-as float 0.3)) (< 20480.0 (-> self control unknown-float01))) - (ja-no-eval :group! (-> self draw art-group data 53) - :num! (seek! (ja-aframe (the-as float 29.0) 0) f30-1) - :frame-num 0.0 - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 29.0) 0) f30-1)) - ) - (ja-no-eval :group! (-> self draw art-group data 55) :num! (seek! max f30-1) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! max f30-1)) - ) - ) - (else - (ja-no-eval :group! (-> self draw art-group data 52) - :num! (seek! (ja-aframe (the-as float 29.0) 0) f30-1) - :frame-num 0.0 - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 29.0) 0) f30-1)) - ) - (ja-no-eval :group! (-> self draw art-group data 54) :num! (seek! max f30-1) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! max f30-1)) - ) - ) - ) - ) - (ja-channel-push! 7 (seconds 0.05)) - (set! f30-0 1.0) - (set! f28-0 30.0) - ) - (else - (let ((v1-108 (ja-group))) - (cond - ((or (= v1-108 (-> self draw art-group data 59)) (= v1-108 (-> self draw art-group data 60))) - (set! f30-0 1.0) - (set! f28-0 30.0) - (ja-channel-push! 7 (seconds 0.15)) - ) - ((let ((v1-116 (ja-group))) - (or (= v1-116 (-> self draw art-group data 84)) (= v1-116 (-> self draw art-group data 85))) - ) - (set! f30-0 1.0) - (set! f28-0 26.0) - (ja-channel-push! 7 (seconds 0.1)) - ) - ((and (ja-group? (-> self draw art-group data 23)) (= (-> self skel root-channel 0) (-> self skel channel))) - (set! f28-0 (ja-aframe-num 0)) - ) - ((ja-group? (-> self draw art-group data 102)) - (set! f28-0 (ja-aframe-num 0)) - (ja-channel-push! 7 (seconds 0.1)) - ) - ((ja-group? (-> self draw art-group data 89)) - (set! f28-0 (ja-aframe-num 0)) - (ja-channel-push! 7 (seconds 0.05)) - ) - ((let ((v1-146 (ja-group))) - (and (or (or (= v1-146 (-> self draw art-group data 38)) - (= v1-146 (-> self draw art-group data 71)) - (= v1-146 (-> self draw art-group data 58)) - (= v1-146 (-> self draw art-group data 62)) - (= v1-146 (-> self draw art-group data 65)) - (= v1-146 (-> self draw art-group data 68)) - ) - (and (ja-group? (-> self draw art-group data 34)) (< 30.0 (ja-aframe-num 0))) - ) - (< 12288.0 (-> self control unknown-float01)) - ) - ) - (let ((s5-4 (ja-group)) - (f30-2 (-> self control ground-impact-vel)) - ) - (case (ja-group) - (((-> self draw art-group data 71) (-> self draw art-group data 58)) - (ja-channel-push! 1 (seconds 0.05)) - ) - (else - (ja-channel-set! 1) - ) - ) - (cond - ((< (the-as float (if (= s5-4 (-> self draw art-group data 34)) - 77824.0 - 102400.0 - ) - ) - f30-2 - ) - (ja-no-eval :group! (-> self draw art-group data 28) - :num! (seek! (ja-aframe (the-as float 3.0) 0) 1.00001) - :frame-num 0.0 - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 3.0) 0) 1.00001)) - ) - ) - ((< (the-as float (if (= s5-4 (-> self draw art-group data 34)) - 61440.0 - 102400.0 - ) - ) - f30-2 - ) - (ja-no-eval :group! (-> self draw art-group data 28) - :num! (seek! (ja-aframe (the-as float 3.0) 0) 1.00001) - :frame-num (ja-aframe (the-as float -1.0) 0) - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 3.0) 0) 1.00001)) - ) - ) - (else - (ja-no-eval :group! (-> self draw art-group data 29) - :num! (seek! (ja-aframe (the-as float 4.0) 0) 1.00001) - :frame-num 0.0 - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 4.0) 0) 1.00001)) - ) - ) - ) - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! max (/ (* (fmax 20480.0 (-> self control unknown-float01)) (-> *display* seconds-per-frame)) - (/ (-> *TARGET-bank* run-up-cycle-dist) (-> *TARGET-bank* run-cycle-length)) - ) - ) - ) - ) - (set! f28-0 30.0) - (set! f30-0 1.0) - (ja-channel-set! 7) - ) - ((ja-group? (-> self draw art-group data 34)) - (ja-channel-push! 7 (seconds 0.05)) - (set! gp-0 #t) - ) - ((ja-group? (-> self draw art-group data 78)) - (ja-channel-push! 7 (seconds 0.15)) - ) - (else - (ja-channel-push! 7 (seconds 0.05)) - ) - ) - ) - ) - ) - (set! (-> self skel root-channel 3 command) 'push) - (set! (-> self skel root-channel 6 command) 'stack) - (ja :group! (-> self draw art-group data 23)) - (let ((f28-1 (ja-aframe f28-0 0))) - (ja :group! (-> self draw art-group data 23) - :num! (identity f28-1) - :frame-interp 0.0 - :dist (-> *TARGET-bank* walk-cycle-dist) - ) - (ja :chan 1 - :group! (-> self draw art-group data 25) - :num! (identity f28-1) - :frame-interp 0.0 - :dist (-> *TARGET-bank* walk-down-cycle-dist) - ) - (ja :chan 2 - :group! (-> self draw art-group data 27) - :num! (identity f28-1) - :frame-interp 0.0 - :dist (-> *TARGET-bank* walk-side-cycle-dist) - ) - (ja :chan 4 - :group! (-> self draw art-group data 20) - :num! (identity f28-1) - :frame-interp 0.0 - :dist (-> *TARGET-bank* run-down-cycle-dist) - ) - (ja :chan 5 - :group! (-> self draw art-group data 22) - :num! (identity f28-1) - :frame-interp 0.0 - :dist (-> *TARGET-bank* run-side-cycle-dist) - ) - (ja :chan 3 - :group! (-> self draw art-group data 18) - :num! (identity f28-1) - :frame-interp 0.0 - :dist (-> *TARGET-bank* run-cycle-dist) - ) - ) - (let ((f28-2 0.0) - (f26-1 0.0) - ) - (loop - (let ((f22-0 (fmax -1.0 (fmin 1.0 (* 2.0 (-> self control unknown-float61))))) - (f24-0 (fmax -1.0 (fmin 1.0 (* 1.6 (-> self control unknown-float62))))) - ) - (set! f30-0 (seek - f30-0 - (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -16384.0 (-> self control unknown-float01))))) - (* 2.0 (-> *display* seconds-per-frame)) - ) - ) - (let ((v1-317 (-> self skel effect))) - (set! (-> v1-317 channel-offset) (if (< 0.5 f30-0) - 3 - 0 - ) - ) - ) - 0 - (let ((f0-64 (fabs (- f22-0 f28-2)))) - (set! f28-2 (seek f28-2 f22-0 (fmax 0.05 (fmin 0.2 (* 0.25 f0-64))))) - ) - (let ((f0-69 (fabs (- f24-0 f26-1)))) - (set! f26-1 (seek f26-1 f24-0 (fmax 0.05 (fmin 0.2 (* 0.25 f0-69))))) - ) - ) - (cond - ((>= f28-2 0.0) - (ja :chan 1 - :group! (-> self draw art-group data 24) - :frame-interp (fabs f28-2) - :dist (-> *TARGET-bank* walk-up-cycle-dist) - ) - (ja :chan 4 - :group! (-> self draw art-group data 19) - :frame-interp (fabs f28-2) - :dist (-> *TARGET-bank* run-up-cycle-dist) - ) - ) - (else - (ja :chan 1 - :group! (-> self draw art-group data 25) - :frame-interp (fabs f28-2) - :dist (-> *TARGET-bank* walk-down-cycle-dist) - ) - (ja :chan 4 - :group! (-> self draw art-group data 20) - :frame-interp (fabs f28-2) - :dist (-> *TARGET-bank* run-down-cycle-dist) - ) - ) - ) - (cond - ((>= f26-1 0.0) - (ja :chan 2 - :group! (-> self draw art-group data 26) - :frame-interp (fabs f26-1) - :dist (-> *TARGET-bank* walk-side-cycle-dist) - ) - (ja :chan 5 - :group! (-> self draw art-group data 21) - :frame-interp (fabs f26-1) - :dist (-> *TARGET-bank* run-side-cycle-dist) - ) - ) - (else - (ja :chan 2 - :group! (-> self draw art-group data 27) - :frame-interp (fabs f26-1) - :dist (-> *TARGET-bank* walk-side-cycle-dist) - ) - (ja :chan 5 - :group! (-> self draw art-group data 22) - :frame-interp (fabs f26-1) - :dist (-> *TARGET-bank* run-side-cycle-dist) - ) - ) - ) - (set! (-> self skel root-channel 6 frame-interp) f30-0) - (let* ((f1-19 (current-cycle-distance (-> self skel))) - (f0-92 (/ (-> self control unknown-float01) (* 60.0 (/ f1-19 (-> *TARGET-bank* run-cycle-length))))) - ) - (ja :num! (loop! f0-92)) - ) - (ja :chan 1 :num! (chan 0)) - (ja :chan 2 :num! (chan 0)) - (ja :chan 3 :num! (chan 0)) - (ja :chan 4 :num! (chan 0)) - (ja :chan 5 :num! (chan 0)) - (if (and gp-0 (!= (-> self skel root-channel 0) (-> self skel channel))) - (ja-blend-eval) - ) - (suspend) - ) - ) - ) - (none) - ) - :post target-post - ) - (defstate target-turn-around (target) - :event target-standard-event-handler - :enter (behavior () - (vector-turn-to (-> self control transv)) - (set! (-> self control unknown-surface00) *turn-around-mods*) - (set! (-> self control unknown-float81) 1.0) - (none) - ) - :exit (behavior () - (target-state-hook-exit) - (set-forward-vel (the-as float 0.0)) - (set! (-> self control unknown-float01) 0.0) - (set-quaternion! (-> self control) (-> self control dir-targ)) - (set! (-> self control unknown-float81) 0.0) - (none) - ) - :trans (behavior () - ((-> self state-hook)) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) - (go target-attack) - ) - (if (can-hands? #t) - (go target-running-attack) - ) - (if (and (zero? (logand (-> self control status) (cshape-moving-flags onsurf))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.08)) - ) - (go target-falling #f) - ) - (slide-down-test) - (none) - ) - :code (behavior () - (ja-channel-push! 1 (seconds 0.04)) - (ja :group! (-> self draw art-group data 33) :num! min) - (quaternion-rotate-y! (-> self control dir-targ) (-> self control dir-targ) (the-as float 32768.0)) - (compute-alignment! (-> self align)) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! max 2.0)) - (compute-alignment! (-> self align)) - (align! (-> self align) (align-opts adjust-quat) (the-as float 1.0) (the-as float 1.0) (the-as float 1.0)) - ) - (remove-exit) - (set! (-> self control unknown-float81) 0.0) - (set-forward-vel (the-as float 40960.0)) - (set! (-> self control unknown-float01) 40960.0) - (target-state-hook-exit) - (go target-walk) - (none) - ) - :post target-no-stick-post - ) - (defstate target-slide-down (target) - :event target-walk-event-handler - :enter (behavior () - (set! (-> self control unknown-surface00) *jump-mods*) - (none) - ) - :exit (behavior () - (set! (-> self control unknown-dword35) (-> *display* base-frame-counter)) - (none) - ) - :trans (behavior () - (when (or (logtest? (-> self control status) (cshape-moving-flags onsurf)) - (if (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) - #t - ) - ) - (logior! (-> self control status) (cshape-moving-flags onsurf)) - (go target-duck-stance) - ) - (none) - ) - :code (behavior () - (if (not (ja-group? (-> self draw art-group data 31))) - (ja-channel-push! 1 (seconds 0.1)) - ) - (loop - (ja-no-eval :group! (-> self draw art-group data 31) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - (none) - ) - :post target-post - ) - (set! init-var-jump L418) - (set! mod-var-jump L406) - (defstate target-duck-stance (target) - :event target-standard-event-handler - :enter (behavior () - (set! (-> self control unknown-float81) 1.0) - (set! (-> self control unknown-surface00) *duck-mods*) - (target-collide-set! 'duck (the-as float 1.0)) - (none) - ) - :exit (behavior () - (if (not (or (= (-> self next-state name) 'target-duck-walk) - (= (-> self next-state name) 'target-duck-stance) - (= (-> self next-state name) 'target-walk) - (= (-> self next-state name) 'target-stance) - (= (-> self next-state name) 'target-stance-look-around) - ) - ) - (target-state-hook-exit) - ) - (target-exit) - (target-collide-set! 'normal (the-as float 0.0)) - (none) - ) - :trans (behavior () - ((-> self state-hook)) - (if (and (or (zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons l1 r1)) - ) - (logtest? (-> self state-flags) (state-flags prevent-duck)) - ) - (let ((v1-13 (ja-group))) - (and (not (or (= v1-13 (-> self draw art-group data 70)) (= v1-13 (-> self draw art-group data 69)))) - (can-exit-duck?) - ) - ) - ) - (go target-stance) - ) - (if (move-legs?) - (go target-duck-walk) - ) - (when (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - (go target-high-jump (-> *TARGET-bank* duck-jump-height-min) (-> *TARGET-bank* duck-jump-height-max) 'duck) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - ) - (if (and (can-hands? #t) (can-exit-duck?)) - (go - target-attack-uppercut - (-> *TARGET-bank* attack-jump-height-min) - (-> *TARGET-bank* attack-jump-height-max) - ) - ) - (fall-test) - (slide-down-test) - (none) - ) - :code (behavior () - (cond - ((ja-group? (-> self draw art-group data 69)) - (ja-no-eval :group! (-> self draw art-group data 70) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - ((and (ja-group? (-> self draw art-group data 31)) (= (-> self skel root-channel 0) (-> self skel channel))) - ) - ((ja-group? (-> self draw art-group data 32)) - (ja-channel-push! 1 (seconds 0.1)) - ) - (else - (ja-channel-push! 1 (seconds 0.04)) - (ja-no-eval :group! (-> self draw art-group data 30) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - ) - (loop - (ja-no-eval :group! (-> self draw art-group data 31) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - (none) - ) - :post target-post - ) - (defstate target-duck-walk (target) - :event target-standard-event-handler - :enter (behavior () - (set! (-> self control unknown-float81) 1.0) - (target-collide-set! 'duck (the-as float 1.0)) - (if (not (ja-group? (-> self draw art-group data 69))) - (set! (-> self control unknown-surface00) *duck-mods*) - ) - (none) - ) - :exit (-> target-duck-stance exit) - :trans (behavior () - ((-> self state-hook)) - (if (and (or (zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons l1 r1)) - ) - (logtest? (-> self state-flags) (state-flags prevent-duck)) - (and (logtest? (-> self water flags) (water-flags wt10)) - (>= (- (- (-> self control trans y) (- (-> self water base-height) (-> self water wade-height)))) 2457.6) - ) - ) - (can-exit-duck?) - ) - (go target-walk) - ) - (if (not (move-legs?)) - (go target-duck-stance) - ) - (when (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - (go target-high-jump (-> *TARGET-bank* duck-jump-height-min) (-> *TARGET-bank* duck-jump-height-max) 'duck) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - ) - (if (and (can-hands? #t) (can-exit-duck?)) - (go - target-attack-uppercut - (-> *TARGET-bank* attack-jump-height-min) - (-> *TARGET-bank* attack-jump-height-max) - ) - ) - (fall-test) - (slide-down-test) - (none) - ) - :code (behavior () - (cond - ((and (ja-group? (-> self draw art-group data 32)) (= (-> self skel root-channel 0) (-> self skel channel))) - ) - ((ja-group? (-> self draw art-group data 31)) - (ja-channel-push! 1 (seconds 0.45)) - (ja :group! (-> self draw art-group data 32) :num! min) - ) - (else - (ja-channel-push! 1 (seconds 0.1)) - (ja :group! (-> self draw art-group data 32) :num! min) - ) - ) - (loop - (if (= (-> self skel root-channel 0) (-> self skel channel)) - (set! (-> self control unknown-surface00) *duck-mods*) - ) - (ja :num! (loop! (fmin 1.0 (/ (-> self control unknown-float01) - (* 60.0 (/ (-> *TARGET-bank* duck-walk-cycle-dist) (-> *TARGET-bank* run-cycle-length))) - ) - ) - ) - ) - (suspend) - ) - (none) - ) - :post target-post - ) - (defstate target-jump (target) - :event target-jump-event-handler - :enter (behavior ((arg0 float) (arg1 float) (arg2 surface)) - (when (= (-> self control unknown-symbol40) 'launch) - (level-hint-spawn - (game-text-id sidekick-launcher1) - "sksp009d" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - (level-hint-spawn - (game-text-id sidekick-launcher2) - "sksp009e" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - (case (-> (level-get-target-inside *level*) name) - (('citadel) - (level-hint-spawn - (game-text-id citadel-launcher2) - "sksp0393" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - (level-hint-spawn - (game-text-id citadel-launcher) - "sksp0388" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - ) - ) - enter-state - (let ((a0-9 (-> self control unknown-dword60)) - (a1-5 (-> self control unknown-dword61)) - (a2-5 (-> self control unknown-vector102)) - ) - (set! (-> a2-5 quad) (-> (the-as vector (-> self control unknown-dword62)) quad)) - (go target-launch (the-as float a0-9) (the-as symbol a1-5) a2-5 (-> self control unknown-dword63)) - ) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (sound-play "jump" :vol 70) - (init-var-jump arg0 arg1 (the-as vector #t) (the-as vector #t) (-> self control transv)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (set! arg2 (cond - (arg2 - (empty) - arg2 - ) - (else - *jump-mods* - ) - ) - ) - (set! (-> self control unknown-surface00) arg2) - (set! (-> self control unknown-float123) - (fmax 0.0 (fmin 1.0 (* 0.00004359654 (+ -11468.8 (-> self control unknown-float01))))) - ) - (set! (-> self control unknown-float122) - (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control unknown-float01))))) - ) - (none) - ) - :exit target-exit - :trans (behavior () - (set! (-> self control unknown-float123) - (fmax - (-> self control unknown-float123) - (* 0.003921569 (the float (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) abutton 6))) - ) - ) - (target-falling-trans #f (the-as time-frame (if (ja-group? (-> self draw art-group data 38)) - 15 - -1 - ) - ) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) x) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 12288.0) - (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (zero? (logand (-> self water flags) (water-flags wt09))) - (zero? (logand (-> self state-flags) (state-flags prevent-jump))) - ) - ) - (go target-double-jump (-> *TARGET-bank* double-jump-height-min) (-> *TARGET-bank* double-jump-height-max)) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 26624.0) - (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as time-frame (-> *TARGET-bank* stuck-timeout)) - ) - (zero? (logand (-> self state-flags) (state-flags prevent-attack))) - (zero? (logand (-> self control unknown-surface01 flags) (surface-flags prevent-attacks-during-launch-jump surf08)) - ) - ) - ) - (go - target-flop - (the-as float 65502.96) - (the-as float -163840.0) - (the-as float (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - 0.0 - 68812.8 - ) - ) - ) - ) - (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) - (slide-down-test) - (seek! - (-> self control unknown-float122) - (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control unknown-float01))))) - (-> *display* seconds-per-frame) - ) - (none) - ) - :code (behavior ((arg0 float) (arg1 float) (arg2 surface)) - (ja-channel-push! 2 (seconds 0.05)) - (ja :group! (-> self draw art-group data 34) :num! min) - (ja :chan 1 - :group! (-> self draw art-group data 40) - :num! (chan 0) - :frame-interp (-> self control unknown-float122) - ) - (suspend) - (ja :group! (-> self draw art-group data 34) :num! (+!)) - (ja :chan 1 - :group! (-> self draw art-group data 40) - :num! (chan 0) - :frame-interp (-> self control unknown-float122) - ) - (suspend) - (until (ja-done? 0) - (let ((f30-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (f0-8 (- 20.0 (ja-aframe-num 0))) - (gp-1 (-> self skel root-channel 0)) - ) - (set! (-> gp-1 param 0) (the float (+ (-> gp-1 frame-group data 0 length) -1))) - (let ((v1-45 (and (< 0.0 f30-0) (< 0.0 f0-8)))) - (set! (-> gp-1 param 1) - (the-as - float - (if v1-45 - (fmin (fmin 3.0 f0-8) (/ (* 5.0 f0-8) (the float (time-to-apex f30-0 (the-as float -245760.0))))) - 1.0 - ) - ) - ) - ) - (joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!) - ) - (ja :chan 1 :num! (chan 0) :frame-interp (-> self control unknown-float122)) - (suspend) - ) - (target-falling-anim -1 (seconds 0.2)) - (none) - ) - :post target-post - ) - (defstate target-jump-forward (target) - :event target-jump-event-handler - :enter (behavior ((arg0 float) (arg1 float)) - ((-> target-jump enter) arg0 arg1 (the-as surface #f)) - (set! (-> self control unknown-surface00) *forward-jump-mods*) - (none) - ) - :exit target-exit - :trans (-> target-jump trans) - :code (behavior ((arg0 float) (arg1 float)) - (ja-channel-set! 1) - (ja-no-eval :group! (-> self draw art-group data 34) - :num! (seek!) - :frame-num (ja-aframe (the-as float 3.0) 0) - ) - (until (ja-done? 0) - (set! (-> self control unknown-dword70) 0) - (suspend) - (ja :num! (seek!)) - ) - (ja-no-eval :group! (-> self draw art-group data 38) :num! (loop!) :frame-num 0.0) - (loop - (suspend) - (ja :group! (-> self draw art-group data 38) :num! (loop!)) - ) - (none) - ) - :post target-post - ) - (defstate target-double-jump (target) - :event target-jump-event-handler - :enter (behavior ((arg0 float) (arg1 float)) - (when (= (-> self control unknown-symbol40) 'launch) - enter-state - (let ((a0-3 (-> self control unknown-dword60)) - (a1-1 (-> self control unknown-dword61)) - (a2-0 (-> self control unknown-vector102)) - ) - (set! (-> a2-0 quad) (-> (the-as vector (-> self control unknown-dword62)) quad)) - (go target-launch (the-as float a0-3) (the-as symbol a1-1) a2-0 (-> self control unknown-dword63)) - ) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (init-var-jump arg0 arg1 (the-as vector #t) (the-as vector #t) (-> self control transv)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (set! (-> self control unknown-surface00) *double-jump-mods*) - (none) - ) - :exit target-exit - :trans (behavior () - (target-falling-trans #f (the-as time-frame (if (ja-group? (-> self draw art-group data 38)) - 15 - -1 - ) - ) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 22118.4) - (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as time-frame (-> *TARGET-bank* stuck-timeout)) - ) - (zero? (logand (-> self state-flags) (state-flags prevent-attack))) - (zero? (logand (-> self control unknown-surface01 flags) (surface-flags prevent-attacks-during-launch-jump surf08)) - ) - ) - ) - (go - target-flop - (the-as float 33775.48) - (the-as float -122880.0) - (the-as float (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - 0.0 - 68812.8 - ) - ) - ) - ) - (if (!= (-> self state-time) (-> *display* base-frame-counter)) - (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) - ) - (seek! - (-> self control unknown-float122) - (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control unknown-float01))))) - (-> *display* seconds-per-frame) - ) - (none) - ) - :code (behavior ((arg0 float) (arg1 float)) - (ja-channel-push! 2 (seconds 0.05)) - (dummy-10 (-> self skel effect) 'jump-double (the-as float -1.0) -1) - (ja-no-eval :group! (-> self draw art-group data 34) - :num! (seek!) - :frame-num (ja-aframe (the-as float 5.0) 0) - ) - (ja :chan 1 :group! (-> self draw art-group data 40) :num! (chan 0)) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - (ja :chan 1 :num! (chan 0) :frame-interp (-> self control unknown-float122)) - ) - (target-falling-anim -1 (seconds 0.2)) - (none) - ) - :post target-post - ) - (defstate target-high-jump (target) - :event target-jump-event-handler - :enter (behavior ((arg0 float) (arg1 float) (arg2 basic)) - (when (and (= (-> self control unknown-symbol40) 'launch) (!= arg2 'launch)) - enter-state - (let ((a0-3 (-> self control unknown-dword60)) - (a1-1 (-> self control unknown-dword61)) - (a2-1 (-> self control unknown-vector102)) - ) - (set! (-> a2-1 quad) (-> (the-as vector (-> self control unknown-dword62)) quad)) - (go target-launch (the-as float a0-3) (the-as symbol a1-1) a2-1 (-> self control unknown-dword63)) - ) - ) - (set! (-> self control unknown-uint31) (the-as uint arg2)) - (if (or (= arg2 'duck) (= arg2 'launch)) - (go target-duck-high-jump arg0 arg1 (the-as symbol arg2)) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (sound-play "jump" :pitch 0.3) - (init-var-jump arg0 arg1 (the-as vector #t) (the-as vector #t) (-> self control transv)) - (set! (-> self control unknown-surface00) (cond - ((= arg2 'flip) - *flip-jump-mods* - ) - ((= arg2 'flop-forward) - *forward-high-jump-mods* - ) - (else - *high-jump-mods* - ) - ) - ) - (set! (-> self control unknown-float122) - (fmax 0.0 (fmin 0.5 (* 0.00008138021 (+ -409.6 (-> self control unknown-float01))))) - ) - (none) - ) - :exit target-exit - :trans (behavior () - (target-falling-trans #f (the-as time-frame (if (ja-group? (-> self draw art-group data 38)) - 15 - -1 - ) - ) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons square) - ) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 73728.0) - (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as time-frame (-> *TARGET-bank* stuck-timeout)) - ) - (zero? (logand (-> self state-flags) (state-flags prevent-attack))) - (zero? (logand (-> self control unknown-surface01 flags) (surface-flags prevent-attacks-during-launch-jump surf08)) - ) - ) - ) - (go - target-flop - (the-as float 33775.48) - (the-as float -122880.0) - (the-as float (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - 0.0 - 68812.8 - ) - ) - ) - ) - (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) - (seek! - (-> self control unknown-float122) - (fmax 0.0 (fmin 1.0 (* 0.00012207031 (+ -2048.0 (-> self control unknown-float01))))) - (-> *display* seconds-per-frame) - ) - (none) - ) - :code (-> target-jump code) - :post target-post - ) - (defstate target-duck-high-jump (target) - :event target-standard-event-handler - :enter (behavior ((arg0 float) (arg1 float) (arg2 symbol)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (set! (-> self control unknown-surface00) *turn-around-mods*) - (none) - ) - :exit target-exit - :code (behavior ((arg0 float) (arg1 float) (arg2 symbol)) - (if (not (and (ja-group? (-> self draw art-group data 31)) (= (-> self skel root-channel 0) (-> self skel channel))) - ) - (ja-channel-push! 1 (seconds 0.04)) - ) - (case arg2 - (('launch) - (ja-no-eval :group! (-> self draw art-group data 42) - :num! (seek! (ja-aframe (the-as float 16.0) 0)) - :frame-num 0.0 - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 16.0) 0))) - ) - ) - (else - (ja-no-eval :group! (-> self draw art-group data 41) - :num! (seek! (ja-aframe (the-as float 16.0) 0)) - :frame-num 0.0 - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 16.0) 0))) - ) - ) - ) - (go target-duck-high-jump-jump arg0 arg1 arg2) - (none) - ) - :post target-post - ) - (defstate target-duck-high-jump-jump (target) - :event target-jump-event-handler - :enter (behavior ((arg0 float) (arg1 float) (arg2 symbol)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (sound-play "jump" :vol 80 :pitch -0.4) - (init-var-jump arg0 arg1 (the-as vector #t) (the-as vector #f) (-> self control transv)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (cond - ((= arg2 'launch) - (set! (-> self neck flex-blend) 0.0) - (set! (-> self control unknown-surface00) *launch-jump-mods*) - ) - (else - (set! (-> self control unknown-surface00) *high-jump-mods*) - ) - ) - (none) - ) - :exit target-exit - :trans (-> target-high-jump trans) - :code (behavior ((arg0 float) (arg1 float) (arg2 symbol)) - (let ((f30-0 (the-as float (if (= arg2 'launch) - 110.0 - 35.0 - ) - ) - ) - (f28-0 1.0) - ) - (until (ja-done? 0) - (let* ((f24-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (f26-0 (- f30-0 (ja-aframe-num 0))) - (f22-1 (fmin (fmin 3.0 f26-0) (/ (* 5.0 f26-0) (the float (time-to-apex f24-0 (the-as float -245760.0)))))) - (s5-0 (-> self skel root-channel 0)) - ) - (set! (-> s5-0 param 0) (the float (+ (-> s5-0 frame-group data 0 length) -1))) - (let ((v1-26 (cond - ((and (< 0.0 f24-0) (< 0.0 f26-0)) - (if (= arg2 'launch) - (set! f28-0 (lerp f28-0 (* 4.0 f22-1) (the-as float 0.25))) - ) - f22-1 - ) - (else - f28-0 - ) - ) - ) - ) - (set! (-> s5-0 param 1) v1-26) - ) - (joint-control-channel-group-eval! s5-0 (the-as art-joint-anim #f) num-func-seek!) - ) - (suspend) - ) - (cond - ((= arg2 'launch) - (ja-no-eval :group! (-> self draw art-group data 43) :num! (loop! f28-0) :frame-num 0.0) - (loop - (suspend) - (ja :group! (-> self draw art-group data 43) :num! (loop! f28-0)) - ) - ) - (else - (ja-no-eval :group! (-> self draw art-group data 38) :num! (loop!) :frame-num 0.0) - (loop - (suspend) - (ja :group! (-> self draw art-group data 38) :num! (loop!)) - ) - ) - ) - ) - (the-as none 0) - (none) - ) - :post target-post - ) - (defstate target-falling (target) - :event target-jump-event-handler - :enter (behavior ((arg0 symbol)) - (set! (-> self control unknown-surface00) *jump-mods*) - (set! (-> self control unknown-uint20) (the-as uint arg0)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (none) - ) - :trans (behavior () - (target-falling-trans - (-> self control unknown-spoolanim00) - (the-as time-frame (if (= (-> self control unknown-spoolanim00) #f) - 0 - (/ (the-as int (-> *TARGET-bank* stuck-time)) 2) - ) - ) - ) - (none) - ) - :code (behavior ((arg0 symbol)) - (target-falling-anim -1 (seconds 0.33)) - (none) - ) - :post target-post - ) - (defstate target-hit-ground (target) - :event target-walk-event-handler - :enter (behavior ((arg0 symbol)) - (cond - ((= arg0 'stuck) - ) - ((let ((v1-4 (ja-group))) - (or (= v1-4 (-> self draw art-group data 42)) (= v1-4 (-> self draw art-group data 43))) - ) - (dummy-10 (-> self skel effect) 'group-blue-hit-ground-effect (the-as float 0.0) -1) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.3)) - ) - (else - (let ((f0-1 (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) (-> self control unknown-vector52) (-> self control trans)) - ) - ) - ) - (if (and (< (-> *TARGET-bank* fall-far) f0-1) - (zero? (logand (-> self control status) (cshape-moving-flags on-water))) - ) - (go target-hit-ground-hard f0-1) - ) - ) - ) - ) - (cond - ((= arg0 'stuck) - ) - (else - (target-land-effect) - ) - ) - (set! (-> self control unknown-dword31) 0) - (set! (-> self control unknown-dword33) 0) - (if (>= (-> self control ground-impact-vel) (-> *TARGET-bank* fall-stumble-threshold)) - (set-forward-vel (the-as float 0.0)) - ) - (if (!= (-> self control ground-pat material) (pat-material ice)) - (delete-back-vel) - ) - (set! (-> self control unknown-surface00) *walk-mods*) - (start-bobbing! - (-> self water) - (lerp-scale - (the-as float 0.0) - (the-as float 4096.0) - (-> self control ground-impact-vel) - (the-as float 40960.0) - (the-as float 102400.0) - ) - 600 - 1500 - ) - (none) - ) - :trans (behavior () - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - (if (and (not (can-exit-duck?)) (can-duck?)) - (go target-duck-stance) - ) - (when (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - (if (logtest? (-> self water flags) (water-flags wt10)) - (go target-wade-walk) - (go target-walk) - ) - ) - (if (and (or (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (not (can-exit-duck?))) (can-duck?)) - (go target-duck-stance) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) - (go target-attack) - ) - (if (can-hands? #t) - (go target-running-attack) - ) - (fall-test) - (slide-down-test) - (none) - ) - :code (behavior ((arg0 symbol)) - (target-hit-ground-anim #f) - (go target-stance) - (none) - ) - :post target-post - ) - (defstate target-attack (target) - :event target-dangerous-event-handler - :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (target-start-attack) - (target-danger-set! 'spin #f) - (set! (-> self control unknown-surface00) *attack-mods*) - (set! (-> self water drip-mult) 4.0) - (set! (-> self neck flex-blend) 0.0) - (none) - ) - :exit (behavior () - (set! (-> self control unknown-dword33) (-> *display* base-frame-counter)) - (target-exit) - (none) - ) - :code (behavior () - (ja-channel-push! 1 (seconds 0.05)) - (ja-no-eval :group! (-> self draw art-group data 51) - :num! (seek! max (-> self control unknown-surface01 align-speed)) - :frame-num 0.0 - ) - (until (ja-done? 0) - (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 74) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) - (level-hint-spawn - (game-text-id misty-eco-red-first-use) - "sksp0072" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - (suspend) - (ja :num! (seek! max (-> self control unknown-surface01 align-speed))) - ) - (go target-stance) - (none) - ) - :post target-post - ) - (defstate target-running-attack (target) - :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('touched) - (cond - (((method-of-type touching-shapes-entry prims-touching?) - (the-as touching-shapes-entry (-> arg3 param 0)) - (-> self control) - (the-as uint 224) - ) - (let ((gp-1 (target-send-attack - arg0 - (the-as uint (-> self control unknown-symbol30)) - (-> arg3 param 0) - (-> self control unknown-dword50) - (-> self control unknown-dword51) - ) - ) - ) - (when gp-1 - (set! (-> self control unknown-uint20) (the-as uint (-> *display* base-frame-counter))) - (let ((v1-9 (if (and (nonzero? arg0) (type-type? (-> arg0 type) process-drawable)) - arg0 - ) - ) - ) - (when v1-9 - (let* ((s5-1 (-> (the-as process-drawable v1-9) root)) - (v1-11 (if (and (nonzero? s5-1) (type-type? (-> s5-1 type) collide-shape)) - (the-as collide-shape s5-1) - ) - ) - ) - (if (and v1-11 (or (logtest? (-> v1-11 root-prim prim-core collide-as) (collide-kind enemy)) - (logtest? (-> v1-11 root-prim prim-core action) (collide-action ca-10)) - ) - ) - (set! (-> self control unknown-uint31) (the-as uint 1)) - ) - ) - ) - ) - (when (or (= gp-1 'die) (= gp-1 'push)) - (let ((v0-2 (the-as object (-> *display* base-frame-counter)))) - (set! (-> self control unknown-int21) (the-as int v0-2)) - v0-2 - ) - ) - ) - ) - ) - (else - (target-dangerous-event-handler arg0 arg1 arg2 arg3) - ) - ) - ) - (else - (target-dangerous-event-handler arg0 arg1 arg2 arg3) - ) - ) - ) - :enter (behavior () - (if (or (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (< (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) (seconds 1.5)) - ) - (go target-yellow-blast) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-uint20) (the-as uint 0)) - (set! (-> self control unknown-int21) 0) - (set! (-> self control unknown-uint31) (the-as uint 0)) - (set! (-> self control unknown-surface00) *run-attack-mods*) - (set! (-> *run-attack-mods* turnv) 655360.0) - (set! (-> *run-attack-mods* turnvv) 655360.0) - (target-start-attack) - (target-danger-set! 'punch #f) - (if (or (< (fabs (-> self control unknown-float62)) 0.3) (< 0.3 (fabs (-> self control unknown-float61)))) - (set! (-> self control unknown-float81) 1.0) - ) - (none) - ) - :exit (behavior () - (set! (-> self control dynam gravity-max) (-> self control unknown-dynamics00 gravity-max)) - (set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length)) - (set! (-> *run-attack-mods* turnv) 0.0) - (set! (-> *run-attack-mods* turnvv) 0.0) - (set! (-> self control unknown-dword31) (-> *display* base-frame-counter)) - (target-exit) - (none) - ) - :trans (behavior () - (when (!= (-> self state-time) (-> *display* base-frame-counter)) - (if (and (or (smack-surface? #t) - (and (>= (-> self control unknown-float63) 0.7) - (zero? (logand (-> self control status) (cshape-moving-flags t-act))) - ) - ) - (begin - (set! (-> self control unknown-int21) (the-as int (-> *display* base-frame-counter))) - (set! (-> self control unknown-float81) 0.0) - (let ((gp-0 (new-stack-vector0)) - (f30-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - ) - 0.0 - (vector-! gp-0 (-> self control transv) (vector-float*! gp-0 (-> self control dynam gravity-normal) f30-0)) - (let* ((f0-5 (vector-length gp-0)) - (f1-1 f0-5) - (f2-1 (fmin 0.0 f30-0)) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-1) - (vector-float*! gp-0 gp-0 (/ f0-5 f1-1)) - ) - ) - ) - #t - ) - (or (zero? (-> self control unknown-uint20)) - (>= (the-as uint (- (-> *display* base-frame-counter) (the-as int (-> self control unknown-uint20)))) - (the-as uint 12) - ) - ) - (!= (-> self control unknown-uint31) 1) - ) - (target-shoved - (-> *TARGET-bank* smack-surface-dist) - (-> *TARGET-bank* smack-surface-height) - (the-as process #f) - target-hit - ) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) x) - (and (< 4096.0 (-> self control unknown-float01)) - (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) - (zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons square) - ) - ) - ) - (zero? (logand (-> self state-flags) (state-flags prevent-jump prevent-attack))) - (zero? (logand (-> self control unknown-surface01 flags) (surface-flags prevent-attacks-during-launch-jump))) - ) - ) - (go - target-attack-uppercut - (-> *TARGET-bank* attack-jump-height-min) - (-> *TARGET-bank* attack-jump-height-max) - ) - ) - (if (and (logtest? (-> self water flags) (water-flags wt09)) - (zero? (mod (- (-> *display* base-frame-counter) (-> self state-time)) 21)) - ) - (dummy-13 - (-> self water) - (the-as float 0.6) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 37)) - 0 - (-> self control transv) - ) - ) - (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 23) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) - (level-hint-spawn - (game-text-id misty-eco-red-first-use) - "sksp0072" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - ) - ) - (none) - ) - :code (behavior () - (if (logtest? (-> self water flags) (water-flags wt09)) - (sound-play "swim-stroke") - ) - (ja-channel-push! 1 (seconds 0.02)) - (ja :group! (-> self draw art-group data 59) :num! min) - (set! (-> self control dynam gravity-max) 368640.0) - (set! (-> self control dynam gravity-length) 368640.0) - (let ((f28-0 0.0) - (f30-0 1.0) - (gp-2 0) - ) - (until (ja-done? 0) - (compute-alignment! (-> self align)) - (when (not (ja-min? 0)) - (cond - ((and (>= (ja-aframe-num 0) 20.0) - (and (and (zero? (logand (-> self control status) (cshape-moving-flags onsurf))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) - (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (let ((v1-39 (ja-group))) - (or (not (or (= v1-39 (-> self draw art-group data 59)) - (= v1-39 (-> self draw art-group data 60)) - (= v1-39 (-> self draw art-group data 61)) - ) - ) - (< 4096.0 (target-height-above-ground)) - ) - ) - ) - (>= (the-as uint (- (-> *display* base-frame-counter) (the-as int (-> self control unknown-uint20)))) - (the-as uint 12) - ) - ) - ) - (go target-falling #f) - ) - ((and (nonzero? (-> self control unknown-uint30)) - (>= (the-as uint (- (-> *display* base-frame-counter) (the-as int (-> self control unknown-uint30)))) - (the-as uint 12) - ) - ) - (set-forward-vel (the-as float 0.0)) - ) - ((and (zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons square) - ) - ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) - ) - (if (= (-> self control ground-pat material) (pat-material ice)) - (set-forward-vel (fmax 32768.0 (* 0.8 (-> self control unknown-float01)))) - (set-forward-vel (* 0.8 (-> self control unknown-float01))) - ) - ) - ((ja-done? 0) - (set-forward-vel f28-0) - ) - (else - (set! f28-0 - (* (target-align-vel-z-adjust (-> self align delta trans z)) (-> *display* frames-per-second) f30-0) - ) - (set-forward-vel f28-0) - ) - ) - ) - (let ((s5-1 (new-stack-vector0))) - (vector-matrix*! s5-1 (-> self control transv) (-> self control unknown-matrix00)) - (set! (-> s5-1 y) 0.0) - (vector-matrix*! (-> self control unknown-vector120) s5-1 (-> self control unknown-matrix01)) - ) - (suspend) - (ja :num! (seek! max (-> self control unknown-surface01 align-speed))) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) - (set! (-> *run-attack-mods* turnvv) 0.0) - ) - (if (< 2 gp-2) - (set! f30-0 (* f30-0 (fmin 1.0 (-> self control unknown-float140)))) - ) - (+! gp-2 1) - ) - ) - (if (and (zero? (logand (-> self control status) (cshape-moving-flags onsurf))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) - (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (let ((v1-121 (ja-group))) - (or (not (or (= v1-121 (-> self draw art-group data 59)) - (= v1-121 (-> self draw art-group data 60)) - (= v1-121 (-> self draw art-group data 61)) - ) - ) - (< 4096.0 (target-height-above-ground)) - ) - ) - ) - (go target-falling #f) - ) - (go target-stance) - (none) - ) - :post target-post - ) - (defstate target-attack-air (target) - :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v0-0 (target-bonk-event-handler arg0 arg1 arg2 arg3))) - (cond - (v0-0 - (empty) - v0-0 - ) - (else - (target-dangerous-event-handler arg0 arg1 arg2 arg3) - ) - ) - ) - ) - :enter (behavior ((arg0 symbol)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (target-start-attack) - (target-danger-set! 'spin-air #f) - (set! (-> self control unknown-surface00) *jump-attack-mods*) - (let ((f0-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) - (cond - ((or (>= 0.0 f0-1) (= arg0 'flop)) - (let ((gp-1 (new-stack-vector0))) - (let ((f0-3 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) - 0.0 - (vector-! gp-1 (-> self control transv) (vector-float*! gp-1 (-> self control dynam gravity-normal) f0-3)) - ) - (let* ((f0-4 (vector-length gp-1)) - (f1-2 f0-4) - (f2-0 33775.48) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-0) - (vector-float*! gp-1 gp-1 (/ f0-4 f1-2)) - ) - ) - ) - ) - (else - (let* ((f1-5 (/ f0-1 (* (-> self control dynam gravity-length) (-> *display* seconds-per-frame)))) - (f30-0 (* 0.5 f1-5 (-> *display* seconds-per-frame) f0-1)) - ) - (if (ja-group? (-> self draw art-group data 62)) - (set! f30-0 - (fmax - 0.0 - (- (-> *TARGET-bank* attack-jump-height-max) - (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) (-> self control trans) (-> self control unknown-vector52)) - ) - ) - ) - ) - ) - (let ((gp-2 (new-stack-vector0))) - (let ((f0-8 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) - 0.0 - (vector-! gp-2 (-> self control transv) (vector-float*! gp-2 (-> self control dynam gravity-normal) f0-8)) - ) - (let* ((f0-9 (vector-length gp-2)) - (f1-11 f0-9) - (f2-7 (+ 1024.0 (sqrtf (* 245760.0 (+ 2048.0 f30-0))))) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-7) - (vector-float*! gp-2 gp-2 (/ f0-9 f1-11)) - ) - ) - ) - ) - ) - ) - ) - (set! (-> self control dynam gravity-length) 122880.0) - (set! (-> self control unknown-vector52 quad) (-> self control trans quad)) - (none) - ) - :exit (behavior () - (set! (-> self control dynam gravity-max) (-> self control unknown-dynamics00 gravity-max)) - (set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length)) - ((-> target-attack exit)) - (none) - ) - :trans (behavior () - (when (logtest? (-> self control status) (cshape-moving-flags onsurf)) - (set-quaternion! (-> self control) (-> self control dir-targ)) - (go target-hit-ground #f) - ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) - (seek! - (-> self control dynam gravity-length) - (-> self control unknown-dynamics00 gravity-length) - (* 245760.0 (-> *display* seconds-per-frame)) - ) - ) - (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control unknown-vector10)) - (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) - ) - ) - (set! (-> self control dynam gravity-max) (-> self control unknown-dynamics00 gravity-max)) - (set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length)) - ) - (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 70) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) - (level-hint-spawn - (game-text-id misty-eco-red-first-use) - "sksp0072" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - ) - (none) - ) - :code (behavior ((arg0 symbol)) - (ja-channel-push! 1 (seconds 0.075)) - (ja-no-eval :group! (-> self draw art-group data 56) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (compute-alignment! (-> self align)) - (align! (-> self align) (align-opts adjust-quat) (the-as float 1.0) (the-as float 1.0) (the-as float 1.0)) - (suspend) - (ja :num! (seek!)) - ) - (ja :group! (-> self draw art-group data 57) :num! min) - (let ((f30-0 393216.0)) - (let ((f0-8 (target-height-above-ground)) - (f1-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - ) - (while (not (or (and (< (fabs (/ f0-8 (* 0.0033333334 f1-1))) 150.0) (< f1-1 0.0)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.7)) - ) - ) - (quaternion-rotate-y! - (-> self control unknown-quaternion00) - (-> self control unknown-quaternion00) - (* f30-0 (-> *display* seconds-per-frame)) - ) - (suspend) - (ja :num! (loop!)) - (set! f0-8 (target-height-above-ground)) - (set! f1-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - ) - ) - (ja-no-eval :group! (-> self draw art-group data 58) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (cond - ((< (ja-aframe-num 0) 32.0) - (quaternion-rotate-y! - (-> self control unknown-quaternion00) - (-> self control unknown-quaternion00) - (* f30-0 (-> *display* seconds-per-frame)) - ) - ) - (else - (let ((f0-22 - (deg-diff - (quaternion-y-angle (-> self control unknown-quaternion00)) - (quaternion-y-angle (-> self control dir-targ)) - ) - ) - ) - (quaternion-rotate-y! - (-> self control unknown-quaternion00) - (-> self control unknown-quaternion00) - (* 0.2 (fabs f0-22)) - ) - ) - ) - ) - (suspend) - (ja :num! (seek!)) - ) - ) - (go target-falling #f) - (none) - ) - :post target-post - ) - (defstate target-attack-uppercut (target) - :event target-dangerous-event-handler - :enter (behavior ((arg0 float) (arg1 float)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (target-start-attack) - (target-danger-set! 'uppercut #f) - (set! (-> self control unknown-surface00) *turn-around-mods*) - (none) - ) - :exit target-exit - :code (behavior ((arg0 float) (arg1 float)) - (let ((s3-0 (ja-group? (-> self draw art-group data 31)))) - (ja-no-eval :group! (-> self draw art-group data 62) - :num! (seek! (ja-aframe (the-as float 7.0) 0)) - :frame-num (the-as float (if s3-0 - (ja-aframe (the-as float 5.0) 0) - 0.0 - ) - ) - ) - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 7.0) 0))) - ) - (go target-attack-uppercut-jump arg0 arg1) - (none) - ) - :post target-post - ) - (defstate target-attack-uppercut-jump (target) - :event target-dangerous-event-handler - :enter (behavior ((arg0 float) (arg1 float)) - (if (and (= (-> self control ground-pat material) (pat-material ice)) - (< 32768.0 (-> self control unknown-float01)) - ) - (set-forward-vel (the-as float 32768.0)) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (init-var-jump arg0 arg1 (the-as vector #t) (the-as vector #f) (-> self control transv)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (set! (-> self control unknown-surface00) *uppercut-jump-mods*) - (target-start-attack) - (target-danger-set! 'uppercut #f) - (none) - ) - :exit target-exit - :trans (behavior () - (if (logtest? (-> self control status) (cshape-moving-flags onsurf)) - (go target-hit-ground #f) - ) - (when (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 22118.4) - (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as time-frame (-> *TARGET-bank* stuck-timeout)) - ) - (zero? (logand (-> self state-flags) (state-flags prevent-attack))) - (zero? (logand (-> self control unknown-surface01 flags) (surface-flags prevent-attacks-during-launch-jump surf08)) - ) - ) - ) - (set-quaternion! (-> self control) (-> self control dir-targ)) - (build-conversions (-> self control transv)) - (go - target-flop - (the-as float 65502.96) - (the-as float -163840.0) - (the-as float (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - 0.0 - 68812.8 - ) - ) - ) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) - (can-feet?) - (ja-group? (-> self draw art-group data 62)) - (>= (ja-aframe-num 0) 12.0) - ) - (go target-attack-air 'uppercut) - ) - (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) - (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 23) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) - ) - (if (and (= (-> self control unknown-symbol30) 'uppercut) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) -8192.0) - ) - (target-danger-set! 'harmless #f) - ) - (slide-down-test) - (none) - ) - :code (behavior ((arg0 float) (arg1 float)) - (compute-alignment! (-> self align)) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! max 0.9)) - (compute-alignment! (-> self align)) - (let* ((gp-0 (-> self align)) - (s5-0 (method-of-object gp-0 align!)) - (a1-2 (cond - ((>= 30.0 (ja-aframe-num 0)) - 18 - ) - ((>= 43.0 (ja-aframe-num 0)) - (set! (-> self control unknown-surface00) *double-jump-mods*) - 2 - ) - (else - 0 - ) - ) - ) - ) - (s5-0 gp-0 (the-as align-opts a1-2) (the-as float 1.0) (the-as float 0.95) (the-as float 1.0)) - ) - ) - (go target-falling #f) - (none) - ) - :post target-post - ) - (defstate target-flop (target) - :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v0-0 (target-bonk-event-handler arg0 arg1 arg2 arg3))) - (cond - (v0-0 - (empty) - v0-0 - ) - ((let ((v1-0 arg2)) - (= v1-0 'swim) - ) - (cond - ((< 6144.0 (target-height-above-ground)) - (dummy-10 (-> self skel effect) 'swim-flop (the-as float -1.0) -1) - (let ((t9-3 enter-state)) - (set! (-> self next-state) target-swim-down) - ((the-as (function object :behavior target) t9-3)) - ) - ) - (else - (let ((t9-4 enter-state) - (a0-4 'swim) - ) - (set! (-> self next-state) target-flop-hit-ground) - ((the-as (function symbol object :behavior target) t9-4) a0-4) - ) - ) - ) - ) - (else - (target-dangerous-event-handler arg0 arg1 arg2 arg3) - ) - ) - ) - ) - :enter (behavior ((arg0 float) (arg1 float) (arg2 float)) - (if (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (go target-yellow-jump-blast) - ) - (if (= arg2 0.0) - (set-forward-vel arg2) - (set-forward-vel (-> self control unknown-float01)) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (set! (-> self control unknown-surface00) *flop-mods*) - (set! (-> self control unknown-uint20) (the-as uint 0)) - (set! (-> self control dynam gravity-max) 245760.0) - (set! (-> self control dynam gravity-length) 245760.0) - (let ((gp-1 (new-stack-vector0))) - (let ((f0-6 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) - 0.0 - (vector-! gp-1 (-> self control transv) (vector-float*! gp-1 (-> self control dynam gravity-normal) f0-6)) - ) - (let* ((f0-7 (vector-length gp-1)) - (f1-3 f0-7) - (f2-0 29491.2) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-0) - (vector-float*! gp-1 gp-1 (/ f0-7 f1-3)) - ) - ) - ) - (none) - ) - :exit (behavior () - (target-danger-set! 'harmless #f) - (set! (-> self control dynam gravity-max) (-> self control unknown-dynamics00 gravity-max)) - (set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length)) - (set! (-> self control dynam gravity quad) (-> self control unknown-dynamics00 gravity quad)) - (none) - ) - :trans (behavior () - (delete-back-vel) - (let ((gp-1 (logtest? (-> self control status) (cshape-moving-flags onsurf)))) - (when (and (not gp-1) (let ((v1-6 (ja-group))) - (or (= v1-6 (-> self draw art-group data 64)) (= v1-6 (-> self draw art-group data 66))) - ) - ) - (when (and (or (< (target-move-dist (seconds 0.1)) 1638.4) - (and (logtest? (-> self control status) (cshape-moving-flags twall)) (< 0.7 (-> self control poly-angle))) - ) - (zero? (logand (-> self control status) (cshape-moving-flags t-act))) - (>= (-> self control unknown-uint20) (the-as uint 2)) - ) - (set! (-> self control unknown-dword36) (-> *display* base-frame-counter)) - (set! gp-1 'stuck) - ) - ) - (when gp-1 - (logior! (-> self control status) (cshape-moving-flags onsurf)) - (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.5)) - (dummy-10 (-> self skel effect) 'group-red-eco-strike-ground (ja-frame-num 0) 0) - (let ((s5-1 (process-spawn touch-tracker :init touch-tracker-init (-> self control trans) 4096.0 30 :to self))) - (send-event (ppointer->process s5-1) 'event 'attack 'flop) - (send-event - (ppointer->process s5-1) - 'function - (lambda ((arg0 target)) (let ((f0-3 (seek - (-> arg0 control root-prim local-sphere w) - (the-as float 28672.0) - (* 286720.0 (-> *display* seconds-per-frame)) - ) - ) - ) - (set! (-> arg0 control root-prim local-sphere w) f0-3) - f0-3 - ) - ) - ) - ) - ) - (go target-flop-hit-ground gp-1) - ) - ) - (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (dummy-10 - (-> self skel effect) - 'group-red-eco-spinkick - (ja-frame-num 0) - (if (rand-vu-percent? (the-as float 0.5)) - 23 - 17 - ) - ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) - ) - (when (and (not (-> self control unknown-symbol30)) - (ja-group? (-> self draw art-group data 63)) - (>= (ja-aframe-num 0) 8.0) - ) - (target-start-attack) - (target-danger-set! 'flop #f) - ) - (none) - ) - :code (behavior ((arg0 float) (arg1 float) (arg2 float)) - (ja-channel-set! 2) - (ja-no-eval :group! (-> self draw art-group data 63) :num! (seek!) :frame-num 0.0) - (ja :chan 1 :group! (-> self draw art-group data 66) :num! (chan 0) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - (ja :chan 1 :num! (seek!) :frame-interp (lerp-scale - (the-as float 0.0) - (the-as float 1.0) - (-> self control unknown-float01) - (the-as float 0.0) - (the-as float 40960.0) - ) - ) - ) - (set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length)) - (set! (-> self control dynam gravity quad) (-> self control unknown-dynamics00 gravity quad)) - (target-danger-set! 'flop-down #f) - (ja :group! (-> self draw art-group data 64) :num! min) - (ja :chan 1 :group! (-> self draw art-group data 67) :num! min) - (let ((f30-0 1.0)) - (let ((gp-3 (new-stack-vector0))) - (let ((f0-18 (vector-dot (-> self control dynam gravity-normal) (-> self control unknown-vector120)))) - 0.0 - (vector-! - gp-3 - (-> self control unknown-vector120) - (vector-float*! gp-3 (-> self control dynam gravity-normal) f0-18) - ) - ) - (let* ((f0-19 (vector-length gp-3)) - (f1-1 f0-19) - (f2-0 -368640.0) - ) - (vector+! - (-> self control unknown-vector120) - (vector-float*! (-> self control unknown-vector120) (-> self control dynam gravity-normal) f2-0) - (vector-float*! gp-3 gp-3 (/ f0-19 f1-1)) - ) - ) - ) - (let ((gp-4 (new-stack-vector0))) - (let ((f0-22 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) - 0.0 - (vector-! gp-4 (-> self control transv) (vector-float*! gp-4 (-> self control dynam gravity-normal) f0-22)) - ) - (let* ((f0-23 (vector-length gp-4)) - (f1-3 f0-23) - (f2-2 (* -368640.0 f30-0)) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-2) - (vector-float*! gp-4 gp-4 (/ f0-23 f1-3)) - ) - ) - ) - (suspend) - (loop - (+! (-> self control unknown-uint20) 1) - (ja :num! (+!)) - (ja :chan 1 :num! (chan 0) :frame-interp (lerp-scale - (the-as float 0.0) - (the-as float 1.0) - (-> self control unknown-float01) - (the-as float 0.0) - (the-as float 40960.0) - ) - ) - (set! f30-0 (* f30-0 (fmin 1.0 (-> self control unknown-float140)))) - (let ((gp-6 (new-stack-vector0)) - (f28-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - ) - 0.0 - (vector-! gp-6 (-> self control transv) (vector-float*! gp-6 (-> self control dynam gravity-normal) f28-0)) - (let* ((f1-5 (vector-length gp-6)) - (f0-34 f1-5) - ) - (if (< (-> self control unknown-surface01 transv-max) f1-5) - (set! f1-5 (-> self control unknown-surface01 transv-max)) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f28-0) - (vector-float*! gp-6 gp-6 (/ f1-5 f0-34)) - ) - ) - ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> *TARGET-bank* fall-timeout)) - (go target-falling #f) - ) - (if (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control unknown-cpad-info00 number) r2) (not *pause-lock*)) - (go target-falling #f) - ) - (suspend) - ) - ) - (none) - ) - :post target-post - ) - (defstate target-flop-hit-ground (target) - :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('swim) - #f - ) - (else - (target-standard-event-handler arg0 arg1 arg2 arg3) - ) - ) - ) - :enter (behavior ((arg0 symbol)) - (let ((f0-1 (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) (-> self control unknown-vector111) (-> self control trans)) - ) - ) - ) - (if (< (-> *TARGET-bank* fall-far) f0-1) - (go target-hit-ground-hard f0-1) - ) - ) - (target-land-effect) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.1)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-uint20) (the-as uint arg0)) - (set-forward-vel (the-as float 0.0)) - (set! (-> self control unknown-surface00) *flop-land-mods*) - (logclear! (-> *flop-land-mods* flags) (surface-flags allow-edge-grab)) - (set! (-> self state-flags) (logior (state-flags flop-hit-ground) (-> self state-flags))) - (none) - ) - :exit target-exit - :trans (behavior () - (when (!= (-> self control unknown-spoolanim00) 'stuck) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) - (go target-attack-air 'flop) - ) - ) - (when (and (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.25)) - ) - (dummy-10 - (-> self skel effect) - 'group-red-eco-spinkick - (ja-frame-num 0) - (if (rand-vu-percent? (the-as float 0.5)) - 23 - 17 - ) - ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) - ) - (let ((v1-33 (ja-group))) - (if (and (or (= v1-33 (-> self draw art-group data 65)) (= v1-33 (-> self draw art-group data 68))) - (>= (ja-aframe-num 0) 28.0) - ) - (logior! (-> *flop-land-mods* flags) (surface-flags allow-edge-grab)) - ) - ) - (slide-down-test) - (none) - ) - :code (behavior ((arg0 symbol)) - (target-hit-ground-anim arg0) - (go target-falling #f) - (none) - ) - :post target-post - ) - (defstate target-wheel (target) - :event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (if (= arg2 'touched) - (send-event arg0 'roll) - ) - (target-standard-event-handler arg0 arg1 arg2 arg3) - ) - :enter (behavior () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-surface00) *wheel-mods*) - (+! (-> self control unknown-int50) 1) - (rot->dir-targ! (-> self control)) - (set-forward-vel (+ (-> *TARGET-bank* wheel-speed-min) - (* (-> *TARGET-bank* wheel-speed-inc) (the float (+ (-> self control unknown-int50) -1))) - ) - ) - (if (or (< (fabs (-> self control unknown-float62)) 0.3) (< 0.3 (fabs (-> self control unknown-float61)))) - (set! (-> self control unknown-float81) 1.0) - ) - (set! (-> self control unknown-uint20) (the-as uint 0)) - (set! (-> self control unknown-int21) 0) - 0 - (none) - ) - :exit (behavior () - (when (!= (-> self next-state name) 'target-wheel) - (set! (-> self control unknown-int50) 0) - (set! (-> self control unknown-dword30) (-> *display* base-frame-counter)) - ) - (target-exit) - (none) - ) - :code (behavior () - (let ((gp-0 0)) - 0 - (let ((s5-0 0) - (f30-0 1.0) - ) - (ja-channel-push! 1 (seconds 0.04)) - (ja :group! (-> self draw art-group data 69) :num! min) - (until (ja-done? 0) - (if (cpad-pressed? (-> self control unknown-cpad-info00 number) x) - (set! gp-0 (the-as int (-> *display* base-frame-counter))) - ) - (when (and (or (smack-surface? #f) (>= (-> self control unknown-float63) 0.7)) - (>= (the-as uint (- (-> *display* base-frame-counter) (the-as int (-> self control unknown-uint20)))) - (the-as uint 3) - ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1) - ) - (if (>= 6.0 (ja-aframe-num 0)) - (target-shoved - (-> *TARGET-bank* smack-surface-dist) - (-> *TARGET-bank* smack-surface-height) - (the-as process #f) - target-hit - ) - ) - (if (zero? s5-0) - (set! s5-0 (the-as int (-> *display* base-frame-counter))) - ) - ) - (if (cpad-pressed? (-> self control unknown-cpad-info00 number) square) - (-> *display* base-frame-counter) - ) - (compute-alignment! (-> self align)) - (cond - ((nonzero? s5-0) - ) - (else - (align! (-> self align) (align-opts adjust-xz-vel) (the-as float 1.0) (the-as float 1.0) f30-0) - (let ((s4-1 (new-stack-vector0))) - (vector-matrix*! s4-1 (-> self control transv) (-> self control unknown-matrix00)) - (set! (-> s4-1 y) 0.0) - (vector-matrix*! (-> self control unknown-vector120) s4-1 (-> self control unknown-matrix01)) - ) - ) - ) - (suspend) - (ja :num! (seek!)) - (set! f30-0 (* f30-0 (fmin 1.0 (-> self control unknown-float140)))) - ) - ) - (if (and (or (< (- (-> *display* base-frame-counter) (the-as time-frame gp-0)) (-> *TARGET-bank* wheel-jump-pre-window)) - (cpad-pressed? (-> self control unknown-cpad-info00 number) x) - ) - (can-jump? 'target-wheel-flip) - ) - (go target-wheel-flip (-> *TARGET-bank* wheel-flip-height) (-> *TARGET-bank* wheel-flip-dist)) - ) - ) - (set! (-> self state-hook-time) (-> *display* base-frame-counter)) - (set! (-> self state-hook) - (lambda :behavior target - () - (cond - ((>= (- (-> *display* base-frame-counter) (-> self state-hook-time)) (-> *TARGET-bank* wheel-jump-post-window)) - (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) - ) - (else - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? 'target-wheel-flip) - ) - (go target-wheel-flip (-> *TARGET-bank* wheel-flip-height) (-> *TARGET-bank* wheel-flip-dist)) - ) - ) - ) - (none) - ) - ) - (go target-duck-stance) - (none) - ) - :post target-post - ) - (defstate target-wheel-flip (target) - :event target-standard-event-handler - :enter (behavior ((arg0 float) (arg1 float)) - (set! (-> self control unknown-surface00) *wheel-flip-mods*) - (none) - ) - :exit target-exit - :trans (behavior () - (if (and (or (smack-surface? #f) - (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) - ) - (!= (-> self state-time) (-> *display* base-frame-counter)) - ) - (target-shoved - (-> *TARGET-bank* smack-surface-dist) - (-> *TARGET-bank* smack-surface-height) - (the-as process #f) - target-hit - ) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) - (can-feet?) - (and (ja-group? (-> self draw art-group data 38)) (= (-> self skel root-channel 0) (-> self skel channel))) - ) - (go target-attack-air #f) - ) - (none) - ) - :code (behavior ((arg0 float) (arg1 float)) - (ja-channel-push! 1 (seconds 0.04)) - (ja :group! (-> self draw art-group data 71) :num! min) - (let ((f30-0 1.0)) - (until (or (ja-max? 0) - (and (>= (ja-aframe-num 0) 4.0) (logtest? (-> self control status) (cshape-moving-flags onsurf))) - ) - (when (and (>= (ja-aframe-num 0) 3.0) (not (-> self control unknown-symbol30))) - (set! (-> self event-hook) target-dangerous-event-handler) - (target-start-attack) - (target-danger-set! 'flip #f) - ) - (compute-alignment! (-> self align)) - (if (not (ja-max? 0)) - (align! - (-> self align) - (align-opts adjust-y-vel adjust-xz-vel) - (the-as float 1.0) - (/ arg0 (-> *TARGET-bank* wheel-flip-art-height)) - (* f30-0 (/ arg1 (-> *TARGET-bank* wheel-flip-art-dist))) - ) - (align! - (-> self align) - (align-opts adjust-xz-vel) - (the-as float 1.0) - (the-as float 1.0) - (* f30-0 (/ arg1 (-> *TARGET-bank* wheel-flip-art-dist))) - ) - ) - (let ((s4-1 (new-stack-vector0))) - (vector-matrix*! s4-1 (-> self control transv) (-> self control unknown-matrix00)) - (set! (-> s4-1 y) 0.0) - (vector-matrix*! (-> self control unknown-vector120) s4-1 (-> self control unknown-matrix01)) - ) - (suspend) - (ja :num! (seek!)) - (set! f30-0 (* f30-0 (fmin 1.0 (-> self control unknown-float140)))) - ) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (while (zero? (logand (-> self control status) (cshape-moving-flags onsurf))) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.01)) - (when (not (ja-group? (-> self draw art-group data 38))) - (ja-channel-push! 1 (seconds 0.1)) - (ja :group! (-> self draw art-group data 38) :num! min) - ) - ) - (let ((gp-2 (new-stack-vector0)) - (f30-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - ) - 0.0 - (vector-! gp-2 (-> self control transv) (vector-float*! gp-2 (-> self control dynam gravity-normal) f30-1)) - (let* ((f1-6 (vector-length gp-2)) - (f0-21 f1-6) - (f1-7 (* 0.9 f1-6)) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f30-1) - (vector-float*! gp-2 gp-2 (/ f1-7 f0-21)) - ) - ) - ) - (suspend) - (if (ja-group? (-> self draw art-group data 38)) - (ja :num! (loop!)) - (ja :num-func num-func-identity :frame-num max) - ) - ) - (target-land-effect) - (set! (-> self state-hook-time) (-> *display* base-frame-counter)) - (set! (-> self state-hook) - (lambda :behavior target - () - (cond - ((>= (- (-> *display* base-frame-counter) (-> self state-hook-time)) (seconds 0.1)) - (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) - ) - (else - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (go target-high-jump (-> *TARGET-bank* flip-jump-height-min) (-> *TARGET-bank* flip-jump-height-max) 'flip) - ) - ) - ) - (none) - ) - ) - (if (ja-group? (-> self draw art-group data 38)) - (go target-hit-ground #f) - (go target-stance) - ) - (none) - ) - :post target-post - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - + (set! v1-0 type) + (set! t9-0 (l.wu (+ v1-0 16))) + (set! a0-0 'ashelin-anim-info) + (set! a1-0 structure) + (set! a2-0 (l.d L238)) + (call! a0-0 a1-0 a2-0) + (set! t9-1 method-set!) + (set! a0-1 ashelin-anim-info) + (set! a1-1 3) + (set! a2-1 L227) + (call!) + (set! v1-1 type) + (set! t9-2 (l.wu (+ v1-1 16))) + (set! a0-2 'ashelin-global-info) + (set! a1-2 basic) + (set! a2-2 (l.d L237)) + (call!) + (set! t9-3 method-set!) + (set! a0-3 ashelin-global-info) + (set! a1-3 3) + (set! a2-3 L224) + (call!) + (set! v1-2 L223) + (s.w! *ashelin-global-info* v1-2) + (set! v1-3 L221) + (s.w! *ashelin-nav-enemy-info* v1-3) + (set! v1-4 *fact-info-enemy-defaults*) + (set! a0-4 *ashelin-nav-enemy-info*) + (s.w! a0-4 v1-4) + (set! t9-4 method-set!) + (set! a0-5 ashelin) + (set! a1-4 59) + (set! a2-4 L216) + (call!) + (set! t9-5 method-set!) + (set! a0-6 ashelin) + (set! a1-5 250) + (set! a2-5 L213) + (call!) + (set! t9-6 method-set!) + (set! a0-7 ashelin) + (set! a1-6 193) + (set! a2-6 L209) + (call!) + (set! t9-7 method-set!) + (set! a0-8 ashelin) + (set! a1-7 106) + (set! a2-7 L207) + (call!) + (set! t9-8 method-set!) + (set! a0-9 ashelin) + (set! a1-8 104) + (set! a2-8 L203) + (call!) + (set! t9-9 method-set!) + (set! a0-10 ashelin) + (set! a1-9 97) + (set! a2-9 L175) + (call!) + (set! t9-10 method-set!) + (set! a0-11 ashelin) + (set! a1-10 183) + (set! a2-10 L173) + (call!) + (set! t9-11 method-set!) + (set! a0-12 ashelin) + (set! a1-11 114) + (set! a2-11 L172) + (call!) + (set! t9-12 method-set!) + (set! a0-13 ashelin) + (set! a1-12 115) + (set! a2-12 L170) + (call!) + (set! t9-13 method-set!) + (set! a0-14 ashelin) + (set! a1-13 238) + (set! a2-13 L163) + (call!) + (set! t9-14 method-set!) + (set! a0-15 ashelin) + (set! a1-14 235) + (set! a2-14 L160) + (call!) + (set! t9-15 method-set!) + (set! a0-16 ashelin) + (set! a1-15 243) + (set! a2-15 L154) + (call!) + (set! t9-16 method-set!) + (set! a0-17 ashelin) + (set! a1-16 246) + (set! a2-16 L150) + (call!) + (set! t9-17 method-set!) + (set! a0-18 ashelin) + (set! a1-17 241) + (set! a2-17 L139) + (call!) + (set! t9-18 method-set!) + (set! a0-19 ashelin) + (set! a1-18 242) + (set! a2-18 L135) + (call!) + (set! t9-19 method-set!) + (set! a0-20 ashelin) + (set! a1-19 240) + (set! a2-19 L131) + (call!) + (set! t9-20 method-set!) + (set! a0-21 ashelin) + (set! a1-20 247) + (set! a2-20 L122) + (call!) + (set! t9-21 method-set!) + (set! a0-22 ashelin) + (set! a1-21 248) + (set! a2-21 L118) + (call!) + (set! t9-22 method-set!) + (set! a0-23 ashelin) + (set! a1-22 70) + (set! a2-22 L113) + (call!) + (set! t9-23 method-set!) + (set! a0-24 ashelin) + (set! a1-23 72) + (set! a2-23 L110) + (call!) + (set! t9-24 method-set!) + (set! a0-25 ashelin) + (set! a1-24 239) + (set! a2-24 L107) + (call!) + (set! t9-25 method-set!) + (set! a0-26 ashelin) + (set! a1-25 116) + (set! a2-25 L106) + (call!) + (set! t9-26 method-set!) + (set! a0-27 ashelin) + (set! a1-26 237) + (set! a2-26 L99) + (call!) + (set! t9-27 method-set!) + (set! a0-28 ashelin) + (set! a1-27 249) + (set! a2-27 L86) + (call!) + (set! t9-28 method-set!) + (set! a0-29 ashelin) + (set! a1-28 51) + (set! a2-28 L71) + (call!) + (set! t9-29 method-set!) + (set! a0-30 ashelin) + (set! a1-29 77) + (set! a2-29 L61) + (call!) + (set! t9-30 method-set!) + (set! a0-31 ashelin) + (set! a1-30 78) + (set! a2-30 L49) + (call!) + (set! t9-31 method-set!) + (set! a0-32 ashelin) + (set! a1-31 79) + (set! a2-31 L29) + (call!) + (set! t9-32 method-set!) + (set! a0-33 ashelin) + (set! a1-32 236) + (set! a2-32 L25) + (call!) + (set! t9-33 method-set!) + (set! a0-34 ashelin) + (set! a1-33 142) + (set! a2-33 L22) + (call!) + (set! t9-34 method-set!) + (set! a0-35 ashelin) + (set! a1-34 216) + (set! a2-34 L18) + (call!) + (set! t9-35 method-set!) + (set! a0-36 ashelin) + (set! a1-35 203) + (set! a2-35 L12) + (call!) + (set! t9-36 method-set!) + (set! a0-37 ashelin) + (set! a1-36 244) + (set! a2-36 L10) + (call!) + (set! t9-37 method-set!) + (set! a0-38 ashelin) + (set! a1-37 245) + (set! a2-37 L7) + (call!) + (set! t9-38 method-set!) + (set! a0-39 ashelin) + (set! a1-38 136) + (set! a2-38 L5) + (call!) + (set! t9-39 method-set!) + (set! a0-40 ashelin) + (set! a1-39 206) + (set! a2-39 L4) + (call!) + (set! t9-40 method-set!) + (set! a0-41 hud-ashelin) + (set! a1-40 15) + (set! a2-40 L3) + (call!) + (set! t9-41 method-set!) + (set! a0-42 hud-ashelin) + (set! a1-41 16) + (set! a2-41 L2) + (call!) + (set! t9-42 method-set!) + (set! a0-43 hud-ashelin) + (set! a1-42 17) + (set! a2-42 L1) + (call!) + (ret-none) ;; .endfunction -L816: +L236: .word 0x0 .word 0x0 + .word 0x0 +L237: + .word 0x38 + .word 0x9 +L238: + .word 0x4 + .word 0x9 ;------------------------------------------ ; debug segment ;------------------------------------------ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 3 ashelin-global-info) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x20, fp? 1 ra? 1 ep? 1 + ;gprs: gp +;; Warnings: +;; WARN: Type Propagation failed: Function (method 3 ashelin-global-info) has unknown type + +L224: + daddiu sp, sp, -32 + sd ra, 0(sp) + sd fp, 8(sp) + or fp, t9, r0 + sq gp, 16(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + bne s7, gp, L225 ;; [ 1] (b! (truthy gp) L225 (set! v1 #f)) + or v1, s7, r0 + +B1: + or gp, gp, r0 ;; [ 2] (set! gp gp) + beq r0, r0, L226 ;; [ 3] (b! #t L226 (nop!)) + sll r0, r0, 0 + +B2: + or v1, r0, r0 ;; [ 4] (set! v1 0) +B3: +L225: + lw t9, format(s7) ;; [ 5] (set! t9 format) + daddiu a0, s7, #t ;; [ 6] (set! a0 #t) + daddiu a1, fp, L235 ;; [ 7] (set! a1 L235) "[~8x] ~A~%" + or a2, gp, r0 ;; [ 8] (set! a2 gp) + lwu a3, -4(gp) ;; [ 9] (set! a3 (l.wu (+ gp -4))) + jalr ra, t9 ;; [ 10] (call!) + sll v0, ra, 0 + + lw t9, format(s7) ;; [ 11] (set! t9 format) + daddiu a0, s7, #t ;; [ 12] (set! a0 #t) + daddiu a1, fp, L233 ;; [ 13] (set! a1 L233) "~1Tprev-blue-hit: ~D~%" + lb a2, 0(gp) ;; [ 14] (set! a2 (l.b gp)) + jalr ra, t9 ;; [ 15] (call!) + sll v0, ra, 0 + + lw t9, format(s7) ;; [ 16] (set! t9 format) + daddiu a0, s7, #t ;; [ 17] (set! a0 #t) + daddiu a1, fp, L232 ;; [ 18] (set! a1 L232) "~1Tblue-hit-anim[6] @ #x~X~%" + daddiu a2, gp, 4 ;; [ 19] (set! a2 (+ gp 4)) + jalr ra, t9 ;; [ 20] (call!) + sll v0, ra, 0 + + lw t9, format(s7) ;; [ 21] (set! t9 format) + daddiu a0, s7, #t ;; [ 22] (set! a0 #t) + daddiu a1, fp, L231 ;; [ 23] (set! a1 L231) "~1Tblue-hit-land-anim[6] @ #x~X~%" + daddiu a2, gp, 28 ;; [ 24] (set! a2 (+ gp 28)) + jalr ra, t9 ;; [ 25] (call!) + sll v0, ra, 0 + +B4: +L226: + or v0, gp, r0 ;; [ 26] (set! v0 gp) + ld ra, 0(sp) + ld fp, 8(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 32 + + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (b! (truthy gp) L225 (set! v1 #f)) + (set! gp gp) + (b! #t L226 (nop!)) + (set! v1 0) +(label L225) + (set! t9 format) + (set! a0 #t) + (set! a1 L235) + (set! a2 gp) + (set! a3 (l.wu (+ gp -4))) + (call!) + (set! t9 format) + (set! a0 #t) + (set! a1 L233) + (set! a2 (l.b gp)) + (call!) + (set! t9 format) + (set! a0 #t) + (set! a1 L232) + (set! a2 (+ gp 4)) + (call!) + (set! t9 format) + (set! a0 #t) + (set! a1 L231) + (set! a2 (+ gp 28)) + (call!) +(label L226) + (set! v0 gp) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 3 ashelin-anim-info) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x20, fp? 1 ra? 1 ep? 1 + ;gprs: gp +;; Warnings: +;; WARN: Type Propagation failed: Function (method 3 ashelin-anim-info) has unknown type + +L227: + daddiu sp, sp, -32 + sd ra, 0(sp) + sd fp, 8(sp) + or fp, t9, r0 + sq gp, 16(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + bne s7, gp, L228 ;; [ 1] (b! (truthy gp) L228 (set! v1 #f)) + or v1, s7, r0 + +B1: + or gp, gp, r0 ;; [ 2] (set! gp gp) + beq r0, r0, L229 ;; [ 3] (b! #t L229 (nop!)) + sll r0, r0, 0 + +B2: + or v1, r0, r0 ;; [ 4] (set! v1 0) +B3: +L228: + lw t9, format(s7) ;; [ 5] (set! t9 format) + daddiu a0, s7, #t ;; [ 6] (set! a0 #t) + daddiu a1, fp, L235 ;; [ 7] (set! a1 L235) "[~8x] ~A~%" + or a2, gp, r0 ;; [ 8] (set! a2 gp) + daddiu a3, s7, ashelin-anim-info;; [ 9] (set! a3 'ashelin-anim-info) + jalr ra, t9 ;; [ 10] (call!) + sll v0, ra, 0 + + lw t9, format(s7) ;; [ 11] (set! t9 format) + daddiu a0, s7, #t ;; [ 12] (set! a0 #t) + daddiu a1, fp, L234 ;; [ 13] (set! a1 L234) "~1Tanim-index: ~D~%" + lw a2, 0(gp) ;; [ 14] (set! a2 (l.w gp)) + jalr ra, t9 ;; [ 15] (call!) + sll v0, ra, 0 + +B4: +L229: + or v0, gp, r0 ;; [ 16] (set! v0 gp) + ld ra, 0(sp) + ld fp, 8(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 32 + + + (set! gp a0) + (b! (truthy gp) L228 (set! v1 #f)) + (set! gp gp) + (b! #t L229 (nop!)) + (set! v1 0) +(label L228) + (set! t9 format) + (set! a0 #t) + (set! a1 L235) + (set! a2 gp) + (set! a3 'ashelin-anim-info) + (call!) + (set! t9 format) + (set! a0 #t) + (set! a1 L234) + (set! a2 (l.w gp)) + (call!) +(label L229) + (set! v0 gp) + (ret-value v0) +;; .endfunction + +L230: + .word 0x0 + .word 0x0 + .type string +; "~1Tblue-hit-land-anim[6] @ #x~X~%" +L231: + .word 0x21 + .word 0x6254317e + .word 0x2d65756c + .word 0x2d746968 + .word 0x646e616c + .word 0x696e612d + .word 0x5d365b6d + .word 0x23204020 + .word 0x7e587e78 + .word 0x25 + .word 0x0 + .type string +; "~1Tblue-hit-anim[6] @ #x~X~%" +L232: + .word 0x1c + .word 0x6254317e + .word 0x2d65756c + .word 0x2d746968 + .word 0x6d696e61 + .word 0x205d365b + .word 0x78232040 + .word 0x257e587e + .word 0x0 + .word 0x0 + .word 0x0 + .type string +; "~1Tprev-blue-hit: ~D~%" +L233: + .word 0x16 + .word 0x7054317e + .word 0x2d766572 + .word 0x65756c62 + .word 0x7469682d + .word 0x447e203a + .word 0x257e + .type string +; "~1Tanim-index: ~D~%" +L234: + .word 0x13 + .word 0x6154317e + .word 0x2d6d696e + .word 0x65646e69 + .word 0x7e203a78 + .word 0x257e44 + .word 0x0 + .type string +; "[~8x] ~A~%" +L235: + .word 0xa + .word 0x78387e5b + .word 0x417e205d + .word 0x257e ;------------------------------------------ ; main segment ;------------------------------------------ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-wheel-flip) +; .function (method 17 hud-ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x70, fp? 1 ra? 1 ep? 1 - ;stack_vars: 32 bytes at 16 - ;gprs: gp s5 s4 - ;fprs: f30 + ;stack: total 0x20, fp? 1 ra? 1 ep? 1 + ;gprs: gp ;; Warnings: -;; INFO: Return type mismatch object vs none. -;; Used lq/sq +;; WARN: Type Propagation failed: Function (method 17 hud-ashelin) has unknown type -;; a0-0: float a1-0: float s4-1: vector s6-0: target gp-2: vector f0-21: float f1-6: float f1-7: float -;; f30-0: float f30-1: float L1: - daddiu sp, sp, -112 + daddiu sp, sp, -32 sd ra, 0(sp) sd fp, 8(sp) or fp, t9, r0 - sq s4, 48(sp) - sq s5, 64(sp) - sq gp, 80(sp) - swc1 f30, 96(sp) + sq gp, 16(sp) B0: - or gp, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: float ] -> [gp: float ] - or s5, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: float ] -> [s5: float ] - lw t9, ja-channel-push!(s7);; [ 2] (set! t9-0 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 3] (set! a0-1 1) [] -> [a0: ] - addiu a1, r0, 12 ;; [ 4] (set! a1-1 12) [] -> [a1: ] - jalr ra, t9 ;; [ 5] (call! a0-1 a1-1) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] + or gp, a0, r0 ;; [ 0] (set! gp a0) + lw a0, *gui-control*(s7) ;; [ 1] (set! a0 *gui-control*) + lwu v1, -4(a0) ;; [ 2] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 52(v1) ;; [ 3] (set! t9 (l.wu (+ v1 52))) + or a1, gp, r0 ;; [ 4] (set! a1 gp) + addiu a2, r0, 81 ;; [ 5] (set! a2 81) + addiu a3, r0, 8 ;; [ 6] (set! a3 8) + lwu t0, 0(gp) ;; [ 7] (set! t0 (l.wu gp)) + lui t1, 18336 ;; [ 8] (set! t1 #x47a00000) + addiu t2, r0, 0 ;; [ 9] (set! t2 0) + jalr ra, t9 ;; [ 10] (call!) sll v0, ra, 0 - lwu v1, 120(s6) ;; [ 6] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 7] (set! v1-1 (l.wu (+ v1-0 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s4, r0, v1 ;; [ 8] (set! s4-0 (+ v1-1 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s4: joint-control-channel ] - lw t9, joint-control-channel-group-eval!(s7);; [ 9] (set! t9-1 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, s4, r0 ;; [ 10] (set! a0-2 s4-0) [s4: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 11] (set! v1-2 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 12] (set! v1-3 (l.wu (+ v1-2 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 312(v1) ;; [ 13] (set! a1-2 (l.wu (+ v1-3 312))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [ 14] (set! a2-0 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 15] (call! a0-2 a1-2 a2-0) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] + or v1, v0, r0 ;; [ 11] (set! v1 v0) + sw v1, 2972(gp) ;; [ 12] (s.w! (+ gp 2972) v1) + lwu v1, 144(gp) ;; [ 13] (set! v1 (l.wu (+ gp 144))) + ori v1, v1, 4 ;; [ 14] (set! v1 (logior v1 4)) + sw v1, 144(gp) ;; [ 15] (s.w! (+ gp 144) v1) + lw t9, lookup-texture-by-id(s7);; [ 16] (set! t9 lookup-texture-by-id) + lui v1, 26528 ;; [ 17] (set! a0 #x67a01e00) + ori a0, v1, 7680 + jalr ra, t9 ;; [ 18] (call!) sll v0, ra, 0 - mtc1 f0, r0 ;; [ 16] (set! f0-0 0) [] -> [] - swc1 f0, 16(s4) ;; [ 17] (s.f! (+ s4-0 16) f0-0) [s4: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [ 18] (set! v1-4 (fpr->gpr f0-0)) [] -> [v1: float ] - lui v1, L786 ;; [ 19] (set! v1-5 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [ 20] (set! f30-0 (l.f v1-5)) [v1: ] -> [] -B1: + sw v0, 1004(gp) ;; [ 19] (s.w! (+ gp 1004) v0) + lui v1, 16704 ;; [ 20] (set! v1 #x41400000) + mtc1 f0, v1 ;; [ 21] (set! f0 (gpr->fpr v1)) + swc1 f0, 992(gp) ;; [ 22] (s.f! (+ gp 992) f0) + lui v1, 16691 ;; [ 23] (set! v1 #x41333333) + ori v1, v1, 13107 + mtc1 f0, v1 ;; [ 24] (set! f0 (gpr->fpr v1)) + swc1 f0, 996(gp) ;; [ 25] (s.f! (+ gp 996) f0) + lui v1, 255 ;; [ 26] (set! v1 #xfffff2) + ori v1, v1, 65522 + sw v1, 964(gp) ;; [ 27] (s.w! (+ gp 964) v1) + lw t9, lookup-texture-by-id(s7);; [ 28] (set! t9 lookup-texture-by-id) + lui v1, 26528 ;; [ 29] (set! a0 #x67a02500) + ori a0, v1, 9472 + jalr ra, t9 ;; [ 30] (call!) + sll v0, ra, 0 + + sw v0, 1068(gp) ;; [ 31] (s.w! (+ gp 1068) v0) + lui v1, 255 ;; [ 32] (set! v1 #xfffff0) + ori v1, v1, 65520 + sw v1, 1028(gp) ;; [ 33] (s.w! (+ gp 1028) v1) + lw t9, lookup-texture-by-id(s7);; [ 34] (set! t9 lookup-texture-by-id) + lui v1, 26528 ;; [ 35] (set! a0 #x67a01200) + ori a0, v1, 4608 + jalr ra, t9 ;; [ 36] (call!) + sll v0, ra, 0 + + sw v0, 1132(gp) ;; [ 37] (s.w! (+ gp 1132) v0) + lui v1, 255 ;; [ 38] (set! v1 #xffffff) + ori v1, v1, 65535 + sw v1, 1092(gp) ;; [ 39] (s.w! (+ gp 1092) v1) + lw t9, lookup-texture-by-name(s7);; [ 40] (set! t9 lookup-texture-by-name) + daddiu a0, fp, L219 ;; [ 41] (set! a0 L219) "hud-ashlyn-head" + or a1, s7, r0 ;; [ 42] (set! a1 #f) + or a2, s7, r0 ;; [ 43] (set! a2 #f) + jalr ra, t9 ;; [ 44] (call!) + sll v0, ra, 0 + + sw v0, 1196(gp) ;; [ 45] (s.w! (+ gp 1196) v0) + lui v1, 16256 ;; [ 46] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [ 47] (set! f0 (gpr->fpr v1)) + swc1 f0, 1184(gp) ;; [ 48] (s.f! (+ gp 1184) f0) + lui v1, 16307 ;; [ 49] (set! v1 #x3fb33333) + ori v1, v1, 13107 + mtc1 f0, v1 ;; [ 50] (set! f0 (gpr->fpr v1)) + swc1 f0, 1188(gp) ;; [ 51] (s.f! (+ gp 1188) f0) + lui v1, 255 ;; [ 52] (set! v1 #xffffff) + ori v1, v1, 65535 + sw v1, 1156(gp) ;; [ 53] (s.w! (+ gp 1156) v1) + or v0, r0, r0 ;; [ 54] (set! v0 0) + ld ra, 0(sp) + ld fp, 8(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 32 + + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! a0 *gui-control*) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 52))) + (set! a1 gp) + (set! a2 81) + (set! a3 8) + (set! t0 (l.wu gp)) + (set! t1 #x47a00000) + (set! t2 0) + (call!) + (set! v1 v0) + (s.w! (+ gp 2972) v1) + (set! v1 (l.wu (+ gp 144))) + (set! v1 (logior v1 4)) + (s.w! (+ gp 144) v1) + (set! t9 lookup-texture-by-id) + (set! a0 #x67a01e00) + (call!) + (s.w! (+ gp 1004) v0) + (set! v1 #x41400000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ gp 992) f0) + (set! v1 #x41333333) + (set! f0 (gpr->fpr v1)) + (s.f! (+ gp 996) f0) + (set! v1 #xfffff2) + (s.w! (+ gp 964) v1) + (set! t9 lookup-texture-by-id) + (set! a0 #x67a02500) + (call!) + (s.w! (+ gp 1068) v0) + (set! v1 #xfffff0) + (s.w! (+ gp 1028) v1) + (set! t9 lookup-texture-by-id) + (set! a0 #x67a01200) + (call!) + (s.w! (+ gp 1132) v0) + (set! v1 #xffffff) + (s.w! (+ gp 1092) v1) + (set! t9 lookup-texture-by-name) + (set! a0 L219) + (set! a1 #f) + (set! a2 #f) + (call!) + (s.w! (+ gp 1196) v0) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ gp 1184) f0) + (set! v1 #x3fb33333) + (set! f0 (gpr->fpr v1)) + (s.f! (+ gp 1188) f0) + (set! v1 #xffffff) + (s.w! (+ gp 1156) v1) + (set! v0 0) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 16 hud-ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x10, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 +;; Warnings: +;; WARN: Type Propagation failed: Function (method 16 hud-ashelin) has unknown type + L2: - lw t9, ja-aframe-num(s7) ;; [ 21] (set! t9-2 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 22] (set! a0-3 0) [] -> [a0: ] - jalr ra, t9 ;; [ 23] (call! a0-3) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] + daddiu sp, sp, -16 + sd ra, 0(sp) +B0: + lui v1, 17096 ;; [ 0] (set! v1 #x42c80000) + mtc1 f0, v1 ;; [ 1] (set! f0 (gpr->fpr v1)) + lw v1, *game-info*(s7) ;; [ 2] (set! v1 *game-info*) + lwc1 f1, 516(v1) ;; [ 3] (set! f1 (l.f (+ v1 516))) + mul.s f0, f0, f1 ;; [ 4] (set! f0 (*.s f0 f1)) + cvt.w.s f0, f0 ;; [ 5] (set! f0 (f2i f0)) + swc1 f0, 152(a0) ;; [ 6] (s.f! (+ a0 152) f0) + lw v1, hud(s7) ;; [ 7] (set! v1 hud) + lwu t9, 80(v1) ;; [ 8] (set! t9 (l.wu (+ v1 80))) + jalr ra, t9 ;; [ 9] (call!) sll v0, ra, 0 - mtc1 f0, v0 ;; [ 24] (set! f0-1 (gpr->fpr v0-2)) [v0: float ] -> [] - lui v1, L750 ;; [ 25] (set! v1-6 L750) [] -> [v1: ] - ori v1, v1, L750 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 26] (set! f1-0 (l.f v1-6)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 27] (b! (>=.s f0-1 f1-0) L3 (set! v1-7 #t)) [] -> [v1: symbol ] - bc1f L3 - daddiu v1, s7, 8 + or v0, r0, r0 ;; [ 10] (set! v0 0) + ld ra, 0(sp) + jr ra + daddiu sp, sp, 16 + + sll r0, r0, 0 + sll r0, r0, 0 + + (set! v1 #x42c80000) + (set! f0 (gpr->fpr v1)) + (set! v1 *game-info*) + (set! f1 (l.f (+ v1 516))) + (set! f0 (*.s f0 f1)) + (set! f0 (f2i f0)) + (s.f! (+ a0 152) f0) + (set! v1 hud) + (set! t9 (l.wu (+ v1 80))) + (call!) + (set! v0 0) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 15 hud-ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x20, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp +;; Warnings: +;; WARN: Type Propagation failed: Function (method 15 hud-ashelin) has unknown type -B2: - or v1, s7, r0 ;; [ 28] (set! v1-7 #f) [] -> [v1: '#f ] -B3: L3: - beql s7, v1, L4 ;; [ 29] (bl! (not v1-7) L4 (no-delay!)) [v1: symbol ] -> [] -B4: - or v1, v1, r0 ;; [ 30] (set! v1-8 v1-7) [v1: symbol ] -> [v1: symbol ] + daddiu sp, sp, -32 + sd ra, 0(sp) + sq gp, 16(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + lw t9, set-hud-piece-position!(s7);; [ 1] (set! t9 set-hud-piece-position!) + daddiu a0, gp, 1084 ;; [ 2] (set! a0 (+ gp 1084)) + lui v1, 16880 ;; [ 3] (set! v1 #x41f00000) + mtc1 f0, v1 ;; [ 4] (set! f0 (gpr->fpr v1)) + lui v1, -15614 ;; [ 5] (set! v1 -1023279104) + mtc1 f1, v1 ;; [ 6] (set! f1 (gpr->fpr v1)) + lwc1 f2, 140(gp) ;; [ 7] (set! f2 (l.f (+ gp 140))) + mul.s f1, f1, f2 ;; [ 8] (set! f1 (*.s f1 f2)) + add.s f0, f0, f1 ;; [ 9] (set! f0 (+.s f0 f1)) + cvt.w.s f0, f0 ;; [ 10] (set! f0 (f2i f0)) + mfc1 a1, f0 ;; [ 11] (set! a1 (fpr->gpr f0)) + lui v1, 16880 ;; [ 12] (set! v1 #x41f00000) + mtc1 f0, v1 ;; [ 13] (set! f0 (gpr->fpr v1)) + lui v1, -15672 ;; [ 14] (set! v1 -1027080192) + mtc1 f1, v1 ;; [ 15] (set! f1 (gpr->fpr v1)) + lwc1 f2, 140(gp) ;; [ 16] (set! f2 (l.f (+ gp 140))) + mul.s f1, f1, f2 ;; [ 17] (set! f1 (*.s f1 f2)) + add.s f0, f0, f1 ;; [ 18] (set! f0 (+.s f0 f1)) + cvt.w.s f0, f0 ;; [ 19] (set! f0 (f2i f0)) + mfc1 a2, f0 ;; [ 20] (set! a2 (fpr->gpr f0)) + jalr ra, t9 ;; [ 21] (call!) + sll v0, ra, 0 -B5: - lwu v1, 108(s6) ;; [ 31] (set! v1-9 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 2380(v1) ;; [ 32] (set! v1-10 (l.wu (+ v1-9 2380))) [v1: control-info ] -> [v1: symbol ] - beq s7, v1, L4 ;; [ 33] (b! (not v1-10) L4 (set! v1-8 #t)) [v1: symbol ] -> [v1: symbol ] - daddiu v1, s7, 8 + lui v1, 17206 ;; [ 22] (set! v1 #x43360b61) + ori v1, v1, 2913 + mtc1 f0, v1 ;; [ 23] (set! f0 (gpr->fpr v1)) + addiu v1, r0, 270 ;; [ 24] (set! v1 270) + addiu a0, r0, 90 ;; [ 25] (set! a0 90) + lw a1, 148(gp) ;; [ 26] (set! a1 (l.w (+ gp 148))) + mult3 a0, a0, a1 ;; [ 27] (set! a0 (*.si a0 a1)) + addiu a1, r0, 100 ;; [ 28] (set! a1 100) + div a0, a1 ;; [ 29] (set! a0 (/.si a0 a1)) + mflo a0 + dsubu v1, v1, a0 ;; [ 30] (set! v1 (- v1 a0)) + mtc1 f1, v1 ;; [ 31] (set! f1 (gpr->fpr v1)) + cvt.s.w f1, f1 ;; [ 32] (set! f1 (i2f f1)) + mul.s f0, f0, f1 ;; [ 33] (set! f0 (*.s f0 f1)) + swc1 f0, 1000(gp) ;; [ 34] (s.f! (+ gp 1000) f0) + lw t9, set-as-offset-from!(s7);; [ 35] (set! t9 set-as-offset-from!) + daddiu a0, gp, 956 ;; [ 36] (set! a0 (+ gp 956)) + daddiu a1, gp, 1084 ;; [ 37] (set! a1 (+ gp 1084)) + addiu a2, r0, 40 ;; [ 38] (set! a2 40) + addiu a3, r0, 16 ;; [ 39] (set! a3 16) + jalr ra, t9 ;; [ 40] (call!) + sll v0, ra, 0 + + lw t9, set-as-offset-from!(s7);; [ 41] (set! t9 set-as-offset-from!) + daddiu a0, gp, 1020 ;; [ 42] (set! a0 (+ gp 1020)) + daddiu a1, gp, 1084 ;; [ 43] (set! a1 (+ gp 1084)) + addiu a2, r0, 1 ;; [ 44] (set! a2 1) + addiu a3, r0, 16 ;; [ 45] (set! a3 16) + jalr ra, t9 ;; [ 46] (call!) + sll v0, ra, 0 + + lw t9, set-as-offset-from!(s7);; [ 47] (set! t9 set-as-offset-from!) + daddiu a0, gp, 1148 ;; [ 48] (set! a0 (+ gp 1148)) + daddiu a1, gp, 1084 ;; [ 49] (set! a1 (+ gp 1084)) + addiu a2, r0, 8 ;; [ 50] (set! a2 8) + addiu a3, r0, 2 ;; [ 51] (set! a3 2) + jalr ra, t9 ;; [ 52] (call!) + sll v0, ra, 0 + + lw v1, hud(s7) ;; [ 53] (set! v1 hud) + lwu t9, 76(v1) ;; [ 54] (set! t9 (l.wu (+ v1 76))) + or a0, gp, r0 ;; [ 55] (set! a0 gp) + jalr ra, t9 ;; [ 56] (call!) + sll v0, ra, 0 + + or v0, r0, r0 ;; [ 57] (set! v0 0) + ld ra, 0(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 32 + + sll r0, r0, 0 + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! t9 set-hud-piece-position!) + (set! a0 (+ gp 1084)) + (set! v1 #x41f00000) + (set! f0 (gpr->fpr v1)) + (set! v1 -1023279104) + (set! f1 (gpr->fpr v1)) + (set! f2 (l.f (+ gp 140))) + (set! f1 (*.s f1 f2)) + (set! f0 (+.s f0 f1)) + (set! f0 (f2i f0)) + (set! a1 (fpr->gpr f0)) + (set! v1 #x41f00000) + (set! f0 (gpr->fpr v1)) + (set! v1 -1027080192) + (set! f1 (gpr->fpr v1)) + (set! f2 (l.f (+ gp 140))) + (set! f1 (*.s f1 f2)) + (set! f0 (+.s f0 f1)) + (set! f0 (f2i f0)) + (set! a2 (fpr->gpr f0)) + (call!) + (set! v1 #x43360b61) + (set! f0 (gpr->fpr v1)) + (set! v1 270) + (set! a0 90) + (set! a1 (l.w (+ gp 148))) + (set! a0 (*.si a0 a1)) + (set! a1 100) + (set! a0 (/.si a0 a1)) + (set! v1 (- v1 a0)) + (set! f1 (gpr->fpr v1)) + (set! f1 (i2f f1)) + (set! f0 (*.s f0 f1)) + (s.f! (+ gp 1000) f0) + (set! t9 set-as-offset-from!) + (set! a0 (+ gp 956)) + (set! a1 (+ gp 1084)) + (set! a2 40) + (set! a3 16) + (call!) + (set! t9 set-as-offset-from!) + (set! a0 (+ gp 1020)) + (set! a1 (+ gp 1084)) + (set! a2 1) + (set! a3 16) + (call!) + (set! t9 set-as-offset-from!) + (set! a0 (+ gp 1148)) + (set! a1 (+ gp 1084)) + (set! a2 8) + (set! a3 2) + (call!) + (set! v1 hud) + (set! t9 (l.wu (+ v1 76))) + (set! a0 gp) + (call!) + (set! v0 0) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 206 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x20, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp +;; Warnings: +;; WARN: Type Propagation failed: Function (method 206 ashelin) has unknown type -B6: - or v1, s7, r0 ;; [ 34] (set! v1-8 #f) [] -> [v1: '#f ] -B7: L4: - beq s7, v1, L5 ;; [ 35] (b! (not v1-8) L5 (set! v1-11 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B8: - lw v1, target-dangerous-event-handler(s7);; [ 36] (set! v1-12 target-dangerous-event-handler) - ;; [] -> [v1: (function process int symbol event-message-block object :behavior target) ] - sw v1, 64(s6) ;; [ 37] (s.w! (+ self 64) v1-12) - ;; [v1: (function process int symbol event-message-block object :behavior target) s6: target ] -> [] - lw t9, target-start-attack(s7);; [ 38] (set! t9-3 target-start-attack) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 39] (call!) [t9: (function none :behavior target) ] -> [v0: none ] + daddiu sp, sp, -32 + sd ra, 0(sp) + sq gp, 16(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + lw v1, bot(s7) ;; [ 1] (set! v1 bot) + lwu t9, 840(v1) ;; [ 2] (set! t9 (l.wu (+ v1 840))) + or a0, gp, r0 ;; [ 3] (set! a0 gp) + jalr ra, t9 ;; [ 4] (call!) sll v0, ra, 0 - lw t9, target-danger-set!(s7);; [ 40] (set! t9-4 target-danger-set!) - ;; [] -> [t9: (function symbol symbol float :behavior target) ] - daddiu a0, s7, flip ;; [ 41] (set! a0-4 'flip) [] -> [a0: symbol ] - or a1, s7, r0 ;; [ 42] (set! a1-3 #f) [] -> [a1: '#f ] - jalr ra, t9 ;; [ 43] (call! a0-4 a1-3) - ;; [a0: symbol a1: '#f t9: (function symbol symbol float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 + addiu v1, r0, -257 ;; [ 5] (set! v1 -257) + ld a0, 204(gp) ;; [ 6] (set! a0 (l.d (+ gp 204))) + and v0, v1, a0 ;; [ 7] (set! v0 (logand v1 a0)) + sd v0, 204(gp) ;; [ 8] (s.d! (+ gp 204) v0) + ld ra, 0(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 32 - or v1, v0, r0 ;; [ 44] (set! v1-13 v0-4) [v0: float ] -> [v1: float ] -B9: + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! v1 bot) + (set! t9 (l.wu (+ v1 840))) + (set! a0 gp) + (call!) + (set! v1 -257) + (set! a0 (l.d (+ gp 204))) + (set! v0 (logand v1 a0)) + (s.d! (+ gp 204) v0) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 136 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x00, fp? 0 ra? 0 ep? 1 +;; Warnings: +;; WARN: Type Propagation failed: Function (method 136 ashelin) has unknown type + +B0: L5: - lwu a0, 128(s6) ;; [ 45] (set! a0-5 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [ 46] (set! v1-14 (l.wu (+ a0-5 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 52(v1) ;; [ 47] (set! t9-5 (l.wu (+ v1-14 52))) - ;; [v1: ] -> [t9: ] - jalr ra, t9 ;; [ 48] (call! a0-5) - ;; [a0: align-control t9: ] -> [v0: transformq ] - sll v0, ra, 0 + lwu v1, 8(s6) ;; [ 0] (set! v1 (l.wu (+ s6 8))) + ld v1, 20(v1) ;; [ 1] (set! v1 (l.d (+ v1 20))) + ld a1, 308(a0) ;; [ 2] (set! a1 (l.d (+ a0 308))) + dsubu v1, v1, a1 ;; [ 3] (set! v1 (- v1 a1)) + slti v1, v1, 600 ;; [ 4] (b! (<.si v1 600) L6 (set! v0 #f)) + bne v1, r0, L6 + or v0, s7, r0 - or v1, v0, r0 ;; [ 49] (set! v1-15 v0-5) [v0: transformq ] -> [v1: transformq ] - lw t9, ja-max?(s7) ;; [ 50] (set! t9-6 ja-max?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 51] (set! a0-6 0) [] -> [a0: ] - jalr ra, t9 ;; [ 52] (call! a0-6) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - bne s7, v0, L6 ;; [ 53] (b! (truthy v0-6) L6 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B10: - lwu a0, 128(s6) ;; [ 54] (set! a0-7 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [ 55] (set! v1-16 (l.wu (+ a0-7 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 56(v1) ;; [ 56] (set! t9-7 (l.wu (+ v1-16 56))) - ;; [v1: ] -> [t9: ] - addiu a1, r0, 6 ;; [ 57] (set! a1-4 6) [] -> [a1: ] - lui v1, L786 ;; [ 58] (set! v1-17 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a2, 0(v1) ;; [ 59] (set! a2-1 (l.w v1-17)) [v1: ] -> [a2: int ] - mtc1 f0, gp ;; [ 60] (set! f0-2 (gpr->fpr arg0)) [gp: float ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 61] (set! v1-18 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f1, 132(v1) ;; [ 62] (set! f1-1 (l.f (+ v1-18 132))) [v1: target-bank ] -> [] - div.s f0, f0, f1 ;; [ 63] (set! f0-3 (/.s f0-2 f1-1)) [] -> [] - mfc1 a3, f0 ;; [ 64] (set! a3-0 (fpr->gpr f0-3)) [] -> [a3: float ] - mtc1 f0, s5 ;; [ 65] (set! f0-4 (gpr->fpr arg1)) [s5: float ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 66] (set! v1-19 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f1, 136(v1) ;; [ 67] (set! f1-2 (l.f (+ v1-19 136))) [v1: target-bank ] -> [] - div.s f0, f0, f1 ;; [ 68] (set! f0-5 (/.s f0-4 f1-2)) [] -> [] - mul.s f0, f30, f0 ;; [ 69] (set! f0-6 (*.s f30-0 f0-5)) [] -> [] - mfc1 t0, f0 ;; [ 70] (set! t0-0 (fpr->gpr f0-6)) [] -> [t0: float ] - jalr ra, t9 ;; [ 71] (call! a0-7 a1-4 a2-1 a3-0 t0-0) - ;; [a0: align-control a1: a2: int a3: float t0: float t9: ] -> [v0: trsqv ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 72] (set! v1-20 v0-7) [v0: trsqv ] -> [v1: trsqv ] - beq r0, r0, L7 ;; [ 73] (b! #t L7 (nop!)) [] -> [] - sll r0, r0, 0 - -B11: +B1: + addiu v1, r0, -257 ;; [ 5] (set! v1 -257) + ld a1, 204(a0) ;; [ 6] (set! a1 (l.d (+ a0 204))) + and v0, v1, a1 ;; [ 7] (set! v0 (logand v1 a1)) + sd v0, 204(a0) ;; [ 8] (s.d! (+ a0 204) v0) +B2: L6: - lwu a0, 128(s6) ;; [ 74] (set! a0-8 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [ 75] (set! v1-21 (l.wu (+ a0-8 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 56(v1) ;; [ 76] (set! t9-8 (l.wu (+ v1-21 56))) - ;; [v1: ] -> [t9: ] - addiu a1, r0, 4 ;; [ 77] (set! a1-5 4) [] -> [a1: ] - lui v1, L786 ;; [ 78] (set! v1-22 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a2, 0(v1) ;; [ 79] (set! a2-2 (l.w v1-22)) [v1: ] -> [a2: int ] - lui v1, L786 ;; [ 80] (set! v1-23 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a3, 0(v1) ;; [ 81] (set! a3-1 (l.w v1-23)) [v1: ] -> [a3: int ] - mtc1 f0, s5 ;; [ 82] (set! f0-7 (gpr->fpr arg1)) [s5: float ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 83] (set! v1-24 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f1, 136(v1) ;; [ 84] (set! f1-3 (l.f (+ v1-24 136))) [v1: target-bank ] -> [] - div.s f0, f0, f1 ;; [ 85] (set! f0-8 (/.s f0-7 f1-3)) [] -> [] - mul.s f0, f30, f0 ;; [ 86] (set! f0-9 (*.s f30-0 f0-8)) [] -> [] - mfc1 t0, f0 ;; [ 87] (set! t0-1 (fpr->gpr f0-9)) [] -> [t0: float ] - jalr ra, t9 ;; [ 88] (call! a0-8 a1-5 a2-2 a3-1 t0-1) - ;; [a0: align-control a1: a2: int a3: int t0: float t9: ] -> [v0: trsqv ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 89] (set! v1-25 v0-8) [v0: trsqv ] -> [v1: trsqv ] -B12: -L7: - daddiu s4, sp, 16 ;; [ 90] (set! s4-1 (+ sp-0 16)) [sp: ] -> [s4: vector ] - sq r0, 0(s4) ;; [ 91] (s.q! s4-1 0) [s4: vector ] -> [] - lw t9, vector-matrix*!(s7);; [ 92] (set! t9-9 vector-matrix*!) [] -> [t9: (function vector vector matrix vector) ] - or a0, s4, r0 ;; [ 93] (set! a0-9 s4-1) [s4: vector ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 94] (set! v1-26 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a1, v1, 60 ;; [ 95] (set! a1-6 (+ v1-26 60)) [v1: control-info ] -> [a1: vector ] - lwu v1, 108(s6) ;; [ 96] (set! v1-27 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a2, v1, 924 ;; [ 97] (set! a2-3 (+ v1-27 924)) [v1: control-info ] -> [a2: matrix ] - jalr ra, t9 ;; [ 98] (call! a0-9 a1-6 a2-3) - ;; [a0: vector a1: vector a2: matrix t9: (function vector vector matrix vector) ] -> [v0: vector ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [ 99] (set! f0-10 0) [] -> [] - swc1 f0, 4(s4) ;; [100] (s.f! (+ s4-1 4) f0-10) [s4: vector ] -> [] - lw t9, vector-matrix*!(s7);; [101] (set! t9-10 vector-matrix*!) [] -> [t9: (function vector vector matrix vector) ] - lwu v1, 108(s6) ;; [102] (set! v1-28 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a0, v1, 18924 ;; [103] (set! a0-10 (+ v1-28 #x49ec)) [v1: control-info ] -> [a0: vector ] - lwu v1, 108(s6) ;; [104] (set! v1-29 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a2, v1, 988 ;; [105] (set! a2-4 (+ v1-29 988)) [v1: control-info ] -> [a2: matrix ] - or a1, s4, r0 ;; [106] (set! a1-7 s4-1) [s4: vector ] -> [a1: vector ] - jalr ra, t9 ;; [107] (call! a0-10 a1-7 a2-4) - ;; [a0: vector a1: vector a2: matrix t9: (function vector vector matrix vector) ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [108] (set! v1-30 v0-10) [v0: vector ] -> [v1: vector ] - lwu s6, 44(s6) ;; [109] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [110] (set! v1-31 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [111] (set! v1-32 (l.wu (+ v1-31 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [112] (set! a0-11 (+ v1-32 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [113] (set! v1-33 (l.wu (+ a0-11 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [114] (set! v1-34 (l.wu (+ v1-33 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [115] (set! v1-35 (l.h (+ v1-34 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [116] (set! v1-36 (+ v1-35 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [117] (set! f0-11 (gpr->fpr v1-36)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [118] (set! f0-12 (i2f f0-11)) [] -> [] - swc1 f0, 24(a0) ;; [119] (s.f! (+ a0-11 24) f0-12) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [120] (set! v1-37 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [121] (set! f0-13 (l.f v1-37)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [122] (s.f! (+ a0-11 28) f0-13) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [123] (set! t9-11 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [124] (set! a1-8 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [125] (set! a2-5 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [126] (call! a0-11 a1-8 a2-5) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [127] (set! v1-38 v0-11) [v0: int ] -> [v1: int ] - lui v1, L786 ;; [128] (set! v1-39 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [129] (set! f0-14 (l.f v1-39)) [v1: ] -> [] - lwu v1, 108(s6) ;; [130] (set! v1-40 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 18940(v1) ;; [131] (set! f1-4 (l.f (+ v1-40 #x49fc))) [v1: control-info ] -> [] - min.s f0, f0, f1 ;; [132] (set! f0-15 (min.s f0-14 f1-4)) [] -> [] - mul.s f30, f30, f0 ;; [133] (set! f30-0 (*.s f30-0 f0-15)) [] -> [] - lw t9, ja-max?(s7) ;; [134] (set! t9-12 ja-max?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [135] (set! a0-12 0) [] -> [a0: ] - jalr ra, t9 ;; [136] (call! a0-12) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - bnel s7, v0, L9 ;; [137] (bl! (truthy v0-12) L9 (no-delay!)) [v0: symbol ] -> [] -B13: - or v1, v0, r0 ;; [138] (set! v1-41 v0-12) [v0: symbol ] -> [v1: symbol ] - -B14: - lw t9, ja-aframe-num(s7) ;; [139] (set! t9-13 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [140] (set! a0-13 0) [] -> [a0: ] - jalr ra, t9 ;; [141] (call! a0-13) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [142] (set! f0-16 (gpr->fpr v0-13)) [v0: float ] -> [] - lui v1, L749 ;; [143] (set! v1-42 L749) [] -> [v1: ] - ori v1, v1, L749 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [144] (set! f1-5 (l.f v1-42)) [v1: ] -> [] - c.lt.s f0, f1 ;; [145] (b! (>=.s f0-16 f1-5) L8 (set! v1-43 #t)) [] -> [v1: symbol ] - bc1f L8 - daddiu v1, s7, 8 - -B15: - or v1, s7, r0 ;; [146] (set! v1-43 #f) [] -> [v1: '#f ] -B16: -L8: - beql s7, v1, L9 ;; [147] (bl! (not v1-43) L9 (no-delay!)) [v1: symbol ] -> [] -B17: - or v1, v1, r0 ;; [148] (set! v1-41 v1-43) [v1: symbol ] -> [v1: symbol ] - -B18: - daddiu v1, s7, 8 ;; [149] (set! v1-44 #t) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [150] (set! a0-14 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 268(a0) ;; [151] (set! a0-15 (l.d (+ a0-14 268))) [a0: control-info ] -> [a0: cshape-moving-flags ] - andi a0, a0, 1 ;; [152] (set! a0-16 (logand a0-15 1)) - ;; [a0: cshape-moving-flags ] -> [a0: cshape-moving-flags ] - movz v1, s7, a0 ;; [153] (cmove-#f-zero v1-41 a0-16 v1-44) - ;; [v1: symbol a0: cshape-moving-flags ] -> [v1: symbol ] -B19: -L9: - beq s7, v1, L2 ;; [154] (b! (not v1-41) L2 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B20: - or v1, s7, r0 ;; [155] (set! v1-45 #f) [] -> [v1: '#f ] - lw v1, *display*(s7) ;; [156] (set! v1-46 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [157] (set! v1-47 (l.d (+ v1-46 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [158] (s.d! (+ self 164) v1-47) [v1: time-frame s6: target ] -> [] - beq r0, r0, L15 ;; [159] (b! #t L15 (nop!)) [] -> [] - sll r0, r0, 0 - -B21: -L10: - lw v1, *display*(s7) ;; [160] (set! v1-48 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [161] (set! v1-49 (l.d (+ v1-48 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [162] (set! a0-17 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [163] (set! v1-50 (- v1-49 a0-17)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti v1, v1, 3 ;; [164] (b! (<.si v1-50 3) L12 (set! v1-51 #f)) [v1: time-frame ] -> [v1: '#f ] - bne v1, r0, L12 - or v1, s7, r0 - -B22: - lwu v1, 120(s6) ;; [165] (set! v1-52 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [166] (set! v1-53 (l.w (+ v1-52 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [167] (b! (<=0.si v1-53) L11 (set! v1-54 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L11 - or v1, s7, r0 - -B23: - lwu v1, 120(s6) ;; [168] (set! v1-55 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [169] (set! v1-56 (l.wu (+ v1-55 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [170] (set! v1-54 (l.wu (+ v1-56 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B24: -L11: - lwu a0, 116(s6) ;; [171] (set! a0-18 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [172] (set! a0-19 (l.wu (+ a0-18 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 180(a0) ;; [173] (set! a0-20 (l.wu (+ a0-19 180))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [174] (set! a0-21 (= v1-54 a0-20)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - bne s7, a0, L12 ;; [175] (b! (truthy a0-21) L12 (set! v1-57 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B25: - lw t9, ja-channel-push!(s7);; [176] (set! t9-14 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [177] (set! a0-22 1) [] -> [a0: ] - addiu a1, r0, 30 ;; [178] (set! a1-9 30) [] -> [a1: ] - jalr ra, t9 ;; [179] (call! a0-22 a1-9) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [180] (set! v1-58 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [181] (set! v1-59 (l.wu (+ v1-58 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [182] (set! gp-1 (+ v1-59 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lw t9, joint-control-channel-group-eval!(s7);; [183] (set! t9-15 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, gp, r0 ;; [184] (set! a0-23 gp-1) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [185] (set! v1-60 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [186] (set! v1-61 (l.wu (+ v1-60 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 180(v1) ;; [187] (set! a1-10 (l.wu (+ v1-61 180))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [188] (set! a2-6 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [189] (call! a0-23 a1-10 a2-6) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [190] (set! f0-17 0) [] -> [] - swc1 f0, 16(gp) ;; [191] (s.f! (+ gp-1 16) f0-17) [gp: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [192] (set! v1-62 (fpr->gpr f0-17)) [] -> [v1: float ] -B26: -L12: - daddiu gp, sp, 32 ;; [193] (set! gp-2 (+ sp-0 32)) [sp: ] -> [gp: vector ] - sq r0, 0(gp) ;; [194] (s.q! gp-2 0) [gp: vector ] -> [] - lwu v1, 108(s6) ;; [195] (set! v1-63 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [196] (set! v1-64 (l.wu (+ v1-63 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [197] (set! a0-24 (+ v1-64 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [198] (set! v1-65 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [199] (set! v1-66 (+ v1-65 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [200] (set! f0-18 (vec3dot a0-24 v1-66)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [201] (set! v1-67 (fpr->gpr f0-18)) [] -> [v1: float ] - mtc1 f30, v1 ;; [202] (set! f30-1 (gpr->fpr v1-67)) [v1: float ] -> [] - mtc1 f0, r0 ;; [203] (set! f0-19 0) [] -> [] - or v1, gp, r0 ;; [204] (set! v1-68 gp-2) [gp: vector ] -> [v1: vector ] - lwu a0, 108(s6) ;; [205] (set! a0-25 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 60 ;; [206] (set! a0-26 (+ a0-25 60)) [a0: control-info ] -> [a0: vector ] - or a1, gp, r0 ;; [207] (set! a1-11 gp-2) [gp: vector ] -> [a1: vector ] - lwu a2, 108(s6) ;; [208] (set! a2-7 (l.wu (+ self 108))) [s6: target ] -> [a2: control-info ] - lwu a2, 432(a2) ;; [209] (set! a2-8 (l.wu (+ a2-7 432))) [a2: control-info ] -> [a2: dynamics ] - daddiu a2, a2, 28 ;; [210] (set! a2-9 (+ a2-8 28)) [a2: dynamics ] -> [a2: vector ] - mov.s f0, f30 ;; [211] (set! f0-20 f30-1) [] -> [] - lqc2 vf1, 0(a2) ;; [212] (set! a1-12 (vector-float*!2 a1-11 a2-9 f0-20)) - ;; [a1: vector a2: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - lqc2 vf4, 0(a0) ;; [213] (set! v1-69 (vector-!2 v1-68 a0-26 a1-12)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf5, 0(a1) - vmove.w vf6, vf0 - vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lw t9, vector-length(s7) ;; [214] (set! t9-16 vector-length) [] -> [t9: (function vector float) ] - or a0, gp, r0 ;; [215] (set! a0-27 gp-2) [gp: vector ] -> [a0: vector ] - jalr ra, t9 ;; [216] (call! a0-27) [a0: vector t9: (function vector float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f1, v0 ;; [217] (set! f1-6 (gpr->fpr v0-16)) [v0: float ] -> [] - mov.s f0, f1 ;; [218] (set! f0-21 f1-6) [] -> [] - lui v1, L772 ;; [219] (set! v1-70 L772) [] -> [v1: ] - ori v1, v1, L772 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [220] (set! f2-0 (l.f v1-70)) [v1: ] -> [] - mul.s f1, f2, f1 ;; [221] (set! f1-7 (*.s f2-0 f1-6)) [] -> [] - lwu v1, 108(s6) ;; [222] (set! v1-71 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [223] (set! v1-72 (+ v1-71 60)) [v1: control-info ] -> [v1: vector ] - lwu a0, 108(s6) ;; [224] (set! a0-28 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 60 ;; [225] (set! a0-29 (+ a0-28 60)) [a0: control-info ] -> [a0: vector ] - lwu a1, 108(s6) ;; [226] (set! a1-13 (l.wu (+ self 108))) [s6: target ] -> [a1: control-info ] - lwu a1, 432(a1) ;; [227] (set! a1-14 (l.wu (+ a1-13 432))) [a1: control-info ] -> [a1: dynamics ] - daddiu a1, a1, 28 ;; [228] (set! a1-15 (+ a1-14 28)) [a1: dynamics ] -> [a1: vector ] - lqc2 vf1, 0(a1) ;; [229] (set! a0-30 (vector-float*!2 a0-29 a1-15 f30-1)) - ;; [a0: vector a1: vector ] -> [a0: vector ] - mfc1 a1, f30 - qmtc2.i vf2, a1 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a0) - or a1, gp, r0 ;; [230] (set! a1-16 gp-2) [gp: vector ] -> [a1: vector ] - div.s f0, f1, f0 ;; [231] (set! f0-22 (/.s f1-7 f0-21)) [] -> [] - lqc2 vf1, 0(gp) ;; [232] (set! a1-17 (vector-float*!2 a1-16 gp-2 f0-22)) - ;; [a1: vector gp: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - vmove.w vf6, vf0 ;; [233] (set! v1-73 (vector+!2 v1-72 a0-30 a1-17)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf4, 0(a0) - lqc2 vf5, 0(a1) - vadd.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lwu s6, 44(s6) ;; [234] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [235] (set! v1-74 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [236] (set! v1-75 (l.w (+ v1-74 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [237] (b! (<=0.si v1-75) L13 (set! v1-76 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L13 - or v1, s7, r0 - -B27: - lwu v1, 120(s6) ;; [238] (set! v1-77 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [239] (set! v1-78 (l.wu (+ v1-77 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [240] (set! v1-76 (l.wu (+ v1-78 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B28: -L13: - lwu a0, 116(s6) ;; [241] (set! a0-31 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [242] (set! a0-32 (l.wu (+ a0-31 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 180(a0) ;; [243] (set! a0-33 (l.wu (+ a0-32 180))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [244] (set! a0-34 (= v1-76 a0-33)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L14 ;; [245] (b! (not a0-34) L14 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B29: - lwu v1, 120(s6) ;; [246] (set! v1-79 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [247] (set! v1-80 (l.wu (+ v1-79 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [248] (set! a0-35 (+ v1-80 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lui v1, L786 ;; [249] (set! v1-81 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [250] (set! f0-23 (l.f v1-81)) [v1: ] -> [] - swc1 f0, 24(a0) ;; [251] (s.f! (+ a0-35 24) f0-23) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [252] (set! t9-17 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [253] (set! a1-18 #f) [] -> [a1: '#f ] - lw a2, num-func-loop!(s7) ;; [254] (set! a2-10 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [255] (call! a0-35 a1-18 a2-10) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [256] (set! v1-82 v0-17) [v0: int ] -> [v1: int ] - beq r0, r0, L15 ;; [257] (b! #t L15 (nop!)) [] -> [] - sll r0, r0, 0 - -B30: -L14: - lwu v1, 120(s6) ;; [258] (set! v1-83 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [259] (set! v1-84 (l.wu (+ v1-83 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu v1, r0, v1 ;; [260] (set! v1-85 (+ v1-84 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - lw a0, num-func-identity(s7);; [261] (set! a0-36 num-func-identity) - ;; [] -> [a0: (function joint-control-channel float float float) ] - sw a0, 20(v1) ;; [262] (s.w! (+ v1-85 20) a0-36) - ;; [v1: joint-control-channel a0: (function joint-control-channel float float float) ] -> [] - lwu a0, 12(v1) ;; [263] (set! a0-37 (l.wu (+ v1-85 12))) - ;; [v1: joint-control-channel ] -> [a0: art-joint-anim ] - lwu a0, 44(a0) ;; [264] (set! a0-38 (l.wu (+ a0-37 44))) - ;; [a0: art-joint-anim ] -> [a0: joint-anim-compressed ] - lh a0, 6(a0) ;; [265] (set! a0-39 (l.h (+ a0-38 6))) [a0: joint-anim-compressed ] -> [a0: int ] - daddiu a0, a0, -1 ;; [266] (set! a0-40 (+ a0-39 -1)) [a0: int ] -> [a0: ] - mtc1 f0, a0 ;; [267] (set! f0-24 (gpr->fpr a0-40)) [a0: ] -> [] - cvt.s.w f0, f0 ;; [268] (set! f0-25 (i2f f0-24)) [] -> [] - swc1 f0, 16(v1) ;; [269] (s.f! (+ v1-85 16) f0-25) [v1: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [270] (set! v1-86 (fpr->gpr f0-25)) [] -> [v1: float ] -B31: -L15: - lwu v1, 108(s6) ;; [271] (set! v1-87 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [272] (set! v1-88 (l.d (+ v1-87 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - andi v1, v1, 1 ;; [273] (set! v1-89 (logand v1-88 1)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - beq v1, r0, L10 ;; [274] (b! (zero? v1-89) L10 (nop!)) [v1: cshape-moving-flags ] -> [] - sll r0, r0, 0 - -B32: - or v1, s7, r0 ;; [275] (set! v1-90 #f) [] -> [v1: '#f ] - lw t9, target-land-effect(s7);; [276] (set! t9-18 target-land-effect) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [277] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw v1, *display*(s7) ;; [278] (set! v1-91 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [279] (set! v1-92 (l.d (+ v1-91 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 188(s6) ;; [280] (s.d! (+ self 188) v1-92) [v1: time-frame s6: target ] -> [] - lui v1, L19 ;; [281] (set! v1-93 L19) [] -> [v1: (function none :behavior target) ] - ori v1, v1, L19 - daddu v1, v1, fp - sw v1, 196(s6) ;; [282] (s.w! (+ self 196) v1-93) [v1: (function none :behavior target) s6: target ] -> [] - lwu v1, 120(s6) ;; [283] (set! v1-94 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [284] (set! v1-95 (l.w (+ v1-94 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [285] (b! (<=0.si v1-95) L16 (set! v1-96 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L16 - or v1, s7, r0 - -B33: - lwu v1, 120(s6) ;; [286] (set! v1-97 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [287] (set! v1-98 (l.wu (+ v1-97 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [288] (set! v1-96 (l.wu (+ v1-98 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B34: -L16: - lwu a0, 116(s6) ;; [289] (set! a0-41 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [290] (set! a0-42 (l.wu (+ a0-41 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 180(a0) ;; [291] (set! a0-43 (l.wu (+ a0-42 180))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [292] (set! a0-44 (= v1-96 a0-43)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L17 ;; [293] (b! (not a0-44) L17 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B35: - lw t9, enter-state(s7) ;; [294] (set! t9-19 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [295] (set! a0-45 #f) [] -> [a0: '#f ] - lw v1, target-hit-ground(s7);; [296] (set! v1-99 target-hit-ground) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [297] (s.w! (+ self 72) v1-99) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [298] (call! a0-45) [a0: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - beq r0, r0, L18 ;; [299] (b! #t L18 (nop!)) [] -> [] - sll r0, r0, 0 - -B36: -L17: - lw t9, enter-state(s7) ;; [300] (set! t9-20 enter-state) [] -> [t9: ] - lw v1, target-stance(s7) ;; [301] (set! v1-100 target-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [302] (s.w! (+ self 72) v1-100) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [303] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - -B37: -L18: - ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 96(sp) - lq gp, 80(sp) - lq s5, 64(sp) - lq s4, 48(sp) - jr ra - daddiu sp, sp, 112 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-wheel-flip) - ((arg0 float) (arg1 float)) - (ja-channel-push! 1 (seconds 0.04)) - (ja :group! (-> self draw art-group data 71) :num! min) - (let ((f30-0 1.0)) - (until (or (ja-max? 0) - (and (>= (ja-aframe-num 0) 4.0) (logtest? (-> self control status) (cshape-moving-flags onsurf))) - ) - (when (and (>= (ja-aframe-num 0) 3.0) (not (-> self control unknown-symbol30))) - (set! (-> self event-hook) target-dangerous-event-handler) - (target-start-attack) - (target-danger-set! 'flip #f) - ) - (compute-alignment! (-> self align)) - (if (not (ja-max? 0)) - (align! - (-> self align) - (align-opts adjust-y-vel adjust-xz-vel) - (the-as float 1.0) - (/ arg0 (-> *TARGET-bank* wheel-flip-art-height)) - (* f30-0 (/ arg1 (-> *TARGET-bank* wheel-flip-art-dist))) - ) - (align! - (-> self align) - (align-opts adjust-xz-vel) - (the-as float 1.0) - (the-as float 1.0) - (* f30-0 (/ arg1 (-> *TARGET-bank* wheel-flip-art-dist))) - ) - ) - (let ((s4-1 (new-stack-vector0))) - (vector-matrix*! s4-1 (-> self control transv) (-> self control unknown-matrix00)) - (set! (-> s4-1 y) 0.0) - (vector-matrix*! (-> self control unknown-vector120) s4-1 (-> self control unknown-matrix01)) - ) - (suspend) - (ja :num! (seek!)) - (set! f30-0 (* f30-0 (fmin 1.0 (-> self control unknown-float140)))) - ) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (while (zero? (logand (-> self control status) (cshape-moving-flags onsurf))) - (when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.01)) - (when (not (ja-group? (-> self draw art-group data 38))) - (ja-channel-push! 1 (seconds 0.1)) - (ja :group! (-> self draw art-group data 38) :num! min) - ) - ) - (let ((gp-2 (new-stack-vector0)) - (f30-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - ) - 0.0 - (vector-! gp-2 (-> self control transv) (vector-float*! gp-2 (-> self control dynam gravity-normal) f30-1)) - (let* ((f1-6 (vector-length gp-2)) - (f0-21 f1-6) - (f1-7 (* 0.9 f1-6)) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f30-1) - (vector-float*! gp-2 gp-2 (/ f1-7 f0-21)) - ) - ) - ) - (suspend) - (if (ja-group? (-> self draw art-group data 38)) - (ja :num! (loop!)) - (ja :num-func num-func-identity :frame-num max) - ) - ) - (target-land-effect) - (set! (-> self state-hook-time) (-> *display* base-frame-counter)) - (set! (-> self state-hook) - (lambda :behavior target - () - (cond - ((>= (- (-> *display* base-frame-counter) (-> self state-hook-time)) (seconds 0.1)) - (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) - ) - (else - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (go target-high-jump (-> *TARGET-bank* flip-jump-height-min) (-> *TARGET-bank* flip-jump-height-max) 'flip) - ) - ) - ) - (none) - ) - ) - (if (ja-group? (-> self draw art-group data 38)) - (go target-hit-ground #f) - (go target-stance) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (anon-function 1 target) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; Warnings: -;; INFO: Return type mismatch object vs none. - -;; s6-0: target -L19: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lw v1, *display*(s7) ;; [ 0] (set! v1-0 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 1] (set! v1-1 (l.d (+ v1-0 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 188(s6) ;; [ 2] (set! a0-0 (l.d (+ self 188))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 3] (set! v1-2 (- v1-1 a0-0)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti v1, v1, 30 ;; [ 4] (b! (<.si v1-2 30) L20 (nop!)) [v1: time-frame ] -> [] - bne v1, r0, L20 - sll r0, r0, 0 - -B1: - lw v0, nothing(s7) ;; [ 5] (set! v0-0 nothing) [] -> [v0: (function none) ] - sw v0, 196(s6) ;; [ 6] (s.w! (+ self 196) v0-0) [v0: (function none) s6: target ] -> [] - beq r0, r0, L22 ;; [ 7] (b! #t L22 (nop!)) [] -> [] - sll r0, r0, 0 - -B2: -L20: - lwu v1, 108(s6) ;; [ 8] (set! v1-3 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 9] (set! v1-4 (l.wu (+ v1-3 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 10] (set! v1-5 (l.w (+ v1-4 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 11] (set! v1-6 (sll v1-5 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 12] (set! a0-1 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 13] (set! v1-7 (+ v1-6 a0-1)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 14] (set! v1-8 (l.wu (+ v1-7 4))) [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 15] (set! v1-9 (l.wu (+ v1-8 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 16] (set! a0-2 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 17] (set! a0-3 (l.wu (+ a0-2 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 18] (set! a0-4 (l.w (+ a0-3 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 19] (set! a0-5 (sll a0-4 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 20] (set! a1-0 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 21] (set! a0-6 (+ a0-5 a1-0)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 22] (set! a0-7 (l.wu (+ a0-6 4))) [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [ 23] (set! a0-8 (l.wu (+ a0-7 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 24] (set! v1-10 (logior v1-9 a0-8)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 25] (set! a0-9 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 26] (set! a0-10 (l.wu (+ a0-9 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 27] (set! a0-11 (l.w (+ a0-10 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 28] (set! a0-12 (sll a0-11 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 29] (set! a1-1 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 30] (set! a0-13 (+ a0-12 a1-1)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 31] (set! a0-14 (l.wu (+ a0-13 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [ 32] (set! a0-15 (l.wu (+ a0-14 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 33] (set! v1-11 (logior v1-10 a0-15)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [ 34] (set! v1-12 (logand v1-11 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L21 ;; [ 35] (bl! (zero? v1-12) L21 (no-delay!)) [v1: pad-buttons ] -> [] -B3: - or v1, s7, r0 ;; [ 36] (set! v1-13 #f) [] -> [v1: '#f ] - -B4: - lw t9, can-jump?(s7) ;; [ 37] (set! t9-0 can-jump?) [] -> [t9: (function symbol symbol :behavior target) ] - or a0, s7, r0 ;; [ 38] (set! a0-16 #f) [] -> [a0: '#f ] - jalr ra, t9 ;; [ 39] (call! a0-16) - ;; [a0: '#f t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 40] (set! v1-13 v0-1) [v0: symbol ] -> [v1: symbol ] -B5: -L21: - beq s7, v1, L22 ;; [ 41] (b! (not v1-13) L22 (set! v0-2 #f)) [v1: symbol ] -> [v0: '#f ] - or v0, s7, r0 - -B6: - lw t9, enter-state(s7) ;; [ 42] (set! t9-1 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [ 43] (set! v1-14 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 20(v1) ;; [ 44] (set! f0-0 (l.f (+ v1-14 20))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [ 45] (set! a0-17 (fpr->gpr f0-0)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [ 46] (set! v1-15 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 24(v1) ;; [ 47] (set! f0-1 (l.f (+ v1-15 24))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [ 48] (set! a1-2 (fpr->gpr f0-1)) [] -> [a1: meters ] - daddiu a2, s7, flip ;; [ 49] (set! a2-0 'flip) [] -> [a2: symbol ] - lw v1, target-high-jump(s7);; [ 50] (set! v1-16 target-high-jump) [] -> [v1: (state float float basic target) ] - sw v1, 72(s6) ;; [ 51] (s.w! (+ self 72) v1-16) [v1: (state float float basic target) s6: target ] -> [] - jalr ra, t9 ;; [ 52] (call! a0-17 a1-2 a2-0) - ;; [a0: meters a1: meters a2: symbol t9: ] -> [v0: object ] - sll v0, ra, 0 - -B7: -L22: - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(defun-anon - (anon-function 1 target) - () - (cond - ((>= (- (-> *display* base-frame-counter) (-> self state-hook-time)) (seconds 0.1)) - (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) - ) - (else - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (go target-high-jump (-> *TARGET-bank* flip-jump-height-min) (-> *TARGET-bank* flip-jump-height-max) 'flip) - ) - ) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-wheel-flip) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; Warnings: -;; INFO: Return type mismatch object vs none. - -;; s6-0: target -L23: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lw t9, smack-surface?(s7) ;; [ 0] (set! t9-0 smack-surface?) [] -> [t9: (function symbol symbol :behavior target) ] - or a0, s7, r0 ;; [ 1] (set! a0-0 #f) [] -> [a0: '#f ] - jalr ra, t9 ;; [ 2] (call! a0-0) - ;; [a0: '#f t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - bnel s7, v0, L24 ;; [ 3] (bl! (truthy v0-0) L24 (no-delay!)) [v0: symbol ] -> [] -B1: - or v1, v0, r0 ;; [ 4] (set! v1-0 v0-0) [v0: symbol ] -> [v1: symbol ] - -B2: - lw t9, target-move-dist(s7);; [ 5] (set! t9-1 target-move-dist) - ;; [] -> [t9: (function time-frame float :behavior target) ] - lw v1, *TARGET-bank*(s7) ;; [ 6] (set! v1-1 *TARGET-bank*) [] -> [v1: target-bank ] - ld a0, 556(v1) ;; [ 7] (set! a0-1 (l.d (+ v1-1 556))) [v1: target-bank ] -> [a0: seconds ] - jalr ra, t9 ;; [ 8] (call! a0-1) - ;; [a0: seconds t9: (function time-frame float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 9] (set! f0-0 (gpr->fpr v0-1)) [v0: float ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 10] (set! v1-2 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f1, 572(v1) ;; [ 11] (set! f1-0 (l.f (+ v1-2 572))) [v1: target-bank ] -> [] - c.lt.s f0, f1 ;; [ 12] (b! (<.s f0-0 f1-0) L24 (set! v1-0 #t)) [] -> [v1: symbol ] - bc1t L24 - daddiu v1, s7, 8 - -B3: - or v1, s7, r0 ;; [ 13] (set! v1-0 #f) [] -> [v1: '#f ] -B4: -L24: - beql s7, v1, L25 ;; [ 14] (bl! (not v1-0) L25 (no-delay!)) [v1: symbol ] -> [] -B5: - or v1, v1, r0 ;; [ 15] (set! v1-3 v1-0) [v1: symbol ] -> [v1: symbol ] - -B6: - ld v1, 164(s6) ;; [ 16] (set! v1-4 (l.d (+ self 164))) [s6: target ] -> [v1: time-frame ] - lw a0, *display*(s7) ;; [ 17] (set! a0-2 *display*) [] -> [a0: display ] - ld a0, 780(a0) ;; [ 18] (set! a0-3 (l.d (+ a0-2 780))) [a0: display ] -> [a0: time-frame ] - dsubu a0, v1, a0 ;; [ 19] (set! v1-3 (!= v1-4 a0-3)) [v1: time-frame a0: time-frame ] -> [v1: symbol ] - daddiu v1, s7, 8 - movz v1, s7, a0 -B7: -L25: - beq s7, v1, L26 ;; [ 20] (b! (not v1-3) L26 (set! v1-5 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B8: - lw t9, target-shoved(s7) ;; [ 21] (set! t9-2 target-shoved) - ;; [] -> [t9: (function meters meters process (state object object target) object :behavior target) ] - lw v1, *TARGET-bank*(s7) ;; [ 22] (set! v1-6 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 256(v1) ;; [ 23] (set! f0-1 (l.f (+ v1-6 256))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [ 24] (set! a0-4 (fpr->gpr f0-1)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [ 25] (set! v1-7 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 260(v1) ;; [ 26] (set! f0-2 (l.f (+ v1-7 260))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [ 27] (set! a1-0 (fpr->gpr f0-2)) [] -> [a1: meters ] - or a2, s7, r0 ;; [ 28] (set! a2-0 #f) [] -> [a2: '#f ] - lw a3, target-hit(s7) ;; [ 29] (set! a3-0 target-hit) [] -> [a3: (state symbol attack-info target) ] - jalr ra, t9 ;; [ 30] (call! a0-4 a1-0 a2-0 a3-0) - ;; [a0: meters a1: meters a2: '#f a3: (state symbol attack-info target) t9: (function meters meters process (state object object target) object :behavior target) ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 31] (set! v1-8 v0-2) [v0: object ] -> [v1: object ] -B9: -L26: - lwu v1, 108(s6) ;; [ 32] (set! v1-9 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 33] (set! v1-10 (l.wu (+ v1-9 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 34] (set! v1-11 (l.w (+ v1-10 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 35] (set! v1-12 (sll v1-11 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 36] (set! a0-5 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 37] (set! v1-13 (+ v1-12 a0-5)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 38] (set! v1-14 (l.wu (+ v1-13 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 39] (set! v1-15 (l.wu (+ v1-14 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 8192 ;; [ 40] (set! v1-16 (logand v1-15 8192)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L28 ;; [ 41] (bl! (zero? v1-16) L28 (no-delay!)) [v1: pad-buttons ] -> [] -B10: - or v1, s7, r0 ;; [ 42] (set! v1-17 #f) [] -> [v1: '#f ] - -B11: - lw t9, can-feet?(s7) ;; [ 43] (set! t9-3 can-feet?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 44] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - beql s7, v0, L28 ;; [ 45] (bl! (not v0-3) L28 (no-delay!)) [v0: symbol ] -> [] -B12: - or v1, v0, r0 ;; [ 46] (set! v1-17 v0-3) [v0: symbol ] -> [v1: symbol ] - -B13: - lwu v1, 120(s6) ;; [ 47] (set! v1-18 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 48] (set! v1-19 (l.w (+ v1-18 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 49] (b! (<=0.si v1-19) L27 (set! v1-20 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L27 - or v1, s7, r0 - -B14: - lwu v1, 120(s6) ;; [ 50] (set! v1-21 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 51] (set! v1-22 (l.wu (+ v1-21 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 52] (set! v1-20 (l.wu (+ v1-22 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B15: -L27: - lwu a0, 116(s6) ;; [ 53] (set! a0-6 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 54] (set! a0-7 (l.wu (+ a0-6 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 180(a0) ;; [ 55] (set! a0-8 (l.wu (+ a0-7 180))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 56] (set! a0-9 (= v1-20 a0-8)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L28 ;; [ 57] (bl! (not a0-9) L28 (no-delay!)) [a0: symbol ] -> [] -B16: - or v1, a0, r0 ;; [ 58] (set! v1-17 a0-9) [a0: symbol ] -> [v1: symbol ] - -B17: - lwu v1, 120(s6) ;; [ 59] (set! v1-23 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 60] (set! v1-24 (l.wu (+ v1-23 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu v1, r0, v1 ;; [ 61] (set! v1-25 (+ v1-24 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - lwu a0, 120(s6) ;; [ 62] (set! a0-10 (l.wu (+ self 120))) [s6: target ] -> [a0: joint-control ] - daddiu a0, a0, 44 ;; [ 63] (set! a0-11 (+ a0-10 44)) - ;; [a0: joint-control ] -> [a0: (inline-array joint-control-channel) ] - dsubu a0, v1, a0 ;; [ 64] (set! v1-17 (= v1-25 a0-11)) - ;; [v1: joint-control-channel a0: (inline-array joint-control-channel) ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B18: -L28: - beq s7, v1, L29 ;; [ 65] (b! (not v1-17) L29 (set! v0-4 #f)) [v1: symbol ] -> [v0: '#f ] - or v0, s7, r0 - -B19: - lw t9, enter-state(s7) ;; [ 66] (set! t9-4 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [ 67] (set! a0-12 #f) [] -> [a0: '#f ] - lw v1, target-attack-air(s7);; [ 68] (set! v1-26 target-attack-air) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [ 69] (s.w! (+ self 72) v1-26) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [ 70] (call! a0-12) [a0: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - -B20: -L29: - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-wheel-flip) - () - (if (and (or (smack-surface? #f) - (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) - ) - (!= (-> self state-time) (-> *display* base-frame-counter)) - ) - (target-shoved - (-> *TARGET-bank* smack-surface-dist) - (-> *TARGET-bank* smack-surface-height) - (the-as process #f) - target-hit - ) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) - (can-feet?) - (and (ja-group? (-> self draw art-group data 38)) (= (-> self skel root-channel 0) (-> self skel channel))) - ) - (go target-attack-air #f) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-wheel-flip) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x00, fp? 0 ra? 0 ep? 1 -;; Warnings: -;; INFO: Return type mismatch surface vs none. - -;; s6-0: target -B0: -L30: - lw v0, *wheel-flip-mods*(s7);; [ 0] (set! v0-0 *wheel-flip-mods*) [] -> [v0: surface ] - lwu v1, 108(s6) ;; [ 1] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw v0, 656(v1) ;; [ 2] (s.w! (+ v1-0 656) v0-0) [v0: surface v1: control-info ] -> [] jr ra daddu sp, sp, r0 sll r0, r0, 0 sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-wheel-flip) - ((arg0 float) (arg1 float)) - (set! (-> self control unknown-surface00) *wheel-flip-mods*) - (none) - ) - -;;-*-OpenGOAL-End-*- - +(label L5) + (set! v1 (l.wu (+ s6 8))) + (set! v1 (l.d (+ v1 20))) + (set! a1 (l.d (+ a0 308))) + (set! v1 (- v1 a1)) + (b! (<.si v1 600) L6 (set! v0 #f)) + (set! v1 -257) + (set! a1 (l.d (+ a0 204))) + (set! v0 (logand v1 a1)) + (s.d! (+ a0 204) v0) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-wheel) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x60, fp? 1 ra? 1 ep? 1 - ;stack_vars: 16 bytes at 16 - ;gprs: gp s5 s4 - ;fprs: f30 f28 -;; Warnings: -;; INFO: Return type mismatch object vs none. -;; Used lq/sq - -;; s4-1: vector s5-0: int s6-0: target gp-0: int f30-0: float -L31: - daddiu sp, sp, -96 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s4, 32(sp) - sq s5, 48(sp) - sq gp, 64(sp) - swc1 f28, 80(sp) - swc1 f30, 84(sp) -B0: - addiu gp, r0, 0 ;; [ 0] (set! gp-0 0) [] -> [gp: ] - addiu v1, r0, 0 ;; [ 1] (set! v1-0 0) [] -> [v1: ] - addiu s5, r0, 0 ;; [ 2] (set! s5-0 0) [] -> [s5: ] - lui v1, L786 ;; [ 3] (set! v1-1 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [ 4] (set! f30-0 (l.f v1-1)) [v1: ] -> [] - lw t9, ja-channel-push!(s7);; [ 5] (set! t9-0 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 6] (set! a0-0 1) [] -> [a0: ] - addiu a1, r0, 12 ;; [ 7] (set! a1-0 12) [] -> [a1: ] - jalr ra, t9 ;; [ 8] (call! a0-0 a1-0) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 9] (set! v1-2 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 10] (set! v1-3 (l.wu (+ v1-2 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s4, r0, v1 ;; [ 11] (set! s4-0 (+ v1-3 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s4: joint-control-channel ] - lw t9, joint-control-channel-group-eval!(s7);; [ 12] (set! t9-1 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, s4, r0 ;; [ 13] (set! a0-1 s4-0) [s4: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 14] (set! v1-4 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 15] (set! v1-5 (l.wu (+ v1-4 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 304(v1) ;; [ 16] (set! a1-1 (l.wu (+ v1-5 304))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [ 17] (set! a2-0 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 18] (call! a0-1 a1-1 a2-0) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [ 19] (set! f0-0 0) [] -> [] - swc1 f0, 16(s4) ;; [ 20] (s.f! (+ s4-0 16) f0-0) [s4: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [ 21] (set! v1-6 (fpr->gpr f0-0)) [] -> [v1: float ] -B1: -L32: - lwu v1, 108(s6) ;; [ 22] (set! v1-7 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 23] (set! v1-8 (l.wu (+ v1-7 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 24] (set! v1-9 (l.w (+ v1-8 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 25] (set! v1-10 (sll v1-9 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 26] (set! a0-2 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 27] (set! v1-11 (+ v1-10 a0-2)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 28] (set! v1-12 (l.wu (+ v1-11 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 29] (set! v1-13 (l.wu (+ v1-12 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [ 30] (set! v1-14 (logand v1-13 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beq v1, r0, L33 ;; [ 31] (b! (zero? v1-14) L33 (set! v1-15 #f)) [v1: pad-buttons ] -> [v1: '#f ] - or v1, s7, r0 - -B2: - lw v1, *display*(s7) ;; [ 32] (set! v1-16 *display*) [] -> [v1: display ] - ld gp, 780(v1) ;; [ 33] (set! gp-0 (l.d (+ v1-16 780))) [v1: display ] -> [gp: time-frame ] - or v1, gp, r0 ;; [ 34] (set! v1-17 (the-as time-frame gp-0)) [gp: time-frame ] -> [v1: time-frame ] -B3: -L33: - lw t9, smack-surface?(s7) ;; [ 35] (set! t9-2 smack-surface?) [] -> [t9: (function symbol symbol :behavior target) ] - or a0, s7, r0 ;; [ 36] (set! a0-3 #f) [] -> [a0: '#f ] - jalr ra, t9 ;; [ 37] (call! a0-3) - ;; [a0: '#f t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - bnel s7, v0, L34 ;; [ 38] (bl! (truthy v0-2) L34 (no-delay!)) [v0: symbol ] -> [] -B4: - or v1, v0, r0 ;; [ 39] (set! v1-18 v0-2) [v0: symbol ] -> [v1: symbol ] - -B5: - lwu v1, 108(s6) ;; [ 40] (set! v1-19 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 1308(v1) ;; [ 41] (set! f0-1 (l.f (+ v1-19 1308))) [v1: control-info ] -> [] - lui v1, L762 ;; [ 42] (set! v1-20 L762) [] -> [v1: ] - ori v1, v1, L762 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 43] (set! f1-0 (l.f v1-20)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 44] (b! (>=.s f0-1 f1-0) L34 (set! v1-18 #t)) [] -> [v1: symbol ] - bc1f L34 - daddiu v1, s7, 8 - -B6: - or v1, s7, r0 ;; [ 45] (set! v1-18 #f) [] -> [v1: '#f ] -B7: -L34: - beql s7, v1, L35 ;; [ 46] (bl! (not v1-18) L35 (no-delay!)) [v1: symbol ] -> [] -B8: - or v1, v1, r0 ;; [ 47] (set! v1-21 v1-18) [v1: symbol ] -> [v1: symbol ] - -B9: - lw v1, *display*(s7) ;; [ 48] (set! v1-22 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 49] (set! v1-23 (l.d (+ v1-22 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 50] (set! a0-4 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 2180(a0) ;; [ 51] (set! a0-5 (l.wu (+ a0-4 2180))) [a0: control-info ] -> [a0: uint ] - dsubu v1, v1, a0 ;; [ 52] (set! v1-24 (- v1-23 a0-5)) [v1: time-frame a0: uint ] -> [v1: time-frame ] - sltiu v1, v1, 3 ;; [ 53] (set! a0-6 (>=.ui v1-24 3)) [v1: time-frame ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L35 ;; [ 54] (bl! (not a0-6) L35 (no-delay!)) [a0: symbol ] -> [] -B10: - or v1, a0, r0 ;; [ 55] (set! v1-21 a0-6) [a0: symbol ] -> [v1: symbol ] - -B11: - lw v1, *display*(s7) ;; [ 56] (set! v1-25 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 57] (set! v1-26 (l.d (+ v1-25 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [ 58] (set! a0-7 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 59] (set! v1-27 (- v1-26 a0-7)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti a0, v1, 1 ;; [ 60] (set! v1-21 (>=.si v1-27 1)) [v1: time-frame ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B12: -L35: - beq s7, v1, L37 ;; [ 61] (b! (not v1-21) L37 (set! v1-28 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B13: - lui v1, L811 ;; [ 62] (set! v1-29 L811) [] -> [v1: ] - ori v1, v1, L811 - addu v1, fp, v1 - lwc1 f28, 0(v1) ;; [ 63] (set! f28-0 (l.f v1-29)) [v1: ] -> [] - lw t9, ja-aframe-num(s7) ;; [ 64] (set! t9-3 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 65] (set! a0-8 0) [] -> [a0: ] - jalr ra, t9 ;; [ 66] (call! a0-8) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 67] (set! f0-2 (gpr->fpr v0-3)) [v0: float ] -> [] - c.lt.s f28, f0 ;; [ 68] (b! (<.s f28-0 f0-2) L36 (set! v1-30 #f)) [] -> [v1: '#f ] - bc1t L36 - or v1, s7, r0 - -B14: - lw t9, target-shoved(s7) ;; [ 69] (set! t9-4 target-shoved) - ;; [] -> [t9: (function meters meters process (state object object target) object :behavior target) ] - lw v1, *TARGET-bank*(s7) ;; [ 70] (set! v1-31 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 256(v1) ;; [ 71] (set! f0-3 (l.f (+ v1-31 256))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [ 72] (set! a0-9 (fpr->gpr f0-3)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [ 73] (set! v1-32 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 260(v1) ;; [ 74] (set! f0-4 (l.f (+ v1-32 260))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [ 75] (set! a1-2 (fpr->gpr f0-4)) [] -> [a1: meters ] - or a2, s7, r0 ;; [ 76] (set! a2-1 #f) [] -> [a2: '#f ] - lw a3, target-hit(s7) ;; [ 77] (set! a3-0 target-hit) [] -> [a3: (state symbol attack-info target) ] - jalr ra, t9 ;; [ 78] (call! a0-9 a1-2 a2-1 a3-0) - ;; [a0: meters a1: meters a2: '#f a3: (state symbol attack-info target) t9: (function meters meters process (state object object target) object :behavior target) ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 79] (set! v1-33 v0-4) [v0: object ] -> [v1: object ] -B15: -L36: - bne s5, r0, L37 ;; [ 80] (b! (nonzero? s5-0) L37 (set! v1-34 #f)) [s5: int ] -> [v1: '#f ] - or v1, s7, r0 - -B16: - lw v1, *display*(s7) ;; [ 81] (set! v1-35 *display*) [] -> [v1: display ] - ld s5, 780(v1) ;; [ 82] (set! s5-0 (l.d (+ v1-35 780))) [v1: display ] -> [s5: time-frame ] - or v1, s5, r0 ;; [ 83] (set! v1-36 (the-as time-frame s5-0)) [s5: time-frame ] -> [v1: time-frame ] -B17: -L37: - lwu v1, 108(s6) ;; [ 84] (set! v1-37 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 85] (set! v1-38 (l.wu (+ v1-37 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 86] (set! v1-39 (l.w (+ v1-38 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 87] (set! v1-40 (sll v1-39 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 88] (set! a0-10 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 89] (set! v1-41 (+ v1-40 a0-10)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 90] (set! v1-42 (l.wu (+ v1-41 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 91] (set! v1-43 (l.wu (+ v1-42 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 32768 ;; [ 92] (set! v1-44 (logand v1-43 #x8000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beq v1, r0, L38 ;; [ 93] (b! (zero? v1-44) L38 (set! v1-45 #f)) [v1: pad-buttons ] -> [v1: '#f ] - or v1, s7, r0 - -B18: - lw v1, *display*(s7) ;; [ 94] (set! v1-46 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 95] (set! v1-47 (l.d (+ v1-46 780))) [v1: display ] -> [v1: time-frame ] -B19: -L38: - lwu a0, 128(s6) ;; [ 96] (set! a0-11 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [ 97] (set! v1-48 (l.wu (+ a0-11 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 52(v1) ;; [ 98] (set! t9-5 (l.wu (+ v1-48 52))) - ;; [v1: ] -> [t9: ] - jalr ra, t9 ;; [ 99] (call! a0-11) - ;; [a0: align-control t9: ] -> [v0: transformq ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [100] (set! v1-49 v0-5) [v0: transformq ] -> [v1: transformq ] - beq s5, r0, L39 ;; [101] (b! (zero? s5-0) L39 (nop!)) [s5: int ] -> [] - sll r0, r0, 0 - -B20: - or v1, s7, r0 ;; [102] (set! v1-50 #f) [] -> [v1: '#f ] - beq r0, r0, L40 ;; [103] (b! #t L40 (nop!)) [] -> [] - sll r0, r0, 0 - -B21: -L39: - lwu a0, 128(s6) ;; [104] (set! a0-12 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [105] (set! v1-51 (l.wu (+ a0-12 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 56(v1) ;; [106] (set! t9-6 (l.wu (+ v1-51 56))) - ;; [v1: ] -> [t9: ] - addiu a1, r0, 4 ;; [107] (set! a1-3 4) [] -> [a1: ] - lui v1, L786 ;; [108] (set! v1-52 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a2, 0(v1) ;; [109] (set! a2-2 (l.w v1-52)) [v1: ] -> [a2: int ] - lui v1, L786 ;; [110] (set! v1-53 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a3, 0(v1) ;; [111] (set! a3-1 (l.w v1-53)) [v1: ] -> [a3: int ] - mfc1 t0, f30 ;; [112] (set! t0-0 (fpr->gpr f30-0)) [] -> [t0: float ] - jalr ra, t9 ;; [113] (call! a0-12 a1-3 a2-2 a3-1 t0-0) - ;; [a0: align-control a1: a2: int a3: int t0: float t9: ] -> [v0: trsqv ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [114] (set! v1-54 v0-6) [v0: trsqv ] -> [v1: trsqv ] - daddiu s4, sp, 16 ;; [115] (set! s4-1 (+ sp-0 16)) [sp: ] -> [s4: vector ] - sq r0, 0(s4) ;; [116] (s.q! s4-1 0) [s4: vector ] -> [] - lw t9, vector-matrix*!(s7);; [117] (set! t9-7 vector-matrix*!) [] -> [t9: (function vector vector matrix vector) ] - or a0, s4, r0 ;; [118] (set! a0-13 s4-1) [s4: vector ] -> [a0: vector ] - lwu v1, 108(s6) ;; [119] (set! v1-55 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a1, v1, 60 ;; [120] (set! a1-4 (+ v1-55 60)) [v1: control-info ] -> [a1: vector ] - lwu v1, 108(s6) ;; [121] (set! v1-56 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a2, v1, 924 ;; [122] (set! a2-3 (+ v1-56 924)) [v1: control-info ] -> [a2: matrix ] - jalr ra, t9 ;; [123] (call! a0-13 a1-4 a2-3) - ;; [a0: vector a1: vector a2: matrix t9: (function vector vector matrix vector) ] -> [v0: vector ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [124] (set! f0-5 0) [] -> [] - swc1 f0, 4(s4) ;; [125] (s.f! (+ s4-1 4) f0-5) [s4: vector ] -> [] - lw t9, vector-matrix*!(s7);; [126] (set! t9-8 vector-matrix*!) [] -> [t9: (function vector vector matrix vector) ] - lwu v1, 108(s6) ;; [127] (set! v1-57 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a0, v1, 18924 ;; [128] (set! a0-14 (+ v1-57 #x49ec)) [v1: control-info ] -> [a0: vector ] - lwu v1, 108(s6) ;; [129] (set! v1-58 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a2, v1, 988 ;; [130] (set! a2-4 (+ v1-58 988)) [v1: control-info ] -> [a2: matrix ] - or a1, s4, r0 ;; [131] (set! a1-5 s4-1) [s4: vector ] -> [a1: vector ] - jalr ra, t9 ;; [132] (call! a0-14 a1-5 a2-4) - ;; [a0: vector a1: vector a2: matrix t9: (function vector vector matrix vector) ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [133] (set! v1-59 v0-8) [v0: vector ] -> [v1: vector ] -B22: -L40: - lwu s6, 44(s6) ;; [134] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [135] (set! v1-60 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [136] (set! v1-61 (l.wu (+ v1-60 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [137] (set! a0-15 (+ v1-61 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [138] (set! v1-62 (l.wu (+ a0-15 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [139] (set! v1-63 (l.wu (+ v1-62 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [140] (set! v1-64 (l.h (+ v1-63 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [141] (set! v1-65 (+ v1-64 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [142] (set! f0-6 (gpr->fpr v1-65)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [143] (set! f0-7 (i2f f0-6)) [] -> [] - swc1 f0, 24(a0) ;; [144] (s.f! (+ a0-15 24) f0-7) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [145] (set! v1-66 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [146] (set! f0-8 (l.f v1-66)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [147] (s.f! (+ a0-15 28) f0-8) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [148] (set! t9-9 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [149] (set! a1-6 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [150] (set! a2-5 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [151] (call! a0-15 a1-6 a2-5) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [152] (set! v1-67 v0-9) [v0: int ] -> [v1: int ] - lui v1, L786 ;; [153] (set! v1-68 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [154] (set! f0-9 (l.f v1-68)) [v1: ] -> [] - lwu v1, 108(s6) ;; [155] (set! v1-69 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 18940(v1) ;; [156] (set! f1-1 (l.f (+ v1-69 #x49fc))) [v1: control-info ] -> [] - min.s f0, f0, f1 ;; [157] (set! f0-10 (min.s f0-9 f1-1)) [] -> [] - mul.s f30, f30, f0 ;; [158] (set! f30-0 (*.s f30-0 f0-10)) [] -> [] - lw t9, ja-done?(s7) ;; [159] (set! t9-10 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [160] (set! a0-16 0) [] -> [a0: ] - jalr ra, t9 ;; [161] (call! a0-16) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L32 ;; [162] (b! (not v0-10) L32 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B23: - or v1, s7, r0 ;; [163] (set! v1-70 #f) [] -> [v1: '#f ] - lw v1, *display*(s7) ;; [164] (set! v1-71 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [165] (set! v1-72 (l.d (+ v1-71 780))) [v1: display ] -> [v1: time-frame ] - dsubu v1, v1, gp ;; [166] (set! v1-73 (- v1-72 gp-0)) [v1: time-frame gp: int ] -> [v1: time-frame ] - lw a0, *TARGET-bank*(s7) ;; [167] (set! a0-17 *TARGET-bank*) [] -> [a0: target-bank ] - ld a0, 84(a0) ;; [168] (set! a0-18 (l.d (+ a0-17 84))) [a0: target-bank ] -> [a0: time-frame ] - slt v1, v1, a0 ;; [169] (set! a0-19 (<.si v1-73 a0-18)) [v1: time-frame a0: time-frame ] -> [a0: symbol ] - daddiu a0, s7, 8 - movz a0, s7, v1 - bnel s7, a0, L41 ;; [170] (bl! (truthy a0-19) L41 (no-delay!)) [a0: symbol ] -> [] -B24: - or v1, a0, r0 ;; [171] (set! v1-74 a0-19) [a0: symbol ] -> [v1: symbol ] - -B25: - daddiu v1, s7, 8 ;; [172] (set! v1-75 #t) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [173] (set! a0-20 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [174] (set! a0-21 (l.wu (+ a0-20 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [175] (set! a0-22 (l.w (+ a0-21 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [176] (set! a0-23 (sll a0-22 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [177] (set! a1-7 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [178] (set! a0-24 (+ a0-23 a1-7)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [179] (set! a0-25 (l.wu (+ a0-24 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 56(a0) ;; [180] (set! a0-26 (l.wu (+ a0-25 56))) [a0: cpad-info ] -> [a0: pad-buttons ] - andi a0, a0, 16384 ;; [181] (set! a0-27 (logand a0-26 #x4000)) [a0: pad-buttons ] -> [a0: pad-buttons ] - movz v1, s7, a0 ;; [182] (cmove-#f-zero v1-74 a0-27 v1-75) [v1: symbol a0: pad-buttons ] -> [v1: symbol ] -B26: -L41: - beql s7, v1, L42 ;; [183] (bl! (not v1-74) L42 (no-delay!)) [v1: symbol ] -> [] -B27: - or v1, v1, r0 ;; [184] (set! v1-76 v1-74) [v1: symbol ] -> [v1: symbol ] - -B28: - lw t9, can-jump?(s7) ;; [185] (set! t9-11 can-jump?) [] -> [t9: (function symbol symbol :behavior target) ] - daddiu a0, s7, target-wheel-flip;; [186] (set! a0-28 'target-wheel-flip) [] -> [a0: symbol ] - jalr ra, t9 ;; [187] (call! a0-28) - ;; [a0: symbol t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [188] (set! v1-76 v0-11) [v0: symbol ] -> [v1: symbol ] -B29: -L42: - beq s7, v1, L43 ;; [189] (b! (not v1-76) L43 (set! v1-77 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B30: - lw t9, enter-state(s7) ;; [190] (set! t9-12 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [191] (set! v1-78 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 124(v1) ;; [192] (set! f0-11 (l.f (+ v1-78 124))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [193] (set! a0-29 (fpr->gpr f0-11)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [194] (set! v1-79 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 128(v1) ;; [195] (set! f0-12 (l.f (+ v1-79 128))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [196] (set! a1-8 (fpr->gpr f0-12)) [] -> [a1: meters ] - lw v1, target-wheel-flip(s7);; [197] (set! v1-80 target-wheel-flip) [] -> [v1: (state float float target) ] - sw v1, 72(s6) ;; [198] (s.w! (+ self 72) v1-80) [v1: (state float float target) s6: target ] -> [] - jalr ra, t9 ;; [199] (call! a0-29 a1-8) - ;; [a0: meters a1: meters t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [200] (set! v1-81 v0-12) [v0: object ] -> [v1: object ] -B31: -L43: - lw v1, *display*(s7) ;; [201] (set! v1-82 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [202] (set! v1-83 (l.d (+ v1-82 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 188(s6) ;; [203] (s.d! (+ self 188) v1-83) [v1: time-frame s6: target ] -> [] - lui v1, L44 ;; [204] (set! v1-84 L44) [] -> [v1: (function none :behavior target) ] - ori v1, v1, L44 - daddu v1, v1, fp - sw v1, 196(s6) ;; [205] (s.w! (+ self 196) v1-84) [v1: (function none :behavior target) s6: target ] -> [] - lw t9, enter-state(s7) ;; [206] (set! t9-13 enter-state) [] -> [t9: ] - lw v1, target-duck-stance(s7);; [207] (set! v1-85 target-duck-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [208] (s.w! (+ self 72) v1-85) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [209] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 84(sp) - lwc1 f28, 80(sp) - lq gp, 64(sp) - lq s5, 48(sp) - lq s4, 32(sp) - jr ra - daddiu sp, sp, 96 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-wheel) - () - (let ((gp-0 0)) - 0 - (let ((s5-0 0) - (f30-0 1.0) - ) - (ja-channel-push! 1 (seconds 0.04)) - (ja :group! (-> self draw art-group data 69) :num! min) - (until (ja-done? 0) - (if (cpad-pressed? (-> self control unknown-cpad-info00 number) x) - (set! gp-0 (the-as int (-> *display* base-frame-counter))) - ) - (when (and (or (smack-surface? #f) (>= (-> self control unknown-float63) 0.7)) - (>= (the-as uint (- (-> *display* base-frame-counter) (the-as int (-> self control unknown-uint20)))) - (the-as uint 3) - ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1) - ) - (if (>= 6.0 (ja-aframe-num 0)) - (target-shoved - (-> *TARGET-bank* smack-surface-dist) - (-> *TARGET-bank* smack-surface-height) - (the-as process #f) - target-hit - ) - ) - (if (zero? s5-0) - (set! s5-0 (the-as int (-> *display* base-frame-counter))) - ) - ) - (if (cpad-pressed? (-> self control unknown-cpad-info00 number) square) - (-> *display* base-frame-counter) - ) - (compute-alignment! (-> self align)) - (cond - ((nonzero? s5-0) - ) - (else - (align! (-> self align) (align-opts adjust-xz-vel) (the-as float 1.0) (the-as float 1.0) f30-0) - (let ((s4-1 (new-stack-vector0))) - (vector-matrix*! s4-1 (-> self control transv) (-> self control unknown-matrix00)) - (set! (-> s4-1 y) 0.0) - (vector-matrix*! (-> self control unknown-vector120) s4-1 (-> self control unknown-matrix01)) - ) - ) - ) - (suspend) - (ja :num! (seek!)) - (set! f30-0 (* f30-0 (fmin 1.0 (-> self control unknown-float140)))) - ) - ) - (if (and (or (< (- (-> *display* base-frame-counter) (the-as time-frame gp-0)) (-> *TARGET-bank* wheel-jump-pre-window)) - (cpad-pressed? (-> self control unknown-cpad-info00 number) x) - ) - (can-jump? 'target-wheel-flip) - ) - (go target-wheel-flip (-> *TARGET-bank* wheel-flip-height) (-> *TARGET-bank* wheel-flip-dist)) - ) - ) - (set! (-> self state-hook-time) (-> *display* base-frame-counter)) - (set! (-> self state-hook) - (lambda :behavior target - () - (cond - ((>= (- (-> *display* base-frame-counter) (-> self state-hook-time)) (-> *TARGET-bank* wheel-jump-post-window)) - (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) - ) - (else - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? 'target-wheel-flip) - ) - (go target-wheel-flip (-> *TARGET-bank* wheel-flip-height) (-> *TARGET-bank* wheel-flip-dist)) - ) - ) - ) - (none) - ) - ) - (go target-duck-stance) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (anon-function 5 target) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; Warnings: -;; INFO: Return type mismatch object vs none. - -;; s6-0: target -L44: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lw v1, *display*(s7) ;; [ 0] (set! v1-0 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 1] (set! v1-1 (l.d (+ v1-0 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 188(s6) ;; [ 2] (set! a0-0 (l.d (+ self 188))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 3] (set! v1-2 (- v1-1 a0-0)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - lw a0, *TARGET-bank*(s7) ;; [ 4] (set! a0-1 *TARGET-bank*) [] -> [a0: target-bank ] - ld a0, 92(a0) ;; [ 5] (set! a0-2 (l.d (+ a0-1 92))) [a0: target-bank ] -> [a0: time-frame ] - slt v1, v1, a0 ;; [ 6] (b! (<.si v1-2 a0-2) L45 (nop!)) [v1: time-frame a0: time-frame ] -> [] - bne v1, r0, L45 - sll r0, r0, 0 - -B1: - lw v0, nothing(s7) ;; [ 7] (set! v0-0 nothing) [] -> [v0: (function none) ] - sw v0, 196(s6) ;; [ 8] (s.w! (+ self 196) v0-0) [v0: (function none) s6: target ] -> [] - beq r0, r0, L47 ;; [ 9] (b! #t L47 (nop!)) [] -> [] - sll r0, r0, 0 - -B2: -L45: - lwu v1, 108(s6) ;; [ 10] (set! v1-3 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 11] (set! v1-4 (l.wu (+ v1-3 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 12] (set! v1-5 (l.w (+ v1-4 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 13] (set! v1-6 (sll v1-5 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 14] (set! a0-3 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 15] (set! v1-7 (+ v1-6 a0-3)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 16] (set! v1-8 (l.wu (+ v1-7 4))) [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 17] (set! v1-9 (l.wu (+ v1-8 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 18] (set! a0-4 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 19] (set! a0-5 (l.wu (+ a0-4 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 20] (set! a0-6 (l.w (+ a0-5 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 21] (set! a0-7 (sll a0-6 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 22] (set! a1-0 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 23] (set! a0-8 (+ a0-7 a1-0)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 24] (set! a0-9 (l.wu (+ a0-8 4))) [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [ 25] (set! a0-10 (l.wu (+ a0-9 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 26] (set! v1-10 (logior v1-9 a0-10)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 27] (set! a0-11 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 28] (set! a0-12 (l.wu (+ a0-11 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 29] (set! a0-13 (l.w (+ a0-12 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 30] (set! a0-14 (sll a0-13 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 31] (set! a1-1 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 32] (set! a0-15 (+ a0-14 a1-1)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 33] (set! a0-16 (l.wu (+ a0-15 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [ 34] (set! a0-17 (l.wu (+ a0-16 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 35] (set! v1-11 (logior v1-10 a0-17)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [ 36] (set! v1-12 (logand v1-11 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L46 ;; [ 37] (bl! (zero? v1-12) L46 (no-delay!)) [v1: pad-buttons ] -> [] -B3: - or v1, s7, r0 ;; [ 38] (set! v1-13 #f) [] -> [v1: '#f ] - -B4: - lw t9, can-jump?(s7) ;; [ 39] (set! t9-0 can-jump?) [] -> [t9: (function symbol symbol :behavior target) ] - daddiu a0, s7, target-wheel-flip;; [ 40] (set! a0-18 'target-wheel-flip) [] -> [a0: symbol ] - jalr ra, t9 ;; [ 41] (call! a0-18) - ;; [a0: symbol t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 42] (set! v1-13 v0-1) [v0: symbol ] -> [v1: symbol ] -B5: -L46: - beq s7, v1, L47 ;; [ 43] (b! (not v1-13) L47 (set! v0-2 #f)) [v1: symbol ] -> [v0: '#f ] - or v0, s7, r0 - -B6: - lw t9, enter-state(s7) ;; [ 44] (set! t9-1 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [ 45] (set! v1-14 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 124(v1) ;; [ 46] (set! f0-0 (l.f (+ v1-14 124))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [ 47] (set! a0-19 (fpr->gpr f0-0)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [ 48] (set! v1-15 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 128(v1) ;; [ 49] (set! f0-1 (l.f (+ v1-15 128))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [ 50] (set! a1-2 (fpr->gpr f0-1)) [] -> [a1: meters ] - lw v1, target-wheel-flip(s7);; [ 51] (set! v1-16 target-wheel-flip) [] -> [v1: (state float float target) ] - sw v1, 72(s6) ;; [ 52] (s.w! (+ self 72) v1-16) [v1: (state float float target) s6: target ] -> [] - jalr ra, t9 ;; [ 53] (call! a0-19 a1-2) - ;; [a0: meters a1: meters t9: ] -> [v0: object ] - sll v0, ra, 0 - -B7: -L47: - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(defun-anon - (anon-function 5 target) - () - (cond - ((>= (- (-> *display* base-frame-counter) (-> self state-hook-time)) (-> *TARGET-bank* wheel-jump-post-window)) - (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) - ) - (else - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? 'target-wheel-flip) - ) - (go target-wheel-flip (-> *TARGET-bank* wheel-flip-height) (-> *TARGET-bank* wheel-flip-dist)) - ) - ) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (exit target-wheel) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; s6-0: target -L48: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - daddiu v1, s7, target-wheel;; [ 0] (set! v1-0 'target-wheel) [] -> [v1: symbol ] - lwu a0, 72(s6) ;; [ 1] (set! a0-0 (l.wu (+ self 72))) [s6: target ] -> [a0: state ] - lwu a0, 0(a0) ;; [ 2] (set! a0-1 (l.wu a0-0)) [a0: state ] -> [a0: symbol ] - beq a0, v1, L49 ;; [ 3] (b! (= a0-1 v1-0) L49 (set! v1-1 #f)) [v1: symbol a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B1: - lwu v1, 108(s6) ;; [ 4] (set! v1-2 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw r0, 1652(v1) ;; [ 5] (s.w! (+ v1-2 1652) 0) [v1: control-info ] -> [] - lw v1, *display*(s7) ;; [ 6] (set! v1-3 *display*) [] -> [v1: display ] - ld a0, 780(v1) ;; [ 7] (set! a0-2 (l.d (+ v1-3 780))) [v1: display ] -> [a0: time-frame ] - lwu v1, 108(s6) ;; [ 8] (set! v1-4 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sd a0, 1660(v1) ;; [ 9] (s.d! (+ v1-4 1660) a0-2) [v1: control-info a0: time-frame ] -> [] -B2: -L49: - lw t9, target-exit(s7) ;; [ 10] (set! t9-0 target-exit) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 11] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (exit target-wheel) - () - (when (!= (-> self next-state name) 'target-wheel) - (set! (-> self control unknown-int50) 0) - (set! (-> self control unknown-dword30) (-> *display* base-frame-counter)) - ) - (target-exit) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-wheel) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; Warnings: -;; INFO: Return type mismatch int vs none. - -;; s6-0: target -L50: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lw v1, *display*(s7) ;; [ 0] (set! v1-0 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 1] (set! v1-1 (l.d (+ v1-0 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 2] (s.d! (+ self 164) v1-1) [v1: time-frame s6: target ] -> [] - lw v1, *wheel-mods*(s7) ;; [ 3] (set! v1-2 *wheel-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [ 4] (set! a0-0 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [ 5] (s.w! (+ a0-0 656) v1-2) [v1: surface a0: control-info ] -> [] - lwu v1, 108(s6) ;; [ 6] (set! v1-3 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lw v1, 1652(v1) ;; [ 7] (set! v1-4 (l.w (+ v1-3 1652))) [v1: control-info ] -> [v1: int ] - daddiu v1, v1, 1 ;; [ 8] (set! v1-5 (+ v1-4 1)) [v1: int ] -> [v1: ] - lwu a0, 108(s6) ;; [ 9] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 1652(a0) ;; [ 10] (s.w! (+ a0-1 1652) v1-5) [v1: a0: control-info ] -> [] - lwu a0, 108(s6) ;; [ 11] (set! a0-2 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu v1, -4(a0) ;; [ 12] (set! v1-6 (l.wu (+ a0-2 -4))) - ;; [a0: control-info ] -> [v1: ] - lwu t9, 100(v1) ;; [ 13] (set! t9-0 (l.wu (+ v1-6 100))) - ;; [v1: ] -> [t9: ] - jalr ra, t9 ;; [ 14] (call! a0-2) - ;; [a0: control-info t9: ] -> [v0: quaternion ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 15] (set! v1-7 v0-0) [v0: quaternion ] -> [v1: quaternion ] - lw t9, set-forward-vel(s7);; [ 16] (set! t9-1 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - lw v1, *TARGET-bank*(s7) ;; [ 17] (set! v1-8 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 108(v1) ;; [ 18] (set! f0-0 (l.f (+ v1-8 108))) [v1: target-bank ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 19] (set! v1-9 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f1, 112(v1) ;; [ 20] (set! f1-0 (l.f (+ v1-9 112))) [v1: target-bank ] -> [] - lwu v1, 108(s6) ;; [ 21] (set! v1-10 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lw v1, 1652(v1) ;; [ 22] (set! v1-11 (l.w (+ v1-10 1652))) [v1: control-info ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 23] (set! v1-12 (+ v1-11 -1)) [v1: int ] -> [v1: ] - mtc1 f2, v1 ;; [ 24] (set! f2-0 (gpr->fpr v1-12)) [v1: ] -> [] - cvt.s.w f2, f2 ;; [ 25] (set! f2-1 (i2f f2-0)) [] -> [] - mul.s f1, f1, f2 ;; [ 26] (set! f1-1 (*.s f1-0 f2-1)) [] -> [] - add.s f0, f0, f1 ;; [ 27] (set! f0-1 (+.s f0-0 f1-1)) [] -> [] - mfc1 a0, f0 ;; [ 28] (set! a0-3 (fpr->gpr f0-1)) [] -> [a0: float ] - jalr ra, t9 ;; [ 29] (call! a0-3) - ;; [a0: float t9: (function float vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - lwu v1, 108(s6) ;; [ 30] (set! v1-13 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 1304(v1) ;; [ 31] (set! f0-2 (l.f (+ v1-13 1304))) [v1: control-info ] -> [] - abs.s f0, f0 ;; [ 32] (set! f0-3 (abs.s f0-2)) [] -> [] - lui v1, L751 ;; [ 33] (set! v1-14 L751) [] -> [v1: ] - ori v1, v1, L751 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 34] (set! f1-2 (l.f v1-14)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 35] (b! (<.s f0-3 f1-2) L51 (set! v1-15 #t)) [] -> [v1: symbol ] - bc1t L51 - daddiu v1, s7, 8 - -B1: - or v1, s7, r0 ;; [ 36] (set! v1-15 #f) [] -> [v1: '#f ] -B2: -L51: - bnel s7, v1, L52 ;; [ 37] (bl! (truthy v1-15) L52 (no-delay!)) [v1: symbol ] -> [] -B3: - or v1, v1, r0 ;; [ 38] (set! v1-16 v1-15) [v1: symbol ] -> [v1: symbol ] - -B4: - lui v1, L751 ;; [ 39] (set! v1-17 L751) [] -> [v1: ] - ori v1, v1, L751 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 40] (set! f0-4 (l.f v1-17)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 41] (set! v1-18 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 1300(v1) ;; [ 42] (set! f1-3 (l.f (+ v1-18 1300))) [v1: control-info ] -> [] - abs.s f1, f1 ;; [ 43] (set! f1-4 (abs.s f1-3)) [] -> [] - c.lt.s f0, f1 ;; [ 44] (b! (<.s f0-4 f1-4) L52 (set! v1-16 #t)) [] -> [v1: symbol ] - bc1t L52 - daddiu v1, s7, 8 - -B5: - or v1, s7, r0 ;; [ 45] (set! v1-16 #f) [] -> [v1: '#f ] -B6: -L52: - beq s7, v1, L53 ;; [ 46] (b! (not v1-16) L53 (set! v1-19 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B7: - lui v1, L786 ;; [ 47] (set! v1-20 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 48] (set! f0-5 (l.f v1-20)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 49] (set! v1-21 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [ 50] (s.f! (+ v1-21 1724) f0-5) [v1: control-info ] -> [] - mfc1 v1, f0 ;; [ 51] (set! v1-22 (fpr->gpr f0-5)) [] -> [v1: float ] -B8: -L53: - lwu v1, 108(s6) ;; [ 52] (set! v1-23 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw r0, 2180(v1) ;; [ 53] (s.w! (+ v1-23 2180) 0) [v1: control-info ] -> [] - lwu v1, 108(s6) ;; [ 54] (set! v1-24 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw r0, 2184(v1) ;; [ 55] (s.w! (+ v1-24 2184) 0) [v1: control-info ] -> [] - or v0, r0, r0 ;; [ 56] (set! v0-2 0) [] -> [v0: ] - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-wheel) - () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-surface00) *wheel-mods*) - (+! (-> self control unknown-int50) 1) - (rot->dir-targ! (-> self control)) - (set-forward-vel (+ (-> *TARGET-bank* wheel-speed-min) - (* (-> *TARGET-bank* wheel-speed-inc) (the float (+ (-> self control unknown-int50) -1))) - ) - ) - (if (or (< (fabs (-> self control unknown-float62)) 0.3) (< 0.3 (fabs (-> self control unknown-float61)))) - (set! (-> self control unknown-float81) 1.0) - ) - (set! (-> self control unknown-uint20) (the-as uint 0)) - (set! (-> self control unknown-int21) 0) - 0 - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (event target-wheel) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0xa0, fp? 0 ra? 1 ep? 1 - ;stack_vars: 88 bytes at 8 - ;gprs: gp s5 s4 s3 -;; a0-0: process a1-0: int a2-0: symbol a3-0: event-message-block -L54: - daddiu sp, sp, -160 - sd ra, 0(sp) - sq s3, 96(sp) - sq s4, 112(sp) - sq s5, 128(sp) - sq gp, 144(sp) -B0: - or gp, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: process ] -> [gp: process ] - or s5, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: int ] -> [s5: int ] - or s4, a2, r0 ;; [ 2] (set! arg2 arg2) [a2: symbol ] -> [s4: symbol ] - or s3, a3, r0 ;; [ 3] (set! arg3 arg3) [a3: event-message-block ] -> [s3: event-message-block ] - daddiu v1, s7, touched ;; [ 4] (set! v1-0 'touched) [] -> [v1: symbol ] - bne s4, v1, L55 ;; [ 5] (b! (!= arg2 v1-0) L55 (set! v1-1 #f)) [v1: symbol s4: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B1: - daddiu a1, sp, 16 ;; [ 6] (set! a1-1 (+ sp-0 16)) [sp: ] -> [a1: event-message-block ] - sw s6, 4(a1) ;; [ 7] (s.w! (+ a1-1 4) self) [a1: event-message-block s6: target ] -> [] - sw r0, 8(a1) ;; [ 8] (s.w! (+ a1-1 8) 0) [a1: event-message-block ] -> [] - daddiu v1, s7, roll ;; [ 9] (set! v1-2 'roll) [] -> [v1: symbol ] - sw v1, 12(a1) ;; [ 10] (s.w! (+ a1-1 12) v1-2) [v1: symbol a1: event-message-block ] -> [] - lw t9, send-event-function(s7);; [ 11] (set! t9-0 send-event-function) - ;; [] -> [t9: (function process-tree event-message-block object) ] - or a0, gp, r0 ;; [ 12] (set! a0-1 arg0) [gp: process ] -> [a0: process ] - jalr ra, t9 ;; [ 13] (call! a0-1 a1-1) - ;; [a0: process a1: event-message-block t9: (function process-tree event-message-block object) ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 14] (set! v1-3 v0-0) [v0: object ] -> [v1: object ] -B2: -L55: - lw t9, target-standard-event-handler(s7);; [ 15] (set! t9-1 target-standard-event-handler) - ;; [] -> [t9: (function process int symbol event-message-block object :behavior target) ] - or a0, gp, r0 ;; [ 16] (set! a0-2 arg0) [gp: process ] -> [a0: process ] - or a1, s5, r0 ;; [ 17] (set! a1-2 arg1) [s5: int ] -> [a1: int ] - or a2, s4, r0 ;; [ 18] (set! a2-1 arg2) [s4: symbol ] -> [a2: symbol ] - or a3, s3, r0 ;; [ 19] (set! a3-1 arg3) [s3: event-message-block ] -> [a3: event-message-block ] - jalr ra, t9 ;; [ 20] (call! a0-2 a1-2 a2-1 a3-1) - ;; [a0: process a1: int a2: symbol a3: event-message-block t9: (function process int symbol event-message-block object :behavior target) ] -> [v0: object ] - sll v0, ra, 0 - - ld ra, 0(sp) - lq gp, 144(sp) - lq s5, 128(sp) - lq s4, 112(sp) - lq s3, 96(sp) - jr ra - daddiu sp, sp, 160 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (event target-wheel) - ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (if (= arg2 'touched) - (send-event arg0 'roll) - ) - (target-standard-event-handler arg0 arg1 arg2 arg3) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-flop-hit-ground) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; Warnings: -;; INFO: Return type mismatch object vs none. - -;; a0-0: symbol -L56: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lw t9, target-hit-ground-anim(s7);; [ 0] (set! t9-0 target-hit-ground-anim) - ;; [] -> [t9: (function symbol symbol :behavior target) ] - jalr ra, t9 ;; [ 1] (call! arg0) - ;; [a0: symbol t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - lw t9, enter-state(s7) ;; [ 2] (set! t9-1 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [ 3] (set! a0-1 #f) [] -> [a0: '#f ] - lw v1, target-falling(s7) ;; [ 4] (set! v1-0 target-falling) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [ 5] (s.w! (+ self 72) v1-0) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [ 6] (call! a0-1) [a0: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-flop-hit-ground) - ((arg0 symbol)) - (target-hit-ground-anim arg0) - (go target-falling #f) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-flop-hit-ground) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x50, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 s4 s3 -;; v1-33: art-joint-anim s6-0: target -L57: - daddiu sp, sp, -80 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s3, 16(sp) - sq s4, 32(sp) - sq s5, 48(sp) - sq gp, 64(sp) -B0: - daddiu v1, s7, stuck ;; [ 0] (set! v1-0 'stuck) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [ 1] (set! a0-0 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lw a0, 2180(a0) ;; [ 2] (set! a0-1 (l.w (+ a0-0 2180))) [a0: control-info ] -> [a0: spool-anim ] - beq a0, v1, L59 ;; [ 3] (b! (= a0-1 v1-0) L59 (set! v1-1 #f)) [v1: symbol a0: spool-anim ] -> [v1: '#f ] - or v1, s7, r0 - -B1: - lwu v1, 108(s6) ;; [ 4] (set! v1-2 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 5] (set! v1-3 (l.wu (+ v1-2 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 6] (set! v1-4 (l.w (+ v1-3 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 7] (set! v1-5 (sll v1-4 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 8] (set! a0-2 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 9] (set! v1-6 (+ v1-5 a0-2)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 10] (set! v1-7 (l.wu (+ v1-6 4))) [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 11] (set! v1-8 (l.wu (+ v1-7 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 8192 ;; [ 12] (set! v1-9 (logand v1-8 8192)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L58 ;; [ 13] (bl! (zero? v1-9) L58 (no-delay!)) [v1: pad-buttons ] -> [] -B2: - or v1, s7, r0 ;; [ 14] (set! v1-10 #f) [] -> [v1: '#f ] - -B3: - lw t9, can-feet?(s7) ;; [ 15] (set! t9-0 can-feet?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 16] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 17] (set! v1-10 v0-0) [v0: symbol ] -> [v1: symbol ] -B4: -L58: - beq s7, v1, L59 ;; [ 18] (b! (not v1-10) L59 (set! v1-11 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B5: - lw t9, enter-state(s7) ;; [ 19] (set! t9-1 enter-state) [] -> [t9: ] - daddiu a0, s7, flop ;; [ 20] (set! a0-3 'flop) [] -> [a0: symbol ] - lw v1, target-attack-air(s7);; [ 21] (set! v1-12 target-attack-air) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [ 22] (s.w! (+ self 72) v1-12) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [ 23] (call! a0-3) [a0: symbol t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 24] (set! v1-13 v0-1) [v0: object ] -> [v1: object ] -B6: -L59: - lwu v1, 140(s6) ;; [ 25] (set! v1-14 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lw v1, 36(v1) ;; [ 26] (set! v1-15 (l.w (+ v1-14 36))) [v1: fact-info-target ] -> [v1: pickup-type ] - daddiu v1, v1, -2 ;; [ 27] (set! v1-16 (+ v1-15 -2)) [v1: pickup-type ] -> [v1: ] - daddiu a0, s7, 8 ;; [ 28] (set! a0-4 (zero? v1-16)) [v1: ] -> [a0: symbol ] - movn a0, s7, v1 - beql s7, a0, L60 ;; [ 29] (bl! (not a0-4) L60 (no-delay!)) [a0: symbol ] -> [] -B7: - or v1, a0, r0 ;; [ 30] (set! v1-17 a0-4) [a0: symbol ] -> [v1: symbol ] - -B8: - lwu v1, 140(s6) ;; [ 31] (set! v1-18 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lwc1 f0, 40(v1) ;; [ 32] (set! f0-0 (l.f (+ v1-18 40))) [v1: fact-info-target ] -> [] - lui v1, L786 ;; [ 33] (set! v1-19 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 34] (set! f1-0 (l.f v1-19)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 35] (b! (>=.s f0-0 f1-0) L60 (set! v1-17 #t)) [] -> [v1: symbol ] - bc1f L60 - daddiu v1, s7, 8 - -B9: - or v1, s7, r0 ;; [ 36] (set! v1-17 #f) [] -> [v1: '#f ] -B10: -L60: - beql s7, v1, L61 ;; [ 37] (bl! (not v1-17) L61 (no-delay!)) [v1: symbol ] -> [] -B11: - or v1, v1, r0 ;; [ 38] (set! v1-20 v1-17) [v1: symbol ] -> [v1: symbol ] - -B12: - lw v1, *display*(s7) ;; [ 39] (set! v1-21 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 40] (set! v1-22 (l.d (+ v1-21 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [ 41] (set! a0-5 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 42] (set! v1-23 (- v1-22 a0-5)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti a0, v1, 75 ;; [ 43] (set! v1-20 (<.si v1-23 75)) [v1: time-frame ] -> [v1: symbol ] - daddiu v1, s7, 8 - movz v1, s7, a0 -B13: -L61: - beq s7, v1, L64 ;; [ 44] (b! (not v1-20) L64 (set! v1-24 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B14: - lwu v1, 120(s6) ;; [ 45] (set! v1-25 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu gp, 36(v1) ;; [ 46] (set! gp-0 (l.wu (+ v1-25 36))) [v1: joint-control ] -> [gp: effect-control ] - lwu v1, -4(gp) ;; [ 47] (set! v1-26 (l.wu (+ gp-0 -4))) - ;; [gp: effect-control ] -> [v1: ] - lwu s5, 56(v1) ;; [ 48] (set! s5-0 (l.wu (+ v1-26 56))) - ;; [v1: ] -> [s5: ] - daddiu s4, s7, group-red-eco-spinkick;; [ 49] (set! s4-0 'group-red-eco-spinkick) [] -> [s4: symbol ] - lw t9, ja-frame-num(s7) ;; [ 50] (set! t9-2 ja-frame-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 51] (set! a0-6 0) [] -> [a0: ] - jalr ra, t9 ;; [ 52] (call! a0-6) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - or s3, v0, r0 ;; [ 53] (set! s3-0 v0-2) [v0: float ] -> [s3: float ] - lw t9, rand-vu-percent?(s7);; [ 54] (set! t9-3 rand-vu-percent?) [] -> [t9: (function float symbol) ] - lui v1, L752 ;; [ 55] (set! v1-27 L752) [] -> [v1: ] - ori v1, v1, L752 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 56] (set! a0-7 (l.w v1-27)) [v1: ] -> [a0: int ] - jalr ra, t9 ;; [ 57] (call! a0-7) [a0: int t9: (function float symbol) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L62 ;; [ 58] (b! (not v0-3) L62 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B15: - addiu a3, r0, 23 ;; [ 59] (set! a3-0 23) [] -> [a3: ] - beq r0, r0, L63 ;; [ 60] (b! #t L63 (nop!)) [] -> [] - sll r0, r0, 0 - -B16: -L62: - addiu a3, r0, 17 ;; [ 61] (set! a3-0 17) [] -> [a3: ] -B17: -L63: - or t9, s5, r0 ;; [ 62] (set! t9-4 s5-0) - ;; [s5: ] -> [t9: ] - or a0, gp, r0 ;; [ 63] (set! a0-8 gp-0) [gp: effect-control ] -> [a0: effect-control ] - or a1, s4, r0 ;; [ 64] (set! a1-0 s4-0) [s4: symbol ] -> [a1: symbol ] - or a2, s3, r0 ;; [ 65] (set! a2-0 s3-0) [s3: float ] -> [a2: float ] - jalr ra, t9 ;; [ 66] (call! a0-8 a1-0 a2-0 a3-0) - ;; [a0: effect-control a1: symbol a2: float a3: int t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 67] (set! v1-28 v0-4) [v0: object ] -> [v1: object ] - lw t9, cpad-set-buzz!(s7) ;; [ 68] (set! t9-5 cpad-set-buzz!) - ;; [] -> [t9: (function cpad-info int int time-frame none) ] - lw v1, *cpad-list*(s7) ;; [ 69] (set! v1-29 *cpad-list*) [] -> [v1: cpad-list ] - lwu a0, 4(v1) ;; [ 70] (set! a0-9 (l.wu (+ v1-29 4))) [v1: cpad-list ] -> [a0: cpad-info ] - addiu a1, r0, 1 ;; [ 71] (set! a1-1 1) [] -> [a1: ] - addiu a2, r0, 153 ;; [ 72] (set! a2-1 153) [] -> [a2: ] - addiu a3, r0, 30 ;; [ 73] (set! a3-1 30) [] -> [a3: ] - jalr ra, t9 ;; [ 74] (call! a0-9 a1-1 a2-1 a3-1) - ;; [a0: cpad-info a1: a2: a3: t9: (function cpad-info int int time-frame none) ] -> [v0: none ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 75] (set! v1-30 v0-5) [v0: none ] -> [v1: none ] -B18: -L64: - lwu v1, 120(s6) ;; [ 76] (set! v1-31 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 77] (set! v1-32 (l.w (+ v1-31 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 78] (b! (<=0.si v1-32) L65 (set! v1-33 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L65 - or v1, s7, r0 - -B19: - lwu v1, 120(s6) ;; [ 79] (set! v1-34 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 80] (set! v1-35 (l.wu (+ v1-34 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 81] (set! v1-33 (l.wu (+ v1-35 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B20: -L65: - lwu a0, 116(s6) ;; [ 82] (set! a0-10 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 83] (set! a0-11 (l.wu (+ a0-10 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 288(a0) ;; [ 84] (set! a0-12 (l.wu (+ a0-11 288))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [ 85] (set! a1-2 (= v1-33 a0-12)) [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L66 ;; [ 86] (bl! (truthy a1-2) L66 (no-delay!)) [a1: symbol ] -> [] -B21: - or a0, a1, r0 ;; [ 87] (set! a0-13 a1-2) [a1: symbol ] -> [a0: symbol ] - -B22: - lwu a0, 116(s6) ;; [ 88] (set! a0-14 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 89] (set! a0-15 (l.wu (+ a0-14 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 300(a0) ;; [ 90] (set! a0-16 (l.wu (+ a0-15 300))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 91] (set! a0-13 (= v1-33 a0-16)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B23: -L66: - beql s7, a0, L67 ;; [ 92] (bl! (not a0-13) L67 (no-delay!)) [a0: symbol ] -> [] -B24: - or v1, a0, r0 ;; [ 93] (set! v1-36 a0-13) [a0: symbol ] -> [v1: symbol ] - -B25: - lw t9, ja-aframe-num(s7) ;; [ 94] (set! t9-6 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 95] (set! a0-17 0) [] -> [a0: ] - jalr ra, t9 ;; [ 96] (call! a0-17) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 97] (set! f0-1 (gpr->fpr v0-6)) [v0: float ] -> [] - lui v1, L810 ;; [ 98] (set! v1-37 L810) [] -> [v1: ] - ori v1, v1, L810 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 99] (set! f1-1 (l.f v1-37)) [v1: ] -> [] - c.lt.s f0, f1 ;; [100] (b! (>=.s f0-1 f1-1) L67 (set! v1-36 #t)) [] -> [v1: symbol ] - bc1f L67 - daddiu v1, s7, 8 - -B26: - or v1, s7, r0 ;; [101] (set! v1-36 #f) [] -> [v1: '#f ] -B27: -L67: - beq s7, v1, L68 ;; [102] (b! (not v1-36) L68 (set! v1-38 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B28: - lw v1, *flop-land-mods*(s7);; [103] (set! v1-39 *flop-land-mods*) [] -> [v1: surface ] - lwu v1, 144(v1) ;; [104] (set! v1-40 (l.wu (+ v1-39 144))) [v1: surface ] -> [v1: surface-flags ] - ori a0, v1, 1024 ;; [105] (set! a0-18 (logior v1-40 1024)) [v1: surface-flags ] -> [a0: surface-flags ] - lw v1, *flop-land-mods*(s7);; [106] (set! v1-41 *flop-land-mods*) [] -> [v1: surface ] - sw a0, 144(v1) ;; [107] (s.w! (+ v1-41 144) a0-18) [v1: surface a0: surface-flags ] -> [] -B29: -L68: - lw t9, slide-down-test(s7);; [108] (set! t9-7 slide-down-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [109] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 64(sp) - lq s5, 48(sp) - lq s4, 32(sp) - lq s3, 16(sp) - jr ra - daddiu sp, sp, 80 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-flop-hit-ground) - () - (when (!= (-> self control unknown-spoolanim00) 'stuck) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) - (go target-attack-air 'flop) - ) - ) - (when (and (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.25)) - ) - (dummy-10 - (-> self skel effect) - 'group-red-eco-spinkick - (ja-frame-num 0) - (if (rand-vu-percent? (the-as float 0.5)) - 23 - 17 - ) - ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) - ) - (let ((v1-33 (ja-group))) - (if (and (or (= v1-33 (-> self draw art-group data 65)) (= v1-33 (-> self draw art-group data 68))) - (>= (ja-aframe-num 0) 28.0) - ) - (logior! (-> *flop-land-mods* flags) (surface-flags allow-edge-grab)) - ) - ) - (slide-down-test) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-flop-hit-ground) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x30, fp? 1 ra? 1 ep? 1 - ;stack_vars: 16 bytes at 16 - ;gprs: gp -;; Warnings: -;; INFO: Return type mismatch state-flags vs none. - -;; a0-0: symbol s6-0: target f0-1: float -L69: - daddiu sp, sp, -48 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq gp, 32(sp) -B0: - or gp, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: symbol ] -> [gp: symbol ] - lwu v1, 108(s6) ;; [ 1] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 2] (set! v1-1 (l.wu (+ v1-0 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 3] (set! a0-1 (+ v1-1 28)) [v1: dynamics ] -> [a0: vector ] - daddiu v1, sp, 16 ;; [ 4] (set! v1-2 (+ sp-0 16)) [sp: ] -> [v1: vector ] - lwu a1, 108(s6) ;; [ 5] (set! a1-0 (l.wu (+ self 108))) [s6: target ] -> [a1: control-info ] - daddiu a1, a1, 2332 ;; [ 6] (set! a1-1 (+ a1-0 2332)) [a1: control-info ] -> [a1: vector ] - lwu a2, 108(s6) ;; [ 7] (set! a2-0 (l.wu (+ self 108))) [s6: target ] -> [a2: control-info ] - daddiu a2, a2, 12 ;; [ 8] (set! a2-1 (+ a2-0 12)) [a2: control-info ] -> [a2: vector ] - lqc2 vf4, 0(a1) ;; [ 9] (set! v1-3 (vector-!2 v1-2 a1-1 a2-1)) - ;; [v1: vector a1: vector a2: vector ] -> [v1: vector ] - lqc2 vf5, 0(a2) - vmove.w vf6, vf0 - vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lwc1 f0, 0(a0) ;; [ 10] (set! f0-0 (vec3dot a0-1 v1-3)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 11] (set! v1-4 (fpr->gpr f0-0)) [] -> [v1: float ] - mtc1 f0, v1 ;; [ 12] (set! f0-1 (gpr->fpr v1-4)) [v1: float ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 13] (set! v1-5 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f1, 144(v1) ;; [ 14] (set! f1-0 (l.f (+ v1-5 144))) [v1: target-bank ] -> [] - c.lt.s f1, f0 ;; [ 15] (b! (>=.s f1-0 f0-1) L70 (set! v1-6 #f)) [] -> [v1: '#f ] - bc1f L70 - or v1, s7, r0 - -B1: - lw t9, enter-state(s7) ;; [ 16] (set! t9-0 enter-state) [] -> [t9: ] - mfc1 a0, f0 ;; [ 17] (set! a0-2 (fpr->gpr f0-1)) [] -> [a0: float ] - lw v1, target-hit-ground-hard(s7);; [ 18] (set! v1-7 target-hit-ground-hard) [] -> [v1: (state float target) ] - sw v1, 72(s6) ;; [ 19] (s.w! (+ self 72) v1-7) [v1: (state float target) s6: target ] -> [] - jalr ra, t9 ;; [ 20] (call! a0-2) [a0: float t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 21] (set! v1-8 v0-0) [v0: object ] -> [v1: object ] -B2: -L70: - lw t9, target-land-effect(s7);; [ 22] (set! t9-1 target-land-effect) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 23] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, cpad-set-buzz!(s7) ;; [ 24] (set! t9-2 cpad-set-buzz!) - ;; [] -> [t9: (function cpad-info int int time-frame none) ] - lw v1, *cpad-list*(s7) ;; [ 25] (set! v1-9 *cpad-list*) [] -> [v1: cpad-list ] - lwu a0, 4(v1) ;; [ 26] (set! a0-3 (l.wu (+ v1-9 4))) [v1: cpad-list ] -> [a0: cpad-info ] - addiu a1, r0, 1 ;; [ 27] (set! a1-2 1) [] -> [a1: ] - addiu a2, r0, 255 ;; [ 28] (set! a2-2 255) [] -> [a2: ] - addiu a3, r0, 30 ;; [ 29] (set! a3-0 30) [] -> [a3: ] - jalr ra, t9 ;; [ 30] (call! a0-3 a1-2 a2-2 a3-0) - ;; [a0: cpad-info a1: a2: a3: t9: (function cpad-info int int time-frame none) ] -> [v0: none ] - sll v0, ra, 0 - - lw v1, *display*(s7) ;; [ 31] (set! v1-10 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 32] (set! v1-11 (l.d (+ v1-10 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 33] (s.d! (+ self 164) v1-11) [v1: time-frame s6: target ] -> [] - lwu v1, 108(s6) ;; [ 34] (set! v1-12 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw gp, 2180(v1) ;; [ 35] (s.w! (+ v1-12 2180) arg0) [v1: control-info gp: symbol ] -> [] - lw t9, set-forward-vel(s7);; [ 36] (set! t9-3 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - lui v1, L814 ;; [ 37] (set! v1-13 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 38] (set! a0-4 (l.w v1-13)) [v1: ] -> [a0: int ] - jalr ra, t9 ;; [ 39] (call! a0-4) - ;; [a0: int t9: (function float vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - lw v1, *flop-land-mods*(s7);; [ 40] (set! v1-14 *flop-land-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [ 41] (set! a0-5 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [ 42] (s.w! (+ a0-5 656) v1-14) [v1: surface a0: control-info ] -> [] - addiu v1, r0, -1025 ;; [ 43] (set! v1-15 -1025) [] -> [v1: ] - lw a0, *flop-land-mods*(s7);; [ 44] (set! a0-6 *flop-land-mods*) [] -> [a0: surface ] - lwu a0, 144(a0) ;; [ 45] (set! a0-7 (l.wu (+ a0-6 144))) [a0: surface ] -> [a0: surface-flags ] - and v1, v1, a0 ;; [ 46] (set! v1-16 (logand v1-15 a0-7)) - ;; [v1: a0: surface-flags ] -> [v1: surface-flags ] - lw a0, *flop-land-mods*(s7);; [ 47] (set! a0-8 *flop-land-mods*) [] -> [a0: surface ] - sw v1, 144(a0) ;; [ 48] (s.w! (+ a0-8 144) v1-16) [v1: surface-flags a0: surface ] -> [] - lui v1, 16 ;; [ 49] (set! v1-17 #x100000) [] -> [v1: ] - lwu a0, 160(s6) ;; [ 50] (set! a0-9 (l.wu (+ self 160))) [s6: target ] -> [a0: state-flags ] - or v0, v1, a0 ;; [ 51] (set! v0-4 (logior v1-17 a0-9)) - ;; [v1: a0: state-flags ] -> [v0: state-flags ] - sw v0, 160(s6) ;; [ 52] (s.w! (+ self 160) v0-4) [v0: state-flags s6: target ] -> [] - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 32(sp) - jr ra - daddiu sp, sp, 48 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-flop-hit-ground) - ((arg0 symbol)) - (let ((f0-1 (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) (-> self control unknown-vector111) (-> self control trans)) - ) - ) - ) - (if (< (-> *TARGET-bank* fall-far) f0-1) - (go target-hit-ground-hard f0-1) - ) - ) - (target-land-effect) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.1)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-uint20) (the-as uint arg0)) - (set-forward-vel (the-as float 0.0)) - (set! (-> self control unknown-surface00) *flop-land-mods*) - (logclear! (-> *flop-land-mods* flags) (surface-flags allow-edge-grab)) - (set! (-> self state-flags) (logior (state-flags flop-hit-ground) (-> self state-flags))) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (event target-flop-hit-ground) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; a0-0: process a1-0: int a2-0: symbol a3-0: event-message-block -L71: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - or v1, a2, r0 ;; [ 0] (set! v1-0 arg2) [a2: symbol ] -> [v1: symbol ] - daddiu t0, s7, swim ;; [ 1] (set! t0-0 'swim) [] -> [t0: symbol ] - bne v1, t0, L72 ;; [ 2] (b! (!= v1-0 t0-0) L72 (nop!)) [v1: symbol t0: symbol ] -> [] - sll r0, r0, 0 - -B1: - or v0, s7, r0 ;; [ 3] (set! v0-0 #f) [] -> [v0: '#f ] - beq r0, r0, L73 ;; [ 4] (b! #t L73 (nop!)) [] -> [] - sll r0, r0, 0 - -B2: -L72: - lw t9, target-standard-event-handler(s7);; [ 5] (set! t9-0 target-standard-event-handler) - ;; [] -> [t9: (function process int symbol event-message-block object :behavior target) ] - jalr ra, t9 ;; [ 6] (call! arg0 arg1 arg2 arg3) - ;; [a0: process a1: int a2: symbol a3: event-message-block t9: (function process int symbol event-message-block object :behavior target) ] -> [v0: object ] - sll v0, ra, 0 - -B3: -L73: - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (event target-flop-hit-ground) - ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('swim) - #f - ) - (else - (target-standard-event-handler arg0 arg1 arg2 arg3) - ) - ) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-flop) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x60, fp? 1 ra? 1 ep? 1 - ;stack_vars: 48 bytes at 16 - ;gprs: gp - ;fprs: f30 f28 -;; Warnings: -;; Used lq/sq - -;; s6-0: target gp-3: vector gp-4: vector gp-6: vector f0-18: float f0-19: float f0-22: float f0-23: float -;; f0-34: float f1-1: float f1-3: float f1-5: float f2-0: float f2-2: float f28-0: float f30-0: float -L74: - daddiu sp, sp, -96 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq gp, 64(sp) - swc1 f28, 80(sp) - swc1 f30, 84(sp) -B0: - lw t9, ja-channel-set!(s7);; [ 0] (set! t9-0 ja-channel-set!) - ;; [] -> [t9: (function int int :behavior process-drawable) ] - addiu a0, r0, 2 ;; [ 1] (set! a0-1 2) [] -> [a0: ] - jalr ra, t9 ;; [ 2] (call! a0-1) - ;; [a0: t9: (function int int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 3] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 4] (set! v1-1 (l.wu (+ v1-0 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 5] (set! a0-2 (+ v1-1 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 6] (set! v1-2 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 7] (set! v1-3 (l.wu (+ v1-2 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 280(v1) ;; [ 8] (set! v1-4 (l.wu (+ v1-3 280))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 9] (s.w! (+ a0-2 12) v1-4) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [ 10] (set! v1-5 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 11] (set! v1-6 (l.wu (+ v1-5 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 280(v1) ;; [ 12] (set! v1-7 (l.wu (+ v1-6 280))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 13] (set! (the-as art-joint-anim v1-8) (l.wu (+ v1-7 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 14] (set! v1-9 (l.h (+ v1-8 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 15] (set! v1-10 (+ v1-9 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 16] (set! f0-0 (gpr->fpr v1-10)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 17] (set! f0-1 (i2f f0-0)) [] -> [] - swc1 f0, 24(a0) ;; [ 18] (s.f! (+ a0-2 24) f0-1) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 19] (set! v1-11 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 20] (set! f0-2 (l.f v1-11)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 21] (s.f! (+ a0-2 28) f0-2) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 22] (set! f0-3 0) [] -> [] - swc1 f0, 16(a0) ;; [ 23] (s.f! (+ a0-2 16) f0-3) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [ 24] (set! t9-1 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 25] (set! v1-12 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 26] (set! v1-13 (l.wu (+ v1-12 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 280(v1) ;; [ 27] (set! a1-1 (l.wu (+ v1-13 280))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [ 28] (set! a2-1 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 29] (call! a0-2 a1-1 a2-1) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 30] (set! v1-14 v0-1) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [ 31] (set! v1-15 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 32] (set! v1-16 (l.wu (+ v1-15 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 48 ;; [ 33] (set! a0-3 (+ v1-16 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 34] (set! v1-17 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 35] (set! v1-18 (l.wu (+ v1-17 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 292(v1) ;; [ 36] (set! v1-19 (l.wu (+ v1-18 292))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 37] (s.w! (+ a0-3 12) v1-19) [v1: art-element a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 38] (set! f0-4 0) [] -> [] - swc1 f0, 24(a0) ;; [ 39] (s.f! (+ a0-3 24) f0-4) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 40] (set! f0-5 0) [] -> [] - swc1 f0, 16(a0) ;; [ 41] (s.f! (+ a0-3 16) f0-5) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 42] (set! t9-2 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 43] (set! v1-20 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 44] (set! v1-21 (l.wu (+ v1-20 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 292(v1) ;; [ 45] (set! a1-2 (l.wu (+ v1-21 292))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-chan(s7) ;; [ 46] (set! a2-2 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 47] (call! a0-3 a1-2 a2-2) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 48] (set! v1-22 v0-2) [v0: int ] -> [v1: int ] -B1: -L75: - lwu s6, 44(s6) ;; [ 49] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 50] (set! v1-23 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 51] (set! v1-24 (l.wu (+ v1-23 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 52] (set! a0-4 (+ v1-24 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [ 53] (set! v1-25 (l.wu (+ a0-4 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 54] (set! v1-26 (l.wu (+ v1-25 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 55] (set! v1-27 (l.h (+ v1-26 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 56] (set! v1-28 (+ v1-27 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 57] (set! f0-6 (gpr->fpr v1-28)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 58] (set! f0-7 (i2f f0-6)) [] -> [] - swc1 f0, 24(a0) ;; [ 59] (s.f! (+ a0-4 24) f0-7) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 60] (set! v1-29 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 61] (set! f0-8 (l.f v1-29)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 62] (s.f! (+ a0-4 28) f0-8) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 63] (set! t9-3 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 64] (set! a1-3 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 65] (set! a2-3 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 66] (call! a0-4 a1-3 a2-3) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 67] (set! v1-30 v0-3) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [ 68] (set! v1-31 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 69] (set! v1-32 (l.wu (+ v1-31 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu gp, v1, 48 ;; [ 70] (set! gp-0 (+ v1-32 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lw t9, lerp-scale(s7) ;; [ 71] (set! t9-4 lerp-scale) [] -> [t9: (function float float float float float float) ] - lui v1, L814 ;; [ 72] (set! v1-33 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 73] (set! a0-5 (l.w v1-33)) [v1: ] -> [a0: int ] - lui v1, L786 ;; [ 74] (set! v1-34 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a1, 0(v1) ;; [ 75] (set! a1-4 (l.w v1-34)) [v1: ] -> [a1: int ] - lwu v1, 108(s6) ;; [ 76] (set! v1-35 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 528(v1) ;; [ 77] (set! f0-9 (l.f (+ v1-35 528))) [v1: control-info ] -> [] - mfc1 a2, f0 ;; [ 78] (set! a2-4 (fpr->gpr f0-9)) [] -> [a2: float ] - lui v1, L814 ;; [ 79] (set! v1-36 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a3, 0(v1) ;; [ 80] (set! a3-0 (l.w v1-36)) [v1: ] -> [a3: int ] - lui v1, L732 ;; [ 81] (set! v1-37 L732) [] -> [v1: ] - ori v1, v1, L732 - addu v1, fp, v1 - lw t0, 0(v1) ;; [ 82] (set! t0-0 (l.w v1-37)) [v1: ] -> [t0: int ] - jalr ra, t9 ;; [ 83] (call! a0-5 a1-4 a2-4 a3-0 t0-0) - ;; [a0: int a1: int a2: float a3: int t0: int t9: (function float float float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 84] (set! f0-10 (gpr->fpr v0-4)) [v0: float ] -> [] - swc1 f0, 8(gp) ;; [ 85] (s.f! (+ gp-0 8) f0-10) [gp: joint-control-channel ] -> [] - lwu v1, 12(gp) ;; [ 86] (set! v1-38 (l.wu (+ gp-0 12))) - ;; [gp: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 87] (set! v1-39 (l.wu (+ v1-38 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 88] (set! v1-40 (l.h (+ v1-39 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 89] (set! v1-41 (+ v1-40 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 90] (set! f0-11 (gpr->fpr v1-41)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 91] (set! f0-12 (i2f f0-11)) [] -> [] - swc1 f0, 24(gp) ;; [ 92] (s.f! (+ gp-0 24) f0-12) [gp: joint-control-channel ] -> [] - lui v1, L786 ;; [ 93] (set! v1-42 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 94] (set! f0-13 (l.f v1-42)) [v1: ] -> [] - swc1 f0, 28(gp) ;; [ 95] (s.f! (+ gp-0 28) f0-13) [gp: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 96] (set! t9-5 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 97] (set! a1-5 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 98] (set! a2-5 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, gp, r0 ;; [ 99] (set! a0-6 gp-0) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [100] (call! a0-6 a1-5 a2-5) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [101] (set! v1-43 v0-5) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [102] (set! t9-6 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [103] (set! a0-7 0) [] -> [a0: ] - jalr ra, t9 ;; [104] (call! a0-7) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L75 ;; [105] (b! (not v0-6) L75 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B2: - or v1, s7, r0 ;; [106] (set! v1-44 #f) [] -> [v1: '#f ] - lwu v1, 108(s6) ;; [107] (set! v1-45 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 652(v1) ;; [108] (set! v1-46 (l.wu (+ v1-45 652))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f0, 8(v1) ;; [109] (set! f0-14 (l.f (+ v1-46 8))) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [110] (set! v1-47 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [111] (set! v1-48 (l.wu (+ v1-47 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 8(v1) ;; [112] (s.f! (+ v1-48 8) f0-14) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [113] (set! v1-49 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [114] (set! v1-50 (l.wu (+ v1-49 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu v1, v1, 12 ;; [115] (set! v1-51 (+ v1-50 12)) [v1: dynamics ] -> [v1: vector ] - lwu a0, 108(s6) ;; [116] (set! a0-8 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 652(a0) ;; [117] (set! a0-9 (l.wu (+ a0-8 652))) [a0: control-info ] -> [a0: dynamics ] - daddiu a0, a0, 12 ;; [118] (set! a0-10 (+ a0-9 12)) [a0: dynamics ] -> [a0: vector ] - lq a0, 0(a0) ;; [119] (set! a0-11 (l.q a0-10)) [a0: vector ] -> [a0: uint128 ] - sq a0, 0(v1) ;; [120] (s.q! v1-51 a0-11) [v1: vector a0: uint128 ] -> [] - lw t9, target-danger-set!(s7);; [121] (set! t9-7 target-danger-set!) - ;; [] -> [t9: (function symbol symbol float :behavior target) ] - daddiu a0, s7, flop-down ;; [122] (set! a0-12 'flop-down) [] -> [a0: symbol ] - or a1, s7, r0 ;; [123] (set! a1-6 #f) [] -> [a1: '#f ] - jalr ra, t9 ;; [124] (call! a0-12 a1-6) - ;; [a0: symbol a1: '#f t9: (function symbol symbol float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [125] (set! v1-52 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [126] (set! v1-53 (l.wu (+ v1-52 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [127] (set! gp-1 (+ v1-53 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lw t9, joint-control-channel-group-eval!(s7);; [128] (set! t9-8 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, gp, r0 ;; [129] (set! a0-13 gp-1) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [130] (set! v1-54 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [131] (set! v1-55 (l.wu (+ v1-54 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 284(v1) ;; [132] (set! a1-7 (l.wu (+ v1-55 284))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [133] (set! a2-6 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [134] (call! a0-13 a1-7 a2-6) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [135] (set! f0-15 0) [] -> [] - swc1 f0, 16(gp) ;; [136] (s.f! (+ gp-1 16) f0-15) [gp: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [137] (set! v1-56 (fpr->gpr f0-15)) [] -> [v1: float ] - lwu v1, 120(s6) ;; [138] (set! v1-57 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [139] (set! v1-58 (l.wu (+ v1-57 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu gp, v1, 48 ;; [140] (set! gp-2 (+ v1-58 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lw t9, joint-control-channel-group-eval!(s7);; [141] (set! t9-9 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, gp, r0 ;; [142] (set! a0-14 gp-2) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [143] (set! v1-59 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [144] (set! v1-60 (l.wu (+ v1-59 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 296(v1) ;; [145] (set! a1-8 (l.wu (+ v1-60 296))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [146] (set! a2-7 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [147] (call! a0-14 a1-8 a2-7) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [148] (set! f0-16 0) [] -> [] - swc1 f0, 16(gp) ;; [149] (s.f! (+ gp-2 16) f0-16) [gp: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [150] (set! v1-61 (fpr->gpr f0-16)) [] -> [v1: float ] - lui v1, L786 ;; [151] (set! v1-62 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [152] (set! f30-0 (l.f v1-62)) [v1: ] -> [] - daddiu gp, sp, 16 ;; [153] (set! gp-3 (+ sp-0 16)) [sp: ] -> [gp: vector ] - sq r0, 0(gp) ;; [154] (s.q! gp-3 0) [gp: vector ] -> [] - lwu v1, 108(s6) ;; [155] (set! v1-63 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [156] (set! v1-64 (l.wu (+ v1-63 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [157] (set! a0-15 (+ v1-64 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [158] (set! v1-65 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 18924 ;; [159] (set! v1-66 (+ v1-65 #x49ec)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [160] (set! f0-17 (vec3dot a0-15 v1-66)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [161] (set! v1-67 (fpr->gpr f0-17)) [] -> [v1: float ] - mtc1 f0, v1 ;; [162] (set! f0-18 (gpr->fpr v1-67)) [v1: float ] -> [] - mtc1 f1, r0 ;; [163] (set! f1-0 0) [] -> [] - or v1, gp, r0 ;; [164] (set! v1-68 gp-3) [gp: vector ] -> [v1: vector ] - lwu a0, 108(s6) ;; [165] (set! a0-16 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 18924 ;; [166] (set! a0-17 (+ a0-16 #x49ec)) [a0: control-info ] -> [a0: vector ] - or a1, gp, r0 ;; [167] (set! a1-9 gp-3) [gp: vector ] -> [a1: vector ] - lwu a2, 108(s6) ;; [168] (set! a2-8 (l.wu (+ self 108))) [s6: target ] -> [a2: control-info ] - lwu a2, 432(a2) ;; [169] (set! a2-9 (l.wu (+ a2-8 432))) [a2: control-info ] -> [a2: dynamics ] - daddiu a2, a2, 28 ;; [170] (set! a2-10 (+ a2-9 28)) [a2: dynamics ] -> [a2: vector ] - lqc2 vf1, 0(a2) ;; [171] (set! a1-10 (vector-float*!2 a1-9 a2-10 f0-18)) - ;; [a1: vector a2: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - lqc2 vf4, 0(a0) ;; [172] (set! v1-69 (vector-!2 v1-68 a0-17 a1-10)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf5, 0(a1) - vmove.w vf6, vf0 - vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lw t9, vector-length(s7) ;; [173] (set! t9-10 vector-length) [] -> [t9: (function vector float) ] - or a0, gp, r0 ;; [174] (set! a0-18 gp-3) [gp: vector ] -> [a0: vector ] - jalr ra, t9 ;; [175] (call! a0-18) [a0: vector t9: (function vector float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [176] (set! f0-19 (gpr->fpr v0-10)) [v0: float ] -> [] - mov.s f1, f0 ;; [177] (set! f1-1 f0-19) [] -> [] - lui v1, L812 ;; [178] (set! v1-70 L812) [] -> [v1: ] - ori v1, v1, L812 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [179] (set! f2-0 (l.f v1-70)) [v1: ] -> [] - lwu v1, 108(s6) ;; [180] (set! v1-71 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 18924 ;; [181] (set! v1-72 (+ v1-71 #x49ec)) [v1: control-info ] -> [v1: vector ] - lwu a0, 108(s6) ;; [182] (set! a0-19 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 18924 ;; [183] (set! a0-20 (+ a0-19 #x49ec)) [a0: control-info ] -> [a0: vector ] - lwu a1, 108(s6) ;; [184] (set! a1-11 (l.wu (+ self 108))) [s6: target ] -> [a1: control-info ] - lwu a1, 432(a1) ;; [185] (set! a1-12 (l.wu (+ a1-11 432))) [a1: control-info ] -> [a1: dynamics ] - daddiu a1, a1, 28 ;; [186] (set! a1-13 (+ a1-12 28)) [a1: dynamics ] -> [a1: vector ] - lqc2 vf1, 0(a1) ;; [187] (set! a0-21 (vector-float*!2 a0-20 a1-13 f2-0)) - ;; [a0: vector a1: vector ] -> [a0: vector ] - mfc1 a1, f2 - qmtc2.i vf2, a1 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a0) - or a1, gp, r0 ;; [188] (set! a1-14 gp-3) [gp: vector ] -> [a1: vector ] - div.s f0, f0, f1 ;; [189] (set! f0-20 (/.s f0-19 f1-1)) [] -> [] - lqc2 vf1, 0(gp) ;; [190] (set! a1-15 (vector-float*!2 a1-14 gp-3 f0-20)) - ;; [a1: vector gp: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - vmove.w vf6, vf0 ;; [191] (set! v1-73 (vector+!2 v1-72 a0-21 a1-15)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf4, 0(a0) - lqc2 vf5, 0(a1) - vadd.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - daddiu gp, sp, 32 ;; [192] (set! gp-4 (+ sp-0 32)) [sp: ] -> [gp: vector ] - sq r0, 0(gp) ;; [193] (s.q! gp-4 0) [gp: vector ] -> [] - lwu v1, 108(s6) ;; [194] (set! v1-74 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [195] (set! v1-75 (l.wu (+ v1-74 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [196] (set! a0-22 (+ v1-75 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [197] (set! v1-76 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [198] (set! v1-77 (+ v1-76 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [199] (set! f0-21 (vec3dot a0-22 v1-77)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [200] (set! v1-78 (fpr->gpr f0-21)) [] -> [v1: float ] - mtc1 f0, v1 ;; [201] (set! f0-22 (gpr->fpr v1-78)) [v1: float ] -> [] - mtc1 f1, r0 ;; [202] (set! f1-2 0) [] -> [] - or v1, gp, r0 ;; [203] (set! v1-79 gp-4) [gp: vector ] -> [v1: vector ] - lwu a0, 108(s6) ;; [204] (set! a0-23 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 60 ;; [205] (set! a0-24 (+ a0-23 60)) [a0: control-info ] -> [a0: vector ] - or a1, gp, r0 ;; [206] (set! a1-16 gp-4) [gp: vector ] -> [a1: vector ] - lwu a2, 108(s6) ;; [207] (set! a2-11 (l.wu (+ self 108))) [s6: target ] -> [a2: control-info ] - lwu a2, 432(a2) ;; [208] (set! a2-12 (l.wu (+ a2-11 432))) [a2: control-info ] -> [a2: dynamics ] - daddiu a2, a2, 28 ;; [209] (set! a2-13 (+ a2-12 28)) [a2: dynamics ] -> [a2: vector ] - lqc2 vf1, 0(a2) ;; [210] (set! a1-17 (vector-float*!2 a1-16 a2-13 f0-22)) - ;; [a1: vector a2: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - lqc2 vf4, 0(a0) ;; [211] (set! v1-80 (vector-!2 v1-79 a0-24 a1-17)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf5, 0(a1) - vmove.w vf6, vf0 - vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lw t9, vector-length(s7) ;; [212] (set! t9-11 vector-length) [] -> [t9: (function vector float) ] - or a0, gp, r0 ;; [213] (set! a0-25 gp-4) [gp: vector ] -> [a0: vector ] - jalr ra, t9 ;; [214] (call! a0-25) [a0: vector t9: (function vector float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [215] (set! f0-23 (gpr->fpr v0-11)) [v0: float ] -> [] - mov.s f1, f0 ;; [216] (set! f1-3 f0-23) [] -> [] - lui v1, L812 ;; [217] (set! v1-81 L812) [] -> [v1: ] - ori v1, v1, L812 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [218] (set! f2-1 (l.f v1-81)) [v1: ] -> [] - mul.s f2, f2, f30 ;; [219] (set! f2-2 (*.s f2-1 f30-0)) [] -> [] - lwu v1, 108(s6) ;; [220] (set! v1-82 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [221] (set! v1-83 (+ v1-82 60)) [v1: control-info ] -> [v1: vector ] - lwu a0, 108(s6) ;; [222] (set! a0-26 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 60 ;; [223] (set! a0-27 (+ a0-26 60)) [a0: control-info ] -> [a0: vector ] - lwu a1, 108(s6) ;; [224] (set! a1-18 (l.wu (+ self 108))) [s6: target ] -> [a1: control-info ] - lwu a1, 432(a1) ;; [225] (set! a1-19 (l.wu (+ a1-18 432))) [a1: control-info ] -> [a1: dynamics ] - daddiu a1, a1, 28 ;; [226] (set! a1-20 (+ a1-19 28)) [a1: dynamics ] -> [a1: vector ] - lqc2 vf1, 0(a1) ;; [227] (set! a0-28 (vector-float*!2 a0-27 a1-20 f2-2)) - ;; [a0: vector a1: vector ] -> [a0: vector ] - mfc1 a1, f2 - qmtc2.i vf2, a1 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a0) - or a1, gp, r0 ;; [228] (set! a1-21 gp-4) [gp: vector ] -> [a1: vector ] - div.s f0, f0, f1 ;; [229] (set! f0-24 (/.s f0-23 f1-3)) [] -> [] - lqc2 vf1, 0(gp) ;; [230] (set! a1-22 (vector-float*!2 a1-21 gp-4 f0-24)) - ;; [a1: vector gp: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - vmove.w vf6, vf0 ;; [231] (set! v1-84 (vector+!2 v1-83 a0-28 a1-22)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf4, 0(a0) - lqc2 vf5, 0(a1) - vadd.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lwu s6, 44(s6) ;; [232] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - -B3: -L76: - lwu v1, 108(s6) ;; [233] (set! v1-85 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 2180(v1) ;; [234] (set! v1-86 (l.wu (+ v1-85 2180))) [v1: control-info ] -> [v1: uint ] - daddiu v1, v1, 1 ;; [235] (set! v1-87 (+ v1-86 1)) [v1: uint ] -> [v1: ] - lwu a0, 108(s6) ;; [236] (set! a0-29 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 2180(a0) ;; [237] (s.w! (+ a0-29 2180) v1-87) [v1: a0: control-info ] -> [] - lwu v1, 120(s6) ;; [238] (set! v1-88 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [239] (set! v1-89 (l.wu (+ v1-88 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [240] (set! a0-30 (+ v1-89 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lui v1, L786 ;; [241] (set! v1-90 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [242] (set! f0-25 (l.f v1-90)) [v1: ] -> [] - swc1 f0, 24(a0) ;; [243] (s.f! (+ a0-30 24) f0-25) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [244] (set! t9-12 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [245] (set! a1-23 #f) [] -> [a1: '#f ] - lw a2, num-func-+!(s7) ;; [246] (set! a2-14 num-func-+!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [247] (call! a0-30 a1-23 a2-14) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [248] (set! v1-91 v0-12) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [249] (set! v1-92 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [250] (set! v1-93 (l.wu (+ v1-92 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu gp, v1, 48 ;; [251] (set! gp-5 (+ v1-93 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lw t9, lerp-scale(s7) ;; [252] (set! t9-13 lerp-scale) - ;; [] -> [t9: (function float float float float float float) ] - lui v1, L814 ;; [253] (set! v1-94 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a0, 0(v1) ;; [254] (set! a0-31 (l.w v1-94)) [v1: ] -> [a0: int ] - lui v1, L786 ;; [255] (set! v1-95 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a1, 0(v1) ;; [256] (set! a1-24 (l.w v1-95)) [v1: ] -> [a1: int ] - lwu v1, 108(s6) ;; [257] (set! v1-96 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 528(v1) ;; [258] (set! f0-26 (l.f (+ v1-96 528))) [v1: control-info ] -> [] - mfc1 a2, f0 ;; [259] (set! a2-15 (fpr->gpr f0-26)) [] -> [a2: float ] - lui v1, L814 ;; [260] (set! v1-97 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a3, 0(v1) ;; [261] (set! a3-1 (l.w v1-97)) [v1: ] -> [a3: int ] - lui v1, L732 ;; [262] (set! v1-98 L732) [] -> [v1: ] - ori v1, v1, L732 - addu v1, fp, v1 - lw t0, 0(v1) ;; [263] (set! t0-1 (l.w v1-98)) [v1: ] -> [t0: int ] - jalr ra, t9 ;; [264] (call! a0-31 a1-24 a2-15 a3-1 t0-1) - ;; [a0: int a1: int a2: float a3: int t0: int t9: (function float float float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [265] (set! f0-27 (gpr->fpr v0-13)) [v0: float ] -> [] - swc1 f0, 8(gp) ;; [266] (s.f! (+ gp-5 8) f0-27) [gp: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [267] (set! f0-28 0) [] -> [] - swc1 f0, 24(gp) ;; [268] (s.f! (+ gp-5 24) f0-28) [gp: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [269] (set! t9-14 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [270] (set! a1-25 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [271] (set! a2-16 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, gp, r0 ;; [272] (set! a0-32 gp-5) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [273] (call! a0-32 a1-25 a2-16) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [274] (set! v1-99 v0-14) [v0: int ] -> [v1: int ] - lui v1, L786 ;; [275] (set! v1-100 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [276] (set! f0-29 (l.f v1-100)) [v1: ] -> [] - lwu v1, 108(s6) ;; [277] (set! v1-101 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 18940(v1) ;; [278] (set! f1-4 (l.f (+ v1-101 #x49fc))) [v1: control-info ] -> [] - min.s f0, f0, f1 ;; [279] (set! f0-30 (min.s f0-29 f1-4)) [] -> [] - mul.s f30, f30, f0 ;; [280] (set! f30-0 (*.s f30-0 f0-30)) [] -> [] - daddiu gp, sp, 48 ;; [281] (set! gp-6 (+ sp-0 48)) [sp: ] -> [gp: vector ] - sq r0, 0(gp) ;; [282] (s.q! gp-6 0) [gp: vector ] -> [] - lwu v1, 108(s6) ;; [283] (set! v1-102 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [284] (set! v1-103 (l.wu (+ v1-102 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [285] (set! a0-33 (+ v1-103 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [286] (set! v1-104 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [287] (set! v1-105 (+ v1-104 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [288] (set! f0-31 (vec3dot a0-33 v1-105)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [289] (set! v1-106 (fpr->gpr f0-31)) [] -> [v1: float ] - mtc1 f28, v1 ;; [290] (set! f28-0 (gpr->fpr v1-106)) [v1: float ] -> [] - mtc1 f0, r0 ;; [291] (set! f0-32 0) [] -> [] - or v1, gp, r0 ;; [292] (set! v1-107 gp-6) [gp: vector ] -> [v1: vector ] - lwu a0, 108(s6) ;; [293] (set! a0-34 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 60 ;; [294] (set! a0-35 (+ a0-34 60)) [a0: control-info ] -> [a0: vector ] - or a1, gp, r0 ;; [295] (set! a1-26 gp-6) [gp: vector ] -> [a1: vector ] - lwu a2, 108(s6) ;; [296] (set! a2-17 (l.wu (+ self 108))) [s6: target ] -> [a2: control-info ] - lwu a2, 432(a2) ;; [297] (set! a2-18 (l.wu (+ a2-17 432))) [a2: control-info ] -> [a2: dynamics ] - daddiu a2, a2, 28 ;; [298] (set! a2-19 (+ a2-18 28)) [a2: dynamics ] -> [a2: vector ] - mov.s f0, f28 ;; [299] (set! f0-33 f28-0) [] -> [] - lqc2 vf1, 0(a2) ;; [300] (set! a1-27 (vector-float*!2 a1-26 a2-19 f0-33)) - ;; [a1: vector a2: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - lqc2 vf4, 0(a0) ;; [301] (set! v1-108 (vector-!2 v1-107 a0-35 a1-27)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf5, 0(a1) - vmove.w vf6, vf0 - vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lw t9, vector-length(s7) ;; [302] (set! t9-15 vector-length) [] -> [t9: (function vector float) ] - or a0, gp, r0 ;; [303] (set! a0-36 gp-6) [gp: vector ] -> [a0: vector ] - jalr ra, t9 ;; [304] (call! a0-36) [a0: vector t9: (function vector float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f1, v0 ;; [305] (set! f1-5 (gpr->fpr v0-15)) [v0: float ] -> [] - mov.s f0, f1 ;; [306] (set! f0-34 f1-5) [] -> [] - lwu v1, 108(s6) ;; [307] (set! v1-109 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 660(v1) ;; [308] (set! v1-110 (l.wu (+ v1-109 660))) [v1: control-info ] -> [v1: surface ] - lwc1 f2, 20(v1) ;; [309] (set! f2-3 (l.f (+ v1-110 20))) [v1: surface ] -> [] - c.lt.s f2, f1 ;; [310] (b! (>=.s f2-3 f1-5) L77 (set! v1-111 #f)) [] -> [v1: '#f ] - bc1f L77 - or v1, s7, r0 - -B4: - lwu v1, 108(s6) ;; [311] (set! v1-112 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 660(v1) ;; [312] (set! v1-113 (l.wu (+ v1-112 660))) [v1: control-info ] -> [v1: surface ] - lwc1 f1, 20(v1) ;; [313] (set! f1-5 (l.f (+ v1-113 20))) [v1: surface ] -> [] - mfc1 v1, f1 ;; [314] (set! v1-114 (fpr->gpr f1-5)) [] -> [v1: float ] -B5: -L77: - lwu v1, 108(s6) ;; [315] (set! v1-115 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [316] (set! v1-116 (+ v1-115 60)) [v1: control-info ] -> [v1: vector ] - lwu a0, 108(s6) ;; [317] (set! a0-37 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 60 ;; [318] (set! a0-38 (+ a0-37 60)) [a0: control-info ] -> [a0: vector ] - lwu a1, 108(s6) ;; [319] (set! a1-28 (l.wu (+ self 108))) [s6: target ] -> [a1: control-info ] - lwu a1, 432(a1) ;; [320] (set! a1-29 (l.wu (+ a1-28 432))) [a1: control-info ] -> [a1: dynamics ] - daddiu a1, a1, 28 ;; [321] (set! a1-30 (+ a1-29 28)) [a1: dynamics ] -> [a1: vector ] - lqc2 vf1, 0(a1) ;; [322] (set! a0-39 (vector-float*!2 a0-38 a1-30 f28-0)) - ;; [a0: vector a1: vector ] -> [a0: vector ] - mfc1 a1, f28 - qmtc2.i vf2, a1 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a0) - or a1, gp, r0 ;; [323] (set! a1-31 gp-6) [gp: vector ] -> [a1: vector ] - div.s f0, f1, f0 ;; [324] (set! f0-35 (/.s f1-5 f0-34)) [] -> [] - lqc2 vf1, 0(gp) ;; [325] (set! a1-32 (vector-float*!2 a1-31 gp-6 f0-35)) - ;; [a1: vector gp: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - vmove.w vf6, vf0 ;; [326] (set! v1-117 (vector+!2 v1-116 a0-39 a1-32)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf4, 0(a0) - lqc2 vf5, 0(a1) - vadd.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lw v1, *display*(s7) ;; [327] (set! v1-118 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [328] (set! v1-119 (l.d (+ v1-118 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [329] (set! a0-40 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [330] (set! v1-120 (- v1-119 a0-40)) - ;; [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - lw a0, *TARGET-bank*(s7) ;; [331] (set! a0-41 *TARGET-bank*) [] -> [a0: target-bank ] - ld a0, 180(a0) ;; [332] (set! a0-42 (l.d (+ a0-41 180))) [a0: target-bank ] -> [a0: time-frame ] - slt v1, v1, a0 ;; [333] (b! (<.si v1-120 a0-42) L78 (set! v1-121 #f)) - ;; [v1: time-frame a0: time-frame ] -> [v1: '#f ] - bne v1, r0, L78 - or v1, s7, r0 - -B6: - lw t9, enter-state(s7) ;; [334] (set! t9-16 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [335] (set! a0-43 #f) [] -> [a0: '#f ] - lw v1, target-falling(s7) ;; [336] (set! v1-122 target-falling) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [337] (s.w! (+ self 72) v1-122) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [338] (call! a0-43) [a0: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [339] (set! v1-123 v0-16) [v0: object ] -> [v1: object ] -B7: -L78: - lw v1, *cheat-mode*(s7) ;; [340] (set! v1-124 *cheat-mode*) [] -> [v1: symbol ] - daddiu a0, s7, debug ;; [341] (set! a0-44 'debug) [] -> [a0: symbol ] - dsubu v1, v1, a0 ;; [342] (set! a0-45 (= v1-124 a0-44)) [v1: symbol a0: symbol ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L79 ;; [343] (bl! (not a0-45) L79 (no-delay!)) [a0: symbol ] -> [] -B8: - or v1, a0, r0 ;; [344] (set! v1-125 a0-45) [a0: symbol ] -> [v1: symbol ] - -B9: - lwu v1, 108(s6) ;; [345] (set! v1-126 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [346] (set! v1-127 (l.wu (+ v1-126 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [347] (set! v1-128 (l.w (+ v1-127 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [348] (set! v1-129 (sll v1-128 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [349] (set! a0-46 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [350] (set! v1-130 (+ v1-129 a0-46)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [351] (set! v1-131 (l.wu (+ v1-130 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 40(v1) ;; [352] (set! v1-132 (l.wu (+ v1-131 40))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 512 ;; [353] (set! v1-133 (logand v1-132 512)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L79 ;; [354] (bl! (zero? v1-133) L79 (no-delay!)) [v1: pad-buttons ] -> [] -B10: - or v1, s7, r0 ;; [355] (set! v1-125 #f) [] -> [v1: '#f ] - -B11: - lw v1, *pause-lock*(s7) ;; [356] (set! v1-134 *pause-lock*) [] -> [v1: symbol ] - beq s7, v1, L79 ;; [357] (b! (not v1-134) L79 (set! v1-125 #t)) [v1: symbol ] -> [v1: symbol ] - daddiu v1, s7, 8 - -B12: - or v1, s7, r0 ;; [358] (set! v1-125 #f) [] -> [v1: '#f ] -B13: -L79: - beq s7, v1, L80 ;; [359] (b! (not v1-125) L80 (set! v1-135 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B14: - lw t9, enter-state(s7) ;; [360] (set! t9-17 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [361] (set! a0-47 #f) [] -> [a0: '#f ] - lw v1, target-falling(s7) ;; [362] (set! v1-136 target-falling) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [363] (s.w! (+ self 72) v1-136) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [364] (call! a0-47) [a0: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [365] (set! v1-137 v0-17) [v0: object ] -> [v1: object ] -B15: -L80: - lwu s6, 44(s6) ;; [366] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - beq r0, r0, L76 ;; [367] (b! #t L76 (nop!)) [] -> [] - sll r0, r0, 0 - -B16: - or v0, s7, r0 ;; [368] (set! v0-18 #f) [] -> [v0: ] - ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 84(sp) - lwc1 f28, 80(sp) - lq gp, 64(sp) - jr ra - daddiu sp, sp, 96 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-flop) - ((arg0 float) (arg1 float) (arg2 float)) - (ja-channel-set! 2) - (ja-no-eval :group! (-> self draw art-group data 63) :num! (seek!) :frame-num 0.0) - (ja :chan 1 :group! (-> self draw art-group data 66) :num! (chan 0) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - (ja :chan 1 :num! (seek!) :frame-interp (lerp-scale - (the-as float 0.0) - (the-as float 1.0) - (-> self control unknown-float01) - (the-as float 0.0) - (the-as float 40960.0) - ) - ) - ) - (set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length)) - (set! (-> self control dynam gravity quad) (-> self control unknown-dynamics00 gravity quad)) - (target-danger-set! 'flop-down #f) - (ja :group! (-> self draw art-group data 64) :num! min) - (ja :chan 1 :group! (-> self draw art-group data 67) :num! min) - (let ((f30-0 1.0)) - (let ((gp-3 (new-stack-vector0))) - (let ((f0-18 (vector-dot (-> self control dynam gravity-normal) (-> self control unknown-vector120)))) - 0.0 - (vector-! - gp-3 - (-> self control unknown-vector120) - (vector-float*! gp-3 (-> self control dynam gravity-normal) f0-18) - ) - ) - (let* ((f0-19 (vector-length gp-3)) - (f1-1 f0-19) - (f2-0 -368640.0) - ) - (vector+! - (-> self control unknown-vector120) - (vector-float*! (-> self control unknown-vector120) (-> self control dynam gravity-normal) f2-0) - (vector-float*! gp-3 gp-3 (/ f0-19 f1-1)) - ) - ) - ) - (let ((gp-4 (new-stack-vector0))) - (let ((f0-22 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) - 0.0 - (vector-! gp-4 (-> self control transv) (vector-float*! gp-4 (-> self control dynam gravity-normal) f0-22)) - ) - (let* ((f0-23 (vector-length gp-4)) - (f1-3 f0-23) - (f2-2 (* -368640.0 f30-0)) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-2) - (vector-float*! gp-4 gp-4 (/ f0-23 f1-3)) - ) - ) - ) - (suspend) - (loop - (+! (-> self control unknown-uint20) 1) - (ja :num! (+!)) - (ja :chan 1 :num! (chan 0) :frame-interp (lerp-scale - (the-as float 0.0) - (the-as float 1.0) - (-> self control unknown-float01) - (the-as float 0.0) - (the-as float 40960.0) - ) - ) - (set! f30-0 (* f30-0 (fmin 1.0 (-> self control unknown-float140)))) - (let ((gp-6 (new-stack-vector0)) - (f28-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - ) - 0.0 - (vector-! gp-6 (-> self control transv) (vector-float*! gp-6 (-> self control dynam gravity-normal) f28-0)) - (let* ((f1-5 (vector-length gp-6)) - (f0-34 f1-5) - ) - (if (< (-> self control unknown-surface01 transv-max) f1-5) - (set! f1-5 (-> self control unknown-surface01 transv-max)) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f28-0) - (vector-float*! gp-6 gp-6 (/ f1-5 f0-34)) - ) - ) - ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> *TARGET-bank* fall-timeout)) - (go target-falling #f) - ) - (if (and (= *cheat-mode* 'debug) (cpad-hold? (-> self control unknown-cpad-info00 number) r2) (not *pause-lock*)) - (go target-falling #f) - ) - (suspend) - ) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (exit target-flop) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; Warnings: -;; INFO: Return type mismatch vector vs none. -;; Used lq/sq - -;; s6-0: target -L81: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lw t9, target-danger-set!(s7);; [ 0] (set! t9-0 target-danger-set!) - ;; [] -> [t9: (function symbol symbol float :behavior target) ] - daddiu a0, s7, harmless ;; [ 1] (set! a0-0 'harmless) [] -> [a0: symbol ] - or a1, s7, r0 ;; [ 2] (set! a1-0 #f) [] -> [a1: '#f ] - jalr ra, t9 ;; [ 3] (call! a0-0 a1-0) - ;; [a0: symbol a1: '#f t9: (function symbol symbol float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - lwu v1, 108(s6) ;; [ 4] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 652(v1) ;; [ 5] (set! v1-1 (l.wu (+ v1-0 652))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f0, 4(v1) ;; [ 6] (set! f0-0 (l.f (+ v1-1 4))) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [ 7] (set! v1-2 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 8] (set! v1-3 (l.wu (+ v1-2 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 4(v1) ;; [ 9] (s.f! (+ v1-3 4) f0-0) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [ 10] (set! v1-4 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 652(v1) ;; [ 11] (set! v1-5 (l.wu (+ v1-4 652))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f0, 8(v1) ;; [ 12] (set! f0-1 (l.f (+ v1-5 8))) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [ 13] (set! v1-6 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 14] (set! v1-7 (l.wu (+ v1-6 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 8(v1) ;; [ 15] (s.f! (+ v1-7 8) f0-1) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [ 16] (set! v1-8 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 17] (set! v1-9 (l.wu (+ v1-8 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu v0, v1, 12 ;; [ 18] (set! v0-1 (+ v1-9 12)) [v1: dynamics ] -> [v0: vector ] - lwu v1, 108(s6) ;; [ 19] (set! v1-10 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 652(v1) ;; [ 20] (set! v1-11 (l.wu (+ v1-10 652))) [v1: control-info ] -> [v1: dynamics ] - daddiu v1, v1, 12 ;; [ 21] (set! v1-12 (+ v1-11 12)) [v1: dynamics ] -> [v1: vector ] - lq v1, 0(v1) ;; [ 22] (set! v1-13 (l.q v1-12)) [v1: vector ] -> [v1: uint128 ] - sq v1, 0(v0) ;; [ 23] (s.q! v0-1 v1-13) [v0: vector v1: uint128 ] -> [] - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (exit target-flop) - () - (target-danger-set! 'harmless #f) - (set! (-> self control dynam gravity-max) (-> self control unknown-dynamics00 gravity-max)) - (set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length)) - (set! (-> self control dynam gravity quad) (-> self control unknown-dynamics00 gravity quad)) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-flop) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0xa0, fp? 1 ra? 1 ep? 1 - ;stack_vars: 80 bytes at 16 - ;gprs: gp s5 s4 s3 -;; Warnings: -;; INFO: Return type mismatch float vs none. - -;; v1-6: art-joint-anim s5-1: (pointer process) s6-0: target gp-1: symbol -L82: - daddiu sp, sp, -160 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s3, 96(sp) - sq s4, 112(sp) - sq s5, 128(sp) - sq gp, 144(sp) -B0: - lw t9, delete-back-vel(s7);; [ 0] (set! t9-0 delete-back-vel) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 1] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - daddiu gp, s7, 8 ;; [ 2] (set! gp-0 #t) [] -> [gp: symbol ] - lwu v1, 108(s6) ;; [ 3] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [ 4] (set! v1-1 (l.d (+ v1-0 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - andi v1, v1, 1 ;; [ 5] (set! v1-2 (logand v1-1 1)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - movz gp, s7, v1 ;; [ 6] (cmove-#f-zero gp-1 v1-2 gp-0) - ;; [v1: cshape-moving-flags gp: symbol ] -> [gp: symbol ] - bnel s7, gp, L84 ;; [ 7] (bl! (truthy gp-1) L84 (no-delay!)) [gp: symbol ] -> [] -B1: - or v1, s7, r0 ;; [ 8] (set! v1-3 #f) [] -> [v1: '#f ] - -B2: - lwu v1, 120(s6) ;; [ 9] (set! v1-4 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 10] (set! v1-5 (l.w (+ v1-4 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 11] (b! (<=0.si v1-5) L83 (set! v1-6 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L83 - or v1, s7, r0 - -B3: - lwu v1, 120(s6) ;; [ 12] (set! v1-7 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 13] (set! v1-8 (l.wu (+ v1-7 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 14] (set! v1-6 (l.wu (+ v1-8 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B4: -L83: - lwu a0, 116(s6) ;; [ 15] (set! a0-0 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 16] (set! a0-1 (l.wu (+ a0-0 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 284(a0) ;; [ 17] (set! a0-2 (l.wu (+ a0-1 284))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [ 18] (set! a1-0 (= v1-6 a0-2)) [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L84 ;; [ 19] (bl! (truthy a1-0) L84 (no-delay!)) [a1: symbol ] -> [] -B5: - or v1, a1, r0 ;; [ 20] (set! v1-3 a1-0) [a1: symbol ] -> [v1: symbol ] - -B6: - lwu a0, 116(s6) ;; [ 21] (set! a0-3 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 22] (set! a0-4 (l.wu (+ a0-3 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 292(a0) ;; [ 23] (set! a0-5 (l.wu (+ a0-4 292))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [ 24] (set! v1-3 (= v1-6 a0-5)) [v1: art-joint-anim a0: art-element ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B7: -L84: - beq s7, v1, L88 ;; [ 25] (b! (not v1-3) L88 (set! v1-9 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B8: - lw t9, target-move-dist(s7);; [ 26] (set! t9-1 target-move-dist) - ;; [] -> [t9: (function time-frame float :behavior target) ] - addiu a0, r0, 30 ;; [ 27] (set! a0-6 30) [] -> [a0: ] - jalr ra, t9 ;; [ 28] (call! a0-6) - ;; [a0: t9: (function time-frame float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 29] (set! f0-0 (gpr->fpr v0-1)) [v0: float ] -> [] - lui v1, L802 ;; [ 30] (set! v1-10 L802) [] -> [v1: ] - ori v1, v1, L802 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 31] (set! f1-0 (l.f v1-10)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 32] (b! (<.s f0-0 f1-0) L85 (set! v1-11 #t)) [] -> [v1: symbol ] - bc1t L85 - daddiu v1, s7, 8 - -B9: - or v1, s7, r0 ;; [ 33] (set! v1-11 #f) [] -> [v1: '#f ] -B10: -L85: - bnel s7, v1, L86 ;; [ 34] (bl! (truthy v1-11) L86 (no-delay!)) [v1: symbol ] -> [] -B11: - or v1, v1, r0 ;; [ 35] (set! v1-12 v1-11) [v1: symbol ] -> [v1: symbol ] - -B12: - lwu v1, 108(s6) ;; [ 36] (set! v1-13 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [ 37] (set! v1-14 (l.d (+ v1-13 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - andi v1, v1, 8 ;; [ 38] (set! v1-15 (logand v1-14 8)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - beql v1, r0, L86 ;; [ 39] (bl! (zero? v1-15) L86 (no-delay!)) [v1: cshape-moving-flags ] -> [] -B13: - or v1, s7, r0 ;; [ 40] (set! v1-12 #f) [] -> [v1: '#f ] - -B14: - lui v1, L762 ;; [ 41] (set! v1-16 L762) [] -> [v1: ] - ori v1, v1, L762 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 42] (set! f0-1 (l.f v1-16)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 43] (set! v1-17 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 420(v1) ;; [ 44] (set! f1-1 (l.f (+ v1-17 420))) [v1: control-info ] -> [] - c.lt.s f0, f1 ;; [ 45] (b! (<.s f0-1 f1-1) L86 (set! v1-12 #t)) [] -> [v1: symbol ] - bc1t L86 - daddiu v1, s7, 8 - -B15: - or v1, s7, r0 ;; [ 46] (set! v1-12 #f) [] -> [v1: '#f ] -B16: -L86: - beql s7, v1, L87 ;; [ 47] (bl! (not v1-12) L87 (no-delay!)) [v1: symbol ] -> [] -B17: - or v1, v1, r0 ;; [ 48] (set! v1-18 v1-12) [v1: symbol ] -> [v1: symbol ] - -B18: - lwu v1, 108(s6) ;; [ 49] (set! v1-19 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [ 50] (set! v1-20 (l.d (+ v1-19 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - andi v1, v1, 32 ;; [ 51] (set! v1-21 (logand v1-20 32)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - bnel v1, r0, L87 ;; [ 52] (bl! (nonzero? v1-21) L87 (no-delay!)) [v1: cshape-moving-flags ] -> [] -B19: - or v1, s7, r0 ;; [ 53] (set! v1-18 #f) [] -> [v1: '#f ] - -B20: - lwu v1, 108(s6) ;; [ 54] (set! v1-22 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 2180(v1) ;; [ 55] (set! v1-23 (l.wu (+ v1-22 2180))) [v1: control-info ] -> [v1: uint ] - sltiu a0, v1, 2 ;; [ 56] (set! v1-18 (>=.ui v1-23 2)) [v1: uint ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B21: -L87: - beq s7, v1, L88 ;; [ 57] (b! (not v1-18) L88 (set! v1-24 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B22: - lw v1, *display*(s7) ;; [ 58] (set! v1-25 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 59] (set! v1-26 (l.d (+ v1-25 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 60] (set! a0-7 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 1708(a0) ;; [ 61] (s.d! (+ a0-7 1708) v1-26) [v1: time-frame a0: control-info ] -> [] - daddiu gp, s7, stuck ;; [ 62] (set! gp-1 'stuck) [] -> [gp: symbol ] - or v1, gp, r0 ;; [ 63] (set! v1-27 gp-1) [gp: symbol ] -> [v1: symbol ] -B23: -L88: - beq s7, gp, L94 ;; [ 64] (b! (not gp-1) L94 (set! v1-28 #f)) [gp: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B24: - lwu v1, 108(s6) ;; [ 65] (set! v1-29 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [ 66] (set! v1-30 (l.d (+ v1-29 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - ori v1, v1, 1 ;; [ 67] (set! v1-31 (logior v1-30 1)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - lwu a0, 108(s6) ;; [ 68] (set! a0-8 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 268(a0) ;; [ 69] (s.d! (+ a0-8 268) v1-31) [v1: cshape-moving-flags a0: control-info ] -> [] - lwu v1, 140(s6) ;; [ 70] (set! v1-32 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lw v1, 36(v1) ;; [ 71] (set! v1-33 (l.w (+ v1-32 36))) [v1: fact-info-target ] -> [v1: pickup-type ] - daddiu v1, v1, -2 ;; [ 72] (set! v1-34 (+ v1-33 -2)) [v1: pickup-type ] -> [v1: ] - daddiu a0, s7, 8 ;; [ 73] (set! a0-9 (zero? v1-34)) [v1: ] -> [a0: symbol ] - movn a0, s7, v1 - beql s7, a0, L89 ;; [ 74] (bl! (not a0-9) L89 (no-delay!)) [a0: symbol ] -> [] -B25: - or v1, a0, r0 ;; [ 75] (set! v1-35 a0-9) [a0: symbol ] -> [v1: symbol ] - -B26: - lwu v1, 140(s6) ;; [ 76] (set! v1-36 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lwc1 f0, 40(v1) ;; [ 77] (set! f0-2 (l.f (+ v1-36 40))) [v1: fact-info-target ] -> [] - lui v1, L786 ;; [ 78] (set! v1-37 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 79] (set! f1-2 (l.f v1-37)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 80] (b! (>=.s f0-2 f1-2) L89 (set! v1-35 #t)) [] -> [v1: symbol ] - bc1f L89 - daddiu v1, s7, 8 - -B27: - or v1, s7, r0 ;; [ 81] (set! v1-35 #f) [] -> [v1: '#f ] -B28: -L89: - beq s7, v1, L93 ;; [ 82] (b! (not v1-35) L93 (set! v1-38 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B29: - lw t9, cpad-set-buzz!(s7) ;; [ 83] (set! t9-2 cpad-set-buzz!) - ;; [] -> [t9: (function cpad-info int int time-frame none) ] - lw v1, *cpad-list*(s7) ;; [ 84] (set! v1-39 *cpad-list*) [] -> [v1: cpad-list ] - lwu a0, 4(v1) ;; [ 85] (set! a0-10 (l.wu (+ v1-39 4))) [v1: cpad-list ] -> [a0: cpad-info ] - addiu a1, r0, 1 ;; [ 86] (set! a1-1 1) [] -> [a1: ] - addiu a2, r0, 255 ;; [ 87] (set! a2-0 255) [] -> [a2: ] - addiu a3, r0, 150 ;; [ 88] (set! a3-0 150) [] -> [a3: ] - jalr ra, t9 ;; [ 89] (call! a0-10 a1-1 a2-0 a3-0) - ;; [a0: cpad-info a1: a2: a3: t9: (function cpad-info int int time-frame none) ] -> [v0: none ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 90] (set! v1-40 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu s5, 36(v1) ;; [ 91] (set! s5-0 (l.wu (+ v1-40 36))) [v1: joint-control ] -> [s5: effect-control ] - lwu v1, -4(s5) ;; [ 92] (set! v1-41 (l.wu (+ s5-0 -4))) - ;; [s5: effect-control ] -> [v1: ] - lwu s4, 56(v1) ;; [ 93] (set! s4-0 (l.wu (+ v1-41 56))) - ;; [v1: ] -> [s4: ] - daddiu s3, s7, group-red-eco-strike-ground;; [ 94] (set! s3-0 'group-red-eco-strike-ground) [] -> [s3: symbol ] - lw t9, ja-frame-num(s7) ;; [ 95] (set! t9-3 ja-frame-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 96] (set! a0-11 0) [] -> [a0: ] - jalr ra, t9 ;; [ 97] (call! a0-11) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - or a2, v0, r0 ;; [ 98] (set! a2-1 v0-3) [v0: float ] -> [a2: float ] - addiu a3, r0, 0 ;; [ 99] (set! a3-1 0) [] -> [a3: ] - or t9, s4, r0 ;; [100] (set! t9-4 s4-0) - ;; [s4: ] -> [t9: ] - or a0, s5, r0 ;; [101] (set! a0-12 s5-0) [s5: effect-control ] -> [a0: effect-control ] - or a1, s3, r0 ;; [102] (set! a1-2 s3-0) [s3: symbol ] -> [a1: symbol ] - jalr ra, t9 ;; [103] (call! a0-12 a1-2 a2-1 a3-1) - ;; [a0: effect-control a1: symbol a2: float a3: t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [104] (set! v1-42 v0-4) [v0: object ] -> [v1: object ] - lw a0, *default-dead-pool*(s7);; [105] (set! a0-13 *default-dead-pool*) [] -> [a0: dead-pool ] - lwu v1, -4(a0) ;; [106] (set! v1-43 (l.wu (+ a0-13 -4))) [a0: dead-pool ] -> [v1: ] - lwu t9, 72(v1) ;; [107] (set! t9-5 (l.wu (+ v1-43 72))) - ;; [v1: ] -> [t9: ] - lw a1, touch-tracker(s7) ;; [108] (set! a1-3 touch-tracker) [] -> [a1: ] - addiu a2, r0, 16384 ;; [109] (set! a2-2 #x4000) [] -> [a2: ] - jalr ra, t9 ;; [110] (call! a0-13 a1-3 a2-2) - ;; [a0: dead-pool a1: a2: t9: ] -> [v0: process ] - sll v0, ra, 0 - - or s4, v0, r0 ;; [111] (set! s4-1 v0-5) [v0: process ] -> [s4: process ] - beq s7, s4, L90 ;; [112] (b! (not s4-1) L90 (set! s5-1 #f)) [s4: process ] -> [s5: '#f ] - or s5, s7, r0 - -B30: - lw v1, touch-tracker(s7) ;; [113] (set! v1-44 touch-tracker) [] -> [v1: ] - lwu t9, 52(v1) ;; [114] (set! t9-6 (l.wu (+ v1-44 52))) - ;; [v1: ] -> [t9: ] - or a0, s4, r0 ;; [115] (set! a0-14 s4-1) [s4: process ] -> [a0: process ] - or a1, s6, r0 ;; [116] (set! a1-4 self) [s6: target ] -> [a1: target ] - daddiu a2, s7, touch-tracker;; [117] (set! a2-3 'touch-tracker) [] -> [a2: symbol ] - lui v1, 28672 ;; [118] (set! a3-2 #x70004000) [] -> [a3: ] - ori a3, v1, 16384 - jalr ra, t9 ;; [119] (call! a0-14 a1-4 a2-3 a3-2) - ;; [a0: process a1: target a2: symbol a3: t9: ] -> [v0: process-tree ] - sll v0, ra, 0 - - lw t9, run-function-in-process(s7);; [120] (set! t9-7 run-function-in-process) - ;; [] -> [t9: ] - or a0, s4, r0 ;; [121] (set! a0-15 s4-1) [s4: process ] -> [a0: process ] - lw a1, touch-tracker-init(s7);; [122] (set! a1-5 touch-tracker-init) - ;; [] -> [a1: (function vector float time-frame none :behavior touch-tracker) ] - lwu v1, 108(s6) ;; [123] (set! v1-45 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a2, v1, 12 ;; [124] (set! a2-4 (+ v1-45 12)) [v1: control-info ] -> [a2: vector ] - lui v1, L726 ;; [125] (set! v1-46 L726) [] -> [v1: ] - ori v1, v1, L726 - addu v1, fp, v1 - lw a3, 0(v1) ;; [126] (set! a3-3 (l.w v1-46)) [v1: ] -> [a3: int ] - addiu t0, r0, 30 ;; [127] (set! t0-0 30) [] -> [t0: ] - jalr ra, t9 ;; [128] (call! a0-15 a1-5 a2-4 a3-3 t0-0) - ;; [a0: process a1: (function vector float time-frame none :behavior touch-tracker) a2: vector a3: int t0: t9: ] -> [v0: none ] - sll v0, ra, 0 - - lwu s5, 20(s4) ;; [129] (set! s5-1 (l.wu (+ s4-1 20))) [s4: process ] -> [s5: (pointer process) ] -B31: -L90: - daddiu a1, sp, 16 ;; [130] (set! a1-6 (+ sp-0 16)) [sp: ] -> [a1: event-message-block ] - sw s6, 4(a1) ;; [131] (s.w! (+ a1-6 4) self) [a1: event-message-block s6: target ] -> [] - addiu v1, r0, 2 ;; [132] (set! v1-47 2) [] -> [v1: ] - sw v1, 8(a1) ;; [133] (s.w! (+ a1-6 8) v1-47) [v1: a1: event-message-block ] -> [] - daddiu v1, s7, event ;; [134] (set! v1-48 'event) [] -> [v1: symbol ] - sw v1, 12(a1) ;; [135] (s.w! (+ a1-6 12) v1-48) [v1: symbol a1: event-message-block ] -> [] - daddiu v1, s7, attack ;; [136] (set! v1-49 'attack) [] -> [v1: symbol ] - sd v1, 16(a1) ;; [137] (s.d! (+ a1-6 16) v1-49) [v1: symbol a1: event-message-block ] -> [] - daddiu v1, s7, flop ;; [138] (set! v1-50 'flop) [] -> [v1: symbol ] - sd v1, 24(a1) ;; [139] (s.d! (+ a1-6 24) v1-50) [v1: symbol a1: event-message-block ] -> [] - lw t9, send-event-function(s7);; [140] (set! t9-8 send-event-function) - ;; [] -> [t9: (function process-tree event-message-block object) ] - or v1, s5, r0 ;; [141] (set! v1-51 s5-1) [s5: (pointer process) ] -> [v1: (pointer process) ] - beq s7, v1, L91 ;; [142] (b! (not v1-51) L91 (set! a0-16 #f)) [v1: (pointer process) ] -> [a0: '#f ] - or a0, s7, r0 - -B32: - lwu v1, 0(v1) ;; [143] (set! v1-52 (l.wu v1-51)) [v1: (pointer process) ] -> [v1: process ] - lwu a0, 24(v1) ;; [144] (set! a0-16 (l.wu (+ v1-52 24))) [v1: process ] -> [a0: process-tree ] -B33: -L91: - jalr ra, t9 ;; [145] (call! a0-16 a1-6) - ;; [a0: process-tree a1: event-message-block t9: (function process-tree event-message-block object) ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [146] (set! v1-53 v0-8) [v0: object ] -> [v1: object ] - daddiu a1, sp, 16 ;; [147] (set! a1-7 (+ sp-0 16)) [sp: ] -> [a1: event-message-block ] - sw s6, 4(a1) ;; [148] (s.w! (+ a1-7 4) self) [a1: event-message-block s6: target ] -> [] - addiu v1, r0, 1 ;; [149] (set! v1-54 1) [] -> [v1: ] - sw v1, 8(a1) ;; [150] (s.w! (+ a1-7 8) v1-54) [v1: a1: event-message-block ] -> [] - daddiu v1, s7, function ;; [151] (set! v1-55 'function) [] -> [v1: symbol ] - sw v1, 12(a1) ;; [152] (s.w! (+ a1-7 12) v1-55) [v1: symbol a1: event-message-block ] -> [] - lui v1, L102 ;; [153] (set! v1-56 L102) [] -> [v1: (function target float) ] - ori v1, v1, L102 - daddu v1, v1, fp - sd v1, 16(a1) ;; [154] (s.d! (+ a1-7 16) v1-56) - ;; [v1: (function target float) a1: event-message-block ] -> [] - lw t9, send-event-function(s7);; [155] (set! t9-9 send-event-function) - ;; [] -> [t9: (function process-tree event-message-block object) ] - beq s7, s5, L92 ;; [156] (b! (not s5-1) L92 (set! a0-17 #f)) [s5: (pointer process) ] -> [a0: '#f ] - or a0, s7, r0 - -B34: - lwu v1, 0(s5) ;; [157] (set! v1-57 (l.wu s5-1)) [s5: (pointer process) ] -> [v1: process ] - lwu a0, 24(v1) ;; [158] (set! a0-17 (l.wu (+ v1-57 24))) [v1: process ] -> [a0: process-tree ] -B35: -L92: - jalr ra, t9 ;; [159] (call! a0-17 a1-7) - ;; [a0: process-tree a1: event-message-block t9: (function process-tree event-message-block object) ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [160] (set! v1-58 v0-9) [v0: object ] -> [v1: object ] -B36: -L93: - lw t9, enter-state(s7) ;; [161] (set! t9-10 enter-state) [] -> [t9: ] - or a0, gp, r0 ;; [162] (set! a0-18 gp-1) [gp: symbol ] -> [a0: symbol ] - lw v1, target-flop-hit-ground(s7);; [163] (set! v1-59 target-flop-hit-ground) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [164] (s.w! (+ self 72) v1-59) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [165] (call! a0-18) [a0: symbol t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [166] (set! v1-60 v0-10) [v0: object ] -> [v1: object ] -B37: -L94: - lwu v1, 140(s6) ;; [167] (set! v1-61 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lw v1, 36(v1) ;; [168] (set! v1-62 (l.w (+ v1-61 36))) [v1: fact-info-target ] -> [v1: pickup-type ] - daddiu v1, v1, -2 ;; [169] (set! v1-63 (+ v1-62 -2)) [v1: pickup-type ] -> [v1: ] - daddiu a0, s7, 8 ;; [170] (set! a0-19 (zero? v1-63)) [v1: ] -> [a0: symbol ] - movn a0, s7, v1 - beql s7, a0, L95 ;; [171] (bl! (not a0-19) L95 (no-delay!)) [a0: symbol ] -> [] -B38: - or v1, a0, r0 ;; [172] (set! v1-64 a0-19) [a0: symbol ] -> [v1: symbol ] - -B39: - lwu v1, 140(s6) ;; [173] (set! v1-65 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lwc1 f0, 40(v1) ;; [174] (set! f0-3 (l.f (+ v1-65 40))) [v1: fact-info-target ] -> [] - lui v1, L786 ;; [175] (set! v1-66 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [176] (set! f1-3 (l.f v1-66)) [v1: ] -> [] - c.lt.s f0, f1 ;; [177] (b! (>=.s f0-3 f1-3) L95 (set! v1-64 #t)) [] -> [v1: symbol ] - bc1f L95 - daddiu v1, s7, 8 - -B40: - or v1, s7, r0 ;; [178] (set! v1-64 #f) [] -> [v1: '#f ] -B41: -L95: - beq s7, v1, L98 ;; [179] (b! (not v1-64) L98 (set! v1-67 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B42: - lwu v1, 120(s6) ;; [180] (set! v1-68 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu gp, 36(v1) ;; [181] (set! gp-2 (l.wu (+ v1-68 36))) [v1: joint-control ] -> [gp: effect-control ] - lwu v1, -4(gp) ;; [182] (set! v1-69 (l.wu (+ gp-2 -4))) - ;; [gp: effect-control ] -> [v1: ] - lwu s5, 56(v1) ;; [183] (set! s5-2 (l.wu (+ v1-69 56))) - ;; [v1: ] -> [s5: ] - daddiu s4, s7, group-red-eco-spinkick;; [184] (set! s4-2 'group-red-eco-spinkick) [] -> [s4: symbol ] - lw t9, ja-frame-num(s7) ;; [185] (set! t9-11 ja-frame-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [186] (set! a0-20 0) [] -> [a0: ] - jalr ra, t9 ;; [187] (call! a0-20) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - or s3, v0, r0 ;; [188] (set! s3-1 v0-11) [v0: float ] -> [s3: float ] - lw t9, rand-vu-percent?(s7);; [189] (set! t9-12 rand-vu-percent?) [] -> [t9: (function float symbol) ] - lui v1, L752 ;; [190] (set! v1-70 L752) [] -> [v1: ] - ori v1, v1, L752 - addu v1, fp, v1 - lw a0, 0(v1) ;; [191] (set! a0-21 (l.w v1-70)) [v1: ] -> [a0: int ] - jalr ra, t9 ;; [192] (call! a0-21) [a0: int t9: (function float symbol) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L96 ;; [193] (b! (not v0-12) L96 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B43: - addiu a3, r0, 23 ;; [194] (set! a3-4 23) [] -> [a3: ] - beq r0, r0, L97 ;; [195] (b! #t L97 (nop!)) [] -> [] - sll r0, r0, 0 - -B44: -L96: - addiu a3, r0, 17 ;; [196] (set! a3-4 17) [] -> [a3: ] -B45: -L97: - or t9, s5, r0 ;; [197] (set! t9-13 s5-2) - ;; [s5: ] -> [t9: ] - or a0, gp, r0 ;; [198] (set! a0-22 gp-2) [gp: effect-control ] -> [a0: effect-control ] - or a1, s4, r0 ;; [199] (set! a1-8 s4-2) [s4: symbol ] -> [a1: symbol ] - or a2, s3, r0 ;; [200] (set! a2-5 s3-1) [s3: float ] -> [a2: float ] - jalr ra, t9 ;; [201] (call! a0-22 a1-8 a2-5 a3-4) - ;; [a0: effect-control a1: symbol a2: float a3: int t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [202] (set! v1-71 v0-13) [v0: object ] -> [v1: object ] - lw t9, cpad-set-buzz!(s7) ;; [203] (set! t9-14 cpad-set-buzz!) - ;; [] -> [t9: (function cpad-info int int time-frame none) ] - lw v1, *cpad-list*(s7) ;; [204] (set! v1-72 *cpad-list*) [] -> [v1: cpad-list ] - lwu a0, 4(v1) ;; [205] (set! a0-23 (l.wu (+ v1-72 4))) [v1: cpad-list ] -> [a0: cpad-info ] - addiu a1, r0, 1 ;; [206] (set! a1-9 1) [] -> [a1: ] - addiu a2, r0, 153 ;; [207] (set! a2-6 153) [] -> [a2: ] - addiu a3, r0, 30 ;; [208] (set! a3-5 30) [] -> [a3: ] - jalr ra, t9 ;; [209] (call! a0-23 a1-9 a2-6 a3-5) - ;; [a0: cpad-info a1: a2: a3: t9: (function cpad-info int int time-frame none) ] -> [v0: none ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [210] (set! v1-73 v0-14) [v0: none ] -> [v1: none ] -B46: -L98: - lwu v1, 108(s6) ;; [211] (set! v1-74 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 2380(v1) ;; [212] (set! v1-75 (l.wu (+ v1-74 2380))) [v1: control-info ] -> [v1: symbol ] - bnel s7, v1, L100 ;; [213] (bl! (truthy v1-75) L100 (no-delay!)) [v1: symbol ] -> [] -B47: - or v1, s7, r0 ;; [214] (set! v1-76 #f) [] -> [v1: '#f ] - -B48: - lwu v1, 120(s6) ;; [215] (set! v1-77 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [216] (set! v1-78 (l.w (+ v1-77 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [217] (b! (<=0.si v1-78) L99 (set! v1-79 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L99 - or v1, s7, r0 - -B49: - lwu v1, 120(s6) ;; [218] (set! v1-80 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [219] (set! v1-81 (l.wu (+ v1-80 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [220] (set! v1-79 (l.wu (+ v1-81 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B50: -L99: - lwu a0, 116(s6) ;; [221] (set! a0-24 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [222] (set! a0-25 (l.wu (+ a0-24 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 280(a0) ;; [223] (set! a0-26 (l.wu (+ a0-25 280))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [224] (set! a0-27 (= v1-79 a0-26)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L100 ;; [225] (bl! (not a0-27) L100 (no-delay!)) [a0: symbol ] -> [] -B51: - or v1, a0, r0 ;; [226] (set! v1-76 a0-27) [a0: symbol ] -> [v1: symbol ] - -B52: - lw t9, ja-aframe-num(s7) ;; [227] (set! t9-15 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [228] (set! a0-28 0) [] -> [a0: ] - jalr ra, t9 ;; [229] (call! a0-28) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [230] (set! f0-4 (gpr->fpr v0-15)) [v0: float ] -> [] - lui v1, L809 ;; [231] (set! v1-82 L809) [] -> [v1: ] - ori v1, v1, L809 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [232] (set! f1-4 (l.f v1-82)) [v1: ] -> [] - c.lt.s f0, f1 ;; [233] (b! (>=.s f0-4 f1-4) L100 (set! v1-76 #t)) [] -> [v1: symbol ] - bc1f L100 - daddiu v1, s7, 8 - -B53: - or v1, s7, r0 ;; [234] (set! v1-76 #f) [] -> [v1: '#f ] -B54: -L100: - beq s7, v1, L101 ;; [235] (b! (not v1-76) L101 (set! v0-16 #f)) [v1: symbol ] -> [v0: '#f ] - or v0, s7, r0 - -B55: - lw t9, target-start-attack(s7);; [236] (set! t9-16 target-start-attack) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [237] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, target-danger-set!(s7);; [238] (set! t9-17 target-danger-set!) - ;; [] -> [t9: (function symbol symbol float :behavior target) ] - daddiu a0, s7, flop ;; [239] (set! a0-29 'flop) [] -> [a0: symbol ] - or a1, s7, r0 ;; [240] (set! a1-10 #f) [] -> [a1: '#f ] - jalr ra, t9 ;; [241] (call! a0-29 a1-10) - ;; [a0: symbol a1: '#f t9: (function symbol symbol float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - -B56: -L101: - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 144(sp) - lq s5, 128(sp) - lq s4, 112(sp) - lq s3, 96(sp) - jr ra - daddiu sp, sp, 160 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-flop) - () - (delete-back-vel) - (let ((gp-1 (logtest? (-> self control status) (cshape-moving-flags onsurf)))) - (when (and (not gp-1) (let ((v1-6 (ja-group))) - (or (= v1-6 (-> self draw art-group data 64)) (= v1-6 (-> self draw art-group data 66))) - ) - ) - (when (and (or (< (target-move-dist (seconds 0.1)) 1638.4) - (and (logtest? (-> self control status) (cshape-moving-flags twall)) (< 0.7 (-> self control poly-angle))) - ) - (zero? (logand (-> self control status) (cshape-moving-flags t-act))) - (>= (-> self control unknown-uint20) (the-as uint 2)) - ) - (set! (-> self control unknown-dword36) (-> *display* base-frame-counter)) - (set! gp-1 'stuck) - ) - ) - (when gp-1 - (logior! (-> self control status) (cshape-moving-flags onsurf)) - (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.5)) - (dummy-10 (-> self skel effect) 'group-red-eco-strike-ground (ja-frame-num 0) 0) - (let ((s5-1 (process-spawn touch-tracker :init touch-tracker-init (-> self control trans) 4096.0 30 :to self))) - (send-event (ppointer->process s5-1) 'event 'attack 'flop) - (send-event - (ppointer->process s5-1) - 'function - (lambda ((arg0 target)) (let ((f0-3 (seek - (-> arg0 control root-prim local-sphere w) - (the-as float 28672.0) - (* 286720.0 (-> *display* seconds-per-frame)) - ) - ) - ) - (set! (-> arg0 control root-prim local-sphere w) f0-3) - f0-3 - ) - ) - ) - ) - ) - (go target-flop-hit-ground gp-1) - ) - ) - (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (dummy-10 - (-> self skel effect) - 'group-red-eco-spinkick - (ja-frame-num 0) - (if (rand-vu-percent? (the-as float 0.5)) - 23 - 17 - ) - ) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) - ) - (when (and (not (-> self control unknown-symbol30)) - (ja-group? (-> self draw art-group data 63)) - (>= (ja-aframe-num 0) 8.0) - ) - (target-start-attack) - (target-danger-set! 'flop #f) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (anon-function 16 target) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x20, fp? 1 ra? 1 ep? 1 - ;gprs: gp -;; a0-0: target f0-3: float -L102: - daddiu sp, sp, -32 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq gp, 16(sp) -B0: - or gp, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: target ] -> [gp: target ] - lw t9, seek(s7) ;; [ 1] (set! t9-0 seek) [] -> [t9: (function float float float float) ] - lwu v1, 108(gp) ;; [ 2] (set! v1-0 (l.wu (+ arg0 108))) [gp: target ] -> [v1: control-info ] - lwu v1, 156(v1) ;; [ 3] (set! v1-1 (l.wu (+ v1-0 156))) [v1: control-info ] -> [v1: collide-shape-prim ] - lwc1 f0, 56(v1) ;; [ 4] (set! f0-0 (l.f (+ v1-1 56))) [v1: collide-shape-prim ] -> [] - mfc1 a0, f0 ;; [ 5] (set! a0-1 (fpr->gpr f0-0)) [] -> [a0: float ] - lui v1, L813 ;; [ 6] (set! v1-2 L813) [] -> [v1: ] - ori v1, v1, L813 - addu v1, fp, v1 - lw a1, 0(v1) ;; [ 7] (set! a1-0 (l.w v1-2)) [v1: ] -> [a1: int ] - lui v1, L808 ;; [ 8] (set! v1-3 L808) [] -> [v1: ] - ori v1, v1, L808 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 9] (set! f0-1 (l.f v1-3)) [v1: ] -> [] - lw v1, *display*(s7) ;; [ 10] (set! v1-4 *display*) [] -> [v1: display ] - lwc1 f1, 904(v1) ;; [ 11] (set! f1-0 (l.f (+ v1-4 904))) [v1: display ] -> [] - mul.s f0, f0, f1 ;; [ 12] (set! f0-2 (*.s f0-1 f1-0)) [] -> [] - mfc1 a2, f0 ;; [ 13] (set! a2-0 (fpr->gpr f0-2)) [] -> [a2: float ] - jalr ra, t9 ;; [ 14] (call! a0-1 a1-0 a2-0) - ;; [a0: float a1: int a2: float t9: (function float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 15] (set! f0-3 (gpr->fpr v0-0)) [v0: float ] -> [] - lwu v1, 108(gp) ;; [ 16] (set! v1-5 (l.wu (+ arg0 108))) [gp: target ] -> [v1: control-info ] - lwu v1, 156(v1) ;; [ 17] (set! v1-6 (l.wu (+ v1-5 156))) [v1: control-info ] -> [v1: collide-shape-prim ] - swc1 f0, 56(v1) ;; [ 18] (s.f! (+ v1-6 56) f0-3) [v1: collide-shape-prim ] -> [] - mfc1 v0, f0 ;; [ 19] (set! v0-1 (fpr->gpr f0-3)) [] -> [v0: float ] - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 16(sp) - jr ra - daddiu sp, sp, 32 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(defun-anon - (anon-function 16 target) - ((arg0 target)) - (let ((f0-3 (seek - (-> arg0 control root-prim local-sphere w) - (the-as float 28672.0) - (* 286720.0 (-> *display* seconds-per-frame)) - ) - ) - ) - (set! (-> arg0 control root-prim local-sphere w) f0-3) - f0-3 - ) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-flop) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x30, fp? 1 ra? 1 ep? 1 - ;stack_vars: 16 bytes at 16 - ;gprs: gp -;; Warnings: -;; INFO: Return type mismatch vector vs none. -;; Used lq/sq - -;; a2-0: float s6-0: target gp-1: vector f0-6: float f0-7: float f1-3: float f2-0: float -L103: - daddiu sp, sp, -48 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq gp, 32(sp) -B0: - or gp, a2, r0 ;; [ 0] (set! arg2 arg2) [a2: float ] -> [gp: float ] - lwu v1, 140(s6) ;; [ 1] (set! v1-0 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lw v1, 36(v1) ;; [ 2] (set! v1-1 (l.w (+ v1-0 36))) [v1: fact-info-target ] -> [v1: pickup-type ] - daddiu v1, v1, -1 ;; [ 3] (set! v1-2 (+ v1-1 -1)) [v1: pickup-type ] -> [v1: ] - daddiu a0, s7, 8 ;; [ 4] (set! a0-1 (zero? v1-2)) [v1: ] -> [a0: symbol ] - movn a0, s7, v1 - beql s7, a0, L104 ;; [ 5] (bl! (not a0-1) L104 (no-delay!)) [a0: symbol ] -> [] -B1: - or v1, a0, r0 ;; [ 6] (set! v1-3 a0-1) [a0: symbol ] -> [v1: symbol ] - -B2: - lwu v1, 140(s6) ;; [ 7] (set! v1-4 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lwc1 f0, 40(v1) ;; [ 8] (set! f0-0 (l.f (+ v1-4 40))) [v1: fact-info-target ] -> [] - lui v1, L786 ;; [ 9] (set! v1-5 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 10] (set! f1-0 (l.f v1-5)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 11] (b! (>=.s f0-0 f1-0) L104 (set! v1-3 #t)) [] -> [v1: symbol ] - bc1f L104 - daddiu v1, s7, 8 - -B3: - or v1, s7, r0 ;; [ 12] (set! v1-3 #f) [] -> [v1: '#f ] -B4: -L104: - beq s7, v1, L105 ;; [ 13] (b! (not v1-3) L105 (set! v1-6 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B5: - lw t9, enter-state(s7) ;; [ 14] (set! t9-0 enter-state) [] -> [t9: ] - lw v1, target-yellow-jump-blast(s7);; [ 15] (set! v1-7 target-yellow-jump-blast) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 16] (s.w! (+ self 72) v1-7) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 17] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 18] (set! v1-8 v0-0) [v0: object ] -> [v1: object ] -B6: -L105: - mtc1 f0, gp ;; [ 19] (set! f0-1 (gpr->fpr arg2)) [gp: float ] -> [] - mtc1 f1, r0 ;; [ 20] (set! f1-1 0) [] -> [] - c.eq.s f0, f1 ;; [ 21] (b! (!=.s f0-1 f1-1) L106 (nop!)) [] -> [] - bc1f L106 - sll r0, r0, 0 - -B7: - lw t9, set-forward-vel(s7);; [ 22] (set! t9-1 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - or a0, gp, r0 ;; [ 23] (set! a0-2 arg2) [gp: float ] -> [a0: float ] - jalr ra, t9 ;; [ 24] (call! a0-2) - ;; [a0: float t9: (function float vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 25] (set! v1-9 v0-1) [v0: vector ] -> [v1: vector ] - beq r0, r0, L107 ;; [ 26] (b! #t L107 (nop!)) [] -> [] - sll r0, r0, 0 - -B8: -L106: - lw t9, set-forward-vel(s7);; [ 27] (set! t9-2 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - lwu v1, 108(s6) ;; [ 28] (set! v1-10 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 528(v1) ;; [ 29] (set! f0-2 (l.f (+ v1-10 528))) [v1: control-info ] -> [] - mfc1 a0, f0 ;; [ 30] (set! a0-3 (fpr->gpr f0-2)) [] -> [a0: float ] - jalr ra, t9 ;; [ 31] (call! a0-3) - ;; [a0: float t9: (function float vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 32] (set! v1-11 v0-2) [v0: vector ] -> [v1: vector ] -B9: -L107: - lw v1, *display*(s7) ;; [ 33] (set! v1-12 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 34] (set! v1-13 (l.d (+ v1-12 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 35] (s.d! (+ self 164) v1-13) [v1: time-frame s6: target ] -> [] - addiu v1, r0, -8 ;; [ 36] (set! v1-14 -8) [] -> [v1: ] - lwu a0, 108(s6) ;; [ 37] (set! a0-4 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 268(a0) ;; [ 38] (set! a0-5 (l.d (+ a0-4 268))) [a0: control-info ] -> [a0: cshape-moving-flags ] - and v1, v1, a0 ;; [ 39] (set! v1-15 (logand v1-14 a0-5)) - ;; [v1: a0: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - lwu a0, 108(s6) ;; [ 40] (set! a0-6 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 268(a0) ;; [ 41] (s.d! (+ a0-6 268) v1-15) [v1: cshape-moving-flags a0: control-info ] -> [] - lw v1, *flop-mods*(s7) ;; [ 42] (set! v1-16 *flop-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [ 43] (set! a0-7 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [ 44] (s.w! (+ a0-7 656) v1-16) [v1: surface a0: control-info ] -> [] - lwu v1, 108(s6) ;; [ 45] (set! v1-17 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw r0, 2180(v1) ;; [ 46] (s.w! (+ v1-17 2180) 0) [v1: control-info ] -> [] - lui v1, L720 ;; [ 47] (set! v1-18 L720) [] -> [v1: ] - ori v1, v1, L720 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 48] (set! f0-3 (l.f v1-18)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 49] (set! v1-19 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 50] (set! v1-20 (l.wu (+ v1-19 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 4(v1) ;; [ 51] (s.f! (+ v1-20 4) f0-3) [v1: dynamics ] -> [] - lui v1, L720 ;; [ 52] (set! v1-21 L720) [] -> [v1: ] - ori v1, v1, L720 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 53] (set! f0-4 (l.f v1-21)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 54] (set! v1-22 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 55] (set! v1-23 (l.wu (+ v1-22 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 8(v1) ;; [ 56] (s.f! (+ v1-23 8) f0-4) [v1: dynamics ] -> [] - daddiu gp, sp, 16 ;; [ 57] (set! gp-1 (+ sp-0 16)) [sp: ] -> [gp: vector ] - sq r0, 0(gp) ;; [ 58] (s.q! gp-1 0) [gp: vector ] -> [] - lwu v1, 108(s6) ;; [ 59] (set! v1-24 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 60] (set! v1-25 (l.wu (+ v1-24 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 61] (set! a0-8 (+ v1-25 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 62] (set! v1-26 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 63] (set! v1-27 (+ v1-26 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [ 64] (set! f0-5 (vec3dot a0-8 v1-27)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 65] (set! v1-28 (fpr->gpr f0-5)) [] -> [v1: float ] - mtc1 f0, v1 ;; [ 66] (set! f0-6 (gpr->fpr v1-28)) [v1: float ] -> [] - mtc1 f1, r0 ;; [ 67] (set! f1-2 0) [] -> [] - or v1, gp, r0 ;; [ 68] (set! v1-29 gp-1) [gp: vector ] -> [v1: vector ] - lwu a0, 108(s6) ;; [ 69] (set! a0-9 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 60 ;; [ 70] (set! a0-10 (+ a0-9 60)) [a0: control-info ] -> [a0: vector ] - or a1, gp, r0 ;; [ 71] (set! a1-1 gp-1) [gp: vector ] -> [a1: vector ] - lwu a2, 108(s6) ;; [ 72] (set! a2-1 (l.wu (+ self 108))) [s6: target ] -> [a2: control-info ] - lwu a2, 432(a2) ;; [ 73] (set! a2-2 (l.wu (+ a2-1 432))) [a2: control-info ] -> [a2: dynamics ] - daddiu a2, a2, 28 ;; [ 74] (set! a2-3 (+ a2-2 28)) [a2: dynamics ] -> [a2: vector ] - lqc2 vf1, 0(a2) ;; [ 75] (set! a1-2 (vector-float*!2 a1-1 a2-3 f0-6)) - ;; [a1: vector a2: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - lqc2 vf4, 0(a0) ;; [ 76] (set! v1-30 (vector-!2 v1-29 a0-10 a1-2)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf5, 0(a1) - vmove.w vf6, vf0 - vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lw t9, vector-length(s7) ;; [ 77] (set! t9-3 vector-length) [] -> [t9: (function vector float) ] - or a0, gp, r0 ;; [ 78] (set! a0-11 gp-1) [gp: vector ] -> [a0: vector ] - jalr ra, t9 ;; [ 79] (call! a0-11) [a0: vector t9: (function vector float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 80] (set! f0-7 (gpr->fpr v0-3)) [v0: float ] -> [] - mov.s f1, f0 ;; [ 81] (set! f1-3 f0-7) [] -> [] - lui v1, L757 ;; [ 82] (set! v1-31 L757) [] -> [v1: ] - ori v1, v1, L757 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [ 83] (set! f2-0 (l.f v1-31)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 84] (set! v1-32 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v0, v1, 60 ;; [ 85] (set! v0-4 (+ v1-32 60)) [v1: control-info ] -> [v0: vector ] - lwu v1, 108(s6) ;; [ 86] (set! v1-33 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 87] (set! v1-34 (+ v1-33 60)) [v1: control-info ] -> [v1: vector ] - lwu a0, 108(s6) ;; [ 88] (set! a0-12 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 432(a0) ;; [ 89] (set! a0-13 (l.wu (+ a0-12 432))) [a0: control-info ] -> [a0: dynamics ] - daddiu a0, a0, 28 ;; [ 90] (set! a0-14 (+ a0-13 28)) [a0: dynamics ] -> [a0: vector ] - lqc2 vf1, 0(a0) ;; [ 91] (set! v1-35 (vector-float*!2 v1-34 a0-14 f2-0)) - ;; [v1: vector a0: vector ] -> [v1: vector ] - mfc1 a0, f2 - qmtc2.i vf2, a0 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(v1) - or a0, gp, r0 ;; [ 92] (set! a0-15 gp-1) [gp: vector ] -> [a0: vector ] - div.s f0, f0, f1 ;; [ 93] (set! f0-8 (/.s f0-7 f1-3)) [] -> [] - lqc2 vf1, 0(gp) ;; [ 94] (set! a0-16 (vector-float*!2 a0-15 gp-1 f0-8)) - ;; [a0: vector gp: vector ] -> [a0: vector ] - mfc1 a1, f0 - qmtc2.i vf2, a1 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a0) - vmove.w vf6, vf0 ;; [ 95] (set! v0-5 (vector+!2 v0-4 v1-35 a0-16)) - ;; [v0: vector v1: vector a0: vector ] -> [v0: vector ] - lqc2 vf4, 0(v1) - lqc2 vf5, 0(a0) - vadd.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v0) - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 32(sp) - jr ra - daddiu sp, sp, 48 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-flop) - ((arg0 float) (arg1 float) (arg2 float)) - (if (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (go target-yellow-jump-blast) - ) - (if (= arg2 0.0) - (set-forward-vel arg2) - (set-forward-vel (-> self control unknown-float01)) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (set! (-> self control unknown-surface00) *flop-mods*) - (set! (-> self control unknown-uint20) (the-as uint 0)) - (set! (-> self control dynam gravity-max) 245760.0) - (set! (-> self control dynam gravity-length) 245760.0) - (let ((gp-1 (new-stack-vector0))) - (let ((f0-6 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) - 0.0 - (vector-! gp-1 (-> self control transv) (vector-float*! gp-1 (-> self control dynam gravity-normal) f0-6)) - ) - (let* ((f0-7 (vector-length gp-1)) - (f1-3 f0-7) - (f2-0 29491.2) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-0) - (vector-float*! gp-1 gp-1 (/ f0-7 f1-3)) - ) - ) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (event target-flop) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x60, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 s4 s3 - ;fprs: f30 -;; v0-0: object v1-0: symbol a0-0: process a0-4: symbol -;; a1-0: int a2-0: symbol a3-0: event-message-block s6-0: target -;; t9-3: function t9-4: function -L108: - daddiu sp, sp, -96 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s3, 16(sp) - sq s4, 32(sp) - sq s5, 48(sp) - sq gp, 64(sp) - swc1 f30, 80(sp) -B0: - or gp, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: process ] -> [gp: process ] - or s5, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: int ] -> [s5: int ] - or s4, a2, r0 ;; [ 2] (set! arg2 arg2) [a2: symbol ] -> [s4: symbol ] - or s3, a3, r0 ;; [ 3] (set! arg3 arg3) [a3: event-message-block ] -> [s3: event-message-block ] - lw t9, target-bonk-event-handler(s7);; [ 4] (set! t9-0 target-bonk-event-handler) - ;; [] -> [t9: (function process int symbol event-message-block object :behavior target) ] - or a0, gp, r0 ;; [ 5] (set! a0-1 arg0) [gp: process ] -> [a0: process ] - or a1, s5, r0 ;; [ 6] (set! a1-1 arg1) [s5: int ] -> [a1: int ] - or a2, s4, r0 ;; [ 7] (set! a2-1 arg2) [s4: symbol ] -> [a2: symbol ] - or a3, s3, r0 ;; [ 8] (set! a3-1 arg3) [s3: event-message-block ] -> [a3: event-message-block ] - jalr ra, t9 ;; [ 9] (call! a0-1 a1-1 a2-1 a3-1) - ;; [a0: process a1: int a2: symbol a3: event-message-block t9: (function process int symbol event-message-block object :behavior target) ] -> [v0: object ] - sll v0, ra, 0 - - beq s7, v0, L109 ;; [ 10] (b! (not v0-0) L109 (nop!)) [v0: object ] -> [] - sll r0, r0, 0 - -B1: - beq r0, r0, L113 ;; [ 11] (b! #t L113 (nop!)) [] -> [] - sll r0, r0, 0 - -B2: -L109: - or v1, s4, r0 ;; [ 12] (set! v1-0 arg2) [s4: symbol ] -> [v1: symbol ] - daddiu a0, s7, swim ;; [ 13] (set! a0-2 'swim) [] -> [a0: symbol ] - bne v1, a0, L112 ;; [ 14] (b! (!= v1-0 a0-2) L112 (nop!)) [v1: symbol a0: symbol ] -> [] - sll r0, r0, 0 - -B3: - lui v1, L807 ;; [ 15] (set! v1-1 L807) [] -> [v1: ] - ori v1, v1, L807 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [ 16] (set! f30-0 (l.f v1-1)) [v1: ] -> [] - lw t9, target-height-above-ground(s7);; [ 17] (set! t9-1 target-height-above-ground) - ;; [] -> [t9: (function float :behavior target) ] - jalr ra, t9 ;; [ 18] (call!) [t9: (function float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 19] (set! f0-0 (gpr->fpr v0-1)) [v0: float ] -> [] - c.lt.s f30, f0 ;; [ 20] (b! (>=.s f30-0 f0-0) L110 (nop!)) [] -> [] - bc1f L110 - sll r0, r0, 0 - -B4: - lwu v1, 120(s6) ;; [ 21] (set! v1-2 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu a0, 36(v1) ;; [ 22] (set! a0-3 (l.wu (+ v1-2 36))) [v1: joint-control ] -> [a0: effect-control ] - lwu v1, -4(a0) ;; [ 23] (set! v1-3 (l.wu (+ a0-3 -4))) - ;; [a0: effect-control ] -> [v1: ] - lwu t9, 56(v1) ;; [ 24] (set! t9-2 (l.wu (+ v1-3 56))) - ;; [v1: ] -> [t9: ] - daddiu a1, s7, swim-flop ;; [ 25] (set! a1-2 'swim-flop) [] -> [a1: symbol ] - lui v1, L787 ;; [ 26] (set! v1-4 L787) [] -> [v1: ] - ori v1, v1, L787 - addu v1, fp, v1 - lw a2, 0(v1) ;; [ 27] (set! a2-2 (l.w v1-4)) [v1: ] -> [a2: int ] - addiu a3, r0, -1 ;; [ 28] (set! a3-2 -1) [] -> [a3: ] - jalr ra, t9 ;; [ 29] (call! a0-3 a1-2 a2-2 a3-2) - ;; [a0: effect-control a1: symbol a2: int a3: t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 30] (set! v1-5 v0-2) [v0: object ] -> [v1: object ] - lw t9, enter-state(s7) ;; [ 31] (set! t9-3 enter-state) [] -> [t9: ] - lw v1, target-swim-down(s7);; [ 32] (set! v1-6 target-swim-down) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 33] (s.w! (+ self 72) v1-6) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 34] (call!) [t9: (function object :behavior target) ] -> [v0: object ] - sll v0, ra, 0 - - beq r0, r0, L111 ;; [ 35] (b! #t L111 (nop!)) [] -> [] - sll r0, r0, 0 - -B5: -L110: - lw t9, enter-state(s7) ;; [ 36] (set! t9-4 enter-state) [] -> [t9: ] - daddiu a0, s7, swim ;; [ 37] (set! a0-4 'swim) [] -> [a0: symbol ] - lw v1, target-flop-hit-ground(s7);; [ 38] (set! v1-7 target-flop-hit-ground) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [ 39] (s.w! (+ self 72) v1-7) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [ 40] (call! a0-4) - ;; [a0: symbol t9: (function symbol object :behavior target) ] -> [v0: object ] - sll v0, ra, 0 - -B6: -L111: - beq r0, r0, L113 ;; [ 41] (b! #t L113 (nop!)) [] -> [] - sll r0, r0, 0 - -B7: -L112: - lw t9, target-dangerous-event-handler(s7);; [ 42] (set! t9-5 target-dangerous-event-handler) - ;; [] -> [t9: (function process int symbol event-message-block object :behavior target) ] - or a0, gp, r0 ;; [ 43] (set! a0-5 arg0) [gp: process ] -> [a0: process ] - or a1, s5, r0 ;; [ 44] (set! a1-3 arg1) [s5: int ] -> [a1: int ] - or a2, s4, r0 ;; [ 45] (set! a2-3 arg2) [s4: symbol ] -> [a2: symbol ] - or a3, s3, r0 ;; [ 46] (set! a3-3 arg3) [s3: event-message-block ] -> [a3: event-message-block ] - jalr ra, t9 ;; [ 47] (call! a0-5 a1-3 a2-3 a3-3) - ;; [a0: process a1: int a2: symbol a3: event-message-block t9: (function process int symbol event-message-block object :behavior target) ] -> [v0: object ] - sll v0, ra, 0 - -B8: -L113: - ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 80(sp) - lq gp, 64(sp) - lq s5, 48(sp) - lq s4, 32(sp) - lq s3, 16(sp) - jr ra - daddiu sp, sp, 96 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (event target-flop) - ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v0-0 (target-bonk-event-handler arg0 arg1 arg2 arg3))) - (cond - (v0-0 - (empty) - v0-0 - ) - ((let ((v1-0 arg2)) - (= v1-0 'swim) - ) - (cond - ((< 6144.0 (target-height-above-ground)) - (dummy-10 (-> self skel effect) 'swim-flop (the-as float -1.0) -1) - (let ((t9-3 enter-state)) - (set! (-> self next-state) target-swim-down) - ((the-as (function object :behavior target) t9-3)) - ) - ) - (else - (let ((t9-4 enter-state) - (a0-4 'swim) - ) - (set! (-> self next-state) target-flop-hit-ground) - ((the-as (function symbol object :behavior target) t9-4) a0-4) - ) - ) - ) - ) - (else - (target-dangerous-event-handler arg0 arg1 arg2 arg3) - ) - ) - ) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-attack-uppercut-jump) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x40, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 - ;fprs: f30 -;; Warnings: -;; INFO: Return type mismatch object vs none. - -;; a1-2: int -;; s5-0: (function align-control align-opts float float float trsqv) -;; s6-0: target -;; gp-0: align-control -L114: - daddiu sp, sp, -64 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s5, 16(sp) - sq gp, 32(sp) - swc1 f30, 48(sp) -B0: - lwu a0, 128(s6) ;; [ 0] (set! a0-1 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [ 1] (set! v1-0 (l.wu (+ a0-1 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 52(v1) ;; [ 2] (set! t9-0 (l.wu (+ v1-0 52))) - ;; [v1: ] -> [t9: ] - jalr ra, t9 ;; [ 3] (call! a0-1) - ;; [a0: align-control t9: ] -> [v0: transformq ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 4] (set! v1-1 v0-0) [v0: transformq ] -> [v1: transformq ] -B1: -L115: - lwu s6, 44(s6) ;; [ 5] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 6] (set! v1-2 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 7] (set! v1-3 (l.wu (+ v1-2 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 8] (set! a0-2 (+ v1-3 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [ 9] (set! v1-4 (l.wu (+ a0-2 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 10] (set! v1-5 (l.wu (+ v1-4 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 11] (set! v1-6 (l.h (+ v1-5 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 12] (set! v1-7 (+ v1-6 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 13] (set! f0-0 (gpr->fpr v1-7)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 14] (set! f0-1 (i2f f0-0)) [] -> [] - swc1 f0, 24(a0) ;; [ 15] (s.f! (+ a0-2 24) f0-1) [a0: joint-control-channel ] -> [] - lui v1, L772 ;; [ 16] (set! v1-8 L772) [] -> [v1: ] - ori v1, v1, L772 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 17] (set! f0-2 (l.f v1-8)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 18] (s.f! (+ a0-2 28) f0-2) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 19] (set! t9-1 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 20] (set! a1-1 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 21] (set! a2-0 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 22] (call! a0-2 a1-1 a2-0) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 23] (set! v1-9 v0-1) [v0: int ] -> [v1: int ] - lwu a0, 128(s6) ;; [ 24] (set! a0-3 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [ 25] (set! v1-10 (l.wu (+ a0-3 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 52(v1) ;; [ 26] (set! t9-2 (l.wu (+ v1-10 52))) - ;; [v1: ] -> [t9: ] - jalr ra, t9 ;; [ 27] (call! a0-3) - ;; [a0: align-control t9: ] -> [v0: transformq ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 28] (set! v1-11 v0-2) [v0: transformq ] -> [v1: transformq ] - lwu gp, 128(s6) ;; [ 29] (set! gp-0 (l.wu (+ self 128))) [s6: target ] -> [gp: align-control ] - lwu v1, -4(gp) ;; [ 30] (set! v1-12 (l.wu (+ gp-0 -4))) - ;; [gp: align-control ] -> [v1: ] - lwu s5, 56(v1) ;; [ 31] (set! s5-0 (l.wu (+ v1-12 56))) - ;; [v1: ] -> [s5: ] - lui v1, L742 ;; [ 32] (set! v1-13 L742) [] -> [v1: ] - ori v1, v1, L742 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [ 33] (set! f30-0 (l.f v1-13)) [v1: ] -> [] - lw t9, ja-aframe-num(s7) ;; [ 34] (set! t9-3 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 35] (set! a0-4 0) [] -> [a0: ] - jalr ra, t9 ;; [ 36] (call! a0-4) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 37] (set! f0-3 (gpr->fpr v0-3)) [v0: float ] -> [] - c.lt.s f30, f0 ;; [ 38] (b! (<.s f30-0 f0-3) L116 (nop!)) [] -> [] - bc1t L116 - sll r0, r0, 0 - -B2: - addiu a1, r0, 18 ;; [ 39] (set! a1-2 18) [] -> [a1: ] - beq r0, r0, L118 ;; [ 40] (b! #t L118 (nop!)) [] -> [] - sll r0, r0, 0 - -B3: -L116: - lui v1, L806 ;; [ 41] (set! v1-14 L806) [] -> [v1: ] - ori v1, v1, L806 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [ 42] (set! f30-1 (l.f v1-14)) [v1: ] -> [] - lw t9, ja-aframe-num(s7) ;; [ 43] (set! t9-4 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 44] (set! a0-5 0) [] -> [a0: ] - jalr ra, t9 ;; [ 45] (call! a0-5) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 46] (set! f0-4 (gpr->fpr v0-4)) [v0: float ] -> [] - c.lt.s f30, f0 ;; [ 47] (b! (<.s f30-1 f0-4) L117 (nop!)) [] -> [] - bc1t L117 - sll r0, r0, 0 - -B4: - lw v1, *double-jump-mods*(s7);; [ 48] (set! v1-15 *double-jump-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [ 49] (set! a0-6 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [ 50] (s.w! (+ a0-6 656) v1-15) [v1: surface a0: control-info ] -> [] - addiu a1, r0, 2 ;; [ 51] (set! a1-2 2) [] -> [a1: ] - beq r0, r0, L118 ;; [ 52] (b! #t L118 (nop!)) [] -> [] - sll r0, r0, 0 - -B5: -L117: - addiu a1, r0, 0 ;; [ 53] (set! a1-2 0) [] -> [a1: ] -B6: -L118: - lui v1, L786 ;; [ 54] (set! v1-16 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a2, 0(v1) ;; [ 55] (set! a2-1 (l.w v1-16)) [v1: ] -> [a2: int ] - lui v1, L763 ;; [ 56] (set! v1-17 L763) [] -> [v1: ] - ori v1, v1, L763 - addu v1, fp, v1 - lw a3, 0(v1) ;; [ 57] (set! a3-0 (l.w v1-17)) [v1: ] -> [a3: int ] - lui v1, L786 ;; [ 58] (set! v1-18 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw t0, 0(v1) ;; [ 59] (set! t0-0 (l.w v1-18)) [v1: ] -> [t0: int ] - or t9, s5, r0 ;; [ 60] (set! t9-5 s5-0) - ;; [s5: ] -> [t9: ] - or a0, gp, r0 ;; [ 61] (set! a0-7 gp-0) [gp: align-control ] -> [a0: align-control ] - jalr ra, t9 ;; [ 62] (call! a0-7 a1-2 a2-1 a3-0 t0-0) - ;; [a0: align-control a1: int a2: int a3: int t0: int t9: ] -> [v0: trsqv ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 63] (set! v1-19 v0-5) [v0: trsqv ] -> [v1: trsqv ] - lw t9, ja-done?(s7) ;; [ 64] (set! t9-6 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 65] (set! a0-8 0) [] -> [a0: ] - jalr ra, t9 ;; [ 66] (call! a0-8) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L115 ;; [ 67] (b! (not v0-6) L115 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B7: - or v1, s7, r0 ;; [ 68] (set! v1-20 #f) [] -> [v1: '#f ] - lw t9, enter-state(s7) ;; [ 69] (set! t9-7 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [ 70] (set! a0-9 #f) [] -> [a0: '#f ] - lw v1, target-falling(s7) ;; [ 71] (set! v1-21 target-falling) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [ 72] (s.w! (+ self 72) v1-21) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [ 73] (call! a0-9) [a0: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 48(sp) - lq gp, 32(sp) - lq s5, 16(sp) - jr ra - daddiu sp, sp, 64 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-attack-uppercut-jump) - ((arg0 float) (arg1 float)) - (compute-alignment! (-> self align)) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! max 0.9)) - (compute-alignment! (-> self align)) - (let* ((gp-0 (-> self align)) - (s5-0 (method-of-object gp-0 align!)) - (a1-2 (cond - ((>= 30.0 (ja-aframe-num 0)) - 18 - ) - ((>= 43.0 (ja-aframe-num 0)) - (set! (-> self control unknown-surface00) *double-jump-mods*) - 2 - ) - (else - 0 - ) - ) - ) - ) - (s5-0 gp-0 (the-as align-opts a1-2) (the-as float 1.0) (the-as float 0.95) (the-as float 1.0)) - ) - ) - (go target-falling #f) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-attack-uppercut-jump) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x40, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 s4 -;; s6-0: target -L119: - daddiu sp, sp, -64 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s4, 16(sp) - sq s5, 32(sp) - sq gp, 48(sp) -B0: - lwu v1, 108(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [ 1] (set! v1-1 (l.d (+ v1-0 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - andi v1, v1, 1 ;; [ 2] (set! v1-2 (logand v1-1 1)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - beq v1, r0, L120 ;; [ 3] (b! (zero? v1-2) L120 (set! v1-3 #f)) [v1: cshape-moving-flags ] -> [v1: '#f ] - or v1, s7, r0 - -B1: - lw t9, enter-state(s7) ;; [ 4] (set! t9-0 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [ 5] (set! a0-0 #f) [] -> [a0: '#f ] - lw v1, target-hit-ground(s7);; [ 6] (set! v1-4 target-hit-ground) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [ 7] (s.w! (+ self 72) v1-4) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [ 8] (call! a0-0) [a0: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 9] (set! v1-5 v0-0) [v0: object ] -> [v1: object ] -B2: -L120: - lwu v1, 108(s6) ;; [ 10] (set! v1-6 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 11] (set! v1-7 (l.wu (+ v1-6 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 12] (set! v1-8 (l.w (+ v1-7 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 13] (set! v1-9 (sll v1-8 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 14] (set! a0-1 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 15] (set! v1-10 (+ v1-9 a0-1)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 16] (set! v1-11 (l.wu (+ v1-10 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 17] (set! v1-12 (l.wu (+ v1-11 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 32768 ;; [ 18] (set! v1-13 (logand v1-12 #x8000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L123 ;; [ 19] (bl! (zero? v1-13) L123 (no-delay!)) [v1: pad-buttons ] -> [] -B3: - or v1, s7, r0 ;; [ 20] (set! v1-14 #f) [] -> [v1: '#f ] - -B4: - lwu v1, 108(s6) ;; [ 21] (set! v1-15 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 22] (set! v1-16 (l.wu (+ v1-15 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 23] (set! a0-2 (+ v1-16 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 24] (set! v1-17 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 25] (set! v1-18 (+ v1-17 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [ 26] (set! f0-0 (vec3dot a0-2 v1-18)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 27] (set! v1-19 (fpr->gpr f0-0)) [] -> [v1: float ] - mtc1 f0, v1 ;; [ 28] (set! f0-1 (gpr->fpr v1-19)) [v1: float ] -> [] - lui v1, L804 ;; [ 29] (set! v1-20 L804) [] -> [v1: ] - ori v1, v1, L804 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 30] (set! f1-0 (l.f v1-20)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 31] (b! (<.s f0-1 f1-0) L121 (set! v1-21 #t)) [] -> [v1: symbol ] - bc1t L121 - daddiu v1, s7, 8 - -B5: - or v1, s7, r0 ;; [ 32] (set! v1-21 #f) [] -> [v1: '#f ] -B6: -L121: - beql s7, v1, L123 ;; [ 33] (bl! (not v1-21) L123 (no-delay!)) [v1: symbol ] -> [] -B7: - or v1, v1, r0 ;; [ 34] (set! v1-14 v1-21) [v1: symbol ] -> [v1: symbol ] - -B8: - lui v1, L805 ;; [ 35] (set! v1-22 L805) [] -> [v1: ] - ori v1, v1, L805 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 36] (set! f0-2 (l.f v1-22)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 37] (set! v1-23 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 38] (set! v1-24 (l.wu (+ v1-23 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 39] (set! a0-3 (+ v1-24 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 40] (set! v1-25 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 41] (set! v1-26 (+ v1-25 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f1, 0(a0) ;; [ 42] (set! f1-1 (vec3dot a0-3 v1-26)) [v1: vector a0: vector ] -> [] - lwc1 f2, 4(a0) - lwc1 f3, 8(a0) - lwc1 f4, 0(v1) - lwc1 f5, 4(v1) - lwc1 f6, 8(v1) - mula.s f1, f4 - madda.s f2, f5 - madd.s f1, f3, f6 - mfc1 v1, f1 ;; [ 43] (set! v1-27 (fpr->gpr f1-1)) [] -> [v1: float ] - mtc1 f1, v1 ;; [ 44] (set! f1-2 (gpr->fpr v1-27)) [v1: float ] -> [] - c.lt.s f0, f1 ;; [ 45] (b! (<.s f0-2 f1-2) L122 (set! v1-28 #t)) [] -> [v1: symbol ] - bc1t L122 - daddiu v1, s7, 8 - -B9: - or v1, s7, r0 ;; [ 46] (set! v1-28 #f) [] -> [v1: '#f ] -B10: -L122: - beql s7, v1, L123 ;; [ 47] (bl! (not v1-28) L123 (no-delay!)) [v1: symbol ] -> [] -B11: - or v1, v1, r0 ;; [ 48] (set! v1-14 v1-28) [v1: symbol ] -> [v1: symbol ] - -B12: - lw v1, *display*(s7) ;; [ 49] (set! v1-29 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 50] (set! v1-30 (l.d (+ v1-29 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 51] (set! a0-4 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 1708(a0) ;; [ 52] (set! a0-5 (l.d (+ a0-4 1708))) [a0: control-info ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 53] (set! v1-31 (- v1-30 a0-5)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - lw a0, *TARGET-bank*(s7) ;; [ 54] (set! a0-6 *TARGET-bank*) [] -> [a0: target-bank ] - ld a0, 564(a0) ;; [ 55] (set! a0-7 (l.d (+ a0-6 564))) [a0: target-bank ] -> [a0: seconds ] - slt v1, v1, a0 ;; [ 56] (set! a0-8 (>=.si v1-31 a0-7)) [v1: time-frame a0: seconds ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L123 ;; [ 57] (bl! (not a0-8) L123 (no-delay!)) [a0: symbol ] -> [] -B13: - or v1, a0, r0 ;; [ 58] (set! v1-14 a0-8) [a0: symbol ] -> [v1: symbol ] - -B14: - lwu v1, 160(s6) ;; [ 59] (set! v1-32 (l.wu (+ self 160))) [s6: target ] -> [v1: state-flags ] - andi v1, v1, 4096 ;; [ 60] (set! v1-33 (logand v1-32 4096)) [v1: state-flags ] -> [v1: state-flags ] - bnel v1, r0, L123 ;; [ 61] (bl! (nonzero? v1-33) L123 (no-delay!)) [v1: state-flags ] -> [] -B15: - or v1, s7, r0 ;; [ 62] (set! v1-14 #f) [] -> [v1: '#f ] - -B16: - daddiu v1, s7, 8 ;; [ 63] (set! v1-34 #t) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [ 64] (set! a0-9 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 660(a0) ;; [ 65] (set! a0-10 (l.wu (+ a0-9 660))) [a0: control-info ] -> [a0: surface ] - lwu a0, 144(a0) ;; [ 66] (set! a0-11 (l.wu (+ a0-10 144))) [a0: surface ] -> [a0: surface-flags ] - andi a0, a0, 384 ;; [ 67] (set! a0-12 (logand a0-11 384)) [a0: surface-flags ] -> [a0: surface-flags ] - movn v1, s7, a0 ;; [ 68] (cmove-#f-nonzero v1-14 a0-12 v1-34) - ;; [v1: symbol a0: surface-flags ] -> [v1: symbol ] -B17: -L123: - beq s7, v1, L126 ;; [ 69] (b! (not v1-14) L126 (set! v1-35 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B18: - lwu a0, 108(s6) ;; [ 70] (set! a0-13 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu v1, -4(a0) ;; [ 71] (set! v1-36 (l.wu (+ a0-13 -4))) - ;; [a0: control-info ] -> [v1: ] - lwu t9, 88(v1) ;; [ 72] (set! t9-1 (l.wu (+ v1-36 88))) - ;; [v1: ] -> [t9: ] - lwu v1, 108(s6) ;; [ 73] (set! v1-37 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a1, v1, 108 ;; [ 74] (set! a1-0 (+ v1-37 108)) [v1: control-info ] -> [a1: quaternion ] - jalr ra, t9 ;; [ 75] (call! a0-13 a1-0) - ;; [a0: control-info a1: quaternion t9: ] -> [v0: quaternion ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 76] (set! v1-38 v0-1) [v0: quaternion ] -> [v1: quaternion ] - lw t9, build-conversions(s7);; [ 77] (set! t9-2 build-conversions) - ;; [] -> [t9: (function vector vector :behavior target) ] - lwu v1, 108(s6) ;; [ 78] (set! v1-39 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a0, v1, 60 ;; [ 79] (set! a0-14 (+ v1-39 60)) [v1: control-info ] -> [a0: vector ] - jalr ra, t9 ;; [ 80] (call! a0-14) - ;; [a0: vector t9: (function vector vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - lw t9, enter-state(s7) ;; [ 81] (set! t9-3 enter-state) [] -> [t9: ] - lui v1, L784 ;; [ 82] (set! v1-40 L784) [] -> [v1: ] - ori v1, v1, L784 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 83] (set! a0-15 (l.w v1-40)) [v1: ] -> [a0: int ] - lui v1, L731 ;; [ 84] (set! v1-41 L731) [] -> [v1: ] - ori v1, v1, L731 - addu v1, fp, v1 - lw a1, 0(v1) ;; [ 85] (set! a1-1 (l.w v1-41)) [v1: ] -> [a1: int ] - lwu v1, 108(s6) ;; [ 86] (set! v1-42 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 87] (set! v1-43 (l.wu (+ v1-42 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 88] (set! v1-44 (l.w (+ v1-43 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 89] (set! v1-45 (sll v1-44 2)) [v1: int ] -> [v1: ] - lw a2, *cpad-list*(s7) ;; [ 90] (set! a2-0 *cpad-list*) [] -> [a2: cpad-list ] - daddu v1, v1, a2 ;; [ 91] (set! v1-46 (+ v1-45 a2-0)) - ;; [v1: a2: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 92] (set! v1-47 (l.wu (+ v1-46 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwc1 f0, 72(v1) ;; [ 93] (set! f0-3 (l.f (+ v1-47 72))) [v1: cpad-info ] -> [] - mtc1 f1, r0 ;; [ 94] (set! f1-3 0) [] -> [] - c.eq.s f0, f1 ;; [ 95] (b! (!=.s f0-3 f1-3) L124 (nop!)) [] -> [] - bc1f L124 - sll r0, r0, 0 - -B19: - lui v1, L814 ;; [ 96] (set! v1-48 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a2, 0(v1) ;; [ 97] (set! a2-1 (l.w v1-48)) [v1: ] -> [a2: int ] - beq r0, r0, L125 ;; [ 98] (b! #t L125 (nop!)) [] -> [] - sll r0, r0, 0 - -B20: -L124: - lui v1, L758 ;; [ 99] (set! v1-49 L758) [] -> [v1: ] - ori v1, v1, L758 - addu v1, fp, v1 - lw a2, 0(v1) ;; [100] (set! a2-1 (l.w v1-49)) [v1: ] -> [a2: int ] -B21: -L125: - lw v1, target-flop(s7) ;; [101] (set! v1-50 target-flop) [] -> [v1: (state float float float target) ] - sw v1, 72(s6) ;; [102] (s.w! (+ self 72) v1-50) [v1: (state float float float target) s6: target ] -> [] - jalr ra, t9 ;; [103] (call! a0-15 a1-1 a2-1) - ;; [a0: int a1: int a2: int t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [104] (set! v1-51 v0-3) [v0: object ] -> [v1: object ] -B22: -L126: - lwu v1, 108(s6) ;; [105] (set! v1-52 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [106] (set! v1-53 (l.wu (+ v1-52 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [107] (set! v1-54 (l.w (+ v1-53 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [108] (set! v1-55 (sll v1-54 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [109] (set! a0-16 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [110] (set! v1-56 (+ v1-55 a0-16)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [111] (set! v1-57 (l.wu (+ v1-56 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [112] (set! v1-58 (l.wu (+ v1-57 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 8192 ;; [113] (set! v1-59 (logand v1-58 8192)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L128 ;; [114] (bl! (zero? v1-59) L128 (no-delay!)) [v1: pad-buttons ] -> [] -B23: - or v1, s7, r0 ;; [115] (set! v1-60 #f) [] -> [v1: '#f ] - -B24: - lw t9, can-feet?(s7) ;; [116] (set! t9-4 can-feet?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [117] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - beql s7, v0, L128 ;; [118] (bl! (not v0-4) L128 (no-delay!)) [v0: symbol ] -> [] -B25: - or v1, v0, r0 ;; [119] (set! v1-60 v0-4) [v0: symbol ] -> [v1: symbol ] - -B26: - lwu v1, 120(s6) ;; [120] (set! v1-61 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [121] (set! v1-62 (l.w (+ v1-61 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [122] (b! (<=0.si v1-62) L127 (set! v1-63 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L127 - or v1, s7, r0 - -B27: - lwu v1, 120(s6) ;; [123] (set! v1-64 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [124] (set! v1-65 (l.wu (+ v1-64 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [125] (set! v1-63 (l.wu (+ v1-65 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B28: -L127: - lwu a0, 116(s6) ;; [126] (set! a0-17 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [127] (set! a0-18 (l.wu (+ a0-17 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 276(a0) ;; [128] (set! a0-19 (l.wu (+ a0-18 276))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [129] (set! a0-20 (= v1-63 a0-19)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L128 ;; [130] (bl! (not a0-20) L128 (no-delay!)) [a0: symbol ] -> [] -B29: - or v1, a0, r0 ;; [131] (set! v1-60 a0-20) [a0: symbol ] -> [v1: symbol ] - -B30: - lw t9, ja-aframe-num(s7) ;; [132] (set! t9-5 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [133] (set! a0-21 0) [] -> [a0: ] - jalr ra, t9 ;; [134] (call! a0-21) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [135] (set! f0-4 (gpr->fpr v0-5)) [v0: float ] -> [] - lui v1, L803 ;; [136] (set! v1-66 L803) [] -> [v1: ] - ori v1, v1, L803 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [137] (set! f1-4 (l.f v1-66)) [v1: ] -> [] - c.lt.s f0, f1 ;; [138] (b! (>=.s f0-4 f1-4) L128 (set! v1-60 #t)) [] -> [v1: symbol ] - bc1f L128 - daddiu v1, s7, 8 - -B31: - or v1, s7, r0 ;; [139] (set! v1-60 #f) [] -> [v1: '#f ] -B32: -L128: - beq s7, v1, L129 ;; [140] (b! (not v1-60) L129 (set! v1-67 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B33: - lw t9, enter-state(s7) ;; [141] (set! t9-6 enter-state) [] -> [t9: ] - daddiu a0, s7, uppercut ;; [142] (set! a0-22 'uppercut) [] -> [a0: symbol ] - lw v1, target-attack-air(s7);; [143] (set! v1-68 target-attack-air) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [144] (s.w! (+ self 72) v1-68) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [145] (call! a0-22) [a0: symbol t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [146] (set! v1-69 v0-6) [v0: object ] -> [v1: object ] -B34: -L129: - lw t9, mod-var-jump(s7) ;; [147] (set! t9-7 mod-var-jump) - ;; [] -> [t9: (function symbol symbol symbol vector vector :behavior target) ] - daddiu a0, s7, #t ;; [148] (set! a0-23 #t) [] -> [a0: symbol ] - daddiu a1, s7, #t ;; [149] (set! a1-2 #t) [] -> [a1: symbol ] - daddiu a2, s7, 8 ;; [150] (set! a2-2 #t) [] -> [a2: symbol ] - lwu v1, 108(s6) ;; [151] (set! v1-70 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [152] (set! v1-71 (l.wu (+ v1-70 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [153] (set! v1-72 (l.w (+ v1-71 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [154] (set! v1-73 (sll v1-72 2)) [v1: int ] -> [v1: ] - lw a3, *cpad-list*(s7) ;; [155] (set! a3-0 *cpad-list*) [] -> [a3: cpad-list ] - daddu v1, v1, a3 ;; [156] (set! v1-74 (+ v1-73 a3-0)) - ;; [v1: a3: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [157] (set! v1-75 (l.wu (+ v1-74 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 40(v1) ;; [158] (set! v1-76 (l.wu (+ v1-75 40))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [159] (set! v1-77 (logand v1-76 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - movz a2, s7, v1 ;; [160] (cmove-#f-zero a2-3 v1-77 a2-2) [v1: pad-buttons a2: symbol ] -> [a2: symbol ] - lwu v1, 108(s6) ;; [161] (set! v1-78 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a3, v1, 60 ;; [162] (set! a3-1 (+ v1-78 60)) [v1: control-info ] -> [a3: vector ] - jalr ra, t9 ;; [163] (call! a0-23 a1-2 a2-3 a3-1) - ;; [a0: symbol a1: symbol a2: symbol a3: vector t9: (function symbol symbol symbol vector vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - lwu v1, 140(s6) ;; [164] (set! v1-79 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lw v1, 36(v1) ;; [165] (set! v1-80 (l.w (+ v1-79 36))) [v1: fact-info-target ] -> [v1: pickup-type ] - daddiu v1, v1, -2 ;; [166] (set! v1-81 (+ v1-80 -2)) [v1: pickup-type ] -> [v1: ] - daddiu a0, s7, 8 ;; [167] (set! a0-24 (zero? v1-81)) [v1: ] -> [a0: symbol ] - movn a0, s7, v1 - beql s7, a0, L130 ;; [168] (bl! (not a0-24) L130 (no-delay!)) [a0: symbol ] -> [] -B35: - or v1, a0, r0 ;; [169] (set! v1-82 a0-24) [a0: symbol ] -> [v1: symbol ] - -B36: - lwu v1, 140(s6) ;; [170] (set! v1-83 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lwc1 f0, 40(v1) ;; [171] (set! f0-5 (l.f (+ v1-83 40))) [v1: fact-info-target ] -> [] - lui v1, L786 ;; [172] (set! v1-84 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [173] (set! f1-5 (l.f v1-84)) [v1: ] -> [] - c.lt.s f0, f1 ;; [174] (b! (>=.s f0-5 f1-5) L130 (set! v1-82 #t)) [] -> [v1: symbol ] - bc1f L130 - daddiu v1, s7, 8 - -B37: - or v1, s7, r0 ;; [175] (set! v1-82 #f) [] -> [v1: '#f ] -B38: -L130: - beq s7, v1, L131 ;; [176] (b! (not v1-82) L131 (set! v1-85 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B39: - lwu v1, 120(s6) ;; [177] (set! v1-86 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu gp, 36(v1) ;; [178] (set! gp-0 (l.wu (+ v1-86 36))) [v1: joint-control ] -> [gp: effect-control ] - lwu v1, -4(gp) ;; [179] (set! v1-87 (l.wu (+ gp-0 -4))) - ;; [gp: effect-control ] -> [v1: ] - lwu s5, 56(v1) ;; [180] (set! s5-0 (l.wu (+ v1-87 56))) - ;; [v1: ] -> [s5: ] - daddiu s4, s7, group-red-eco-spinkick;; [181] (set! s4-0 'group-red-eco-spinkick) [] -> [s4: symbol ] - lw t9, ja-frame-num(s7) ;; [182] (set! t9-8 ja-frame-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [183] (set! a0-25 0) [] -> [a0: ] - jalr ra, t9 ;; [184] (call! a0-25) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - or a2, v0, r0 ;; [185] (set! a2-4 v0-8) [v0: float ] -> [a2: float ] - addiu a3, r0, 23 ;; [186] (set! a3-2 23) [] -> [a3: ] - or t9, s5, r0 ;; [187] (set! t9-9 s5-0) - ;; [s5: ] -> [t9: ] - or a0, gp, r0 ;; [188] (set! a0-26 gp-0) [gp: effect-control ] -> [a0: effect-control ] - or a1, s4, r0 ;; [189] (set! a1-3 s4-0) [s4: symbol ] -> [a1: symbol ] - jalr ra, t9 ;; [190] (call! a0-26 a1-3 a2-4 a3-2) - ;; [a0: effect-control a1: symbol a2: float a3: t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [191] (set! v1-88 v0-9) [v0: object ] -> [v1: object ] - lw t9, cpad-set-buzz!(s7) ;; [192] (set! t9-10 cpad-set-buzz!) - ;; [] -> [t9: (function cpad-info int int time-frame none) ] - lw v1, *cpad-list*(s7) ;; [193] (set! v1-89 *cpad-list*) [] -> [v1: cpad-list ] - lwu a0, 4(v1) ;; [194] (set! a0-27 (l.wu (+ v1-89 4))) [v1: cpad-list ] -> [a0: cpad-info ] - addiu a1, r0, 1 ;; [195] (set! a1-4 1) [] -> [a1: ] - addiu a2, r0, 153 ;; [196] (set! a2-5 153) [] -> [a2: ] - addiu a3, r0, 30 ;; [197] (set! a3-3 30) [] -> [a3: ] - jalr ra, t9 ;; [198] (call! a0-27 a1-4 a2-5 a3-3) - ;; [a0: cpad-info a1: a2: a3: t9: (function cpad-info int int time-frame none) ] -> [v0: none ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [199] (set! v1-90 v0-10) [v0: none ] -> [v1: none ] -B40: -L131: - lwu v1, 108(s6) ;; [200] (set! v1-91 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 2380(v1) ;; [201] (set! v1-92 (l.wu (+ v1-91 2380))) [v1: control-info ] -> [v1: symbol ] - daddiu a0, s7, uppercut ;; [202] (set! a0-28 'uppercut) [] -> [a0: symbol ] - dsubu v1, v1, a0 ;; [203] (set! a0-29 (= v1-92 a0-28)) [v1: symbol a0: symbol ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L132 ;; [204] (bl! (not a0-29) L132 (no-delay!)) [a0: symbol ] -> [] -B41: - or v1, a0, r0 ;; [205] (set! v1-93 a0-29) [a0: symbol ] -> [v1: symbol ] - -B42: - lwu v1, 108(s6) ;; [206] (set! v1-94 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [207] (set! v1-95 (l.wu (+ v1-94 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [208] (set! a0-30 (+ v1-95 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [209] (set! v1-96 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [210] (set! v1-97 (+ v1-96 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [211] (set! f0-6 (vec3dot a0-30 v1-97)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [212] (set! v1-98 (fpr->gpr f0-6)) [] -> [v1: float ] - mtc1 f0, v1 ;; [213] (set! f0-7 (gpr->fpr v1-98)) [v1: float ] -> [] - lui v1, L801 ;; [214] (set! v1-99 L801) [] -> [v1: ] - ori v1, v1, L801 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [215] (set! f1-6 (l.f v1-99)) [v1: ] -> [] - c.lt.s f0, f1 ;; [216] (b! (<.s f0-7 f1-6) L132 (set! v1-93 #t)) [] -> [v1: symbol ] - bc1t L132 - daddiu v1, s7, 8 - -B43: - or v1, s7, r0 ;; [217] (set! v1-93 #f) [] -> [v1: '#f ] -B44: -L132: - beq s7, v1, L133 ;; [218] (b! (not v1-93) L133 (set! v1-100 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B45: - lw t9, target-danger-set!(s7);; [219] (set! t9-11 target-danger-set!) - ;; [] -> [t9: (function symbol symbol float :behavior target) ] - daddiu a0, s7, harmless ;; [220] (set! a0-31 'harmless) [] -> [a0: symbol ] - or a1, s7, r0 ;; [221] (set! a1-5 #f) [] -> [a1: '#f ] - jalr ra, t9 ;; [222] (call! a0-31 a1-5) - ;; [a0: symbol a1: '#f t9: (function symbol symbol float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [223] (set! v1-101 v0-11) [v0: float ] -> [v1: float ] -B46: -L133: - lw t9, slide-down-test(s7);; [224] (set! t9-12 slide-down-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [225] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 48(sp) - lq s5, 32(sp) - lq s4, 16(sp) - jr ra - daddiu sp, sp, 64 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-attack-uppercut-jump) - () - (if (logtest? (-> self control status) (cshape-moving-flags onsurf)) - (go target-hit-ground #f) - ) - (when (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 22118.4) - (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as time-frame (-> *TARGET-bank* stuck-timeout)) - ) - (zero? (logand (-> self state-flags) (state-flags prevent-attack))) - (zero? (logand (-> self control unknown-surface01 flags) (surface-flags prevent-attacks-during-launch-jump surf08)) - ) - ) - ) - (set-quaternion! (-> self control) (-> self control dir-targ)) - (build-conversions (-> self control transv)) - (go - target-flop - (the-as float 65502.96) - (the-as float -163840.0) - (the-as float (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - 0.0 - 68812.8 - ) - ) - ) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) - (can-feet?) - (ja-group? (-> self draw art-group data 62)) - (>= (ja-aframe-num 0) 12.0) - ) - (go target-attack-air 'uppercut) - ) - (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) - (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 23) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) - ) - (if (and (= (-> self control unknown-symbol30) 'uppercut) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) -8192.0) - ) - (target-danger-set! 'harmless #f) - ) - (slide-down-test) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-attack-uppercut-jump) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x30, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 -;; Warnings: -;; INFO: Return type mismatch float vs none. - -;; a0-0: float a1-0: float s6-0: target -L134: - daddiu sp, sp, -48 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s5, 16(sp) - sq gp, 32(sp) -B0: - or gp, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: float ] -> [gp: float ] - or s5, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: float ] -> [s5: float ] - lwu v1, 108(s6) ;; [ 2] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 260(v1) ;; [ 3] (set! v1-1 (l.wu (+ v1-0 260))) [v1: control-info ] -> [v1: pat-surface ] - dsll32 v1, v1, 20 ;; [ 4] (set! v1-2 (sll v1-1 52)) [v1: pat-surface ] -> [v1: ( << 52) ] - dsrl32 v1, v1, 26 ;; [ 5] (set! v1-3 (srl v1-2 58)) [v1: ( << 52) ] -> [v1: pat-material ] - daddiu v1, v1, -1 ;; [ 6] (set! v1-4 (+ v1-3 -1)) [v1: pat-material ] -> [v1: ] - daddiu a0, s7, 8 ;; [ 7] (set! a0-1 (zero? v1-4)) [v1: ] -> [a0: symbol ] - movn a0, s7, v1 - beql s7, a0, L135 ;; [ 8] (bl! (not a0-1) L135 (no-delay!)) [a0: symbol ] -> [] -B1: - or v1, a0, r0 ;; [ 9] (set! v1-5 a0-1) [a0: symbol ] -> [v1: symbol ] - -B2: - lui v1, L733 ;; [ 10] (set! v1-6 L733) [] -> [v1: ] - ori v1, v1, L733 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 11] (set! f0-0 (l.f v1-6)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 12] (set! v1-7 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 528(v1) ;; [ 13] (set! f1-0 (l.f (+ v1-7 528))) [v1: control-info ] -> [] - c.lt.s f0, f1 ;; [ 14] (b! (<.s f0-0 f1-0) L135 (set! v1-5 #t)) [] -> [v1: symbol ] - bc1t L135 - daddiu v1, s7, 8 - -B3: - or v1, s7, r0 ;; [ 15] (set! v1-5 #f) [] -> [v1: '#f ] -B4: -L135: - beq s7, v1, L136 ;; [ 16] (b! (not v1-5) L136 (set! v1-8 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B5: - lw t9, set-forward-vel(s7);; [ 17] (set! t9-0 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - lui v1, L733 ;; [ 18] (set! v1-9 L733) [] -> [v1: ] - ori v1, v1, L733 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 19] (set! a0-2 (l.w v1-9)) [v1: ] -> [a0: int ] - jalr ra, t9 ;; [ 20] (call! a0-2) - ;; [a0: int t9: (function float vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 21] (set! v1-10 v0-0) [v0: vector ] -> [v1: vector ] -B6: -L136: - lw v1, *display*(s7) ;; [ 22] (set! v1-11 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 23] (set! v1-12 (l.d (+ v1-11 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 24] (s.d! (+ self 164) v1-12) [v1: time-frame s6: target ] -> [] - lw t9, init-var-jump(s7) ;; [ 25] (set! t9-1 init-var-jump) - ;; [] -> [t9: (function float float vector vector vector vector :behavior target) ] - daddiu a2, s7, #t ;; [ 26] (set! a2-0 #t) [] -> [a2: symbol ] - or a3, s7, r0 ;; [ 27] (set! a3-0 #f) [] -> [a3: '#f ] - lwu v1, 108(s6) ;; [ 28] (set! v1-13 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu t0, v1, 60 ;; [ 29] (set! t0-0 (+ v1-13 60)) [v1: control-info ] -> [t0: vector ] - or a0, gp, r0 ;; [ 30] (set! a0-3 arg0) [gp: float ] -> [a0: float ] - or a1, s5, r0 ;; [ 31] (set! a1-1 arg1) [s5: float ] -> [a1: float ] - jalr ra, t9 ;; [ 32] (call! a0-3 a1-1 a2-0 a3-0 t0-0) - ;; [a0: float a1: float a2: symbol a3: '#f t0: vector t9: (function float float vector vector vector vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - addiu v1, r0, -8 ;; [ 33] (set! v1-14 -8) [] -> [v1: ] - lwu a0, 108(s6) ;; [ 34] (set! a0-4 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 268(a0) ;; [ 35] (set! a0-5 (l.d (+ a0-4 268))) [a0: control-info ] -> [a0: cshape-moving-flags ] - and v1, v1, a0 ;; [ 36] (set! v1-15 (logand v1-14 a0-5)) - ;; [v1: a0: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - lwu a0, 108(s6) ;; [ 37] (set! a0-6 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 268(a0) ;; [ 38] (s.d! (+ a0-6 268) v1-15) [v1: cshape-moving-flags a0: control-info ] -> [] - lw v1, *uppercut-jump-mods*(s7);; [ 39] (set! v1-16 *uppercut-jump-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [ 40] (set! a0-7 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [ 41] (s.w! (+ a0-7 656) v1-16) [v1: surface a0: control-info ] -> [] - lw t9, target-start-attack(s7);; [ 42] (set! t9-2 target-start-attack) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 43] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, target-danger-set!(s7);; [ 44] (set! t9-3 target-danger-set!) - ;; [] -> [t9: (function symbol symbol float :behavior target) ] - daddiu a0, s7, uppercut ;; [ 45] (set! a0-8 'uppercut) [] -> [a0: symbol ] - or a1, s7, r0 ;; [ 46] (set! a1-2 #f) [] -> [a1: '#f ] - jalr ra, t9 ;; [ 47] (call! a0-8 a1-2) - ;; [a0: symbol a1: '#f t9: (function symbol symbol float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 32(sp) - lq s5, 16(sp) - jr ra - daddiu sp, sp, 48 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-attack-uppercut-jump) - ((arg0 float) (arg1 float)) - (if (and (= (-> self control ground-pat material) (pat-material ice)) - (< 32768.0 (-> self control unknown-float01)) - ) - (set-forward-vel (the-as float 32768.0)) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (init-var-jump arg0 arg1 (the-as vector #t) (the-as vector #f) (-> self control transv)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (set! (-> self control unknown-surface00) *uppercut-jump-mods*) - (target-start-attack) - (target-danger-set! 'uppercut #f) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-attack-uppercut) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x50, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 s4 s3 -;; Warnings: -;; INFO: Return type mismatch object vs none. - -;; a0-0: float a1-0: float s3-0: symbol s6-0: target -L137: - daddiu sp, sp, -80 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s3, 16(sp) - sq s4, 32(sp) - sq s5, 48(sp) - sq gp, 64(sp) -B0: - or gp, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: float ] -> [gp: float ] - or s5, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: float ] -> [s5: float ] - lwu v1, 120(s6) ;; [ 2] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 3] (set! v1-1 (l.w (+ v1-0 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 4] (b! (<=0.si v1-1) L138 (set! v1-2 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L138 - or v1, s7, r0 - -B1: - lwu v1, 120(s6) ;; [ 5] (set! v1-3 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 6] (set! v1-4 (l.wu (+ v1-3 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 7] (set! v1-2 (l.wu (+ v1-4 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B2: -L138: - lwu a0, 116(s6) ;; [ 8] (set! a0-1 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 9] (set! a0-2 (l.wu (+ a0-1 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 152(a0) ;; [ 10] (set! a0-3 (l.wu (+ a0-2 152))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 11] (set! s3-0 (= v1-2 a0-3)) [v1: art-joint-anim a0: art-element ] -> [s3: symbol ] - daddiu s3, s7, 8 - movn s3, s7, v1 - lwu v1, 120(s6) ;; [ 12] (set! v1-5 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 13] (set! v1-6 (l.wu (+ v1-5 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s4, r0, v1 ;; [ 14] (set! s4-0 (+ v1-6 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s4: joint-control-channel ] - lwu v1, 116(s6) ;; [ 15] (set! v1-7 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 16] (set! v1-8 (l.wu (+ v1-7 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 276(v1) ;; [ 17] (set! v1-9 (l.wu (+ v1-8 276))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(s4) ;; [ 18] (s.w! (+ s4-0 12) v1-9) [v1: art-element s4: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [ 19] (set! t9-0 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L721 ;; [ 20] (set! v1-10 L721) [] -> [v1: ] - ori v1, v1, L721 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 21] (set! a0-4 (l.w v1-10)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [ 22] (set! a1-1 0) [] -> [a1: ] - jalr ra, t9 ;; [ 23] (call! a0-4 a1-1) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 24] (set! f0-0 (gpr->fpr v0-0)) [v0: float ] -> [] - swc1 f0, 24(s4) ;; [ 25] (s.f! (+ s4-0 24) f0-0) [s4: joint-control-channel ] -> [] - lui v1, L786 ;; [ 26] (set! v1-11 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 27] (set! f0-1 (l.f v1-11)) [v1: ] -> [] - swc1 f0, 28(s4) ;; [ 28] (s.f! (+ s4-0 28) f0-1) [s4: joint-control-channel ] -> [] - beq s7, s3, L139 ;; [ 29] (b! (not s3-0) L139 (nop!)) [s3: symbol ] -> [] - sll r0, r0, 0 - -B3: - lw t9, ja-aframe(s7) ;; [ 30] (set! t9-1 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L740 ;; [ 31] (set! v1-12 L740) [] -> [v1: ] - ori v1, v1, L740 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 32] (set! a0-5 (l.w v1-12)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [ 33] (set! a1-2 0) [] -> [a1: ] - jalr ra, t9 ;; [ 34] (call! a0-5 a1-2) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 35] (set! v1-13 v0-1) [v0: float ] -> [v1: float ] - beq r0, r0, L140 ;; [ 36] (b! #t L140 (nop!)) [] -> [] - sll r0, r0, 0 - -B4: -L139: - lui v1, L814 ;; [ 37] (set! v1-14 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw v1, 0(v1) ;; [ 38] (set! v1-13 (l.w v1-14)) [v1: ] -> [v1: int ] -B5: -L140: - mtc1 f0, v1 ;; [ 39] (set! f0-2 (gpr->fpr (the-as float v1-13))) [v1: float ] -> [] - swc1 f0, 16(s4) ;; [ 40] (s.f! (+ s4-0 16) f0-2) [s4: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [ 41] (set! t9-2 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 42] (set! v1-15 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 43] (set! v1-16 (l.wu (+ v1-15 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 276(v1) ;; [ 44] (set! a1-3 (l.wu (+ v1-16 276))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [ 45] (set! a2-0 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s4, r0 ;; [ 46] (set! a0-6 s4-0) [s4: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [ 47] (call! a0-6 a1-3 a2-0) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 48] (set! v1-17 v0-2) [v0: int ] -> [v1: int ] -B6: -L141: - lwu s6, 44(s6) ;; [ 49] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 50] (set! v1-18 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 51] (set! v1-19 (l.wu (+ v1-18 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s4, r0, v1 ;; [ 52] (set! s4-1 (+ v1-19 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s4: joint-control-channel ] - lw t9, ja-aframe(s7) ;; [ 53] (set! t9-3 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L721 ;; [ 54] (set! v1-20 L721) [] -> [v1: ] - ori v1, v1, L721 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 55] (set! a0-7 (l.w v1-20)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [ 56] (set! a1-4 0) [] -> [a1: ] - jalr ra, t9 ;; [ 57] (call! a0-7 a1-4) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 58] (set! f0-3 (gpr->fpr v0-3)) [v0: float ] -> [] - swc1 f0, 24(s4) ;; [ 59] (s.f! (+ s4-1 24) f0-3) [s4: joint-control-channel ] -> [] - lui v1, L786 ;; [ 60] (set! v1-21 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 61] (set! f0-4 (l.f v1-21)) [v1: ] -> [] - swc1 f0, 28(s4) ;; [ 62] (s.f! (+ s4-1 28) f0-4) [s4: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 63] (set! t9-4 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 64] (set! a1-5 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 65] (set! a2-1 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s4, r0 ;; [ 66] (set! a0-8 s4-1) [s4: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [ 67] (call! a0-8 a1-5 a2-1) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 68] (set! v1-22 v0-4) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [ 69] (set! t9-5 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 70] (set! a0-9 0) [] -> [a0: ] - jalr ra, t9 ;; [ 71] (call! a0-9) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L141 ;; [ 72] (b! (not v0-5) L141 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B7: - or v1, s7, r0 ;; [ 73] (set! v1-23 #f) [] -> [v1: '#f ] - lw t9, enter-state(s7) ;; [ 74] (set! t9-6 enter-state) [] -> [t9: ] - or a0, gp, r0 ;; [ 75] (set! a0-10 arg0) [gp: float ] -> [a0: float ] - or a1, s5, r0 ;; [ 76] (set! a1-6 arg1) [s5: float ] -> [a1: float ] - lw v1, target-attack-uppercut-jump(s7);; [ 77] (set! v1-24 target-attack-uppercut-jump) - ;; [] -> [v1: (state float float target) ] - sw v1, 72(s6) ;; [ 78] (s.w! (+ self 72) v1-24) [v1: (state float float target) s6: target ] -> [] - jalr ra, t9 ;; [ 79] (call! a0-10 a1-6) [a0: float a1: float t9: ] -> [v0: object ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 64(sp) - lq s5, 48(sp) - lq s4, 32(sp) - lq s3, 16(sp) - jr ra - daddiu sp, sp, 80 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-attack-uppercut) - ((arg0 float) (arg1 float)) - (let ((s3-0 (ja-group? (-> self draw art-group data 31)))) - (ja-no-eval :group! (-> self draw art-group data 62) - :num! (seek! (ja-aframe (the-as float 7.0) 0)) - :frame-num (the-as float (if s3-0 - (ja-aframe (the-as float 5.0) 0) - 0.0 - ) - ) - ) - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 7.0) 0))) - ) - (go target-attack-uppercut-jump arg0 arg1) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-attack-uppercut) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; Warnings: -;; INFO: Return type mismatch surface vs none. - -;; s6-0: target -L142: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lw v1, *display*(s7) ;; [ 0] (set! v1-0 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 1] (set! v1-1 (l.d (+ v1-0 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 2] (s.d! (+ self 164) v1-1) [v1: time-frame s6: target ] -> [] - lw t9, target-start-attack(s7);; [ 3] (set! t9-0 target-start-attack) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 4] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, target-danger-set!(s7);; [ 5] (set! t9-1 target-danger-set!) - ;; [] -> [t9: (function symbol symbol float :behavior target) ] - daddiu a0, s7, uppercut ;; [ 6] (set! a0-1 'uppercut) [] -> [a0: symbol ] - or a1, s7, r0 ;; [ 7] (set! a1-1 #f) [] -> [a1: '#f ] - jalr ra, t9 ;; [ 8] (call! a0-1 a1-1) - ;; [a0: symbol a1: '#f t9: (function symbol symbol float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - lw v0, *turn-around-mods*(s7);; [ 9] (set! v0-2 *turn-around-mods*) [] -> [v0: surface ] - lwu v1, 108(s6) ;; [ 10] (set! v1-2 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw v0, 656(v1) ;; [ 11] (s.w! (+ v1-2 656) v0-2) [v0: surface v1: control-info ] -> [] - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-attack-uppercut) - ((arg0 float) (arg1 float)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (target-start-attack) - (target-danger-set! 'uppercut #f) - (set! (-> self control unknown-surface00) *turn-around-mods*) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-attack-air) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x40, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 - ;fprs: f30 -;; Warnings: -;; INFO: Return type mismatch object vs none. - -;; s6-0: target f0-8: float f0-22: float f1-1: float f30-0: float -L143: - daddiu sp, sp, -64 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s5, 16(sp) - sq gp, 32(sp) - swc1 f30, 48(sp) -B0: - lw t9, ja-channel-push!(s7);; [ 0] (set! t9-0 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 1] (set! a0-1 1) [] -> [a0: ] - addiu a1, r0, 22 ;; [ 2] (set! a1-0 22) [] -> [a1: ] - jalr ra, t9 ;; [ 3] (call! a0-1 a1-0) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 4] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 5] (set! v1-1 (l.wu (+ v1-0 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 6] (set! a0-2 (+ v1-1 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 7] (set! v1-2 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 8] (set! v1-3 (l.wu (+ v1-2 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 252(v1) ;; [ 9] (set! v1-4 (l.wu (+ v1-3 252))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 10] (s.w! (+ a0-2 12) v1-4) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [ 11] (set! v1-5 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 12] (set! v1-6 (l.wu (+ v1-5 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 252(v1) ;; [ 13] (set! v1-7 (l.wu (+ v1-6 252))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 14] (set! (the-as art-joint-anim v1-8) (l.wu (+ v1-7 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 15] (set! v1-9 (l.h (+ v1-8 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 16] (set! v1-10 (+ v1-9 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 17] (set! f0-0 (gpr->fpr v1-10)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 18] (set! f0-1 (i2f f0-0)) [] -> [] - swc1 f0, 24(a0) ;; [ 19] (s.f! (+ a0-2 24) f0-1) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 20] (set! v1-11 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 21] (set! f0-2 (l.f v1-11)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 22] (s.f! (+ a0-2 28) f0-2) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 23] (set! f0-3 0) [] -> [] - swc1 f0, 16(a0) ;; [ 24] (s.f! (+ a0-2 16) f0-3) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [ 25] (set! t9-1 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 26] (set! v1-12 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 27] (set! v1-13 (l.wu (+ v1-12 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 252(v1) ;; [ 28] (set! a1-1 (l.wu (+ v1-13 252))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [ 29] (set! a2-0 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 30] (call! a0-2 a1-1 a2-0) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 31] (set! v1-14 v0-1) [v0: int ] -> [v1: int ] -B1: -L144: - lwu a0, 128(s6) ;; [ 32] (set! a0-3 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [ 33] (set! v1-15 (l.wu (+ a0-3 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 52(v1) ;; [ 34] (set! t9-2 (l.wu (+ v1-15 52))) - ;; [v1: ] -> [t9: ] - jalr ra, t9 ;; [ 35] (call! a0-3) - ;; [a0: align-control t9: ] -> [v0: transformq ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 36] (set! v1-16 v0-2) [v0: transformq ] -> [v1: transformq ] - lwu a0, 128(s6) ;; [ 37] (set! a0-4 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [ 38] (set! v1-17 (l.wu (+ a0-4 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 56(v1) ;; [ 39] (set! t9-3 (l.wu (+ v1-17 56))) - ;; [v1: ] -> [t9: ] - addiu a1, r0, 16 ;; [ 40] (set! a1-2 16) [] -> [a1: ] - lui v1, L786 ;; [ 41] (set! v1-18 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a2, 0(v1) ;; [ 42] (set! a2-1 (l.w v1-18)) [v1: ] -> [a2: int ] - lui v1, L786 ;; [ 43] (set! v1-19 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a3, 0(v1) ;; [ 44] (set! a3-0 (l.w v1-19)) [v1: ] -> [a3: int ] - lui v1, L786 ;; [ 45] (set! v1-20 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw t0, 0(v1) ;; [ 46] (set! t0-0 (l.w v1-20)) [v1: ] -> [t0: int ] - jalr ra, t9 ;; [ 47] (call! a0-4 a1-2 a2-1 a3-0 t0-0) - ;; [a0: align-control a1: a2: int a3: int t0: int t9: ] -> [v0: trsqv ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 48] (set! v1-21 v0-3) [v0: trsqv ] -> [v1: trsqv ] - lwu s6, 44(s6) ;; [ 49] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 50] (set! v1-22 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 51] (set! v1-23 (l.wu (+ v1-22 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 52] (set! a0-5 (+ v1-23 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [ 53] (set! v1-24 (l.wu (+ a0-5 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 54] (set! v1-25 (l.wu (+ v1-24 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 55] (set! v1-26 (l.h (+ v1-25 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 56] (set! v1-27 (+ v1-26 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 57] (set! f0-4 (gpr->fpr v1-27)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 58] (set! f0-5 (i2f f0-4)) [] -> [] - swc1 f0, 24(a0) ;; [ 59] (s.f! (+ a0-5 24) f0-5) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 60] (set! v1-28 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 61] (set! f0-6 (l.f v1-28)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 62] (s.f! (+ a0-5 28) f0-6) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 63] (set! t9-4 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 64] (set! a1-3 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 65] (set! a2-2 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 66] (call! a0-5 a1-3 a2-2) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 67] (set! v1-29 v0-4) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [ 68] (set! t9-5 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 69] (set! a0-6 0) [] -> [a0: ] - jalr ra, t9 ;; [ 70] (call! a0-6) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L144 ;; [ 71] (b! (not v0-5) L144 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B2: - or v1, s7, r0 ;; [ 72] (set! v1-30 #f) [] -> [v1: '#f ] - lwu v1, 120(s6) ;; [ 73] (set! v1-31 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 74] (set! v1-32 (l.wu (+ v1-31 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [ 75] (set! gp-0 (+ v1-32 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lw t9, joint-control-channel-group-eval!(s7);; [ 76] (set! t9-6 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, gp, r0 ;; [ 77] (set! a0-7 gp-0) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 78] (set! v1-33 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 79] (set! v1-34 (l.wu (+ v1-33 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 256(v1) ;; [ 80] (set! a1-4 (l.wu (+ v1-34 256))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [ 81] (set! a2-3 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 82] (call! a0-7 a1-4 a2-3) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [ 83] (set! f0-7 0) [] -> [] - swc1 f0, 16(gp) ;; [ 84] (s.f! (+ gp-0 16) f0-7) [gp: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [ 85] (set! v1-35 (fpr->gpr f0-7)) [] -> [v1: float ] - lui v1, L722 ;; [ 86] (set! v1-36 L722) [] -> [v1: ] - ori v1, v1, L722 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [ 87] (set! f30-0 (l.f v1-36)) [v1: ] -> [] - lw t9, target-height-above-ground(s7);; [ 88] (set! t9-7 target-height-above-ground) - ;; [] -> [t9: (function float :behavior target) ] - jalr ra, t9 ;; [ 89] (call!) [t9: (function float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 90] (set! f0-8 (gpr->fpr v0-7)) [v0: float ] -> [] - lwu v1, 108(s6) ;; [ 91] (set! v1-37 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 92] (set! v1-38 (l.wu (+ v1-37 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 93] (set! a0-8 (+ v1-38 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 94] (set! v1-39 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 95] (set! v1-40 (+ v1-39 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f1, 0(a0) ;; [ 96] (set! f1-0 (vec3dot a0-8 v1-40)) [v1: vector a0: vector ] -> [] - lwc1 f2, 4(a0) - lwc1 f3, 8(a0) - lwc1 f4, 0(v1) - lwc1 f5, 4(v1) - lwc1 f6, 8(v1) - mula.s f1, f4 - madda.s f2, f5 - madd.s f1, f3, f6 - mfc1 v1, f1 ;; [ 97] (set! v1-41 (fpr->gpr f1-0)) [] -> [v1: float ] - mtc1 f1, v1 ;; [ 98] (set! f1-1 (gpr->fpr v1-41)) [v1: float ] -> [] - beq r0, r0, L146 ;; [ 99] (b! #t L146 (nop!)) [] -> [] - sll r0, r0, 0 - -B3: -L145: - lw t9, quaternion-rotate-y!(s7);; [100] (set! t9-8 quaternion-rotate-y!) - ;; [] -> [t9: (function quaternion quaternion float quaternion) ] - lwu v1, 108(s6) ;; [101] (set! v1-42 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a0, v1, 492 ;; [102] (set! a0-9 (+ v1-42 492)) [v1: control-info ] -> [a0: quaternion ] - lwu v1, 108(s6) ;; [103] (set! v1-43 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a1, v1, 492 ;; [104] (set! a1-5 (+ v1-43 492)) [v1: control-info ] -> [a1: quaternion ] - lw v1, *display*(s7) ;; [105] (set! v1-44 *display*) [] -> [v1: display ] - lwc1 f0, 904(v1) ;; [106] (set! f0-9 (l.f (+ v1-44 904))) [v1: display ] -> [] - mul.s f0, f30, f0 ;; [107] (set! f0-10 (*.s f30-0 f0-9)) [] -> [] - mfc1 a2, f0 ;; [108] (set! a2-4 (fpr->gpr f0-10)) [] -> [a2: float ] - jalr ra, t9 ;; [109] (call! a0-9 a1-5 a2-4) - ;; [a0: quaternion a1: quaternion a2: float t9: (function quaternion quaternion float quaternion) ] -> [v0: quaternion ] - sll v0, ra, 0 - - lwu s6, 44(s6) ;; [110] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [111] (set! v1-45 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [112] (set! v1-46 (l.wu (+ v1-45 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [113] (set! a0-10 (+ v1-46 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lui v1, L786 ;; [114] (set! v1-47 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [115] (set! f0-11 (l.f v1-47)) [v1: ] -> [] - swc1 f0, 24(a0) ;; [116] (s.f! (+ a0-10 24) f0-11) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [117] (set! t9-9 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [118] (set! a1-6 #f) [] -> [a1: '#f ] - lw a2, num-func-loop!(s7) ;; [119] (set! a2-5 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [120] (call! a0-10 a1-6 a2-5) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [121] (set! v1-48 v0-9) [v0: int ] -> [v1: int ] - lw t9, target-height-above-ground(s7);; [122] (set! t9-10 target-height-above-ground) - ;; [] -> [t9: (function float :behavior target) ] - jalr ra, t9 ;; [123] (call!) [t9: (function float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [124] (set! f0-8 (gpr->fpr v0-10)) [v0: float ] -> [] - lwu v1, 108(s6) ;; [125] (set! v1-49 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [126] (set! v1-50 (l.wu (+ v1-49 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [127] (set! a0-11 (+ v1-50 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [128] (set! v1-51 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [129] (set! v1-52 (+ v1-51 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f1, 0(a0) ;; [130] (set! f1-2 (vec3dot a0-11 v1-52)) [v1: vector a0: vector ] -> [] - lwc1 f2, 4(a0) - lwc1 f3, 8(a0) - lwc1 f4, 0(v1) - lwc1 f5, 4(v1) - lwc1 f6, 8(v1) - mula.s f1, f4 - madda.s f2, f5 - madd.s f1, f3, f6 - mfc1 v1, f1 ;; [131] (set! v1-53 (fpr->gpr f1-2)) [] -> [v1: float ] - mtc1 f1, v1 ;; [132] (set! f1-1 (gpr->fpr v1-53)) [v1: float ] -> [] -B4: -L146: - lui v1, L768 ;; [133] (set! v1-54 L768) [] -> [v1: ] - ori v1, v1, L768 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [134] (set! f2-0 (l.f v1-54)) [v1: ] -> [] - mul.s f2, f2, f1 ;; [135] (set! f2-1 (*.s f2-0 f1-1)) [] -> [] - div.s f0, f0, f2 ;; [136] (set! f0-12 (/.s f0-8 f2-1)) [] -> [] - abs.s f0, f0 ;; [137] (set! f0-13 (abs.s f0-12)) [] -> [] - lui v1, L800 ;; [138] (set! v1-55 L800) [] -> [v1: ] - ori v1, v1, L800 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [139] (set! f2-2 (l.f v1-55)) [v1: ] -> [] - c.lt.s f0, f2 ;; [140] (b! (<.s f0-13 f2-2) L147 (set! v1-56 #t)) [] -> [v1: symbol ] - bc1t L147 - daddiu v1, s7, 8 - -B5: - or v1, s7, r0 ;; [141] (set! v1-56 #f) [] -> [v1: '#f ] -B6: -L147: - beql s7, v1, L148 ;; [142] (bl! (not v1-56) L148 (no-delay!)) [v1: symbol ] -> [] -B7: - or v1, v1, r0 ;; [143] (set! v1-57 v1-56) [v1: symbol ] -> [v1: symbol ] - -B8: - mtc1 f0, r0 ;; [144] (set! f0-14 0) [] -> [] - c.lt.s f1, f0 ;; [145] (b! (<.s f1-1 f0-14) L148 (set! v1-57 #t)) [] -> [v1: symbol ] - bc1t L148 - daddiu v1, s7, 8 - -B9: - or v1, s7, r0 ;; [146] (set! v1-57 #f) [] -> [v1: '#f ] -B10: -L148: - bnel s7, v1, L149 ;; [147] (bl! (truthy v1-57) L149 (no-delay!)) [v1: symbol ] -> [] -B11: - or v1, v1, r0 ;; [148] (set! v1-58 v1-57) [v1: symbol ] -> [v1: symbol ] - -B12: - lw v1, *display*(s7) ;; [149] (set! v1-59 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [150] (set! v1-60 (l.d (+ v1-59 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [151] (set! a0-12 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [152] (set! v1-61 (- v1-60 a0-12)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti a0, v1, 510 ;; [153] (set! v1-58 (>=.si v1-61 510)) [v1: time-frame ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B13: -L149: - beq s7, v1, L145 ;; [154] (b! (not v1-58) L145 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B14: - or v1, s7, r0 ;; [155] (set! v1-62 #f) [] -> [v1: '#f ] - or v1, s7, r0 ;; [156] (set! v1-63 #f) [] -> [v1: '#f ] - lwu v1, 120(s6) ;; [157] (set! v1-64 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [158] (set! v1-65 (l.wu (+ v1-64 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [159] (set! a0-13 (+ v1-65 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [160] (set! v1-66 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [161] (set! v1-67 (l.wu (+ v1-66 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 260(v1) ;; [162] (set! v1-68 (l.wu (+ v1-67 260))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [163] (s.w! (+ a0-13 12) v1-68) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [164] (set! v1-69 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [165] (set! v1-70 (l.wu (+ v1-69 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 260(v1) ;; [166] (set! v1-71 (l.wu (+ v1-70 260))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [167] (set! (the-as art-joint-anim v1-72) (l.wu (+ v1-71 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [168] (set! v1-73 (l.h (+ v1-72 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [169] (set! v1-74 (+ v1-73 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [170] (set! f0-15 (gpr->fpr v1-74)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [171] (set! f0-16 (i2f f0-15)) [] -> [] - swc1 f0, 24(a0) ;; [172] (s.f! (+ a0-13 24) f0-16) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [173] (set! v1-75 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [174] (set! f0-17 (l.f v1-75)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [175] (s.f! (+ a0-13 28) f0-17) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [176] (set! f0-18 0) [] -> [] - swc1 f0, 16(a0) ;; [177] (s.f! (+ a0-13 16) f0-18) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [178] (set! t9-11 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [179] (set! v1-76 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [180] (set! v1-77 (l.wu (+ v1-76 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 260(v1) ;; [181] (set! a1-7 (l.wu (+ v1-77 260))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [182] (set! a2-6 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [183] (call! a0-13 a1-7 a2-6) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [184] (set! v1-78 v0-11) [v0: int ] -> [v1: int ] -B15: -L150: - lw t9, ja-aframe-num(s7) ;; [185] (set! t9-12 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [186] (set! a0-14 0) [] -> [a0: ] - jalr ra, t9 ;; [187] (call! a0-14) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [188] (set! f0-19 (gpr->fpr v0-12)) [v0: float ] -> [] - lui v1, L799 ;; [189] (set! v1-79 L799) [] -> [v1: ] - ori v1, v1, L799 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [190] (set! f1-3 (l.f v1-79)) [v1: ] -> [] - c.lt.s f0, f1 ;; [191] (b! (>=.s f0-19 f1-3) L151 (nop!)) [] -> [] - bc1f L151 - sll r0, r0, 0 - -B16: - lw t9, quaternion-rotate-y!(s7);; [192] (set! t9-13 quaternion-rotate-y!) - ;; [] -> [t9: (function quaternion quaternion float quaternion) ] - lwu v1, 108(s6) ;; [193] (set! v1-80 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a0, v1, 492 ;; [194] (set! a0-15 (+ v1-80 492)) [v1: control-info ] -> [a0: quaternion ] - lwu v1, 108(s6) ;; [195] (set! v1-81 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a1, v1, 492 ;; [196] (set! a1-8 (+ v1-81 492)) [v1: control-info ] -> [a1: quaternion ] - lw v1, *display*(s7) ;; [197] (set! v1-82 *display*) [] -> [v1: display ] - lwc1 f0, 904(v1) ;; [198] (set! f0-20 (l.f (+ v1-82 904))) [v1: display ] -> [] - mul.s f0, f30, f0 ;; [199] (set! f0-21 (*.s f30-0 f0-20)) [] -> [] - mfc1 a2, f0 ;; [200] (set! a2-7 (fpr->gpr f0-21)) [] -> [a2: float ] - jalr ra, t9 ;; [201] (call! a0-15 a1-8 a2-7) - ;; [a0: quaternion a1: quaternion a2: float t9: (function quaternion quaternion float quaternion) ] -> [v0: quaternion ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [202] (set! v1-83 v0-13) [v0: quaternion ] -> [v1: quaternion ] - beq r0, r0, L152 ;; [203] (b! #t L152 (nop!)) [] -> [] - sll r0, r0, 0 - -B17: -L151: - lw gp, deg-diff(s7) ;; [204] (set! gp-1 deg-diff) [] -> [gp: (function float float float) ] - lw t9, quaternion-y-angle(s7);; [205] (set! t9-14 quaternion-y-angle) [] -> [t9: (function quaternion float) ] - lwu v1, 108(s6) ;; [206] (set! v1-84 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a0, v1, 492 ;; [207] (set! a0-16 (+ v1-84 492)) [v1: control-info ] -> [a0: quaternion ] - jalr ra, t9 ;; [208] (call! a0-16) [a0: quaternion t9: (function quaternion float) ] -> [v0: float ] - sll v0, ra, 0 - - or s5, v0, r0 ;; [209] (set! s5-0 v0-14) [v0: float ] -> [s5: float ] - lw t9, quaternion-y-angle(s7);; [210] (set! t9-15 quaternion-y-angle) [] -> [t9: (function quaternion float) ] - lwu v1, 108(s6) ;; [211] (set! v1-85 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a0, v1, 108 ;; [212] (set! a0-17 (+ v1-85 108)) [v1: control-info ] -> [a0: quaternion ] - jalr ra, t9 ;; [213] (call! a0-17) [a0: quaternion t9: (function quaternion float) ] -> [v0: float ] - sll v0, ra, 0 - - or a1, v0, r0 ;; [214] (set! a1-9 v0-15) [v0: float ] -> [a1: float ] - or t9, gp, r0 ;; [215] (set! t9-16 gp-1) - ;; [gp: (function float float float) ] -> [t9: (function float float float) ] - or a0, s5, r0 ;; [216] (set! a0-18 s5-0) [s5: float ] -> [a0: float ] - jalr ra, t9 ;; [217] (call! a0-18 a1-9) - ;; [a0: float a1: float t9: (function float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [218] (set! f0-22 (gpr->fpr v0-16)) [v0: float ] -> [] - lw t9, quaternion-rotate-y!(s7);; [219] (set! t9-17 quaternion-rotate-y!) - ;; [] -> [t9: (function quaternion quaternion float quaternion) ] - lwu v1, 108(s6) ;; [220] (set! v1-86 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a0, v1, 492 ;; [221] (set! a0-19 (+ v1-86 492)) [v1: control-info ] -> [a0: quaternion ] - lwu v1, 108(s6) ;; [222] (set! v1-87 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a1, v1, 492 ;; [223] (set! a1-10 (+ v1-87 492)) [v1: control-info ] -> [a1: quaternion ] - lui v1, L766 ;; [224] (set! v1-88 L766) [] -> [v1: ] - ori v1, v1, L766 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [225] (set! f1-4 (l.f v1-88)) [v1: ] -> [] - abs.s f0, f0 ;; [226] (set! f0-23 (abs.s f0-22)) [] -> [] - mul.s f0, f1, f0 ;; [227] (set! f0-24 (*.s f1-4 f0-23)) [] -> [] - mfc1 a2, f0 ;; [228] (set! a2-8 (fpr->gpr f0-24)) [] -> [a2: float ] - jalr ra, t9 ;; [229] (call! a0-19 a1-10 a2-8) - ;; [a0: quaternion a1: quaternion a2: float t9: (function quaternion quaternion float quaternion) ] -> [v0: quaternion ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [230] (set! v1-89 v0-17) [v0: quaternion ] -> [v1: quaternion ] -B18: -L152: - lwu s6, 44(s6) ;; [231] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [232] (set! v1-90 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [233] (set! v1-91 (l.wu (+ v1-90 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [234] (set! a0-20 (+ v1-91 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [235] (set! v1-92 (l.wu (+ a0-20 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [236] (set! v1-93 (l.wu (+ v1-92 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [237] (set! v1-94 (l.h (+ v1-93 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [238] (set! v1-95 (+ v1-94 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [239] (set! f0-25 (gpr->fpr v1-95)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [240] (set! f0-26 (i2f f0-25)) [] -> [] - swc1 f0, 24(a0) ;; [241] (s.f! (+ a0-20 24) f0-26) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [242] (set! v1-96 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [243] (set! f0-27 (l.f v1-96)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [244] (s.f! (+ a0-20 28) f0-27) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [245] (set! t9-18 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [246] (set! a1-11 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [247] (set! a2-9 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [248] (call! a0-20 a1-11 a2-9) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [249] (set! v1-97 v0-18) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [250] (set! t9-19 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [251] (set! a0-21 0) [] -> [a0: ] - jalr ra, t9 ;; [252] (call! a0-21) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L150 ;; [253] (b! (not v0-19) L150 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B19: - or v1, s7, r0 ;; [254] (set! v1-98 #f) [] -> [v1: '#f ] - lw t9, enter-state(s7) ;; [255] (set! t9-20 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [256] (set! a0-22 #f) [] -> [a0: '#f ] - lw v1, target-falling(s7) ;; [257] (set! v1-99 target-falling) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [258] (s.w! (+ self 72) v1-99) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [259] (call! a0-22) [a0: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 48(sp) - lq gp, 32(sp) - lq s5, 16(sp) - jr ra - daddiu sp, sp, 64 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-attack-air) - ((arg0 symbol)) - (ja-channel-push! 1 (seconds 0.075)) - (ja-no-eval :group! (-> self draw art-group data 56) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (compute-alignment! (-> self align)) - (align! (-> self align) (align-opts adjust-quat) (the-as float 1.0) (the-as float 1.0) (the-as float 1.0)) - (suspend) - (ja :num! (seek!)) - ) - (ja :group! (-> self draw art-group data 57) :num! min) - (let ((f30-0 393216.0)) - (let ((f0-8 (target-height-above-ground)) - (f1-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - ) - (while (not (or (and (< (fabs (/ f0-8 (* 0.0033333334 f1-1))) 150.0) (< f1-1 0.0)) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.7)) - ) - ) - (quaternion-rotate-y! - (-> self control unknown-quaternion00) - (-> self control unknown-quaternion00) - (* f30-0 (-> *display* seconds-per-frame)) - ) - (suspend) - (ja :num! (loop!)) - (set! f0-8 (target-height-above-ground)) - (set! f1-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - ) - ) - (ja-no-eval :group! (-> self draw art-group data 58) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (cond - ((< (ja-aframe-num 0) 32.0) - (quaternion-rotate-y! - (-> self control unknown-quaternion00) - (-> self control unknown-quaternion00) - (* f30-0 (-> *display* seconds-per-frame)) - ) - ) - (else - (let ((f0-22 - (deg-diff - (quaternion-y-angle (-> self control unknown-quaternion00)) - (quaternion-y-angle (-> self control dir-targ)) - ) - ) - ) - (quaternion-rotate-y! - (-> self control unknown-quaternion00) - (-> self control unknown-quaternion00) - (* 0.2 (fabs f0-22)) - ) - ) - ) - ) - (suspend) - (ja :num! (seek!)) - ) - ) - (go target-falling #f) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-attack-air) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x40, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 s4 -;; s6-0: target -L153: - daddiu sp, sp, -64 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s4, 16(sp) - sq s5, 32(sp) - sq gp, 48(sp) -B0: - lwu v1, 108(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [ 1] (set! v1-1 (l.d (+ v1-0 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - andi v1, v1, 1 ;; [ 2] (set! v1-2 (logand v1-1 1)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - beq v1, r0, L154 ;; [ 3] (b! (zero? v1-2) L154 (set! v1-3 #f)) [v1: cshape-moving-flags ] -> [v1: '#f ] - or v1, s7, r0 - -B1: - lwu a0, 108(s6) ;; [ 4] (set! a0-0 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu v1, -4(a0) ;; [ 5] (set! v1-4 (l.wu (+ a0-0 -4))) - ;; [a0: control-info ] -> [v1: ] - lwu t9, 88(v1) ;; [ 6] (set! t9-0 (l.wu (+ v1-4 88))) - ;; [v1: ] -> [t9: ] - lwu v1, 108(s6) ;; [ 7] (set! v1-5 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a1, v1, 108 ;; [ 8] (set! a1-0 (+ v1-5 108)) [v1: control-info ] -> [a1: quaternion ] - jalr ra, t9 ;; [ 9] (call! a0-0 a1-0) - ;; [a0: control-info a1: quaternion t9: ] -> [v0: quaternion ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 10] (set! v1-6 v0-0) [v0: quaternion ] -> [v1: quaternion ] - lw t9, enter-state(s7) ;; [ 11] (set! t9-1 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [ 12] (set! a0-1 #f) [] -> [a0: '#f ] - lw v1, target-hit-ground(s7);; [ 13] (set! v1-7 target-hit-ground) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [ 14] (s.w! (+ self 72) v1-7) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [ 15] (call! a0-1) [a0: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 16] (set! v1-8 v0-1) [v0: object ] -> [v1: object ] -B2: -L154: - lw v1, *display*(s7) ;; [ 17] (set! v1-9 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 18] (set! v1-10 (l.d (+ v1-9 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [ 19] (set! a0-2 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 20] (set! v1-11 (- v1-10 a0-2)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti v1, v1, 150 ;; [ 21] (b! (<.si v1-11 150) L155 (set! v1-12 #f)) [v1: time-frame ] -> [v1: '#f ] - bne v1, r0, L155 - or v1, s7, r0 - -B3: - lw t9, seek(s7) ;; [ 22] (set! t9-2 seek) [] -> [t9: (function float float float float) ] - lwu v1, 108(s6) ;; [ 23] (set! v1-13 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 24] (set! v1-14 (l.wu (+ v1-13 432))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f0, 8(v1) ;; [ 25] (set! f0-0 (l.f (+ v1-14 8))) [v1: dynamics ] -> [] - mfc1 a0, f0 ;; [ 26] (set! a0-3 (fpr->gpr f0-0)) [] -> [a0: meters ] - lwu v1, 108(s6) ;; [ 27] (set! v1-15 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 652(v1) ;; [ 28] (set! v1-16 (l.wu (+ v1-15 652))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f0, 8(v1) ;; [ 29] (set! f0-1 (l.f (+ v1-16 8))) [v1: dynamics ] -> [] - mfc1 a1, f0 ;; [ 30] (set! a1-1 (fpr->gpr f0-1)) [] -> [a1: meters ] - lui v1, L720 ;; [ 31] (set! v1-17 L720) [] -> [v1: ] - ori v1, v1, L720 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 32] (set! f0-2 (l.f v1-17)) [v1: ] -> [] - lw v1, *display*(s7) ;; [ 33] (set! v1-18 *display*) [] -> [v1: display ] - lwc1 f1, 904(v1) ;; [ 34] (set! f1-0 (l.f (+ v1-18 904))) [v1: display ] -> [] - mul.s f0, f0, f1 ;; [ 35] (set! f0-3 (*.s f0-2 f1-0)) [] -> [] - mfc1 a2, f0 ;; [ 36] (set! a2-0 (fpr->gpr f0-3)) [] -> [a2: float ] - jalr ra, t9 ;; [ 37] (call! a0-3 a1-1 a2-0) - ;; [a0: meters a1: meters a2: float t9: (function float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 38] (set! f0-4 (gpr->fpr v0-2)) [v0: float ] -> [] - lwu v1, 108(s6) ;; [ 39] (set! v1-19 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 40] (set! v1-20 (l.wu (+ v1-19 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 8(v1) ;; [ 41] (s.f! (+ v1-20 8) f0-4) [v1: dynamics ] -> [] - mfc1 v1, f0 ;; [ 42] (set! v1-21 (fpr->gpr f0-4)) [] -> [v1: float ] -B4: -L155: - lw v1, *display*(s7) ;; [ 43] (set! v1-22 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 44] (set! v1-23 (l.d (+ v1-22 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [ 45] (set! a0-4 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 46] (set! v1-24 (- v1-23 a0-4)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti v1, v1, 15 ;; [ 47] (set! a0-5 (>=.si v1-24 15)) [v1: time-frame ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L156 ;; [ 48] (bl! (not a0-5) L156 (no-delay!)) [a0: symbol ] -> [] -B5: - or v1, a0, r0 ;; [ 49] (set! v1-25 a0-5) [a0: symbol ] -> [v1: symbol ] - -B6: - lwu v1, 108(s6) ;; [ 50] (set! v1-26 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 51] (set! v1-27 (l.wu (+ v1-26 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 52] (set! a0-6 (+ v1-27 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 53] (set! v1-28 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 540 ;; [ 54] (set! v1-29 (+ v1-28 540)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [ 55] (set! f0-5 (vec3dot a0-6 v1-29)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 56] (set! v1-30 (fpr->gpr f0-5)) [] -> [v1: float ] - mtc1 f0, v1 ;; [ 57] (set! f0-6 (gpr->fpr v1-30)) [v1: float ] -> [] - lwu v1, 108(s6) ;; [ 58] (set! v1-31 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 59] (set! v1-32 (l.wu (+ v1-31 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 60] (set! a0-7 (+ v1-32 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 61] (set! v1-33 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 62] (set! v1-34 (+ v1-33 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f1, 0(a0) ;; [ 63] (set! f1-1 (vec3dot a0-7 v1-34)) [v1: vector a0: vector ] -> [] - lwc1 f2, 4(a0) - lwc1 f3, 8(a0) - lwc1 f4, 0(v1) - lwc1 f5, 4(v1) - lwc1 f6, 8(v1) - mula.s f1, f4 - madda.s f2, f5 - madd.s f1, f3, f6 - mfc1 v1, f1 ;; [ 64] (set! v1-35 (fpr->gpr f1-1)) [] -> [v1: float ] - mtc1 f1, v1 ;; [ 65] (set! f1-2 (gpr->fpr v1-35)) [v1: float ] -> [] - c.lt.s f0, f1 ;; [ 66] (b! (<.s f0-6 f1-2) L156 (set! v1-25 #t)) [] -> [v1: symbol ] - bc1t L156 - daddiu v1, s7, 8 - -B7: - or v1, s7, r0 ;; [ 67] (set! v1-25 #f) [] -> [v1: '#f ] -B8: -L156: - beq s7, v1, L157 ;; [ 68] (b! (not v1-25) L157 (set! v1-36 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B9: - lwu v1, 108(s6) ;; [ 69] (set! v1-37 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 652(v1) ;; [ 70] (set! v1-38 (l.wu (+ v1-37 652))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f0, 4(v1) ;; [ 71] (set! f0-7 (l.f (+ v1-38 4))) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [ 72] (set! v1-39 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 73] (set! v1-40 (l.wu (+ v1-39 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 4(v1) ;; [ 74] (s.f! (+ v1-40 4) f0-7) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [ 75] (set! v1-41 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 652(v1) ;; [ 76] (set! v1-42 (l.wu (+ v1-41 652))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f0, 8(v1) ;; [ 77] (set! f0-8 (l.f (+ v1-42 8))) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [ 78] (set! v1-43 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 79] (set! v1-44 (l.wu (+ v1-43 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 8(v1) ;; [ 80] (s.f! (+ v1-44 8) f0-8) [v1: dynamics ] -> [] - mfc1 v1, f0 ;; [ 81] (set! v1-45 (fpr->gpr f0-8)) [] -> [v1: meters ] -B10: -L157: - lwu v1, 140(s6) ;; [ 82] (set! v1-46 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lw v1, 36(v1) ;; [ 83] (set! v1-47 (l.w (+ v1-46 36))) [v1: fact-info-target ] -> [v1: pickup-type ] - daddiu v1, v1, -2 ;; [ 84] (set! v1-48 (+ v1-47 -2)) [v1: pickup-type ] -> [v1: ] - daddiu a0, s7, 8 ;; [ 85] (set! a0-8 (zero? v1-48)) [v1: ] -> [a0: symbol ] - movn a0, s7, v1 - beql s7, a0, L158 ;; [ 86] (bl! (not a0-8) L158 (no-delay!)) [a0: symbol ] -> [] -B11: - or v1, a0, r0 ;; [ 87] (set! v1-49 a0-8) [a0: symbol ] -> [v1: symbol ] - -B12: - lwu v1, 140(s6) ;; [ 88] (set! v1-50 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lwc1 f0, 40(v1) ;; [ 89] (set! f0-9 (l.f (+ v1-50 40))) [v1: fact-info-target ] -> [] - lui v1, L786 ;; [ 90] (set! v1-51 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 91] (set! f1-3 (l.f v1-51)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 92] (b! (>=.s f0-9 f1-3) L158 (set! v1-49 #t)) [] -> [v1: symbol ] - bc1f L158 - daddiu v1, s7, 8 - -B13: - or v1, s7, r0 ;; [ 93] (set! v1-49 #f) [] -> [v1: '#f ] -B14: -L158: - beq s7, v1, L159 ;; [ 94] (b! (not v1-49) L159 (set! v0-3 #f)) [v1: symbol ] -> [v0: '#f ] - or v0, s7, r0 - -B15: - lwu v1, 120(s6) ;; [ 95] (set! v1-52 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu gp, 36(v1) ;; [ 96] (set! gp-0 (l.wu (+ v1-52 36))) [v1: joint-control ] -> [gp: effect-control ] - lwu v1, -4(gp) ;; [ 97] (set! v1-53 (l.wu (+ gp-0 -4))) - ;; [gp: effect-control ] -> [v1: ] - lwu s5, 56(v1) ;; [ 98] (set! s5-0 (l.wu (+ v1-53 56))) - ;; [v1: ] -> [s5: ] - daddiu s4, s7, group-red-eco-spinkick;; [ 99] (set! s4-0 'group-red-eco-spinkick) [] -> [s4: symbol ] - lw t9, ja-frame-num(s7) ;; [100] (set! t9-3 ja-frame-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [101] (set! a0-9 0) [] -> [a0: ] - jalr ra, t9 ;; [102] (call! a0-9) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - or a2, v0, r0 ;; [103] (set! a2-1 v0-4) [v0: float ] -> [a2: float ] - addiu a3, r0, 70 ;; [104] (set! a3-0 70) [] -> [a3: ] - or t9, s5, r0 ;; [105] (set! t9-4 s5-0) - ;; [s5: ] -> [t9: ] - or a0, gp, r0 ;; [106] (set! a0-10 gp-0) [gp: effect-control ] -> [a0: effect-control ] - or a1, s4, r0 ;; [107] (set! a1-2 s4-0) [s4: symbol ] -> [a1: symbol ] - jalr ra, t9 ;; [108] (call! a0-10 a1-2 a2-1 a3-0) - ;; [a0: effect-control a1: symbol a2: float a3: t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [109] (set! v1-54 v0-5) [v0: object ] -> [v1: object ] - lw t9, cpad-set-buzz!(s7) ;; [110] (set! t9-5 cpad-set-buzz!) - ;; [] -> [t9: (function cpad-info int int time-frame none) ] - lw v1, *cpad-list*(s7) ;; [111] (set! v1-55 *cpad-list*) [] -> [v1: cpad-list ] - lwu a0, 4(v1) ;; [112] (set! a0-11 (l.wu (+ v1-55 4))) [v1: cpad-list ] -> [a0: cpad-info ] - addiu a1, r0, 1 ;; [113] (set! a1-3 1) [] -> [a1: ] - addiu a2, r0, 153 ;; [114] (set! a2-2 153) [] -> [a2: ] - addiu a3, r0, 30 ;; [115] (set! a3-1 30) [] -> [a3: ] - jalr ra, t9 ;; [116] (call! a0-11 a1-3 a2-2 a3-1) - ;; [a0: cpad-info a1: a2: a3: t9: (function cpad-info int int time-frame none) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, level-hint-spawn(s7);; [117] (set! t9-6 level-hint-spawn) - ;; [] -> [t9: (function game-text-id string entity process-tree game-task none) ] - addiu a0, r0, 678 ;; [118] (set! a0-12 678) [] -> [a0: ] - lui v1, L700 ;; [119] (set! a1-4 L700) [] -> [a1: ] "sksp0072" - ori v1, v1, L700 ;; "sksp0072" - daddu a1, v1, fp - or a2, s7, r0 ;; [120] (set! a2-3 #f) [] -> [a2: '#f ] - lw a3, *entity-pool*(s7) ;; [121] (set! a3-2 *entity-pool*) [] -> [a3: process-tree ] - addiu t0, r0, 0 ;; [122] (set! t0-0 0) [] -> [t0: ] - jalr ra, t9 ;; [123] (call! a0-12 a1-4 a2-3 a3-2 t0-0) - ;; [a0: a1: a2: '#f a3: process-tree t0: t9: (function game-text-id string entity process-tree game-task none) ] -> [v0: none ] - sll v0, ra, 0 - -B16: -L159: - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 48(sp) - lq s5, 32(sp) - lq s4, 16(sp) - jr ra - daddiu sp, sp, 64 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-attack-air) - () - (when (logtest? (-> self control status) (cshape-moving-flags onsurf)) - (set-quaternion! (-> self control) (-> self control dir-targ)) - (go target-hit-ground #f) - ) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5)) - (seek! - (-> self control dynam gravity-length) - (-> self control unknown-dynamics00 gravity-length) - (* 245760.0 (-> *display* seconds-per-frame)) - ) - ) - (when (and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control unknown-vector10)) - (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) - ) - ) - (set! (-> self control dynam gravity-max) (-> self control unknown-dynamics00 gravity-max)) - (set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length)) - ) - (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 70) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) - (level-hint-spawn - (game-text-id misty-eco-red-first-use) - "sksp0072" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (exit target-attack-air) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; s6-0: target -L160: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lwu v1, 108(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 652(v1) ;; [ 1] (set! v1-1 (l.wu (+ v1-0 652))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f0, 4(v1) ;; [ 2] (set! f0-0 (l.f (+ v1-1 4))) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [ 3] (set! v1-2 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 4] (set! v1-3 (l.wu (+ v1-2 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 4(v1) ;; [ 5] (s.f! (+ v1-3 4) f0-0) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [ 6] (set! v1-4 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 652(v1) ;; [ 7] (set! v1-5 (l.wu (+ v1-4 652))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f0, 8(v1) ;; [ 8] (set! f0-1 (l.f (+ v1-5 8))) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [ 9] (set! v1-6 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 10] (set! v1-7 (l.wu (+ v1-6 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 8(v1) ;; [ 11] (s.f! (+ v1-7 8) f0-1) [v1: dynamics ] -> [] - lw v1, target-attack(s7) ;; [ 12] (set! v1-8 target-attack) [] -> [v1: (state target) ] - lwu t9, 8(v1) ;; [ 13] (set! t9-0 (l.wu (+ v1-8 8))) [v1: (state target) ] -> [t9: (function none) ] - jalr ra, t9 ;; [ 14] (call!) [t9: (function none) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (exit target-attack-air) - () - (set! (-> self control dynam gravity-max) (-> self control unknown-dynamics00 gravity-max)) - (set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length)) - ((-> target-attack exit)) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-attack-air) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x60, fp? 1 ra? 1 ep? 1 - ;stack_vars: 48 bytes at 16 - ;gprs: gp - ;fprs: f30 -;; Warnings: -;; INFO: Return type mismatch vector vs none. -;; Used lq/sq - -;; a0-0: symbol s6-0: target gp-1: vector gp-2: vector f0-1: float f0-3: float f0-4: float f0-8: float -;; f0-9: float f1-2: float f1-5: float f1-11: float f2-0: float f2-7: float f30-0: float -L161: - daddiu sp, sp, -96 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq gp, 64(sp) - swc1 f30, 80(sp) -B0: - or gp, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: symbol ] -> [gp: symbol ] - lw v1, *display*(s7) ;; [ 1] (set! v1-0 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 2] (set! v1-1 (l.d (+ v1-0 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 3] (s.d! (+ self 164) v1-1) [v1: time-frame s6: target ] -> [] - addiu v1, r0, -8 ;; [ 4] (set! v1-2 -8) [] -> [v1: ] - lwu a0, 108(s6) ;; [ 5] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 268(a0) ;; [ 6] (set! a0-2 (l.d (+ a0-1 268))) [a0: control-info ] -> [a0: cshape-moving-flags ] - and v1, v1, a0 ;; [ 7] (set! v1-3 (logand v1-2 a0-2)) - ;; [v1: a0: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - lwu a0, 108(s6) ;; [ 8] (set! a0-3 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 268(a0) ;; [ 9] (s.d! (+ a0-3 268) v1-3) [v1: cshape-moving-flags a0: control-info ] -> [] - lw t9, target-start-attack(s7);; [ 10] (set! t9-0 target-start-attack) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 11] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, target-danger-set!(s7);; [ 12] (set! t9-1 target-danger-set!) - ;; [] -> [t9: (function symbol symbol float :behavior target) ] - daddiu a0, s7, spin-air ;; [ 13] (set! a0-4 'spin-air) [] -> [a0: symbol ] - or a1, s7, r0 ;; [ 14] (set! a1-0 #f) [] -> [a1: '#f ] - jalr ra, t9 ;; [ 15] (call! a0-4 a1-0) - ;; [a0: symbol a1: '#f t9: (function symbol symbol float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - lw v1, *jump-attack-mods*(s7);; [ 16] (set! v1-4 *jump-attack-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [ 17] (set! a0-5 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [ 18] (s.w! (+ a0-5 656) v1-4) [v1: surface a0: control-info ] -> [] - lwu v1, 108(s6) ;; [ 19] (set! v1-5 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 20] (set! v1-6 (l.wu (+ v1-5 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 21] (set! a0-6 (+ v1-6 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 22] (set! v1-7 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 23] (set! v1-8 (+ v1-7 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [ 24] (set! f0-0 (vec3dot a0-6 v1-8)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 25] (set! v1-9 (fpr->gpr f0-0)) [] -> [v1: float ] - mtc1 f0, v1 ;; [ 26] (set! f0-1 (gpr->fpr v1-9)) [v1: float ] -> [] - mtc1 f1, r0 ;; [ 27] (set! f1-0 0) [] -> [] - c.lt.s f1, f0 ;; [ 28] (b! (>=.s f1-0 f0-1) L162 (set! v1-10 #t)) [] -> [v1: symbol ] - bc1f L162 - daddiu v1, s7, 8 - -B1: - or v1, s7, r0 ;; [ 29] (set! v1-10 #f) [] -> [v1: '#f ] -B2: -L162: - bnel s7, v1, L163 ;; [ 30] (bl! (truthy v1-10) L163 (no-delay!)) [v1: symbol ] -> [] -B3: - or v1, v1, r0 ;; [ 31] (set! v1-11 v1-10) [v1: symbol ] -> [v1: symbol ] - -B4: - daddiu v1, s7, flop ;; [ 32] (set! v1-12 'flop) [] -> [v1: symbol ] - dsubu a0, gp, v1 ;; [ 33] (set! v1-11 (= arg0 v1-12)) [v1: symbol gp: symbol ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B5: -L163: - beq s7, v1, L164 ;; [ 34] (b! (not v1-11) L164 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B6: - daddiu gp, sp, 16 ;; [ 35] (set! gp-1 (+ sp-0 16)) [sp: ] -> [gp: vector ] - sq r0, 0(gp) ;; [ 36] (s.q! gp-1 0) [gp: vector ] -> [] - lwu v1, 108(s6) ;; [ 37] (set! v1-13 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 38] (set! v1-14 (l.wu (+ v1-13 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 39] (set! a0-7 (+ v1-14 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 40] (set! v1-15 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 41] (set! v1-16 (+ v1-15 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [ 42] (set! f0-2 (vec3dot a0-7 v1-16)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 43] (set! v1-17 (fpr->gpr f0-2)) [] -> [v1: float ] - mtc1 f0, v1 ;; [ 44] (set! f0-3 (gpr->fpr v1-17)) [v1: float ] -> [] - mtc1 f1, r0 ;; [ 45] (set! f1-1 0) [] -> [] - or v1, gp, r0 ;; [ 46] (set! v1-18 gp-1) [gp: vector ] -> [v1: vector ] - lwu a0, 108(s6) ;; [ 47] (set! a0-8 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 60 ;; [ 48] (set! a0-9 (+ a0-8 60)) [a0: control-info ] -> [a0: vector ] - or a1, gp, r0 ;; [ 49] (set! a1-1 gp-1) [gp: vector ] -> [a1: vector ] - lwu a2, 108(s6) ;; [ 50] (set! a2-0 (l.wu (+ self 108))) [s6: target ] -> [a2: control-info ] - lwu a2, 432(a2) ;; [ 51] (set! a2-1 (l.wu (+ a2-0 432))) [a2: control-info ] -> [a2: dynamics ] - daddiu a2, a2, 28 ;; [ 52] (set! a2-2 (+ a2-1 28)) [a2: dynamics ] -> [a2: vector ] - lqc2 vf1, 0(a2) ;; [ 53] (set! a1-2 (vector-float*!2 a1-1 a2-2 f0-3)) - ;; [a1: vector a2: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - lqc2 vf4, 0(a0) ;; [ 54] (set! v1-19 (vector-!2 v1-18 a0-9 a1-2)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf5, 0(a1) - vmove.w vf6, vf0 - vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lw t9, vector-length(s7) ;; [ 55] (set! t9-2 vector-length) [] -> [t9: (function vector float) ] - or a0, gp, r0 ;; [ 56] (set! a0-10 gp-1) [gp: vector ] -> [a0: vector ] - jalr ra, t9 ;; [ 57] (call! a0-10) [a0: vector t9: (function vector float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 58] (set! f0-4 (gpr->fpr v0-2)) [v0: float ] -> [] - mov.s f1, f0 ;; [ 59] (set! f1-2 f0-4) [] -> [] - lui v1, L773 ;; [ 60] (set! v1-20 L773) [] -> [v1: ] - ori v1, v1, L773 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [ 61] (set! f2-0 (l.f v1-20)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 62] (set! v1-21 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 63] (set! v1-22 (+ v1-21 60)) [v1: control-info ] -> [v1: vector ] - lwu a0, 108(s6) ;; [ 64] (set! a0-11 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 60 ;; [ 65] (set! a0-12 (+ a0-11 60)) [a0: control-info ] -> [a0: vector ] - lwu a1, 108(s6) ;; [ 66] (set! a1-3 (l.wu (+ self 108))) [s6: target ] -> [a1: control-info ] - lwu a1, 432(a1) ;; [ 67] (set! a1-4 (l.wu (+ a1-3 432))) [a1: control-info ] -> [a1: dynamics ] - daddiu a1, a1, 28 ;; [ 68] (set! a1-5 (+ a1-4 28)) [a1: dynamics ] -> [a1: vector ] - lqc2 vf1, 0(a1) ;; [ 69] (set! a0-13 (vector-float*!2 a0-12 a1-5 f2-0)) - ;; [a0: vector a1: vector ] -> [a0: vector ] - mfc1 a1, f2 - qmtc2.i vf2, a1 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a0) - or a1, gp, r0 ;; [ 70] (set! a1-6 gp-1) [gp: vector ] -> [a1: vector ] - div.s f0, f0, f1 ;; [ 71] (set! f0-5 (/.s f0-4 f1-2)) [] -> [] - lqc2 vf1, 0(gp) ;; [ 72] (set! a1-7 (vector-float*!2 a1-6 gp-1 f0-5)) - ;; [a1: vector gp: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - vmove.w vf6, vf0 ;; [ 73] (set! v1-23 (vector+!2 v1-22 a0-13 a1-7)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf4, 0(a0) - lqc2 vf5, 0(a1) - vadd.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - beq r0, r0, L167 ;; [ 74] (b! #t L167 (nop!)) [] -> [] - sll r0, r0, 0 - -B7: -L164: - lwu v1, 108(s6) ;; [ 75] (set! v1-24 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 76] (set! v1-25 (l.wu (+ v1-24 432))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f1, 8(v1) ;; [ 77] (set! f1-3 (l.f (+ v1-25 8))) [v1: dynamics ] -> [] - lw v1, *display*(s7) ;; [ 78] (set! v1-26 *display*) [] -> [v1: display ] - lwc1 f2, 904(v1) ;; [ 79] (set! f2-1 (l.f (+ v1-26 904))) [v1: display ] -> [] - mul.s f1, f1, f2 ;; [ 80] (set! f1-4 (*.s f1-3 f2-1)) [] -> [] - div.s f1, f0, f1 ;; [ 81] (set! f1-5 (/.s f0-1 f1-4)) [] -> [] - lui v1, L752 ;; [ 82] (set! v1-27 L752) [] -> [v1: ] - ori v1, v1, L752 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [ 83] (set! f2-2 (l.f v1-27)) [v1: ] -> [] - mul.s f1, f2, f1 ;; [ 84] (set! f1-6 (*.s f2-2 f1-5)) [] -> [] - lw v1, *display*(s7) ;; [ 85] (set! v1-28 *display*) [] -> [v1: display ] - lwc1 f2, 904(v1) ;; [ 86] (set! f2-3 (l.f (+ v1-28 904))) [v1: display ] -> [] - mul.s f1, f1, f2 ;; [ 87] (set! f1-7 (*.s f1-6 f2-3)) [] -> [] - mul.s f30, f1, f0 ;; [ 88] (set! f30-0 (*.s f1-7 f0-1)) [] -> [] - lwu v1, 120(s6) ;; [ 89] (set! v1-29 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 90] (set! v1-30 (l.w (+ v1-29 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 91] (b! (<=0.si v1-30) L165 (set! v1-31 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L165 - or v1, s7, r0 - -B8: - lwu v1, 120(s6) ;; [ 92] (set! v1-32 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 93] (set! v1-33 (l.wu (+ v1-32 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 94] (set! v1-31 (l.wu (+ v1-33 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B9: -L165: - lwu a0, 116(s6) ;; [ 95] (set! a0-14 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 96] (set! a0-15 (l.wu (+ a0-14 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 276(a0) ;; [ 97] (set! a0-16 (l.wu (+ a0-15 276))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 98] (set! a0-17 (= v1-31 a0-16)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L166 ;; [ 99] (b! (not a0-17) L166 (set! v1-34 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B10: - mtc1 f0, r0 ;; [100] (set! f0-6 0) [] -> [] - lw v1, *TARGET-bank*(s7) ;; [101] (set! v1-35 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f1, 48(v1) ;; [102] (set! f1-8 (l.f (+ v1-35 48))) [v1: target-bank ] -> [] - lwu v1, 108(s6) ;; [103] (set! v1-36 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [104] (set! v1-37 (l.wu (+ v1-36 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [105] (set! a0-18 (+ v1-37 28)) [v1: dynamics ] -> [a0: vector ] - daddiu v1, sp, 32 ;; [106] (set! v1-38 (+ sp-0 32)) [sp: ] -> [v1: vector ] - lwu a1, 108(s6) ;; [107] (set! a1-8 (l.wu (+ self 108))) [s6: target ] -> [a1: control-info ] - daddiu a1, a1, 12 ;; [108] (set! a1-9 (+ a1-8 12)) [a1: control-info ] -> [a1: vector ] - lwu a2, 108(s6) ;; [109] (set! a2-3 (l.wu (+ self 108))) [s6: target ] -> [a2: control-info ] - daddiu a2, a2, 1212 ;; [110] (set! a2-4 (+ a2-3 1212)) [a2: control-info ] -> [a2: vector ] - lqc2 vf4, 0(a1) ;; [111] (set! v1-39 (vector-!2 v1-38 a1-9 a2-4)) - ;; [v1: vector a1: vector a2: vector ] -> [v1: vector ] - lqc2 vf5, 0(a2) - vmove.w vf6, vf0 - vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lwc1 f2, 0(a0) ;; [112] (set! f2-4 (vec3dot a0-18 v1-39)) [v1: vector a0: vector ] -> [] - lwc1 f3, 4(a0) - lwc1 f4, 8(a0) - lwc1 f5, 0(v1) - lwc1 f6, 4(v1) - lwc1 f7, 8(v1) - mula.s f2, f5 - madda.s f3, f6 - madd.s f2, f4, f7 - mfc1 v1, f2 ;; [113] (set! v1-40 (fpr->gpr f2-4)) [] -> [v1: float ] - mtc1 f2, v1 ;; [114] (set! f2-5 (gpr->fpr v1-40)) [v1: float ] -> [] - sub.s f1, f1, f2 ;; [115] (set! f1-9 (-.s f1-8 f2-5)) [] -> [] - max.s f30, f0, f1 ;; [116] (set! f30-0 (max.s f0-6 f1-9)) [] -> [] - mfc1 v1, f30 ;; [117] (set! v1-41 (fpr->gpr f30-0)) [] -> [v1: float ] -B11: -L166: - daddiu gp, sp, 48 ;; [118] (set! gp-2 (+ sp-0 48)) [sp: ] -> [gp: vector ] - sq r0, 0(gp) ;; [119] (s.q! gp-2 0) [gp: vector ] -> [] - lwu v1, 108(s6) ;; [120] (set! v1-42 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [121] (set! v1-43 (l.wu (+ v1-42 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [122] (set! a0-19 (+ v1-43 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [123] (set! v1-44 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [124] (set! v1-45 (+ v1-44 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [125] (set! f0-7 (vec3dot a0-19 v1-45)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [126] (set! v1-46 (fpr->gpr f0-7)) [] -> [v1: float ] - mtc1 f0, v1 ;; [127] (set! f0-8 (gpr->fpr v1-46)) [v1: float ] -> [] - mtc1 f1, r0 ;; [128] (set! f1-10 0) [] -> [] - or v1, gp, r0 ;; [129] (set! v1-47 gp-2) [gp: vector ] -> [v1: vector ] - lwu a0, 108(s6) ;; [130] (set! a0-20 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 60 ;; [131] (set! a0-21 (+ a0-20 60)) [a0: control-info ] -> [a0: vector ] - or a1, gp, r0 ;; [132] (set! a1-10 gp-2) [gp: vector ] -> [a1: vector ] - lwu a2, 108(s6) ;; [133] (set! a2-5 (l.wu (+ self 108))) [s6: target ] -> [a2: control-info ] - lwu a2, 432(a2) ;; [134] (set! a2-6 (l.wu (+ a2-5 432))) [a2: control-info ] -> [a2: dynamics ] - daddiu a2, a2, 28 ;; [135] (set! a2-7 (+ a2-6 28)) [a2: dynamics ] -> [a2: vector ] - lqc2 vf1, 0(a2) ;; [136] (set! a1-11 (vector-float*!2 a1-10 a2-7 f0-8)) - ;; [a1: vector a2: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - lqc2 vf4, 0(a0) ;; [137] (set! v1-48 (vector-!2 v1-47 a0-21 a1-11)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf5, 0(a1) - vmove.w vf6, vf0 - vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lw t9, vector-length(s7) ;; [138] (set! t9-3 vector-length) [] -> [t9: (function vector float) ] - or a0, gp, r0 ;; [139] (set! a0-22 gp-2) [gp: vector ] -> [a0: vector ] - jalr ra, t9 ;; [140] (call! a0-22) [a0: vector t9: (function vector float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [141] (set! f0-9 (gpr->fpr v0-3)) [v0: float ] -> [] - mov.s f1, f0 ;; [142] (set! f1-11 f0-9) [] -> [] - lui v1, L797 ;; [143] (set! v1-49 L797) [] -> [v1: ] - ori v1, v1, L797 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [144] (set! f2-6 (l.f v1-49)) [v1: ] -> [] - lui v1, L720 ;; [145] (set! v1-50 L720) [] -> [v1: ] - ori v1, v1, L720 - addu v1, fp, v1 - lwc1 f3, 0(v1) ;; [146] (set! f3-0 (l.f v1-50)) [v1: ] -> [] - lui v1, L798 ;; [147] (set! v1-51 L798) [] -> [v1: ] - ori v1, v1, L798 - addu v1, fp, v1 - lwc1 f4, 0(v1) ;; [148] (set! f4-0 (l.f v1-51)) [v1: ] -> [] - add.s f4, f4, f30 ;; [149] (set! f4-1 (+.s f4-0 f30-0)) [] -> [] - mul.s f3, f3, f4 ;; [150] (set! f3-1 (*.s f3-0 f4-1)) [] -> [] - sqrt.s f3, f3 ;; [151] (set! f3-2 (sqrt.s f3-1)) [] -> [] - add.s f2, f2, f3 ;; [152] (set! f2-7 (+.s f2-6 f3-2)) [] -> [] - lwu v1, 108(s6) ;; [153] (set! v1-52 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [154] (set! v1-53 (+ v1-52 60)) [v1: control-info ] -> [v1: vector ] - lwu a0, 108(s6) ;; [155] (set! a0-23 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 60 ;; [156] (set! a0-24 (+ a0-23 60)) [a0: control-info ] -> [a0: vector ] - lwu a1, 108(s6) ;; [157] (set! a1-12 (l.wu (+ self 108))) [s6: target ] -> [a1: control-info ] - lwu a1, 432(a1) ;; [158] (set! a1-13 (l.wu (+ a1-12 432))) [a1: control-info ] -> [a1: dynamics ] - daddiu a1, a1, 28 ;; [159] (set! a1-14 (+ a1-13 28)) [a1: dynamics ] -> [a1: vector ] - lqc2 vf1, 0(a1) ;; [160] (set! a0-25 (vector-float*!2 a0-24 a1-14 f2-7)) - ;; [a0: vector a1: vector ] -> [a0: vector ] - mfc1 a1, f2 - qmtc2.i vf2, a1 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a0) - or a1, gp, r0 ;; [161] (set! a1-15 gp-2) [gp: vector ] -> [a1: vector ] - div.s f0, f0, f1 ;; [162] (set! f0-10 (/.s f0-9 f1-11)) [] -> [] - lqc2 vf1, 0(gp) ;; [163] (set! a1-16 (vector-float*!2 a1-15 gp-2 f0-10)) - ;; [a1: vector gp: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - vmove.w vf6, vf0 ;; [164] (set! v1-54 (vector+!2 v1-53 a0-25 a1-16)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf4, 0(a0) - lqc2 vf5, 0(a1) - vadd.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) -B12: -L167: - lui v1, L723 ;; [165] (set! v1-55 L723) [] -> [v1: ] - ori v1, v1, L723 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [166] (set! f0-11 (l.f v1-55)) [v1: ] -> [] - lwu v1, 108(s6) ;; [167] (set! v1-56 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [168] (set! v1-57 (l.wu (+ v1-56 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 8(v1) ;; [169] (s.f! (+ v1-57 8) f0-11) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [170] (set! v1-58 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v0, v1, 1212 ;; [171] (set! v0-4 (+ v1-58 1212)) [v1: control-info ] -> [v0: vector ] - lwu v1, 108(s6) ;; [172] (set! v1-59 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 12 ;; [173] (set! v1-60 (+ v1-59 12)) [v1: control-info ] -> [v1: vector ] - lq v1, 0(v1) ;; [174] (set! v1-61 (l.q v1-60)) [v1: vector ] -> [v1: uint128 ] - sq v1, 0(v0) ;; [175] (s.q! v0-4 v1-61) [v0: vector v1: uint128 ] -> [] - ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 80(sp) - lq gp, 64(sp) - jr ra - daddiu sp, sp, 96 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-attack-air) - ((arg0 symbol)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (target-start-attack) - (target-danger-set! 'spin-air #f) - (set! (-> self control unknown-surface00) *jump-attack-mods*) - (let ((f0-1 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) - (cond - ((or (>= 0.0 f0-1) (= arg0 'flop)) - (let ((gp-1 (new-stack-vector0))) - (let ((f0-3 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) - 0.0 - (vector-! gp-1 (-> self control transv) (vector-float*! gp-1 (-> self control dynam gravity-normal) f0-3)) - ) - (let* ((f0-4 (vector-length gp-1)) - (f1-2 f0-4) - (f2-0 33775.48) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-0) - (vector-float*! gp-1 gp-1 (/ f0-4 f1-2)) - ) - ) - ) - ) - (else - (let* ((f1-5 (/ f0-1 (* (-> self control dynam gravity-length) (-> *display* seconds-per-frame)))) - (f30-0 (* 0.5 f1-5 (-> *display* seconds-per-frame) f0-1)) - ) - (if (ja-group? (-> self draw art-group data 62)) - (set! f30-0 - (fmax - 0.0 - (- (-> *TARGET-bank* attack-jump-height-max) - (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) (-> self control trans) (-> self control unknown-vector52)) - ) - ) - ) - ) - ) - (let ((gp-2 (new-stack-vector0))) - (let ((f0-8 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) - 0.0 - (vector-! gp-2 (-> self control transv) (vector-float*! gp-2 (-> self control dynam gravity-normal) f0-8)) - ) - (let* ((f0-9 (vector-length gp-2)) - (f1-11 f0-9) - (f2-7 (+ 1024.0 (sqrtf (* 245760.0 (+ 2048.0 f30-0))))) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-7) - (vector-float*! gp-2 gp-2 (/ f0-9 f1-11)) - ) - ) - ) - ) - ) - ) - ) - (set! (-> self control dynam gravity-length) 122880.0) - (set! (-> self control unknown-vector52 quad) (-> self control trans quad)) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (event target-attack-air) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x50, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 - ;gprs: gp s5 s4 s3 -;; v0-0: object a0-0: process a1-0: int a2-0: symbol -;; a3-0: event-message-block -L168: - daddiu sp, sp, -80 - sd ra, 0(sp) - sq s3, 16(sp) - sq s4, 32(sp) - sq s5, 48(sp) - sq gp, 64(sp) -B0: - or gp, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: process ] -> [gp: process ] - or s5, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: int ] -> [s5: int ] - or s4, a2, r0 ;; [ 2] (set! arg2 arg2) [a2: symbol ] -> [s4: symbol ] - or s3, a3, r0 ;; [ 3] (set! arg3 arg3) [a3: event-message-block ] -> [s3: event-message-block ] - lw t9, target-bonk-event-handler(s7);; [ 4] (set! t9-0 target-bonk-event-handler) - ;; [] -> [t9: (function process int symbol event-message-block object :behavior target) ] - or a0, gp, r0 ;; [ 5] (set! a0-1 arg0) [gp: process ] -> [a0: process ] - or a1, s5, r0 ;; [ 6] (set! a1-1 arg1) [s5: int ] -> [a1: int ] - or a2, s4, r0 ;; [ 7] (set! a2-1 arg2) [s4: symbol ] -> [a2: symbol ] - or a3, s3, r0 ;; [ 8] (set! a3-1 arg3) [s3: event-message-block ] -> [a3: event-message-block ] - jalr ra, t9 ;; [ 9] (call! a0-1 a1-1 a2-1 a3-1) - ;; [a0: process a1: int a2: symbol a3: event-message-block t9: (function process int symbol event-message-block object :behavior target) ] -> [v0: object ] - sll v0, ra, 0 - - beq s7, v0, L169 ;; [ 10] (b! (not v0-0) L169 (nop!)) [v0: object ] -> [] - sll r0, r0, 0 - -B1: - beq r0, r0, L170 ;; [ 11] (b! #t L170 (nop!)) [] -> [] - sll r0, r0, 0 - -B2: -L169: - lw t9, target-dangerous-event-handler(s7);; [ 12] (set! t9-1 target-dangerous-event-handler) - ;; [] -> [t9: (function process int symbol event-message-block object :behavior target) ] - or a0, gp, r0 ;; [ 13] (set! a0-2 arg0) [gp: process ] -> [a0: process ] - or a1, s5, r0 ;; [ 14] (set! a1-2 arg1) [s5: int ] -> [a1: int ] - or a2, s4, r0 ;; [ 15] (set! a2-2 arg2) [s4: symbol ] -> [a2: symbol ] - or a3, s3, r0 ;; [ 16] (set! a3-2 arg3) [s3: event-message-block ] -> [a3: event-message-block ] - jalr ra, t9 ;; [ 17] (call! a0-2 a1-2 a2-2 a3-2) - ;; [a0: process a1: int a2: symbol a3: event-message-block t9: (function process int symbol event-message-block object :behavior target) ] -> [v0: object ] - sll v0, ra, 0 - -B3: -L170: - ld ra, 0(sp) - lq gp, 64(sp) - lq s5, 48(sp) - lq s4, 32(sp) - lq s3, 16(sp) - jr ra - daddiu sp, sp, 80 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (event target-attack-air) - ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (let ((v0-0 (target-bonk-event-handler arg0 arg1 arg2 arg3))) - (cond - (v0-0 - (empty) - v0-0 - ) - (else - (target-dangerous-event-handler arg0 arg1 arg2 arg3) - ) - ) - ) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-running-attack) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x50, fp? 1 ra? 1 ep? 1 - ;stack_vars: 16 bytes at 16 - ;gprs: gp s5 - ;fprs: f30 f28 f26 -;; Warnings: -;; INFO: Return type mismatch object vs none. -;; Used lq/sq - -;; v1-39: art-joint-anim v1-121: art-joint-anim s5-1: vector s6-0: target -;; gp-2: int f28-0: float f30-0: float -L171: - daddiu sp, sp, -80 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s5, 32(sp) - sq gp, 48(sp) - swc1 f26, 64(sp) - swc1 f28, 68(sp) - swc1 f30, 72(sp) -B0: - lwu v1, 152(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 152))) [s6: target ] -> [v1: water-control ] - lwu v1, 0(v1) ;; [ 1] (set! v1-1 (l.wu v1-0)) [v1: water-control ] -> [v1: water-flags ] - andi v1, v1, 512 ;; [ 2] (set! v1-2 (logand v1-1 512)) [v1: water-flags ] -> [v1: water-flags ] - beq v1, r0, L172 ;; [ 3] (b! (zero? v1-2) L172 (set! v1-3 #f)) [v1: water-flags ] -> [v1: '#f ] - or v1, s7, r0 - -B1: - lw gp, sound-play-by-name(s7);; [ 4] (set! gp-0 sound-play-by-name) - ;; [] -> [gp: (function sound-name sound-id int int int sound-group symbol sound-id) ] - lui v1, 101 ;; [ 5] (set! v1-4 #x656b6f) [] -> [v1: ] - ori v1, v1, 27503 - lui a0, L815 ;; [ 6] (set! a0-0 L815) [] -> [a0: ] - ori a0, a0, L815 - addu a0, fp, a0 - ld a0, 0(a0) ;; [ 7] (set! a0-1 (l.d a0-0)) [a0: ] -> [a0: uint ] - pcpyld s5, v1, a0 ;; [ 8] (set! s5-0 (pcypld v1-4 a0-1)) [v1: a0: uint ] -> [s5: uint ] - lw t9, new-sound-id(s7) ;; [ 9] (set! t9-0 new-sound-id) [] -> [t9: (function sound-id) ] - jalr ra, t9 ;; [ 10] (call!) [t9: (function sound-id) ] -> [v0: sound-id ] - sll v0, ra, 0 - - or a1, v0, r0 ;; [ 11] (set! a1-0 v0-0) [v0: sound-id ] -> [a1: sound-id ] - addiu a2, r0, 1024 ;; [ 12] (set! a2-0 1024) [] -> [a2: ] - addiu a3, r0, 0 ;; [ 13] (set! a3-0 0) [] -> [a3: ] - addiu t0, r0, 0 ;; [ 14] (set! t0-0 0) [] -> [t0: ] - addiu t1, r0, 1 ;; [ 15] (set! t1-0 1) [] -> [t1: ] - daddiu t2, s7, #t ;; [ 16] (set! t2-0 #t) [] -> [t2: symbol ] - or t9, gp, r0 ;; [ 17] (set! t9-1 gp-0) - ;; [gp: (function sound-name sound-id int int int sound-group symbol sound-id) ] -> [t9: (function sound-name sound-id int int int sound-group symbol sound-id) ] - por a0, s5, r0 ;; [ 18] (set! a0-2 s5-0) [s5: uint ] -> [a0: uint ] - jalr ra, t9 ;; [ 19] (call! a0-2 a1-0 a2-0 a3-0 t0-0 t1-0 t2-0) - ;; [a0: uint a1: sound-id a2: a3: t0: t1: t2: symbol t9: (function sound-name sound-id int int int sound-group symbol sound-id) ] -> [v0: sound-id ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 20] (set! v1-5 v0-1) [v0: sound-id ] -> [v1: sound-id ] -B2: -L172: - lw t9, ja-channel-push!(s7);; [ 21] (set! t9-2 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 22] (set! a0-3 1) [] -> [a0: ] - addiu a1, r0, 6 ;; [ 23] (set! a1-1 6) [] -> [a1: ] - jalr ra, t9 ;; [ 24] (call! a0-3 a1-1) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 25] (set! v1-6 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 26] (set! v1-7 (l.wu (+ v1-6 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [ 27] (set! gp-1 (+ v1-7 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lw t9, joint-control-channel-group-eval!(s7);; [ 28] (set! t9-3 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, gp, r0 ;; [ 29] (set! a0-4 gp-1) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 30] (set! v1-8 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 31] (set! v1-9 (l.wu (+ v1-8 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 264(v1) ;; [ 32] (set! a1-2 (l.wu (+ v1-9 264))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [ 33] (set! a2-1 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 34] (call! a0-4 a1-2 a2-1) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [ 35] (set! f0-0 0) [] -> [] - swc1 f0, 16(gp) ;; [ 36] (s.f! (+ gp-1 16) f0-0) [gp: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [ 37] (set! v1-10 (fpr->gpr f0-0)) [] -> [v1: float ] - lui v1, L724 ;; [ 38] (set! v1-11 L724) [] -> [v1: ] - ori v1, v1, L724 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 39] (set! f0-1 (l.f v1-11)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 40] (set! v1-12 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 41] (set! v1-13 (l.wu (+ v1-12 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 4(v1) ;; [ 42] (s.f! (+ v1-13 4) f0-1) [v1: dynamics ] -> [] - lui v1, L724 ;; [ 43] (set! v1-14 L724) [] -> [v1: ] - ori v1, v1, L724 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 44] (set! f0-2 (l.f v1-14)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 45] (set! v1-15 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 46] (set! v1-16 (l.wu (+ v1-15 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 8(v1) ;; [ 47] (s.f! (+ v1-16 8) f0-2) [v1: dynamics ] -> [] - mtc1 f28, r0 ;; [ 48] (set! f28-0 0) [] -> [] - lui v1, L786 ;; [ 49] (set! v1-17 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [ 50] (set! f30-0 (l.f v1-17)) [v1: ] -> [] - addiu gp, r0, 0 ;; [ 51] (set! gp-2 0) [] -> [gp: ] -B3: -L173: - lwu a0, 128(s6) ;; [ 52] (set! a0-5 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [ 53] (set! v1-18 (l.wu (+ a0-5 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 52(v1) ;; [ 54] (set! t9-4 (l.wu (+ v1-18 52))) - ;; [v1: ] -> [t9: ] - jalr ra, t9 ;; [ 55] (call! a0-5) - ;; [a0: align-control t9: ] -> [v0: transformq ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 56] (set! v1-19 v0-4) [v0: transformq ] -> [v1: transformq ] - lw t9, ja-min?(s7) ;; [ 57] (set! t9-5 ja-min?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 58] (set! a0-6 0) [] -> [a0: ] - jalr ra, t9 ;; [ 59] (call! a0-6) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - bne s7, v0, L188 ;; [ 60] (b! (truthy v0-5) L188 (set! v1-20 #f)) [v0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B4: - lw t9, ja-aframe-num(s7) ;; [ 61] (set! t9-6 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 62] (set! a0-7 0) [] -> [a0: ] - jalr ra, t9 ;; [ 63] (call! a0-7) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 64] (set! f0-3 (gpr->fpr v0-6)) [v0: float ] -> [] - lui v1, L747 ;; [ 65] (set! v1-21 L747) [] -> [v1: ] - ori v1, v1, L747 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 66] (set! f1-0 (l.f v1-21)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 67] (b! (>=.s f0-3 f1-0) L174 (set! v1-22 #t)) [] -> [v1: symbol ] - bc1f L174 - daddiu v1, s7, 8 - -B5: - or v1, s7, r0 ;; [ 68] (set! v1-22 #f) [] -> [v1: '#f ] -B6: -L174: - beql s7, v1, L179 ;; [ 69] (bl! (not v1-22) L179 (no-delay!)) [v1: symbol ] -> [] -B7: - or v1, v1, r0 ;; [ 70] (set! v1-23 v1-22) [v1: symbol ] -> [v1: symbol ] - -B8: - lwu v1, 108(s6) ;; [ 71] (set! v1-24 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [ 72] (set! v1-25 (l.d (+ v1-24 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - andi v1, v1, 1 ;; [ 73] (set! v1-26 (logand v1-25 1)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - bnel v1, r0, L178 ;; [ 74] (bl! (nonzero? v1-26) L178 (no-delay!)) [v1: cshape-moving-flags ] -> [] -B9: - or v1, s7, r0 ;; [ 75] (set! v1-27 #f) [] -> [v1: '#f ] - -B10: - lw v1, *display*(s7) ;; [ 76] (set! v1-28 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 77] (set! v1-29 (l.d (+ v1-28 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 78] (set! a0-8 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 1284(a0) ;; [ 79] (set! a0-9 (l.d (+ a0-8 1284))) [a0: control-info ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 80] (set! v1-30 (- v1-29 a0-9)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - lw a0, *TARGET-bank*(s7) ;; [ 81] (set! a0-10 *TARGET-bank*) [] -> [a0: target-bank ] - ld a0, 164(a0) ;; [ 82] (set! a0-11 (l.d (+ a0-10 164))) [a0: target-bank ] -> [a0: time-frame ] - slt v1, v1, a0 ;; [ 83] (set! a0-12 (>=.si v1-30 a0-11)) [v1: time-frame a0: time-frame ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L178 ;; [ 84] (bl! (not a0-12) L178 (no-delay!)) [a0: symbol ] -> [] -B11: - or v1, a0, r0 ;; [ 85] (set! v1-27 a0-12) [a0: symbol ] -> [v1: symbol ] - -B12: - mtc1 f0, r0 ;; [ 86] (set! f0-4 0) [] -> [] - lwu v1, 108(s6) ;; [ 87] (set! v1-31 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 88] (set! v1-32 (l.wu (+ v1-31 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 89] (set! a0-13 (+ v1-32 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 90] (set! v1-33 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 91] (set! v1-34 (+ v1-33 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f1, 0(a0) ;; [ 92] (set! f1-1 (vec3dot a0-13 v1-34)) [v1: vector a0: vector ] -> [] - lwc1 f2, 4(a0) - lwc1 f3, 8(a0) - lwc1 f4, 0(v1) - lwc1 f5, 4(v1) - lwc1 f6, 8(v1) - mula.s f1, f4 - madda.s f2, f5 - madd.s f1, f3, f6 - mfc1 v1, f1 ;; [ 93] (set! v1-35 (fpr->gpr f1-1)) [] -> [v1: float ] - mtc1 f1, v1 ;; [ 94] (set! f1-2 (gpr->fpr v1-35)) [v1: float ] -> [] - c.lt.s f0, f1 ;; [ 95] (b! (>=.s f0-4 f1-2) L175 (set! v1-36 #t)) [] -> [v1: symbol ] - bc1f L175 - daddiu v1, s7, 8 - -B13: - or v1, s7, r0 ;; [ 96] (set! v1-36 #f) [] -> [v1: '#f ] -B14: -L175: - beql s7, v1, L178 ;; [ 97] (bl! (not v1-36) L178 (no-delay!)) [v1: symbol ] -> [] -B15: - or v1, v1, r0 ;; [ 98] (set! v1-27 v1-36) [v1: symbol ] -> [v1: symbol ] - -B16: - lwu v1, 120(s6) ;; [ 99] (set! v1-37 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [100] (set! v1-38 (l.w (+ v1-37 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [101] (b! (<=0.si v1-38) L176 (set! v1-39 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L176 - or v1, s7, r0 - -B17: - lwu v1, 120(s6) ;; [102] (set! v1-40 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [103] (set! v1-41 (l.wu (+ v1-40 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [104] (set! v1-39 (l.wu (+ v1-41 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B18: -L176: - lwu a0, 116(s6) ;; [105] (set! a0-14 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [106] (set! a0-15 (l.wu (+ a0-14 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 264(a0) ;; [107] (set! a0-16 (l.wu (+ a0-15 264))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [108] (set! a1-3 (= v1-39 a0-16)) [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L177 ;; [109] (bl! (truthy a1-3) L177 (no-delay!)) [a1: symbol ] -> [] -B19: - or a0, a1, r0 ;; [110] (set! a0-17 a1-3) [a1: symbol ] -> [a0: symbol ] - -B20: - lwu a0, 116(s6) ;; [111] (set! a0-18 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [112] (set! a0-19 (l.wu (+ a0-18 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 268(a0) ;; [113] (set! a0-20 (l.wu (+ a0-19 268))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [114] (set! a1-4 (= v1-39 a0-20)) [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L177 ;; [115] (bl! (truthy a1-4) L177 (no-delay!)) [a1: symbol ] -> [] -B21: - or a0, a1, r0 ;; [116] (set! a0-17 a1-4) [a1: symbol ] -> [a0: symbol ] - -B22: - lwu a0, 116(s6) ;; [117] (set! a0-21 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [118] (set! a0-22 (l.wu (+ a0-21 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 272(a0) ;; [119] (set! a0-23 (l.wu (+ a0-22 272))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [120] (set! a0-17 (= v1-39 a0-23)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B23: -L177: - beql s7, a0, L178 ;; [121] (bl! (not a0-17) L178 (no-delay!)) [a0: symbol ] -> [] -B24: - daddiu v1, s7, 8 ;; [122] (set! v1-27 #t) [] -> [v1: symbol ] - -B25: - lui v1, L726 ;; [123] (set! v1-42 L726) [] -> [v1: ] - ori v1, v1, L726 - addu v1, fp, v1 - lwc1 f26, 0(v1) ;; [124] (set! f26-0 (l.f v1-42)) [v1: ] -> [] - lw t9, target-height-above-ground(s7);; [125] (set! t9-7 target-height-above-ground) - ;; [] -> [t9: (function float :behavior target) ] - jalr ra, t9 ;; [126] (call!) [t9: (function float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [127] (set! f0-5 (gpr->fpr v0-7)) [v0: float ] -> [] - c.lt.s f26, f0 ;; [128] (b! (<.s f26-0 f0-5) L178 (set! v1-27 #t)) [] -> [v1: symbol ] - bc1t L178 - daddiu v1, s7, 8 - -B26: - or v1, s7, r0 ;; [129] (set! v1-27 #f) [] -> [v1: '#f ] -B27: -L178: - beql s7, v1, L179 ;; [130] (bl! (not v1-27) L179 (no-delay!)) [v1: symbol ] -> [] -B28: - or v1, v1, r0 ;; [131] (set! v1-23 v1-27) [v1: symbol ] -> [v1: symbol ] - -B29: - lw v1, *display*(s7) ;; [132] (set! v1-43 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [133] (set! v1-44 (l.d (+ v1-43 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [134] (set! a0-24 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 2180(a0) ;; [135] (set! a0-25 (l.wu (+ a0-24 2180))) [a0: control-info ] -> [a0: uint ] - dsubu v1, v1, a0 ;; [136] (set! v1-45 (- v1-44 a0-25)) [v1: time-frame a0: uint ] -> [v1: time-frame ] - sltiu a0, v1, 12 ;; [137] (set! v1-23 (>=.ui v1-45 12)) [v1: time-frame ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B30: -L179: - beq s7, v1, L180 ;; [138] (b! (not v1-23) L180 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B31: - lw t9, enter-state(s7) ;; [139] (set! t9-8 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [140] (set! a0-26 #f) [] -> [a0: '#f ] - lw v1, target-falling(s7) ;; [141] (set! v1-46 target-falling) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [142] (s.w! (+ self 72) v1-46) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [143] (call! a0-26) [a0: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [144] (set! v1-47 v0-8) [v0: object ] -> [v1: object ] - beq r0, r0, L188 ;; [145] (b! #t L188 (nop!)) [] -> [] - sll r0, r0, 0 - -B32: -L180: - lwu v1, 108(s6) ;; [146] (set! v1-48 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 2184(v1) ;; [147] (set! v1-49 (l.wu (+ v1-48 2184))) [v1: control-info ] -> [v1: uint ] - beql v1, r0, L181 ;; [148] (bl! (zero? v1-49) L181 (no-delay!)) [v1: uint ] -> [] -B33: - or v1, s7, r0 ;; [149] (set! v1-50 #f) [] -> [v1: '#f ] - -B34: - lw v1, *display*(s7) ;; [150] (set! v1-51 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [151] (set! v1-52 (l.d (+ v1-51 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [152] (set! a0-27 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 2184(a0) ;; [153] (set! a0-28 (l.wu (+ a0-27 2184))) [a0: control-info ] -> [a0: uint ] - dsubu v1, v1, a0 ;; [154] (set! v1-53 (- v1-52 a0-28)) [v1: time-frame a0: uint ] -> [v1: time-frame ] - sltiu a0, v1, 12 ;; [155] (set! v1-50 (>=.ui v1-53 12)) [v1: time-frame ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B35: -L181: - beq s7, v1, L182 ;; [156] (b! (not v1-50) L182 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B36: - lw t9, set-forward-vel(s7);; [157] (set! t9-9 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - lui v1, L814 ;; [158] (set! v1-54 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a0, 0(v1) ;; [159] (set! a0-29 (l.w v1-54)) [v1: ] -> [a0: int ] - jalr ra, t9 ;; [160] (call! a0-29) - ;; [a0: int t9: (function float vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [161] (set! v1-55 v0-9) [v0: vector ] -> [v1: vector ] - beq r0, r0, L188 ;; [162] (b! #t L188 (nop!)) [] -> [] - sll r0, r0, 0 - -B37: -L182: - lwu v1, 108(s6) ;; [163] (set! v1-56 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [164] (set! v1-57 (l.wu (+ v1-56 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [165] (set! v1-58 (l.w (+ v1-57 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [166] (set! v1-59 (sll v1-58 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [167] (set! a0-30 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [168] (set! v1-60 (+ v1-59 a0-30)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [169] (set! v1-61 (l.wu (+ v1-60 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 40(v1) ;; [170] (set! v1-62 (l.wu (+ v1-61 40))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 32768 ;; [171] (set! v1-63 (logand v1-62 #x8000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - bnel v1, r0, L183 ;; [172] (bl! (nonzero? v1-63) L183 (no-delay!)) [v1: pad-buttons ] -> [] -B38: - or v1, s7, r0 ;; [173] (set! v1-64 #f) [] -> [v1: '#f ] - -B39: - lw v1, *display*(s7) ;; [174] (set! v1-65 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [175] (set! v1-66 (l.d (+ v1-65 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [176] (set! a0-31 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [177] (set! v1-67 (- v1-66 a0-31)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti a0, v1, 15 ;; [178] (set! v1-64 (>=.si v1-67 15)) [v1: time-frame ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B40: -L183: - beq s7, v1, L186 ;; [179] (b! (not v1-64) L186 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B41: - addiu v1, r0, 1 ;; [180] (set! v1-68 1) [] -> [v1: ] - lwu a0, 108(s6) ;; [181] (set! a0-32 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 260(a0) ;; [182] (set! a0-33 (l.wu (+ a0-32 260))) [a0: control-info ] -> [a0: pat-surface ] - dsll32 a0, a0, 20 ;; [183] (set! a0-34 (sll a0-33 52)) [a0: pat-surface ] -> [a0: ( << 52) ] - dsrl32 a0, a0, 26 ;; [184] (set! a0-35 (srl a0-34 58)) [a0: ( << 52) ] -> [a0: pat-material ] - bne a0, v1, L184 ;; [185] (b! (!= a0-35 v1-68) L184 (nop!)) [v1: a0: pat-material ] -> [] - sll r0, r0, 0 - -B42: - lw t9, set-forward-vel(s7);; [186] (set! t9-10 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - lui v1, L733 ;; [187] (set! v1-69 L733) [] -> [v1: ] - ori v1, v1, L733 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [188] (set! f0-6 (l.f v1-69)) [v1: ] -> [] - lui v1, L764 ;; [189] (set! v1-70 L764) [] -> [v1: ] - ori v1, v1, L764 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [190] (set! f1-3 (l.f v1-70)) [v1: ] -> [] - lwu v1, 108(s6) ;; [191] (set! v1-71 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f2, 528(v1) ;; [192] (set! f2-0 (l.f (+ v1-71 528))) [v1: control-info ] -> [] - mul.s f1, f1, f2 ;; [193] (set! f1-4 (*.s f1-3 f2-0)) [] -> [] - max.s f0, f0, f1 ;; [194] (set! f0-7 (max.s f0-6 f1-4)) [] -> [] - mfc1 a0, f0 ;; [195] (set! a0-36 (fpr->gpr f0-7)) [] -> [a0: float ] - jalr ra, t9 ;; [196] (call! a0-36) - ;; [a0: float t9: (function float vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [197] (set! v1-72 v0-10) [v0: vector ] -> [v1: vector ] - beq r0, r0, L185 ;; [198] (b! #t L185 (nop!)) [] -> [] - sll r0, r0, 0 - -B43: -L184: - lw t9, set-forward-vel(s7);; [199] (set! t9-11 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - lui v1, L764 ;; [200] (set! v1-73 L764) [] -> [v1: ] - ori v1, v1, L764 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [201] (set! f0-8 (l.f v1-73)) [v1: ] -> [] - lwu v1, 108(s6) ;; [202] (set! v1-74 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 528(v1) ;; [203] (set! f1-5 (l.f (+ v1-74 528))) [v1: control-info ] -> [] - mul.s f0, f0, f1 ;; [204] (set! f0-9 (*.s f0-8 f1-5)) [] -> [] - mfc1 a0, f0 ;; [205] (set! a0-37 (fpr->gpr f0-9)) [] -> [a0: float ] - jalr ra, t9 ;; [206] (call! a0-37) - ;; [a0: float t9: (function float vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [207] (set! v1-75 v0-11) [v0: vector ] -> [v1: vector ] -B44: -L185: - beq r0, r0, L188 ;; [208] (b! #t L188 (nop!)) [] -> [] - sll r0, r0, 0 - -B45: -L186: - lw t9, ja-done?(s7) ;; [209] (set! t9-12 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [210] (set! a0-38 0) [] -> [a0: ] - jalr ra, t9 ;; [211] (call! a0-38) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L187 ;; [212] (b! (not v0-12) L187 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B46: - lw t9, set-forward-vel(s7);; [213] (set! t9-13 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - mfc1 a0, f28 ;; [214] (set! a0-39 (fpr->gpr f28-0)) [] -> [a0: float ] - jalr ra, t9 ;; [215] (call! a0-39) - ;; [a0: float t9: (function float vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [216] (set! v1-76 v0-13) [v0: vector ] -> [v1: vector ] - beq r0, r0, L188 ;; [217] (b! #t L188 (nop!)) [] -> [] - sll r0, r0, 0 - -B47: -L187: - lw t9, target-align-vel-z-adjust(s7);; [218] (set! t9-14 target-align-vel-z-adjust) - ;; [] -> [t9: (function float float :behavior target) ] - lwu v1, 128(s6) ;; [219] (set! v1-77 (l.wu (+ self 128))) [s6: target ] -> [v1: align-control ] - lwc1 f0, 260(v1) ;; [220] (set! f0-10 (l.f (+ v1-77 260))) [v1: align-control ] -> [] - mfc1 a0, f0 ;; [221] (set! a0-40 (fpr->gpr f0-10)) [] -> [a0: float ] - jalr ra, t9 ;; [222] (call! a0-40) - ;; [a0: float t9: (function float float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [223] (set! f0-11 (gpr->fpr v0-14)) [v0: float ] -> [] - lw v1, *display*(s7) ;; [224] (set! v1-78 *display*) [] -> [v1: display ] - lwc1 f1, 908(v1) ;; [225] (set! f1-6 (l.f (+ v1-78 908))) [v1: display ] -> [] - mul.s f0, f0, f1 ;; [226] (set! f0-12 (*.s f0-11 f1-6)) [] -> [] - mul.s f28, f0, f30 ;; [227] (set! f28-0 (*.s f0-12 f30-0)) [] -> [] - lw t9, set-forward-vel(s7);; [228] (set! t9-15 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - mfc1 a0, f28 ;; [229] (set! a0-41 (fpr->gpr f28-0)) [] -> [a0: float ] - jalr ra, t9 ;; [230] (call! a0-41) - ;; [a0: float t9: (function float vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [231] (set! v1-79 v0-15) [v0: vector ] -> [v1: vector ] -B48: -L188: - daddiu s5, sp, 16 ;; [232] (set! s5-1 (+ sp-0 16)) [sp: ] -> [s5: vector ] - sq r0, 0(s5) ;; [233] (s.q! s5-1 0) [s5: vector ] -> [] - lw t9, vector-matrix*!(s7);; [234] (set! t9-16 vector-matrix*!) [] -> [t9: (function vector vector matrix vector) ] - or a0, s5, r0 ;; [235] (set! a0-42 s5-1) [s5: vector ] -> [a0: vector ] - lwu v1, 108(s6) ;; [236] (set! v1-80 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a1, v1, 60 ;; [237] (set! a1-5 (+ v1-80 60)) [v1: control-info ] -> [a1: vector ] - lwu v1, 108(s6) ;; [238] (set! v1-81 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a2, v1, 924 ;; [239] (set! a2-2 (+ v1-81 924)) [v1: control-info ] -> [a2: matrix ] - jalr ra, t9 ;; [240] (call! a0-42 a1-5 a2-2) - ;; [a0: vector a1: vector a2: matrix t9: (function vector vector matrix vector) ] -> [v0: vector ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [241] (set! f0-13 0) [] -> [] - swc1 f0, 4(s5) ;; [242] (s.f! (+ s5-1 4) f0-13) [s5: vector ] -> [] - lw t9, vector-matrix*!(s7);; [243] (set! t9-17 vector-matrix*!) [] -> [t9: (function vector vector matrix vector) ] - lwu v1, 108(s6) ;; [244] (set! v1-82 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a0, v1, 18924 ;; [245] (set! a0-43 (+ v1-82 #x49ec)) [v1: control-info ] -> [a0: vector ] - lwu v1, 108(s6) ;; [246] (set! v1-83 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a2, v1, 988 ;; [247] (set! a2-3 (+ v1-83 988)) [v1: control-info ] -> [a2: matrix ] - or a1, s5, r0 ;; [248] (set! a1-6 s5-1) [s5: vector ] -> [a1: vector ] - jalr ra, t9 ;; [249] (call! a0-43 a1-6 a2-3) - ;; [a0: vector a1: vector a2: matrix t9: (function vector vector matrix vector) ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [250] (set! v1-84 v0-17) [v0: vector ] -> [v1: vector ] - lwu s6, 44(s6) ;; [251] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [252] (set! v1-85 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [253] (set! v1-86 (l.wu (+ v1-85 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [254] (set! a0-44 (+ v1-86 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [255] (set! v1-87 (l.wu (+ a0-44 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [256] (set! v1-88 (l.wu (+ v1-87 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [257] (set! v1-89 (l.h (+ v1-88 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [258] (set! v1-90 (+ v1-89 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [259] (set! f0-14 (gpr->fpr v1-90)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [260] (set! f0-15 (i2f f0-14)) [] -> [] - swc1 f0, 24(a0) ;; [261] (s.f! (+ a0-44 24) f0-15) [a0: joint-control-channel ] -> [] - lwu v1, 108(s6) ;; [262] (set! v1-91 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 660(v1) ;; [263] (set! v1-92 (l.wu (+ v1-91 660))) [v1: control-info ] -> [v1: surface ] - lwc1 f0, 88(v1) ;; [264] (set! f0-16 (l.f (+ v1-92 88))) [v1: surface ] -> [] - swc1 f0, 28(a0) ;; [265] (s.f! (+ a0-44 28) f0-16) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [266] (set! t9-18 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [267] (set! a1-7 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [268] (set! a2-4 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [269] (call! a0-44 a1-7 a2-4) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [270] (set! v1-93 v0-18) [v0: int ] -> [v1: int ] - lw v1, *display*(s7) ;; [271] (set! v1-94 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [272] (set! v1-95 (l.d (+ v1-94 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [273] (set! a0-45 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [274] (set! v1-96 (- v1-95 a0-45)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti v1, v1, 30 ;; [275] (b! (<.si v1-96 30) L189 (set! v1-97 #f)) [v1: time-frame ] -> [v1: '#f ] - bne v1, r0, L189 - or v1, s7, r0 - -B49: - mtc1 f0, r0 ;; [276] (set! f0-17 0) [] -> [] - lw v1, *run-attack-mods*(s7);; [277] (set! v1-98 *run-attack-mods*) [] -> [v1: surface ] - swc1 f0, 8(v1) ;; [278] (s.f! (+ v1-98 8) f0-17) [v1: surface ] -> [] - mfc1 v1, f0 ;; [279] (set! v1-99 (fpr->gpr f0-17)) [] -> [v1: float ] -B50: -L189: - addiu v1, r0, 2 ;; [280] (set! v1-100 2) [] -> [v1: ] - slt v1, v1, gp ;; [281] (b! (>=.si v1-100 gp-2) L190 (set! v1-101 #f)) - ;; [v1: gp: int ] -> [v1: '#f ] - beq v1, r0, L190 - or v1, s7, r0 - -B51: - lui v1, L786 ;; [282] (set! v1-102 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [283] (set! f0-18 (l.f v1-102)) [v1: ] -> [] - lwu v1, 108(s6) ;; [284] (set! v1-103 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 18940(v1) ;; [285] (set! f1-7 (l.f (+ v1-103 #x49fc))) [v1: control-info ] -> [] - min.s f0, f0, f1 ;; [286] (set! f0-19 (min.s f0-18 f1-7)) [] -> [] - mul.s f30, f30, f0 ;; [287] (set! f30-0 (*.s f30-0 f0-19)) [] -> [] - mfc1 v1, f30 ;; [288] (set! v1-104 (fpr->gpr f30-0)) [] -> [v1: float ] -B52: -L190: - daddiu gp, gp, 1 ;; [289] (set! gp-2 (+ gp-2 1)) [gp: int ] -> [gp: ] - lw t9, ja-done?(s7) ;; [290] (set! t9-19 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [291] (set! a0-46 0) [] -> [a0: ] - jalr ra, t9 ;; [292] (call! a0-46) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L173 ;; [293] (b! (not v0-19) L173 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B53: - or v1, s7, r0 ;; [294] (set! v1-105 #f) [] -> [v1: '#f ] - lwu v1, 108(s6) ;; [295] (set! v1-106 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [296] (set! v1-107 (l.d (+ v1-106 268))) - ;; [v1: control-info ] -> [v1: cshape-moving-flags ] - andi v1, v1, 1 ;; [297] (set! v1-108 (logand v1-107 1)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - bnel v1, r0, L194 ;; [298] (bl! (nonzero? v1-108) L194 (no-delay!)) [v1: cshape-moving-flags ] -> [] -B54: - or v1, s7, r0 ;; [299] (set! v1-109 #f) [] -> [v1: '#f ] - -B55: - lw v1, *display*(s7) ;; [300] (set! v1-110 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [301] (set! v1-111 (l.d (+ v1-110 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [302] (set! a0-47 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 1284(a0) ;; [303] (set! a0-48 (l.d (+ a0-47 1284))) [a0: control-info ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [304] (set! v1-112 (- v1-111 a0-48)) - ;; [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - lw a0, *TARGET-bank*(s7) ;; [305] (set! a0-49 *TARGET-bank*) [] -> [a0: target-bank ] - ld a0, 164(a0) ;; [306] (set! a0-50 (l.d (+ a0-49 164))) [a0: target-bank ] -> [a0: time-frame ] - slt v1, v1, a0 ;; [307] (set! a0-51 (>=.si v1-112 a0-50)) - ;; [v1: time-frame a0: time-frame ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L194 ;; [308] (bl! (not a0-51) L194 (no-delay!)) [a0: symbol ] -> [] -B56: - or v1, a0, r0 ;; [309] (set! v1-109 a0-51) [a0: symbol ] -> [v1: symbol ] - -B57: - mtc1 f0, r0 ;; [310] (set! f0-20 0) [] -> [] - lwu v1, 108(s6) ;; [311] (set! v1-113 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [312] (set! v1-114 (l.wu (+ v1-113 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [313] (set! a0-52 (+ v1-114 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [314] (set! v1-115 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [315] (set! v1-116 (+ v1-115 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f1, 0(a0) ;; [316] (set! f1-8 (vec3dot a0-52 v1-116)) [v1: vector a0: vector ] -> [] - lwc1 f2, 4(a0) - lwc1 f3, 8(a0) - lwc1 f4, 0(v1) - lwc1 f5, 4(v1) - lwc1 f6, 8(v1) - mula.s f1, f4 - madda.s f2, f5 - madd.s f1, f3, f6 - mfc1 v1, f1 ;; [317] (set! v1-117 (fpr->gpr f1-8)) [] -> [v1: float ] - mtc1 f1, v1 ;; [318] (set! f1-9 (gpr->fpr v1-117)) [v1: float ] -> [] - c.lt.s f0, f1 ;; [319] (b! (>=.s f0-20 f1-9) L191 (set! v1-118 #t)) [] -> [v1: symbol ] - bc1f L191 - daddiu v1, s7, 8 - -B58: - or v1, s7, r0 ;; [320] (set! v1-118 #f) [] -> [v1: '#f ] -B59: -L191: - beql s7, v1, L194 ;; [321] (bl! (not v1-118) L194 (no-delay!)) [v1: symbol ] -> [] -B60: - or v1, v1, r0 ;; [322] (set! v1-109 v1-118) [v1: symbol ] -> [v1: symbol ] - -B61: - lwu v1, 120(s6) ;; [323] (set! v1-119 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [324] (set! v1-120 (l.w (+ v1-119 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [325] (b! (<=0.si v1-120) L192 (set! v1-121 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L192 - or v1, s7, r0 - -B62: - lwu v1, 120(s6) ;; [326] (set! v1-122 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [327] (set! v1-123 (l.wu (+ v1-122 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [328] (set! v1-121 (l.wu (+ v1-123 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B63: -L192: - lwu a0, 116(s6) ;; [329] (set! a0-53 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [330] (set! a0-54 (l.wu (+ a0-53 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 264(a0) ;; [331] (set! a0-55 (l.wu (+ a0-54 264))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [332] (set! a1-8 (= v1-121 a0-55)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L193 ;; [333] (bl! (truthy a1-8) L193 (no-delay!)) [a1: symbol ] -> [] -B64: - or a0, a1, r0 ;; [334] (set! a0-56 a1-8) [a1: symbol ] -> [a0: symbol ] - -B65: - lwu a0, 116(s6) ;; [335] (set! a0-57 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [336] (set! a0-58 (l.wu (+ a0-57 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 268(a0) ;; [337] (set! a0-59 (l.wu (+ a0-58 268))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [338] (set! a1-9 (= v1-121 a0-59)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L193 ;; [339] (bl! (truthy a1-9) L193 (no-delay!)) [a1: symbol ] -> [] -B66: - or a0, a1, r0 ;; [340] (set! a0-56 a1-9) [a1: symbol ] -> [a0: symbol ] - -B67: - lwu a0, 116(s6) ;; [341] (set! a0-60 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [342] (set! a0-61 (l.wu (+ a0-60 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 272(a0) ;; [343] (set! a0-62 (l.wu (+ a0-61 272))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [344] (set! a0-56 (= v1-121 a0-62)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B68: -L193: - beql s7, a0, L194 ;; [345] (bl! (not a0-56) L194 (no-delay!)) [a0: symbol ] -> [] -B69: - daddiu v1, s7, 8 ;; [346] (set! v1-109 #t) [] -> [v1: symbol ] - -B70: - lui v1, L726 ;; [347] (set! v1-124 L726) [] -> [v1: ] - ori v1, v1, L726 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [348] (set! f30-1 (l.f v1-124)) [v1: ] -> [] - lw t9, target-height-above-ground(s7);; [349] (set! t9-20 target-height-above-ground) - ;; [] -> [t9: (function float :behavior target) ] - jalr ra, t9 ;; [350] (call!) [t9: (function float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [351] (set! f0-21 (gpr->fpr v0-20)) [v0: float ] -> [] - c.lt.s f30, f0 ;; [352] (b! (<.s f30-1 f0-21) L194 (set! v1-109 #t)) [] -> [v1: symbol ] - bc1t L194 - daddiu v1, s7, 8 - -B71: - or v1, s7, r0 ;; [353] (set! v1-109 #f) [] -> [v1: '#f ] -B72: -L194: - beq s7, v1, L195 ;; [354] (b! (not v1-109) L195 (set! v1-125 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B73: - lw t9, enter-state(s7) ;; [355] (set! t9-21 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [356] (set! a0-63 #f) [] -> [a0: '#f ] - lw v1, target-falling(s7) ;; [357] (set! v1-126 target-falling) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [358] (s.w! (+ self 72) v1-126) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [359] (call! a0-63) [a0: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [360] (set! v1-127 v0-21) [v0: object ] -> [v1: object ] -B74: -L195: - lw t9, enter-state(s7) ;; [361] (set! t9-22 enter-state) [] -> [t9: ] - lw v1, target-stance(s7) ;; [362] (set! v1-128 target-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [363] (s.w! (+ self 72) v1-128) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [364] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 72(sp) - lwc1 f28, 68(sp) - lwc1 f26, 64(sp) - lq gp, 48(sp) - lq s5, 32(sp) - jr ra - daddiu sp, sp, 80 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-running-attack) - () - (if (logtest? (-> self water flags) (water-flags wt09)) - (sound-play "swim-stroke") - ) - (ja-channel-push! 1 (seconds 0.02)) - (ja :group! (-> self draw art-group data 59) :num! min) - (set! (-> self control dynam gravity-max) 368640.0) - (set! (-> self control dynam gravity-length) 368640.0) - (let ((f28-0 0.0) - (f30-0 1.0) - (gp-2 0) - ) - (until (ja-done? 0) - (compute-alignment! (-> self align)) - (when (not (ja-min? 0)) - (cond - ((and (>= (ja-aframe-num 0) 20.0) - (and (and (zero? (logand (-> self control status) (cshape-moving-flags onsurf))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) - (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (let ((v1-39 (ja-group))) - (or (not (or (= v1-39 (-> self draw art-group data 59)) - (= v1-39 (-> self draw art-group data 60)) - (= v1-39 (-> self draw art-group data 61)) - ) - ) - (< 4096.0 (target-height-above-ground)) - ) - ) - ) - (>= (the-as uint (- (-> *display* base-frame-counter) (the-as int (-> self control unknown-uint20)))) - (the-as uint 12) - ) - ) - ) - (go target-falling #f) - ) - ((and (nonzero? (-> self control unknown-uint30)) - (>= (the-as uint (- (-> *display* base-frame-counter) (the-as int (-> self control unknown-uint30)))) - (the-as uint 12) - ) - ) - (set-forward-vel (the-as float 0.0)) - ) - ((and (zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons square) - ) - ) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05)) - ) - (if (= (-> self control ground-pat material) (pat-material ice)) - (set-forward-vel (fmax 32768.0 (* 0.8 (-> self control unknown-float01)))) - (set-forward-vel (* 0.8 (-> self control unknown-float01))) - ) - ) - ((ja-done? 0) - (set-forward-vel f28-0) - ) - (else - (set! f28-0 - (* (target-align-vel-z-adjust (-> self align delta trans z)) (-> *display* frames-per-second) f30-0) - ) - (set-forward-vel f28-0) - ) - ) - ) - (let ((s5-1 (new-stack-vector0))) - (vector-matrix*! s5-1 (-> self control transv) (-> self control unknown-matrix00)) - (set! (-> s5-1 y) 0.0) - (vector-matrix*! (-> self control unknown-vector120) s5-1 (-> self control unknown-matrix01)) - ) - (suspend) - (ja :num! (seek! max (-> self control unknown-surface01 align-speed))) - (if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) - (set! (-> *run-attack-mods* turnvv) 0.0) - ) - (if (< 2 gp-2) - (set! f30-0 (* f30-0 (fmin 1.0 (-> self control unknown-float140)))) - ) - (+! gp-2 1) - ) - ) - (if (and (zero? (logand (-> self control status) (cshape-moving-flags onsurf))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout)) - (>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (let ((v1-121 (ja-group))) - (or (not (or (= v1-121 (-> self draw art-group data 59)) - (= v1-121 (-> self draw art-group data 60)) - (= v1-121 (-> self draw art-group data 61)) - ) - ) - (< 4096.0 (target-height-above-ground)) - ) - ) - ) - (go target-falling #f) - ) - (go target-stance) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-running-attack) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x70, fp? 1 ra? 1 ep? 1 - ;stack_vars: 32 bytes at 16 - ;gprs: gp s5 s4 - ;fprs: f30 -;; Warnings: -;; Used lq/sq - -;; s6-0: target gp-0: vector f0-5: float f1-1: float f2-1: float f30-0: float -L196: - daddiu sp, sp, -112 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s4, 48(sp) - sq s5, 64(sp) - sq gp, 80(sp) - swc1 f30, 96(sp) -B0: - lw v1, *display*(s7) ;; [ 0] (set! v1-0 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 1] (set! v1-1 (l.d (+ v1-0 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [ 2] (set! a0-0 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - beq a0, v1, L209 ;; [ 3] (b! (= a0-0 v1-1) L209 (set! v0-0 #f)) - ;; [v1: time-frame a0: time-frame ] -> [v0: '#f ] - or v0, s7, r0 - -B1: - lw t9, smack-surface?(s7) ;; [ 4] (set! t9-0 smack-surface?) [] -> [t9: (function symbol symbol :behavior target) ] - daddiu a0, s7, #t ;; [ 5] (set! a0-1 #t) [] -> [a0: symbol ] - jalr ra, t9 ;; [ 6] (call! a0-1) - ;; [a0: symbol t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - bnel s7, v0, L198 ;; [ 7] (bl! (truthy v0-1) L198 (no-delay!)) [v0: symbol ] -> [] -B2: - or v1, v0, r0 ;; [ 8] (set! v1-2 v0-1) [v0: symbol ] -> [v1: symbol ] - -B3: - lwu v1, 108(s6) ;; [ 9] (set! v1-3 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 1308(v1) ;; [ 10] (set! f0-0 (l.f (+ v1-3 1308))) [v1: control-info ] -> [] - lui v1, L762 ;; [ 11] (set! v1-4 L762) [] -> [v1: ] - ori v1, v1, L762 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 12] (set! f1-0 (l.f v1-4)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 13] (b! (>=.s f0-0 f1-0) L197 (set! v1-5 #t)) [] -> [v1: symbol ] - bc1f L197 - daddiu v1, s7, 8 - -B4: - or v1, s7, r0 ;; [ 14] (set! v1-5 #f) [] -> [v1: '#f ] -B5: -L197: - beql s7, v1, L198 ;; [ 15] (bl! (not v1-5) L198 (no-delay!)) [v1: symbol ] -> [] -B6: - or v1, v1, r0 ;; [ 16] (set! v1-2 v1-5) [v1: symbol ] -> [v1: symbol ] - -B7: - daddiu v1, s7, 8 ;; [ 17] (set! v1-6 #t) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [ 18] (set! a0-2 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 268(a0) ;; [ 19] (set! a0-3 (l.d (+ a0-2 268))) [a0: control-info ] -> [a0: cshape-moving-flags ] - andi a0, a0, 32 ;; [ 20] (set! a0-4 (logand a0-3 32)) - ;; [a0: cshape-moving-flags ] -> [a0: cshape-moving-flags ] - movn v1, s7, a0 ;; [ 21] (cmove-#f-nonzero v1-2 a0-4 v1-6) - ;; [v1: symbol a0: cshape-moving-flags ] -> [v1: symbol ] -B8: -L198: - beql s7, v1, L200 ;; [ 22] (bl! (not v1-2) L200 (no-delay!)) [v1: symbol ] -> [] -B9: - or v1, v1, r0 ;; [ 23] (set! v1-7 v1-2) [v1: symbol ] -> [v1: symbol ] - -B10: - lw v1, *display*(s7) ;; [ 24] (set! v1-8 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 25] (set! v1-9 (l.d (+ v1-8 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 26] (set! a0-5 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 2184(a0) ;; [ 27] (s.w! (+ a0-5 2184) v1-9) [v1: time-frame a0: control-info ] -> [] - mtc1 f0, r0 ;; [ 28] (set! f0-1 0) [] -> [] - lwu v1, 108(s6) ;; [ 29] (set! v1-10 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [ 30] (s.f! (+ v1-10 1724) f0-1) [v1: control-info ] -> [] - daddiu gp, sp, 16 ;; [ 31] (set! gp-0 (+ sp-0 16)) [sp: ] -> [gp: vector ] - sq r0, 0(gp) ;; [ 32] (s.q! gp-0 0) [gp: vector ] -> [] - lwu v1, 108(s6) ;; [ 33] (set! v1-11 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 34] (set! v1-12 (l.wu (+ v1-11 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 35] (set! a0-6 (+ v1-12 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 36] (set! v1-13 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 37] (set! v1-14 (+ v1-13 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [ 38] (set! f0-2 (vec3dot a0-6 v1-14)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 39] (set! v1-15 (fpr->gpr f0-2)) [] -> [v1: float ] - mtc1 f30, v1 ;; [ 40] (set! f30-0 (gpr->fpr v1-15)) [v1: float ] -> [] - mtc1 f0, r0 ;; [ 41] (set! f0-3 0) [] -> [] - or v1, gp, r0 ;; [ 42] (set! v1-16 gp-0) [gp: vector ] -> [v1: vector ] - lwu a0, 108(s6) ;; [ 43] (set! a0-7 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 60 ;; [ 44] (set! a0-8 (+ a0-7 60)) [a0: control-info ] -> [a0: vector ] - or a1, gp, r0 ;; [ 45] (set! a1-0 gp-0) [gp: vector ] -> [a1: vector ] - lwu a2, 108(s6) ;; [ 46] (set! a2-0 (l.wu (+ self 108))) [s6: target ] -> [a2: control-info ] - lwu a2, 432(a2) ;; [ 47] (set! a2-1 (l.wu (+ a2-0 432))) [a2: control-info ] -> [a2: dynamics ] - daddiu a2, a2, 28 ;; [ 48] (set! a2-2 (+ a2-1 28)) [a2: dynamics ] -> [a2: vector ] - mov.s f0, f30 ;; [ 49] (set! f0-4 f30-0) [] -> [] - lqc2 vf1, 0(a2) ;; [ 50] (set! a1-1 (vector-float*!2 a1-0 a2-2 f0-4)) - ;; [a1: vector a2: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - lqc2 vf4, 0(a0) ;; [ 51] (set! v1-17 (vector-!2 v1-16 a0-8 a1-1)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf5, 0(a1) - vmove.w vf6, vf0 - vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lw t9, vector-length(s7) ;; [ 52] (set! t9-1 vector-length) [] -> [t9: (function vector float) ] - or a0, gp, r0 ;; [ 53] (set! a0-9 gp-0) [gp: vector ] -> [a0: vector ] - jalr ra, t9 ;; [ 54] (call! a0-9) [a0: vector t9: (function vector float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 55] (set! f0-5 (gpr->fpr v0-2)) [v0: float ] -> [] - mov.s f1, f0 ;; [ 56] (set! f1-1 f0-5) [] -> [] - mtc1 f2, r0 ;; [ 57] (set! f2-0 0) [] -> [] - min.s f2, f2, f30 ;; [ 58] (set! f2-1 (min.s f2-0 f30-0)) [] -> [] - lwu v1, 108(s6) ;; [ 59] (set! v1-18 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 60] (set! v1-19 (+ v1-18 60)) [v1: control-info ] -> [v1: vector ] - lwu a0, 108(s6) ;; [ 61] (set! a0-10 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 60 ;; [ 62] (set! a0-11 (+ a0-10 60)) [a0: control-info ] -> [a0: vector ] - lwu a1, 108(s6) ;; [ 63] (set! a1-2 (l.wu (+ self 108))) [s6: target ] -> [a1: control-info ] - lwu a1, 432(a1) ;; [ 64] (set! a1-3 (l.wu (+ a1-2 432))) [a1: control-info ] -> [a1: dynamics ] - daddiu a1, a1, 28 ;; [ 65] (set! a1-4 (+ a1-3 28)) [a1: dynamics ] -> [a1: vector ] - lqc2 vf1, 0(a1) ;; [ 66] (set! a0-12 (vector-float*!2 a0-11 a1-4 f2-1)) - ;; [a0: vector a1: vector ] -> [a0: vector ] - mfc1 a1, f2 - qmtc2.i vf2, a1 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a0) - or a1, gp, r0 ;; [ 67] (set! a1-5 gp-0) [gp: vector ] -> [a1: vector ] - div.s f0, f0, f1 ;; [ 68] (set! f0-6 (/.s f0-5 f1-1)) [] -> [] - lqc2 vf1, 0(gp) ;; [ 69] (set! a1-6 (vector-float*!2 a1-5 gp-0 f0-6)) - ;; [a1: vector gp: vector ] -> [a1: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a1) - vmove.w vf6, vf0 ;; [ 70] (set! v1-20 (vector+!2 v1-19 a0-12 a1-6)) - ;; [v1: vector a0: vector a1: vector ] -> [v1: vector ] - lqc2 vf4, 0(a0) - lqc2 vf5, 0(a1) - vadd.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - daddiu v1, s7, #t ;; [ 71] (set! v1-21 #t) [] -> [v1: symbol ] - beql s7, v1, L200 ;; [ 72] (bl! (not v1-21) L200 (no-delay!)) [v1: symbol ] -> [] -B11: - or v1, v1, r0 ;; [ 73] (set! v1-7 v1-21) [v1: symbol ] -> [v1: symbol ] - -B12: - lwu v1, 108(s6) ;; [ 74] (set! v1-22 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 2180(v1) ;; [ 75] (set! v1-23 (l.wu (+ v1-22 2180))) [v1: control-info ] -> [v1: uint ] - beql v1, r0, L199 ;; [ 76] (bl! (zero? v1-23) L199 (no-delay!)) [v1: uint ] -> [] -B13: - daddiu v1, s7, 8 ;; [ 77] (set! v1-24 #t) [] -> [v1: symbol ] - -B14: - lw v1, *display*(s7) ;; [ 78] (set! v1-25 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 79] (set! v1-26 (l.d (+ v1-25 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 80] (set! a0-13 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 2180(a0) ;; [ 81] (set! a0-14 (l.wu (+ a0-13 2180))) [a0: control-info ] -> [a0: uint ] - dsubu v1, v1, a0 ;; [ 82] (set! v1-27 (- v1-26 a0-14)) [v1: time-frame a0: uint ] -> [v1: time-frame ] - sltiu a0, v1, 12 ;; [ 83] (set! v1-24 (>=.ui v1-27 12)) [v1: time-frame ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B15: -L199: - beql s7, v1, L200 ;; [ 84] (bl! (not v1-24) L200 (no-delay!)) [v1: symbol ] -> [] -B16: - or v1, v1, r0 ;; [ 85] (set! v1-7 v1-24) [v1: symbol ] -> [v1: symbol ] - -B17: - lwu v1, 108(s6) ;; [ 86] (set! v1-28 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 2188(v1) ;; [ 87] (set! v1-29 (l.wu (+ v1-28 2188))) [v1: control-info ] -> [v1: uint ] - daddiu a0, v1, -1 ;; [ 88] (set! a0-15 (+ v1-29 -1)) [v1: uint ] -> [a0: ] - daddiu v1, s7, 8 ;; [ 89] (set! v1-7 (nonzero? a0-15)) [a0: ] -> [v1: symbol ] - movz v1, s7, a0 -B18: -L200: - beq s7, v1, L201 ;; [ 90] (b! (not v1-7) L201 (set! v1-30 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B19: - lw t9, target-shoved(s7) ;; [ 91] (set! t9-2 target-shoved) - ;; [] -> [t9: (function meters meters process (state object object target) object :behavior target) ] - lw v1, *TARGET-bank*(s7) ;; [ 92] (set! v1-31 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 256(v1) ;; [ 93] (set! f0-7 (l.f (+ v1-31 256))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [ 94] (set! a0-16 (fpr->gpr f0-7)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [ 95] (set! v1-32 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 260(v1) ;; [ 96] (set! f0-8 (l.f (+ v1-32 260))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [ 97] (set! a1-7 (fpr->gpr f0-8)) [] -> [a1: meters ] - or a2, s7, r0 ;; [ 98] (set! a2-3 #f) [] -> [a2: '#f ] - lw a3, target-hit(s7) ;; [ 99] (set! a3-0 target-hit) [] -> [a3: (state symbol attack-info target) ] - jalr ra, t9 ;; [100] (call! a0-16 a1-7 a2-3 a3-0) - ;; [a0: meters a1: meters a2: '#f a3: (state symbol attack-info target) t9: (function meters meters process (state object object target) object :behavior target) ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [101] (set! v1-33 v0-3) [v0: object ] -> [v1: object ] -B20: -L201: - lwu v1, 108(s6) ;; [102] (set! v1-34 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [103] (set! v1-35 (l.wu (+ v1-34 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [104] (set! v1-36 (l.w (+ v1-35 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [105] (set! v1-37 (sll v1-36 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [106] (set! a0-17 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [107] (set! v1-38 (+ v1-37 a0-17)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [108] (set! v1-39 (l.wu (+ v1-38 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [109] (set! v1-40 (l.wu (+ v1-39 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [110] (set! v1-41 (logand v1-40 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L204 ;; [111] (bl! (zero? v1-41) L204 (no-delay!)) [v1: pad-buttons ] -> [] -B21: - or v1, s7, r0 ;; [112] (set! v1-42 #f) [] -> [v1: '#f ] - -B22: - lui v1, L726 ;; [113] (set! v1-43 L726) [] -> [v1: ] - ori v1, v1, L726 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [114] (set! f0-9 (l.f v1-43)) [v1: ] -> [] - lwu v1, 108(s6) ;; [115] (set! v1-44 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 528(v1) ;; [116] (set! f1-2 (l.f (+ v1-44 528))) [v1: control-info ] -> [] - c.lt.s f0, f1 ;; [117] (b! (<.s f0-9 f1-2) L202 (set! v1-45 #t)) [] -> [v1: symbol ] - bc1t L202 - daddiu v1, s7, 8 - -B23: - or v1, s7, r0 ;; [118] (set! v1-45 #f) [] -> [v1: '#f ] -B24: -L202: - beql s7, v1, L204 ;; [119] (bl! (not v1-45) L204 (no-delay!)) [v1: symbol ] -> [] -B25: - or v1, v1, r0 ;; [120] (set! v1-42 v1-45) [v1: symbol ] -> [v1: symbol ] - -B26: - lw v1, *display*(s7) ;; [121] (set! v1-46 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [122] (set! v1-47 (l.d (+ v1-46 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [123] (set! a0-18 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [124] (set! v1-48 (- v1-47 a0-18)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti v1, v1, 30 ;; [125] (set! a0-19 (>=.si v1-48 30)) [v1: time-frame ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - bnel s7, a0, L203 ;; [126] (bl! (truthy a0-19) L203 (no-delay!)) [a0: symbol ] -> [] -B27: - or v1, a0, r0 ;; [127] (set! v1-49 a0-19) [a0: symbol ] -> [v1: symbol ] - -B28: - daddiu v1, s7, 8 ;; [128] (set! v1-50 #t) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [129] (set! a0-20 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [130] (set! a0-21 (l.wu (+ a0-20 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [131] (set! a0-22 (l.w (+ a0-21 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [132] (set! a0-23 (sll a0-22 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [133] (set! a1-8 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [134] (set! a0-24 (+ a0-23 a1-8)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [135] (set! a0-25 (l.wu (+ a0-24 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 40(a0) ;; [136] (set! a0-26 (l.wu (+ a0-25 40))) [a0: cpad-info ] -> [a0: pad-buttons ] - andi a0, a0, 32768 ;; [137] (set! a0-27 (logand a0-26 #x8000)) [a0: pad-buttons ] -> [a0: pad-buttons ] - movn v1, s7, a0 ;; [138] (cmove-#f-nonzero v1-49 a0-27 v1-50) - ;; [v1: symbol a0: pad-buttons ] -> [v1: symbol ] -B29: -L203: - beql s7, v1, L204 ;; [139] (bl! (not v1-49) L204 (no-delay!)) [v1: symbol ] -> [] -B30: - or v1, v1, r0 ;; [140] (set! v1-42 v1-49) [v1: symbol ] -> [v1: symbol ] - -B31: - lwu v1, 160(s6) ;; [141] (set! v1-51 (l.wu (+ self 160))) [s6: target ] -> [v1: state-flags ] - andi v1, v1, 6144 ;; [142] (set! v1-52 (logand v1-51 6144)) [v1: state-flags ] -> [v1: state-flags ] - bnel v1, r0, L204 ;; [143] (bl! (nonzero? v1-52) L204 (no-delay!)) [v1: state-flags ] -> [] -B32: - or v1, s7, r0 ;; [144] (set! v1-42 #f) [] -> [v1: '#f ] - -B33: - daddiu v1, s7, 8 ;; [145] (set! v1-53 #t) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [146] (set! a0-28 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 660(a0) ;; [147] (set! a0-29 (l.wu (+ a0-28 660))) [a0: control-info ] -> [a0: surface ] - lwu a0, 144(a0) ;; [148] (set! a0-30 (l.wu (+ a0-29 144))) [a0: surface ] -> [a0: surface-flags ] - andi a0, a0, 128 ;; [149] (set! a0-31 (logand a0-30 128)) [a0: surface-flags ] -> [a0: surface-flags ] - movn v1, s7, a0 ;; [150] (cmove-#f-nonzero v1-42 a0-31 v1-53) - ;; [v1: symbol a0: surface-flags ] -> [v1: symbol ] -B34: -L204: - beq s7, v1, L205 ;; [151] (b! (not v1-42) L205 (set! v1-54 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B35: - lw t9, enter-state(s7) ;; [152] (set! t9-3 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [153] (set! v1-55 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 44(v1) ;; [154] (set! f0-10 (l.f (+ v1-55 44))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [155] (set! a0-32 (fpr->gpr f0-10)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [156] (set! v1-56 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 48(v1) ;; [157] (set! f0-11 (l.f (+ v1-56 48))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [158] (set! a1-9 (fpr->gpr f0-11)) [] -> [a1: meters ] - lw v1, target-attack-uppercut(s7);; [159] (set! v1-57 target-attack-uppercut) [] -> [v1: (state float float target) ] - sw v1, 72(s6) ;; [160] (s.w! (+ self 72) v1-57) [v1: (state float float target) s6: target ] -> [] - jalr ra, t9 ;; [161] (call! a0-32 a1-9) - ;; [a0: meters a1: meters t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [162] (set! v1-58 v0-4) [v0: object ] -> [v1: object ] -B36: -L205: - lwu v1, 152(s6) ;; [163] (set! v1-59 (l.wu (+ self 152))) [s6: target ] -> [v1: water-control ] - lwu v1, 0(v1) ;; [164] (set! v1-60 (l.wu v1-59)) [v1: water-control ] -> [v1: water-flags ] - andi v1, v1, 512 ;; [165] (set! v1-61 (logand v1-60 512)) [v1: water-flags ] -> [v1: water-flags ] - beql v1, r0, L206 ;; [166] (bl! (zero? v1-61) L206 (no-delay!)) [v1: water-flags ] -> [] -B37: - or v1, s7, r0 ;; [167] (set! v1-62 #f) [] -> [v1: '#f ] - -B38: - daddiu v1, s7, 8 ;; [168] (set! v1-63 #t) [] -> [v1: symbol ] - lw a0, *display*(s7) ;; [169] (set! a0-33 *display*) [] -> [a0: display ] - ld a0, 780(a0) ;; [170] (set! a0-34 (l.d (+ a0-33 780))) [a0: display ] -> [a0: time-frame ] - ld a1, 164(s6) ;; [171] (set! a1-10 (l.d (+ self 164))) [s6: target ] -> [a1: time-frame ] - dsubu a0, a0, a1 ;; [172] (set! a0-35 (- a0-34 a1-10)) [a0: time-frame a1: time-frame ] -> [a0: time-frame ] - addiu a1, r0, 21 ;; [173] (set! a1-11 21) [] -> [a1: ] - div a0, a1 ;; [174] (set! a0-36 (mod.si a0-35 a1-11)) [a0: time-frame a1: ] -> [a0: int ] - mfhi a0 - movn v1, s7, a0 ;; [175] (cmove-#f-nonzero v1-62 a0-36 v1-63) [v1: symbol a0: int ] -> [v1: symbol ] -B39: -L206: - beq s7, v1, L207 ;; [176] (b! (not v1-62) L207 (set! v1-64 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B40: - lwu gp, 152(s6) ;; [177] (set! gp-1 (l.wu (+ self 152))) [s6: target ] -> [gp: water-control ] - lwu v1, -4(gp) ;; [178] (set! v1-65 (l.wu (+ gp-1 -4))) - ;; [gp: water-control ] -> [v1: ] - lwu s5, 68(v1) ;; [179] (set! s5-0 (l.wu (+ v1-65 68))) - ;; [v1: ] -> [s5: ] - lui v1, L755 ;; [180] (set! v1-66 L755) [] -> [v1: ] - ori v1, v1, L755 - addu v1, fp, v1 - lw s4, 0(v1) ;; [181] (set! s4-0 (l.w v1-66)) [v1: ] -> [s4: int ] - lw t9, vector<-cspace!(s7);; [182] (set! t9-4 vector<-cspace!) [] -> [t9: (function vector cspace vector) ] - daddiu a0, sp, 32 ;; [183] (set! a0-37 (+ sp-0 32)) [sp: ] -> [a0: vector ] - lwu v1, 112(s6) ;; [184] (set! v1-67 (l.wu (+ self 112))) [s6: target ] -> [v1: cspace-array ] - daddiu a1, v1, 1196 ;; [185] (set! a1-12 (+ v1-67 1196)) [v1: cspace-array ] -> [a1: cspace ] - jalr ra, t9 ;; [186] (call! a0-37 a1-12) - ;; [a0: vector a1: cspace t9: (function vector cspace vector) ] -> [v0: vector ] - sll v0, ra, 0 - - or a2, v0, r0 ;; [187] (set! a2-4 v0-5) [v0: vector ] -> [a2: vector ] - addiu a3, r0, 0 ;; [188] (set! a3-1 0) [] -> [a3: ] - lwu v1, 108(s6) ;; [189] (set! v1-68 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu t0, v1, 60 ;; [190] (set! t0-0 (+ v1-68 60)) [v1: control-info ] -> [t0: vector ] - or t9, s5, r0 ;; [191] (set! t9-5 s5-0) - ;; [s5: ] -> [t9: ] - or a0, gp, r0 ;; [192] (set! a0-38 gp-1) [gp: water-control ] -> [a0: water-control ] - or a1, s4, r0 ;; [193] (set! a1-13 s4-0) [s4: int ] -> [a1: int ] - jalr ra, t9 ;; [194] (call! a0-38 a1-13 a2-4 a3-1 t0-0) - ;; [a0: water-control a1: int a2: vector a3: t0: vector t9: ] -> [v0: none ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [195] (set! v1-69 v0-6) [v0: none ] -> [v1: none ] -B41: -L207: - lwu v1, 140(s6) ;; [196] (set! v1-70 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lw v1, 36(v1) ;; [197] (set! v1-71 (l.w (+ v1-70 36))) [v1: fact-info-target ] -> [v1: pickup-type ] - daddiu v1, v1, -2 ;; [198] (set! v1-72 (+ v1-71 -2)) [v1: pickup-type ] -> [v1: ] - daddiu a0, s7, 8 ;; [199] (set! a0-39 (zero? v1-72)) [v1: ] -> [a0: symbol ] - movn a0, s7, v1 - beql s7, a0, L208 ;; [200] (bl! (not a0-39) L208 (no-delay!)) [a0: symbol ] -> [] -B42: - or v1, a0, r0 ;; [201] (set! v1-73 a0-39) [a0: symbol ] -> [v1: symbol ] - -B43: - lwu v1, 140(s6) ;; [202] (set! v1-74 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lwc1 f0, 40(v1) ;; [203] (set! f0-12 (l.f (+ v1-74 40))) [v1: fact-info-target ] -> [] - lui v1, L786 ;; [204] (set! v1-75 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [205] (set! f1-3 (l.f v1-75)) [v1: ] -> [] - c.lt.s f0, f1 ;; [206] (b! (>=.s f0-12 f1-3) L208 (set! v1-73 #t)) [] -> [v1: symbol ] - bc1f L208 - daddiu v1, s7, 8 - -B44: - or v1, s7, r0 ;; [207] (set! v1-73 #f) [] -> [v1: '#f ] -B45: -L208: - beq s7, v1, L209 ;; [208] (b! (not v1-73) L209 (set! v0-7 #f)) [v1: symbol ] -> [v0: '#f ] - or v0, s7, r0 - -B46: - lwu v1, 120(s6) ;; [209] (set! v1-76 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu gp, 36(v1) ;; [210] (set! gp-2 (l.wu (+ v1-76 36))) [v1: joint-control ] -> [gp: effect-control ] - lwu v1, -4(gp) ;; [211] (set! v1-77 (l.wu (+ gp-2 -4))) - ;; [gp: effect-control ] -> [v1: ] - lwu s5, 56(v1) ;; [212] (set! s5-1 (l.wu (+ v1-77 56))) - ;; [v1: ] -> [s5: ] - daddiu s4, s7, group-red-eco-spinkick;; [213] (set! s4-1 'group-red-eco-spinkick) [] -> [s4: symbol ] - lw t9, ja-frame-num(s7) ;; [214] (set! t9-6 ja-frame-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [215] (set! a0-40 0) [] -> [a0: ] - jalr ra, t9 ;; [216] (call! a0-40) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - or a2, v0, r0 ;; [217] (set! a2-5 v0-8) [v0: float ] -> [a2: float ] - addiu a3, r0, 23 ;; [218] (set! a3-2 23) [] -> [a3: ] - or t9, s5, r0 ;; [219] (set! t9-7 s5-1) - ;; [s5: ] -> [t9: ] - or a0, gp, r0 ;; [220] (set! a0-41 gp-2) [gp: effect-control ] -> [a0: effect-control ] - or a1, s4, r0 ;; [221] (set! a1-14 s4-1) [s4: symbol ] -> [a1: symbol ] - jalr ra, t9 ;; [222] (call! a0-41 a1-14 a2-5 a3-2) - ;; [a0: effect-control a1: symbol a2: float a3: t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [223] (set! v1-78 v0-9) [v0: object ] -> [v1: object ] - lw t9, cpad-set-buzz!(s7) ;; [224] (set! t9-8 cpad-set-buzz!) - ;; [] -> [t9: (function cpad-info int int time-frame none) ] - lw v1, *cpad-list*(s7) ;; [225] (set! v1-79 *cpad-list*) [] -> [v1: cpad-list ] - lwu a0, 4(v1) ;; [226] (set! a0-42 (l.wu (+ v1-79 4))) [v1: cpad-list ] -> [a0: cpad-info ] - addiu a1, r0, 1 ;; [227] (set! a1-15 1) [] -> [a1: ] - addiu a2, r0, 153 ;; [228] (set! a2-6 153) [] -> [a2: ] - addiu a3, r0, 30 ;; [229] (set! a3-3 30) [] -> [a3: ] - jalr ra, t9 ;; [230] (call! a0-42 a1-15 a2-6 a3-3) - ;; [a0: cpad-info a1: a2: a3: t9: (function cpad-info int int time-frame none) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, level-hint-spawn(s7);; [231] (set! t9-9 level-hint-spawn) - ;; [] -> [t9: (function game-text-id string entity process-tree game-task none) ] - addiu a0, r0, 678 ;; [232] (set! a0-43 678) [] -> [a0: ] - lui v1, L700 ;; [233] (set! a1-16 L700) [] -> [a1: ] "sksp0072" - ori v1, v1, L700 ;; "sksp0072" - daddu a1, v1, fp - or a2, s7, r0 ;; [234] (set! a2-7 #f) [] -> [a2: '#f ] - lw a3, *entity-pool*(s7) ;; [235] (set! a3-4 *entity-pool*) [] -> [a3: process-tree ] - addiu t0, r0, 0 ;; [236] (set! t0-1 0) [] -> [t0: ] - jalr ra, t9 ;; [237] (call! a0-43 a1-16 a2-7 a3-4 t0-1) - ;; [a0: a1: a2: '#f a3: process-tree t0: t9: (function game-text-id string entity process-tree game-task none) ] -> [v0: none ] - sll v0, ra, 0 - -B47: -L209: - ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 96(sp) - lq gp, 80(sp) - lq s5, 64(sp) - lq s4, 48(sp) - jr ra - daddiu sp, sp, 112 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-running-attack) - () - (when (!= (-> self state-time) (-> *display* base-frame-counter)) - (if (and (or (smack-surface? #t) - (and (>= (-> self control unknown-float63) 0.7) - (zero? (logand (-> self control status) (cshape-moving-flags t-act))) - ) - ) - (begin - (set! (-> self control unknown-int21) (the-as int (-> *display* base-frame-counter))) - (set! (-> self control unknown-float81) 0.0) - (let ((gp-0 (new-stack-vector0)) - (f30-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - ) - 0.0 - (vector-! gp-0 (-> self control transv) (vector-float*! gp-0 (-> self control dynam gravity-normal) f30-0)) - (let* ((f0-5 (vector-length gp-0)) - (f1-1 f0-5) - (f2-1 (fmin 0.0 f30-0)) - ) - (vector+! - (-> self control transv) - (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f2-1) - (vector-float*! gp-0 gp-0 (/ f0-5 f1-1)) - ) - ) - ) - #t - ) - (or (zero? (-> self control unknown-uint20)) - (>= (the-as uint (- (-> *display* base-frame-counter) (the-as int (-> self control unknown-uint20)))) - (the-as uint 12) - ) - ) - (!= (-> self control unknown-uint31) 1) - ) - (target-shoved - (-> *TARGET-bank* smack-surface-dist) - (-> *TARGET-bank* smack-surface-height) - (the-as process #f) - target-hit - ) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) x) - (and (< 4096.0 (-> self control unknown-float01)) - (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.1)) - (zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) - (pad-buttons square) - ) - ) - ) - (zero? (logand (-> self state-flags) (state-flags prevent-jump prevent-attack))) - (zero? (logand (-> self control unknown-surface01 flags) (surface-flags prevent-attacks-during-launch-jump))) - ) - ) - (go - target-attack-uppercut - (-> *TARGET-bank* attack-jump-height-min) - (-> *TARGET-bank* attack-jump-height-max) - ) - ) - (if (and (logtest? (-> self water flags) (water-flags wt09)) - (zero? (mod (- (-> *display* base-frame-counter) (-> self state-time)) 21)) - ) - (dummy-13 - (-> self water) - (the-as float 0.6) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 37)) - 0 - (-> self control transv) - ) - ) - (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 23) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) - (level-hint-spawn - (game-text-id misty-eco-red-first-use) - "sksp0072" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - ) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (exit target-running-attack) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; s6-0: target -L210: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lwu v1, 108(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 652(v1) ;; [ 1] (set! v1-1 (l.wu (+ v1-0 652))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f0, 4(v1) ;; [ 2] (set! f0-0 (l.f (+ v1-1 4))) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [ 3] (set! v1-2 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 4] (set! v1-3 (l.wu (+ v1-2 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 4(v1) ;; [ 5] (s.f! (+ v1-3 4) f0-0) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [ 6] (set! v1-4 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 652(v1) ;; [ 7] (set! v1-5 (l.wu (+ v1-4 652))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f0, 8(v1) ;; [ 8] (set! f0-1 (l.f (+ v1-5 8))) [v1: dynamics ] -> [] - lwu v1, 108(s6) ;; [ 9] (set! v1-6 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 10] (set! v1-7 (l.wu (+ v1-6 432))) [v1: control-info ] -> [v1: dynamics ] - swc1 f0, 8(v1) ;; [ 11] (s.f! (+ v1-7 8) f0-1) [v1: dynamics ] -> [] - mtc1 f0, r0 ;; [ 12] (set! f0-2 0) [] -> [] - lw v1, *run-attack-mods*(s7);; [ 13] (set! v1-8 *run-attack-mods*) [] -> [v1: surface ] - swc1 f0, 4(v1) ;; [ 14] (s.f! (+ v1-8 4) f0-2) [v1: surface ] -> [] - mtc1 f0, r0 ;; [ 15] (set! f0-3 0) [] -> [] - lw v1, *run-attack-mods*(s7);; [ 16] (set! v1-9 *run-attack-mods*) [] -> [v1: surface ] - swc1 f0, 8(v1) ;; [ 17] (s.f! (+ v1-9 8) f0-3) [v1: surface ] -> [] - lw v1, *display*(s7) ;; [ 18] (set! v1-10 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 19] (set! v1-11 (l.d (+ v1-10 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 20] (set! a0-0 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 1668(a0) ;; [ 21] (s.d! (+ a0-0 1668) v1-11) [v1: time-frame a0: control-info ] -> [] - lw t9, target-exit(s7) ;; [ 22] (set! t9-0 target-exit) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 23] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (exit target-running-attack) - () - (set! (-> self control dynam gravity-max) (-> self control unknown-dynamics00 gravity-max)) - (set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length)) - (set! (-> *run-attack-mods* turnv) 0.0) - (set! (-> *run-attack-mods* turnvv) 0.0) - (set! (-> self control unknown-dword31) (-> *display* base-frame-counter)) - (target-exit) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-running-attack) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; Warnings: -;; INFO: Return type mismatch float vs none. - -;; s6-0: target -L211: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lwu v1, 140(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lw v1, 36(v1) ;; [ 1] (set! v1-1 (l.w (+ v1-0 36))) [v1: fact-info-target ] -> [v1: pickup-type ] - daddiu v1, v1, -1 ;; [ 2] (set! v1-2 (+ v1-1 -1)) [v1: pickup-type ] -> [v1: ] - daddiu a0, s7, 8 ;; [ 3] (set! a0-0 (zero? v1-2)) [v1: ] -> [a0: symbol ] - movn a0, s7, v1 - beql s7, a0, L212 ;; [ 4] (bl! (not a0-0) L212 (no-delay!)) [a0: symbol ] -> [] -B1: - or v1, a0, r0 ;; [ 5] (set! v1-3 a0-0) [a0: symbol ] -> [v1: symbol ] - -B2: - lwu v1, 140(s6) ;; [ 6] (set! v1-4 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lwc1 f0, 40(v1) ;; [ 7] (set! f0-0 (l.f (+ v1-4 40))) [v1: fact-info-target ] -> [] - lui v1, L786 ;; [ 8] (set! v1-5 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 9] (set! f1-0 (l.f v1-5)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 10] (b! (>=.s f0-0 f1-0) L212 (set! v1-3 #t)) [] -> [v1: symbol ] - bc1f L212 - daddiu v1, s7, 8 - -B3: - or v1, s7, r0 ;; [ 11] (set! v1-3 #f) [] -> [v1: '#f ] -B4: -L212: - bnel s7, v1, L213 ;; [ 12] (bl! (truthy v1-3) L213 (no-delay!)) [v1: symbol ] -> [] -B5: - or v1, v1, r0 ;; [ 13] (set! v1-6 v1-3) [v1: symbol ] -> [v1: symbol ] - -B6: - lw v1, *display*(s7) ;; [ 14] (set! v1-7 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 15] (set! v1-8 (l.d (+ v1-7 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 16] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 18908(a0) ;; [ 17] (set! a0-2 (l.d (+ a0-1 #x49dc))) [a0: control-info ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 18] (set! v1-9 (- v1-8 a0-2)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti a0, v1, 450 ;; [ 19] (set! v1-6 (<.si v1-9 450)) [v1: time-frame ] -> [v1: symbol ] - daddiu v1, s7, 8 - movz v1, s7, a0 -B7: -L213: - beq s7, v1, L214 ;; [ 20] (b! (not v1-6) L214 (set! v1-10 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B8: - lw t9, enter-state(s7) ;; [ 21] (set! t9-0 enter-state) [] -> [t9: ] - lw v1, target-yellow-blast(s7);; [ 22] (set! v1-11 target-yellow-blast) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 23] (s.w! (+ self 72) v1-11) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 24] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 25] (set! v1-12 v0-0) [v0: object ] -> [v1: object ] -B9: -L214: - lw v1, *display*(s7) ;; [ 26] (set! v1-13 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 27] (set! v1-14 (l.d (+ v1-13 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 28] (s.d! (+ self 164) v1-14) [v1: time-frame s6: target ] -> [] - lwu v1, 108(s6) ;; [ 29] (set! v1-15 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw r0, 2180(v1) ;; [ 30] (s.w! (+ v1-15 2180) 0) [v1: control-info ] -> [] - lwu v1, 108(s6) ;; [ 31] (set! v1-16 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw r0, 2184(v1) ;; [ 32] (s.w! (+ v1-16 2184) 0) [v1: control-info ] -> [] - lwu v1, 108(s6) ;; [ 33] (set! v1-17 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw r0, 2188(v1) ;; [ 34] (s.w! (+ v1-17 2188) 0) [v1: control-info ] -> [] - lw v1, *run-attack-mods*(s7);; [ 35] (set! v1-18 *run-attack-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [ 36] (set! a0-3 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [ 37] (s.w! (+ a0-3 656) v1-18) [v1: surface a0: control-info ] -> [] - lui v1, L725 ;; [ 38] (set! v1-19 L725) [] -> [v1: ] - ori v1, v1, L725 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 39] (set! f0-1 (l.f v1-19)) [v1: ] -> [] - lw v1, *run-attack-mods*(s7);; [ 40] (set! v1-20 *run-attack-mods*) [] -> [v1: surface ] - swc1 f0, 4(v1) ;; [ 41] (s.f! (+ v1-20 4) f0-1) [v1: surface ] -> [] - lui v1, L725 ;; [ 42] (set! v1-21 L725) [] -> [v1: ] - ori v1, v1, L725 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 43] (set! f0-2 (l.f v1-21)) [v1: ] -> [] - lw v1, *run-attack-mods*(s7);; [ 44] (set! v1-22 *run-attack-mods*) [] -> [v1: surface ] - swc1 f0, 8(v1) ;; [ 45] (s.f! (+ v1-22 8) f0-2) [v1: surface ] -> [] - lw t9, target-start-attack(s7);; [ 46] (set! t9-1 target-start-attack) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 47] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, target-danger-set!(s7);; [ 48] (set! t9-2 target-danger-set!) - ;; [] -> [t9: (function symbol symbol float :behavior target) ] - daddiu a0, s7, punch ;; [ 49] (set! a0-4 'punch) [] -> [a0: symbol ] - or a1, s7, r0 ;; [ 50] (set! a1-0 #f) [] -> [a1: '#f ] - jalr ra, t9 ;; [ 51] (call! a0-4 a1-0) - ;; [a0: symbol a1: '#f t9: (function symbol symbol float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - lwu v1, 108(s6) ;; [ 52] (set! v1-23 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 1304(v1) ;; [ 53] (set! f0-3 (l.f (+ v1-23 1304))) [v1: control-info ] -> [] - abs.s f0, f0 ;; [ 54] (set! f0-4 (abs.s f0-3)) [] -> [] - lui v1, L751 ;; [ 55] (set! v1-24 L751) [] -> [v1: ] - ori v1, v1, L751 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 56] (set! f1-1 (l.f v1-24)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 57] (b! (<.s f0-4 f1-1) L215 (set! v1-25 #t)) [] -> [v1: symbol ] - bc1t L215 - daddiu v1, s7, 8 - -B10: - or v1, s7, r0 ;; [ 58] (set! v1-25 #f) [] -> [v1: '#f ] -B11: -L215: - bnel s7, v1, L216 ;; [ 59] (bl! (truthy v1-25) L216 (no-delay!)) [v1: symbol ] -> [] -B12: - or v1, v1, r0 ;; [ 60] (set! v1-26 v1-25) [v1: symbol ] -> [v1: symbol ] - -B13: - lui v1, L751 ;; [ 61] (set! v1-27 L751) [] -> [v1: ] - ori v1, v1, L751 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 62] (set! f0-5 (l.f v1-27)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 63] (set! v1-28 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 1300(v1) ;; [ 64] (set! f1-2 (l.f (+ v1-28 1300))) [v1: control-info ] -> [] - abs.s f1, f1 ;; [ 65] (set! f1-3 (abs.s f1-2)) [] -> [] - c.lt.s f0, f1 ;; [ 66] (b! (<.s f0-5 f1-3) L216 (set! v1-26 #t)) [] -> [v1: symbol ] - bc1t L216 - daddiu v1, s7, 8 - -B14: - or v1, s7, r0 ;; [ 67] (set! v1-26 #f) [] -> [v1: '#f ] -B15: -L216: - beq s7, v1, L217 ;; [ 68] (b! (not v1-26) L217 (set! v0-3 #f)) [v1: symbol ] -> [v0: '#f ] - or v0, s7, r0 - -B16: - lui v1, L786 ;; [ 69] (set! v1-29 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 70] (set! f0-6 (l.f v1-29)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 71] (set! v1-30 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [ 72] (s.f! (+ v1-30 1724) f0-6) [v1: control-info ] -> [] - mfc1 v0, f0 ;; [ 73] (set! v0-4 (fpr->gpr f0-6)) [] -> [v0: float ] -B17: -L217: - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-running-attack) - () - (if (or (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (< (- (-> *display* base-frame-counter) (-> self control unknown-dword82)) (seconds 1.5)) - ) - (go target-yellow-blast) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-uint20) (the-as uint 0)) - (set! (-> self control unknown-int21) 0) - (set! (-> self control unknown-uint31) (the-as uint 0)) - (set! (-> self control unknown-surface00) *run-attack-mods*) - (set! (-> *run-attack-mods* turnv) 655360.0) - (set! (-> *run-attack-mods* turnvv) 655360.0) - (target-start-attack) - (target-danger-set! 'punch #f) - (if (or (< (fabs (-> self control unknown-float62)) 0.3) (< 0.3 (fabs (-> self control unknown-float61)))) - (set! (-> self control unknown-float81) 1.0) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (event target-running-attack) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x50, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 - ;gprs: gp s5 s4 s3 -;; Warnings: -;; WARN: disable def twice: 73. This may happen when a cond (no else) is nested inside of another conditional, but it should be rare. - -;; v0-2: object v1-9: process v1-11: collide-shape a0-0: process -;; a1-0: int a2-0: symbol a3-0: event-message-block s5-1: trsqv -;; s6-0: target gp-1: symbol -L218: - daddiu sp, sp, -80 - sd ra, 0(sp) - sq s3, 16(sp) - sq s4, 32(sp) - sq s5, 48(sp) - sq gp, 64(sp) -B0: - or s5, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: process ] -> [s5: process ] - or s4, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: int ] -> [s4: int ] - or s3, a2, r0 ;; [ 2] (set! arg2 arg2) [a2: symbol ] -> [s3: symbol ] - or gp, a3, r0 ;; [ 3] (set! arg3 arg3) [a3: event-message-block ] -> [gp: event-message-block ] - or v1, s3, r0 ;; [ 4] (set! v1-0 arg2) [s3: symbol ] -> [v1: symbol ] - daddiu a0, s7, touched ;; [ 5] (set! a0-1 'touched) [] -> [a0: symbol ] - bne v1, a0, L229 ;; [ 6] (b! (!= v1-0 a0-1) L229 (nop!)) [v1: symbol a0: symbol ] -> [] - sll r0, r0, 0 - -B1: - ld a0, 16(gp) ;; [ 7] (set! a0-2 (l.d (+ arg3 16))) [gp: event-message-block ] -> [a0: uint ] - lw v1, touching-shapes-entry(s7);; [ 8] (set! v1-1 touching-shapes-entry) - ;; [] -> [v1: ] - lwu t9, 64(v1) ;; [ 9] (set! t9-0 (l.wu (+ v1-1 64))) - ;; [v1: ] -> [t9: ] - lwu a1, 108(s6) ;; [ 10] (set! a1-1 (l.wu (+ self 108))) [s6: target ] -> [a1: control-info ] - addiu a2, r0, 224 ;; [ 11] (set! a2-1 224) [] -> [a2: ] - jalr ra, t9 ;; [ 12] (call! a0-2 a1-1 a2-1) - ;; [a0: uint a1: control-info a2: t9: ] -> [v0: touching-prims-entry ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 13] (set! v1-2 v0-0) [v0: touching-prims-entry ] -> [v1: touching-prims-entry ] - beq s7, v1, L227 ;; [ 14] (b! (not v1-2) L227 (nop!)) [v1: touching-prims-entry ] -> [] - sll r0, r0, 0 - -B2: - lw t9, target-send-attack(s7);; [ 15] (set! t9-1 target-send-attack) - ;; [] -> [t9: (function process uint uint int int symbol :behavior target) ] - or a0, s5, r0 ;; [ 16] (set! a0-3 arg0) [s5: process ] -> [a0: process ] - lwu v1, 108(s6) ;; [ 17] (set! v1-3 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu a1, 2380(v1) ;; [ 18] (set! a1-2 (l.wu (+ v1-3 2380))) [v1: control-info ] -> [a1: symbol ] - ld a2, 16(gp) ;; [ 19] (set! a2-2 (l.d (+ arg3 16))) [gp: event-message-block ] -> [a2: uint ] - lwu v1, 108(s6) ;; [ 20] (set! v1-4 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld a3, 2388(v1) ;; [ 21] (set! a3-1 (l.d (+ v1-4 2388))) [v1: control-info ] -> [a3: int ] - lwu v1, 108(s6) ;; [ 22] (set! v1-5 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld t0, 2396(v1) ;; [ 23] (set! t0-0 (l.d (+ v1-5 2396))) [v1: control-info ] -> [t0: int ] - jalr ra, t9 ;; [ 24] (call! a0-3 a1-2 a2-2 a3-1 t0-0) - ;; [a0: process a1: symbol a2: uint a3: int t0: int t9: (function process uint uint int int symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or gp, v0, r0 ;; [ 25] (set! gp-1 v0-1) [v0: symbol ] -> [gp: symbol ] - beq s7, gp, L226 ;; [ 26] (b! (not gp-1) L226 (set! v0-2 #f)) [gp: symbol ] -> [v0: '#f ] - or v0, s7, r0 - -B3: - lw v1, *display*(s7) ;; [ 27] (set! v1-6 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 28] (set! v1-7 (l.d (+ v1-6 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 29] (set! a0-4 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 2180(a0) ;; [ 30] (s.w! (+ a0-4 2180) v1-7) [v1: time-frame a0: control-info ] -> [] - beql s5, r0, L219 ;; [ 31] (bl! (zero? arg0) L219 (no-delay!)) [s5: process ] -> [] -B4: - or v1, s7, r0 ;; [ 32] (set! v1-8 #f) [] -> [v1: '#f ] - -B5: - lw t9, type-type?(s7) ;; [ 33] (set! t9-2 type-type?) [] -> [t9: (function type type symbol) ] - lwu a0, -4(s5) ;; [ 34] (set! a0-5 (l.wu (+ arg0 -4))) [s5: process ] -> [a0: ] - lw a1, process-drawable(s7);; [ 35] (set! a1-3 process-drawable) [] -> [a1: ] - jalr ra, t9 ;; [ 36] (call! a0-5 a1-3) - ;; [a0: a1: t9: (function type type symbol) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 37] (set! v1-8 v0-3) [v0: symbol ] -> [v1: symbol ] -B6: -L219: - beq s7, v1, L220 ;; [ 38] (b! (not v1-8) L220 (set! v1-9 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B7: - or v1, s5, r0 ;; [ 39] (set! v1-9 arg0) [s5: process ] -> [v1: process ] -B8: -L220: - beq s7, v1, L224 ;; [ 40] (b! (not v1-9) L224 (set! a0-6 #f)) [v1: process ] -> [a0: '#f ] - or a0, s7, r0 - -B9: - lwu s5, 108(v1) ;; [ 41] (set! s5-1 (l.wu (+ (the-as process-drawable v1-9) 108))) - ;; [v1: process-drawable ] -> [s5: trsqv ] - beql s5, r0, L221 ;; [ 42] (bl! (zero? s5-1) L221 (no-delay!)) [s5: trsqv ] -> [] -B10: - or v1, s7, r0 ;; [ 43] (set! v1-10 #f) [] -> [v1: '#f ] - -B11: - lw t9, type-type?(s7) ;; [ 44] (set! t9-3 type-type?) [] -> [t9: (function type type symbol) ] - lwu a0, -4(s5) ;; [ 45] (set! a0-7 (l.wu (+ s5-1 -4))) [s5: trsqv ] -> [a0: ] - lw a1, collide-shape(s7) ;; [ 46] (set! a1-4 collide-shape) [] -> [a1: ] - jalr ra, t9 ;; [ 47] (call! a0-7 a1-4) - ;; [a0: a1: t9: (function type type symbol) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 48] (set! v1-10 v0-4) [v0: symbol ] -> [v1: symbol ] -B12: -L221: - beq s7, v1, L222 ;; [ 49] (b! (not v1-10) L222 (set! v1-11 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B13: - or v1, s5, r0 ;; [ 50] (set! v1-11 (the-as collide-shape s5-1)) - ;; [s5: collide-shape ] -> [v1: collide-shape ] -B14: -L222: - beql s7, v1, L223 ;; [ 51] (bl! (not v1-11) L223 (no-delay!)) [v1: collide-shape ] -> [] -B15: - or a0, v1, r0 ;; [ 52] (set! a0-8 v1-11) [v1: collide-shape ] -> [a0: collide-shape ] - -B16: - lwu a0, 156(v1) ;; [ 53] (set! a0-9 (l.wu (+ v1-11 156))) [v1: collide-shape ] -> [a0: collide-shape-prim ] - ld a0, 28(a0) ;; [ 54] (set! a0-10 (l.d (+ a0-9 28))) [a0: collide-shape-prim ] -> [a0: collide-kind ] - andi a0, a0, 256 ;; [ 55] (set! a0-11 (logand a0-10 256)) [a0: collide-kind ] -> [a0: collide-kind ] - bnel a0, r0, L223 ;; [ 56] (bl! (nonzero? a0-11) L223 (no-delay!)) [a0: collide-kind ] -> [] -B17: - daddiu a0, s7, 8 ;; [ 57] (set! a0-8 #t) [] -> [a0: symbol ] - -B18: - daddiu a0, s7, 8 ;; [ 58] (set! a0-12 #t) [] -> [a0: symbol ] - lwu v1, 156(v1) ;; [ 59] (set! v1-12 (l.wu (+ v1-11 156))) - ;; [v1: collide-shape ] -> [v1: collide-shape-prim ] - lwu v1, 36(v1) ;; [ 60] (set! v1-13 (l.wu (+ v1-12 36))) - ;; [v1: collide-shape-prim ] -> [v1: collide-action ] - andi v1, v1, 1024 ;; [ 61] (set! v1-14 (logand v1-13 1024)) [v1: collide-action ] -> [v1: collide-action ] - movz a0, s7, v1 ;; [ 62] (cmove-#f-zero a0-8 v1-14 a0-12) [v1: collide-action a0: symbol ] -> [a0: symbol ] -B19: -L223: - beq s7, a0, L224 ;; [ 63] (b! (not a0-8) L224 (set! a0-13 #f)) [a0: basic ] -> [a0: '#f ] - or a0, s7, r0 - -B20: - addiu a0, r0, 1 ;; [ 64] (set! a0-14 1) [] -> [a0: ] - lwu v1, 108(s6) ;; [ 65] (set! v1-15 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw a0, 2188(v1) ;; [ 66] (s.w! (+ v1-15 2188) a0-14) [v1: control-info a0: ] -> [] -B21: -L224: - daddiu v1, s7, die ;; [ 67] (set! v1-16 'die) [] -> [v1: symbol ] - dsubu v1, gp, v1 ;; [ 68] (set! a0-15 (= gp-1 v1-16)) [v1: symbol gp: symbol ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - bnel s7, a0, L225 ;; [ 69] (bl! (truthy a0-15) L225 (no-delay!)) [a0: symbol ] -> [] -B22: - or v1, a0, r0 ;; [ 70] (set! v1-17 a0-15) [a0: symbol ] -> [v1: symbol ] - -B23: - daddiu v1, s7, push ;; [ 71] (set! v1-18 'push) [] -> [v1: symbol ] - dsubu a0, gp, v1 ;; [ 72] (set! v1-17 (= gp-1 v1-18)) [v1: symbol gp: symbol ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B24: -L225: - beq s7, v1, L226 ;; [ 73] (b! (not v1-17) L226 (set! v0-2 #f)) [v1: symbol ] -> [v0: '#f ] - or v0, s7, r0 - -B25: - lw v1, *display*(s7) ;; [ 74] (set! v1-19 *display*) [] -> [v1: display ] - ld v0, 780(v1) ;; [ 75] (set! v0-2 (l.d (+ v1-19 780))) [v1: display ] -> [v0: time-frame ] - lwu v1, 108(s6) ;; [ 76] (set! v1-20 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw v0, 2184(v1) ;; [ 77] (s.w! (+ v1-20 2184) (the-as time-frame v0-2)) - ;; [v0: time-frame v1: control-info ] -> [] -B26: -L226: - beq r0, r0, L228 ;; [ 78] (b! #t L228 (nop!)) [] -> [] - sll r0, r0, 0 - -B27: -L227: - lw t9, target-dangerous-event-handler(s7);; [ 79] (set! t9-4 target-dangerous-event-handler) - ;; [] -> [t9: (function process int symbol event-message-block object :behavior target) ] - or a0, s5, r0 ;; [ 80] (set! a0-16 arg0) [s5: process ] -> [a0: process ] - or a1, s4, r0 ;; [ 81] (set! a1-5 arg1) [s4: int ] -> [a1: int ] - or a2, s3, r0 ;; [ 82] (set! a2-3 arg2) [s3: symbol ] -> [a2: symbol ] - or a3, gp, r0 ;; [ 83] (set! a3-2 arg3) [gp: event-message-block ] -> [a3: event-message-block ] - jalr ra, t9 ;; [ 84] (call! a0-16 a1-5 a2-3 a3-2) - ;; [a0: process a1: int a2: symbol a3: event-message-block t9: (function process int symbol event-message-block object :behavior target) ] -> [v0: object ] - sll v0, ra, 0 - -B28: -L228: - beq r0, r0, L230 ;; [ 85] (b! #t L230 (nop!)) [] -> [] - sll r0, r0, 0 - -B29: -L229: - lw t9, target-dangerous-event-handler(s7);; [ 86] (set! t9-5 target-dangerous-event-handler) - ;; [] -> [t9: (function process int symbol event-message-block object :behavior target) ] - or a0, s5, r0 ;; [ 87] (set! a0-17 arg0) [s5: process ] -> [a0: process ] - or a1, s4, r0 ;; [ 88] (set! a1-6 arg1) [s4: int ] -> [a1: int ] - or a2, s3, r0 ;; [ 89] (set! a2-4 arg2) [s3: symbol ] -> [a2: symbol ] - or a3, gp, r0 ;; [ 90] (set! a3-3 arg3) [gp: event-message-block ] -> [a3: event-message-block ] - jalr ra, t9 ;; [ 91] (call! a0-17 a1-6 a2-4 a3-3) - ;; [a0: process a1: int a2: symbol a3: event-message-block t9: (function process int symbol event-message-block object :behavior target) ] -> [v0: object ] - sll v0, ra, 0 - -B30: -L230: - ld ra, 0(sp) - lq gp, 64(sp) - lq s5, 48(sp) - lq s4, 32(sp) - lq s3, 16(sp) - jr ra - daddiu sp, sp, 80 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (event target-running-attack) - ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) - (case arg2 - (('touched) - (cond - (((method-of-type touching-shapes-entry prims-touching?) - (the-as touching-shapes-entry (-> arg3 param 0)) - (-> self control) - (the-as uint 224) - ) - (let ((gp-1 (target-send-attack - arg0 - (the-as uint (-> self control unknown-symbol30)) - (-> arg3 param 0) - (-> self control unknown-dword50) - (-> self control unknown-dword51) - ) - ) - ) - (when gp-1 - (set! (-> self control unknown-uint20) (the-as uint (-> *display* base-frame-counter))) - (let ((v1-9 (if (and (nonzero? arg0) (type-type? (-> arg0 type) process-drawable)) - arg0 - ) - ) - ) - (when v1-9 - (let* ((s5-1 (-> (the-as process-drawable v1-9) root)) - (v1-11 (if (and (nonzero? s5-1) (type-type? (-> s5-1 type) collide-shape)) - (the-as collide-shape s5-1) - ) - ) - ) - (if (and v1-11 (or (logtest? (-> v1-11 root-prim prim-core collide-as) (collide-kind enemy)) - (logtest? (-> v1-11 root-prim prim-core action) (collide-action ca-10)) - ) - ) - (set! (-> self control unknown-uint31) (the-as uint 1)) - ) - ) - ) - ) - (when (or (= gp-1 'die) (= gp-1 'push)) - (let ((v0-2 (the-as object (-> *display* base-frame-counter)))) - (set! (-> self control unknown-int21) (the-as int v0-2)) - v0-2 - ) - ) - ) - ) - ) - (else - (target-dangerous-event-handler arg0 arg1 arg2 arg3) - ) - ) - ) - (else - (target-dangerous-event-handler arg0 arg1 arg2 arg3) - ) - ) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-attack) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x40, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 s4 -;; Warnings: -;; INFO: Return type mismatch object vs none. - -;; s6-0: target -L231: - daddiu sp, sp, -64 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s4, 16(sp) - sq s5, 32(sp) - sq gp, 48(sp) -B0: - lw t9, ja-channel-push!(s7);; [ 0] (set! t9-0 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 1] (set! a0-0 1) [] -> [a0: ] - addiu a1, r0, 15 ;; [ 2] (set! a1-0 15) [] -> [a1: ] - jalr ra, t9 ;; [ 3] (call! a0-0 a1-0) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 4] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 5] (set! v1-1 (l.wu (+ v1-0 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 6] (set! a0-1 (+ v1-1 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 7] (set! v1-2 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 8] (set! v1-3 (l.wu (+ v1-2 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 232(v1) ;; [ 9] (set! v1-4 (l.wu (+ v1-3 232))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 10] (s.w! (+ a0-1 12) v1-4) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [ 11] (set! v1-5 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 12] (set! v1-6 (l.wu (+ v1-5 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 232(v1) ;; [ 13] (set! v1-7 (l.wu (+ v1-6 232))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 14] (set! (the-as art-joint-anim v1-8) (l.wu (+ v1-7 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 15] (set! v1-9 (l.h (+ v1-8 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 16] (set! v1-10 (+ v1-9 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 17] (set! f0-0 (gpr->fpr v1-10)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 18] (set! f0-1 (i2f f0-0)) [] -> [] - swc1 f0, 24(a0) ;; [ 19] (s.f! (+ a0-1 24) f0-1) [a0: joint-control-channel ] -> [] - lwu v1, 108(s6) ;; [ 20] (set! v1-11 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 660(v1) ;; [ 21] (set! v1-12 (l.wu (+ v1-11 660))) [v1: control-info ] -> [v1: surface ] - lwc1 f0, 88(v1) ;; [ 22] (set! f0-2 (l.f (+ v1-12 88))) [v1: surface ] -> [] - swc1 f0, 28(a0) ;; [ 23] (s.f! (+ a0-1 28) f0-2) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 24] (set! f0-3 0) [] -> [] - swc1 f0, 16(a0) ;; [ 25] (s.f! (+ a0-1 16) f0-3) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [ 26] (set! t9-1 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 27] (set! v1-13 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 28] (set! v1-14 (l.wu (+ v1-13 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 232(v1) ;; [ 29] (set! a1-1 (l.wu (+ v1-14 232))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [ 30] (set! a2-0 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 31] (call! a0-1 a1-1 a2-0) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 32] (set! v1-15 v0-1) [v0: int ] -> [v1: int ] -B1: -L232: - lwu v1, 140(s6) ;; [ 33] (set! v1-16 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lw v1, 36(v1) ;; [ 34] (set! v1-17 (l.w (+ v1-16 36))) [v1: fact-info-target ] -> [v1: pickup-type ] - daddiu v1, v1, -2 ;; [ 35] (set! v1-18 (+ v1-17 -2)) [v1: pickup-type ] -> [v1: ] - daddiu a0, s7, 8 ;; [ 36] (set! a0-2 (zero? v1-18)) [v1: ] -> [a0: symbol ] - movn a0, s7, v1 - beql s7, a0, L233 ;; [ 37] (bl! (not a0-2) L233 (no-delay!)) [a0: symbol ] -> [] -B2: - or v1, a0, r0 ;; [ 38] (set! v1-19 a0-2) [a0: symbol ] -> [v1: symbol ] - -B3: - lwu v1, 140(s6) ;; [ 39] (set! v1-20 (l.wu (+ self 140))) [s6: target ] -> [v1: fact-info-target ] - lwc1 f0, 40(v1) ;; [ 40] (set! f0-4 (l.f (+ v1-20 40))) [v1: fact-info-target ] -> [] - lui v1, L786 ;; [ 41] (set! v1-21 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 42] (set! f1-0 (l.f v1-21)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 43] (b! (>=.s f0-4 f1-0) L233 (set! v1-19 #t)) [] -> [v1: symbol ] - bc1f L233 - daddiu v1, s7, 8 - -B4: - or v1, s7, r0 ;; [ 44] (set! v1-19 #f) [] -> [v1: '#f ] -B5: -L233: - beq s7, v1, L234 ;; [ 45] (b! (not v1-19) L234 (set! v1-22 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B6: - lwu v1, 120(s6) ;; [ 46] (set! v1-23 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu gp, 36(v1) ;; [ 47] (set! gp-0 (l.wu (+ v1-23 36))) [v1: joint-control ] -> [gp: effect-control ] - lwu v1, -4(gp) ;; [ 48] (set! v1-24 (l.wu (+ gp-0 -4))) - ;; [gp: effect-control ] -> [v1: ] - lwu s5, 56(v1) ;; [ 49] (set! s5-0 (l.wu (+ v1-24 56))) - ;; [v1: ] -> [s5: ] - daddiu s4, s7, group-red-eco-spinkick;; [ 50] (set! s4-0 'group-red-eco-spinkick) [] -> [s4: symbol ] - lw t9, ja-frame-num(s7) ;; [ 51] (set! t9-2 ja-frame-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 52] (set! a0-3 0) [] -> [a0: ] - jalr ra, t9 ;; [ 53] (call! a0-3) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - or a2, v0, r0 ;; [ 54] (set! a2-1 v0-2) [v0: float ] -> [a2: float ] - addiu a3, r0, 74 ;; [ 55] (set! a3-0 74) [] -> [a3: ] - or t9, s5, r0 ;; [ 56] (set! t9-3 s5-0) - ;; [s5: ] -> [t9: ] - or a0, gp, r0 ;; [ 57] (set! a0-4 gp-0) [gp: effect-control ] -> [a0: effect-control ] - or a1, s4, r0 ;; [ 58] (set! a1-2 s4-0) [s4: symbol ] -> [a1: symbol ] - jalr ra, t9 ;; [ 59] (call! a0-4 a1-2 a2-1 a3-0) - ;; [a0: effect-control a1: symbol a2: float a3: t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 60] (set! v1-25 v0-3) [v0: object ] -> [v1: object ] - lw t9, cpad-set-buzz!(s7) ;; [ 61] (set! t9-4 cpad-set-buzz!) - ;; [] -> [t9: (function cpad-info int int time-frame none) ] - lw v1, *cpad-list*(s7) ;; [ 62] (set! v1-26 *cpad-list*) [] -> [v1: cpad-list ] - lwu a0, 4(v1) ;; [ 63] (set! a0-5 (l.wu (+ v1-26 4))) [v1: cpad-list ] -> [a0: cpad-info ] - addiu a1, r0, 1 ;; [ 64] (set! a1-3 1) [] -> [a1: ] - addiu a2, r0, 153 ;; [ 65] (set! a2-2 153) [] -> [a2: ] - addiu a3, r0, 30 ;; [ 66] (set! a3-1 30) [] -> [a3: ] - jalr ra, t9 ;; [ 67] (call! a0-5 a1-3 a2-2 a3-1) - ;; [a0: cpad-info a1: a2: a3: t9: (function cpad-info int int time-frame none) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, level-hint-spawn(s7);; [ 68] (set! t9-5 level-hint-spawn) - ;; [] -> [t9: (function game-text-id string entity process-tree game-task none) ] - addiu a0, r0, 678 ;; [ 69] (set! a0-6 678) [] -> [a0: ] - lui v1, L700 ;; [ 70] (set! a1-4 L700) [] -> [a1: ] "sksp0072" - ori v1, v1, L700 ;; "sksp0072" - daddu a1, v1, fp - or a2, s7, r0 ;; [ 71] (set! a2-3 #f) [] -> [a2: '#f ] - lw a3, *entity-pool*(s7) ;; [ 72] (set! a3-2 *entity-pool*) [] -> [a3: process-tree ] - addiu t0, r0, 0 ;; [ 73] (set! t0-0 0) [] -> [t0: ] - jalr ra, t9 ;; [ 74] (call! a0-6 a1-4 a2-3 a3-2 t0-0) - ;; [a0: a1: a2: '#f a3: process-tree t0: t9: (function game-text-id string entity process-tree game-task none) ] -> [v0: none ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 75] (set! v1-27 v0-5) [v0: none ] -> [v1: none ] -B7: -L234: - lwu v1, 108(s6) ;; [ 76] (set! v1-28 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 77] (set! v1-29 (l.wu (+ v1-28 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 78] (set! v1-30 (l.w (+ v1-29 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 79] (set! v1-31 (sll v1-30 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 80] (set! a0-7 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 81] (set! v1-32 (+ v1-31 a0-7)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 82] (set! v1-33 (l.wu (+ v1-32 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 83] (set! v1-34 (l.wu (+ v1-33 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 84] (set! a0-8 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 85] (set! a0-9 (l.wu (+ a0-8 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 86] (set! a0-10 (l.w (+ a0-9 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 87] (set! a0-11 (sll a0-10 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 88] (set! a1-5 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 89] (set! a0-12 (+ a0-11 a1-5)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 90] (set! a0-13 (l.wu (+ a0-12 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [ 91] (set! a0-14 (l.wu (+ a0-13 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 92] (set! v1-35 (logior v1-34 a0-14)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 93] (set! a0-15 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 94] (set! a0-16 (l.wu (+ a0-15 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 95] (set! a0-17 (l.w (+ a0-16 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 96] (set! a0-18 (sll a0-17 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 97] (set! a1-6 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 98] (set! a0-19 (+ a0-18 a1-6)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 99] (set! a0-20 (l.wu (+ a0-19 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [100] (set! a0-21 (l.wu (+ a0-20 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [101] (set! v1-36 (logior v1-35 a0-21)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [102] (set! v1-37 (logand v1-36 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L235 ;; [103] (bl! (zero? v1-37) L235 (no-delay!)) [v1: pad-buttons ] -> [] -B8: - or v1, s7, r0 ;; [104] (set! v1-38 #f) [] -> [v1: '#f ] - -B9: - lw t9, can-jump?(s7) ;; [105] (set! t9-6 can-jump?) [] -> [t9: (function symbol symbol :behavior target) ] - or a0, s7, r0 ;; [106] (set! a0-22 #f) [] -> [a0: '#f ] - jalr ra, t9 ;; [107] (call! a0-22) - ;; [a0: '#f t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [108] (set! v1-38 v0-6) [v0: symbol ] -> [v1: symbol ] -B10: -L235: - beq s7, v1, L236 ;; [109] (b! (not v1-38) L236 (set! v1-39 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B11: - lw t9, enter-state(s7) ;; [110] (set! t9-7 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [111] (set! v1-40 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 4(v1) ;; [112] (set! f0-5 (l.f (+ v1-40 4))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [113] (set! a0-23 (fpr->gpr f0-5)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [114] (set! v1-41 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 8(v1) ;; [115] (set! f0-6 (l.f (+ v1-41 8))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [116] (set! a1-7 (fpr->gpr f0-6)) [] -> [a1: meters ] - or a2, s7, r0 ;; [117] (set! a2-4 #f) [] -> [a2: '#f ] - lw v1, target-jump(s7) ;; [118] (set! v1-42 target-jump) [] -> [v1: (state float float surface target) ] - sw v1, 72(s6) ;; [119] (s.w! (+ self 72) v1-42) - ;; [v1: (state float float surface target) s6: target ] -> [] - jalr ra, t9 ;; [120] (call! a0-23 a1-7 a2-4) - ;; [a0: meters a1: meters a2: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [121] (set! v1-43 v0-7) [v0: object ] -> [v1: object ] -B12: -L236: - lwu s6, 44(s6) ;; [122] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [123] (set! v1-44 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [124] (set! v1-45 (l.wu (+ v1-44 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [125] (set! a0-24 (+ v1-45 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [126] (set! v1-46 (l.wu (+ a0-24 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [127] (set! v1-47 (l.wu (+ v1-46 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [128] (set! v1-48 (l.h (+ v1-47 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [129] (set! v1-49 (+ v1-48 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [130] (set! f0-7 (gpr->fpr v1-49)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [131] (set! f0-8 (i2f f0-7)) [] -> [] - swc1 f0, 24(a0) ;; [132] (s.f! (+ a0-24 24) f0-8) [a0: joint-control-channel ] -> [] - lwu v1, 108(s6) ;; [133] (set! v1-50 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 660(v1) ;; [134] (set! v1-51 (l.wu (+ v1-50 660))) [v1: control-info ] -> [v1: surface ] - lwc1 f0, 88(v1) ;; [135] (set! f0-9 (l.f (+ v1-51 88))) [v1: surface ] -> [] - swc1 f0, 28(a0) ;; [136] (s.f! (+ a0-24 28) f0-9) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [137] (set! t9-8 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [138] (set! a1-8 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [139] (set! a2-5 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [140] (call! a0-24 a1-8 a2-5) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [141] (set! v1-52 v0-8) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [142] (set! t9-9 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [143] (set! a0-25 0) [] -> [a0: ] - jalr ra, t9 ;; [144] (call! a0-25) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L232 ;; [145] (b! (not v0-9) L232 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B13: - or v1, s7, r0 ;; [146] (set! v1-53 #f) [] -> [v1: '#f ] - lw t9, enter-state(s7) ;; [147] (set! t9-10 enter-state) [] -> [t9: ] - lw v1, target-stance(s7) ;; [148] (set! v1-54 target-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [149] (s.w! (+ self 72) v1-54) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [150] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 48(sp) - lq s5, 32(sp) - lq s4, 16(sp) - jr ra - daddiu sp, sp, 64 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-attack) - () - (ja-channel-push! 1 (seconds 0.05)) - (ja-no-eval :group! (-> self draw art-group data 51) - :num! (seek! max (-> self control unknown-surface01 align-speed)) - :frame-num 0.0 - ) - (until (ja-done? 0) - (when (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) - (>= (-> self fact-info-target eco-level) 1.0) - ) - (dummy-10 (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 74) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1)) - (level-hint-spawn - (game-text-id misty-eco-red-first-use) - "sksp0072" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - (suspend) - (ja :num! (seek! max (-> self control unknown-surface01 align-speed))) - ) - (go target-stance) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (exit target-attack) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; s6-0: target -L237: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lw v1, *display*(s7) ;; [ 0] (set! v1-0 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 1] (set! v1-1 (l.d (+ v1-0 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 2] (set! a0-0 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 1684(a0) ;; [ 3] (s.d! (+ a0-0 1684) v1-1) [v1: time-frame a0: control-info ] -> [] - lw t9, target-exit(s7) ;; [ 4] (set! t9-0 target-exit) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 5] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (exit target-attack) - () - (set! (-> self control unknown-dword33) (-> *display* base-frame-counter)) - (target-exit) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-attack) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; Warnings: -;; INFO: Return type mismatch float vs none. - -;; s6-0: target -L238: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lw v1, *display*(s7) ;; [ 0] (set! v1-0 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 1] (set! v1-1 (l.d (+ v1-0 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 2] (s.d! (+ self 164) v1-1) [v1: time-frame s6: target ] -> [] - lw t9, target-start-attack(s7);; [ 3] (set! t9-0 target-start-attack) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 4] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, target-danger-set!(s7);; [ 5] (set! t9-1 target-danger-set!) - ;; [] -> [t9: (function symbol symbol float :behavior target) ] - daddiu a0, s7, spin ;; [ 6] (set! a0-0 'spin) [] -> [a0: symbol ] - or a1, s7, r0 ;; [ 7] (set! a1-0 #f) [] -> [a1: '#f ] - jalr ra, t9 ;; [ 8] (call! a0-0 a1-0) - ;; [a0: symbol a1: '#f t9: (function symbol symbol float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - lw v1, *attack-mods*(s7) ;; [ 9] (set! v1-2 *attack-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [ 10] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [ 11] (s.w! (+ a0-1 656) v1-2) [v1: surface a0: control-info ] -> [] - lui v1, L749 ;; [ 12] (set! v1-3 L749) [] -> [v1: ] - ori v1, v1, L749 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 13] (set! f0-0 (l.f v1-3)) [v1: ] -> [] - lwu v1, 152(s6) ;; [ 14] (set! v1-4 (l.wu (+ self 152))) [s6: target ] -> [v1: water-control ] - swc1 f0, 276(v1) ;; [ 15] (s.f! (+ v1-4 276) f0-0) [v1: water-control ] -> [] - mtc1 f0, r0 ;; [ 16] (set! f0-1 0) [] -> [] - lwu v1, 184(s6) ;; [ 17] (set! v1-5 (l.wu (+ self 184))) [s6: target ] -> [v1: joint-mod ] - swc1 f0, 116(v1) ;; [ 18] (s.f! (+ v1-5 116) f0-1) [v1: joint-mod ] -> [] - mfc1 v0, f0 ;; [ 19] (set! v0-2 (fpr->gpr f0-1)) [] -> [v0: float ] - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-attack) - () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (target-start-attack) - (target-danger-set! 'spin #f) - (set! (-> self control unknown-surface00) *attack-mods*) - (set! (-> self water drip-mult) 4.0) - (set! (-> self neck flex-blend) 0.0) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-hit-ground) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; Warnings: -;; INFO: Return type mismatch object vs none. - - -L239: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lw t9, target-hit-ground-anim(s7);; [ 0] (set! t9-0 target-hit-ground-anim) - ;; [] -> [t9: (function symbol symbol :behavior target) ] - or a0, s7, r0 ;; [ 1] (set! a0-1 #f) [] -> [a0: '#f ] - jalr ra, t9 ;; [ 2] (call! a0-1) - ;; [a0: '#f t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - lw t9, enter-state(s7) ;; [ 3] (set! t9-1 enter-state) [] -> [t9: ] - lw v1, target-stance(s7) ;; [ 4] (set! v1-0 target-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 5] (s.w! (+ self 72) v1-0) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 6] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler (code target-hit-ground) ((arg0 symbol)) (target-hit-ground-anim #f) (go target-stance) (none)) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-hit-ground) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; s6-0: target -L240: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lwu v1, 108(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 1] (set! v1-1 (l.wu (+ v1-0 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 2] (set! v1-2 (l.w (+ v1-1 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 3] (set! v1-3 (sll v1-2 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 4] (set! a0-0 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 5] (set! v1-4 (+ v1-3 a0-0)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 6] (set! v1-5 (l.wu (+ v1-4 4))) [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 7] (set! v1-6 (l.wu (+ v1-5 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 8] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 9] (set! a0-2 (l.wu (+ a0-1 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 10] (set! a0-3 (l.w (+ a0-2 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 11] (set! a0-4 (sll a0-3 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 12] (set! a1-0 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 13] (set! a0-5 (+ a0-4 a1-0)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 14] (set! a0-6 (l.wu (+ a0-5 4))) [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [ 15] (set! a0-7 (l.wu (+ a0-6 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 16] (set! v1-7 (logior v1-6 a0-7)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 17] (set! a0-8 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 18] (set! a0-9 (l.wu (+ a0-8 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 19] (set! a0-10 (l.w (+ a0-9 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 20] (set! a0-11 (sll a0-10 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 21] (set! a1-1 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 22] (set! a0-12 (+ a0-11 a1-1)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 23] (set! a0-13 (l.wu (+ a0-12 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [ 24] (set! a0-14 (l.wu (+ a0-13 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 25] (set! v1-8 (logior v1-7 a0-14)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [ 26] (set! v1-9 (logand v1-8 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L241 ;; [ 27] (bl! (zero? v1-9) L241 (no-delay!)) [v1: pad-buttons ] -> [] -B1: - or v1, s7, r0 ;; [ 28] (set! v1-10 #f) [] -> [v1: '#f ] - -B2: - lw t9, can-jump?(s7) ;; [ 29] (set! t9-0 can-jump?) [] -> [t9: (function symbol symbol :behavior target) ] - or a0, s7, r0 ;; [ 30] (set! a0-15 #f) [] -> [a0: '#f ] - jalr ra, t9 ;; [ 31] (call! a0-15) - ;; [a0: '#f t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 32] (set! v1-10 v0-0) [v0: symbol ] -> [v1: symbol ] -B3: -L241: - beq s7, v1, L242 ;; [ 33] (b! (not v1-10) L242 (set! v1-11 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B4: - lw t9, enter-state(s7) ;; [ 34] (set! t9-1 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [ 35] (set! v1-12 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 4(v1) ;; [ 36] (set! f0-0 (l.f (+ v1-12 4))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [ 37] (set! a0-16 (fpr->gpr f0-0)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [ 38] (set! v1-13 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 8(v1) ;; [ 39] (set! f0-1 (l.f (+ v1-13 8))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [ 40] (set! a1-2 (fpr->gpr f0-1)) [] -> [a1: meters ] - or a2, s7, r0 ;; [ 41] (set! a2-0 #f) [] -> [a2: '#f ] - lw v1, target-jump(s7) ;; [ 42] (set! v1-14 target-jump) [] -> [v1: (state float float surface target) ] - sw v1, 72(s6) ;; [ 43] (s.w! (+ self 72) v1-14) - ;; [v1: (state float float surface target) s6: target ] -> [] - jalr ra, t9 ;; [ 44] (call! a0-16 a1-2 a2-0) - ;; [a0: meters a1: meters a2: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 45] (set! v1-15 v0-1) [v0: object ] -> [v1: object ] -B5: -L242: - lw t9, can-exit-duck?(s7) ;; [ 46] (set! t9-2 can-exit-duck?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 47] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - bnel s7, v0, L243 ;; [ 48] (bl! (truthy v0-2) L243 (no-delay!)) [v0: symbol ] -> [] -B6: - or v1, s7, r0 ;; [ 49] (set! v1-16 #f) [] -> [v1: '#f ] - -B7: - lw t9, can-duck?(s7) ;; [ 50] (set! t9-3 can-duck?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 51] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 52] (set! v1-16 v0-3) [v0: symbol ] -> [v1: symbol ] -B8: -L243: - beq s7, v1, L244 ;; [ 53] (b! (not v1-16) L244 (set! v1-17 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B9: - lw t9, enter-state(s7) ;; [ 54] (set! t9-4 enter-state) [] -> [t9: ] - lw v1, target-duck-stance(s7);; [ 55] (set! v1-18 target-duck-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 56] (s.w! (+ self 72) v1-18) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 57] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 58] (set! v1-19 v0-4) [v0: object ] -> [v1: object ] -B10: -L244: - lwu v1, 108(s6) ;; [ 59] (set! v1-20 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 60] (set! v1-21 (l.wu (+ v1-20 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 61] (set! v1-22 (l.w (+ v1-21 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 62] (set! v1-23 (sll v1-22 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 63] (set! a0-17 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 64] (set! v1-24 (+ v1-23 a0-17)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 65] (set! v1-25 (l.wu (+ v1-24 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwc1 f0, 72(v1) ;; [ 66] (set! f0-2 (l.f (+ v1-25 72))) [v1: cpad-info ] -> [] - mtc1 f1, r0 ;; [ 67] (set! f1-0 0) [] -> [] - c.eq.s f0, f1 ;; [ 68] (b! (=.s f0-2 f1-0) L246 (set! v1-26 #f)) [] -> [v1: '#f ] - bc1t L246 - or v1, s7, r0 - -B11: - lwu v1, 152(s6) ;; [ 69] (set! v1-27 (l.wu (+ self 152))) [s6: target ] -> [v1: water-control ] - lwu v1, 0(v1) ;; [ 70] (set! v1-28 (l.wu v1-27)) [v1: water-control ] -> [v1: water-flags ] - andi v1, v1, 1024 ;; [ 71] (set! v1-29 (logand v1-28 1024)) [v1: water-flags ] -> [v1: water-flags ] - beq v1, r0, L245 ;; [ 72] (b! (zero? v1-29) L245 (nop!)) [v1: water-flags ] -> [] - sll r0, r0, 0 - -B12: - lw t9, enter-state(s7) ;; [ 73] (set! t9-5 enter-state) [] -> [t9: ] - lw v1, target-wade-walk(s7);; [ 74] (set! v1-30 target-wade-walk) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 75] (s.w! (+ self 72) v1-30) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 76] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 77] (set! v1-31 v0-5) [v0: object ] -> [v1: object ] - beq r0, r0, L246 ;; [ 78] (b! #t L246 (nop!)) [] -> [] - sll r0, r0, 0 - -B13: -L245: - lw t9, enter-state(s7) ;; [ 79] (set! t9-6 enter-state) [] -> [t9: ] - lw v1, target-walk(s7) ;; [ 80] (set! v1-32 target-walk) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 81] (s.w! (+ self 72) v1-32) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 82] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 83] (set! v1-33 v0-6) [v0: object ] -> [v1: object ] -B14: -L246: - lwu v1, 108(s6) ;; [ 84] (set! v1-34 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 85] (set! v1-35 (l.wu (+ v1-34 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 86] (set! v1-36 (l.w (+ v1-35 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 87] (set! v1-37 (sll v1-36 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 88] (set! a0-18 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 89] (set! v1-38 (+ v1-37 a0-18)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 90] (set! v1-39 (l.wu (+ v1-38 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 40(v1) ;; [ 91] (set! v1-40 (l.wu (+ v1-39 40))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 3072 ;; [ 92] (set! v1-41 (logand v1-40 3072)) [v1: pad-buttons ] -> [v1: pad-buttons ] - bnel v1, r0, L247 ;; [ 93] (bl! (nonzero? v1-41) L247 (no-delay!)) [v1: pad-buttons ] -> [] -B15: - daddiu v1, s7, 8 ;; [ 94] (set! v1-42 #t) [] -> [v1: symbol ] - -B16: - lw t9, can-exit-duck?(s7) ;; [ 95] (set! t9-7 can-exit-duck?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 96] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L247 ;; [ 97] (b! (not v0-7) L247 (set! v1-42 #t)) [v0: symbol ] -> [v1: symbol ] - daddiu v1, s7, 8 - -B17: - or v1, s7, r0 ;; [ 98] (set! v1-42 #f) [] -> [v1: '#f ] -B18: -L247: - beql s7, v1, L248 ;; [ 99] (bl! (not v1-42) L248 (no-delay!)) [v1: symbol ] -> [] -B19: - or v1, v1, r0 ;; [100] (set! v1-43 v1-42) [v1: symbol ] -> [v1: symbol ] - -B20: - lw t9, can-duck?(s7) ;; [101] (set! t9-8 can-duck?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [102] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [103] (set! v1-43 v0-8) [v0: symbol ] -> [v1: symbol ] -B21: -L248: - beq s7, v1, L249 ;; [104] (b! (not v1-43) L249 (set! v1-44 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B22: - lw t9, enter-state(s7) ;; [105] (set! t9-9 enter-state) [] -> [t9: ] - lw v1, target-duck-stance(s7);; [106] (set! v1-45 target-duck-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [107] (s.w! (+ self 72) v1-45) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [108] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [109] (set! v1-46 v0-9) [v0: object ] -> [v1: object ] -B23: -L249: - lwu v1, 108(s6) ;; [110] (set! v1-47 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [111] (set! v1-48 (l.wu (+ v1-47 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [112] (set! v1-49 (l.w (+ v1-48 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [113] (set! v1-50 (sll v1-49 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [114] (set! a0-19 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [115] (set! v1-51 (+ v1-50 a0-19)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [116] (set! v1-52 (l.wu (+ v1-51 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [117] (set! v1-53 (l.wu (+ v1-52 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 8192 ;; [118] (set! v1-54 (logand v1-53 8192)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L250 ;; [119] (bl! (zero? v1-54) L250 (no-delay!)) [v1: pad-buttons ] -> [] -B24: - or v1, s7, r0 ;; [120] (set! v1-55 #f) [] -> [v1: '#f ] - -B25: - lw t9, can-feet?(s7) ;; [121] (set! t9-10 can-feet?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [122] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [123] (set! v1-55 v0-10) [v0: symbol ] -> [v1: symbol ] -B26: -L250: - beq s7, v1, L251 ;; [124] (b! (not v1-55) L251 (set! v1-56 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B27: - lw t9, enter-state(s7) ;; [125] (set! t9-11 enter-state) [] -> [t9: ] - lw v1, target-attack(s7) ;; [126] (set! v1-57 target-attack) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [127] (s.w! (+ self 72) v1-57) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [128] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [129] (set! v1-58 v0-11) [v0: object ] -> [v1: object ] -B28: -L251: - lw t9, can-hands?(s7) ;; [130] (set! t9-12 can-hands?) [] -> [t9: (function symbol symbol :behavior target) ] - daddiu a0, s7, #t ;; [131] (set! a0-20 #t) [] -> [a0: symbol ] - jalr ra, t9 ;; [132] (call! a0-20) - ;; [a0: symbol t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L252 ;; [133] (b! (not v0-12) L252 (set! v1-59 #f)) [v0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B29: - lw t9, enter-state(s7) ;; [134] (set! t9-13 enter-state) [] -> [t9: ] - lw v1, target-running-attack(s7);; [135] (set! v1-60 target-running-attack) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [136] (s.w! (+ self 72) v1-60) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [137] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [138] (set! v1-61 v0-13) [v0: object ] -> [v1: object ] -B30: -L252: - lw t9, fall-test(s7) ;; [139] (set! t9-14 fall-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [140] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, slide-down-test(s7);; [141] (set! t9-15 slide-down-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [142] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-hit-ground) - () - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - (if (and (not (can-exit-duck?)) (can-duck?)) - (go target-duck-stance) - ) - (when (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - (if (logtest? (-> self water flags) (water-flags wt10)) - (go target-wade-walk) - (go target-walk) - ) - ) - (if (and (or (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (not (can-exit-duck?))) (can-duck?)) - (go target-duck-stance) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) - (go target-attack) - ) - (if (can-hands? #t) - (go target-running-attack) - ) - (fall-test) - (slide-down-test) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-hit-ground) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x40, fp? 1 ra? 1 ep? 1 - ;stack_vars: 16 bytes at 16 - ;gprs: gp s5 -;; v1-4: art-joint-anim a0-0: symbol s6-0: target f0-1: float -L253: - daddiu sp, sp, -64 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s5, 32(sp) - sq gp, 48(sp) -B0: - or gp, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: symbol ] -> [gp: symbol ] - daddiu v1, s7, stuck ;; [ 1] (set! v1-0 'stuck) [] -> [v1: symbol ] - bne gp, v1, L254 ;; [ 2] (b! (!= arg0 v1-0) L254 (nop!)) [v1: symbol gp: symbol ] -> [] - sll r0, r0, 0 - -B1: - or v1, s7, r0 ;; [ 3] (set! v1-1 #f) [] -> [v1: '#f ] - beq r0, r0, L260 ;; [ 4] (b! #t L260 (nop!)) [] -> [] - sll r0, r0, 0 - -B2: -L254: - lwu v1, 120(s6) ;; [ 5] (set! v1-2 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 6] (set! v1-3 (l.w (+ v1-2 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 7] (b! (<=0.si v1-3) L255 (set! v1-4 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L255 - or v1, s7, r0 - -B3: - lwu v1, 120(s6) ;; [ 8] (set! v1-5 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 9] (set! v1-6 (l.wu (+ v1-5 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 10] (set! v1-4 (l.wu (+ v1-6 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B4: -L255: - lwu a0, 116(s6) ;; [ 11] (set! a0-1 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 12] (set! a0-2 (l.wu (+ a0-1 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 196(a0) ;; [ 13] (set! a0-3 (l.wu (+ a0-2 196))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [ 14] (set! a1-0 (= v1-4 a0-3)) [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L256 ;; [ 15] (bl! (truthy a1-0) L256 (no-delay!)) [a1: symbol ] -> [] -B5: - or a0, a1, r0 ;; [ 16] (set! a0-4 a1-0) [a1: symbol ] -> [a0: symbol ] - -B6: - lwu a0, 116(s6) ;; [ 17] (set! a0-5 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 18] (set! a0-6 (l.wu (+ a0-5 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 200(a0) ;; [ 19] (set! a0-7 (l.wu (+ a0-6 200))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 20] (set! a0-4 (= v1-4 a0-7)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B7: -L256: - beq s7, a0, L257 ;; [ 21] (b! (not a0-4) L257 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B8: - lwu v1, 120(s6) ;; [ 22] (set! v1-7 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu a0, 36(v1) ;; [ 23] (set! a0-8 (l.wu (+ v1-7 36))) [v1: joint-control ] -> [a0: effect-control ] - lwu v1, -4(a0) ;; [ 24] (set! v1-8 (l.wu (+ a0-8 -4))) - ;; [a0: effect-control ] -> [v1: ] - lwu t9, 56(v1) ;; [ 25] (set! t9-0 (l.wu (+ v1-8 56))) - ;; [v1: ] -> [t9: ] - daddiu a1, s7, group-blue-hit-ground-effect;; [ 26] (set! a1-1 'group-blue-hit-ground-effect) [] -> [a1: symbol ] - lui v1, L814 ;; [ 27] (set! v1-9 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a2, 0(v1) ;; [ 28] (set! a2-0 (l.w v1-9)) [v1: ] -> [a2: int ] - addiu a3, r0, -1 ;; [ 29] (set! a3-0 -1) [] -> [a3: ] - jalr ra, t9 ;; [ 30] (call! a0-8 a1-1 a2-0 a3-0) - ;; [a0: effect-control a1: symbol a2: int a3: t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 31] (set! v1-10 v0-0) [v0: object ] -> [v1: object ] - lw t9, cpad-set-buzz!(s7) ;; [ 32] (set! t9-1 cpad-set-buzz!) - ;; [] -> [t9: (function cpad-info int int time-frame none) ] - lw v1, *cpad-list*(s7) ;; [ 33] (set! v1-11 *cpad-list*) [] -> [v1: cpad-list ] - lwu a0, 4(v1) ;; [ 34] (set! a0-9 (l.wu (+ v1-11 4))) [v1: cpad-list ] -> [a0: cpad-info ] - addiu a1, r0, 1 ;; [ 35] (set! a1-2 1) [] -> [a1: ] - addiu a2, r0, 255 ;; [ 36] (set! a2-1 255) [] -> [a2: ] - addiu a3, r0, 90 ;; [ 37] (set! a3-1 90) [] -> [a3: ] - jalr ra, t9 ;; [ 38] (call! a0-9 a1-2 a2-1 a3-1) - ;; [a0: cpad-info a1: a2: a3: t9: (function cpad-info int int time-frame none) ] -> [v0: none ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 39] (set! v1-12 v0-1) [v0: none ] -> [v1: none ] - beq r0, r0, L260 ;; [ 40] (b! #t L260 (nop!)) [] -> [] - sll r0, r0, 0 - -B9: -L257: - lwu v1, 108(s6) ;; [ 41] (set! v1-13 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 42] (set! v1-14 (l.wu (+ v1-13 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 43] (set! a0-10 (+ v1-14 28)) [v1: dynamics ] -> [a0: vector ] - daddiu v1, sp, 16 ;; [ 44] (set! v1-15 (+ sp-0 16)) [sp: ] -> [v1: vector ] - lwu a1, 108(s6) ;; [ 45] (set! a1-3 (l.wu (+ self 108))) [s6: target ] -> [a1: control-info ] - daddiu a1, a1, 1212 ;; [ 46] (set! a1-4 (+ a1-3 1212)) [a1: control-info ] -> [a1: vector ] - lwu a2, 108(s6) ;; [ 47] (set! a2-2 (l.wu (+ self 108))) [s6: target ] -> [a2: control-info ] - daddiu a2, a2, 12 ;; [ 48] (set! a2-3 (+ a2-2 12)) [a2: control-info ] -> [a2: vector ] - lqc2 vf4, 0(a1) ;; [ 49] (set! v1-16 (vector-!2 v1-15 a1-4 a2-3)) - ;; [v1: vector a1: vector a2: vector ] -> [v1: vector ] - lqc2 vf5, 0(a2) - vmove.w vf6, vf0 - vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) - lwc1 f0, 0(a0) ;; [ 50] (set! f0-0 (vec3dot a0-10 v1-16)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 51] (set! v1-17 (fpr->gpr f0-0)) [] -> [v1: float ] - mtc1 f0, v1 ;; [ 52] (set! f0-1 (gpr->fpr v1-17)) [v1: float ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 53] (set! v1-18 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f1, 144(v1) ;; [ 54] (set! f1-0 (l.f (+ v1-18 144))) [v1: target-bank ] -> [] - c.lt.s f1, f0 ;; [ 55] (b! (<.s f1-0 f0-1) L258 (set! v1-19 #t)) [] -> [v1: symbol ] - bc1t L258 - daddiu v1, s7, 8 - -B10: - or v1, s7, r0 ;; [ 56] (set! v1-19 #f) [] -> [v1: '#f ] -B11: -L258: - beql s7, v1, L259 ;; [ 57] (bl! (not v1-19) L259 (no-delay!)) [v1: symbol ] -> [] -B12: - or v1, v1, r0 ;; [ 58] (set! v1-20 v1-19) [v1: symbol ] -> [v1: symbol ] - -B13: - daddiu v1, s7, 8 ;; [ 59] (set! v1-21 #t) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [ 60] (set! a0-11 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 268(a0) ;; [ 61] (set! a0-12 (l.d (+ a0-11 268))) [a0: control-info ] -> [a0: cshape-moving-flags ] - andi a0, a0, 1024 ;; [ 62] (set! a0-13 (logand a0-12 1024)) - ;; [a0: cshape-moving-flags ] -> [a0: cshape-moving-flags ] - movn v1, s7, a0 ;; [ 63] (cmove-#f-nonzero v1-20 a0-13 v1-21) - ;; [v1: symbol a0: cshape-moving-flags ] -> [v1: symbol ] -B14: -L259: - beq s7, v1, L260 ;; [ 64] (b! (not v1-20) L260 (set! v1-22 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B15: - lw t9, enter-state(s7) ;; [ 65] (set! t9-2 enter-state) [] -> [t9: ] - mfc1 a0, f0 ;; [ 66] (set! a0-14 (fpr->gpr f0-1)) [] -> [a0: float ] - lw v1, target-hit-ground-hard(s7);; [ 67] (set! v1-23 target-hit-ground-hard) [] -> [v1: (state float target) ] - sw v1, 72(s6) ;; [ 68] (s.w! (+ self 72) v1-23) [v1: (state float target) s6: target ] -> [] - jalr ra, t9 ;; [ 69] (call! a0-14) [a0: float t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 70] (set! v1-24 v0-2) [v0: object ] -> [v1: object ] -B16: -L260: - daddiu v1, s7, stuck ;; [ 71] (set! v1-25 'stuck) [] -> [v1: symbol ] - bne gp, v1, L261 ;; [ 72] (b! (!= arg0 v1-25) L261 (nop!)) [v1: symbol gp: symbol ] -> [] - sll r0, r0, 0 - -B17: - or v1, s7, r0 ;; [ 73] (set! v1-26 #f) [] -> [v1: '#f ] - beq r0, r0, L262 ;; [ 74] (b! #t L262 (nop!)) [] -> [] - sll r0, r0, 0 - -B18: -L261: - lw t9, target-land-effect(s7);; [ 75] (set! t9-3 target-land-effect) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 76] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 77] (set! v1-27 v0-3) [v0: none ] -> [v1: none ] -B19: -L262: - lwu v1, 108(s6) ;; [ 78] (set! v1-28 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sd r0, 1668(v1) ;; [ 79] (s.d! (+ v1-28 1668) 0) [v1: control-info ] -> [] - lwu v1, 108(s6) ;; [ 80] (set! v1-29 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sd r0, 1684(v1) ;; [ 81] (s.d! (+ v1-29 1684) 0) [v1: control-info ] -> [] - lwu v1, 108(s6) ;; [ 82] (set! v1-30 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 412(v1) ;; [ 83] (set! f0-2 (l.f (+ v1-30 412))) [v1: control-info ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 84] (set! v1-31 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f1, 188(v1) ;; [ 85] (set! f1-1 (l.f (+ v1-31 188))) [v1: target-bank ] -> [] - c.lt.s f0, f1 ;; [ 86] (b! (<.s f0-2 f1-1) L263 (set! v1-32 #f)) [] -> [v1: '#f ] - bc1t L263 - or v1, s7, r0 - -B20: - lw t9, set-forward-vel(s7);; [ 87] (set! t9-4 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - lui v1, L814 ;; [ 88] (set! v1-33 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 89] (set! a0-15 (l.w v1-33)) [v1: ] -> [a0: int ] - jalr ra, t9 ;; [ 90] (call! a0-15) - ;; [a0: int t9: (function float vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 91] (set! v1-34 v0-4) [v0: vector ] -> [v1: vector ] -B21: -L263: - addiu v1, r0, 1 ;; [ 92] (set! v1-35 1) [] -> [v1: ] - lwu a0, 108(s6) ;; [ 93] (set! a0-16 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 260(a0) ;; [ 94] (set! a0-17 (l.wu (+ a0-16 260))) [a0: control-info ] -> [a0: pat-surface ] - dsll32 a0, a0, 20 ;; [ 95] (set! a0-18 (sll a0-17 52)) [a0: pat-surface ] -> [a0: ( << 52) ] - dsrl32 a0, a0, 26 ;; [ 96] (set! a0-19 (srl a0-18 58)) [a0: ( << 52) ] -> [a0: pat-material ] - beq a0, v1, L264 ;; [ 97] (b! (= a0-19 v1-35) L264 (set! v1-36 #f)) - ;; [v1: a0: pat-material ] -> [v1: '#f ] - or v1, s7, r0 - -B22: - lw t9, delete-back-vel(s7);; [ 98] (set! t9-5 delete-back-vel) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 99] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [100] (set! v1-37 v0-5) [v0: none ] -> [v1: none ] -B23: -L264: - lw v1, *walk-mods*(s7) ;; [101] (set! v1-38 *walk-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [102] (set! a0-20 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [103] (s.w! (+ a0-20 656) v1-38) [v1: surface a0: control-info ] -> [] - lwu gp, 152(s6) ;; [104] (set! gp-1 (l.wu (+ self 152))) [s6: target ] -> [gp: water-control ] - lwu v1, -4(gp) ;; [105] (set! v1-39 (l.wu (+ gp-1 -4))) - ;; [gp: water-control ] -> [v1: ] - lwu s5, 60(v1) ;; [106] (set! s5-0 (l.wu (+ v1-39 60))) - ;; [v1: ] -> [s5: ] - lw t9, lerp-scale(s7) ;; [107] (set! t9-6 lerp-scale) [] -> [t9: (function float float float float float float) ] - lui v1, L814 ;; [108] (set! v1-40 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a0, 0(v1) ;; [109] (set! a0-21 (l.w v1-40)) [v1: ] -> [a0: int ] - lui v1, L726 ;; [110] (set! v1-41 L726) [] -> [v1: ] - ori v1, v1, L726 - addu v1, fp, v1 - lw a1, 0(v1) ;; [111] (set! a1-5 (l.w v1-41)) [v1: ] -> [a1: int ] - lwu v1, 108(s6) ;; [112] (set! v1-42 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 412(v1) ;; [113] (set! f0-3 (l.f (+ v1-42 412))) [v1: control-info ] -> [] - mfc1 a2, f0 ;; [114] (set! a2-4 (fpr->gpr f0-3)) [] -> [a2: meters ] - lui v1, L732 ;; [115] (set! v1-43 L732) [] -> [v1: ] - ori v1, v1, L732 - addu v1, fp, v1 - lw a3, 0(v1) ;; [116] (set! a3-2 (l.w v1-43)) [v1: ] -> [a3: int ] - lui v1, L734 ;; [117] (set! v1-44 L734) [] -> [v1: ] - ori v1, v1, L734 - addu v1, fp, v1 - lw t0, 0(v1) ;; [118] (set! t0-0 (l.w v1-44)) [v1: ] -> [t0: int ] - jalr ra, t9 ;; [119] (call! a0-21 a1-5 a2-4 a3-2 t0-0) - ;; [a0: int a1: int a2: meters a3: int t0: int t9: (function float float float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - or a1, v0, r0 ;; [120] (set! a1-6 v0-6) [v0: float ] -> [a1: float ] - addiu a2, r0, 600 ;; [121] (set! a2-5 600) [] -> [a2: ] - addiu a3, r0, 1500 ;; [122] (set! a3-3 1500) [] -> [a3: ] - or t9, s5, r0 ;; [123] (set! t9-7 s5-0) - ;; [s5: ] -> [t9: ] - or a0, gp, r0 ;; [124] (set! a0-22 gp-1) [gp: water-control ] -> [a0: water-control ] - jalr ra, t9 ;; [125] (call! a0-22 a1-6 a2-5 a3-3) - ;; [a0: water-control a1: float a2: a3: t9: ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 48(sp) - lq s5, 32(sp) - jr ra - daddiu sp, sp, 64 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-hit-ground) - ((arg0 symbol)) - (cond - ((= arg0 'stuck) - ) - ((let ((v1-4 (ja-group))) - (or (= v1-4 (-> self draw art-group data 42)) (= v1-4 (-> self draw art-group data 43))) - ) - (dummy-10 (-> self skel effect) 'group-blue-hit-ground-effect (the-as float 0.0) -1) - (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.3)) - ) - (else - (let ((f0-1 (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) (-> self control unknown-vector52) (-> self control trans)) - ) - ) - ) - (if (and (< (-> *TARGET-bank* fall-far) f0-1) - (zero? (logand (-> self control status) (cshape-moving-flags on-water))) - ) - (go target-hit-ground-hard f0-1) - ) - ) - ) - ) - (cond - ((= arg0 'stuck) - ) - (else - (target-land-effect) - ) - ) - (set! (-> self control unknown-dword31) 0) - (set! (-> self control unknown-dword33) 0) - (if (>= (-> self control ground-impact-vel) (-> *TARGET-bank* fall-stumble-threshold)) - (set-forward-vel (the-as float 0.0)) - ) - (if (!= (-> self control ground-pat material) (pat-material ice)) - (delete-back-vel) - ) - (set! (-> self control unknown-surface00) *walk-mods*) - (start-bobbing! - (-> self water) - (lerp-scale - (the-as float 0.0) - (the-as float 4096.0) - (-> self control ground-impact-vel) - (the-as float 40960.0) - (the-as float 102400.0) - ) - 600 - 1500 - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-falling) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; Warnings: -;; INFO: Return type mismatch symbol vs none. - - -L265: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lw t9, target-falling-anim(s7);; [ 0] (set! t9-0 target-falling-anim) - ;; [] -> [t9: (function time-frame time-frame symbol :behavior target) ] - addiu a0, r0, -1 ;; [ 1] (set! a0-1 -1) [] -> [a0: ] - addiu a1, r0, 99 ;; [ 2] (set! a1-0 99) [] -> [a1: ] - jalr ra, t9 ;; [ 3] (call! a0-1 a1-0) - ;; [a0: a1: t9: (function time-frame time-frame symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler (code target-falling) ((arg0 symbol)) (target-falling-anim -1 (seconds 0.33)) (none)) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-falling) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; s6-0: target -L266: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lw t9, target-falling-trans(s7);; [ 0] (set! t9-0 target-falling-trans) - ;; [] -> [t9: (function basic time-frame none :behavior target) ] - lwu v1, 108(s6) ;; [ 1] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lw a0, 2180(v1) ;; [ 2] (set! a0-0 (l.w (+ v1-0 2180))) [v1: control-info ] -> [a0: spool-anim ] - lwu v1, 108(s6) ;; [ 3] (set! v1-1 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lw v1, 2180(v1) ;; [ 4] (set! v1-2 (l.w (+ v1-1 2180))) [v1: control-info ] -> [v1: spool-anim ] - bne v1, s7, L267 ;; [ 5] (b! (!= v1-2 #f) L267 (nop!)) [v1: spool-anim ] -> [] - sll r0, r0, 0 - -B1: - addiu a1, r0, 0 ;; [ 6] (set! a1-0 0) [] -> [a1: ] - beq r0, r0, L268 ;; [ 7] (b! #t L268 (nop!)) [] -> [] - sll r0, r0, 0 - -B2: -L267: - lw v1, *TARGET-bank*(s7) ;; [ 8] (set! v1-3 *TARGET-bank*) [] -> [v1: target-bank ] - ld v1, 556(v1) ;; [ 9] (set! v1-4 (l.d (+ v1-3 556))) [v1: target-bank ] -> [v1: seconds ] - dsra a1, v1, 1 ;; [ 10] (set! a1-0 (sra v1-4 1)) [v1: seconds ] -> [a1: int ] -B3: -L268: - jalr ra, t9 ;; [ 11] (call! a0-0 a1-0) - ;; [a0: spool-anim a1: int t9: (function basic time-frame none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-falling) - () - (target-falling-trans - (-> self control unknown-spoolanim00) - (the-as time-frame (if (= (-> self control unknown-spoolanim00) #f) - 0 - (/ (the-as int (-> *TARGET-bank* stuck-time)) 2) - ) - ) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-falling) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x00, fp? 0 ra? 0 ep? 1 -;; Warnings: -;; INFO: Return type mismatch time-frame vs none. - -;; a0-0: symbol s6-0: target -B0: -L269: - lw v1, *jump-mods*(s7) ;; [ 0] (set! v1-0 *jump-mods*) [] -> [v1: surface ] - lwu a1, 108(s6) ;; [ 1] (set! a1-0 (l.wu (+ self 108))) [s6: target ] -> [a1: control-info ] - sw v1, 656(a1) ;; [ 2] (s.w! (+ a1-0 656) v1-0) [v1: surface a1: control-info ] -> [] - lwu v1, 108(s6) ;; [ 3] (set! v1-1 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw a0, 2180(v1) ;; [ 4] (s.w! (+ v1-1 2180) arg0) [v1: control-info a0: symbol ] -> [] - lw v1, *display*(s7) ;; [ 5] (set! v1-2 *display*) [] -> [v1: display ] - ld v0, 780(v1) ;; [ 6] (set! v0-0 (l.d (+ v1-2 780))) [v1: display ] -> [v0: time-frame ] - sd v0, 164(s6) ;; [ 7] (s.d! (+ self 164) v0-0) [v0: time-frame s6: target ] -> [] - jr ra - daddu sp, sp, r0 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-falling) - ((arg0 symbol)) - (set! (-> self control unknown-surface00) *jump-mods*) - (set! (-> self control unknown-uint20) (the-as uint arg0)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-duck-high-jump-jump) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x50, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 - ;fprs: f30 f28 f26 f24 f22 f20 -;; v1-26: float a2-0: symbol s5-0: joint-control-channel -;; s6-0: target f22-1: float f24-0: float -;; f26-0: float f28-0: float f30-0: float -L270: - daddiu sp, sp, -80 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s5, 16(sp) - sq gp, 32(sp) - swc1 f20, 48(sp) - swc1 f22, 52(sp) - swc1 f24, 56(sp) - swc1 f26, 60(sp) - swc1 f28, 64(sp) - swc1 f30, 68(sp) -B0: - or gp, a2, r0 ;; [ 0] (set! arg2 arg2) [a2: symbol ] -> [gp: symbol ] - daddiu v1, s7, launch ;; [ 1] (set! v1-0 'launch) [] -> [v1: symbol ] - bne gp, v1, L271 ;; [ 2] (b! (!= arg2 v1-0) L271 (nop!)) [v1: symbol gp: symbol ] -> [] - sll r0, r0, 0 - -B1: - lui v1, L728 ;; [ 3] (set! v1-1 L728) [] -> [v1: ] - ori v1, v1, L728 - addu v1, fp, v1 - lw v1, 0(v1) ;; [ 4] (set! v1-2 (l.w v1-1)) [v1: ] -> [v1: int ] - beq r0, r0, L272 ;; [ 5] (b! #t L272 (nop!)) [] -> [] - sll r0, r0, 0 - -B2: -L271: - lui v1, L727 ;; [ 6] (set! v1-3 L727) [] -> [v1: ] - ori v1, v1, L727 - addu v1, fp, v1 - lw v1, 0(v1) ;; [ 7] (set! v1-2 (l.w v1-3)) [v1: ] -> [v1: int ] -B3: -L272: - mtc1 f30, v1 ;; [ 8] (set! f30-0 (gpr->fpr (the-as float v1-2))) [v1: float ] -> [] - lui v1, L786 ;; [ 9] (set! v1-4 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f28, 0(v1) ;; [ 10] (set! f28-0 (l.f v1-4)) [v1: ] -> [] -B4: -L273: - lwu v1, 108(s6) ;; [ 11] (set! v1-5 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 12] (set! v1-6 (l.wu (+ v1-5 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 13] (set! a0-1 (+ v1-6 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 14] (set! v1-7 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 15] (set! v1-8 (+ v1-7 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [ 16] (set! f0-0 (vec3dot a0-1 v1-8)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 17] (set! v1-9 (fpr->gpr f0-0)) [] -> [v1: float ] - mtc1 f24, v1 ;; [ 18] (set! f24-0 (gpr->fpr v1-9)) [v1: float ] -> [] - lw t9, ja-aframe-num(s7) ;; [ 19] (set! t9-0 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 20] (set! a0-2 0) [] -> [a0: ] - jalr ra, t9 ;; [ 21] (call! a0-2) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 22] (set! f0-1 (gpr->fpr v0-0)) [v0: float ] -> [] - sub.s f26, f30, f0 ;; [ 23] (set! f26-0 (-.s f30-0 f0-1)) [] -> [] - lui v1, L750 ;; [ 24] (set! v1-10 L750) [] -> [v1: ] - ori v1, v1, L750 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 25] (set! f0-2 (l.f v1-10)) [v1: ] -> [] - min.s f22, f0, f26 ;; [ 26] (set! f22-0 (min.s f0-2 f26-0)) [] -> [] - lui v1, L740 ;; [ 27] (set! v1-11 L740) [] -> [v1: ] - ori v1, v1, L740 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 28] (set! f0-3 (l.f v1-11)) [v1: ] -> [] - mul.s f20, f0, f26 ;; [ 29] (set! f20-0 (*.s f0-3 f26-0)) [] -> [] - lw t9, time-to-apex(s7) ;; [ 30] (set! t9-1 time-to-apex) [] -> [t9: (function float float int) ] - mfc1 a0, f24 ;; [ 31] (set! a0-3 (fpr->gpr f24-0)) [] -> [a0: float ] - lui v1, L730 ;; [ 32] (set! v1-12 L730) [] -> [v1: ] - ori v1, v1, L730 - addu v1, fp, v1 - lw a1, 0(v1) ;; [ 33] (set! a1-1 (l.w v1-12)) [v1: ] -> [a1: int ] - jalr ra, t9 ;; [ 34] (call! a0-3 a1-1) - ;; [a0: float a1: int t9: (function float float int) ] -> [v0: int ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 35] (set! f0-4 (gpr->fpr v0-1)) [v0: int ] -> [] - cvt.s.w f0, f0 ;; [ 36] (set! f0-5 (i2f f0-4)) [] -> [] - div.s f0, f20, f0 ;; [ 37] (set! f0-6 (/.s f20-0 f0-5)) [] -> [] - min.s f22, f22, f0 ;; [ 38] (set! f22-1 (min.s f22-0 f0-6)) [] -> [] - lwu v1, 120(s6) ;; [ 39] (set! v1-13 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 40] (set! v1-14 (l.wu (+ v1-13 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [ 41] (set! s5-0 (+ v1-14 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - lwu v1, 12(s5) ;; [ 42] (set! v1-15 (l.wu (+ s5-0 12))) - ;; [s5: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 43] (set! v1-16 (l.wu (+ v1-15 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 44] (set! v1-17 (l.h (+ v1-16 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 45] (set! v1-18 (+ v1-17 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 46] (set! f0-7 (gpr->fpr v1-18)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 47] (set! f0-8 (i2f f0-7)) [] -> [] - swc1 f0, 24(s5) ;; [ 48] (s.f! (+ s5-0 24) f0-8) [s5: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 49] (set! f0-9 0) [] -> [] - c.lt.s f0, f24 ;; [ 50] (b! (<.s f0-9 f24-0) L274 (set! v1-19 #t)) [] -> [v1: symbol ] - bc1t L274 - daddiu v1, s7, 8 - -B5: - or v1, s7, r0 ;; [ 51] (set! v1-19 #f) [] -> [v1: '#f ] -B6: -L274: - beql s7, v1, L275 ;; [ 52] (bl! (not v1-19) L275 (no-delay!)) [v1: symbol ] -> [] -B7: - or v1, v1, r0 ;; [ 53] (set! v1-20 v1-19) [v1: symbol ] -> [v1: symbol ] - -B8: - mtc1 f0, r0 ;; [ 54] (set! f0-10 0) [] -> [] - c.lt.s f0, f26 ;; [ 55] (b! (<.s f0-10 f26-0) L275 (set! v1-20 #t)) [] -> [v1: symbol ] - bc1t L275 - daddiu v1, s7, 8 - -B9: - or v1, s7, r0 ;; [ 56] (set! v1-20 #f) [] -> [v1: '#f ] -B10: -L275: - beq s7, v1, L277 ;; [ 57] (b! (not v1-20) L277 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B11: - daddiu v1, s7, launch ;; [ 58] (set! v1-21 'launch) [] -> [v1: symbol ] - bne gp, v1, L276 ;; [ 59] (b! (!= arg2 v1-21) L276 (set! v1-22 #f)) [v1: symbol gp: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B12: - lw t9, lerp(s7) ;; [ 60] (set! t9-2 lerp) [] -> [t9: (function float float float float) ] - mfc1 a0, f28 ;; [ 61] (set! a0-4 (fpr->gpr f28-0)) [] -> [a0: float ] - lui v1, L749 ;; [ 62] (set! v1-23 L749) [] -> [v1: ] - ori v1, v1, L749 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 63] (set! f0-11 (l.f v1-23)) [v1: ] -> [] - mul.s f0, f0, f22 ;; [ 64] (set! f0-12 (*.s f0-11 f22-1)) [] -> [] - mfc1 a1, f0 ;; [ 65] (set! a1-2 (fpr->gpr f0-12)) [] -> [a1: float ] - lui v1, L753 ;; [ 66] (set! v1-24 L753) [] -> [v1: ] - ori v1, v1, L753 - addu v1, fp, v1 - lw a2, 0(v1) ;; [ 67] (set! a2-1 (l.w v1-24)) [v1: ] -> [a2: int ] - jalr ra, t9 ;; [ 68] (call! a0-4 a1-2 a2-1) - ;; [a0: float a1: float a2: int t9: (function float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f28, v0 ;; [ 69] (set! f28-0 (gpr->fpr v0-2)) [v0: float ] -> [] - mfc1 v1, f28 ;; [ 70] (set! v1-25 (fpr->gpr f28-0)) [] -> [v1: float ] -B13: -L276: - mfc1 v1, f22 ;; [ 71] (set! v1-26 (fpr->gpr f22-1)) [] -> [v1: float ] - beq r0, r0, L278 ;; [ 72] (b! #t L278 (nop!)) [] -> [] - sll r0, r0, 0 - -B14: -L277: - mfc1 v1, f28 ;; [ 73] (set! v1-26 (fpr->gpr f28-0)) [] -> [v1: float ] -B15: -L278: - mtc1 f0, v1 ;; [ 74] (set! f0-13 (gpr->fpr v1-26)) [v1: float ] -> [] - swc1 f0, 28(s5) ;; [ 75] (s.f! (+ s5-0 28) f0-13) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 76] (set! t9-3 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 77] (set! a1-3 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 78] (set! a2-2 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [ 79] (set! a0-5 s5-0) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [ 80] (call! a0-5 a1-3 a2-2) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 81] (set! v1-27 v0-3) [v0: int ] -> [v1: int ] - lwu s6, 44(s6) ;; [ 82] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lw t9, ja-done?(s7) ;; [ 83] (set! t9-4 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 84] (set! a0-6 0) [] -> [a0: ] - jalr ra, t9 ;; [ 85] (call! a0-6) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L273 ;; [ 86] (b! (not v0-4) L273 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B16: - or v1, s7, r0 ;; [ 87] (set! v1-28 #f) [] -> [v1: '#f ] - daddiu v1, s7, launch ;; [ 88] (set! v1-29 'launch) [] -> [v1: symbol ] - bne gp, v1, L280 ;; [ 89] (b! (!= arg2 v1-29) L280 (nop!)) [v1: symbol gp: symbol ] -> [] - sll r0, r0, 0 - -B17: - lwu v1, 120(s6) ;; [ 90] (set! v1-30 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 91] (set! v1-31 (l.wu (+ v1-30 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 92] (set! a0-7 (+ v1-31 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 93] (set! v1-32 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 94] (set! v1-33 (l.wu (+ v1-32 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 200(v1) ;; [ 95] (set! v1-34 (l.wu (+ v1-33 200))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 96] (s.w! (+ a0-7 12) v1-34) [v1: art-element a0: joint-control-channel ] -> [] - swc1 f28, 24(a0) ;; [ 97] (s.f! (+ a0-7 24) f28-0) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 98] (set! f0-14 0) [] -> [] - swc1 f0, 16(a0) ;; [ 99] (s.f! (+ a0-7 16) f0-14) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [100] (set! t9-5 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [101] (set! v1-35 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [102] (set! v1-36 (l.wu (+ v1-35 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 200(v1) ;; [103] (set! a1-4 (l.wu (+ v1-36 200))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-loop!(s7) ;; [104] (set! a2-3 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [105] (call! a0-7 a1-4 a2-3) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [106] (set! v1-37 v0-5) [v0: int ] -> [v1: int ] -B18: -L279: - lwu s6, 44(s6) ;; [107] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [108] (set! v1-38 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [109] (set! v1-39 (l.wu (+ v1-38 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [110] (set! a0-8 (+ v1-39 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [111] (set! v1-40 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [112] (set! v1-41 (l.wu (+ v1-40 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 200(v1) ;; [113] (set! v1-42 (l.wu (+ v1-41 200))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [114] (s.w! (+ a0-8 12) v1-42) [v1: art-element a0: joint-control-channel ] -> [] - swc1 f28, 24(a0) ;; [115] (s.f! (+ a0-8 24) f28-0) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [116] (set! t9-6 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [117] (set! v1-43 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [118] (set! v1-44 (l.wu (+ v1-43 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 200(v1) ;; [119] (set! a1-5 (l.wu (+ v1-44 200))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-loop!(s7) ;; [120] (set! a2-4 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [121] (call! a0-8 a1-5 a2-4) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [122] (set! v1-45 v0-6) [v0: int ] -> [v1: int ] - beq r0, r0, L279 ;; [123] (b! #t L279 (nop!)) [] -> [] - sll r0, r0, 0 - -B19: - or v1, s7, r0 ;; [124] (set! v1-46 #f) [] -> [v1: ] - beq r0, r0, L282 ;; [125] (b! #t L282 (nop!)) [] -> [] - sll r0, r0, 0 - -B20: -L280: - lwu v1, 120(s6) ;; [126] (set! v1-47 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [127] (set! v1-48 (l.wu (+ v1-47 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [128] (set! a0-9 (+ v1-48 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [129] (set! v1-49 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [130] (set! v1-50 (l.wu (+ v1-49 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 180(v1) ;; [131] (set! v1-51 (l.wu (+ v1-50 180))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [132] (s.w! (+ a0-9 12) v1-51) [v1: art-element a0: joint-control-channel ] -> [] - lui v1, L786 ;; [133] (set! v1-52 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [134] (set! f0-15 (l.f v1-52)) [v1: ] -> [] - swc1 f0, 24(a0) ;; [135] (s.f! (+ a0-9 24) f0-15) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [136] (set! f0-16 0) [] -> [] - swc1 f0, 16(a0) ;; [137] (s.f! (+ a0-9 16) f0-16) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [138] (set! t9-7 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [139] (set! v1-53 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [140] (set! v1-54 (l.wu (+ v1-53 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 180(v1) ;; [141] (set! a1-6 (l.wu (+ v1-54 180))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-loop!(s7) ;; [142] (set! a2-5 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [143] (call! a0-9 a1-6 a2-5) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [144] (set! v1-55 v0-7) [v0: int ] -> [v1: int ] -B21: -L281: - lwu s6, 44(s6) ;; [145] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [146] (set! v1-56 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [147] (set! v1-57 (l.wu (+ v1-56 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [148] (set! a0-10 (+ v1-57 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [149] (set! v1-58 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [150] (set! v1-59 (l.wu (+ v1-58 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 180(v1) ;; [151] (set! v1-60 (l.wu (+ v1-59 180))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [152] (s.w! (+ a0-10 12) v1-60) [v1: art-element a0: joint-control-channel ] -> [] - lui v1, L786 ;; [153] (set! v1-61 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [154] (set! f0-17 (l.f v1-61)) [v1: ] -> [] - swc1 f0, 24(a0) ;; [155] (s.f! (+ a0-10 24) f0-17) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [156] (set! t9-8 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [157] (set! v1-62 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [158] (set! v1-63 (l.wu (+ v1-62 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 180(v1) ;; [159] (set! a1-7 (l.wu (+ v1-63 180))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-loop!(s7) ;; [160] (set! a2-6 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [161] (call! a0-10 a1-7 a2-6) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [162] (set! v1-64 v0-8) [v0: int ] -> [v1: int ] - beq r0, r0, L281 ;; [163] (b! #t L281 (nop!)) [] -> [] - sll r0, r0, 0 - -B22: - or v1, s7, r0 ;; [164] (set! v1-65 #f) [] -> [v1: ] -B23: -L282: - or v0, r0, r0 ;; [165] (set! v0-9 0) [] -> [v0: ] - ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 68(sp) - lwc1 f28, 64(sp) - lwc1 f26, 60(sp) - lwc1 f24, 56(sp) - lwc1 f22, 52(sp) - lwc1 f20, 48(sp) - lq gp, 32(sp) - lq s5, 16(sp) - jr ra - daddiu sp, sp, 80 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-duck-high-jump-jump) - ((arg0 float) (arg1 float) (arg2 symbol)) - (let ((f30-0 (the-as float (if (= arg2 'launch) - 110.0 - 35.0 - ) - ) - ) - (f28-0 1.0) - ) - (until (ja-done? 0) - (let* ((f24-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (f26-0 (- f30-0 (ja-aframe-num 0))) - (f22-1 (fmin (fmin 3.0 f26-0) (/ (* 5.0 f26-0) (the float (time-to-apex f24-0 (the-as float -245760.0)))))) - (s5-0 (-> self skel root-channel 0)) - ) - (set! (-> s5-0 param 0) (the float (+ (-> s5-0 frame-group data 0 length) -1))) - (let ((v1-26 (cond - ((and (< 0.0 f24-0) (< 0.0 f26-0)) - (if (= arg2 'launch) - (set! f28-0 (lerp f28-0 (* 4.0 f22-1) (the-as float 0.25))) - ) - f22-1 - ) - (else - f28-0 - ) - ) - ) - ) - (set! (-> s5-0 param 1) v1-26) - ) - (joint-control-channel-group-eval! s5-0 (the-as art-joint-anim #f) num-func-seek!) - ) - (suspend) - ) - (cond - ((= arg2 'launch) - (ja-no-eval :group! (-> self draw art-group data 43) :num! (loop! f28-0) :frame-num 0.0) - (loop - (suspend) - (ja :group! (-> self draw art-group data 43) :num! (loop! f28-0)) - ) - ) - (else - (ja-no-eval :group! (-> self draw art-group data 38) :num! (loop!) :frame-num 0.0) - (loop - (suspend) - (ja :group! (-> self draw art-group data 38) :num! (loop!)) - ) - ) - ) - ) - (the-as none 0) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-duck-high-jump-jump) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x60, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 - ;gprs: gp s5 s4 s3 s2 -;; Warnings: -;; INFO: Return type mismatch surface vs none. - -;; a0-0: float a1-0: float a2-0: symbol s6-0: target -L283: - daddiu sp, sp, -96 - sd ra, 0(sp) - sq s2, 16(sp) - sq s3, 32(sp) - sq s4, 48(sp) - sq s5, 64(sp) - sq gp, 80(sp) -B0: - or s5, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: float ] -> [s5: float ] - or s4, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: float ] -> [s4: float ] - or gp, a2, r0 ;; [ 2] (set! arg2 arg2) [a2: symbol ] -> [gp: symbol ] - lw v1, *display*(s7) ;; [ 3] (set! v1-0 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 4] (set! v1-1 (l.d (+ v1-0 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 5] (s.d! (+ self 164) v1-1) [v1: time-frame s6: target ] -> [] - lw s3, sound-play-by-name(s7);; [ 6] (set! s3-0 sound-play-by-name) - ;; [] -> [s3: (function sound-name sound-id int int int sound-group symbol sound-id) ] - lui v1, 28781 ;; [ 7] (set! v1-2 #x706d756a) [] -> [v1: ] - ori v1, v1, 30058 - pcpyld s2, r0, v1 ;; [ 8] (set! s2-0 (pcypld 0 v1-2)) [v1: ] -> [s2: uint ] - lw t9, new-sound-id(s7) ;; [ 9] (set! t9-0 new-sound-id) [] -> [t9: (function sound-id) ] - jalr ra, t9 ;; [ 10] (call!) [t9: (function sound-id) ] -> [v0: sound-id ] - sll v0, ra, 0 - - or a1, v0, r0 ;; [ 11] (set! a1-1 v0-0) [v0: sound-id ] -> [a1: sound-id ] - addiu a2, r0, 819 ;; [ 12] (set! a2-1 819) [] -> [a2: ] - addiu a3, r0, -609 ;; [ 13] (set! a3-0 -609) [] -> [a3: ] - addiu t0, r0, 0 ;; [ 14] (set! t0-0 0) [] -> [t0: ] - addiu t1, r0, 1 ;; [ 15] (set! t1-0 1) [] -> [t1: ] - daddiu t2, s7, #t ;; [ 16] (set! t2-0 #t) [] -> [t2: symbol ] - or t9, s3, r0 ;; [ 17] (set! t9-1 s3-0) - ;; [s3: (function sound-name sound-id int int int sound-group symbol sound-id) ] -> [t9: (function sound-name sound-id int int int sound-group symbol sound-id) ] - por a0, s2, r0 ;; [ 18] (set! a0-1 s2-0) [s2: uint ] -> [a0: uint ] - jalr ra, t9 ;; [ 19] (call! a0-1 a1-1 a2-1 a3-0 t0-0 t1-0 t2-0) - ;; [a0: uint a1: sound-id a2: a3: t0: t1: t2: symbol t9: (function sound-name sound-id int int int sound-group symbol sound-id) ] -> [v0: sound-id ] - sll v0, ra, 0 - - lw t9, init-var-jump(s7) ;; [ 20] (set! t9-2 init-var-jump) - ;; [] -> [t9: (function float float vector vector vector vector :behavior target) ] - daddiu a2, s7, #t ;; [ 21] (set! a2-2 #t) [] -> [a2: symbol ] - or a3, s7, r0 ;; [ 22] (set! a3-1 #f) [] -> [a3: '#f ] - lwu v1, 108(s6) ;; [ 23] (set! v1-3 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu t0, v1, 60 ;; [ 24] (set! t0-1 (+ v1-3 60)) [v1: control-info ] -> [t0: vector ] - or a0, s5, r0 ;; [ 25] (set! a0-2 arg0) [s5: float ] -> [a0: float ] - or a1, s4, r0 ;; [ 26] (set! a1-2 arg1) [s4: float ] -> [a1: float ] - jalr ra, t9 ;; [ 27] (call! a0-2 a1-2 a2-2 a3-1 t0-1) - ;; [a0: float a1: float a2: symbol a3: '#f t0: vector t9: (function float float vector vector vector vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - addiu v1, r0, -8 ;; [ 28] (set! v1-4 -8) [] -> [v1: ] - lwu a0, 108(s6) ;; [ 29] (set! a0-3 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 268(a0) ;; [ 30] (set! a0-4 (l.d (+ a0-3 268))) [a0: control-info ] -> [a0: cshape-moving-flags ] - and v1, v1, a0 ;; [ 31] (set! v1-5 (logand v1-4 a0-4)) - ;; [v1: a0: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - lwu a0, 108(s6) ;; [ 32] (set! a0-5 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 268(a0) ;; [ 33] (s.d! (+ a0-5 268) v1-5) [v1: cshape-moving-flags a0: control-info ] -> [] - daddiu v1, s7, launch ;; [ 34] (set! v1-6 'launch) [] -> [v1: symbol ] - bne gp, v1, L284 ;; [ 35] (b! (!= arg2 v1-6) L284 (nop!)) [v1: symbol gp: symbol ] -> [] - sll r0, r0, 0 - -B1: - mtc1 f0, r0 ;; [ 36] (set! f0-0 0) [] -> [] - lwu v1, 184(s6) ;; [ 37] (set! v1-7 (l.wu (+ self 184))) [s6: target ] -> [v1: joint-mod ] - swc1 f0, 116(v1) ;; [ 38] (s.f! (+ v1-7 116) f0-0) [v1: joint-mod ] -> [] - lw v0, *launch-jump-mods*(s7);; [ 39] (set! v0-3 *launch-jump-mods*) [] -> [v0: surface ] - lwu v1, 108(s6) ;; [ 40] (set! v1-8 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw v0, 656(v1) ;; [ 41] (s.w! (+ v1-8 656) v0-3) [v0: surface v1: control-info ] -> [] - beq r0, r0, L285 ;; [ 42] (b! #t L285 (nop!)) [] -> [] - sll r0, r0, 0 - -B2: -L284: - lw v0, *high-jump-mods*(s7);; [ 43] (set! v0-4 *high-jump-mods*) [] -> [v0: surface ] - lwu v1, 108(s6) ;; [ 44] (set! v1-9 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw v0, 656(v1) ;; [ 45] (s.w! (+ v1-9 656) v0-4) [v0: surface v1: control-info ] -> [] -B3: -L285: - ld ra, 0(sp) - lq gp, 80(sp) - lq s5, 64(sp) - lq s4, 48(sp) - lq s3, 32(sp) - lq s2, 16(sp) - jr ra - daddiu sp, sp, 96 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-duck-high-jump-jump) - ((arg0 float) (arg1 float) (arg2 symbol)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (sound-play "jump" :vol 80 :pitch -0.4) - (init-var-jump arg0 arg1 (the-as vector #t) (the-as vector #f) (-> self control transv)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (cond - ((= arg2 'launch) - (set! (-> self neck flex-blend) 0.0) - (set! (-> self control unknown-surface00) *launch-jump-mods*) - ) - (else - (set! (-> self control unknown-surface00) *high-jump-mods*) - ) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-duck-high-jump) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x50, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 s4 s3 -;; Warnings: -;; INFO: Return type mismatch object vs none. - -;; a0-0: float a1-0: float a2-0: symbol s6-0: target -L286: - daddiu sp, sp, -80 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s3, 16(sp) - sq s4, 32(sp) - sq s5, 48(sp) - sq gp, 64(sp) -B0: - or gp, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: float ] -> [gp: float ] - or s5, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: float ] -> [s5: float ] - or s4, a2, r0 ;; [ 2] (set! arg2 arg2) [a2: symbol ] -> [s4: symbol ] - lwu v1, 120(s6) ;; [ 3] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 4] (set! v1-1 (l.w (+ v1-0 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 5] (b! (<=0.si v1-1) L287 (set! v1-2 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L287 - or v1, s7, r0 - -B1: - lwu v1, 120(s6) ;; [ 6] (set! v1-3 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 7] (set! v1-4 (l.wu (+ v1-3 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 8] (set! v1-2 (l.wu (+ v1-4 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B2: -L287: - lwu a0, 116(s6) ;; [ 9] (set! a0-1 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 10] (set! a0-2 (l.wu (+ a0-1 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 152(a0) ;; [ 11] (set! a0-3 (l.wu (+ a0-2 152))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 12] (set! a0-4 (= v1-2 a0-3)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L288 ;; [ 13] (bl! (not a0-4) L288 (no-delay!)) [a0: symbol ] -> [] -B3: - or v1, a0, r0 ;; [ 14] (set! v1-5 a0-4) [a0: symbol ] -> [v1: symbol ] - -B4: - lwu v1, 120(s6) ;; [ 15] (set! v1-6 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 16] (set! v1-7 (l.wu (+ v1-6 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu v1, r0, v1 ;; [ 17] (set! v1-8 (+ v1-7 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - lwu a0, 120(s6) ;; [ 18] (set! a0-5 (l.wu (+ self 120))) [s6: target ] -> [a0: joint-control ] - daddiu a0, a0, 44 ;; [ 19] (set! a0-6 (+ a0-5 44)) - ;; [a0: joint-control ] -> [a0: (inline-array joint-control-channel) ] - dsubu a0, v1, a0 ;; [ 20] (set! v1-5 (= v1-8 a0-6)) - ;; [v1: joint-control-channel a0: (inline-array joint-control-channel) ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B5: -L288: - bne s7, v1, L289 ;; [ 21] (b! (truthy v1-5) L289 (set! v1-9 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B6: - lw t9, ja-channel-push!(s7);; [ 22] (set! t9-0 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 23] (set! a0-7 1) [] -> [a0: ] - addiu a1, r0, 12 ;; [ 24] (set! a1-1 12) [] -> [a1: ] - jalr ra, t9 ;; [ 25] (call! a0-7 a1-1) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 26] (set! v1-10 v0-0) [v0: int ] -> [v1: int ] -B7: -L289: - or v1, s4, r0 ;; [ 27] (set! v1-11 arg2) [s4: symbol ] -> [v1: symbol ] - daddiu a0, s7, launch ;; [ 28] (set! a0-8 'launch) [] -> [a0: symbol ] - bne v1, a0, L291 ;; [ 29] (b! (!= v1-11 a0-8) L291 (nop!)) [v1: symbol a0: symbol ] -> [] - sll r0, r0, 0 - -B8: - lwu v1, 120(s6) ;; [ 30] (set! v1-12 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 31] (set! v1-13 (l.wu (+ v1-12 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s3, r0, v1 ;; [ 32] (set! s3-0 (+ v1-13 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s3: joint-control-channel ] - lwu v1, 116(s6) ;; [ 33] (set! v1-14 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 34] (set! v1-15 (l.wu (+ v1-14 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 196(v1) ;; [ 35] (set! v1-16 (l.wu (+ v1-15 196))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(s3) ;; [ 36] (s.w! (+ s3-0 12) v1-16) [v1: art-element s3: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [ 37] (set! t9-1 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L739 ;; [ 38] (set! v1-17 L739) [] -> [v1: ] - ori v1, v1, L739 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 39] (set! a0-9 (l.w v1-17)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [ 40] (set! a1-2 0) [] -> [a1: ] - jalr ra, t9 ;; [ 41] (call! a0-9 a1-2) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 42] (set! f0-0 (gpr->fpr v0-1)) [v0: float ] -> [] - swc1 f0, 24(s3) ;; [ 43] (s.f! (+ s3-0 24) f0-0) [s3: joint-control-channel ] -> [] - lui v1, L786 ;; [ 44] (set! v1-18 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 45] (set! f0-1 (l.f v1-18)) [v1: ] -> [] - swc1 f0, 28(s3) ;; [ 46] (s.f! (+ s3-0 28) f0-1) [s3: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 47] (set! f0-2 0) [] -> [] - swc1 f0, 16(s3) ;; [ 48] (s.f! (+ s3-0 16) f0-2) [s3: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [ 49] (set! t9-2 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 50] (set! v1-19 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 51] (set! v1-20 (l.wu (+ v1-19 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 196(v1) ;; [ 52] (set! a1-3 (l.wu (+ v1-20 196))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [ 53] (set! a2-1 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s3, r0 ;; [ 54] (set! a0-10 s3-0) [s3: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [ 55] (call! a0-10 a1-3 a2-1) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 56] (set! v1-21 v0-2) [v0: int ] -> [v1: int ] -B9: -L290: - lwu s6, 44(s6) ;; [ 57] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 58] (set! v1-22 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 59] (set! v1-23 (l.wu (+ v1-22 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s3, r0, v1 ;; [ 60] (set! s3-1 (+ v1-23 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s3: joint-control-channel ] - lw t9, ja-aframe(s7) ;; [ 61] (set! t9-3 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L739 ;; [ 62] (set! v1-24 L739) [] -> [v1: ] - ori v1, v1, L739 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 63] (set! a0-11 (l.w v1-24)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [ 64] (set! a1-4 0) [] -> [a1: ] - jalr ra, t9 ;; [ 65] (call! a0-11 a1-4) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 66] (set! f0-3 (gpr->fpr v0-3)) [v0: float ] -> [] - swc1 f0, 24(s3) ;; [ 67] (s.f! (+ s3-1 24) f0-3) [s3: joint-control-channel ] -> [] - lui v1, L786 ;; [ 68] (set! v1-25 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 69] (set! f0-4 (l.f v1-25)) [v1: ] -> [] - swc1 f0, 28(s3) ;; [ 70] (s.f! (+ s3-1 28) f0-4) [s3: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 71] (set! t9-4 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 72] (set! a1-5 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 73] (set! a2-2 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s3, r0 ;; [ 74] (set! a0-12 s3-1) [s3: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [ 75] (call! a0-12 a1-5 a2-2) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 76] (set! v1-26 v0-4) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [ 77] (set! t9-5 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 78] (set! a0-13 0) [] -> [a0: ] - jalr ra, t9 ;; [ 79] (call! a0-13) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L290 ;; [ 80] (b! (not v0-5) L290 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B10: - or v1, s7, r0 ;; [ 81] (set! v1-27 #f) [] -> [v1: '#f ] - beq r0, r0, L293 ;; [ 82] (b! #t L293 (nop!)) [] -> [] - sll r0, r0, 0 - -B11: -L291: - lwu v1, 120(s6) ;; [ 83] (set! v1-28 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 84] (set! v1-29 (l.wu (+ v1-28 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s3, r0, v1 ;; [ 85] (set! s3-2 (+ v1-29 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s3: joint-control-channel ] - lwu v1, 116(s6) ;; [ 86] (set! v1-30 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 87] (set! v1-31 (l.wu (+ v1-30 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 192(v1) ;; [ 88] (set! v1-32 (l.wu (+ v1-31 192))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(s3) ;; [ 89] (s.w! (+ s3-2 12) v1-32) [v1: art-element s3: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [ 90] (set! t9-6 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L739 ;; [ 91] (set! v1-33 L739) [] -> [v1: ] - ori v1, v1, L739 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 92] (set! a0-14 (l.w v1-33)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [ 93] (set! a1-6 0) [] -> [a1: ] - jalr ra, t9 ;; [ 94] (call! a0-14 a1-6) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 95] (set! f0-5 (gpr->fpr v0-6)) [v0: float ] -> [] - swc1 f0, 24(s3) ;; [ 96] (s.f! (+ s3-2 24) f0-5) [s3: joint-control-channel ] -> [] - lui v1, L786 ;; [ 97] (set! v1-34 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 98] (set! f0-6 (l.f v1-34)) [v1: ] -> [] - swc1 f0, 28(s3) ;; [ 99] (s.f! (+ s3-2 28) f0-6) [s3: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [100] (set! f0-7 0) [] -> [] - swc1 f0, 16(s3) ;; [101] (s.f! (+ s3-2 16) f0-7) [s3: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [102] (set! t9-7 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [103] (set! v1-35 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [104] (set! v1-36 (l.wu (+ v1-35 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 192(v1) ;; [105] (set! a1-7 (l.wu (+ v1-36 192))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [106] (set! a2-3 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s3, r0 ;; [107] (set! a0-15 s3-2) [s3: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [108] (call! a0-15 a1-7 a2-3) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [109] (set! v1-37 v0-7) [v0: int ] -> [v1: int ] -B12: -L292: - lwu s6, 44(s6) ;; [110] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [111] (set! v1-38 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [112] (set! v1-39 (l.wu (+ v1-38 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s3, r0, v1 ;; [113] (set! s3-3 (+ v1-39 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s3: joint-control-channel ] - lw t9, ja-aframe(s7) ;; [114] (set! t9-8 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L739 ;; [115] (set! v1-40 L739) [] -> [v1: ] - ori v1, v1, L739 - addu v1, fp, v1 - lw a0, 0(v1) ;; [116] (set! a0-16 (l.w v1-40)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [117] (set! a1-8 0) [] -> [a1: ] - jalr ra, t9 ;; [118] (call! a0-16 a1-8) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [119] (set! f0-8 (gpr->fpr v0-8)) [v0: float ] -> [] - swc1 f0, 24(s3) ;; [120] (s.f! (+ s3-3 24) f0-8) [s3: joint-control-channel ] -> [] - lui v1, L786 ;; [121] (set! v1-41 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [122] (set! f0-9 (l.f v1-41)) [v1: ] -> [] - swc1 f0, 28(s3) ;; [123] (s.f! (+ s3-3 28) f0-9) [s3: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [124] (set! t9-9 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [125] (set! a1-9 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [126] (set! a2-4 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s3, r0 ;; [127] (set! a0-17 s3-3) [s3: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [128] (call! a0-17 a1-9 a2-4) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [129] (set! v1-42 v0-9) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [130] (set! t9-10 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [131] (set! a0-18 0) [] -> [a0: ] - jalr ra, t9 ;; [132] (call! a0-18) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L292 ;; [133] (b! (not v0-10) L292 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B13: - or v1, s7, r0 ;; [134] (set! v1-43 #f) [] -> [v1: '#f ] -B14: -L293: - lw t9, enter-state(s7) ;; [135] (set! t9-11 enter-state) [] -> [t9: ] - or a0, gp, r0 ;; [136] (set! a0-19 arg0) [gp: float ] -> [a0: float ] - or a1, s5, r0 ;; [137] (set! a1-10 arg1) [s5: float ] -> [a1: float ] - or a2, s4, r0 ;; [138] (set! a2-5 arg2) [s4: symbol ] -> [a2: symbol ] - lw v1, target-duck-high-jump-jump(s7);; [139] (set! v1-44 target-duck-high-jump-jump) - ;; [] -> [v1: (state float float symbol target) ] - sw v1, 72(s6) ;; [140] (s.w! (+ self 72) v1-44) [v1: (state float float symbol target) s6: target ] -> [] - jalr ra, t9 ;; [141] (call! a0-19 a1-10 a2-5) - ;; [a0: float a1: float a2: symbol t9: ] -> [v0: object ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 64(sp) - lq s5, 48(sp) - lq s4, 32(sp) - lq s3, 16(sp) - jr ra - daddiu sp, sp, 80 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-duck-high-jump) - ((arg0 float) (arg1 float) (arg2 symbol)) - (if (not (and (ja-group? (-> self draw art-group data 31)) (= (-> self skel root-channel 0) (-> self skel channel))) - ) - (ja-channel-push! 1 (seconds 0.04)) - ) - (case arg2 - (('launch) - (ja-no-eval :group! (-> self draw art-group data 42) - :num! (seek! (ja-aframe (the-as float 16.0) 0)) - :frame-num 0.0 - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 16.0) 0))) - ) - ) - (else - (ja-no-eval :group! (-> self draw art-group data 41) - :num! (seek! (ja-aframe (the-as float 16.0) 0)) - :frame-num 0.0 - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 16.0) 0))) - ) - ) - ) - (go target-duck-high-jump-jump arg0 arg1 arg2) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-duck-high-jump) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x00, fp? 0 ra? 0 ep? 1 -;; Warnings: -;; INFO: Return type mismatch surface vs none. - -;; s6-0: target -B0: -L294: - lw v1, *display*(s7) ;; [ 0] (set! v1-0 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 1] (set! v1-1 (l.d (+ v1-0 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 2] (s.d! (+ self 164) v1-1) [v1: time-frame s6: target ] -> [] - addiu v1, r0, -8 ;; [ 3] (set! v1-2 -8) [] -> [v1: ] - lwu a0, 108(s6) ;; [ 4] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 268(a0) ;; [ 5] (set! a0-2 (l.d (+ a0-1 268))) [a0: control-info ] -> [a0: cshape-moving-flags ] - and v1, v1, a0 ;; [ 6] (set! v1-3 (logand v1-2 a0-2)) - ;; [v1: a0: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - lwu a0, 108(s6) ;; [ 7] (set! a0-3 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 268(a0) ;; [ 8] (s.d! (+ a0-3 268) v1-3) [v1: cshape-moving-flags a0: control-info ] -> [] - lw v0, *turn-around-mods*(s7);; [ 9] (set! v0-0 *turn-around-mods*) [] -> [v0: surface ] - lwu v1, 108(s6) ;; [ 10] (set! v1-4 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw v0, 656(v1) ;; [ 11] (s.w! (+ v1-4 656) v0-0) [v0: surface v1: control-info ] -> [] - jr ra - daddu sp, sp, r0 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-duck-high-jump) - ((arg0 float) (arg1 float) (arg2 symbol)) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (set! (-> self control unknown-surface00) *turn-around-mods*) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-high-jump) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; Warnings: -;; INFO: Return type mismatch float vs none. - -;; s6-0: target -L295: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lw t9, target-falling-trans(s7);; [ 0] (set! t9-0 target-falling-trans) - ;; [] -> [t9: (function basic time-frame none :behavior target) ] - or a0, s7, r0 ;; [ 1] (set! a0-0 #f) [] -> [a0: '#f ] - lwu v1, 120(s6) ;; [ 2] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 3] (set! v1-1 (l.w (+ v1-0 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 4] (b! (<=0.si v1-1) L296 (set! v1-2 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L296 - or v1, s7, r0 - -B1: - lwu v1, 120(s6) ;; [ 5] (set! v1-3 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 6] (set! v1-4 (l.wu (+ v1-3 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 7] (set! v1-2 (l.wu (+ v1-4 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B2: -L296: - lwu a1, 116(s6) ;; [ 8] (set! a1-0 (l.wu (+ self 116))) [s6: target ] -> [a1: draw-control ] - lwu a1, 4(a1) ;; [ 9] (set! a1-1 (l.wu (+ a1-0 4))) [a1: draw-control ] -> [a1: art-group ] - lwu a1, 180(a1) ;; [ 10] (set! a1-2 (l.wu (+ a1-1 180))) [a1: art-group ] -> [a1: art-element ] - dsubu v1, v1, a1 ;; [ 11] (set! a1-3 (= v1-2 a1-2)) [v1: art-joint-anim a1: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, v1 - beq s7, a1, L297 ;; [ 12] (b! (not a1-3) L297 (nop!)) [a1: symbol ] -> [] - sll r0, r0, 0 - -B3: - addiu a1, r0, 15 ;; [ 13] (set! a1-4 15) [] -> [a1: ] - beq r0, r0, L298 ;; [ 14] (b! #t L298 (nop!)) [] -> [] - sll r0, r0, 0 - -B4: -L297: - addiu a1, r0, -1 ;; [ 15] (set! a1-4 -1) [] -> [a1: ] -B5: -L298: - jalr ra, t9 ;; [ 16] (call! a0-0 a1-4) - ;; [a0: '#f a1: int t9: (function basic time-frame none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lwu v1, 108(s6) ;; [ 17] (set! v1-5 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 18] (set! v1-6 (l.wu (+ v1-5 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 19] (set! v1-7 (l.w (+ v1-6 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 20] (set! v1-8 (sll v1-7 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 21] (set! a0-1 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 22] (set! v1-9 (+ v1-8 a0-1)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 23] (set! v1-10 (l.wu (+ v1-9 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 24] (set! v1-11 (l.wu (+ v1-10 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 25] (set! a0-2 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 26] (set! a0-3 (l.wu (+ a0-2 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 27] (set! a0-4 (l.w (+ a0-3 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 28] (set! a0-5 (sll a0-4 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 29] (set! a1-5 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 30] (set! a0-6 (+ a0-5 a1-5)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 31] (set! a0-7 (l.wu (+ a0-6 4))) [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [ 32] (set! a0-8 (l.wu (+ a0-7 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 33] (set! v1-12 (logior v1-11 a0-8)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 34] (set! a0-9 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 35] (set! a0-10 (l.wu (+ a0-9 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 36] (set! a0-11 (l.w (+ a0-10 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 37] (set! a0-12 (sll a0-11 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 38] (set! a1-6 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 39] (set! a0-13 (+ a0-12 a1-6)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 40] (set! a0-14 (l.wu (+ a0-13 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [ 41] (set! a0-15 (l.wu (+ a0-14 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 42] (set! v1-13 (logior v1-12 a0-15)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 32768 ;; [ 43] (set! v1-14 (logand v1-13 #x8000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L301 ;; [ 44] (bl! (zero? v1-14) L301 (no-delay!)) [v1: pad-buttons ] -> [] -B6: - or v1, s7, r0 ;; [ 45] (set! v1-15 #f) [] -> [v1: '#f ] - -B7: - lwu v1, 108(s6) ;; [ 46] (set! v1-16 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 47] (set! v1-17 (l.wu (+ v1-16 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 48] (set! a0-16 (+ v1-17 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 49] (set! v1-18 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 50] (set! v1-19 (+ v1-18 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [ 51] (set! f0-0 (vec3dot a0-16 v1-19)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 52] (set! v1-20 (fpr->gpr f0-0)) [] -> [v1: float ] - mtc1 f0, v1 ;; [ 53] (set! f0-1 (gpr->fpr v1-20)) [v1: float ] -> [] - lui v1, L796 ;; [ 54] (set! v1-21 L796) [] -> [v1: ] - ori v1, v1, L796 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 55] (set! f1-0 (l.f v1-21)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 56] (b! (<.s f0-1 f1-0) L299 (set! v1-22 #t)) [] -> [v1: symbol ] - bc1t L299 - daddiu v1, s7, 8 - -B8: - or v1, s7, r0 ;; [ 57] (set! v1-22 #f) [] -> [v1: '#f ] -B9: -L299: - beql s7, v1, L301 ;; [ 58] (bl! (not v1-22) L301 (no-delay!)) [v1: symbol ] -> [] -B10: - or v1, v1, r0 ;; [ 59] (set! v1-15 v1-22) [v1: symbol ] -> [v1: symbol ] - -B11: - lui v1, L805 ;; [ 60] (set! v1-23 L805) [] -> [v1: ] - ori v1, v1, L805 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 61] (set! f0-2 (l.f v1-23)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 62] (set! v1-24 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 63] (set! v1-25 (l.wu (+ v1-24 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 64] (set! a0-17 (+ v1-25 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 65] (set! v1-26 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 66] (set! v1-27 (+ v1-26 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f1, 0(a0) ;; [ 67] (set! f1-1 (vec3dot a0-17 v1-27)) [v1: vector a0: vector ] -> [] - lwc1 f2, 4(a0) - lwc1 f3, 8(a0) - lwc1 f4, 0(v1) - lwc1 f5, 4(v1) - lwc1 f6, 8(v1) - mula.s f1, f4 - madda.s f2, f5 - madd.s f1, f3, f6 - mfc1 v1, f1 ;; [ 68] (set! v1-28 (fpr->gpr f1-1)) [] -> [v1: float ] - mtc1 f1, v1 ;; [ 69] (set! f1-2 (gpr->fpr v1-28)) [v1: float ] -> [] - c.lt.s f0, f1 ;; [ 70] (b! (<.s f0-2 f1-2) L300 (set! v1-29 #t)) [] -> [v1: symbol ] - bc1t L300 - daddiu v1, s7, 8 - -B12: - or v1, s7, r0 ;; [ 71] (set! v1-29 #f) [] -> [v1: '#f ] -B13: -L300: - beql s7, v1, L301 ;; [ 72] (bl! (not v1-29) L301 (no-delay!)) [v1: symbol ] -> [] -B14: - or v1, v1, r0 ;; [ 73] (set! v1-15 v1-29) [v1: symbol ] -> [v1: symbol ] - -B15: - lw v1, *display*(s7) ;; [ 74] (set! v1-30 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 75] (set! v1-31 (l.d (+ v1-30 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 76] (set! a0-18 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 1708(a0) ;; [ 77] (set! a0-19 (l.d (+ a0-18 1708))) [a0: control-info ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 78] (set! v1-32 (- v1-31 a0-19)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - lw a0, *TARGET-bank*(s7) ;; [ 79] (set! a0-20 *TARGET-bank*) [] -> [a0: target-bank ] - ld a0, 564(a0) ;; [ 80] (set! a0-21 (l.d (+ a0-20 564))) [a0: target-bank ] -> [a0: seconds ] - slt v1, v1, a0 ;; [ 81] (set! a0-22 (>=.si v1-32 a0-21)) [v1: time-frame a0: seconds ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L301 ;; [ 82] (bl! (not a0-22) L301 (no-delay!)) [a0: symbol ] -> [] -B16: - or v1, a0, r0 ;; [ 83] (set! v1-15 a0-22) [a0: symbol ] -> [v1: symbol ] - -B17: - lwu v1, 160(s6) ;; [ 84] (set! v1-33 (l.wu (+ self 160))) [s6: target ] -> [v1: state-flags ] - andi v1, v1, 4096 ;; [ 85] (set! v1-34 (logand v1-33 4096)) [v1: state-flags ] -> [v1: state-flags ] - bnel v1, r0, L301 ;; [ 86] (bl! (nonzero? v1-34) L301 (no-delay!)) [v1: state-flags ] -> [] -B18: - or v1, s7, r0 ;; [ 87] (set! v1-15 #f) [] -> [v1: '#f ] - -B19: - daddiu v1, s7, 8 ;; [ 88] (set! v1-35 #t) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [ 89] (set! a0-23 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 660(a0) ;; [ 90] (set! a0-24 (l.wu (+ a0-23 660))) [a0: control-info ] -> [a0: surface ] - lwu a0, 144(a0) ;; [ 91] (set! a0-25 (l.wu (+ a0-24 144))) [a0: surface ] -> [a0: surface-flags ] - andi a0, a0, 384 ;; [ 92] (set! a0-26 (logand a0-25 384)) [a0: surface-flags ] -> [a0: surface-flags ] - movn v1, s7, a0 ;; [ 93] (cmove-#f-nonzero v1-15 a0-26 v1-35) - ;; [v1: symbol a0: surface-flags ] -> [v1: symbol ] -B20: -L301: - beq s7, v1, L304 ;; [ 94] (b! (not v1-15) L304 (set! v1-36 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B21: - lw t9, enter-state(s7) ;; [ 95] (set! t9-1 enter-state) [] -> [t9: ] - lui v1, L773 ;; [ 96] (set! v1-37 L773) [] -> [v1: ] - ori v1, v1, L773 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 97] (set! a0-27 (l.w v1-37)) [v1: ] -> [a0: int ] - lui v1, L729 ;; [ 98] (set! v1-38 L729) [] -> [v1: ] - ori v1, v1, L729 - addu v1, fp, v1 - lw a1, 0(v1) ;; [ 99] (set! a1-7 (l.w v1-38)) [v1: ] -> [a1: int ] - lwu v1, 108(s6) ;; [100] (set! v1-39 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [101] (set! v1-40 (l.wu (+ v1-39 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [102] (set! v1-41 (l.w (+ v1-40 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [103] (set! v1-42 (sll v1-41 2)) [v1: int ] -> [v1: ] - lw a2, *cpad-list*(s7) ;; [104] (set! a2-0 *cpad-list*) [] -> [a2: cpad-list ] - daddu v1, v1, a2 ;; [105] (set! v1-43 (+ v1-42 a2-0)) - ;; [v1: a2: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [106] (set! v1-44 (l.wu (+ v1-43 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwc1 f0, 72(v1) ;; [107] (set! f0-3 (l.f (+ v1-44 72))) [v1: cpad-info ] -> [] - mtc1 f1, r0 ;; [108] (set! f1-3 0) [] -> [] - c.eq.s f0, f1 ;; [109] (b! (!=.s f0-3 f1-3) L302 (nop!)) [] -> [] - bc1f L302 - sll r0, r0, 0 - -B22: - lui v1, L814 ;; [110] (set! v1-45 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a2, 0(v1) ;; [111] (set! a2-1 (l.w v1-45)) [v1: ] -> [a2: int ] - beq r0, r0, L303 ;; [112] (b! #t L303 (nop!)) [] -> [] - sll r0, r0, 0 - -B23: -L302: - lui v1, L758 ;; [113] (set! v1-46 L758) [] -> [v1: ] - ori v1, v1, L758 - addu v1, fp, v1 - lw a2, 0(v1) ;; [114] (set! a2-1 (l.w v1-46)) [v1: ] -> [a2: int ] -B24: -L303: - lw v1, target-flop(s7) ;; [115] (set! v1-47 target-flop) [] -> [v1: (state float float float target) ] - sw v1, 72(s6) ;; [116] (s.w! (+ self 72) v1-47) [v1: (state float float float target) s6: target ] -> [] - jalr ra, t9 ;; [117] (call! a0-27 a1-7 a2-1) - ;; [a0: int a1: int a2: int t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [118] (set! v1-48 v0-1) [v0: object ] -> [v1: object ] -B25: -L304: - lw t9, mod-var-jump(s7) ;; [119] (set! t9-2 mod-var-jump) - ;; [] -> [t9: (function symbol symbol symbol vector vector :behavior target) ] - daddiu a0, s7, #t ;; [120] (set! a0-28 #t) [] -> [a0: symbol ] - daddiu a1, s7, #t ;; [121] (set! a1-8 #t) [] -> [a1: symbol ] - daddiu a2, s7, 8 ;; [122] (set! a2-2 #t) [] -> [a2: symbol ] - lwu v1, 108(s6) ;; [123] (set! v1-49 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [124] (set! v1-50 (l.wu (+ v1-49 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [125] (set! v1-51 (l.w (+ v1-50 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [126] (set! v1-52 (sll v1-51 2)) [v1: int ] -> [v1: ] - lw a3, *cpad-list*(s7) ;; [127] (set! a3-0 *cpad-list*) [] -> [a3: cpad-list ] - daddu v1, v1, a3 ;; [128] (set! v1-53 (+ v1-52 a3-0)) - ;; [v1: a3: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [129] (set! v1-54 (l.wu (+ v1-53 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 40(v1) ;; [130] (set! v1-55 (l.wu (+ v1-54 40))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [131] (set! v1-56 (logand v1-55 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - movz a2, s7, v1 ;; [132] (cmove-#f-zero a2-3 v1-56 a2-2) [v1: pad-buttons a2: symbol ] -> [a2: symbol ] - lwu v1, 108(s6) ;; [133] (set! v1-57 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a3, v1, 60 ;; [134] (set! a3-1 (+ v1-57 60)) [v1: control-info ] -> [a3: vector ] - jalr ra, t9 ;; [135] (call! a0-28 a1-8 a2-3 a3-1) - ;; [a0: symbol a1: symbol a2: symbol a3: vector t9: (function symbol symbol symbol vector vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - lw t9, seek(s7) ;; [136] (set! t9-3 seek) [] -> [t9: (function float float float float) ] - lwu v1, 108(s6) ;; [137] (set! v1-58 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 2192(v1) ;; [138] (set! f0-4 (l.f (+ v1-58 2192))) [v1: control-info ] -> [] - mfc1 a0, f0 ;; [139] (set! a0-29 (fpr->gpr f0-4)) [] -> [a0: float ] - mtc1 f0, r0 ;; [140] (set! f0-5 0) [] -> [] - lui v1, L786 ;; [141] (set! v1-59 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [142] (set! f1-4 (l.f v1-59)) [v1: ] -> [] - lui v1, L756 ;; [143] (set! v1-60 L756) [] -> [v1: ] - ori v1, v1, L756 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [144] (set! f2-0 (l.f v1-60)) [v1: ] -> [] - lui v1, L795 ;; [145] (set! v1-61 L795) [] -> [v1: ] - ori v1, v1, L795 - addu v1, fp, v1 - lwc1 f3, 0(v1) ;; [146] (set! f3-0 (l.f v1-61)) [v1: ] -> [] - lwu v1, 108(s6) ;; [147] (set! v1-62 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f4, 528(v1) ;; [148] (set! f4-0 (l.f (+ v1-62 528))) [v1: control-info ] -> [] - add.s f3, f3, f4 ;; [149] (set! f3-1 (+.s f3-0 f4-0)) [] -> [] - mul.s f2, f2, f3 ;; [150] (set! f2-1 (*.s f2-0 f3-1)) [] -> [] - min.s f1, f1, f2 ;; [151] (set! f1-5 (min.s f1-4 f2-1)) [] -> [] - max.s f0, f0, f1 ;; [152] (set! f0-6 (max.s f0-5 f1-5)) [] -> [] - mfc1 a1, f0 ;; [153] (set! a1-9 (fpr->gpr f0-6)) [] -> [a1: float ] - lw v1, *display*(s7) ;; [154] (set! v1-63 *display*) [] -> [v1: display ] - lwc1 f0, 904(v1) ;; [155] (set! f0-7 (l.f (+ v1-63 904))) [v1: display ] -> [] - mfc1 a2, f0 ;; [156] (set! a2-4 (fpr->gpr f0-7)) [] -> [a2: float ] - jalr ra, t9 ;; [157] (call! a0-29 a1-9 a2-4) - ;; [a0: float a1: float a2: float t9: (function float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [158] (set! f0-8 (gpr->fpr v0-3)) [v0: float ] -> [] - lwu v1, 108(s6) ;; [159] (set! v1-64 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2192(v1) ;; [160] (s.f! (+ v1-64 2192) f0-8) [v1: control-info ] -> [] - mfc1 v0, f0 ;; [161] (set! v0-4 (fpr->gpr f0-8)) [] -> [v0: float ] - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-high-jump) - () - (target-falling-trans #f (the-as time-frame (if (ja-group? (-> self draw art-group data 38)) - 15 - -1 - ) - ) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons square) - ) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 73728.0) - (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as time-frame (-> *TARGET-bank* stuck-timeout)) - ) - (zero? (logand (-> self state-flags) (state-flags prevent-attack))) - (zero? (logand (-> self control unknown-surface01 flags) (surface-flags prevent-attacks-during-launch-jump surf08)) - ) - ) - ) - (go - target-flop - (the-as float 33775.48) - (the-as float -122880.0) - (the-as float (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - 0.0 - 68812.8 - ) - ) - ) - ) - (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) - (seek! - (-> self control unknown-float122) - (fmax 0.0 (fmin 1.0 (* 0.00012207031 (+ -2048.0 (-> self control unknown-float01))))) - (-> *display* seconds-per-frame) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-high-jump) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x60, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 s4 s3 s2 -;; Warnings: -;; INFO: Return type mismatch float vs none. -;; Used lq/sq - -;; a0-0: float a0-3: int a1-0: float a1-1: int a2-0: basic a2-1: vector s6-0: target -L305: - daddiu sp, sp, -96 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s2, 16(sp) - sq s3, 32(sp) - sq s4, 48(sp) - sq s5, 64(sp) - sq gp, 80(sp) -B0: - or s5, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: float ] -> [s5: float ] - or s4, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: float ] -> [s4: float ] - or gp, a2, r0 ;; [ 2] (set! arg2 arg2) [a2: basic ] -> [gp: basic ] - lwu v1, 108(s6) ;; [ 3] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 2424(v1) ;; [ 4] (set! v1-1 (l.wu (+ v1-0 2424))) [v1: control-info ] -> [v1: symbol ] - daddiu a0, s7, launch ;; [ 5] (set! a0-1 'launch) [] -> [a0: symbol ] - dsubu v1, v1, a0 ;; [ 6] (set! a0-2 (= v1-1 a0-1)) [v1: symbol a0: symbol ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L306 ;; [ 7] (bl! (not a0-2) L306 (no-delay!)) [a0: symbol ] -> [] -B1: - or v1, a0, r0 ;; [ 8] (set! v1-2 a0-2) [a0: symbol ] -> [v1: symbol ] - -B2: - daddiu v1, s7, launch ;; [ 9] (set! v1-3 'launch) [] -> [v1: symbol ] - dsubu a0, gp, v1 ;; [ 10] (set! v1-2 (!= arg2 v1-3)) [v1: symbol gp: basic ] -> [v1: symbol ] - daddiu v1, s7, 8 - movz v1, s7, a0 -B3: -L306: - beq s7, v1, L307 ;; [ 11] (b! (not v1-2) L307 (set! v1-4 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B4: - lw t9, enter-state(s7) ;; [ 12] (set! t9-0 enter-state) [] -> [t9: ] - lwu v1, 108(s6) ;; [ 13] (set! v1-5 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld a0, 2428(v1) ;; [ 14] (set! a0-3 (l.d (+ v1-5 2428))) [v1: control-info ] -> [a0: int ] - lwu v1, 108(s6) ;; [ 15] (set! v1-6 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld a1, 2436(v1) ;; [ 16] (set! a1-1 (l.d (+ v1-6 2436))) [v1: control-info ] -> [a1: int ] - lwu v1, 108(s6) ;; [ 17] (set! v1-7 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a2, v1, 2220 ;; [ 18] (set! a2-1 (+ v1-7 2220)) [v1: control-info ] -> [a2: vector ] - lwu v1, 108(s6) ;; [ 19] (set! v1-8 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 2444(v1) ;; [ 20] (set! v1-9 (l.d (+ v1-8 2444))) [v1: control-info ] -> [v1: vector ] - lq v1, 0(v1) ;; [ 21] (set! (the-as vector v1-10) (l.q v1-9)) [v1: vector ] -> [v1: uint128 ] - sq v1, 0(a2) ;; [ 22] (s.q! a2-1 v1-10) [v1: uint128 a2: vector ] -> [] - lwu v1, 108(s6) ;; [ 23] (set! v1-11 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld a3, 2452(v1) ;; [ 24] (set! a3-0 (l.d (+ v1-11 2452))) [v1: control-info ] -> [a3: int ] - lw v1, target-launch(s7) ;; [ 25] (set! v1-12 target-launch) [] -> [v1: (state float symbol vector int target) ] - sw v1, 72(s6) ;; [ 26] (s.w! (+ self 72) v1-12) - ;; [v1: (state float symbol vector int target) s6: target ] -> [] - jalr ra, t9 ;; [ 27] (call! a0-3 a1-1 a2-1 a3-0) - ;; [a0: int a1: int a2: vector a3: int t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 28] (set! v1-13 v0-0) [v0: object ] -> [v1: object ] -B5: -L307: - lwu v1, 108(s6) ;; [ 29] (set! v1-14 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw gp, 2188(v1) ;; [ 30] (s.w! (+ v1-14 2188) arg2) [v1: control-info gp: basic ] -> [] - daddiu v1, s7, duck ;; [ 31] (set! v1-15 'duck) [] -> [v1: symbol ] - dsubu v1, gp, v1 ;; [ 32] (set! a0-4 (= arg2 v1-15)) [v1: symbol gp: basic ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - bnel s7, a0, L308 ;; [ 33] (bl! (truthy a0-4) L308 (no-delay!)) [a0: symbol ] -> [] -B6: - or v1, a0, r0 ;; [ 34] (set! v1-16 a0-4) [a0: symbol ] -> [v1: symbol ] - -B7: - daddiu v1, s7, launch ;; [ 35] (set! v1-17 'launch) [] -> [v1: symbol ] - dsubu a0, gp, v1 ;; [ 36] (set! v1-16 (= arg2 v1-17)) [v1: symbol gp: basic ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B8: -L308: - beq s7, v1, L309 ;; [ 37] (b! (not v1-16) L309 (set! v1-18 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B9: - lw t9, enter-state(s7) ;; [ 38] (set! t9-1 enter-state) [] -> [t9: ] - or a0, s5, r0 ;; [ 39] (set! a0-5 arg0) [s5: float ] -> [a0: float ] - or a1, s4, r0 ;; [ 40] (set! a1-2 arg1) [s4: float ] -> [a1: float ] - or a2, gp, r0 ;; [ 41] (set! a2-2 arg2) [gp: basic ] -> [a2: basic ] - lw v1, target-duck-high-jump(s7);; [ 42] (set! v1-19 target-duck-high-jump) - ;; [] -> [v1: (state float float symbol target) ] - sw v1, 72(s6) ;; [ 43] (s.w! (+ self 72) v1-19) [v1: (state float float symbol target) s6: target ] -> [] - jalr ra, t9 ;; [ 44] (call! a0-5 a1-2 a2-2) - ;; [a0: float a1: float a2: basic t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 45] (set! v1-20 v0-1) [v0: object ] -> [v1: object ] -B10: -L309: - lw v1, *display*(s7) ;; [ 46] (set! v1-21 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 47] (set! v1-22 (l.d (+ v1-21 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 48] (s.d! (+ self 164) v1-22) [v1: time-frame s6: target ] -> [] - addiu v1, r0, -8 ;; [ 49] (set! v1-23 -8) [] -> [v1: ] - lwu a0, 108(s6) ;; [ 50] (set! a0-6 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 268(a0) ;; [ 51] (set! a0-7 (l.d (+ a0-6 268))) [a0: control-info ] -> [a0: cshape-moving-flags ] - and v1, v1, a0 ;; [ 52] (set! v1-24 (logand v1-23 a0-7)) - ;; [v1: a0: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - lwu a0, 108(s6) ;; [ 53] (set! a0-8 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 268(a0) ;; [ 54] (s.d! (+ a0-8 268) v1-24) [v1: cshape-moving-flags a0: control-info ] -> [] - lw s3, sound-play-by-name(s7);; [ 55] (set! s3-0 sound-play-by-name) - ;; [] -> [s3: (function sound-name sound-id int int int sound-group symbol sound-id) ] - lui v1, 28781 ;; [ 56] (set! v1-25 #x706d756a) [] -> [v1: ] - ori v1, v1, 30058 - pcpyld s2, r0, v1 ;; [ 57] (set! s2-0 (pcypld 0 v1-25)) [v1: ] -> [s2: uint ] - lw t9, new-sound-id(s7) ;; [ 58] (set! t9-2 new-sound-id) [] -> [t9: (function sound-id) ] - jalr ra, t9 ;; [ 59] (call!) [t9: (function sound-id) ] -> [v0: sound-id ] - sll v0, ra, 0 - - or a1, v0, r0 ;; [ 60] (set! a1-3 v0-2) [v0: sound-id ] -> [a1: sound-id ] - addiu a2, r0, 1024 ;; [ 61] (set! a2-3 1024) [] -> [a2: ] - addiu a3, r0, 457 ;; [ 62] (set! a3-1 457) [] -> [a3: ] - addiu t0, r0, 0 ;; [ 63] (set! t0-0 0) [] -> [t0: ] - addiu t1, r0, 1 ;; [ 64] (set! t1-0 1) [] -> [t1: ] - daddiu t2, s7, #t ;; [ 65] (set! t2-0 #t) [] -> [t2: symbol ] - or t9, s3, r0 ;; [ 66] (set! t9-3 s3-0) - ;; [s3: (function sound-name sound-id int int int sound-group symbol sound-id) ] -> [t9: (function sound-name sound-id int int int sound-group symbol sound-id) ] - por a0, s2, r0 ;; [ 67] (set! a0-9 s2-0) [s2: uint ] -> [a0: uint ] - jalr ra, t9 ;; [ 68] (call! a0-9 a1-3 a2-3 a3-1 t0-0 t1-0 t2-0) - ;; [a0: uint a1: sound-id a2: a3: t0: t1: t2: symbol t9: (function sound-name sound-id int int int sound-group symbol sound-id) ] -> [v0: sound-id ] - sll v0, ra, 0 - - lw t9, init-var-jump(s7) ;; [ 69] (set! t9-4 init-var-jump) - ;; [] -> [t9: (function float float vector vector vector vector :behavior target) ] - daddiu a2, s7, #t ;; [ 70] (set! a2-4 #t) [] -> [a2: symbol ] - daddiu a3, s7, #t ;; [ 71] (set! a3-2 #t) [] -> [a3: symbol ] - lwu v1, 108(s6) ;; [ 72] (set! v1-26 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu t0, v1, 60 ;; [ 73] (set! t0-1 (+ v1-26 60)) [v1: control-info ] -> [t0: vector ] - or a0, s5, r0 ;; [ 74] (set! a0-10 arg0) [s5: float ] -> [a0: float ] - or a1, s4, r0 ;; [ 75] (set! a1-4 arg1) [s4: float ] -> [a1: float ] - jalr ra, t9 ;; [ 76] (call! a0-10 a1-4 a2-4 a3-2 t0-1) - ;; [a0: float a1: float a2: symbol a3: symbol t0: vector t9: (function float float vector vector vector vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - daddiu v1, s7, flip ;; [ 77] (set! v1-27 'flip) [] -> [v1: symbol ] - bne gp, v1, L310 ;; [ 78] (b! (!= arg2 v1-27) L310 (nop!)) [v1: symbol gp: basic ] -> [] - sll r0, r0, 0 - -B11: - lw v1, *flip-jump-mods*(s7);; [ 79] (set! v1-28 *flip-jump-mods*) [] -> [v1: surface ] - beq r0, r0, L312 ;; [ 80] (b! #t L312 (nop!)) [] -> [] - sll r0, r0, 0 - -B12: -L310: - daddiu v1, s7, flop-forward;; [ 81] (set! v1-29 'flop-forward) [] -> [v1: symbol ] - bne gp, v1, L311 ;; [ 82] (b! (!= arg2 v1-29) L311 (nop!)) [v1: symbol gp: basic ] -> [] - sll r0, r0, 0 - -B13: - lw v1, *forward-high-jump-mods*(s7);; [ 83] (set! v1-28 *forward-high-jump-mods*) [] -> [v1: surface ] - beq r0, r0, L312 ;; [ 84] (b! #t L312 (nop!)) [] -> [] - sll r0, r0, 0 - -B14: -L311: - lw v1, *high-jump-mods*(s7);; [ 85] (set! v1-28 *high-jump-mods*) [] -> [v1: surface ] -B15: -L312: - lwu a0, 108(s6) ;; [ 86] (set! a0-11 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [ 87] (s.w! (+ a0-11 656) v1-28) [v1: surface a0: control-info ] -> [] - mtc1 f0, r0 ;; [ 88] (set! f0-0 0) [] -> [] - lui v1, L752 ;; [ 89] (set! v1-30 L752) [] -> [v1: ] - ori v1, v1, L752 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 90] (set! f1-0 (l.f v1-30)) [v1: ] -> [] - lui v1, L793 ;; [ 91] (set! v1-31 L793) [] -> [v1: ] - ori v1, v1, L793 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [ 92] (set! f2-0 (l.f v1-31)) [v1: ] -> [] - lui v1, L794 ;; [ 93] (set! v1-32 L794) [] -> [v1: ] - ori v1, v1, L794 - addu v1, fp, v1 - lwc1 f3, 0(v1) ;; [ 94] (set! f3-0 (l.f v1-32)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 95] (set! v1-33 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f4, 528(v1) ;; [ 96] (set! f4-0 (l.f (+ v1-33 528))) [v1: control-info ] -> [] - add.s f3, f3, f4 ;; [ 97] (set! f3-1 (+.s f3-0 f4-0)) [] -> [] - mul.s f2, f2, f3 ;; [ 98] (set! f2-1 (*.s f2-0 f3-1)) [] -> [] - min.s f1, f1, f2 ;; [ 99] (set! f1-1 (min.s f1-0 f2-1)) [] -> [] - max.s f0, f0, f1 ;; [100] (set! f0-1 (max.s f0-0 f1-1)) [] -> [] - lwu v1, 108(s6) ;; [101] (set! v1-34 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2192(v1) ;; [102] (s.f! (+ v1-34 2192) f0-1) [v1: control-info ] -> [] - mfc1 v0, f0 ;; [103] (set! v0-5 (fpr->gpr f0-1)) [] -> [v0: float ] - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 80(sp) - lq s5, 64(sp) - lq s4, 48(sp) - lq s3, 32(sp) - lq s2, 16(sp) - jr ra - daddiu sp, sp, 96 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-high-jump) - ((arg0 float) (arg1 float) (arg2 basic)) - (when (and (= (-> self control unknown-symbol40) 'launch) (!= arg2 'launch)) - enter-state - (let ((a0-3 (-> self control unknown-dword60)) - (a1-1 (-> self control unknown-dword61)) - (a2-1 (-> self control unknown-vector102)) - ) - (set! (-> a2-1 quad) (-> (the-as vector (-> self control unknown-dword62)) quad)) - (go target-launch (the-as float a0-3) (the-as symbol a1-1) a2-1 (-> self control unknown-dword63)) - ) - ) - (set! (-> self control unknown-uint31) (the-as uint arg2)) - (if (or (= arg2 'duck) (= arg2 'launch)) - (go target-duck-high-jump arg0 arg1 (the-as symbol arg2)) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (sound-play "jump" :pitch 0.3) - (init-var-jump arg0 arg1 (the-as vector #t) (the-as vector #t) (-> self control transv)) - (set! (-> self control unknown-surface00) (cond - ((= arg2 'flip) - *flip-jump-mods* - ) - ((= arg2 'flop-forward) - *forward-high-jump-mods* - ) - (else - *high-jump-mods* - ) - ) - ) - (set! (-> self control unknown-float122) - (fmax 0.0 (fmin 0.5 (* 0.00008138021 (+ -409.6 (-> self control unknown-float01))))) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-double-jump) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x20, fp? 1 ra? 1 ep? 1 - ;gprs: gp -;; Warnings: -;; INFO: Return type mismatch symbol vs none. - -;; s6-0: target -L313: - daddiu sp, sp, -32 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq gp, 16(sp) -B0: - lw t9, ja-channel-push!(s7);; [ 0] (set! t9-0 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 2 ;; [ 1] (set! a0-1 2) [] -> [a0: ] - addiu a1, r0, 15 ;; [ 2] (set! a1-1 15) [] -> [a1: ] - jalr ra, t9 ;; [ 3] (call! a0-1 a1-1) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 4] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu a0, 36(v1) ;; [ 5] (set! a0-2 (l.wu (+ v1-0 36))) [v1: joint-control ] -> [a0: effect-control ] - lwu v1, -4(a0) ;; [ 6] (set! v1-1 (l.wu (+ a0-2 -4))) - ;; [a0: effect-control ] -> [v1: ] - lwu t9, 56(v1) ;; [ 7] (set! t9-1 (l.wu (+ v1-1 56))) - ;; [v1: ] -> [t9: ] - daddiu a1, s7, jump-double;; [ 8] (set! a1-2 'jump-double) [] -> [a1: symbol ] - lui v1, L787 ;; [ 9] (set! v1-2 L787) [] -> [v1: ] - ori v1, v1, L787 - addu v1, fp, v1 - lw a2, 0(v1) ;; [ 10] (set! a2-0 (l.w v1-2)) [v1: ] -> [a2: int ] - addiu a3, r0, -1 ;; [ 11] (set! a3-0 -1) [] -> [a3: ] - jalr ra, t9 ;; [ 12] (call! a0-2 a1-2 a2-0 a3-0) - ;; [a0: effect-control a1: symbol a2: int a3: t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 13] (set! v1-3 v0-1) [v0: object ] -> [v1: object ] - lwu v1, 120(s6) ;; [ 14] (set! v1-4 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 15] (set! v1-5 (l.wu (+ v1-4 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [ 16] (set! gp-0 (+ v1-5 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lwu v1, 116(s6) ;; [ 17] (set! v1-6 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 18] (set! v1-7 (l.wu (+ v1-6 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 164(v1) ;; [ 19] (set! v1-8 (l.wu (+ v1-7 164))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(gp) ;; [ 20] (s.w! (+ gp-0 12) v1-8) [v1: art-element gp: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [ 21] (set! v1-9 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 22] (set! v1-10 (l.wu (+ v1-9 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 164(v1) ;; [ 23] (set! v1-11 (l.wu (+ v1-10 164))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 24] (set! (the-as art-joint-anim v1-12) (l.wu (+ v1-11 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 25] (set! v1-13 (l.h (+ v1-12 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 26] (set! v1-14 (+ v1-13 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 27] (set! f0-0 (gpr->fpr v1-14)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 28] (set! f0-1 (i2f f0-0)) [] -> [] - swc1 f0, 24(gp) ;; [ 29] (s.f! (+ gp-0 24) f0-1) [gp: joint-control-channel ] -> [] - lui v1, L786 ;; [ 30] (set! v1-15 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 31] (set! f0-2 (l.f v1-15)) [v1: ] -> [] - swc1 f0, 28(gp) ;; [ 32] (s.f! (+ gp-0 28) f0-2) [gp: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [ 33] (set! t9-2 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L740 ;; [ 34] (set! v1-16 L740) [] -> [v1: ] - ori v1, v1, L740 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 35] (set! a0-3 (l.w v1-16)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [ 36] (set! a1-3 0) [] -> [a1: ] - jalr ra, t9 ;; [ 37] (call! a0-3 a1-3) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 38] (set! f0-3 (gpr->fpr v0-2)) [v0: float ] -> [] - swc1 f0, 16(gp) ;; [ 39] (s.f! (+ gp-0 16) f0-3) [gp: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [ 40] (set! t9-3 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 41] (set! v1-17 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 42] (set! v1-18 (l.wu (+ v1-17 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 164(v1) ;; [ 43] (set! a1-4 (l.wu (+ v1-18 164))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [ 44] (set! a2-1 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, gp, r0 ;; [ 45] (set! a0-4 gp-0) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [ 46] (call! a0-4 a1-4 a2-1) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 47] (set! v1-19 v0-3) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [ 48] (set! v1-20 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 49] (set! v1-21 (l.wu (+ v1-20 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 48 ;; [ 50] (set! a0-5 (+ v1-21 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 51] (set! v1-22 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 52] (set! v1-23 (l.wu (+ v1-22 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 188(v1) ;; [ 53] (set! v1-24 (l.wu (+ v1-23 188))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 54] (s.w! (+ a0-5 12) v1-24) [v1: art-element a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 55] (set! f0-4 0) [] -> [] - swc1 f0, 24(a0) ;; [ 56] (s.f! (+ a0-5 24) f0-4) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 57] (set! t9-4 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 58] (set! v1-25 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 59] (set! v1-26 (l.wu (+ v1-25 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 188(v1) ;; [ 60] (set! a1-5 (l.wu (+ v1-26 188))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-chan(s7) ;; [ 61] (set! a2-2 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 62] (call! a0-5 a1-5 a2-2) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 63] (set! v1-27 v0-4) [v0: int ] -> [v1: int ] -B1: -L314: - lwu s6, 44(s6) ;; [ 64] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 65] (set! v1-28 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 66] (set! v1-29 (l.wu (+ v1-28 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 67] (set! a0-6 (+ v1-29 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [ 68] (set! v1-30 (l.wu (+ a0-6 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 69] (set! v1-31 (l.wu (+ v1-30 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 70] (set! v1-32 (l.h (+ v1-31 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 71] (set! v1-33 (+ v1-32 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 72] (set! f0-5 (gpr->fpr v1-33)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 73] (set! f0-6 (i2f f0-5)) [] -> [] - swc1 f0, 24(a0) ;; [ 74] (s.f! (+ a0-6 24) f0-6) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 75] (set! v1-34 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 76] (set! f0-7 (l.f v1-34)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 77] (s.f! (+ a0-6 28) f0-7) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 78] (set! t9-5 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 79] (set! a1-6 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 80] (set! a2-3 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 81] (call! a0-6 a1-6 a2-3) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 82] (set! v1-35 v0-5) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [ 83] (set! v1-36 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 84] (set! v1-37 (l.wu (+ v1-36 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 48 ;; [ 85] (set! a0-7 (+ v1-37 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 108(s6) ;; [ 86] (set! v1-38 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 2192(v1) ;; [ 87] (set! f0-8 (l.f (+ v1-38 2192))) [v1: control-info ] -> [] - swc1 f0, 8(a0) ;; [ 88] (s.f! (+ a0-7 8) f0-8) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 89] (set! f0-9 0) [] -> [] - swc1 f0, 24(a0) ;; [ 90] (s.f! (+ a0-7 24) f0-9) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 91] (set! t9-6 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 92] (set! a1-7 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [ 93] (set! a2-4 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 94] (call! a0-7 a1-7 a2-4) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 95] (set! v1-39 v0-6) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [ 96] (set! t9-7 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 97] (set! a0-8 0) [] -> [a0: ] - jalr ra, t9 ;; [ 98] (call! a0-8) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L314 ;; [ 99] (b! (not v0-7) L314 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B2: - or v1, s7, r0 ;; [100] (set! v1-40 #f) [] -> [v1: '#f ] - lw t9, target-falling-anim(s7);; [101] (set! t9-8 target-falling-anim) - ;; [] -> [t9: (function time-frame time-frame symbol :behavior target) ] - addiu a0, r0, -1 ;; [102] (set! a0-9 -1) [] -> [a0: ] - addiu a1, r0, 60 ;; [103] (set! a1-8 60) [] -> [a1: ] - jalr ra, t9 ;; [104] (call! a0-9 a1-8) - ;; [a0: a1: t9: (function time-frame time-frame symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 16(sp) - jr ra - daddiu sp, sp, 32 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-double-jump) - ((arg0 float) (arg1 float)) - (ja-channel-push! 2 (seconds 0.05)) - (dummy-10 (-> self skel effect) 'jump-double (the-as float -1.0) -1) - (ja-no-eval :group! (-> self draw art-group data 34) - :num! (seek!) - :frame-num (ja-aframe (the-as float 5.0) 0) - ) - (ja :chan 1 :group! (-> self draw art-group data 40) :num! (chan 0)) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - (ja :chan 1 :num! (chan 0) :frame-interp (-> self control unknown-float122)) - ) - (target-falling-anim -1 (seconds 0.2)) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-double-jump) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; Warnings: -;; INFO: Return type mismatch float vs none. - -;; s6-0: target -L315: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lw t9, target-falling-trans(s7);; [ 0] (set! t9-0 target-falling-trans) - ;; [] -> [t9: (function basic time-frame none :behavior target) ] - or a0, s7, r0 ;; [ 1] (set! a0-0 #f) [] -> [a0: '#f ] - lwu v1, 120(s6) ;; [ 2] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 3] (set! v1-1 (l.w (+ v1-0 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 4] (b! (<=0.si v1-1) L316 (set! v1-2 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L316 - or v1, s7, r0 - -B1: - lwu v1, 120(s6) ;; [ 5] (set! v1-3 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 6] (set! v1-4 (l.wu (+ v1-3 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 7] (set! v1-2 (l.wu (+ v1-4 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B2: -L316: - lwu a1, 116(s6) ;; [ 8] (set! a1-0 (l.wu (+ self 116))) [s6: target ] -> [a1: draw-control ] - lwu a1, 4(a1) ;; [ 9] (set! a1-1 (l.wu (+ a1-0 4))) [a1: draw-control ] -> [a1: art-group ] - lwu a1, 180(a1) ;; [ 10] (set! a1-2 (l.wu (+ a1-1 180))) [a1: art-group ] -> [a1: art-element ] - dsubu v1, v1, a1 ;; [ 11] (set! a1-3 (= v1-2 a1-2)) [v1: art-joint-anim a1: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, v1 - beq s7, a1, L317 ;; [ 12] (b! (not a1-3) L317 (nop!)) [a1: symbol ] -> [] - sll r0, r0, 0 - -B3: - addiu a1, r0, 15 ;; [ 13] (set! a1-4 15) [] -> [a1: ] - beq r0, r0, L318 ;; [ 14] (b! #t L318 (nop!)) [] -> [] - sll r0, r0, 0 - -B4: -L317: - addiu a1, r0, -1 ;; [ 15] (set! a1-4 -1) [] -> [a1: ] -B5: -L318: - jalr ra, t9 ;; [ 16] (call! a0-0 a1-4) - ;; [a0: '#f a1: int t9: (function basic time-frame none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lwu v1, 108(s6) ;; [ 17] (set! v1-5 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 18] (set! v1-6 (l.wu (+ v1-5 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 19] (set! v1-7 (l.w (+ v1-6 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 20] (set! v1-8 (sll v1-7 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 21] (set! a0-1 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 22] (set! v1-9 (+ v1-8 a0-1)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 23] (set! v1-10 (l.wu (+ v1-9 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 24] (set! v1-11 (l.wu (+ v1-10 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 32768 ;; [ 25] (set! v1-12 (logand v1-11 #x8000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L321 ;; [ 26] (bl! (zero? v1-12) L321 (no-delay!)) [v1: pad-buttons ] -> [] -B6: - or v1, s7, r0 ;; [ 27] (set! v1-13 #f) [] -> [v1: '#f ] - -B7: - lwu v1, 108(s6) ;; [ 28] (set! v1-14 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 29] (set! v1-15 (l.wu (+ v1-14 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 30] (set! a0-2 (+ v1-15 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 31] (set! v1-16 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 32] (set! v1-17 (+ v1-16 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [ 33] (set! f0-0 (vec3dot a0-2 v1-17)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 34] (set! v1-18 (fpr->gpr f0-0)) [] -> [v1: float ] - mtc1 f0, v1 ;; [ 35] (set! f0-1 (gpr->fpr v1-18)) [v1: float ] -> [] - lui v1, L804 ;; [ 36] (set! v1-19 L804) [] -> [v1: ] - ori v1, v1, L804 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 37] (set! f1-0 (l.f v1-19)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 38] (b! (<.s f0-1 f1-0) L319 (set! v1-20 #t)) [] -> [v1: symbol ] - bc1t L319 - daddiu v1, s7, 8 - -B8: - or v1, s7, r0 ;; [ 39] (set! v1-20 #f) [] -> [v1: '#f ] -B9: -L319: - beql s7, v1, L321 ;; [ 40] (bl! (not v1-20) L321 (no-delay!)) [v1: symbol ] -> [] -B10: - or v1, v1, r0 ;; [ 41] (set! v1-13 v1-20) [v1: symbol ] -> [v1: symbol ] - -B11: - lui v1, L805 ;; [ 42] (set! v1-21 L805) [] -> [v1: ] - ori v1, v1, L805 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 43] (set! f0-2 (l.f v1-21)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 44] (set! v1-22 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 45] (set! v1-23 (l.wu (+ v1-22 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 46] (set! a0-3 (+ v1-23 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 47] (set! v1-24 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 48] (set! v1-25 (+ v1-24 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f1, 0(a0) ;; [ 49] (set! f1-1 (vec3dot a0-3 v1-25)) [v1: vector a0: vector ] -> [] - lwc1 f2, 4(a0) - lwc1 f3, 8(a0) - lwc1 f4, 0(v1) - lwc1 f5, 4(v1) - lwc1 f6, 8(v1) - mula.s f1, f4 - madda.s f2, f5 - madd.s f1, f3, f6 - mfc1 v1, f1 ;; [ 50] (set! v1-26 (fpr->gpr f1-1)) [] -> [v1: float ] - mtc1 f1, v1 ;; [ 51] (set! f1-2 (gpr->fpr v1-26)) [v1: float ] -> [] - c.lt.s f0, f1 ;; [ 52] (b! (<.s f0-2 f1-2) L320 (set! v1-27 #t)) [] -> [v1: symbol ] - bc1t L320 - daddiu v1, s7, 8 - -B12: - or v1, s7, r0 ;; [ 53] (set! v1-27 #f) [] -> [v1: '#f ] -B13: -L320: - beql s7, v1, L321 ;; [ 54] (bl! (not v1-27) L321 (no-delay!)) [v1: symbol ] -> [] -B14: - or v1, v1, r0 ;; [ 55] (set! v1-13 v1-27) [v1: symbol ] -> [v1: symbol ] - -B15: - lw v1, *display*(s7) ;; [ 56] (set! v1-28 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 57] (set! v1-29 (l.d (+ v1-28 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 58] (set! a0-4 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 1708(a0) ;; [ 59] (set! a0-5 (l.d (+ a0-4 1708))) [a0: control-info ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 60] (set! v1-30 (- v1-29 a0-5)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - lw a0, *TARGET-bank*(s7) ;; [ 61] (set! a0-6 *TARGET-bank*) [] -> [a0: target-bank ] - ld a0, 564(a0) ;; [ 62] (set! a0-7 (l.d (+ a0-6 564))) [a0: target-bank ] -> [a0: seconds ] - slt v1, v1, a0 ;; [ 63] (set! a0-8 (>=.si v1-30 a0-7)) [v1: time-frame a0: seconds ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L321 ;; [ 64] (bl! (not a0-8) L321 (no-delay!)) [a0: symbol ] -> [] -B16: - or v1, a0, r0 ;; [ 65] (set! v1-13 a0-8) [a0: symbol ] -> [v1: symbol ] - -B17: - lwu v1, 160(s6) ;; [ 66] (set! v1-31 (l.wu (+ self 160))) [s6: target ] -> [v1: state-flags ] - andi v1, v1, 4096 ;; [ 67] (set! v1-32 (logand v1-31 4096)) [v1: state-flags ] -> [v1: state-flags ] - bnel v1, r0, L321 ;; [ 68] (bl! (nonzero? v1-32) L321 (no-delay!)) [v1: state-flags ] -> [] -B18: - or v1, s7, r0 ;; [ 69] (set! v1-13 #f) [] -> [v1: '#f ] - -B19: - daddiu v1, s7, 8 ;; [ 70] (set! v1-33 #t) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [ 71] (set! a0-9 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 660(a0) ;; [ 72] (set! a0-10 (l.wu (+ a0-9 660))) [a0: control-info ] -> [a0: surface ] - lwu a0, 144(a0) ;; [ 73] (set! a0-11 (l.wu (+ a0-10 144))) [a0: surface ] -> [a0: surface-flags ] - andi a0, a0, 384 ;; [ 74] (set! a0-12 (logand a0-11 384)) [a0: surface-flags ] -> [a0: surface-flags ] - movn v1, s7, a0 ;; [ 75] (cmove-#f-nonzero v1-13 a0-12 v1-33) - ;; [v1: symbol a0: surface-flags ] -> [v1: symbol ] -B20: -L321: - beq s7, v1, L324 ;; [ 76] (b! (not v1-13) L324 (set! v1-34 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B21: - lw t9, enter-state(s7) ;; [ 77] (set! t9-1 enter-state) [] -> [t9: ] - lui v1, L773 ;; [ 78] (set! v1-35 L773) [] -> [v1: ] - ori v1, v1, L773 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 79] (set! a0-13 (l.w v1-35)) [v1: ] -> [a0: int ] - lui v1, L729 ;; [ 80] (set! v1-36 L729) [] -> [v1: ] - ori v1, v1, L729 - addu v1, fp, v1 - lw a1, 0(v1) ;; [ 81] (set! a1-5 (l.w v1-36)) [v1: ] -> [a1: int ] - lwu v1, 108(s6) ;; [ 82] (set! v1-37 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 83] (set! v1-38 (l.wu (+ v1-37 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 84] (set! v1-39 (l.w (+ v1-38 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 85] (set! v1-40 (sll v1-39 2)) [v1: int ] -> [v1: ] - lw a2, *cpad-list*(s7) ;; [ 86] (set! a2-0 *cpad-list*) [] -> [a2: cpad-list ] - daddu v1, v1, a2 ;; [ 87] (set! v1-41 (+ v1-40 a2-0)) - ;; [v1: a2: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 88] (set! v1-42 (l.wu (+ v1-41 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwc1 f0, 72(v1) ;; [ 89] (set! f0-3 (l.f (+ v1-42 72))) [v1: cpad-info ] -> [] - mtc1 f1, r0 ;; [ 90] (set! f1-3 0) [] -> [] - c.eq.s f0, f1 ;; [ 91] (b! (!=.s f0-3 f1-3) L322 (nop!)) [] -> [] - bc1f L322 - sll r0, r0, 0 - -B22: - lui v1, L814 ;; [ 92] (set! v1-43 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a2, 0(v1) ;; [ 93] (set! a2-1 (l.w v1-43)) [v1: ] -> [a2: int ] - beq r0, r0, L323 ;; [ 94] (b! #t L323 (nop!)) [] -> [] - sll r0, r0, 0 - -B23: -L322: - lui v1, L758 ;; [ 95] (set! v1-44 L758) [] -> [v1: ] - ori v1, v1, L758 - addu v1, fp, v1 - lw a2, 0(v1) ;; [ 96] (set! a2-1 (l.w v1-44)) [v1: ] -> [a2: int ] -B24: -L323: - lw v1, target-flop(s7) ;; [ 97] (set! v1-45 target-flop) [] -> [v1: (state float float float target) ] - sw v1, 72(s6) ;; [ 98] (s.w! (+ self 72) v1-45) [v1: (state float float float target) s6: target ] -> [] - jalr ra, t9 ;; [ 99] (call! a0-13 a1-5 a2-1) - ;; [a0: int a1: int a2: int t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [100] (set! v1-46 v0-1) [v0: object ] -> [v1: object ] -B25: -L324: - lw v1, *display*(s7) ;; [101] (set! v1-47 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [102] (set! v1-48 (l.d (+ v1-47 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [103] (set! a0-14 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - beq a0, v1, L325 ;; [104] (b! (= a0-14 v1-48) L325 (set! v1-49 #f)) - ;; [v1: time-frame a0: time-frame ] -> [v1: '#f ] - or v1, s7, r0 - -B26: - lw t9, mod-var-jump(s7) ;; [105] (set! t9-2 mod-var-jump) - ;; [] -> [t9: (function symbol symbol symbol vector vector :behavior target) ] - daddiu a0, s7, #t ;; [106] (set! a0-15 #t) [] -> [a0: symbol ] - daddiu a1, s7, #t ;; [107] (set! a1-6 #t) [] -> [a1: symbol ] - daddiu a2, s7, 8 ;; [108] (set! a2-2 #t) [] -> [a2: symbol ] - lwu v1, 108(s6) ;; [109] (set! v1-50 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [110] (set! v1-51 (l.wu (+ v1-50 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [111] (set! v1-52 (l.w (+ v1-51 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [112] (set! v1-53 (sll v1-52 2)) [v1: int ] -> [v1: ] - lw a3, *cpad-list*(s7) ;; [113] (set! a3-0 *cpad-list*) [] -> [a3: cpad-list ] - daddu v1, v1, a3 ;; [114] (set! v1-54 (+ v1-53 a3-0)) - ;; [v1: a3: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [115] (set! v1-55 (l.wu (+ v1-54 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 40(v1) ;; [116] (set! v1-56 (l.wu (+ v1-55 40))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [117] (set! v1-57 (logand v1-56 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - movz a2, s7, v1 ;; [118] (cmove-#f-zero a2-3 v1-57 a2-2) [v1: pad-buttons a2: symbol ] -> [a2: symbol ] - lwu v1, 108(s6) ;; [119] (set! v1-58 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a3, v1, 60 ;; [120] (set! a3-1 (+ v1-58 60)) [v1: control-info ] -> [a3: vector ] - jalr ra, t9 ;; [121] (call! a0-15 a1-6 a2-3 a3-1) - ;; [a0: symbol a1: symbol a2: symbol a3: vector t9: (function symbol symbol symbol vector vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [122] (set! v1-59 v0-2) [v0: vector ] -> [v1: vector ] -B27: -L325: - lw t9, seek(s7) ;; [123] (set! t9-3 seek) [] -> [t9: (function float float float float) ] - lwu v1, 108(s6) ;; [124] (set! v1-60 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 2192(v1) ;; [125] (set! f0-4 (l.f (+ v1-60 2192))) [v1: control-info ] -> [] - mfc1 a0, f0 ;; [126] (set! a0-16 (fpr->gpr f0-4)) [] -> [a0: float ] - mtc1 f0, r0 ;; [127] (set! f0-5 0) [] -> [] - lui v1, L786 ;; [128] (set! v1-61 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [129] (set! f1-4 (l.f v1-61)) [v1: ] -> [] - lui v1, L759 ;; [130] (set! v1-62 L759) [] -> [v1: ] - ori v1, v1, L759 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [131] (set! f2-0 (l.f v1-62)) [v1: ] -> [] - lui v1, L792 ;; [132] (set! v1-63 L792) [] -> [v1: ] - ori v1, v1, L792 - addu v1, fp, v1 - lwc1 f3, 0(v1) ;; [133] (set! f3-0 (l.f v1-63)) [v1: ] -> [] - lwu v1, 108(s6) ;; [134] (set! v1-64 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f4, 528(v1) ;; [135] (set! f4-0 (l.f (+ v1-64 528))) [v1: control-info ] -> [] - add.s f3, f3, f4 ;; [136] (set! f3-1 (+.s f3-0 f4-0)) [] -> [] - mul.s f2, f2, f3 ;; [137] (set! f2-1 (*.s f2-0 f3-1)) [] -> [] - min.s f1, f1, f2 ;; [138] (set! f1-5 (min.s f1-4 f2-1)) [] -> [] - max.s f0, f0, f1 ;; [139] (set! f0-6 (max.s f0-5 f1-5)) [] -> [] - mfc1 a1, f0 ;; [140] (set! a1-7 (fpr->gpr f0-6)) [] -> [a1: float ] - lw v1, *display*(s7) ;; [141] (set! v1-65 *display*) [] -> [v1: display ] - lwc1 f0, 904(v1) ;; [142] (set! f0-7 (l.f (+ v1-65 904))) [v1: display ] -> [] - mfc1 a2, f0 ;; [143] (set! a2-4 (fpr->gpr f0-7)) [] -> [a2: float ] - jalr ra, t9 ;; [144] (call! a0-16 a1-7 a2-4) - ;; [a0: float a1: float a2: float t9: (function float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [145] (set! f0-8 (gpr->fpr v0-3)) [v0: float ] -> [] - lwu v1, 108(s6) ;; [146] (set! v1-66 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2192(v1) ;; [147] (s.f! (+ v1-66 2192) f0-8) [v1: control-info ] -> [] - mfc1 v0, f0 ;; [148] (set! v0-4 (fpr->gpr f0-8)) [] -> [v0: float ] - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-double-jump) - () - (target-falling-trans #f (the-as time-frame (if (ja-group? (-> self draw art-group data 38)) - 15 - -1 - ) - ) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 22118.4) - (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as time-frame (-> *TARGET-bank* stuck-timeout)) - ) - (zero? (logand (-> self state-flags) (state-flags prevent-attack))) - (zero? (logand (-> self control unknown-surface01 flags) (surface-flags prevent-attacks-during-launch-jump surf08)) - ) - ) - ) - (go - target-flop - (the-as float 33775.48) - (the-as float -122880.0) - (the-as float (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - 0.0 - 68812.8 - ) - ) - ) - ) - (if (!= (-> self state-time) (-> *display* base-frame-counter)) - (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) - ) - (seek! - (-> self control unknown-float122) - (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control unknown-float01))))) - (-> *display* seconds-per-frame) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-double-jump) +; .function (method 245 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;stack: total 0x30, fp? 0 ra? 1 ep? 1 ;stack_vars: 8 bytes at 8 ;gprs: gp s5 ;; Warnings: -;; INFO: Return type mismatch surface vs none. -;; Used lq/sq +;; WARN: Type Propagation failed: Function (method 245 ashelin) has unknown type -;; a0-0: float a0-3: int a1-0: float a1-1: int a2-0: vector s6-0: target -L326: +L7: daddiu sp, sp, -48 sd ra, 0(sp) sq s5, 16(sp) sq gp, 32(sp) B0: - or gp, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: float ] -> [gp: float ] - or s5, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: float ] -> [s5: float ] - daddiu v1, s7, launch ;; [ 2] (set! v1-0 'launch) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [ 3] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 2424(a0) ;; [ 4] (set! a0-2 (l.wu (+ a0-1 2424))) [a0: control-info ] -> [a0: symbol ] - bne a0, v1, L327 ;; [ 5] (b! (!= a0-2 v1-0) L327 (set! v1-1 #f)) [v1: symbol a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 + or gp, a0, r0 ;; [ 0] (set! gp a0) + or a0, gp, r0 ;; [ 1] (set! a0 gp) + lwu v1, -4(a0) ;; [ 2] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 852(v1) ;; [ 3] (set! t9 (l.wu (+ v1 852))) + addiu a1, r0, 0 ;; [ 4] (set! a1 0) + jalr ra, t9 ;; [ 5] (call!) + sll v0, ra, 0 + or v1, v0, r0 ;; [ 6] (set! v1 v0) + bnel s7, v1, L8 ;; [ 7] (bl! (truthy v1) L8 (no-delay!)) B1: - lw t9, enter-state(s7) ;; [ 6] (set! t9-0 enter-state) [] -> [t9: ] - lwu v1, 108(s6) ;; [ 7] (set! v1-2 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld a0, 2428(v1) ;; [ 8] (set! a0-3 (l.d (+ v1-2 2428))) [v1: control-info ] -> [a0: int ] - lwu v1, 108(s6) ;; [ 9] (set! v1-3 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld a1, 2436(v1) ;; [ 10] (set! a1-1 (l.d (+ v1-3 2436))) [v1: control-info ] -> [a1: int ] - lwu v1, 108(s6) ;; [ 11] (set! v1-4 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a2, v1, 2220 ;; [ 12] (set! a2-0 (+ v1-4 2220)) [v1: control-info ] -> [a2: vector ] - lwu v1, 108(s6) ;; [ 13] (set! v1-5 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 2444(v1) ;; [ 14] (set! v1-6 (l.d (+ v1-5 2444))) [v1: control-info ] -> [v1: vector ] - lq v1, 0(v1) ;; [ 15] (set! (the-as vector v1-7) (l.q v1-6)) [v1: vector ] -> [v1: uint128 ] - sq v1, 0(a2) ;; [ 16] (s.q! a2-0 v1-7) [v1: uint128 a2: vector ] -> [] - lwu v1, 108(s6) ;; [ 17] (set! v1-8 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld a3, 2452(v1) ;; [ 18] (set! a3-0 (l.d (+ v1-8 2452))) [v1: control-info ] -> [a3: int ] - lw v1, target-launch(s7) ;; [ 19] (set! v1-9 target-launch) [] -> [v1: (state float symbol vector int target) ] - sw v1, 72(s6) ;; [ 20] (s.w! (+ self 72) v1-9) - ;; [v1: (state float symbol vector int target) s6: target ] -> [] - jalr ra, t9 ;; [ 21] (call! a0-3 a1-1 a2-0 a3-0) - ;; [a0: int a1: int a2: vector a3: int t9: ] -> [v0: object ] - sll v0, ra, 0 + or v1, s7, r0 ;; [ 8] (set! v1 #f) - or v1, v0, r0 ;; [ 22] (set! v1-10 v0-0) [v0: object ] -> [v1: object ] B2: -L327: - lw v1, *display*(s7) ;; [ 23] (set! v1-11 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 24] (set! v1-12 (l.d (+ v1-11 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 25] (s.d! (+ self 164) v1-12) [v1: time-frame s6: target ] -> [] - lw t9, init-var-jump(s7) ;; [ 26] (set! t9-1 init-var-jump) - ;; [] -> [t9: (function float float vector vector vector vector :behavior target) ] - daddiu a2, s7, #t ;; [ 27] (set! a2-1 #t) [] -> [a2: symbol ] - daddiu a3, s7, #t ;; [ 28] (set! a3-1 #t) [] -> [a3: symbol ] - lwu v1, 108(s6) ;; [ 29] (set! v1-13 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu t0, v1, 60 ;; [ 30] (set! t0-0 (+ v1-13 60)) [v1: control-info ] -> [t0: vector ] - or a0, gp, r0 ;; [ 31] (set! a0-4 arg0) [gp: float ] -> [a0: float ] - or a1, s5, r0 ;; [ 32] (set! a1-2 arg1) [s5: float ] -> [a1: float ] - jalr ra, t9 ;; [ 33] (call! a0-4 a1-2 a2-1 a3-1 t0-0) - ;; [a0: float a1: float a2: symbol a3: symbol t0: vector t9: (function float float vector vector vector vector :behavior target) ] -> [v0: vector ] + lwu v1, 8(s6) ;; [ 9] (set! v1 (l.wu (+ s6 8))) + ld v1, 20(v1) ;; [ 10] (set! v1 (l.d (+ v1 20))) + ld a0, 1012(gp) ;; [ 11] (set! a0 (l.d (+ gp 1012))) + slt a0, v1, a0 ;; [ 12] (set! v1 (>=.si v1 a0)) + daddiu v1, s7, 4 + movn v1, s7, a0 +B3: +L8: + beq s7, v1, L9 ;; [ 13] (b! (not v1) L9 (set! v0 #f)) + or v0, s7, r0 + +B4: + lwu v1, 648(gp) ;; [ 14] (set! v1 (l.wu (+ gp 648))) + lwu a0, 48(v1) ;; [ 15] (set! a0 (l.wu (+ v1 48))) + lwu v1, -4(a0) ;; [ 16] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 52(v1) ;; [ 17] (set! t9 (l.wu (+ v1 52))) + or a1, gp, r0 ;; [ 18] (set! a1 gp) + lwu v1, 648(gp) ;; [ 19] (set! v1 (l.wu (+ gp 648))) + lwu a2, 28(v1) ;; [ 20] (set! a2 (l.wu (+ v1 28))) + addiu a3, r0, 0 ;; [ 21] (set! a3 0) + jalr ra, t9 ;; [ 22] (call!) sll v0, ra, 0 - addiu v1, r0, -8 ;; [ 34] (set! v1-14 -8) [] -> [v1: ] - lwu a0, 108(s6) ;; [ 35] (set! a0-5 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 268(a0) ;; [ 36] (set! a0-6 (l.d (+ a0-5 268))) [a0: control-info ] -> [a0: cshape-moving-flags ] - and v1, v1, a0 ;; [ 37] (set! v1-15 (logand v1-14 a0-6)) - ;; [v1: a0: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - lwu a0, 108(s6) ;; [ 38] (set! a0-7 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 268(a0) ;; [ 39] (s.d! (+ a0-7 268) v1-15) [v1: cshape-moving-flags a0: control-info ] -> [] - lw v0, *double-jump-mods*(s7);; [ 40] (set! v0-2 *double-jump-mods*) [] -> [v0: surface ] - lwu v1, 108(s6) ;; [ 41] (set! v1-16 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw v0, 656(v1) ;; [ 42] (s.w! (+ v1-16 656) v0-2) [v0: surface v1: control-info ] -> [] + or s5, v0, r0 ;; [ 23] (set! s5 v0) + slt v1, s5, r0 ;; [ 24] (b! (<0.si s5) L9 (set! v0 #f)) + bne v1, r0, L9 + or v0, s7, r0 + +B5: + or a0, gp, r0 ;; [ 25] (set! a0 gp) + lwu v1, -4(a0) ;; [ 26] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 500(v1) ;; [ 27] (set! t9 (l.wu (+ v1 500))) + addiu a1, r0, 1200 ;; [ 28] (set! a1 1200) + addiu a2, r0, 2100 ;; [ 29] (set! a2 2100) + jalr ra, t9 ;; [ 30] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 31] (set! v1 v0) + lwu a0, 8(s6) ;; [ 32] (set! a0 (l.wu (+ s6 8))) + ld a0, 20(a0) ;; [ 33] (set! a0 (l.d (+ a0 20))) + daddu v1, v1, a0 ;; [ 34] (set! v1 (+ v1 a0)) + sd v1, 1012(gp) ;; [ 35] (s.d! (+ gp 1012) v1) + lwu v1, -4(gp) ;; [ 36] (set! v1 (l.wu (+ gp -4))) + lwu t9, 840(v1) ;; [ 37] (set! t9 (l.wu (+ v1 840))) + or a0, gp, r0 ;; [ 38] (set! a0 gp) + or a1, s5, r0 ;; [ 39] (set! a1 s5) + jalr ra, t9 ;; [ 40] (call!) + sll v0, ra, 0 + +B6: +L9: ld ra, 0(sp) lq gp, 32(sp) lq s5, 16(sp) @@ -15803,222 +1504,226 @@ L327: sll r0, r0, 0 sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-double-jump) - ((arg0 float) (arg1 float)) - (when (= (-> self control unknown-symbol40) 'launch) - enter-state - (let ((a0-3 (-> self control unknown-dword60)) - (a1-1 (-> self control unknown-dword61)) - (a2-0 (-> self control unknown-vector102)) - ) - (set! (-> a2-0 quad) (-> (the-as vector (-> self control unknown-dword62)) quad)) - (go target-launch (the-as float a0-3) (the-as symbol a1-1) a2-0 (-> self control unknown-dword63)) - ) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (init-var-jump arg0 arg1 (the-as vector #t) (the-as vector #t) (-> self control transv)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (set! (-> self control unknown-surface00) *double-jump-mods*) - (none) - ) - -;;-*-OpenGOAL-End-*- - + (set! gp a0) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 852))) + (set! a1 0) + (call!) + (set! v1 v0) + (bl! (truthy v1) L8 (no-delay!)) + (set! v1 #f) + (set! v1 (l.wu (+ s6 8))) + (set! v1 (l.d (+ v1 20))) + (set! a0 (l.d (+ gp 1012))) + (set! v1 (>=.si v1 a0)) +(label L8) + (b! (not v1) L9 (set! v0 #f)) + (set! v1 (l.wu (+ gp 648))) + (set! a0 (l.wu (+ v1 48))) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 52))) + (set! a1 gp) + (set! v1 (l.wu (+ gp 648))) + (set! a2 (l.wu (+ v1 28))) + (set! a3 0) + (call!) + (set! s5 v0) + (b! (<0.si s5) L9 (set! v0 #f)) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 500))) + (set! a1 1200) + (set! a2 2100) + (call!) + (set! v1 v0) + (set! a0 (l.wu (+ s6 8))) + (set! a0 (l.d (+ a0 20))) + (set! v1 (+ v1 a0)) + (s.d! (+ gp 1012) v1) + (set! v1 (l.wu (+ gp -4))) + (set! t9 (l.wu (+ v1 840))) + (set! a0 gp) + (set! a1 s5) + (call!) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-jump-forward) +; .function (method 244 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x20, fp? 1 ra? 1 ep? 1 + ;stack: total 0x20, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 ;gprs: gp -;; s6-0: target -L328: +;; Warnings: +;; WARN: Type Propagation failed: Function (method 244 ashelin) has unknown type + +L10: daddiu sp, sp, -32 sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 sq gp, 16(sp) B0: - lw t9, ja-channel-set!(s7);; [ 0] (set! t9-0 ja-channel-set!) - ;; [] -> [t9: (function int int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 1] (set! a0-1 1) [] -> [a0: ] - jalr ra, t9 ;; [ 2] (call! a0-1) - ;; [a0: t9: (function int int :behavior process-drawable) ] -> [v0: int ] + or gp, a0, r0 ;; [ 0] (set! gp a0) + or a0, gp, r0 ;; [ 1] (set! a0 gp) + lwu v1, -4(a0) ;; [ 2] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 852(v1) ;; [ 3] (set! t9 (l.wu (+ v1 852))) + addiu a1, r0, 0 ;; [ 4] (set! a1 0) + jalr ra, t9 ;; [ 5] (call!) sll v0, ra, 0 - lwu v1, 120(s6) ;; [ 3] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 4] (set! v1-1 (l.wu (+ v1-0 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [ 5] (set! gp-0 (+ v1-1 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lwu v1, 116(s6) ;; [ 6] (set! v1-2 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 7] (set! v1-3 (l.wu (+ v1-2 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 164(v1) ;; [ 8] (set! v1-4 (l.wu (+ v1-3 164))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(gp) ;; [ 9] (s.w! (+ gp-0 12) v1-4) [v1: art-element gp: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [ 10] (set! v1-5 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 11] (set! v1-6 (l.wu (+ v1-5 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 164(v1) ;; [ 12] (set! v1-7 (l.wu (+ v1-6 164))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 13] (set! (the-as art-joint-anim v1-8) (l.wu (+ v1-7 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 14] (set! v1-9 (l.h (+ v1-8 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 15] (set! v1-10 (+ v1-9 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 16] (set! f0-0 (gpr->fpr v1-10)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 17] (set! f0-1 (i2f f0-0)) [] -> [] - swc1 f0, 24(gp) ;; [ 18] (s.f! (+ gp-0 24) f0-1) [gp: joint-control-channel ] -> [] - lui v1, L786 ;; [ 19] (set! v1-11 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 20] (set! f0-2 (l.f v1-11)) [v1: ] -> [] - swc1 f0, 28(gp) ;; [ 21] (s.f! (+ gp-0 28) f0-2) [gp: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [ 22] (set! t9-1 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L750 ;; [ 23] (set! v1-12 L750) [] -> [v1: ] - ori v1, v1, L750 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 24] (set! a0-2 (l.w v1-12)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [ 25] (set! a1-1 0) [] -> [a1: ] - jalr ra, t9 ;; [ 26] (call! a0-2 a1-1) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 + or v1, v0, r0 ;; [ 6] (set! v1 v0) + bne s7, v1, L11 ;; [ 7] (b! (truthy v1) L11 (set! v0 #f)) + or v0, s7, r0 - mtc1 f0, v0 ;; [ 27] (set! f0-3 (gpr->fpr v0-1)) [v0: float ] -> [] - swc1 f0, 16(gp) ;; [ 28] (s.f! (+ gp-0 16) f0-3) [gp: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [ 29] (set! t9-2 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 30] (set! v1-13 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 31] (set! v1-14 (l.wu (+ v1-13 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 164(v1) ;; [ 32] (set! a1-2 (l.wu (+ v1-14 164))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [ 33] (set! a2-0 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, gp, r0 ;; [ 34] (set! a0-3 gp-0) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [ 35] (call! a0-3 a1-2 a2-0) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 36] (set! v1-15 v0-2) [v0: int ] -> [v1: int ] B1: -L329: - lwu v1, 108(s6) ;; [ 37] (set! v1-16 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sd r0, 18948(v1) ;; [ 38] (s.d! (+ v1-16 #x4a04) 0) [v1: control-info ] -> [] - lwu s6, 44(s6) ;; [ 39] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 40] (set! v1-17 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 41] (set! v1-18 (l.wu (+ v1-17 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 42] (set! a0-4 (+ v1-18 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [ 43] (set! v1-19 (l.wu (+ a0-4 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 44] (set! v1-20 (l.wu (+ v1-19 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 45] (set! v1-21 (l.h (+ v1-20 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 46] (set! v1-22 (+ v1-21 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 47] (set! f0-4 (gpr->fpr v1-22)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 48] (set! f0-5 (i2f f0-4)) [] -> [] - swc1 f0, 24(a0) ;; [ 49] (s.f! (+ a0-4 24) f0-5) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 50] (set! v1-23 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 51] (set! f0-6 (l.f v1-23)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 52] (s.f! (+ a0-4 28) f0-6) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 53] (set! t9-3 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 54] (set! a1-3 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 55] (set! a2-1 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 56] (call! a0-4 a1-3 a2-1) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] + lwu v1, 648(gp) ;; [ 8] (set! v1 (l.wu (+ gp 648))) + lwu a0, 44(v1) ;; [ 9] (set! a0 (l.wu (+ v1 44))) + lwu v1, -4(a0) ;; [ 10] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 52(v1) ;; [ 11] (set! t9 (l.wu (+ v1 52))) + or a1, gp, r0 ;; [ 12] (set! a1 gp) + lwu v1, 648(gp) ;; [ 13] (set! v1 (l.wu (+ gp 648))) + lwu a2, 28(v1) ;; [ 14] (set! a2 (l.wu (+ v1 28))) + addiu a3, r0, 0 ;; [ 15] (set! a3 0) + jalr ra, t9 ;; [ 16] (call!) sll v0, ra, 0 - or v1, v0, r0 ;; [ 57] (set! v1-24 v0-3) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [ 58] (set! t9-4 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 59] (set! a0-5 0) [] -> [a0: ] - jalr ra, t9 ;; [ 60] (call! a0-5) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] + or a1, v0, r0 ;; [ 17] (set! a1 v0) + slt v1, a1, r0 ;; [ 18] (b! (<0.si a1) L11 (set! v0 #f)) + bne v1, r0, L11 + or v0, s7, r0 + +B2: + lwu v1, -4(gp) ;; [ 19] (set! v1 (l.wu (+ gp -4))) + lwu t9, 840(v1) ;; [ 20] (set! t9 (l.wu (+ v1 840))) + or a0, gp, r0 ;; [ 21] (set! a0 gp) + jalr ra, t9 ;; [ 22] (call!) sll v0, ra, 0 - beq s7, v0, L329 ;; [ 61] (b! (not v0-4) L329 (nop!)) [v0: symbol ] -> [] +B3: +L11: + ld ra, 0(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 32 + + sll r0, r0, 0 + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 852))) + (set! a1 0) + (call!) + (set! v1 v0) + (b! (truthy v1) L11 (set! v0 #f)) + (set! v1 (l.wu (+ gp 648))) + (set! a0 (l.wu (+ v1 44))) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 52))) + (set! a1 gp) + (set! v1 (l.wu (+ gp 648))) + (set! a2 (l.wu (+ v1 28))) + (set! a3 0) + (call!) + (set! a1 v0) + (b! (<0.si a1) L11 (set! v0 #f)) + (set! v1 (l.wu (+ gp -4))) + (set! t9 (l.wu (+ v1 840))) + (set! a0 gp) + (call!) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 203 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x20, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp +;; Warnings: +;; WARN: Type Propagation failed: Function (method 203 ashelin) has unknown type + +L12: + daddiu sp, sp, -32 + sd ra, 0(sp) + sq gp, 16(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + or a0, gp, r0 ;; [ 1] (set! a0 gp) + lwu v1, -4(a0) ;; [ 2] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 852(v1) ;; [ 3] (set! t9 (l.wu (+ v1 852))) + addiu a1, r0, 0 ;; [ 4] (set! a1 0) + jalr ra, t9 ;; [ 5] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 6] (set! v1 v0) + bne s7, v1, L17 ;; [ 7] (b! (truthy v1) L17 (set! v0 #f)) + or v0, s7, r0 + +B1: + addiu v1, r0, 0 ;; [ 8] (set! v1 0) + lui a0, 960 ;; [ 9] (set! a0 #x3c00000) + ld a1, 436(gp) ;; [ 10] (set! a1 (l.d (+ gp 436))) + and a0, a0, a1 ;; [ 11] (set! a0 (logand a0 a1)) + beq a0, r0, L13 ;; [ 12] (b! (zero? a0) L13 (nop!)) sll r0, r0, 0 B2: - or v1, s7, r0 ;; [ 62] (set! v1-25 #f) [] -> [v1: '#f ] - lwu v1, 120(s6) ;; [ 63] (set! v1-26 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 64] (set! v1-27 (l.wu (+ v1-26 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 65] (set! a0-6 (+ v1-27 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 66] (set! v1-28 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 67] (set! v1-29 (l.wu (+ v1-28 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 180(v1) ;; [ 68] (set! v1-30 (l.wu (+ v1-29 180))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 69] (s.w! (+ a0-6 12) v1-30) [v1: art-element a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 70] (set! v1-31 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 71] (set! f0-7 (l.f v1-31)) [v1: ] -> [] - swc1 f0, 24(a0) ;; [ 72] (s.f! (+ a0-6 24) f0-7) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 73] (set! f0-8 0) [] -> [] - swc1 f0, 16(a0) ;; [ 74] (s.f! (+ a0-6 16) f0-8) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [ 75] (set! t9-5 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 76] (set! v1-32 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 77] (set! v1-33 (l.wu (+ v1-32 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 180(v1) ;; [ 78] (set! a1-4 (l.wu (+ v1-33 180))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-loop!(s7) ;; [ 79] (set! a2-2 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 80] (call! a0-6 a1-4 a2-2) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 81] (set! v1-34 v0-5) [v0: int ] -> [v1: int ] -B3: -L330: - lwu s6, 44(s6) ;; [ 82] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 83] (set! v1-35 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 84] (set! v1-36 (l.wu (+ v1-35 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 85] (set! a0-7 (+ v1-36 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 86] (set! v1-37 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 87] (set! v1-38 (l.wu (+ v1-37 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 180(v1) ;; [ 88] (set! v1-39 (l.wu (+ v1-38 180))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 89] (s.w! (+ a0-7 12) v1-39) [v1: art-element a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 90] (set! v1-40 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 91] (set! f0-9 (l.f v1-40)) [v1: ] -> [] - swc1 f0, 24(a0) ;; [ 92] (s.f! (+ a0-7 24) f0-9) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 93] (set! t9-6 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 94] (set! v1-41 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 95] (set! v1-42 (l.wu (+ v1-41 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 180(v1) ;; [ 96] (set! a1-5 (l.wu (+ v1-42 180))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-loop!(s7) ;; [ 97] (set! a2-3 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 98] (call! a0-7 a1-5 a2-3) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 99] (set! v1-43 v0-6) [v0: int ] -> [v1: int ] - beq r0, r0, L330 ;; [100] (b! #t L330 (nop!)) [] -> [] + ori v1, v1, 128 ;; [ 13] (set! v1 (logior v1 128)) + or a0, v1, r0 ;; [ 14] (set! a0 v1) + beq r0, r0, L14 ;; [ 15] (b! #t L14 (nop!)) sll r0, r0, 0 +B3: +L13: + ori v1, v1, 64 ;; [ 16] (set! v1 (logior v1 64)) + or a0, v1, r0 ;; [ 17] (set! a0 v1) B4: - or v0, s7, r0 ;; [101] (set! v0-7 #f) [] -> [v0: ] +L14: + lwu a0, 600(gp) ;; [ 18] (set! a0 (l.wu (+ gp 600))) + andi a0, a0, 128 ;; [ 19] (set! a0 (logand a0 128)) + beq a0, r0, L15 ;; [ 20] (b! (zero? a0) L15 (nop!)) + sll r0, r0, 0 + +B5: + ori a3, v1, 256 ;; [ 21] (set! a3 (logior v1 256)) + or v1, a3, r0 ;; [ 22] (set! v1 a3) + beq r0, r0, L16 ;; [ 23] (b! #t L16 (nop!)) + sll r0, r0, 0 + +B6: +L15: + ori a3, v1, 512 ;; [ 24] (set! a3 (logior v1 512)) + or v1, a3, r0 ;; [ 25] (set! v1 a3) +B7: +L16: + lwu v1, 648(gp) ;; [ 26] (set! v1 (l.wu (+ gp 648))) + lwu a0, 16(v1) ;; [ 27] (set! a0 (l.wu (+ v1 16))) + lwu v1, -4(a0) ;; [ 28] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 52(v1) ;; [ 29] (set! t9 (l.wu (+ v1 52))) + or a1, gp, r0 ;; [ 30] (set! a1 gp) + lwu v1, 648(gp) ;; [ 31] (set! v1 (l.wu (+ gp 648))) + lwu a2, 28(v1) ;; [ 32] (set! a2 (l.wu (+ v1 28))) + jalr ra, t9 ;; [ 33] (call!) + sll v0, ra, 0 + + or a1, v0, r0 ;; [ 34] (set! a1 v0) + slt v1, a1, r0 ;; [ 35] (b! (<0.si a1) L17 (set! v0 #f)) + bne v1, r0, L17 + or v0, s7, r0 + +B8: + lwu v1, -4(gp) ;; [ 36] (set! v1 (l.wu (+ gp -4))) + lwu t9, 840(v1) ;; [ 37] (set! t9 (l.wu (+ v1 840))) + or a0, gp, r0 ;; [ 38] (set! a0 gp) + jalr ra, t9 ;; [ 39] (call!) + sll v0, ra, 0 + +B9: +L17: ld ra, 0(sp) - ld fp, 8(sp) lq gp, 16(sp) jr ra daddiu sp, sp, 32 @@ -16026,391 +1731,1551 @@ B4: sll r0, r0, 0 sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-jump-forward) - ((arg0 float) (arg1 float)) - (ja-channel-set! 1) - (ja-no-eval :group! (-> self draw art-group data 34) - :num! (seek!) - :frame-num (ja-aframe (the-as float 3.0) 0) - ) - (until (ja-done? 0) - (set! (-> self control unknown-dword70) 0) - (suspend) - (ja :num! (seek!)) - ) - (ja-no-eval :group! (-> self draw art-group data 38) :num! (loop!) :frame-num 0.0) - (loop - (suspend) - (ja :group! (-> self draw art-group data 38) :num! (loop!)) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - + (set! gp a0) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 852))) + (set! a1 0) + (call!) + (set! v1 v0) + (b! (truthy v1) L17 (set! v0 #f)) + (set! v1 0) + (set! a0 #x3c00000) + (set! a1 (l.d (+ gp 436))) + (set! a0 (logand a0 a1)) + (b! (zero? a0) L13 (nop!)) + (set! v1 (logior v1 128)) + (set! a0 v1) + (b! #t L14 (nop!)) +(label L13) + (set! v1 (logior v1 64)) + (set! a0 v1) +(label L14) + (set! a0 (l.wu (+ gp 600))) + (set! a0 (logand a0 128)) + (b! (zero? a0) L15 (nop!)) + (set! a3 (logior v1 256)) + (set! v1 a3) + (b! #t L16 (nop!)) +(label L15) + (set! a3 (logior v1 512)) + (set! v1 a3) +(label L16) + (set! v1 (l.wu (+ gp 648))) + (set! a0 (l.wu (+ v1 16))) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 52))) + (set! a1 gp) + (set! v1 (l.wu (+ gp 648))) + (set! a2 (l.wu (+ v1 28))) + (call!) + (set! a1 v0) + (b! (<0.si a1) L17 (set! v0 #f)) + (set! v1 (l.wu (+ gp -4))) + (set! t9 (l.wu (+ v1 840))) + (set! a0 gp) + (call!) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-jump-forward) +; .function (method 216 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x30, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp s5 +;; Warnings: +;; WARN: Type Propagation failed: Function (method 216 ashelin) has unknown type + +L18: + daddiu sp, sp, -48 + sd ra, 0(sp) + sq s5, 16(sp) + sq gp, 32(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + lw a0, *default-dead-pool*(s7);; [ 1] (set! a0 *default-dead-pool*) + lwu v1, -4(a0) ;; [ 2] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 72(v1) ;; [ 3] (set! t9 (l.wu (+ v1 72))) + lw a1, hud-ashelin(s7) ;; [ 4] (set! a1 hud-ashelin) + addiu a2, r0, 16384 ;; [ 5] (set! a2 #x4000) + jalr ra, t9 ;; [ 6] (call!) + sll v0, ra, 0 + + or s5, v0, r0 ;; [ 7] (set! s5 v0) + beq s7, s5, L19 ;; [ 8] (b! (not s5) L19 (set! v1 #f)) + or v1, s7, r0 + +B1: + lw v1, hud-ashelin(s7) ;; [ 9] (set! v1 hud-ashelin) + lwu t9, 52(v1) ;; [ 10] (set! t9 (l.wu (+ v1 52))) + or a0, s5, r0 ;; [ 11] (set! a0 s5) + or a1, gp, r0 ;; [ 12] (set! a1 gp) + ori v1, r0, 65335 ;; [ 13] (set! v1 #xff37) + lw a2, hud-ashelin(s7) ;; [ 14] (set! a2 hud-ashelin) + lwu a2, 0(a2) ;; [ 15] (set! a2 (l.wu a2)) + daddu v1, v1, a2 ;; [ 16] (set! v1 (+ v1 a2)) + lwu a2, 0(v1) ;; [ 17] (set! a2 (l.wu v1)) + lui v1, 28672 ;; [ 18] (set! a3 #x70004000) + ori a3, v1, 16384 + jalr ra, t9 ;; [ 19] (call!) + sll v0, ra, 0 + + lw t9, run-function-in-process(s7);; [ 20] (set! t9 run-function-in-process) + or a0, s5, r0 ;; [ 21] (set! a0 s5) + lw a1, hud-init-by-other(s7);; [ 22] (set! a1 hud-init-by-other) + jalr ra, t9 ;; [ 23] (call!) + sll v0, ra, 0 + + lwu v1, 24(s5) ;; [ 24] (set! v1 (l.wu (+ s5 24))) +B2: +L19: + beq s7, v1, L20 ;; [ 25] (b! (not v1) L20 (nop!)) + sll r0, r0, 0 + +B3: + lwu a0, 0(v1) ;; [ 26] (set! a0 (l.wu v1)) + lw a0, 40(a0) ;; [ 27] (set! a0 (l.w (+ a0 40))) + dsll32 a0, a0, 0 ;; [ 28] (set! a0 (sll a0 32)) + beq r0, r0, L21 ;; [ 29] (b! #t L21 (nop!)) + sll r0, r0, 0 + +B4: +L20: + addiu a0, r0, 0 ;; [ 30] (set! a0 0) +B5: +L21: + sllv v1, v1, r0 ;; [ 31] (.sllv v1 v1 r0) + or v1, a0, v1 ;; [ 32] (set! v1 (logior a0 v1)) + sd v1, 724(gp) ;; [ 33] (s.d! (+ gp 724) v1) + or v0, r0, r0 ;; [ 34] (set! v0 0) + ld ra, 0(sp) + lq gp, 32(sp) + lq s5, 16(sp) + jr ra + daddiu sp, sp, 48 + + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! a0 *default-dead-pool*) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 72))) + (set! a1 hud-ashelin) + (set! a2 #x4000) + (call!) + (set! s5 v0) + (b! (not s5) L19 (set! v1 #f)) + (set! v1 hud-ashelin) + (set! t9 (l.wu (+ v1 52))) + (set! a0 s5) + (set! a1 gp) + (set! v1 #xff37) + (set! a2 hud-ashelin) + (set! a2 (l.wu a2)) + (set! v1 (+ v1 a2)) + (set! a2 (l.wu v1)) + (set! a3 #x70004000) + (call!) + (set! t9 run-function-in-process) + (set! a0 s5) + (set! a1 hud-init-by-other) + (call!) + (set! v1 (l.wu (+ s5 24))) +(label L19) + (b! (not v1) L20 (nop!)) + (set! a0 (l.wu v1)) + (set! a0 (l.w (+ a0 40))) + (set! a0 (sll a0 32)) + (b! #t L21 (nop!)) +(label L20) + (set! a0 0) +(label L21) + (.sllv v1 v1 r0) + (set! v1 (logior a0 v1)) + (s.d! (+ gp 724) v1) + (set! v0 0) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 142 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;stack: total 0x10, fp? 0 ra? 1 ep? 1 ;stack_vars: 8 bytes at 8 ;; Warnings: -;; INFO: Return type mismatch surface vs none. +;; WARN: Type Propagation failed: Function (method 142 ashelin) has unknown type -;; a0-0: float a1-0: float s6-0: target -L331: +L22: daddiu sp, sp, -16 sd ra, 0(sp) B0: - lw v1, target-jump(s7) ;; [ 0] (set! v1-0 target-jump) [] -> [v1: (state float float surface target) ] - lwu t9, 24(v1) ;; [ 1] (set! t9-0 (l.wu (+ v1-0 24))) - ;; [v1: (state float float surface target) ] -> [t9: (function float float surface none :behavior target) ] - or a2, s7, r0 ;; [ 2] (set! a2-0 #f) [] -> [a2: '#f ] - jalr ra, t9 ;; [ 3] (call! arg0 arg1 a2-0) - ;; [a0: float a1: float a2: '#f t9: (function float float surface none :behavior target) ] -> [v0: none ] + lwu v1, 64(a0) ;; [ 0] (set! v1 (l.wu (+ a0 64))) + beql s7, v1, L23 ;; [ 1] (bl! (not v1) L23 (no-delay!)) +B1: + or v1, v1, r0 ;; [ 2] (set! v1 v1) + +B2: + lwu v1, 64(a0) ;; [ 3] (set! v1 (l.wu (+ a0 64))) + lwu v1, 0(v1) ;; [ 4] (set! v1 (l.wu v1)) + daddiu a2, s7, back-spring;; [ 5] (set! a2 'back-spring) + dsubu a2, v1, a2 ;; [ 6] (set! a3 (= v1 a2)) + daddiu a3, s7, 4 + movn a3, s7, a2 + bnel s7, a3, L23 ;; [ 7] (bl! (truthy a3) L23 (no-delay!)) +B3: + or v1, a3, r0 ;; [ 8] (set! v1 a3) + +B4: + daddiu a2, s7, cartwheel-left;; [ 9] (set! a2 'cartwheel-left) + dsubu a2, v1, a2 ;; [ 10] (set! a3 (= v1 a2)) + daddiu a3, s7, 4 + movn a3, s7, a2 + bnel s7, a3, L23 ;; [ 11] (bl! (truthy a3) L23 (no-delay!)) +B5: + or v1, a3, r0 ;; [ 12] (set! v1 a3) + +B6: + daddiu a2, s7, tumble-right;; [ 13] (set! a2 'tumble-right) + dsubu a2, v1, a2 ;; [ 14] (set! v1 (= v1 a2)) + daddiu v1, s7, 4 + movn v1, s7, a2 +B7: +L23: + bne s7, v1, L24 ;; [ 15] (b! (truthy v1) L24 (set! v0 #f)) + or v0, s7, r0 + +B8: + lw v1, bot(s7) ;; [ 16] (set! v1 bot) + lwu t9, 584(v1) ;; [ 17] (set! t9 (l.wu (+ v1 584))) + jalr ra, t9 ;; [ 18] (call!) sll v0, ra, 0 - lw v0, *forward-jump-mods*(s7);; [ 4] (set! v0-1 *forward-jump-mods*) [] -> [v0: surface ] - lwu v1, 108(s6) ;; [ 5] (set! v1-1 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw v0, 656(v1) ;; [ 6] (s.w! (+ v1-1 656) v0-1) [v0: surface v1: control-info ] -> [] +B9: +L24: ld ra, 0(sp) jr ra daddiu sp, sp, 16 sll r0, r0, 0 sll r0, r0, 0 + sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-jump-forward) - ((arg0 float) (arg1 float)) - ((-> target-jump enter) arg0 arg1 (the-as surface #f)) - (set! (-> self control unknown-surface00) *forward-jump-mods*) - (none) - ) - -;;-*-OpenGOAL-End-*- - + (set! v1 (l.wu (+ a0 64))) + (bl! (not v1) L23 (no-delay!)) + (set! v1 v1) + (set! v1 (l.wu (+ a0 64))) + (set! v1 (l.wu v1)) + (set! a2 'back-spring) + (set! a3 (= v1 a2)) + (bl! (truthy a3) L23 (no-delay!)) + (set! v1 a3) + (set! a2 'cartwheel-left) + (set! a3 (= v1 a2)) + (bl! (truthy a3) L23 (no-delay!)) + (set! v1 a3) + (set! a2 'tumble-right) + (set! v1 (= v1 a2)) +(label L23) + (b! (truthy v1) L24 (set! v0 #f)) + (set! v1 bot) + (set! t9 (l.wu (+ v1 584))) + (call!) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-jump) +; .function (method 236 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x30, fp? 1 ra? 1 ep? 1 - ;gprs: gp - ;fprs: f30 f28 f26 + ;stack: total 0x1a0, fp? 0 ra? 1 ep? 1 + ;stack_vars: 280 bytes at 8 + ;gprs: gp s5 s4 s3 s2 s1 s0 + ;fprs: f30 ;; Warnings: -;; INFO: Return type mismatch symbol vs none. +;; WARN: Type Propagation failed: Function (method 236 ashelin) has unknown type +;; Used lq/sq -;; v1-45: symbol s6-0: target gp-1: joint-control-channel -;; f0-8: float f30-0: float -L332: - daddiu sp, sp, -48 +L25: + daddiu sp, sp, -416 sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq gp, 16(sp) - swc1 f26, 32(sp) - swc1 f28, 36(sp) - swc1 f30, 40(sp) + sq s0, 288(sp) + sq s1, 304(sp) + sq s2, 320(sp) + sq s3, 336(sp) + sq s4, 352(sp) + sq s5, 368(sp) + sq gp, 384(sp) + swc1 f30, 400(sp) B0: - lw t9, ja-channel-push!(s7);; [ 0] (set! t9-0 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 2 ;; [ 1] (set! a0-1 2) [] -> [a0: ] - addiu a1, r0, 15 ;; [ 2] (set! a1-1 15) [] -> [a1: ] - jalr ra, t9 ;; [ 3] (call! a0-1 a1-1) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 4] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 5] (set! v1-1 (l.wu (+ v1-0 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [ 6] (set! gp-0 (+ v1-1 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lw t9, joint-control-channel-group-eval!(s7);; [ 7] (set! t9-1 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, gp, r0 ;; [ 8] (set! a0-2 gp-0) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 9] (set! v1-2 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 10] (set! v1-3 (l.wu (+ v1-2 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 164(v1) ;; [ 11] (set! a1-2 (l.wu (+ v1-3 164))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [ 12] (set! a2-1 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 13] (call! a0-2 a1-2 a2-1) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [ 14] (set! f0-0 0) [] -> [] - swc1 f0, 16(gp) ;; [ 15] (s.f! (+ gp-0 16) f0-0) [gp: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [ 16] (set! v1-4 (fpr->gpr f0-0)) [] -> [v1: float ] - lwu v1, 120(s6) ;; [ 17] (set! v1-5 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 18] (set! v1-6 (l.wu (+ v1-5 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 48 ;; [ 19] (set! a0-3 (+ v1-6 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 108(s6) ;; [ 20] (set! v1-7 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 2192(v1) ;; [ 21] (set! f0-1 (l.f (+ v1-7 2192))) [v1: control-info ] -> [] - swc1 f0, 8(a0) ;; [ 22] (s.f! (+ a0-3 8) f0-1) [a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [ 23] (set! v1-8 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 24] (set! v1-9 (l.wu (+ v1-8 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 188(v1) ;; [ 25] (set! v1-10 (l.wu (+ v1-9 188))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 26] (s.w! (+ a0-3 12) v1-10) [v1: art-element a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 27] (set! f0-2 0) [] -> [] - swc1 f0, 24(a0) ;; [ 28] (s.f! (+ a0-3 24) f0-2) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 29] (set! t9-2 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 30] (set! v1-11 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 31] (set! v1-12 (l.wu (+ v1-11 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 188(v1) ;; [ 32] (set! a1-3 (l.wu (+ v1-12 188))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-chan(s7) ;; [ 33] (set! a2-2 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 34] (call! a0-3 a1-3 a2-2) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 35] (set! v1-13 v0-2) [v0: int ] -> [v1: int ] - lwu s6, 44(s6) ;; [ 36] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 37] (set! v1-14 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 38] (set! v1-15 (l.wu (+ v1-14 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 39] (set! a0-4 (+ v1-15 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 40] (set! v1-16 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 41] (set! v1-17 (l.wu (+ v1-16 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 164(v1) ;; [ 42] (set! v1-18 (l.wu (+ v1-17 164))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 43] (s.w! (+ a0-4 12) v1-18) [v1: art-element a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 44] (set! v1-19 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 45] (set! f0-3 (l.f v1-19)) [v1: ] -> [] - swc1 f0, 24(a0) ;; [ 46] (s.f! (+ a0-4 24) f0-3) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 47] (set! t9-3 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 48] (set! v1-20 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 49] (set! v1-21 (l.wu (+ v1-20 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 164(v1) ;; [ 50] (set! a1-4 (l.wu (+ v1-21 164))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-+!(s7) ;; [ 51] (set! a2-3 num-func-+!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 52] (call! a0-4 a1-4 a2-3) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 53] (set! v1-22 v0-3) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [ 54] (set! v1-23 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 55] (set! v1-24 (l.wu (+ v1-23 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 48 ;; [ 56] (set! a0-5 (+ v1-24 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 108(s6) ;; [ 57] (set! v1-25 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 2192(v1) ;; [ 58] (set! f0-4 (l.f (+ v1-25 2192))) [v1: control-info ] -> [] - swc1 f0, 8(a0) ;; [ 59] (s.f! (+ a0-5 8) f0-4) [a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [ 60] (set! v1-26 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 61] (set! v1-27 (l.wu (+ v1-26 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 188(v1) ;; [ 62] (set! v1-28 (l.wu (+ v1-27 188))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 63] (s.w! (+ a0-5 12) v1-28) [v1: art-element a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 64] (set! f0-5 0) [] -> [] - swc1 f0, 24(a0) ;; [ 65] (s.f! (+ a0-5 24) f0-5) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 66] (set! t9-4 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 67] (set! v1-29 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 68] (set! v1-30 (l.wu (+ v1-29 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 188(v1) ;; [ 69] (set! a1-5 (l.wu (+ v1-30 188))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-chan(s7) ;; [ 70] (set! a2-4 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 71] (call! a0-5 a1-5 a2-4) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 72] (set! v1-31 v0-4) [v0: int ] -> [v1: int ] - lwu s6, 44(s6) ;; [ 73] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 + or s4, a0, r0 ;; [ 0] (set! s4 a0) + or s5, a1, r0 ;; [ 1] (set! s5 a1) + or s3, a2, r0 ;; [ 2] (set! s3 a2) + or s2, a3, r0 ;; [ 3] (set! s2 a3) + or s1, t0, r0 ;; [ 4] (set! s1 t0) + or gp, t1, r0 ;; [ 5] (set! gp t1) + lwu v1, 140(s4) ;; [ 6] (set! v1 (l.wu (+ s4 140))) + lwu a0, 124(v1) ;; [ 7] (set! a0 (l.wu (+ v1 124))) + lwu a0, 24(a0) ;; [ 8] (set! a0 (l.wu (+ a0 24))) + lwu a0, 84(a0) ;; [ 9] (set! a0 (l.wu (+ a0 84))) + daddiu a1, v1, 64 ;; [ 10] (set! a1 (+ v1 64)) + lwu a2, 124(v1) ;; [ 11] (set! a2 (l.wu (+ v1 124))) + daddiu a2, a2, 44 ;; [ 12] (set! a2 (+ a2 44)) + daddiu a3, v1, 96 ;; [ 13] (set! a3 (+ v1 96)) + lw t0, 52(v1) ;; [ 14] (set! t0 (l.w (+ v1 52))) + addiu t1, r0, 0 ;; [ 15] (set! t1 0) + beq r0, r0, L27 ;; [ 16] (b! #t L27 (nop!)) + sll r0, r0, 0 B1: -L333: - lwu v1, 108(s6) ;; [ 74] (set! v1-32 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 75] (set! v1-33 (l.wu (+ v1-32 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 76] (set! a0-6 (+ v1-33 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 77] (set! v1-34 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 78] (set! v1-35 (+ v1-34 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [ 79] (set! f0-6 (vec3dot a0-6 v1-35)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 80] (set! v1-36 (fpr->gpr f0-6)) [] -> [v1: float ] - mtc1 f30, v1 ;; [ 81] (set! f30-0 (gpr->fpr v1-36)) [v1: float ] -> [] - lui v1, L747 ;; [ 82] (set! v1-37 L747) [] -> [v1: ] - ori v1, v1, L747 - addu v1, fp, v1 - lwc1 f28, 0(v1) ;; [ 83] (set! f28-0 (l.f v1-37)) [v1: ] -> [] - lw t9, ja-aframe-num(s7) ;; [ 84] (set! t9-5 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 85] (set! a0-7 0) [] -> [a0: ] - jalr ra, t9 ;; [ 86] (call! a0-7) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] +L26: + daddu t2, a1, t1 ;; [ 17] (set! t2 (+ a1 t1)) + lbu t2, 0(t2) ;; [ 18] (set! t2 (l.bu t2)) + dsll t2, t2, 4 ;; [ 19] (set! t2 (sll t2 4)) + daddu t3, a0, t2 ;; [ 20] (set! t3 (+ a0 t2)) + lwu t2, 56(v1) ;; [ 21] (set! t2 (l.wu (+ v1 56))) + dsll t4, t1, 4 ;; [ 22] (set! t4 (sll t1 4)) + daddu t2, t2, t4 ;; [ 23] (set! t2 (+ t2 t4)) + or t6, t2, r0 ;; [ 24] (set! t6 t2) + or t4, t3, r0 ;; [ 25] (set! t4 t3) + or t5, a2, r0 ;; [ 26] (set! t5 a2) + lqc2 vf4, 0(t4) ;; [ 27] (set! t6 (vector-!2 t6 t4 t5)) + lqc2 vf5, 0(t5) + vmove.w vf6, vf0 + vsub.xyz vf6, vf4, vf5 + sqc2 vf6, 0(t6) + lwc1 f0, 12(t3) ;; [ 28] (set! f0 (l.f (+ t3 12))) + lwc1 f1, 12(a3) ;; [ 29] (set! f1 (l.f (+ a3 12))) + add.s f0, f0, f1 ;; [ 30] (set! f0 (+.s f0 f1)) + swc1 f0, 12(t2) ;; [ 31] (s.f! (+ t2 12) f0) + mfc1 t2, f0 ;; [ 32] (set! t2 (fpr->gpr f0)) + daddiu t1, t1, 1 ;; [ 33] (set! t1 (+ t1 1)) +B2: +L27: + slt t2, t1, t0 ;; [ 34] (b! (<.si t1 t0) L26 (nop!)) + bne t2, r0, L26 + sll r0, r0, 0 + +B3: + or v1, s7, r0 ;; [ 35] (set! v1 #f) + or v1, s7, r0 ;; [ 36] (set! v1 #f) + or v1, r0, r0 ;; [ 37] (set! v1 0) + daddiu s0, sp, 16 ;; [ 38] (set! s0 (+ sp 16)) + daddu v1, r0, s0 ;; [ 39] (set! v1 (+ s0 0)) + lwu a0, 124(s4) ;; [ 40] (set! a0 (l.wu (+ s4 124))) + daddiu a0, a0, 12 ;; [ 41] (set! a0 (+ a0 12)) + lwu a1, 140(s4) ;; [ 42] (set! a1 (l.wu (+ s4 140))) + lwu a1, 124(a1) ;; [ 43] (set! a1 (l.wu (+ a1 124))) + daddiu a1, a1, 44 ;; [ 44] (set! a1 (+ a1 44)) + lqc2 vf4, 0(a0) ;; [ 45] (set! v1 (vector-!2 v1 a0 a1)) + lqc2 vf5, 0(a1) + vmove.w vf6, vf0 + vsub.xyz vf6, vf4, vf5 + sqc2 vf6, 0(v1) + daddiu v1, s0, 16 ;; [ 46] (set! v1 (+ s0 16)) + sq v1, 272(sp) ;; [ 47] (stack-store v1 :offset 272 :sz 16) + lw t9, sin(s7) ;; [ 48] (set! t9 sin) + or a0, s3, r0 ;; [ 49] (set! a0 s3) + jalr ra, t9 ;; [ 50] (call!) sll v0, ra, 0 - mtc1 f0, v0 ;; [ 87] (set! f0-7 (gpr->fpr v0-5)) [v0: float ] -> [] - sub.s f0, f28, f0 ;; [ 88] (set! f0-8 (-.s f28-0 f0-7)) [] -> [] - lwu v1, 120(s6) ;; [ 89] (set! v1-38 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 90] (set! v1-39 (l.wu (+ v1-38 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [ 91] (set! gp-1 (+ v1-39 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lwu v1, 12(gp) ;; [ 92] (set! v1-40 (l.wu (+ gp-1 12))) - ;; [gp: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 93] (set! v1-41 (l.wu (+ v1-40 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 94] (set! v1-42 (l.h (+ v1-41 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 95] (set! v1-43 (+ v1-42 -1)) [v1: int ] -> [v1: ] - mtc1 f1, v1 ;; [ 96] (set! f1-0 (gpr->fpr v1-43)) [v1: ] -> [] - cvt.s.w f1, f1 ;; [ 97] (set! f1-1 (i2f f1-0)) [] -> [] - swc1 f1, 24(gp) ;; [ 98] (s.f! (+ gp-1 24) f1-1) [gp: joint-control-channel ] -> [] - mtc1 f1, r0 ;; [ 99] (set! f1-2 0) [] -> [] - c.lt.s f1, f30 ;; [100] (b! (<.s f1-2 f30-0) L334 (set! v1-44 #t)) [] -> [v1: symbol ] - bc1t L334 - daddiu v1, s7, 8 + mtc1 f0, v0 ;; [ 51] (set! f0 (gpr->fpr v0)) + lq v1, 272(sp) ;; [ 52] (stack-load v1 :offset 272 :sz 16 :sext #f) + swc1 f0, 0(v1) ;; [ 53] (s.f! v1 f0) + mtc1 f0, r0 ;; [ 54] (set! f0 0) + lq v1, 272(sp) ;; [ 55] (stack-load v1 :offset 272 :sz 16 :sext #f) + swc1 f0, 4(v1) ;; [ 56] (s.f! (+ v1 4) f0) + lw t9, cos(s7) ;; [ 57] (set! t9 cos) + or a0, s3, r0 ;; [ 58] (set! a0 s3) + jalr ra, t9 ;; [ 59] (call!) + sll v0, ra, 0 + + mtc1 f0, v0 ;; [ 60] (set! f0 (gpr->fpr v0)) + lq v1, 272(sp) ;; [ 61] (stack-load v1 :offset 272 :sz 16 :sext #f) + swc1 f0, 8(v1) ;; [ 62] (s.f! (+ v1 8) f0) + lui v1, 16256 ;; [ 63] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [ 64] (set! f0 (gpr->fpr v1)) + lq v1, 272(sp) ;; [ 65] (stack-load v1 :offset 272 :sz 16 :sext #f) + swc1 f0, 12(v1) ;; [ 66] (s.f! (+ v1 12) f0) + daddiu v1, s0, 16 ;; [ 67] (set! v1 (+ s0 16)) + daddiu a0, s0, 16 ;; [ 68] (set! a0 (+ s0 16)) + mtc1 f0, s1 ;; [ 69] (set! f0 (gpr->fpr s1)) + lqc2 vf1, 0(a0) ;; [ 70] (set! v1 (vector-float*!2 v1 a0 f0)) + mfc1 a0, f0 + qmtc2.i vf2, a0 + vaddx.w vf1, vf0, vf0 + vmulx.xyz vf1, vf1, vf2 + sqc2 vf1, 0(v1) + daddiu v1, s0, 32 ;; [ 71] (set! v1 (+ s0 32)) + daddiu a0, s0, 16 ;; [ 72] (set! a0 (+ s0 16)) + lq a0, 0(a0) ;; [ 73] (set! a0 (l.q a0)) + sq a0, 0(v1) ;; [ 74] (s.q! v1 a0) + lwu a0, 140(s4) ;; [ 75] (set! a0 (l.wu (+ s4 140))) + lw v1, nav-control(s7) ;; [ 76] (set! v1 nav-control) + lwu t9, 88(v1) ;; [ 77] (set! t9 (l.wu (+ v1 88))) + or a1, s0, r0 ;; [ 78] (set! a1 s0) + jalr ra, t9 ;; [ 79] (call!) + sll v0, ra, 0 + + or v1, s5, r0 ;; [ 80] (set! v1 s5) + daddiu a0, s0, 48 ;; [ 81] (set! a0 (+ s0 48)) + lq a0, 0(a0) ;; [ 82] (set! a0 (l.q a0)) + sq a0, 0(v1) ;; [ 83] (s.q! v1 a0) + or v1, r0, r0 ;; [ 84] (set! v1 0) + mtc1 f30, s2 ;; [ 85] (set! f30 (gpr->fpr s2)) + lw s2, deg-(s7) ;; [ 86] (set! s2 deg-) + lw t9, atan(s7) ;; [ 87] (set! t9 atan) + lwc1 f0, 0(s5) ;; [ 88] (set! f0 (l.f s5)) + mfc1 a0, f0 ;; [ 89] (set! a0 (fpr->gpr f0)) + lwc1 f0, 8(s5) ;; [ 90] (set! f0 (l.f (+ s5 8))) + mfc1 a1, f0 ;; [ 91] (set! a1 (fpr->gpr f0)) + jalr ra, t9 ;; [ 92] (call!) + sll v0, ra, 0 + + or a1, v0, r0 ;; [ 93] (set! a1 v0) + or t9, s2, r0 ;; [ 94] (set! t9 s2) + or a0, s3, r0 ;; [ 95] (set! a0 s3) + jalr ra, t9 ;; [ 96] (call!) + sll v0, ra, 0 + + mtc1 f0, v0 ;; [ 97] (set! f0 (gpr->fpr v0)) + abs.s f0, f0 ;; [ 98] (set! f0 (abs.s f0)) + c.lt.s f30, f0 ;; [ 99] (b! (<.s f30 f0) L28 (set! v0 #f)) + bc1t L28 + or v0, s7, r0 -B2: - or v1, s7, r0 ;; [101] (set! v1-44 #f) [] -> [v1: '#f ] -B3: -L334: - beql s7, v1, L335 ;; [102] (bl! (not v1-44) L335 (no-delay!)) [v1: symbol ] -> [] B4: - or v1, v1, r0 ;; [103] (set! v1-45 v1-44) [v1: symbol ] -> [v1: symbol ] + daddiu t0, sp, 112 ;; [100] (set! t0 (+ sp 112)) + lwu a0, 140(s4) ;; [101] (set! a0 (l.wu (+ s4 140))) + lw v1, nav-control(s7) ;; [102] (set! v1 nav-control) + lwu t9, 100(v1) ;; [103] (set! t9 (l.wu (+ v1 100))) + lwu v1, 124(s4) ;; [104] (set! v1 (l.wu (+ s4 124))) + daddiu a1, v1, 12 ;; [105] (set! a1 (+ v1 12)) + lwu v1, 140(s4) ;; [106] (set! v1 (l.wu (+ s4 140))) + daddiu v1, v1, 112 ;; [107] (set! v1 (+ v1 112)) + lwu a2, 16(v1) ;; [108] (set! a2 (l.wu (+ v1 16))) + or a3, s5, r0 ;; [109] (set! a3 s5) + jalr ra, t9 ;; [110] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [111] (set! v1 v0) + lqc2 vf1, 0(s5) ;; [112] (set! vf1 (l.vf s5)) + vaddw.x vf2, vf0, vf0 ;; [113] (.vaddw.x vf2 vf0 vf0) + vmul.xyzw vf1, vf1, vf1 ;; [114] (.vmul.xyzw vf1 vf1 vf1) + vmulax.x acc, vf2, vf1 ;; [115] (.vmulax.x acc vf2 vf1) + vmadday.x acc, vf2, vf1 ;; [116] (.vmadday.x acc vf2 vf1) + vmaddz.x vf1, vf2, vf1 ;; [117] (.vmaddz.x vf1 vf2 vf1) + qmfc2.i v1, vf1 ;; [118] (.qmfc2.i v1 vf1) + mtc1 f0, v1 ;; [119] (set! f0 (gpr->fpr v1)) + mtc1 f1, gp ;; [120] (set! f1 (gpr->fpr gp)) + mul.s f1, f1, f1 ;; [121] (set! f1 (*.s f1 f1)) + mfc1 v1, f1 ;; [122] (set! v1 (fpr->gpr f1)) + mtc1 f1, v1 ;; [123] (set! f1 (gpr->fpr v1)) + c.lt.s f0, f1 ;; [124] (b! (>=.s f0 f1) L28 (set! v0 #t)) + bc1f L28 + daddiu v0, s7, 4 B5: - mtc1 f1, r0 ;; [104] (set! f1-3 0) [] -> [] - c.lt.s f1, f0 ;; [105] (b! (<.s f1-3 f0-8) L335 (set! v1-45 #t)) [] -> [v1: symbol ] - bc1t L335 - daddiu v1, s7, 8 + or v0, s7, r0 ;; [125] (set! v0 #f) +B6: +L28: + ld ra, 0(sp) + lwc1 f30, 400(sp) + lq gp, 384(sp) + lq s5, 368(sp) + lq s4, 352(sp) + lq s3, 336(sp) + lq s2, 320(sp) + lq s1, 304(sp) + lq s0, 288(sp) + jr ra + daddiu sp, sp, 416 + + sll r0, r0, 0 + sll r0, r0, 0 + + (set! s4 a0) + (set! s5 a1) + (set! s3 a2) + (set! s2 a3) + (set! s1 t0) + (set! gp t1) + (set! v1 (l.wu (+ s4 140))) + (set! a0 (l.wu (+ v1 124))) + (set! a0 (l.wu (+ a0 24))) + (set! a0 (l.wu (+ a0 84))) + (set! a1 (+ v1 64)) + (set! a2 (l.wu (+ v1 124))) + (set! a2 (+ a2 44)) + (set! a3 (+ v1 96)) + (set! t0 (l.w (+ v1 52))) + (set! t1 0) + (b! #t L27 (nop!)) +(label L26) + (set! t2 (+ a1 t1)) + (set! t2 (l.bu t2)) + (set! t2 (sll t2 4)) + (set! t3 (+ a0 t2)) + (set! t2 (l.wu (+ v1 56))) + (set! t4 (sll t1 4)) + (set! t2 (+ t2 t4)) + (set! t6 t2) + (set! t4 t3) + (set! t5 a2) + (set! t6 (vector-!2 t6 t4 t5)) + (set! f0 (l.f (+ t3 12))) + (set! f1 (l.f (+ a3 12))) + (set! f0 (+.s f0 f1)) + (s.f! (+ t2 12) f0) + (set! t2 (fpr->gpr f0)) + (set! t1 (+ t1 1)) +(label L27) + (b! (<.si t1 t0) L26 (nop!)) + (set! v1 #f) + (set! v1 #f) + (set! v1 0) + (set! s0 (+ sp 16)) + (set! v1 (+ s0 0)) + (set! a0 (l.wu (+ s4 124))) + (set! a0 (+ a0 12)) + (set! a1 (l.wu (+ s4 140))) + (set! a1 (l.wu (+ a1 124))) + (set! a1 (+ a1 44)) + (set! v1 (vector-!2 v1 a0 a1)) + (set! v1 (+ s0 16)) + (stack-store v1 :offset 272 :sz 16) + (set! t9 sin) + (set! a0 s3) + (call!) + (set! f0 (gpr->fpr v0)) + (stack-load v1 :offset 272 :sz 16 :sext #f) + (s.f! v1 f0) + (set! f0 0) + (stack-load v1 :offset 272 :sz 16 :sext #f) + (s.f! (+ v1 4) f0) + (set! t9 cos) + (set! a0 s3) + (call!) + (set! f0 (gpr->fpr v0)) + (stack-load v1 :offset 272 :sz 16 :sext #f) + (s.f! (+ v1 8) f0) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (stack-load v1 :offset 272 :sz 16 :sext #f) + (s.f! (+ v1 12) f0) + (set! v1 (+ s0 16)) + (set! a0 (+ s0 16)) + (set! f0 (gpr->fpr s1)) + (set! v1 (vector-float*!2 v1 a0 f0)) + (set! v1 (+ s0 32)) + (set! a0 (+ s0 16)) + (set! a0 (l.q a0)) + (s.q! v1 a0) + (set! a0 (l.wu (+ s4 140))) + (set! v1 nav-control) + (set! t9 (l.wu (+ v1 88))) + (set! a1 s0) + (call!) + (set! v1 s5) + (set! a0 (+ s0 48)) + (set! a0 (l.q a0)) + (s.q! v1 a0) + (set! v1 0) + (set! f30 (gpr->fpr s2)) + (set! s2 deg-) + (set! t9 atan) + (set! f0 (l.f s5)) + (set! a0 (fpr->gpr f0)) + (set! f0 (l.f (+ s5 8))) + (set! a1 (fpr->gpr f0)) + (call!) + (set! a1 v0) + (set! t9 s2) + (set! a0 s3) + (call!) + (set! f0 (gpr->fpr v0)) + (set! f0 (abs.s f0)) + (b! (<.s f30 f0) L28 (set! v0 #f)) + (set! t0 (+ sp 112)) + (set! a0 (l.wu (+ s4 140))) + (set! v1 nav-control) + (set! t9 (l.wu (+ v1 100))) + (set! v1 (l.wu (+ s4 124))) + (set! a1 (+ v1 12)) + (set! v1 (l.wu (+ s4 140))) + (set! v1 (+ v1 112)) + (set! a2 (l.wu (+ v1 16))) + (set! a3 s5) + (call!) + (set! v1 v0) + (set! vf1 (l.vf s5)) + (.vaddw.x vf2 vf0 vf0) + (.vmul.xyzw vf1 vf1 vf1) + (.vmulax.x acc vf2 vf1) + (.vmadday.x acc vf2 vf1) + (.vmaddz.x vf1 vf2 vf1) + (.qmfc2.i v1 vf1) + (set! f0 (gpr->fpr v1)) + (set! f1 (gpr->fpr gp)) + (set! f1 (*.s f1 f1)) + (set! v1 (fpr->gpr f1)) + (set! f1 (gpr->fpr v1)) + (b! (>=.s f0 f1) L28 (set! v0 #t)) + (set! v0 #f) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 79 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x40, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp s5 s4 +;; Warnings: +;; WARN: Type Propagation failed: Function (method 79 ashelin) has unknown type + +L29: + daddiu sp, sp, -64 + sd ra, 0(sp) + sq s4, 16(sp) + sq s5, 32(sp) + sq gp, 48(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + or s4, a2, r0 ;; [ 1] (set! s4 a2) + addiu v1, r0, 3 ;; [ 2] (set! v1 3) + bne a1, v1, L47 ;; [ 3] (b! (!= a1 v1) L47 (nop!)) + sll r0, r0, 0 + +B1: + lw t9, ja-done?(s7) ;; [ 4] (set! t9 ja-done?) + addiu a0, r0, 0 ;; [ 5] (set! a0 0) + jalr ra, t9 ;; [ 6] (call!) + sll v0, ra, 0 + + or s5, v0, r0 ;; [ 7] (set! s5 v0) + beql s7, s5, L31 ;; [ 8] (bl! (not s5) L31 (no-delay!)) +B2: + or v1, s5, r0 ;; [ 9] (set! v1 s5) + +B3: + lwu v1, 136(gp) ;; [ 10] (set! v1 (l.wu (+ gp 136))) + lbu v1, 3(v1) ;; [ 11] (set! v1 (l.bu (+ v1 3))) + sltu v1, r0, v1 ;; [ 12] (b! (<=0.ui v1) L30 (set! v1 #f)) + beq v1, r0, L30 + or v1, s7, r0 + +B4: + lwu v1, 136(gp) ;; [ 13] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [ 14] (set! v1 (l.wu (+ v1 12))) + lwu v1, 4(v1) ;; [ 15] (set! v1 (l.wu (+ v1 4))) +B5: +L30: + beql s7, v1, L31 ;; [ 16] (bl! (not v1) L31 (no-delay!)) +B6: + or v1, v1, r0 ;; [ 17] (set! v1 v1) + +B7: + lwu a0, 132(gp) ;; [ 18] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 19] (set! a0 (l.wu (+ a0 8))) + lwu a0, 92(a0) ;; [ 20] (set! a0 (l.wu (+ a0 92))) + dsubu a0, v1, a0 ;; [ 21] (set! a1 (= v1 a0)) + daddiu a1, s7, 4 + movn a1, s7, a0 + bnel s7, a1, L31 ;; [ 22] (bl! (truthy a1) L31 (no-delay!)) +B8: + or v1, a1, r0 ;; [ 23] (set! v1 a1) + +B9: + lwu a0, 132(gp) ;; [ 24] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 25] (set! a0 (l.wu (+ a0 8))) + lwu a0, 96(a0) ;; [ 26] (set! a0 (l.wu (+ a0 96))) + dsubu a0, v1, a0 ;; [ 27] (set! a1 (= v1 a0)) + daddiu a1, s7, 4 + movn a1, s7, a0 + bnel s7, a1, L31 ;; [ 28] (bl! (truthy a1) L31 (no-delay!)) +B10: + or v1, a1, r0 ;; [ 29] (set! v1 a1) + +B11: + lwu a0, 132(gp) ;; [ 30] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 31] (set! a0 (l.wu (+ a0 8))) + lwu a0, 100(a0) ;; [ 32] (set! a0 (l.wu (+ a0 100))) + dsubu a0, v1, a0 ;; [ 33] (set! a1 (= v1 a0)) + daddiu a1, s7, 4 + movn a1, s7, a0 + bnel s7, a1, L31 ;; [ 34] (bl! (truthy a1) L31 (no-delay!)) +B12: + or v1, a1, r0 ;; [ 35] (set! v1 a1) + +B13: + lwu a0, 132(gp) ;; [ 36] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 37] (set! a0 (l.wu (+ a0 8))) + lwu a0, 116(a0) ;; [ 38] (set! a0 (l.wu (+ a0 116))) + dsubu a0, v1, a0 ;; [ 39] (set! a1 (= v1 a0)) + daddiu a1, s7, 4 + movn a1, s7, a0 + bnel s7, a1, L31 ;; [ 40] (bl! (truthy a1) L31 (no-delay!)) +B14: + or v1, a1, r0 ;; [ 41] (set! v1 a1) + +B15: + lwu a0, 132(gp) ;; [ 42] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 43] (set! a0 (l.wu (+ a0 8))) + lwu a0, 120(a0) ;; [ 44] (set! a0 (l.wu (+ a0 120))) + dsubu a0, v1, a0 ;; [ 45] (set! a1 (= v1 a0)) + daddiu a1, s7, 4 + movn a1, s7, a0 + bnel s7, a1, L31 ;; [ 46] (bl! (truthy a1) L31 (no-delay!)) +B16: + or v1, a1, r0 ;; [ 47] (set! v1 a1) + +B17: + lwu a0, 132(gp) ;; [ 48] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 49] (set! a0 (l.wu (+ a0 8))) + lwu a0, 124(a0) ;; [ 50] (set! a0 (l.wu (+ a0 124))) + dsubu a0, v1, a0 ;; [ 51] (set! v1 (= v1 a0)) + daddiu v1, s7, 4 + movn v1, s7, a0 +B18: +L31: + beq s7, v1, L32 ;; [ 52] (b! (not v1) L32 (nop!)) + sll r0, r0, 0 + +B19: + lw t9, ja-channel-push!(s7);; [ 53] (set! t9 ja-channel-push!) + addiu a0, r0, 1 ;; [ 54] (set! a0 1) + addiu a1, r0, 9 ;; [ 55] (set! a1 9) + jalr ra, t9 ;; [ 56] (call!) + sll v0, ra, 0 + + lwu v1, 136(gp) ;; [ 57] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [ 58] (set! v1 (l.wu (+ v1 12))) + daddu a0, r0, v1 ;; [ 59] (set! a0 (+ v1 0)) + lwu v1, 132(gp) ;; [ 60] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [ 61] (set! v1 (l.wu (+ v1 8))) + lwu v1, 128(v1) ;; [ 62] (set! v1 (l.wu (+ v1 128))) + sw v1, 4(a0) ;; [ 63] (s.w! (+ a0 4) v1) + lwu v1, 132(gp) ;; [ 64] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [ 65] (set! v1 (l.wu (+ v1 8))) + lwu v1, 128(v1) ;; [ 66] (set! v1 (l.wu (+ v1 128))) + lwu v1, 40(v1) ;; [ 67] (set! v1 (l.wu (+ v1 40))) + lhu v1, 0(v1) ;; [ 68] (set! v1 (l.hu v1)) + daddiu v1, v1, -1 ;; [ 69] (set! v1 (+ v1 -1)) + mtc1 f0, v1 ;; [ 70] (set! f0 (gpr->fpr v1)) + cvt.s.w f0, f0 ;; [ 71] (set! f0 (i2f f0)) + swc1 f0, 20(a0) ;; [ 72] (s.f! (+ a0 20) f0) + lui v1, 16256 ;; [ 73] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [ 74] (set! f0 (gpr->fpr v1)) + swc1 f0, 24(a0) ;; [ 75] (s.f! (+ a0 24) f0) + mtc1 f0, r0 ;; [ 76] (set! f0 0) + swc1 f0, 8(a0) ;; [ 77] (s.f! (+ a0 8) f0) + lw t9, joint-control-channel-group!(s7);; [ 78] (set! t9 joint-control-channel-group!) + lwu v1, 132(gp) ;; [ 79] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [ 80] (set! v1 (l.wu (+ v1 8))) + lwu a1, 128(v1) ;; [ 81] (set! a1 (l.wu (+ v1 128))) + lw a2, num-func-seek!(s7) ;; [ 82] (set! a2 num-func-seek!) + jalr ra, t9 ;; [ 83] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 84] (set! v1 v0) + or s5, s7, r0 ;; [ 85] (set! s5 #f) + or v1, s5, r0 ;; [ 86] (set! v1 s5) + beq r0, r0, L46 ;; [ 87] (b! #t L46 (nop!)) + sll r0, r0, 0 + +B20: +L32: + lwu v1, 136(gp) ;; [ 88] (set! v1 (l.wu (+ gp 136))) + lbu v1, 3(v1) ;; [ 89] (set! v1 (l.bu (+ v1 3))) + sltu v1, r0, v1 ;; [ 90] (b! (<=0.ui v1) L33 (set! v1 #f)) + beq v1, r0, L33 + or v1, s7, r0 + +B21: + lwu v1, 136(gp) ;; [ 91] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [ 92] (set! v1 (l.wu (+ v1 12))) + lwu v1, 4(v1) ;; [ 93] (set! v1 (l.wu (+ v1 4))) +B22: +L33: + beql s7, v1, L34 ;; [ 94] (bl! (not v1) L34 (no-delay!)) +B23: + or a0, v1, r0 ;; [ 95] (set! a0 v1) + +B24: + lwu a0, 132(gp) ;; [ 96] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 97] (set! a0 (l.wu (+ a0 8))) + lwu a0, 60(a0) ;; [ 98] (set! a0 (l.wu (+ a0 60))) + dsubu v1, v1, a0 ;; [ 99] (set! a0 (= v1 a0)) + daddiu a0, s7, 4 + movn a0, s7, v1 +B25: +L34: + beq s7, a0, L39 ;; [100] (b! (not a0) L39 (set! v1 #f)) + or v1, s7, r0 + +B26: + lw t9, ja-aframe-num(s7) ;; [101] (set! t9 ja-aframe-num) + addiu a0, r0, 0 ;; [102] (set! a0 0) + jalr ra, t9 ;; [103] (call!) + sll v0, ra, 0 + + mtc1 f0, v0 ;; [104] (set! f0 (gpr->fpr v0)) + lui v1, 16816 ;; [105] (set! v1 #x41b00000) + mtc1 f1, v1 ;; [106] (set! f1 (gpr->fpr v1)) + c.lt.s f0, f1 ;; [107] (b! (<.s f0 f1) L37 (set! v1 #f)) + bc1t L37 + or v1, s7, r0 + +B27: + lwu v1, 196(gp) ;; [108] (set! v1 (l.wu (+ gp 196))) + andi v1, v1, 16 ;; [109] (set! v1 (logand v1 16)) + beq v1, r0, L36 ;; [110] (b! (zero? v1) L36 (set! a0 #f)) + or a0, s7, r0 + +B28: + ld v1, 204(gp) ;; [111] (set! v1 (l.d (+ gp 204))) + andi v1, v1, 16 ;; [112] (set! v1 (logand v1 16)) + beq v1, r0, L35 ;; [113] (b! (zero? v1) L35 (nop!)) + sll r0, r0, 0 + +B29: + lwu v1, 196(gp) ;; [114] (set! v1 (l.wu (+ gp 196))) + ori a0, v1, 16 ;; [115] (set! a0 (logior v1 16)) + sw a0, 196(gp) ;; [116] (s.w! (+ gp 196) a0) + beq r0, r0, L36 ;; [117] (b! #t L36 (nop!)) + sll r0, r0, 0 + +B30: +L35: + addiu v1, r0, -17 ;; [118] (set! v1 -17) + lwu a0, 196(gp) ;; [119] (set! a0 (l.wu (+ gp 196))) + and a0, v1, a0 ;; [120] (set! a0 (logand v1 a0)) + sw a0, 196(gp) ;; [121] (s.w! (+ gp 196) a0) +B31: +L36: + beq r0, r0, L38 ;; [122] (b! #t L38 (nop!)) + sll r0, r0, 0 + +B32: +L37: + lui v1, 16768 ;; [123] (set! v1 #x41800000) + mtc1 f1, v1 ;; [124] (set! f1 (gpr->fpr v1)) + c.lt.s f0, f1 ;; [125] (b! (<.s f0 f1) L38 (set! a0 #f)) + bc1t L38 + or a0, s7, r0 + +B33: + lwu v1, 196(gp) ;; [126] (set! v1 (l.wu (+ gp 196))) + andi v1, v1, 16 ;; [127] (set! v1 (logand v1 16)) + bne v1, r0, L38 ;; [128] (b! (nonzero? v1) L38 (set! a0 #f)) + or a0, s7, r0 + +B34: + lwu v1, 196(gp) ;; [129] (set! v1 (l.wu (+ gp 196))) + ori v1, v1, 16 ;; [130] (set! v1 (logior v1 16)) + sw v1, 196(gp) ;; [131] (s.w! (+ gp 196) v1) + lw v1, *game-info*(s7) ;; [132] (set! v1 *game-info*) + lwu a0, 224(v1) ;; [133] (set! a0 (l.wu (+ v1 224))) + daddiu a0, a0, 1 ;; [134] (set! a0 (+ a0 1)) + sw a0, 224(v1) ;; [135] (s.w! (+ v1 224) a0) + sw a0, 224(gp) ;; [136] (s.w! (+ gp 224) a0) +B35: +L38: + beq r0, r0, L45 ;; [137] (b! #t L45 (nop!)) + sll r0, r0, 0 + +B36: +L39: + lwu v1, 136(gp) ;; [138] (set! v1 (l.wu (+ gp 136))) + lbu v1, 3(v1) ;; [139] (set! v1 (l.bu (+ v1 3))) + sltu v1, r0, v1 ;; [140] (b! (<=0.ui v1) L40 (set! v1 #f)) + beq v1, r0, L40 + or v1, s7, r0 + +B37: + lwu v1, 136(gp) ;; [141] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [142] (set! v1 (l.wu (+ v1 12))) + lwu v1, 4(v1) ;; [143] (set! v1 (l.wu (+ v1 4))) +B38: +L40: + beql s7, v1, L41 ;; [144] (bl! (not v1) L41 (no-delay!)) +B39: + or a0, v1, r0 ;; [145] (set! a0 v1) + +B40: + lwu a0, 132(gp) ;; [146] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [147] (set! a0 (l.wu (+ a0 8))) + lwu a0, 72(a0) ;; [148] (set! a0 (l.wu (+ a0 72))) + dsubu v1, v1, a0 ;; [149] (set! a0 (= v1 a0)) + daddiu a0, s7, 4 + movn a0, s7, v1 +B41: +L41: + beq s7, a0, L45 ;; [150] (b! (not a0) L45 (set! v1 #f)) + or v1, s7, r0 + +B42: + lw t9, ja-aframe-num(s7) ;; [151] (set! t9 ja-aframe-num) + addiu a0, r0, 0 ;; [152] (set! a0 0) + jalr ra, t9 ;; [153] (call!) + sll v0, ra, 0 + + mtc1 f0, v0 ;; [154] (set! f0 (gpr->fpr v0)) + lui v1, 16896 ;; [155] (set! v1 #x42000000) + mtc1 f1, v1 ;; [156] (set! f1 (gpr->fpr v1)) + c.lt.s f0, f1 ;; [157] (b! (<.s f0 f1) L44 (set! v1 #f)) + bc1t L44 + or v1, s7, r0 + +B43: + lwu v1, 196(gp) ;; [158] (set! v1 (l.wu (+ gp 196))) + andi v1, v1, 16 ;; [159] (set! v1 (logand v1 16)) + beq v1, r0, L43 ;; [160] (b! (zero? v1) L43 (set! a0 #f)) + or a0, s7, r0 + +B44: + ld v1, 204(gp) ;; [161] (set! v1 (l.d (+ gp 204))) + andi v1, v1, 16 ;; [162] (set! v1 (logand v1 16)) + beq v1, r0, L42 ;; [163] (b! (zero? v1) L42 (nop!)) + sll r0, r0, 0 + +B45: + lwu v1, 196(gp) ;; [164] (set! v1 (l.wu (+ gp 196))) + ori a0, v1, 16 ;; [165] (set! a0 (logior v1 16)) + sw a0, 196(gp) ;; [166] (s.w! (+ gp 196) a0) + beq r0, r0, L43 ;; [167] (b! #t L43 (nop!)) + sll r0, r0, 0 + +B46: +L42: + addiu v1, r0, -17 ;; [168] (set! v1 -17) + lwu a0, 196(gp) ;; [169] (set! a0 (l.wu (+ gp 196))) + and a0, v1, a0 ;; [170] (set! a0 (logand v1 a0)) + sw a0, 196(gp) ;; [171] (s.w! (+ gp 196) a0) +B47: +L43: + beq r0, r0, L45 ;; [172] (b! #t L45 (nop!)) + sll r0, r0, 0 + +B48: +L44: + lui v1, 16840 ;; [173] (set! v1 #x41c80000) + mtc1 f1, v1 ;; [174] (set! f1 (gpr->fpr v1)) + c.lt.s f0, f1 ;; [175] (b! (<.s f0 f1) L45 (set! a0 #f)) + bc1t L45 + or a0, s7, r0 + +B49: + lwu v1, 196(gp) ;; [176] (set! v1 (l.wu (+ gp 196))) + andi v1, v1, 16 ;; [177] (set! v1 (logand v1 16)) + bne v1, r0, L45 ;; [178] (b! (nonzero? v1) L45 (set! a0 #f)) + or a0, s7, r0 + +B50: + lwu v1, 196(gp) ;; [179] (set! v1 (l.wu (+ gp 196))) + ori v1, v1, 16 ;; [180] (set! v1 (logior v1 16)) + sw v1, 196(gp) ;; [181] (s.w! (+ gp 196) v1) + lw v1, *game-info*(s7) ;; [182] (set! v1 *game-info*) + lwu a0, 224(v1) ;; [183] (set! a0 (l.wu (+ v1 224))) + daddiu a0, a0, 1 ;; [184] (set! a0 (+ a0 1)) + sw a0, 224(v1) ;; [185] (s.w! (+ v1 224) a0) + sw a0, 224(gp) ;; [186] (s.w! (+ gp 224) a0) +B51: +L45: + lwu v1, 136(gp) ;; [187] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [188] (set! v1 (l.wu (+ v1 12))) + daddu a0, r0, v1 ;; [189] (set! a0 (+ v1 0)) + lwu v1, 4(a0) ;; [190] (set! v1 (l.wu (+ a0 4))) + lwu v1, 40(v1) ;; [191] (set! v1 (l.wu (+ v1 40))) + lhu v1, 0(v1) ;; [192] (set! v1 (l.hu v1)) + daddiu v1, v1, -1 ;; [193] (set! v1 (+ v1 -1)) + mtc1 f0, v1 ;; [194] (set! f0 (gpr->fpr v1)) + cvt.s.w f0, f0 ;; [195] (set! f0 (i2f f0)) + swc1 f0, 20(a0) ;; [196] (s.f! (+ a0 20) f0) + lwc1 f0, 0(s4) ;; [197] (set! f0 (l.f s4)) + swc1 f0, 24(a0) ;; [198] (s.f! (+ a0 24) f0) + lw t9, joint-control-channel-group-eval!(s7);; [199] (set! t9 joint-control-channel-group-eval!) + or a1, s7, r0 ;; [200] (set! a1 #f) + lw a2, num-func-seek!(s7) ;; [201] (set! a2 num-func-seek!) + jalr ra, t9 ;; [202] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [203] (set! v1 v0) +B52: +L46: + beq r0, r0, L48 ;; [204] (b! #t L48 (nop!)) + sll r0, r0, 0 + +B53: +L47: + lw v1, bot(s7) ;; [205] (set! v1 bot) + lwu t9, 332(v1) ;; [206] (set! t9 (l.wu (+ v1 332))) + or a0, gp, r0 ;; [207] (set! a0 gp) + or a2, s4, r0 ;; [208] (set! a2 s4) + jalr ra, t9 ;; [209] (call!) + sll v0, ra, 0 + + or s5, v0, r0 ;; [210] (set! s5 v0) +B54: +L48: + or v0, s5, r0 ;; [211] (set! v0 s5) + ld ra, 0(sp) + lq gp, 48(sp) + lq s5, 32(sp) + lq s4, 16(sp) + jr ra + daddiu sp, sp, 64 + + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! s4 a2) + (set! v1 3) + (b! (!= a1 v1) L47 (nop!)) + (set! t9 ja-done?) + (set! a0 0) + (call!) + (set! s5 v0) + (bl! (not s5) L31 (no-delay!)) + (set! v1 s5) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.bu (+ v1 3))) + (b! (<=0.ui v1) L30 (set! v1 #f)) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! v1 (l.wu (+ v1 4))) +(label L30) + (bl! (not v1) L31 (no-delay!)) + (set! v1 v1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 92))) + (set! a1 (= v1 a0)) + (bl! (truthy a1) L31 (no-delay!)) + (set! v1 a1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 96))) + (set! a1 (= v1 a0)) + (bl! (truthy a1) L31 (no-delay!)) + (set! v1 a1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 100))) + (set! a1 (= v1 a0)) + (bl! (truthy a1) L31 (no-delay!)) + (set! v1 a1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 116))) + (set! a1 (= v1 a0)) + (bl! (truthy a1) L31 (no-delay!)) + (set! v1 a1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 120))) + (set! a1 (= v1 a0)) + (bl! (truthy a1) L31 (no-delay!)) + (set! v1 a1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 124))) + (set! v1 (= v1 a0)) +(label L31) + (b! (not v1) L32 (nop!)) + (set! t9 ja-channel-push!) + (set! a0 1) + (set! a1 9) + (call!) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 0)) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 128))) + (s.w! (+ a0 4) v1) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 128))) + (set! v1 (l.wu (+ v1 40))) + (set! v1 (l.hu v1)) + (set! v1 (+ v1 -1)) + (set! f0 (gpr->fpr v1)) + (set! f0 (i2f f0)) + (s.f! (+ a0 20) f0) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ a0 24) f0) + (set! f0 0) + (s.f! (+ a0 8) f0) + (set! t9 joint-control-channel-group!) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! a1 (l.wu (+ v1 128))) + (set! a2 num-func-seek!) + (call!) + (set! v1 v0) + (set! s5 #f) + (set! v1 s5) + (b! #t L46 (nop!)) +(label L32) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.bu (+ v1 3))) + (b! (<=0.ui v1) L33 (set! v1 #f)) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! v1 (l.wu (+ v1 4))) +(label L33) + (bl! (not v1) L34 (no-delay!)) + (set! a0 v1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 60))) + (set! a0 (= v1 a0)) +(label L34) + (b! (not a0) L39 (set! v1 #f)) + (set! t9 ja-aframe-num) + (set! a0 0) + (call!) + (set! f0 (gpr->fpr v0)) + (set! v1 #x41b00000) + (set! f1 (gpr->fpr v1)) + (b! (<.s f0 f1) L37 (set! v1 #f)) + (set! v1 (l.wu (+ gp 196))) + (set! v1 (logand v1 16)) + (b! (zero? v1) L36 (set! a0 #f)) + (set! v1 (l.d (+ gp 204))) + (set! v1 (logand v1 16)) + (b! (zero? v1) L35 (nop!)) + (set! v1 (l.wu (+ gp 196))) + (set! a0 (logior v1 16)) + (s.w! (+ gp 196) a0) + (b! #t L36 (nop!)) +(label L35) + (set! v1 -17) + (set! a0 (l.wu (+ gp 196))) + (set! a0 (logand v1 a0)) + (s.w! (+ gp 196) a0) +(label L36) + (b! #t L38 (nop!)) +(label L37) + (set! v1 #x41800000) + (set! f1 (gpr->fpr v1)) + (b! (<.s f0 f1) L38 (set! a0 #f)) + (set! v1 (l.wu (+ gp 196))) + (set! v1 (logand v1 16)) + (b! (nonzero? v1) L38 (set! a0 #f)) + (set! v1 (l.wu (+ gp 196))) + (set! v1 (logior v1 16)) + (s.w! (+ gp 196) v1) + (set! v1 *game-info*) + (set! a0 (l.wu (+ v1 224))) + (set! a0 (+ a0 1)) + (s.w! (+ v1 224) a0) + (s.w! (+ gp 224) a0) +(label L38) + (b! #t L45 (nop!)) +(label L39) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.bu (+ v1 3))) + (b! (<=0.ui v1) L40 (set! v1 #f)) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! v1 (l.wu (+ v1 4))) +(label L40) + (bl! (not v1) L41 (no-delay!)) + (set! a0 v1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 72))) + (set! a0 (= v1 a0)) +(label L41) + (b! (not a0) L45 (set! v1 #f)) + (set! t9 ja-aframe-num) + (set! a0 0) + (call!) + (set! f0 (gpr->fpr v0)) + (set! v1 #x42000000) + (set! f1 (gpr->fpr v1)) + (b! (<.s f0 f1) L44 (set! v1 #f)) + (set! v1 (l.wu (+ gp 196))) + (set! v1 (logand v1 16)) + (b! (zero? v1) L43 (set! a0 #f)) + (set! v1 (l.d (+ gp 204))) + (set! v1 (logand v1 16)) + (b! (zero? v1) L42 (nop!)) + (set! v1 (l.wu (+ gp 196))) + (set! a0 (logior v1 16)) + (s.w! (+ gp 196) a0) + (b! #t L43 (nop!)) +(label L42) + (set! v1 -17) + (set! a0 (l.wu (+ gp 196))) + (set! a0 (logand v1 a0)) + (s.w! (+ gp 196) a0) +(label L43) + (b! #t L45 (nop!)) +(label L44) + (set! v1 #x41c80000) + (set! f1 (gpr->fpr v1)) + (b! (<.s f0 f1) L45 (set! a0 #f)) + (set! v1 (l.wu (+ gp 196))) + (set! v1 (logand v1 16)) + (b! (nonzero? v1) L45 (set! a0 #f)) + (set! v1 (l.wu (+ gp 196))) + (set! v1 (logior v1 16)) + (s.w! (+ gp 196) v1) + (set! v1 *game-info*) + (set! a0 (l.wu (+ v1 224))) + (set! a0 (+ a0 1)) + (s.w! (+ v1 224) a0) + (s.w! (+ gp 224) a0) +(label L45) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 0)) + (set! v1 (l.wu (+ a0 4))) + (set! v1 (l.wu (+ v1 40))) + (set! v1 (l.hu v1)) + (set! v1 (+ v1 -1)) + (set! f0 (gpr->fpr v1)) + (set! f0 (i2f f0)) + (s.f! (+ a0 20) f0) + (set! f0 (l.f s4)) + (s.f! (+ a0 24) f0) + (set! t9 joint-control-channel-group-eval!) + (set! a1 #f) + (set! a2 num-func-seek!) + (call!) + (set! v1 v0) +(label L46) + (b! #t L48 (nop!)) +(label L47) + (set! v1 bot) + (set! t9 (l.wu (+ v1 332))) + (set! a0 gp) + (set! a2 s4) + (call!) + (set! s5 v0) +(label L48) + (set! v0 s5) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 78 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x30, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp s5 +;; Warnings: +;; WARN: Type Propagation failed: Function (method 78 ashelin) has unknown type + +L49: + daddiu sp, sp, -48 + sd ra, 0(sp) + sq s5, 16(sp) + sq gp, 32(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + lbu v1, 416(gp) ;; [ 1] (set! v1 (l.bu (+ gp 416))) + addiu a0, r0, 6 ;; [ 2] (set! a0 6) + bne v1, a0, L50 ;; [ 3] (b! (!= v1 a0) L50 (nop!)) + sll r0, r0, 0 + +B1: + lw v1, *ashelin-global-info*(s7);; [ 4] (set! v1 *ashelin-global-info*) + lb a0, 0(v1) ;; [ 5] (set! a0 (l.b v1)) + dsll a0, a0, 2 ;; [ 6] (set! a0 (sll a0 2)) + daddu v1, v1, a0 ;; [ 7] (set! v1 (+ v1 a0)) + lw v1, 28(v1) ;; [ 8] (set! v1 (l.w (+ v1 28))) + dsll v1, v1, 2 ;; [ 9] (set! v1 (sll v1 2)) + lwu a0, 132(gp) ;; [ 10] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 11] (set! a0 (l.wu (+ a0 8))) + daddu v1, v1, a0 ;; [ 12] (set! v1 (+ v1 a0)) + lwu s5, 28(v1) ;; [ 13] (set! s5 (l.wu (+ v1 28))) + lw t9, ja-channel-push!(s7);; [ 14] (set! t9 ja-channel-push!) + addiu a0, r0, 1 ;; [ 15] (set! a0 1) + addiu a1, r0, 51 ;; [ 16] (set! a1 51) + jalr ra, t9 ;; [ 17] (call!) + sll v0, ra, 0 + + lwu v1, 136(gp) ;; [ 18] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [ 19] (set! v1 (l.wu (+ v1 12))) + daddu a0, r0, v1 ;; [ 20] (set! a0 (+ v1 0)) + sw s5, 4(a0) ;; [ 21] (s.w! (+ a0 4) s5) + lwu v1, 40(s5) ;; [ 22] (set! v1 (l.wu (+ s5 40))) + lhu v1, 0(v1) ;; [ 23] (set! v1 (l.hu v1)) + daddiu v1, v1, -1 ;; [ 24] (set! v1 (+ v1 -1)) + mtc1 f0, v1 ;; [ 25] (set! f0 (gpr->fpr v1)) + cvt.s.w f0, f0 ;; [ 26] (set! f0 (i2f f0)) + swc1 f0, 20(a0) ;; [ 27] (s.f! (+ a0 20) f0) + lui v1, 16256 ;; [ 28] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [ 29] (set! f0 (gpr->fpr v1)) + swc1 f0, 24(a0) ;; [ 30] (s.f! (+ a0 24) f0) + mtc1 f0, r0 ;; [ 31] (set! f0 0) + swc1 f0, 8(a0) ;; [ 32] (s.f! (+ a0 8) f0) + lw t9, joint-control-channel-group!(s7);; [ 33] (set! t9 joint-control-channel-group!) + lw a2, num-func-seek!(s7) ;; [ 34] (set! a2 num-func-seek!) + or a1, s5, r0 ;; [ 35] (set! a1 s5) + jalr ra, t9 ;; [ 36] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 37] (set! v1 v0) + daddiu v0, s7, #t ;; [ 38] (set! v0 #t) + beq r0, r0, L60 ;; [ 39] (b! #t L60 (nop!)) + sll r0, r0, 0 + +B2: +L50: + lwu v1, 136(gp) ;; [ 40] (set! v1 (l.wu (+ gp 136))) + lbu v1, 3(v1) ;; [ 41] (set! v1 (l.bu (+ v1 3))) + sltu v1, r0, v1 ;; [ 42] (b! (<=0.ui v1) L51 (set! v1 #f)) + beq v1, r0, L51 + or v1, s7, r0 + +B3: + lwu v1, 136(gp) ;; [ 43] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [ 44] (set! v1 (l.wu (+ v1 12))) + lwu v1, 4(v1) ;; [ 45] (set! v1 (l.wu (+ v1 4))) +B4: +L51: + beql s7, v1, L52 ;; [ 46] (bl! (not v1) L52 (no-delay!)) +B5: + or a0, v1, r0 ;; [ 47] (set! a0 v1) B6: - or v1, s7, r0 ;; [106] (set! v1-45 #f) [] -> [v1: '#f ] + lwu a0, 132(gp) ;; [ 48] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 49] (set! a0 (l.wu (+ a0 8))) + lwu a0, 56(a0) ;; [ 50] (set! a0 (l.wu (+ a0 56))) + dsubu v1, v1, a0 ;; [ 51] (set! a0 (= v1 a0)) + daddiu a0, s7, 4 + movn a0, s7, v1 B7: -L335: - beq s7, v1, L336 ;; [107] (b! (not v1-45) L336 (nop!)) [v1: symbol ] -> [] +L52: + beq s7, a0, L56 ;; [ 52] (b! (not a0) L56 (nop!)) sll r0, r0, 0 B8: - lui v1, L750 ;; [108] (set! v1-46 L750) [] -> [v1: ] - ori v1, v1, L750 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [109] (set! f1-4 (l.f v1-46)) [v1: ] -> [] - min.s f28, f1, f0 ;; [110] (set! f28-1 (min.s f1-4 f0-8)) [] -> [] - lui v1, L740 ;; [111] (set! v1-47 L740) [] -> [v1: ] - ori v1, v1, L740 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [112] (set! f1-5 (l.f v1-47)) [v1: ] -> [] - mul.s f26, f1, f0 ;; [113] (set! f26-0 (*.s f1-5 f0-8)) [] -> [] - lw t9, time-to-apex(s7) ;; [114] (set! t9-6 time-to-apex) [] -> [t9: (function float float int) ] - mfc1 a0, f30 ;; [115] (set! a0-8 (fpr->gpr f30-0)) [] -> [a0: float ] - lui v1, L730 ;; [116] (set! v1-48 L730) [] -> [v1: ] - ori v1, v1, L730 - addu v1, fp, v1 - lw a1, 0(v1) ;; [117] (set! a1-6 (l.w v1-48)) [v1: ] -> [a1: int ] - jalr ra, t9 ;; [118] (call! a0-8 a1-6) - ;; [a0: float a1: int t9: (function float float int) ] -> [v0: int ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [119] (set! f0-9 (gpr->fpr v0-6)) [v0: int ] -> [] - cvt.s.w f0, f0 ;; [120] (set! f0-10 (i2f f0-9)) [] -> [] - div.s f0, f26, f0 ;; [121] (set! f0-11 (/.s f26-0 f0-10)) [] -> [] - min.s f0, f28, f0 ;; [122] (set! f0-12 (min.s f28-1 f0-11)) [] -> [] - mfc1 v1, f0 ;; [123] (set! v1-49 (fpr->gpr f0-12)) [] -> [v1: float ] - beq r0, r0, L337 ;; [124] (b! #t L337 (nop!)) [] -> [] - sll r0, r0, 0 - + lw v1, 216(gp) ;; [ 53] (set! v1 (l.w (+ gp 216))) + beql v1, r0, L53 ;; [ 54] (bl! (zero? v1) L53 (no-delay!)) B9: -L336: - lui v1, L786 ;; [125] (set! v1-50 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw v1, 0(v1) ;; [126] (set! v1-49 (l.w v1-50)) [v1: ] -> [v1: int ] + daddiu v1, s7, 4 ;; [ 55] (set! v1 #t) + B10: -L337: - mtc1 f0, v1 ;; [127] (set! f0-13 (gpr->fpr (the-as float v1-49))) [v1: float ] -> [] - swc1 f0, 28(gp) ;; [128] (s.f! (+ gp-1 28) f0-13) [gp: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [129] (set! t9-7 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [130] (set! a1-7 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [131] (set! a2-5 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, gp, r0 ;; [132] (set! a0-9 gp-1) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [133] (call! a0-9 a1-7 a2-5) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [134] (set! v1-51 v0-7) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [135] (set! v1-52 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [136] (set! v1-53 (l.wu (+ v1-52 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 48 ;; [137] (set! a0-10 (+ v1-53 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 108(s6) ;; [138] (set! v1-54 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 2192(v1) ;; [139] (set! f0-14 (l.f (+ v1-54 2192))) [v1: control-info ] -> [] - swc1 f0, 8(a0) ;; [140] (s.f! (+ a0-10 8) f0-14) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [141] (set! f0-15 0) [] -> [] - swc1 f0, 24(a0) ;; [142] (s.f! (+ a0-10 24) f0-15) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [143] (set! t9-8 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [144] (set! a1-8 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [145] (set! a2-6 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [146] (call! a0-10 a1-8 a2-6) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [147] (set! v1-55 v0-8) [v0: int ] -> [v1: int ] - lwu s6, 44(s6) ;; [148] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lw t9, ja-done?(s7) ;; [149] (set! t9-9 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [150] (set! a0-11 0) [] -> [a0: ] - jalr ra, t9 ;; [151] (call! a0-11) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L333 ;; [152] (b! (not v0-9) L333 (nop!)) [v0: symbol ] -> [] + daddiu v1, s7, 4 ;; [ 56] (set! v1 #t) + ld a0, 332(gp) ;; [ 57] (set! a0 (l.d (+ gp 332))) + movz v1, s7, a0 ;; [ 58] (cmove-#f-zero v1 a0 v1) +B11: +L53: + beq s7, v1, L54 ;; [ 59] (b! (not v1) L54 (nop!)) sll r0, r0, 0 -B11: - or v1, s7, r0 ;; [153] (set! v1-56 #f) [] -> [v1: '#f ] - lw t9, target-falling-anim(s7);; [154] (set! t9-10 target-falling-anim) - ;; [] -> [t9: (function time-frame time-frame symbol :behavior target) ] - addiu a0, r0, -1 ;; [155] (set! a0-12 -1) [] -> [a0: ] - addiu a1, r0, 60 ;; [156] (set! a1-9 60) [] -> [a1: ] - jalr ra, t9 ;; [157] (call! a0-12 a1-9) - ;; [a0: a1: t9: (function time-frame time-frame symbol :behavior target) ] -> [v0: symbol ] +B12: + lw t9, ja-channel-push!(s7);; [ 60] (set! t9 ja-channel-push!) + addiu a0, r0, 1 ;; [ 61] (set! a0 1) + addiu a1, r0, 51 ;; [ 62] (set! a1 51) + jalr ra, t9 ;; [ 63] (call!) sll v0, ra, 0 + lwu v1, 136(gp) ;; [ 64] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [ 65] (set! v1 (l.wu (+ v1 12))) + daddu a0, r0, v1 ;; [ 66] (set! a0 (+ v1 0)) + lwu v1, 132(gp) ;; [ 67] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [ 68] (set! v1 (l.wu (+ v1 8))) + lwu v1, 64(v1) ;; [ 69] (set! v1 (l.wu (+ v1 64))) + sw v1, 4(a0) ;; [ 70] (s.w! (+ a0 4) v1) + lwu v1, 132(gp) ;; [ 71] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [ 72] (set! v1 (l.wu (+ v1 8))) + lwu v1, 64(v1) ;; [ 73] (set! v1 (l.wu (+ v1 64))) + lwu v1, 40(v1) ;; [ 74] (set! v1 (l.wu (+ v1 40))) + lhu v1, 0(v1) ;; [ 75] (set! v1 (l.hu v1)) + daddiu v1, v1, -1 ;; [ 76] (set! v1 (+ v1 -1)) + mtc1 f0, v1 ;; [ 77] (set! f0 (gpr->fpr v1)) + cvt.s.w f0, f0 ;; [ 78] (set! f0 (i2f f0)) + swc1 f0, 20(a0) ;; [ 79] (s.f! (+ a0 20) f0) + lui v1, 16256 ;; [ 80] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [ 81] (set! f0 (gpr->fpr v1)) + swc1 f0, 24(a0) ;; [ 82] (s.f! (+ a0 24) f0) + mtc1 f0, r0 ;; [ 83] (set! f0 0) + swc1 f0, 8(a0) ;; [ 84] (s.f! (+ a0 8) f0) + lw t9, joint-control-channel-group!(s7);; [ 85] (set! t9 joint-control-channel-group!) + lwu v1, 132(gp) ;; [ 86] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [ 87] (set! v1 (l.wu (+ v1 8))) + lwu a1, 64(v1) ;; [ 88] (set! a1 (l.wu (+ v1 64))) + lw a2, num-func-seek!(s7) ;; [ 89] (set! a2 num-func-seek!) + jalr ra, t9 ;; [ 90] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 91] (set! v1 v0) + or v0, s7, r0 ;; [ 92] (set! v0 #f) + beq r0, r0, L55 ;; [ 93] (b! #t L55 (nop!)) + sll r0, r0, 0 + +B13: +L54: + lw t9, ja-channel-push!(s7);; [ 94] (set! t9 ja-channel-push!) + addiu a0, r0, 1 ;; [ 95] (set! a0 1) + addiu a1, r0, 51 ;; [ 96] (set! a1 51) + jalr ra, t9 ;; [ 97] (call!) + sll v0, ra, 0 + + lwu v1, 136(gp) ;; [ 98] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [ 99] (set! v1 (l.wu (+ v1 12))) + daddu a0, r0, v1 ;; [100] (set! a0 (+ v1 0)) + lwu v1, 132(gp) ;; [101] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [102] (set! v1 (l.wu (+ v1 8))) + lwu v1, 60(v1) ;; [103] (set! v1 (l.wu (+ v1 60))) + sw v1, 4(a0) ;; [104] (s.w! (+ a0 4) v1) + lwu v1, 132(gp) ;; [105] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [106] (set! v1 (l.wu (+ v1 8))) + lwu v1, 60(v1) ;; [107] (set! v1 (l.wu (+ v1 60))) + lwu v1, 40(v1) ;; [108] (set! v1 (l.wu (+ v1 40))) + lhu v1, 0(v1) ;; [109] (set! v1 (l.hu v1)) + daddiu v1, v1, -1 ;; [110] (set! v1 (+ v1 -1)) + mtc1 f0, v1 ;; [111] (set! f0 (gpr->fpr v1)) + cvt.s.w f0, f0 ;; [112] (set! f0 (i2f f0)) + swc1 f0, 20(a0) ;; [113] (s.f! (+ a0 20) f0) + lui v1, 16256 ;; [114] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [115] (set! f0 (gpr->fpr v1)) + swc1 f0, 24(a0) ;; [116] (s.f! (+ a0 24) f0) + mtc1 f0, r0 ;; [117] (set! f0 0) + swc1 f0, 8(a0) ;; [118] (s.f! (+ a0 8) f0) + lw t9, joint-control-channel-group!(s7);; [119] (set! t9 joint-control-channel-group!) + lwu v1, 132(gp) ;; [120] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [121] (set! v1 (l.wu (+ v1 8))) + lwu a1, 60(v1) ;; [122] (set! a1 (l.wu (+ v1 60))) + lw a2, num-func-seek!(s7) ;; [123] (set! a2 num-func-seek!) + jalr ra, t9 ;; [124] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [125] (set! v1 v0) + daddiu v0, s7, #t ;; [126] (set! v0 #t) +B14: +L55: + beq r0, r0, L60 ;; [127] (b! #t L60 (nop!)) + sll r0, r0, 0 + +B15: +L56: + lw v1, 216(gp) ;; [128] (set! v1 (l.w (+ gp 216))) + beql v1, r0, L57 ;; [129] (bl! (zero? v1) L57 (no-delay!)) +B16: + daddiu v1, s7, 4 ;; [130] (set! v1 #t) + +B17: + daddiu v1, s7, 4 ;; [131] (set! v1 #t) + ld a0, 332(gp) ;; [132] (set! a0 (l.d (+ gp 332))) + movz v1, s7, a0 ;; [133] (cmove-#f-zero v1 a0 v1) +B18: +L57: + beql s7, v1, L58 ;; [134] (bl! (not v1) L58 (no-delay!)) +B19: + or s5, v1, r0 ;; [135] (set! s5 v1) + +B20: + daddiu s5, s7, 4 ;; [136] (set! s5 #t) + or a0, gp, r0 ;; [137] (set! a0 gp) + lwu v1, -4(a0) ;; [138] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 492(v1) ;; [139] (set! t9 (l.wu (+ v1 492))) + addiu a1, r0, 3 ;; [140] (set! a1 3) + jalr ra, t9 ;; [141] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [142] (set! v1 v0) + movz s5, s7, v1 ;; [143] (cmove-#f-zero s5 v1 s5) +B21: +L58: + beq s7, s5, L59 ;; [144] (b! (not s5) L59 (nop!)) + sll r0, r0, 0 + +B22: + lw t9, ja-channel-push!(s7);; [145] (set! t9 ja-channel-push!) + addiu a0, r0, 1 ;; [146] (set! a0 1) + addiu a1, r0, 51 ;; [147] (set! a1 51) + jalr ra, t9 ;; [148] (call!) + sll v0, ra, 0 + + lwu v1, 136(gp) ;; [149] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [150] (set! v1 (l.wu (+ v1 12))) + daddu a0, r0, v1 ;; [151] (set! a0 (+ v1 0)) + lwu v1, 132(gp) ;; [152] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [153] (set! v1 (l.wu (+ v1 8))) + lwu v1, 76(v1) ;; [154] (set! v1 (l.wu (+ v1 76))) + sw v1, 4(a0) ;; [155] (s.w! (+ a0 4) v1) + lwu v1, 132(gp) ;; [156] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [157] (set! v1 (l.wu (+ v1 8))) + lwu v1, 76(v1) ;; [158] (set! v1 (l.wu (+ v1 76))) + lwu v1, 40(v1) ;; [159] (set! v1 (l.wu (+ v1 40))) + lhu v1, 0(v1) ;; [160] (set! v1 (l.hu v1)) + daddiu v1, v1, -1 ;; [161] (set! v1 (+ v1 -1)) + mtc1 f0, v1 ;; [162] (set! f0 (gpr->fpr v1)) + cvt.s.w f0, f0 ;; [163] (set! f0 (i2f f0)) + swc1 f0, 20(a0) ;; [164] (s.f! (+ a0 20) f0) + lui v1, 16256 ;; [165] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [166] (set! f0 (gpr->fpr v1)) + swc1 f0, 24(a0) ;; [167] (s.f! (+ a0 24) f0) + mtc1 f0, r0 ;; [168] (set! f0 0) + swc1 f0, 8(a0) ;; [169] (s.f! (+ a0 8) f0) + lw t9, joint-control-channel-group!(s7);; [170] (set! t9 joint-control-channel-group!) + lwu v1, 132(gp) ;; [171] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [172] (set! v1 (l.wu (+ v1 8))) + lwu a1, 76(v1) ;; [173] (set! a1 (l.wu (+ v1 76))) + lw a2, num-func-seek!(s7) ;; [174] (set! a2 num-func-seek!) + jalr ra, t9 ;; [175] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [176] (set! v1 v0) + or v0, s7, r0 ;; [177] (set! v0 #f) + beq r0, r0, L60 ;; [178] (b! #t L60 (nop!)) + sll r0, r0, 0 + +B23: +L59: + lw t9, ja-channel-push!(s7);; [179] (set! t9 ja-channel-push!) + addiu a0, r0, 1 ;; [180] (set! a0 1) + addiu a1, r0, 51 ;; [181] (set! a1 51) + jalr ra, t9 ;; [182] (call!) + sll v0, ra, 0 + + lwu v1, 136(gp) ;; [183] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [184] (set! v1 (l.wu (+ v1 12))) + daddu a0, r0, v1 ;; [185] (set! a0 (+ v1 0)) + lwu v1, 132(gp) ;; [186] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [187] (set! v1 (l.wu (+ v1 8))) + lwu v1, 72(v1) ;; [188] (set! v1 (l.wu (+ v1 72))) + sw v1, 4(a0) ;; [189] (s.w! (+ a0 4) v1) + lwu v1, 132(gp) ;; [190] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [191] (set! v1 (l.wu (+ v1 8))) + lwu v1, 72(v1) ;; [192] (set! v1 (l.wu (+ v1 72))) + lwu v1, 40(v1) ;; [193] (set! v1 (l.wu (+ v1 40))) + lhu v1, 0(v1) ;; [194] (set! v1 (l.hu v1)) + daddiu v1, v1, -1 ;; [195] (set! v1 (+ v1 -1)) + mtc1 f0, v1 ;; [196] (set! f0 (gpr->fpr v1)) + cvt.s.w f0, f0 ;; [197] (set! f0 (i2f f0)) + swc1 f0, 20(a0) ;; [198] (s.f! (+ a0 20) f0) + lui v1, 16256 ;; [199] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [200] (set! f0 (gpr->fpr v1)) + swc1 f0, 24(a0) ;; [201] (s.f! (+ a0 24) f0) + mtc1 f0, r0 ;; [202] (set! f0 0) + swc1 f0, 8(a0) ;; [203] (s.f! (+ a0 8) f0) + lw t9, joint-control-channel-group!(s7);; [204] (set! t9 joint-control-channel-group!) + lwu v1, 132(gp) ;; [205] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [206] (set! v1 (l.wu (+ v1 8))) + lwu a1, 72(v1) ;; [207] (set! a1 (l.wu (+ v1 72))) + lw a2, num-func-seek!(s7) ;; [208] (set! a2 num-func-seek!) + jalr ra, t9 ;; [209] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [210] (set! v1 v0) + daddiu v0, s7, #t ;; [211] (set! v0 #t) +B24: +L60: ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 40(sp) - lwc1 f28, 36(sp) - lwc1 f26, 32(sp) - lq gp, 16(sp) + lq gp, 32(sp) + lq s5, 16(sp) jr ra daddiu sp, sp, 48 @@ -16418,778 +3283,520 @@ B11: sll r0, r0, 0 sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-jump) - ((arg0 float) (arg1 float) (arg2 surface)) - (ja-channel-push! 2 (seconds 0.05)) - (ja :group! (-> self draw art-group data 34) :num! min) - (ja :chan 1 - :group! (-> self draw art-group data 40) - :num! (chan 0) - :frame-interp (-> self control unknown-float122) - ) - (suspend) - (ja :group! (-> self draw art-group data 34) :num! (+!)) - (ja :chan 1 - :group! (-> self draw art-group data 40) - :num! (chan 0) - :frame-interp (-> self control unknown-float122) - ) - (suspend) - (until (ja-done? 0) - (let ((f30-0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (f0-8 (- 20.0 (ja-aframe-num 0))) - (gp-1 (-> self skel root-channel 0)) - ) - (set! (-> gp-1 param 0) (the float (+ (-> gp-1 frame-group data 0 length) -1))) - (let ((v1-45 (and (< 0.0 f30-0) (< 0.0 f0-8)))) - (set! (-> gp-1 param 1) - (the-as - float - (if v1-45 - (fmin (fmin 3.0 f0-8) (/ (* 5.0 f0-8) (the float (time-to-apex f30-0 (the-as float -245760.0))))) - 1.0 - ) - ) - ) - ) - (joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!) - ) - (ja :chan 1 :num! (chan 0) :frame-interp (-> self control unknown-float122)) - (suspend) - ) - (target-falling-anim -1 (seconds 0.2)) - (none) - ) - -;;-*-OpenGOAL-End-*- - + (set! gp a0) + (set! v1 (l.bu (+ gp 416))) + (set! a0 6) + (b! (!= v1 a0) L50 (nop!)) + (set! v1 *ashelin-global-info*) + (set! a0 (l.b v1)) + (set! a0 (sll a0 2)) + (set! v1 (+ v1 a0)) + (set! v1 (l.w (+ v1 28))) + (set! v1 (sll v1 2)) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! v1 (+ v1 a0)) + (set! s5 (l.wu (+ v1 28))) + (set! t9 ja-channel-push!) + (set! a0 1) + (set! a1 51) + (call!) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 0)) + (s.w! (+ a0 4) s5) + (set! v1 (l.wu (+ s5 40))) + (set! v1 (l.hu v1)) + (set! v1 (+ v1 -1)) + (set! f0 (gpr->fpr v1)) + (set! f0 (i2f f0)) + (s.f! (+ a0 20) f0) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ a0 24) f0) + (set! f0 0) + (s.f! (+ a0 8) f0) + (set! t9 joint-control-channel-group!) + (set! a2 num-func-seek!) + (set! a1 s5) + (call!) + (set! v1 v0) + (set! v0 #t) + (b! #t L60 (nop!)) +(label L50) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.bu (+ v1 3))) + (b! (<=0.ui v1) L51 (set! v1 #f)) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! v1 (l.wu (+ v1 4))) +(label L51) + (bl! (not v1) L52 (no-delay!)) + (set! a0 v1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 56))) + (set! a0 (= v1 a0)) +(label L52) + (b! (not a0) L56 (nop!)) + (set! v1 (l.w (+ gp 216))) + (bl! (zero? v1) L53 (no-delay!)) + (set! v1 #t) + (set! v1 #t) + (set! a0 (l.d (+ gp 332))) + (cmove-#f-zero v1 a0 v1) +(label L53) + (b! (not v1) L54 (nop!)) + (set! t9 ja-channel-push!) + (set! a0 1) + (set! a1 51) + (call!) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 0)) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 64))) + (s.w! (+ a0 4) v1) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 64))) + (set! v1 (l.wu (+ v1 40))) + (set! v1 (l.hu v1)) + (set! v1 (+ v1 -1)) + (set! f0 (gpr->fpr v1)) + (set! f0 (i2f f0)) + (s.f! (+ a0 20) f0) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ a0 24) f0) + (set! f0 0) + (s.f! (+ a0 8) f0) + (set! t9 joint-control-channel-group!) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! a1 (l.wu (+ v1 64))) + (set! a2 num-func-seek!) + (call!) + (set! v1 v0) + (set! v0 #f) + (b! #t L55 (nop!)) +(label L54) + (set! t9 ja-channel-push!) + (set! a0 1) + (set! a1 51) + (call!) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 0)) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 60))) + (s.w! (+ a0 4) v1) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 60))) + (set! v1 (l.wu (+ v1 40))) + (set! v1 (l.hu v1)) + (set! v1 (+ v1 -1)) + (set! f0 (gpr->fpr v1)) + (set! f0 (i2f f0)) + (s.f! (+ a0 20) f0) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ a0 24) f0) + (set! f0 0) + (s.f! (+ a0 8) f0) + (set! t9 joint-control-channel-group!) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! a1 (l.wu (+ v1 60))) + (set! a2 num-func-seek!) + (call!) + (set! v1 v0) + (set! v0 #t) +(label L55) + (b! #t L60 (nop!)) +(label L56) + (set! v1 (l.w (+ gp 216))) + (bl! (zero? v1) L57 (no-delay!)) + (set! v1 #t) + (set! v1 #t) + (set! a0 (l.d (+ gp 332))) + (cmove-#f-zero v1 a0 v1) +(label L57) + (bl! (not v1) L58 (no-delay!)) + (set! s5 v1) + (set! s5 #t) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 492))) + (set! a1 3) + (call!) + (set! v1 v0) + (cmove-#f-zero s5 v1 s5) +(label L58) + (b! (not s5) L59 (nop!)) + (set! t9 ja-channel-push!) + (set! a0 1) + (set! a1 51) + (call!) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 0)) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 76))) + (s.w! (+ a0 4) v1) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 76))) + (set! v1 (l.wu (+ v1 40))) + (set! v1 (l.hu v1)) + (set! v1 (+ v1 -1)) + (set! f0 (gpr->fpr v1)) + (set! f0 (i2f f0)) + (s.f! (+ a0 20) f0) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ a0 24) f0) + (set! f0 0) + (s.f! (+ a0 8) f0) + (set! t9 joint-control-channel-group!) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! a1 (l.wu (+ v1 76))) + (set! a2 num-func-seek!) + (call!) + (set! v1 v0) + (set! v0 #f) + (b! #t L60 (nop!)) +(label L59) + (set! t9 ja-channel-push!) + (set! a0 1) + (set! a1 51) + (call!) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 0)) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 72))) + (s.w! (+ a0 4) v1) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 72))) + (set! v1 (l.wu (+ v1 40))) + (set! v1 (l.hu v1)) + (set! v1 (+ v1 -1)) + (set! f0 (gpr->fpr v1)) + (set! f0 (i2f f0)) + (s.f! (+ a0 20) f0) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ a0 24) f0) + (set! f0 0) + (s.f! (+ a0 8) f0) + (set! t9 joint-control-channel-group!) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! a1 (l.wu (+ v1 72))) + (set! a2 num-func-seek!) + (call!) + (set! v1 v0) + (set! v0 #t) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-jump) +; .function (method 77 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 + ;stack: total 0x60, fp? 0 ra? 1 ep? 1 + ;stack_vars: 24 bytes at 8 + ;gprs: gp s5 s4 + ;fprs: f30 ;; Warnings: -;; INFO: Return type mismatch float vs none. +;; WARN: Type Propagation failed: Function (method 77 ashelin) has unknown type -;; s6-0: target -L338: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lwu v1, 108(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 2196(v1) ;; [ 1] (set! f0-0 (l.f (+ v1-0 2196))) [v1: control-info ] -> [] - lui v1, L760 ;; [ 2] (set! v1-1 L760) [] -> [v1: ] - ori v1, v1, L760 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 3] (set! f1-0 (l.f v1-1)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 4] (set! v1-2 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 5] (set! v1-3 (l.wu (+ v1-2 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 6] (set! v1-4 (l.w (+ v1-3 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 7] (set! v1-5 (sll v1-4 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 8] (set! a0-0 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 9] (set! v1-6 (+ v1-5 a0-0)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 10] (set! v1-7 (l.wu (+ v1-6 4))) [v1: ] -> [v1: cpad-info ] - lbu v1, 14(v1) ;; [ 11] (set! v1-8 (l.bu (+ v1-7 14))) [v1: cpad-info ] -> [v1: uint ] - mtc1 f2, v1 ;; [ 12] (set! f2-0 (gpr->fpr v1-8)) [v1: uint ] -> [] - cvt.s.w f2, f2 ;; [ 13] (set! f2-1 (i2f f2-0)) [] -> [] - mul.s f1, f1, f2 ;; [ 14] (set! f1-1 (*.s f1-0 f2-1)) [] -> [] - max.s f0, f0, f1 ;; [ 15] (set! f0-1 (max.s f0-0 f1-1)) [] -> [] - lwu v1, 108(s6) ;; [ 16] (set! v1-9 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2196(v1) ;; [ 17] (s.f! (+ v1-9 2196) f0-1) [v1: control-info ] -> [] - lw t9, target-falling-trans(s7);; [ 18] (set! t9-0 target-falling-trans) - ;; [] -> [t9: (function basic time-frame none :behavior target) ] - or a0, s7, r0 ;; [ 19] (set! a0-1 #f) [] -> [a0: '#f ] - lwu v1, 120(s6) ;; [ 20] (set! v1-10 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 21] (set! v1-11 (l.w (+ v1-10 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 22] (b! (<=0.si v1-11) L339 (set! v1-12 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L339 - or v1, s7, r0 - -B1: - lwu v1, 120(s6) ;; [ 23] (set! v1-13 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 24] (set! v1-14 (l.wu (+ v1-13 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 25] (set! v1-12 (l.wu (+ v1-14 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B2: -L339: - lwu a1, 116(s6) ;; [ 26] (set! a1-0 (l.wu (+ self 116))) [s6: target ] -> [a1: draw-control ] - lwu a1, 4(a1) ;; [ 27] (set! a1-1 (l.wu (+ a1-0 4))) [a1: draw-control ] -> [a1: art-group ] - lwu a1, 180(a1) ;; [ 28] (set! a1-2 (l.wu (+ a1-1 180))) [a1: art-group ] -> [a1: art-element ] - dsubu v1, v1, a1 ;; [ 29] (set! a1-3 (= v1-12 a1-2)) [v1: art-joint-anim a1: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, v1 - beq s7, a1, L340 ;; [ 30] (b! (not a1-3) L340 (nop!)) [a1: symbol ] -> [] - sll r0, r0, 0 - -B3: - addiu a1, r0, 15 ;; [ 31] (set! a1-4 15) [] -> [a1: ] - beq r0, r0, L341 ;; [ 32] (b! #t L341 (nop!)) [] -> [] - sll r0, r0, 0 - -B4: -L340: - addiu a1, r0, -1 ;; [ 33] (set! a1-4 -1) [] -> [a1: ] -B5: -L341: - jalr ra, t9 ;; [ 34] (call! a0-1 a1-4) - ;; [a0: '#f a1: int t9: (function basic time-frame none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lwu v1, 108(s6) ;; [ 35] (set! v1-15 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 36] (set! v1-16 (l.wu (+ v1-15 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 37] (set! v1-17 (l.w (+ v1-16 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 38] (set! v1-18 (sll v1-17 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 39] (set! a0-2 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 40] (set! v1-19 (+ v1-18 a0-2)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 41] (set! v1-20 (l.wu (+ v1-19 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 42] (set! v1-21 (l.wu (+ v1-20 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [ 43] (set! v1-22 (logand v1-21 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L344 ;; [ 44] (bl! (zero? v1-22) L344 (no-delay!)) [v1: pad-buttons ] -> [] -B6: - or v1, s7, r0 ;; [ 45] (set! v1-23 #f) [] -> [v1: '#f ] - -B7: - lwu v1, 108(s6) ;; [ 46] (set! v1-24 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 47] (set! v1-25 (l.wu (+ v1-24 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 48] (set! a0-3 (+ v1-25 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 49] (set! v1-26 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 50] (set! v1-27 (+ v1-26 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [ 51] (set! f0-2 (vec3dot a0-3 v1-27)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 52] (set! v1-28 (fpr->gpr f0-2)) [] -> [v1: float ] - mtc1 f0, v1 ;; [ 53] (set! f0-3 (gpr->fpr v1-28)) [v1: float ] -> [] - lui v1, L791 ;; [ 54] (set! v1-29 L791) [] -> [v1: ] - ori v1, v1, L791 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 55] (set! f1-2 (l.f v1-29)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 56] (b! (<.s f0-3 f1-2) L342 (set! v1-30 #t)) [] -> [v1: symbol ] - bc1t L342 - daddiu v1, s7, 8 - -B8: - or v1, s7, r0 ;; [ 57] (set! v1-30 #f) [] -> [v1: '#f ] -B9: -L342: - beql s7, v1, L344 ;; [ 58] (bl! (not v1-30) L344 (no-delay!)) [v1: symbol ] -> [] -B10: - or v1, v1, r0 ;; [ 59] (set! v1-23 v1-30) [v1: symbol ] -> [v1: symbol ] - -B11: - lui v1, L805 ;; [ 60] (set! v1-31 L805) [] -> [v1: ] - ori v1, v1, L805 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 61] (set! f0-4 (l.f v1-31)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 62] (set! v1-32 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 63] (set! v1-33 (l.wu (+ v1-32 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 64] (set! a0-4 (+ v1-33 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 65] (set! v1-34 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [ 66] (set! v1-35 (+ v1-34 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f1, 0(a0) ;; [ 67] (set! f1-3 (vec3dot a0-4 v1-35)) [v1: vector a0: vector ] -> [] - lwc1 f2, 4(a0) - lwc1 f3, 8(a0) - lwc1 f4, 0(v1) - lwc1 f5, 4(v1) - lwc1 f6, 8(v1) - mula.s f1, f4 - madda.s f2, f5 - madd.s f1, f3, f6 - mfc1 v1, f1 ;; [ 68] (set! v1-36 (fpr->gpr f1-3)) [] -> [v1: float ] - mtc1 f1, v1 ;; [ 69] (set! f1-4 (gpr->fpr v1-36)) [v1: float ] -> [] - c.lt.s f0, f1 ;; [ 70] (b! (<.s f0-4 f1-4) L343 (set! v1-37 #t)) [] -> [v1: symbol ] - bc1t L343 - daddiu v1, s7, 8 - -B12: - or v1, s7, r0 ;; [ 71] (set! v1-37 #f) [] -> [v1: '#f ] -B13: -L343: - beql s7, v1, L344 ;; [ 72] (bl! (not v1-37) L344 (no-delay!)) [v1: symbol ] -> [] -B14: - or v1, v1, r0 ;; [ 73] (set! v1-23 v1-37) [v1: symbol ] -> [v1: symbol ] - -B15: - lwu v1, 152(s6) ;; [ 74] (set! v1-38 (l.wu (+ self 152))) [s6: target ] -> [v1: water-control ] - lwu v1, 0(v1) ;; [ 75] (set! v1-39 (l.wu v1-38)) [v1: water-control ] -> [v1: water-flags ] - andi v1, v1, 512 ;; [ 76] (set! v1-40 (logand v1-39 512)) [v1: water-flags ] -> [v1: water-flags ] - bnel v1, r0, L344 ;; [ 77] (bl! (nonzero? v1-40) L344 (no-delay!)) [v1: water-flags ] -> [] -B16: - or v1, s7, r0 ;; [ 78] (set! v1-23 #f) [] -> [v1: '#f ] - -B17: - daddiu v1, s7, 8 ;; [ 79] (set! v1-41 #t) [] -> [v1: symbol ] - lwu a0, 160(s6) ;; [ 80] (set! a0-5 (l.wu (+ self 160))) [s6: target ] -> [a0: state-flags ] - andi a0, a0, 2048 ;; [ 81] (set! a0-6 (logand a0-5 2048)) [a0: state-flags ] -> [a0: state-flags ] - movn v1, s7, a0 ;; [ 82] (cmove-#f-nonzero v1-23 a0-6 v1-41) [v1: symbol a0: state-flags ] -> [v1: symbol ] -B18: -L344: - beq s7, v1, L345 ;; [ 83] (b! (not v1-23) L345 (set! v1-42 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B19: - lw t9, enter-state(s7) ;; [ 84] (set! t9-1 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [ 85] (set! v1-43 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 12(v1) ;; [ 86] (set! f0-5 (l.f (+ v1-43 12))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [ 87] (set! a0-7 (fpr->gpr f0-5)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [ 88] (set! v1-44 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 16(v1) ;; [ 89] (set! f0-6 (l.f (+ v1-44 16))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [ 90] (set! a1-5 (fpr->gpr f0-6)) [] -> [a1: meters ] - lw v1, target-double-jump(s7);; [ 91] (set! v1-45 target-double-jump) [] -> [v1: (state float float target) ] - sw v1, 72(s6) ;; [ 92] (s.w! (+ self 72) v1-45) [v1: (state float float target) s6: target ] -> [] - jalr ra, t9 ;; [ 93] (call! a0-7 a1-5) [a0: meters a1: meters t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 94] (set! v1-46 v0-1) [v0: object ] -> [v1: object ] -B20: -L345: - lwu v1, 108(s6) ;; [ 95] (set! v1-47 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 96] (set! v1-48 (l.wu (+ v1-47 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 97] (set! v1-49 (l.w (+ v1-48 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 98] (set! v1-50 (sll v1-49 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 99] (set! a0-8 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [100] (set! v1-51 (+ v1-50 a0-8)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [101] (set! v1-52 (l.wu (+ v1-51 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [102] (set! v1-53 (l.wu (+ v1-52 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 32768 ;; [103] (set! v1-54 (logand v1-53 #x8000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L348 ;; [104] (bl! (zero? v1-54) L348 (no-delay!)) [v1: pad-buttons ] -> [] -B21: - or v1, s7, r0 ;; [105] (set! v1-55 #f) [] -> [v1: '#f ] - -B22: - lwu v1, 108(s6) ;; [106] (set! v1-56 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [107] (set! v1-57 (l.wu (+ v1-56 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [108] (set! a0-9 (+ v1-57 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [109] (set! v1-58 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [110] (set! v1-59 (+ v1-58 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [111] (set! f0-7 (vec3dot a0-9 v1-59)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) - lwc1 f3, 0(v1) - lwc1 f4, 4(v1) - lwc1 f5, 8(v1) - mula.s f0, f3 - madda.s f1, f4 - madd.s f0, f2, f5 - mfc1 v1, f0 ;; [112] (set! v1-60 (fpr->gpr f0-7)) [] -> [v1: float ] - mtc1 f0, v1 ;; [113] (set! f0-8 (gpr->fpr v1-60)) [v1: float ] -> [] - lui v1, L790 ;; [114] (set! v1-61 L790) [] -> [v1: ] - ori v1, v1, L790 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [115] (set! f1-5 (l.f v1-61)) [v1: ] -> [] - c.lt.s f0, f1 ;; [116] (b! (<.s f0-8 f1-5) L346 (set! v1-62 #t)) [] -> [v1: symbol ] - bc1t L346 - daddiu v1, s7, 8 - -B23: - or v1, s7, r0 ;; [117] (set! v1-62 #f) [] -> [v1: '#f ] -B24: -L346: - beql s7, v1, L348 ;; [118] (bl! (not v1-62) L348 (no-delay!)) [v1: symbol ] -> [] -B25: - or v1, v1, r0 ;; [119] (set! v1-55 v1-62) [v1: symbol ] -> [v1: symbol ] - -B26: - lui v1, L805 ;; [120] (set! v1-63 L805) [] -> [v1: ] - ori v1, v1, L805 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [121] (set! f0-9 (l.f v1-63)) [v1: ] -> [] - lwu v1, 108(s6) ;; [122] (set! v1-64 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [123] (set! v1-65 (l.wu (+ v1-64 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [124] (set! a0-10 (+ v1-65 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [125] (set! v1-66 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [126] (set! v1-67 (+ v1-66 60)) [v1: control-info ] -> [v1: vector ] - lwc1 f1, 0(a0) ;; [127] (set! f1-6 (vec3dot a0-10 v1-67)) [v1: vector a0: vector ] -> [] - lwc1 f2, 4(a0) - lwc1 f3, 8(a0) - lwc1 f4, 0(v1) - lwc1 f5, 4(v1) - lwc1 f6, 8(v1) - mula.s f1, f4 - madda.s f2, f5 - madd.s f1, f3, f6 - mfc1 v1, f1 ;; [128] (set! v1-68 (fpr->gpr f1-6)) [] -> [v1: float ] - mtc1 f1, v1 ;; [129] (set! f1-7 (gpr->fpr v1-68)) [v1: float ] -> [] - c.lt.s f0, f1 ;; [130] (b! (<.s f0-9 f1-7) L347 (set! v1-69 #t)) [] -> [v1: symbol ] - bc1t L347 - daddiu v1, s7, 8 - -B27: - or v1, s7, r0 ;; [131] (set! v1-69 #f) [] -> [v1: '#f ] -B28: -L347: - beql s7, v1, L348 ;; [132] (bl! (not v1-69) L348 (no-delay!)) [v1: symbol ] -> [] -B29: - or v1, v1, r0 ;; [133] (set! v1-55 v1-69) [v1: symbol ] -> [v1: symbol ] - -B30: - lw v1, *display*(s7) ;; [134] (set! v1-70 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [135] (set! v1-71 (l.d (+ v1-70 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [136] (set! a0-11 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 1708(a0) ;; [137] (set! a0-12 (l.d (+ a0-11 1708))) [a0: control-info ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [138] (set! v1-72 (- v1-71 a0-12)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - lw a0, *TARGET-bank*(s7) ;; [139] (set! a0-13 *TARGET-bank*) [] -> [a0: target-bank ] - ld a0, 564(a0) ;; [140] (set! a0-14 (l.d (+ a0-13 564))) [a0: target-bank ] -> [a0: seconds ] - slt v1, v1, a0 ;; [141] (set! a0-15 (>=.si v1-72 a0-14)) [v1: time-frame a0: seconds ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L348 ;; [142] (bl! (not a0-15) L348 (no-delay!)) [a0: symbol ] -> [] -B31: - or v1, a0, r0 ;; [143] (set! v1-55 a0-15) [a0: symbol ] -> [v1: symbol ] - -B32: - lwu v1, 160(s6) ;; [144] (set! v1-73 (l.wu (+ self 160))) [s6: target ] -> [v1: state-flags ] - andi v1, v1, 4096 ;; [145] (set! v1-74 (logand v1-73 4096)) [v1: state-flags ] -> [v1: state-flags ] - bnel v1, r0, L348 ;; [146] (bl! (nonzero? v1-74) L348 (no-delay!)) [v1: state-flags ] -> [] -B33: - or v1, s7, r0 ;; [147] (set! v1-55 #f) [] -> [v1: '#f ] - -B34: - daddiu v1, s7, 8 ;; [148] (set! v1-75 #t) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [149] (set! a0-16 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 660(a0) ;; [150] (set! a0-17 (l.wu (+ a0-16 660))) [a0: control-info ] -> [a0: surface ] - lwu a0, 144(a0) ;; [151] (set! a0-18 (l.wu (+ a0-17 144))) [a0: surface ] -> [a0: surface-flags ] - andi a0, a0, 384 ;; [152] (set! a0-19 (logand a0-18 384)) [a0: surface-flags ] -> [a0: surface-flags ] - movn v1, s7, a0 ;; [153] (cmove-#f-nonzero v1-55 a0-19 v1-75) - ;; [v1: symbol a0: surface-flags ] -> [v1: symbol ] -B35: -L348: - beq s7, v1, L351 ;; [154] (b! (not v1-55) L351 (set! v1-76 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B36: - lw t9, enter-state(s7) ;; [155] (set! t9-2 enter-state) [] -> [t9: ] - lui v1, L784 ;; [156] (set! v1-77 L784) [] -> [v1: ] - ori v1, v1, L784 - addu v1, fp, v1 - lw a0, 0(v1) ;; [157] (set! a0-20 (l.w v1-77)) [v1: ] -> [a0: int ] - lui v1, L731 ;; [158] (set! v1-78 L731) [] -> [v1: ] - ori v1, v1, L731 - addu v1, fp, v1 - lw a1, 0(v1) ;; [159] (set! a1-6 (l.w v1-78)) [v1: ] -> [a1: int ] - lwu v1, 108(s6) ;; [160] (set! v1-79 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [161] (set! v1-80 (l.wu (+ v1-79 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [162] (set! v1-81 (l.w (+ v1-80 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [163] (set! v1-82 (sll v1-81 2)) [v1: int ] -> [v1: ] - lw a2, *cpad-list*(s7) ;; [164] (set! a2-0 *cpad-list*) [] -> [a2: cpad-list ] - daddu v1, v1, a2 ;; [165] (set! v1-83 (+ v1-82 a2-0)) - ;; [v1: a2: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [166] (set! v1-84 (l.wu (+ v1-83 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwc1 f0, 72(v1) ;; [167] (set! f0-10 (l.f (+ v1-84 72))) [v1: cpad-info ] -> [] - mtc1 f1, r0 ;; [168] (set! f1-8 0) [] -> [] - c.eq.s f0, f1 ;; [169] (b! (!=.s f0-10 f1-8) L349 (nop!)) [] -> [] - bc1f L349 - sll r0, r0, 0 - -B37: - lui v1, L814 ;; [170] (set! v1-85 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a2, 0(v1) ;; [171] (set! a2-1 (l.w v1-85)) [v1: ] -> [a2: int ] - beq r0, r0, L350 ;; [172] (b! #t L350 (nop!)) [] -> [] - sll r0, r0, 0 - -B38: -L349: - lui v1, L758 ;; [173] (set! v1-86 L758) [] -> [v1: ] - ori v1, v1, L758 - addu v1, fp, v1 - lw a2, 0(v1) ;; [174] (set! a2-1 (l.w v1-86)) [v1: ] -> [a2: int ] -B39: -L350: - lw v1, target-flop(s7) ;; [175] (set! v1-87 target-flop) [] -> [v1: (state float float float target) ] - sw v1, 72(s6) ;; [176] (s.w! (+ self 72) v1-87) [v1: (state float float float target) s6: target ] -> [] - jalr ra, t9 ;; [177] (call! a0-20 a1-6 a2-1) - ;; [a0: int a1: int a2: int t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [178] (set! v1-88 v0-2) [v0: object ] -> [v1: object ] -B40: -L351: - lw t9, mod-var-jump(s7) ;; [179] (set! t9-3 mod-var-jump) - ;; [] -> [t9: (function symbol symbol symbol vector vector :behavior target) ] - daddiu a0, s7, #t ;; [180] (set! a0-21 #t) [] -> [a0: symbol ] - daddiu a1, s7, #t ;; [181] (set! a1-7 #t) [] -> [a1: symbol ] - daddiu a2, s7, 8 ;; [182] (set! a2-2 #t) [] -> [a2: symbol ] - lwu v1, 108(s6) ;; [183] (set! v1-89 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [184] (set! v1-90 (l.wu (+ v1-89 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [185] (set! v1-91 (l.w (+ v1-90 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [186] (set! v1-92 (sll v1-91 2)) [v1: int ] -> [v1: ] - lw a3, *cpad-list*(s7) ;; [187] (set! a3-0 *cpad-list*) [] -> [a3: cpad-list ] - daddu v1, v1, a3 ;; [188] (set! v1-93 (+ v1-92 a3-0)) - ;; [v1: a3: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [189] (set! v1-94 (l.wu (+ v1-93 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 40(v1) ;; [190] (set! v1-95 (l.wu (+ v1-94 40))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [191] (set! v1-96 (logand v1-95 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - movz a2, s7, v1 ;; [192] (cmove-#f-zero a2-3 v1-96 a2-2) [v1: pad-buttons a2: symbol ] -> [a2: symbol ] - lwu v1, 108(s6) ;; [193] (set! v1-97 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a3, v1, 60 ;; [194] (set! a3-1 (+ v1-97 60)) [v1: control-info ] -> [a3: vector ] - jalr ra, t9 ;; [195] (call! a0-21 a1-7 a2-3 a3-1) - ;; [a0: symbol a1: symbol a2: symbol a3: vector t9: (function symbol symbol symbol vector vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - lw t9, slide-down-test(s7);; [196] (set! t9-4 slide-down-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [197] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, seek(s7) ;; [198] (set! t9-5 seek) [] -> [t9: (function float float float float) ] - lwu v1, 108(s6) ;; [199] (set! v1-98 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 2192(v1) ;; [200] (set! f0-11 (l.f (+ v1-98 2192))) [v1: control-info ] -> [] - mfc1 a0, f0 ;; [201] (set! a0-22 (fpr->gpr f0-11)) [] -> [a0: float ] - mtc1 f0, r0 ;; [202] (set! f0-12 0) [] -> [] - lui v1, L786 ;; [203] (set! v1-99 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [204] (set! f1-9 (l.f v1-99)) [v1: ] -> [] - lui v1, L759 ;; [205] (set! v1-100 L759) [] -> [v1: ] - ori v1, v1, L759 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [206] (set! f2-2 (l.f v1-100)) [v1: ] -> [] - lui v1, L792 ;; [207] (set! v1-101 L792) [] -> [v1: ] - ori v1, v1, L792 - addu v1, fp, v1 - lwc1 f3, 0(v1) ;; [208] (set! f3-0 (l.f v1-101)) [v1: ] -> [] - lwu v1, 108(s6) ;; [209] (set! v1-102 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f4, 528(v1) ;; [210] (set! f4-0 (l.f (+ v1-102 528))) [v1: control-info ] -> [] - add.s f3, f3, f4 ;; [211] (set! f3-1 (+.s f3-0 f4-0)) [] -> [] - mul.s f2, f2, f3 ;; [212] (set! f2-3 (*.s f2-2 f3-1)) [] -> [] - min.s f1, f1, f2 ;; [213] (set! f1-10 (min.s f1-9 f2-3)) [] -> [] - max.s f0, f0, f1 ;; [214] (set! f0-13 (max.s f0-12 f1-10)) [] -> [] - mfc1 a1, f0 ;; [215] (set! a1-8 (fpr->gpr f0-13)) [] -> [a1: float ] - lw v1, *display*(s7) ;; [216] (set! v1-103 *display*) [] -> [v1: display ] - lwc1 f0, 904(v1) ;; [217] (set! f0-14 (l.f (+ v1-103 904))) [v1: display ] -> [] - mfc1 a2, f0 ;; [218] (set! a2-4 (fpr->gpr f0-14)) [] -> [a2: float ] - jalr ra, t9 ;; [219] (call! a0-22 a1-8 a2-4) - ;; [a0: float a1: float a2: float t9: (function float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [220] (set! f0-15 (gpr->fpr v0-5)) [v0: float ] -> [] - lwu v1, 108(s6) ;; [221] (set! v1-104 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2192(v1) ;; [222] (s.f! (+ v1-104 2192) f0-15) [v1: control-info ] -> [] - mfc1 v0, f0 ;; [223] (set! v0-6 (fpr->gpr f0-15)) [] -> [v0: float ] - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-jump) - () - (set! (-> self control unknown-float123) - (fmax - (-> self control unknown-float123) - (* 0.003921569 (the float (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) abutton 6))) - ) - ) - (target-falling-trans #f (the-as time-frame (if (ja-group? (-> self draw art-group data 38)) - 15 - -1 - ) - ) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) x) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 12288.0) - (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (zero? (logand (-> self water flags) (water-flags wt09))) - (zero? (logand (-> self state-flags) (state-flags prevent-jump))) - ) - ) - (go target-double-jump (-> *TARGET-bank* double-jump-height-min) (-> *TARGET-bank* double-jump-height-max)) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) square) - (< (vector-dot (-> self control dynam gravity-normal) (-> self control transv)) 26624.0) - (and (< -61440.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword36)) - (the-as time-frame (-> *TARGET-bank* stuck-timeout)) - ) - (zero? (logand (-> self state-flags) (state-flags prevent-attack))) - (zero? (logand (-> self control unknown-surface01 flags) (surface-flags prevent-attacks-during-launch-jump surf08)) - ) - ) - ) - (go - target-flop - (the-as float 65502.96) - (the-as float -163840.0) - (the-as float (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - 0.0 - 68812.8 - ) - ) - ) - ) - (mod-var-jump #t #t (cpad-hold? (-> self control unknown-cpad-info00 number) x) (-> self control transv)) - (slide-down-test) - (seek! - (-> self control unknown-float122) - (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control unknown-float01))))) - (-> *display* seconds-per-frame) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-jump) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x60, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 s4 s3 s2 -;; Warnings: -;; INFO: Return type mismatch float vs none. -;; Used lq/sq - -;; a0-0: float a0-9: int a1-0: float a1-5: int a2-0: surface a2-5: vector s6-0: target -L352: +L61: daddiu sp, sp, -96 sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s2, 16(sp) - sq s3, 32(sp) - sq s4, 48(sp) - sq s5, 64(sp) - sq gp, 80(sp) + sq s4, 32(sp) + sq s5, 48(sp) + sq gp, 64(sp) + swc1 f30, 80(sp) B0: - or s5, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: float ] -> [s5: float ] - or s4, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: float ] -> [s4: float ] - or gp, a2, r0 ;; [ 2] (set! arg2 arg2) [a2: surface ] -> [gp: surface ] - daddiu v1, s7, launch ;; [ 3] (set! v1-0 'launch) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [ 4] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 2424(a0) ;; [ 5] (set! a0-2 (l.wu (+ a0-1 2424))) [a0: control-info ] -> [a0: symbol ] - bne a0, v1, L354 ;; [ 6] (b! (!= a0-2 v1-0) L354 (set! v1-1 #f)) [v1: symbol a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 + or gp, a0, r0 ;; [ 0] (set! gp a0) + or s5, a1, r0 ;; [ 1] (set! s5 a1) + lbu v1, 416(gp) ;; [ 2] (set! v1 (l.bu (+ gp 416))) + addiu a0, r0, 6 ;; [ 3] (set! a0 6) + bne v1, a0, L69 ;; [ 4] (b! (!= v1 a0) L69 (nop!)) + sll r0, r0, 0 B1: - lw t9, level-hint-spawn(s7);; [ 7] (set! t9-0 level-hint-spawn) - ;; [] -> [t9: (function game-text-id string entity process-tree game-task none) ] - addiu a0, r0, 656 ;; [ 8] (set! a0-3 656) [] -> [a0: ] - lui v1, L712 ;; [ 9] (set! a1-1 L712) [] -> [a1: ] "sksp009d" - ori v1, v1, L712 ;; "sksp009d" - daddu a1, v1, fp - or a2, s7, r0 ;; [ 10] (set! a2-1 #f) [] -> [a2: '#f ] - lw a3, *entity-pool*(s7) ;; [ 11] (set! a3-0 *entity-pool*) [] -> [a3: process-tree ] - addiu t0, r0, 0 ;; [ 12] (set! t0-0 0) [] -> [t0: ] - jalr ra, t9 ;; [ 13] (call! a0-3 a1-1 a2-1 a3-0 t0-0) - ;; [a0: a1: a2: '#f a3: process-tree t0: t9: (function game-text-id string entity process-tree game-task none) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, level-hint-spawn(s7);; [ 14] (set! t9-1 level-hint-spawn) - ;; [] -> [t9: (function game-text-id string entity process-tree game-task none) ] - addiu a0, r0, 657 ;; [ 15] (set! a0-4 657) [] -> [a0: ] - lui v1, L711 ;; [ 16] (set! a1-2 L711) [] -> [a1: ] "sksp009e" - ori v1, v1, L711 ;; "sksp009e" - daddu a1, v1, fp - or a2, s7, r0 ;; [ 17] (set! a2-2 #f) [] -> [a2: '#f ] - lw a3, *entity-pool*(s7) ;; [ 18] (set! a3-1 *entity-pool*) [] -> [a3: process-tree ] - addiu t0, r0, 0 ;; [ 19] (set! t0-1 0) [] -> [t0: ] - jalr ra, t9 ;; [ 20] (call! a0-4 a1-2 a2-2 a3-1 t0-1) - ;; [a0: a1: a2: '#f a3: process-tree t0: t9: (function game-text-id string entity process-tree game-task none) ] -> [v0: none ] - sll v0, ra, 0 - - lw a0, *level*(s7) ;; [ 21] (set! a0-5 *level*) [] -> [a0: level-group ] - lwu v1, -4(a0) ;; [ 22] (set! v1-2 (l.wu (+ a0-5 -4))) [a0: level-group ] -> [v1: ] - lwu t9, 84(v1) ;; [ 23] (set! t9-2 (l.wu (+ v1-2 84))) - ;; [v1: ] -> [t9: ] - jalr ra, t9 ;; [ 24] (call! a0-5) - ;; [a0: level-group t9: ] -> [v0: level ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 25] (set! v1-3 v0-2) [v0: level ] -> [v1: level ] - lwu v1, 0(v1) ;; [ 26] (set! v1-4 (l.wu v1-3)) [v1: level ] -> [v1: symbol ] - daddiu a0, s7, citadel ;; [ 27] (set! a0-6 'citadel) [] -> [a0: symbol ] - bne v1, a0, L353 ;; [ 28] (b! (!= v1-4 a0-6) L353 (set! v1-5 #f)) [v1: symbol a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - + addiu v1, r0, 1 ;; [ 5] (set! v1 1) + lw a0, *ashelin-global-info*(s7);; [ 6] (set! a0 *ashelin-global-info*) + lb a0, 0(a0) ;; [ 7] (set! a0 (l.b a0)) + bgezl a0, L62 ;; [ 8] (bl! (>=0.si a0) L62 (no-delay!)) B2: - lw t9, level-hint-spawn(s7);; [ 29] (set! t9-3 level-hint-spawn) - ;; [] -> [t9: (function game-text-id string entity process-tree game-task none) ] - addiu a0, r0, 2066 ;; [ 30] (set! a0-7 2066) [] -> [a0: ] - lui v1, L710 ;; [ 31] (set! a1-3 L710) [] -> [a1: ] "sksp0393" - ori v1, v1, L710 ;; "sksp0393" - daddu a1, v1, fp - or a2, s7, r0 ;; [ 32] (set! a2-3 #f) [] -> [a2: '#f ] - lw a3, *entity-pool*(s7) ;; [ 33] (set! a3-2 *entity-pool*) [] -> [a3: process-tree ] - addiu t0, r0, 0 ;; [ 34] (set! t0-2 0) [] -> [t0: ] - jalr ra, t9 ;; [ 35] (call! a0-7 a1-3 a2-3 a3-2 t0-2) - ;; [a0: a1: a2: '#f a3: process-tree t0: t9: (function game-text-id string entity process-tree game-task none) ] -> [v0: none ] - sll v0, ra, 0 + dsllv s5, v1, a0 ;; [ 9] (set! s5 (sll v1 a0)) - lw t9, level-hint-spawn(s7);; [ 36] (set! t9-4 level-hint-spawn) - ;; [] -> [t9: (function game-text-id string entity process-tree game-task none) ] - addiu a0, r0, 2061 ;; [ 37] (set! a0-8 2061) [] -> [a0: ] - lui v1, L709 ;; [ 38] (set! a1-4 L709) [] -> [a1: ] "sksp0388" - ori v1, v1, L709 ;; "sksp0388" - daddu a1, v1, fp - or a2, s7, r0 ;; [ 39] (set! a2-4 #f) [] -> [a2: '#f ] - lw a3, *entity-pool*(s7) ;; [ 40] (set! a3-3 *entity-pool*) [] -> [a3: process-tree ] - addiu t0, r0, 0 ;; [ 41] (set! t0-3 0) [] -> [t0: ] - jalr ra, t9 ;; [ 42] (call! a0-8 a1-4 a2-4 a3-3 t0-3) - ;; [a0: a1: a2: '#f a3: process-tree t0: t9: (function game-text-id string entity process-tree game-task none) ] -> [v0: none ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 43] (set! v1-6 v0-4) [v0: none ] -> [v1: none ] B3: -L353: - lw t9, enter-state(s7) ;; [ 44] (set! t9-5 enter-state) [] -> [t9: ] - lwu v1, 108(s6) ;; [ 45] (set! v1-7 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld a0, 2428(v1) ;; [ 46] (set! a0-9 (l.d (+ v1-7 2428))) [v1: control-info ] -> [a0: int ] - lwu v1, 108(s6) ;; [ 47] (set! v1-8 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld a1, 2436(v1) ;; [ 48] (set! a1-5 (l.d (+ v1-8 2436))) [v1: control-info ] -> [a1: int ] - lwu v1, 108(s6) ;; [ 49] (set! v1-9 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a2, v1, 2220 ;; [ 50] (set! a2-5 (+ v1-9 2220)) [v1: control-info ] -> [a2: vector ] - lwu v1, 108(s6) ;; [ 51] (set! v1-10 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 2444(v1) ;; [ 52] (set! v1-11 (l.d (+ v1-10 2444))) [v1: control-info ] -> [v1: vector ] - lq v1, 0(v1) ;; [ 53] (set! (the-as vector v1-12) (l.q v1-11)) [v1: vector ] -> [v1: uint128 ] - sq v1, 0(a2) ;; [ 54] (s.q! a2-5 v1-12) [v1: uint128 a2: vector ] -> [] - lwu v1, 108(s6) ;; [ 55] (set! v1-13 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld a3, 2452(v1) ;; [ 56] (set! a3-4 (l.d (+ v1-13 2452))) [v1: control-info ] -> [a3: int ] - lw v1, target-launch(s7) ;; [ 57] (set! v1-14 target-launch) [] -> [v1: (state float symbol vector int target) ] - sw v1, 72(s6) ;; [ 58] (s.w! (+ self 72) v1-14) - ;; [v1: (state float symbol vector int target) s6: target ] -> [] - jalr ra, t9 ;; [ 59] (call! a0-9 a1-5 a2-5 a3-4) - ;; [a0: int a1: int a2: vector a3: int t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 60] (set! v1-15 v0-5) [v0: object ] -> [v1: object ] + dsubu a0, r0, a0 ;; [ 10] (set! a0 (- a0)) + dsrav s5, v1, a0 ;; [ 11] (set! s5 (sra v1 a0)) B4: -L354: - lw v1, *display*(s7) ;; [ 61] (set! v1-16 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 62] (set! v1-17 (l.d (+ v1-16 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 63] (s.d! (+ self 164) v1-17) [v1: time-frame s6: target ] -> [] - lw s3, sound-play-by-name(s7);; [ 64] (set! s3-0 sound-play-by-name) - ;; [] -> [s3: (function sound-name sound-id int int int sound-group symbol sound-id) ] - lui v1, 28781 ;; [ 65] (set! v1-18 #x706d756a) [] -> [v1: ] - ori v1, v1, 30058 - pcpyld s2, r0, v1 ;; [ 66] (set! s2-0 (pcypld 0 v1-18)) [v1: ] -> [s2: uint ] - lw t9, new-sound-id(s7) ;; [ 67] (set! t9-6 new-sound-id) [] -> [t9: (function sound-id) ] - jalr ra, t9 ;; [ 68] (call!) [t9: (function sound-id) ] -> [v0: sound-id ] +L62: + daddiu s4, sp, 16 ;; [ 12] (set! s4 (+ sp 16)) + mtc1 f0, r0 ;; [ 13] (set! f0 0) + mtc1 f0, r0 ;; [ 14] (set! f0 0) + lw t9, vector-z-quaternion!(s7);; [ 15] (set! t9 vector-z-quaternion!) + or a0, s4, r0 ;; [ 16] (set! a0 s4) + lwu v1, 124(gp) ;; [ 17] (set! v1 (l.wu (+ gp 124))) + daddiu a1, v1, 28 ;; [ 18] (set! a1 (+ v1 28)) + jalr ra, t9 ;; [ 19] (call!) sll v0, ra, 0 - or a1, v0, r0 ;; [ 69] (set! a1-6 v0-6) [v0: sound-id ] -> [a1: sound-id ] - addiu a2, r0, 716 ;; [ 70] (set! a2-6 716) [] -> [a2: ] - addiu a3, r0, 0 ;; [ 71] (set! a3-5 0) [] -> [a3: ] - addiu t0, r0, 0 ;; [ 72] (set! t0-4 0) [] -> [t0: ] - addiu t1, r0, 1 ;; [ 73] (set! t1-0 1) [] -> [t1: ] - daddiu t2, s7, #t ;; [ 74] (set! t2-0 #t) [] -> [t2: symbol ] - or t9, s3, r0 ;; [ 75] (set! t9-7 s3-0) - ;; [s3: (function sound-name sound-id int int int sound-group symbol sound-id) ] -> [t9: (function sound-name sound-id int int int sound-group symbol sound-id) ] - por a0, s2, r0 ;; [ 76] (set! a0-10 s2-0) [s2: uint ] -> [a0: uint ] - jalr ra, t9 ;; [ 77] (call! a0-10 a1-6 a2-6 a3-5 t0-4 t1-0 t2-0) - ;; [a0: uint a1: sound-id a2: a3: t0: t1: t2: symbol t9: (function sound-name sound-id int int int sound-group symbol sound-id) ] -> [v0: sound-id ] + lw t9, atan(s7) ;; [ 20] (set! t9 atan) + lwc1 f0, 0(s4) ;; [ 21] (set! f0 (l.f s4)) + mfc1 a0, f0 ;; [ 22] (set! a0 (fpr->gpr f0)) + lwc1 f0, 8(s4) ;; [ 23] (set! f0 (l.f (+ s4 8))) + mfc1 a1, f0 ;; [ 24] (set! a1 (fpr->gpr f0)) + jalr ra, t9 ;; [ 25] (call!) sll v0, ra, 0 - lw t9, init-var-jump(s7) ;; [ 78] (set! t9-8 init-var-jump) - ;; [] -> [t9: (function float float vector vector vector vector :behavior target) ] - daddiu a2, s7, #t ;; [ 79] (set! a2-7 #t) [] -> [a2: symbol ] - daddiu a3, s7, #t ;; [ 80] (set! a3-6 #t) [] -> [a3: symbol ] - lwu v1, 108(s6) ;; [ 81] (set! v1-19 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu t0, v1, 60 ;; [ 82] (set! t0-5 (+ v1-19 60)) [v1: control-info ] -> [t0: vector ] - or a0, s5, r0 ;; [ 83] (set! a0-11 arg0) [s5: float ] -> [a0: float ] - or a1, s4, r0 ;; [ 84] (set! a1-7 arg1) [s4: float ] -> [a1: float ] - jalr ra, t9 ;; [ 85] (call! a0-11 a1-7 a2-7 a3-6 t0-5) - ;; [a0: float a1: float a2: symbol a3: symbol t0: vector t9: (function float float vector vector vector vector :behavior target) ] -> [v0: vector ] + mtc1 f30, v0 ;; [ 26] (set! f30 (gpr->fpr v0)) + or a0, gp, r0 ;; [ 27] (set! a0 gp) + lwu v1, -4(a0) ;; [ 28] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 216(v1) ;; [ 29] (set! t9 (l.wu (+ v1 216))) + or a1, s4, r0 ;; [ 30] (set! a1 s4) + jalr ra, t9 ;; [ 31] (call!) sll v0, ra, 0 - addiu v1, r0, -8 ;; [ 86] (set! v1-20 -8) [] -> [v1: ] - lwu a0, 108(s6) ;; [ 87] (set! a0-12 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 268(a0) ;; [ 88] (set! a0-13 (l.d (+ a0-12 268))) [a0: control-info ] -> [a0: cshape-moving-flags ] - and v1, v1, a0 ;; [ 89] (set! v1-21 (logand v1-20 a0-13)) - ;; [v1: a0: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - lwu a0, 108(s6) ;; [ 90] (set! a0-14 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 268(a0) ;; [ 91] (s.d! (+ a0-14 268) v1-21) [v1: cshape-moving-flags a0: control-info ] -> [] - beq s7, gp, L355 ;; [ 92] (b! (not arg2) L355 (nop!)) [gp: surface ] -> [] + or v1, v0, r0 ;; [ 32] (set! v1 v0) + lw t9, atan(s7) ;; [ 33] (set! t9 atan) + lwc1 f0, 0(s4) ;; [ 34] (set! f0 (l.f s4)) + mfc1 a0, f0 ;; [ 35] (set! a0 (fpr->gpr f0)) + lwc1 f0, 8(s4) ;; [ 36] (set! f0 (l.f (+ s4 8))) + mfc1 a1, f0 ;; [ 37] (set! a1 (fpr->gpr f0)) + jalr ra, t9 ;; [ 38] (call!) + sll v0, ra, 0 + + mtc1 f0, v0 ;; [ 39] (set! f0 (gpr->fpr v0)) + lw t9, deg-(s7) ;; [ 40] (set! t9 deg-) + mfc1 a0, f0 ;; [ 41] (set! a0 (fpr->gpr f0)) + mfc1 a1, f30 ;; [ 42] (set! a1 (fpr->gpr f30)) + jalr ra, t9 ;; [ 43] (call!) + sll v0, ra, 0 + + mtc1 f0, v0 ;; [ 44] (set! f0 (gpr->fpr v0)) + abs.s f0, f0 ;; [ 45] (set! f0 (abs.s f0)) + lui v1, 18048 ;; [ 46] (set! v1 #x46800000) + mtc1 f1, v1 ;; [ 47] (set! f1 (gpr->fpr v1)) + c.lt.s f1, f0 ;; [ 48] (b! (<.s f1 f0) L63 (nop!)) + bc1t L63 sll r0, r0, 0 B5: - beq r0, r0, L356 ;; [ 93] (b! #t L356 (nop!)) [] -> [] + ori a2, s5, 7 ;; [ 49] (set! a2 (logior s5 7)) + or v1, a2, r0 ;; [ 50] (set! v1 a2) + beq r0, r0, L64 ;; [ 51] (b! #t L64 (nop!)) sll r0, r0, 0 B6: -L355: - lw gp, *jump-mods*(s7) ;; [ 94] (set! arg2 *jump-mods*) [] -> [gp: surface ] +L63: + ori a2, s5, 56 ;; [ 52] (set! a2 (logior s5 56)) + or v1, a2, r0 ;; [ 53] (set! v1 a2) B7: -L356: - lwu v1, 108(s6) ;; [ 95] (set! v1-22 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw gp, 656(v1) ;; [ 96] (s.w! (+ v1-22 656) arg2) [v1: control-info gp: surface ] -> [] - mtc1 f0, r0 ;; [ 97] (set! f0-0 0) [] -> [] - lui v1, L786 ;; [ 98] (set! v1-23 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 99] (set! f1-0 (l.f v1-23)) [v1: ] -> [] - lui v1, L788 ;; [100] (set! v1-24 L788) [] -> [v1: ] - ori v1, v1, L788 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [101] (set! f2-0 (l.f v1-24)) [v1: ] -> [] - lui v1, L774 ;; [102] (set! v1-25 L774) [] -> [v1: ] - ori v1, v1, L774 - addu v1, fp, v1 - lwc1 f3, 0(v1) ;; [103] (set! f3-0 (l.f v1-25)) [v1: ] -> [] - lwu v1, 108(s6) ;; [104] (set! v1-26 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f4, 528(v1) ;; [105] (set! f4-0 (l.f (+ v1-26 528))) [v1: control-info ] -> [] - add.s f3, f3, f4 ;; [106] (set! f3-1 (+.s f3-0 f4-0)) [] -> [] - mul.s f2, f2, f3 ;; [107] (set! f2-1 (*.s f2-0 f3-1)) [] -> [] - min.s f1, f1, f2 ;; [108] (set! f1-1 (min.s f1-0 f2-1)) [] -> [] - max.s f0, f0, f1 ;; [109] (set! f0-1 (max.s f0-0 f1-1)) [] -> [] - lwu v1, 108(s6) ;; [110] (set! v1-27 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2196(v1) ;; [111] (s.f! (+ v1-27 2196) f0-1) [v1: control-info ] -> [] - mtc1 f0, r0 ;; [112] (set! f0-2 0) [] -> [] - lui v1, L786 ;; [113] (set! v1-28 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [114] (set! f1-2 (l.f v1-28)) [v1: ] -> [] - lui v1, L759 ;; [115] (set! v1-29 L759) [] -> [v1: ] - ori v1, v1, L759 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [116] (set! f2-2 (l.f v1-29)) [v1: ] -> [] - lui v1, L792 ;; [117] (set! v1-30 L792) [] -> [v1: ] - ori v1, v1, L792 - addu v1, fp, v1 - lwc1 f3, 0(v1) ;; [118] (set! f3-2 (l.f v1-30)) [v1: ] -> [] - lwu v1, 108(s6) ;; [119] (set! v1-31 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f4, 528(v1) ;; [120] (set! f4-1 (l.f (+ v1-31 528))) [v1: control-info ] -> [] - add.s f3, f3, f4 ;; [121] (set! f3-3 (+.s f3-2 f4-1)) [] -> [] - mul.s f2, f2, f3 ;; [122] (set! f2-3 (*.s f2-2 f3-3)) [] -> [] - min.s f1, f1, f2 ;; [123] (set! f1-3 (min.s f1-2 f2-3)) [] -> [] - max.s f0, f0, f1 ;; [124] (set! f0-3 (max.s f0-2 f1-3)) [] -> [] - lwu v1, 108(s6) ;; [125] (set! v1-32 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2192(v1) ;; [126] (s.f! (+ v1-32 2192) f0-3) [v1: control-info ] -> [] - mfc1 v0, f0 ;; [127] (set! v0-9 (fpr->gpr f0-3)) [] -> [v0: float ] +L64: + or a0, gp, r0 ;; [ 54] (set! a0 gp) + lwu v1, -4(a0) ;; [ 55] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 496(v1) ;; [ 56] (set! t9 (l.wu (+ v1 496))) + addiu a1, r0, 6 ;; [ 57] (set! a1 6) + jalr ra, t9 ;; [ 58] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 59] (set! v1 v0) + lw a0, *ashelin-global-info*(s7);; [ 60] (set! a0 *ashelin-global-info*) + dsll a1, v1, 2 ;; [ 61] (set! a1 (sll v1 2)) + daddu a0, a0, a1 ;; [ 62] (set! a0 (+ a0 a1)) + lw a0, 4(a0) ;; [ 63] (set! a0 (l.w (+ a0 4))) + dsll a0, a0, 2 ;; [ 64] (set! a0 (sll a0 2)) + lwu a1, 132(gp) ;; [ 65] (set! a1 (l.wu (+ gp 132))) + lwu a1, 8(a1) ;; [ 66] (set! a1 (l.wu (+ a1 8))) + daddu a0, a0, a1 ;; [ 67] (set! a0 (+ a0 a1)) + lwu s5, 28(a0) ;; [ 68] (set! s5 (l.wu (+ a0 28))) + lw a0, *ashelin-global-info*(s7);; [ 69] (set! a0 *ashelin-global-info*) + sb v1, 0(a0) ;; [ 70] (s.b! a0 v1) + lwu v1, 136(gp) ;; [ 71] (set! v1 (l.wu (+ gp 136))) + lbu v1, 3(v1) ;; [ 72] (set! v1 (l.bu (+ v1 3))) + sltu v1, r0, v1 ;; [ 73] (b! (<=0.ui v1) L65 (set! v1 #f)) + beq v1, r0, L65 + or v1, s7, r0 + +B8: + lwu v1, 136(gp) ;; [ 74] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [ 75] (set! v1 (l.wu (+ v1 12))) + lwu v1, 4(v1) ;; [ 76] (set! v1 (l.wu (+ v1 4))) +B9: +L65: + beql s7, v1, L66 ;; [ 77] (bl! (not v1) L66 (no-delay!)) +B10: + or a0, v1, r0 ;; [ 78] (set! a0 v1) + +B11: + lwu a0, 132(gp) ;; [ 79] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 80] (set! a0 (l.wu (+ a0 8))) + lwu a0, 92(a0) ;; [ 81] (set! a0 (l.wu (+ a0 92))) + dsubu a0, v1, a0 ;; [ 82] (set! a1 (= v1 a0)) + daddiu a1, s7, 4 + movn a1, s7, a0 + bnel s7, a1, L66 ;; [ 83] (bl! (truthy a1) L66 (no-delay!)) +B12: + or a0, a1, r0 ;; [ 84] (set! a0 a1) + +B13: + lwu a0, 132(gp) ;; [ 85] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 86] (set! a0 (l.wu (+ a0 8))) + lwu a0, 96(a0) ;; [ 87] (set! a0 (l.wu (+ a0 96))) + dsubu a0, v1, a0 ;; [ 88] (set! a1 (= v1 a0)) + daddiu a1, s7, 4 + movn a1, s7, a0 + bnel s7, a1, L66 ;; [ 89] (bl! (truthy a1) L66 (no-delay!)) +B14: + or a0, a1, r0 ;; [ 90] (set! a0 a1) + +B15: + lwu a0, 132(gp) ;; [ 91] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 92] (set! a0 (l.wu (+ a0 8))) + lwu a0, 100(a0) ;; [ 93] (set! a0 (l.wu (+ a0 100))) + dsubu a0, v1, a0 ;; [ 94] (set! a1 (= v1 a0)) + daddiu a1, s7, 4 + movn a1, s7, a0 + bnel s7, a1, L66 ;; [ 95] (bl! (truthy a1) L66 (no-delay!)) +B16: + or a0, a1, r0 ;; [ 96] (set! a0 a1) + +B17: + lwu a0, 132(gp) ;; [ 97] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 98] (set! a0 (l.wu (+ a0 8))) + lwu a0, 116(a0) ;; [ 99] (set! a0 (l.wu (+ a0 116))) + dsubu a0, v1, a0 ;; [100] (set! a1 (= v1 a0)) + daddiu a1, s7, 4 + movn a1, s7, a0 + bnel s7, a1, L66 ;; [101] (bl! (truthy a1) L66 (no-delay!)) +B18: + or a0, a1, r0 ;; [102] (set! a0 a1) + +B19: + lwu a0, 132(gp) ;; [103] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [104] (set! a0 (l.wu (+ a0 8))) + lwu a0, 120(a0) ;; [105] (set! a0 (l.wu (+ a0 120))) + dsubu a0, v1, a0 ;; [106] (set! a1 (= v1 a0)) + daddiu a1, s7, 4 + movn a1, s7, a0 + bnel s7, a1, L66 ;; [107] (bl! (truthy a1) L66 (no-delay!)) +B20: + or a0, a1, r0 ;; [108] (set! a0 a1) + +B21: + lwu a0, 132(gp) ;; [109] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [110] (set! a0 (l.wu (+ a0 8))) + lwu a0, 124(a0) ;; [111] (set! a0 (l.wu (+ a0 124))) + dsubu v1, v1, a0 ;; [112] (set! a0 (= v1 a0)) + daddiu a0, s7, 4 + movn a0, s7, v1 +B22: +L66: + beq s7, a0, L67 ;; [113] (b! (not a0) L67 (nop!)) + sll r0, r0, 0 + +B23: + lw t9, ja-channel-push!(s7);; [114] (set! t9 ja-channel-push!) + addiu a0, r0, 1 ;; [115] (set! a0 1) + addiu a1, r0, 51 ;; [116] (set! a1 51) + jalr ra, t9 ;; [117] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [118] (set! v1 v0) + beq r0, r0, L68 ;; [119] (b! #t L68 (nop!)) + sll r0, r0, 0 + +B24: +L67: + lw t9, ja-channel-push!(s7);; [120] (set! t9 ja-channel-push!) + addiu a0, r0, 1 ;; [121] (set! a0 1) + addiu a1, r0, 6 ;; [122] (set! a1 6) + jalr ra, t9 ;; [123] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [124] (set! v1 v0) +B25: +L68: + lwu v1, 136(gp) ;; [125] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [126] (set! v1 (l.wu (+ v1 12))) + daddu a0, r0, v1 ;; [127] (set! a0 (+ v1 0)) + sw s5, 4(a0) ;; [128] (s.w! (+ a0 4) s5) + lwu v1, 40(s5) ;; [129] (set! v1 (l.wu (+ s5 40))) + lhu v1, 0(v1) ;; [130] (set! v1 (l.hu v1)) + daddiu v1, v1, -1 ;; [131] (set! v1 (+ v1 -1)) + mtc1 f0, v1 ;; [132] (set! f0 (gpr->fpr v1)) + cvt.s.w f0, f0 ;; [133] (set! f0 (i2f f0)) + swc1 f0, 20(a0) ;; [134] (s.f! (+ a0 20) f0) + lui v1, 16256 ;; [135] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [136] (set! f0 (gpr->fpr v1)) + swc1 f0, 24(a0) ;; [137] (s.f! (+ a0 24) f0) + mtc1 f0, r0 ;; [138] (set! f0 0) + swc1 f0, 8(a0) ;; [139] (s.f! (+ a0 8) f0) + lw t9, joint-control-channel-group!(s7);; [140] (set! t9 joint-control-channel-group!) + lw a2, num-func-seek!(s7) ;; [141] (set! a2 num-func-seek!) + or a1, s5, r0 ;; [142] (set! a1 s5) + jalr ra, t9 ;; [143] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [144] (set! v1 v0) + daddiu v0, s7, #t ;; [145] (set! v0 #t) + beq r0, r0, L70 ;; [146] (b! #t L70 (nop!)) + sll r0, r0, 0 + +B26: +L69: + lw t9, ja-channel-push!(s7);; [147] (set! t9 ja-channel-push!) + addiu a0, r0, 1 ;; [148] (set! a0 1) + addiu a1, r0, 9 ;; [149] (set! a1 9) + jalr ra, t9 ;; [150] (call!) + sll v0, ra, 0 + + lwu v1, 136(gp) ;; [151] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [152] (set! v1 (l.wu (+ v1 12))) + daddu a0, r0, v1 ;; [153] (set! a0 (+ v1 0)) + lwu v1, 988(gp) ;; [154] (set! v1 (l.wu (+ gp 988))) + sw v1, 4(a0) ;; [155] (s.w! (+ a0 4) v1) + lwu v1, 988(gp) ;; [156] (set! v1 (l.wu (+ gp 988))) + lwu v1, 40(v1) ;; [157] (set! v1 (l.wu (+ v1 40))) + lhu v1, 0(v1) ;; [158] (set! v1 (l.hu v1)) + daddiu v1, v1, -1 ;; [159] (set! v1 (+ v1 -1)) + mtc1 f0, v1 ;; [160] (set! f0 (gpr->fpr v1)) + cvt.s.w f0, f0 ;; [161] (set! f0 (i2f f0)) + swc1 f0, 20(a0) ;; [162] (s.f! (+ a0 20) f0) + lwc1 f0, 0(s5) ;; [163] (set! f0 (l.f s5)) + swc1 f0, 24(a0) ;; [164] (s.f! (+ a0 24) f0) + mtc1 f0, r0 ;; [165] (set! f0 0) + swc1 f0, 8(a0) ;; [166] (s.f! (+ a0 8) f0) + lw t9, joint-control-channel-group!(s7);; [167] (set! t9 joint-control-channel-group!) + lwu a1, 988(gp) ;; [168] (set! a1 (l.wu (+ gp 988))) + lw a2, num-func-seek!(s7) ;; [169] (set! a2 num-func-seek!) + jalr ra, t9 ;; [170] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [171] (set! v1 v0) + daddiu v0, s7, #t ;; [172] (set! v0 #t) +B27: +L70: ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 80(sp) - lq s5, 64(sp) - lq s4, 48(sp) - lq s3, 32(sp) - lq s2, 16(sp) + lwc1 f30, 80(sp) + lq gp, 64(sp) + lq s5, 48(sp) + lq s4, 32(sp) jr ra daddiu sp, sp, 96 @@ -17197,2733 +3804,2500 @@ L356: sll r0, r0, 0 sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-jump) - ((arg0 float) (arg1 float) (arg2 surface)) - (when (= (-> self control unknown-symbol40) 'launch) - (level-hint-spawn - (game-text-id sidekick-launcher1) - "sksp009d" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - (level-hint-spawn - (game-text-id sidekick-launcher2) - "sksp009e" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - (case (-> (level-get-target-inside *level*) name) - (('citadel) - (level-hint-spawn - (game-text-id citadel-launcher2) - "sksp0393" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - (level-hint-spawn - (game-text-id citadel-launcher) - "sksp0388" - (the-as entity #f) - *entity-pool* - (game-task none) - ) - ) - ) - enter-state - (let ((a0-9 (-> self control unknown-dword60)) - (a1-5 (-> self control unknown-dword61)) - (a2-5 (-> self control unknown-vector102)) - ) - (set! (-> a2-5 quad) (-> (the-as vector (-> self control unknown-dword62)) quad)) - (go target-launch (the-as float a0-9) (the-as symbol a1-5) a2-5 (-> self control unknown-dword63)) - ) - ) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (sound-play "jump" :vol 70) - (init-var-jump arg0 arg1 (the-as vector #t) (the-as vector #t) (-> self control transv)) - (logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf)) - (set! arg2 (cond - (arg2 - (empty) - arg2 - ) - (else - *jump-mods* - ) - ) - ) - (set! (-> self control unknown-surface00) arg2) - (set! (-> self control unknown-float123) - (fmax 0.0 (fmin 1.0 (* 0.00004359654 (+ -11468.8 (-> self control unknown-float01))))) - ) - (set! (-> self control unknown-float122) - (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control unknown-float01))))) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - + (set! gp a0) + (set! s5 a1) + (set! v1 (l.bu (+ gp 416))) + (set! a0 6) + (b! (!= v1 a0) L69 (nop!)) + (set! v1 1) + (set! a0 *ashelin-global-info*) + (set! a0 (l.b a0)) + (bl! (>=0.si a0) L62 (no-delay!)) + (set! s5 (sll v1 a0)) + (set! a0 (- a0)) + (set! s5 (sra v1 a0)) +(label L62) + (set! s4 (+ sp 16)) + (set! f0 0) + (set! f0 0) + (set! t9 vector-z-quaternion!) + (set! a0 s4) + (set! v1 (l.wu (+ gp 124))) + (set! a1 (+ v1 28)) + (call!) + (set! t9 atan) + (set! f0 (l.f s4)) + (set! a0 (fpr->gpr f0)) + (set! f0 (l.f (+ s4 8))) + (set! a1 (fpr->gpr f0)) + (call!) + (set! f30 (gpr->fpr v0)) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 216))) + (set! a1 s4) + (call!) + (set! v1 v0) + (set! t9 atan) + (set! f0 (l.f s4)) + (set! a0 (fpr->gpr f0)) + (set! f0 (l.f (+ s4 8))) + (set! a1 (fpr->gpr f0)) + (call!) + (set! f0 (gpr->fpr v0)) + (set! t9 deg-) + (set! a0 (fpr->gpr f0)) + (set! a1 (fpr->gpr f30)) + (call!) + (set! f0 (gpr->fpr v0)) + (set! f0 (abs.s f0)) + (set! v1 #x46800000) + (set! f1 (gpr->fpr v1)) + (b! (<.s f1 f0) L63 (nop!)) + (set! a2 (logior s5 7)) + (set! v1 a2) + (b! #t L64 (nop!)) +(label L63) + (set! a2 (logior s5 56)) + (set! v1 a2) +(label L64) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 496))) + (set! a1 6) + (call!) + (set! v1 v0) + (set! a0 *ashelin-global-info*) + (set! a1 (sll v1 2)) + (set! a0 (+ a0 a1)) + (set! a0 (l.w (+ a0 4))) + (set! a0 (sll a0 2)) + (set! a1 (l.wu (+ gp 132))) + (set! a1 (l.wu (+ a1 8))) + (set! a0 (+ a0 a1)) + (set! s5 (l.wu (+ a0 28))) + (set! a0 *ashelin-global-info*) + (s.b! a0 v1) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.bu (+ v1 3))) + (b! (<=0.ui v1) L65 (set! v1 #f)) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! v1 (l.wu (+ v1 4))) +(label L65) + (bl! (not v1) L66 (no-delay!)) + (set! a0 v1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 92))) + (set! a1 (= v1 a0)) + (bl! (truthy a1) L66 (no-delay!)) + (set! a0 a1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 96))) + (set! a1 (= v1 a0)) + (bl! (truthy a1) L66 (no-delay!)) + (set! a0 a1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 100))) + (set! a1 (= v1 a0)) + (bl! (truthy a1) L66 (no-delay!)) + (set! a0 a1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 116))) + (set! a1 (= v1 a0)) + (bl! (truthy a1) L66 (no-delay!)) + (set! a0 a1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 120))) + (set! a1 (= v1 a0)) + (bl! (truthy a1) L66 (no-delay!)) + (set! a0 a1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 124))) + (set! a0 (= v1 a0)) +(label L66) + (b! (not a0) L67 (nop!)) + (set! t9 ja-channel-push!) + (set! a0 1) + (set! a1 51) + (call!) + (set! v1 v0) + (b! #t L68 (nop!)) +(label L67) + (set! t9 ja-channel-push!) + (set! a0 1) + (set! a1 6) + (call!) + (set! v1 v0) +(label L68) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 0)) + (s.w! (+ a0 4) s5) + (set! v1 (l.wu (+ s5 40))) + (set! v1 (l.hu v1)) + (set! v1 (+ v1 -1)) + (set! f0 (gpr->fpr v1)) + (set! f0 (i2f f0)) + (s.f! (+ a0 20) f0) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ a0 24) f0) + (set! f0 0) + (s.f! (+ a0 8) f0) + (set! t9 joint-control-channel-group!) + (set! a2 num-func-seek!) + (set! a1 s5) + (call!) + (set! v1 v0) + (set! v0 #t) + (b! #t L70 (nop!)) +(label L69) + (set! t9 ja-channel-push!) + (set! a0 1) + (set! a1 9) + (call!) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 0)) + (set! v1 (l.wu (+ gp 988))) + (s.w! (+ a0 4) v1) + (set! v1 (l.wu (+ gp 988))) + (set! v1 (l.wu (+ v1 40))) + (set! v1 (l.hu v1)) + (set! v1 (+ v1 -1)) + (set! f0 (gpr->fpr v1)) + (set! f0 (i2f f0)) + (s.f! (+ a0 20) f0) + (set! f0 (l.f s5)) + (s.f! (+ a0 24) f0) + (set! f0 0) + (s.f! (+ a0 8) f0) + (set! t9 joint-control-channel-group!) + (set! a1 (l.wu (+ gp 988))) + (set! a2 num-func-seek!) + (call!) + (set! v1 v0) + (set! v0 #t) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-duck-walk) +; .function (method 51 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x20, fp? 1 ra? 1 ep? 1 - ;gprs: gp -;; s6-0: target -L357: - daddiu sp, sp, -32 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq gp, 16(sp) -B0: - lwu v1, 120(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 1] (set! v1-1 (l.w (+ v1-0 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 2] (b! (<=0.si v1-1) L358 (set! v1-2 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L358 - or v1, s7, r0 - -B1: - lwu v1, 120(s6) ;; [ 3] (set! v1-3 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 4] (set! v1-4 (l.wu (+ v1-3 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 5] (set! v1-2 (l.wu (+ v1-4 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B2: -L358: - lwu a0, 116(s6) ;; [ 6] (set! a0-0 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 7] (set! a0-1 (l.wu (+ a0-0 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 156(a0) ;; [ 8] (set! a0-2 (l.wu (+ a0-1 156))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 9] (set! a0-3 (= v1-2 a0-2)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L359 ;; [ 10] (bl! (not a0-3) L359 (no-delay!)) [a0: symbol ] -> [] -B3: - or v1, a0, r0 ;; [ 11] (set! v1-5 a0-3) [a0: symbol ] -> [v1: symbol ] - -B4: - lwu v1, 120(s6) ;; [ 12] (set! v1-6 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 13] (set! v1-7 (l.wu (+ v1-6 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu v1, r0, v1 ;; [ 14] (set! v1-8 (+ v1-7 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - lwu a0, 120(s6) ;; [ 15] (set! a0-4 (l.wu (+ self 120))) [s6: target ] -> [a0: joint-control ] - daddiu a0, a0, 44 ;; [ 16] (set! a0-5 (+ a0-4 44)) - ;; [a0: joint-control ] -> [a0: (inline-array joint-control-channel) ] - dsubu a0, v1, a0 ;; [ 17] (set! v1-5 (= v1-8 a0-5)) - ;; [v1: joint-control-channel a0: (inline-array joint-control-channel) ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B5: -L359: - beq s7, v1, L360 ;; [ 18] (b! (not v1-5) L360 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B6: - or v1, s7, r0 ;; [ 19] (set! v1-9 #f) [] -> [v1: '#f ] - beq r0, r0, L363 ;; [ 20] (b! #t L363 (nop!)) [] -> [] - sll r0, r0, 0 - -B7: -L360: - lwu v1, 120(s6) ;; [ 21] (set! v1-10 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 22] (set! v1-11 (l.w (+ v1-10 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 23] (b! (<=0.si v1-11) L361 (set! v1-12 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L361 - or v1, s7, r0 - -B8: - lwu v1, 120(s6) ;; [ 24] (set! v1-13 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 25] (set! v1-14 (l.wu (+ v1-13 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 26] (set! v1-12 (l.wu (+ v1-14 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B9: -L361: - lwu a0, 116(s6) ;; [ 27] (set! a0-6 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 28] (set! a0-7 (l.wu (+ a0-6 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 152(a0) ;; [ 29] (set! a0-8 (l.wu (+ a0-7 152))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 30] (set! a0-9 (= v1-12 a0-8)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L362 ;; [ 31] (b! (not a0-9) L362 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B10: - lw t9, ja-channel-push!(s7);; [ 32] (set! t9-0 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 33] (set! a0-10 1) [] -> [a0: ] - addiu a1, r0, 135 ;; [ 34] (set! a1-0 135) [] -> [a1: ] - jalr ra, t9 ;; [ 35] (call! a0-10 a1-0) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 36] (set! v1-15 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 37] (set! v1-16 (l.wu (+ v1-15 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [ 38] (set! gp-0 (+ v1-16 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lw t9, joint-control-channel-group-eval!(s7);; [ 39] (set! t9-1 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, gp, r0 ;; [ 40] (set! a0-11 gp-0) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 41] (set! v1-17 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 42] (set! v1-18 (l.wu (+ v1-17 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 156(v1) ;; [ 43] (set! a1-1 (l.wu (+ v1-18 156))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [ 44] (set! a2-0 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 45] (call! a0-11 a1-1 a2-0) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [ 46] (set! f0-0 0) [] -> [] - swc1 f0, 16(gp) ;; [ 47] (s.f! (+ gp-0 16) f0-0) [gp: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [ 48] (set! v1-19 (fpr->gpr f0-0)) [] -> [v1: float ] - beq r0, r0, L363 ;; [ 49] (b! #t L363 (nop!)) [] -> [] - sll r0, r0, 0 - -B11: -L362: - lw t9, ja-channel-push!(s7);; [ 50] (set! t9-2 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 51] (set! a0-12 1) [] -> [a0: ] - addiu a1, r0, 30 ;; [ 52] (set! a1-2 30) [] -> [a1: ] - jalr ra, t9 ;; [ 53] (call! a0-12 a1-2) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 54] (set! v1-20 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 55] (set! v1-21 (l.wu (+ v1-20 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [ 56] (set! gp-1 (+ v1-21 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lw t9, joint-control-channel-group-eval!(s7);; [ 57] (set! t9-3 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, gp, r0 ;; [ 58] (set! a0-13 gp-1) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 59] (set! v1-22 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 60] (set! v1-23 (l.wu (+ v1-22 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 156(v1) ;; [ 61] (set! a1-3 (l.wu (+ v1-23 156))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [ 62] (set! a2-1 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 63] (call! a0-13 a1-3 a2-1) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [ 64] (set! f0-1 0) [] -> [] - swc1 f0, 16(gp) ;; [ 65] (s.f! (+ gp-1 16) f0-1) [gp: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [ 66] (set! v1-24 (fpr->gpr f0-1)) [] -> [v1: float ] -B12: -L363: - lwu v1, 120(s6) ;; [ 67] (set! v1-25 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - daddiu v1, v1, 44 ;; [ 68] (set! v1-26 (+ v1-25 44)) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu a0, 120(s6) ;; [ 69] (set! a0-14 (l.wu (+ self 120))) [s6: target ] -> [a0: joint-control ] - lwu a0, 12(a0) ;; [ 70] (set! a0-15 (l.wu (+ a0-14 12))) - ;; [a0: joint-control ] -> [a0: (inline-array joint-control-channel) ] - daddu a0, r0, a0 ;; [ 71] (set! a0-16 (+ a0-15 0)) - ;; [a0: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - bne a0, v1, L364 ;; [ 72] (b! (!= a0-16 v1-26) L364 (set! v1-27 #f)) - ;; [v1: (inline-array joint-control-channel) a0: joint-control-channel ] -> [v1: '#f ] - or v1, s7, r0 - -B13: - lw a0, *duck-mods*(s7) ;; [ 73] (set! a0-17 *duck-mods*) [] -> [a0: surface ] - lwu v1, 108(s6) ;; [ 74] (set! v1-28 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw a0, 656(v1) ;; [ 75] (s.w! (+ v1-28 656) a0-17) [v1: control-info a0: surface ] -> [] -B14: -L364: - lwu v1, 120(s6) ;; [ 76] (set! v1-29 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 77] (set! v1-30 (l.wu (+ v1-29 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 78] (set! a0-18 (+ v1-30 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lui v1, L786 ;; [ 79] (set! v1-31 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 80] (set! f0-2 (l.f v1-31)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 81] (set! v1-32 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 528(v1) ;; [ 82] (set! f1-0 (l.f (+ v1-32 528))) [v1: control-info ] -> [] - lui v1, L789 ;; [ 83] (set! v1-33 L789) [] -> [v1: ] - ori v1, v1, L789 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [ 84] (set! f2-0 (l.f v1-33)) [v1: ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 85] (set! v1-34 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f3, 244(v1) ;; [ 86] (set! f3-0 (l.f (+ v1-34 244))) [v1: target-bank ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 87] (set! v1-35 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f4, 204(v1) ;; [ 88] (set! f4-0 (l.f (+ v1-35 204))) [v1: target-bank ] -> [] - div.s f3, f3, f4 ;; [ 89] (set! f3-1 (/.s f3-0 f4-0)) [] -> [] - mul.s f2, f2, f3 ;; [ 90] (set! f2-1 (*.s f2-0 f3-1)) [] -> [] - div.s f1, f1, f2 ;; [ 91] (set! f1-1 (/.s f1-0 f2-1)) [] -> [] - min.s f0, f0, f1 ;; [ 92] (set! f0-3 (min.s f0-2 f1-1)) [] -> [] - swc1 f0, 24(a0) ;; [ 93] (s.f! (+ a0-18 24) f0-3) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 94] (set! t9-4 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 95] (set! a1-4 #f) [] -> [a1: '#f ] - lw a2, num-func-loop!(s7) ;; [ 96] (set! a2-2 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 97] (call! a0-18 a1-4 a2-2) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 98] (set! v1-36 v0-4) [v0: int ] -> [v1: int ] - lwu s6, 44(s6) ;; [ 99] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - beq r0, r0, L363 ;; [100] (b! #t L363 (nop!)) [] -> [] - sll r0, r0, 0 - -B15: - or v0, s7, r0 ;; [101] (set! v0-5 #f) [] -> [v0: ] - ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 16(sp) - jr ra - daddiu sp, sp, 32 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-duck-walk) - () - (cond - ((and (ja-group? (-> self draw art-group data 32)) (= (-> self skel root-channel 0) (-> self skel channel))) - ) - ((ja-group? (-> self draw art-group data 31)) - (ja-channel-push! 1 (seconds 0.45)) - (ja :group! (-> self draw art-group data 32) :num! min) - ) - (else - (ja-channel-push! 1 (seconds 0.1)) - (ja :group! (-> self draw art-group data 32) :num! min) - ) - ) - (loop - (if (= (-> self skel root-channel 0) (-> self skel channel)) - (set! (-> self control unknown-surface00) *duck-mods*) - ) - (ja :num! (loop! (fmin 1.0 (/ (-> self control unknown-float01) - (* 60.0 (/ (-> *TARGET-bank* duck-walk-cycle-dist) (-> *TARGET-bank* run-cycle-length))) - ) - ) - ) - ) - (suspend) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-duck-walk) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; s6-0: target -L365: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lwu t9, 196(s6) ;; [ 0] (set! t9-0 (l.wu (+ self 196))) - ;; [s6: target ] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 1] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lwu v1, 108(s6) ;; [ 2] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 3] (set! v1-1 (l.wu (+ v1-0 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 4] (set! v1-2 (l.w (+ v1-1 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 5] (set! v1-3 (sll v1-2 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 6] (set! a0-0 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 7] (set! v1-4 (+ v1-3 a0-0)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 8] (set! v1-5 (l.wu (+ v1-4 4))) [v1: ] -> [v1: cpad-info ] - lwu v1, 40(v1) ;; [ 9] (set! v1-6 (l.wu (+ v1-5 40))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 3072 ;; [ 10] (set! v1-7 (logand v1-6 3072)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L366 ;; [ 11] (bl! (zero? v1-7) L366 (no-delay!)) [v1: pad-buttons ] -> [] -B1: - daddiu v1, s7, 8 ;; [ 12] (set! v1-8 #t) [] -> [v1: symbol ] - -B2: - lwu v1, 160(s6) ;; [ 13] (set! v1-9 (l.wu (+ self 160))) [s6: target ] -> [v1: state-flags ] - andi v1, v1, 8192 ;; [ 14] (set! v1-10 (logand v1-9 8192)) [v1: state-flags ] -> [v1: state-flags ] - bnel v1, r0, L366 ;; [ 15] (bl! (nonzero? v1-10) L366 (no-delay!)) [v1: state-flags ] -> [] -B3: - daddiu v1, s7, 8 ;; [ 16] (set! v1-8 #t) [] -> [v1: symbol ] - -B4: - lwu v1, 152(s6) ;; [ 17] (set! v1-11 (l.wu (+ self 152))) [s6: target ] -> [v1: water-control ] - lwu v1, 0(v1) ;; [ 18] (set! v1-12 (l.wu v1-11)) [v1: water-control ] -> [v1: water-flags ] - andi v1, v1, 1024 ;; [ 19] (set! v1-13 (logand v1-12 1024)) [v1: water-flags ] -> [v1: water-flags ] - beql v1, r0, L366 ;; [ 20] (bl! (zero? v1-13) L366 (no-delay!)) [v1: water-flags ] -> [] -B5: - or v1, s7, r0 ;; [ 21] (set! v1-8 #f) [] -> [v1: '#f ] - -B6: - lwu v1, 108(s6) ;; [ 22] (set! v1-14 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 16(v1) ;; [ 23] (set! f0-0 (l.f (+ v1-14 16))) [v1: control-info ] -> [] - lwu v1, 152(s6) ;; [ 24] (set! v1-15 (l.wu (+ self 152))) [s6: target ] -> [v1: water-control ] - lwc1 f1, 60(v1) ;; [ 25] (set! f1-0 (l.f (+ v1-15 60))) [v1: water-control ] -> [] - lwu v1, 152(s6) ;; [ 26] (set! v1-16 (l.wu (+ self 152))) [s6: target ] -> [v1: water-control ] - lwc1 f2, 64(v1) ;; [ 27] (set! f2-0 (l.f (+ v1-16 64))) [v1: water-control ] -> [] - sub.s f1, f1, f2 ;; [ 28] (set! f1-1 (-.s f1-0 f2-0)) [] -> [] - sub.s f0, f0, f1 ;; [ 29] (set! f0-1 (-.s f0-0 f1-1)) [] -> [] - neg.s f0, f0 ;; [ 30] (set! f0-2 (neg.s f0-1)) [] -> [] - lui v1, L771 ;; [ 31] (set! v1-17 L771) [] -> [v1: ] - ori v1, v1, L771 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 32] (set! f1-2 (l.f v1-17)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 33] (b! (>=.s f0-2 f1-2) L366 (set! v1-8 #t)) [] -> [v1: symbol ] - bc1f L366 - daddiu v1, s7, 8 - -B7: - or v1, s7, r0 ;; [ 34] (set! v1-8 #f) [] -> [v1: '#f ] -B8: -L366: - beql s7, v1, L367 ;; [ 35] (bl! (not v1-8) L367 (no-delay!)) [v1: symbol ] -> [] -B9: - or v1, v1, r0 ;; [ 36] (set! v1-18 v1-8) [v1: symbol ] -> [v1: symbol ] - -B10: - lw t9, can-exit-duck?(s7) ;; [ 37] (set! t9-1 can-exit-duck?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 38] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 39] (set! v1-18 v0-1) [v0: symbol ] -> [v1: symbol ] -B11: -L367: - beq s7, v1, L368 ;; [ 40] (b! (not v1-18) L368 (set! v1-19 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B12: - lw t9, enter-state(s7) ;; [ 41] (set! t9-2 enter-state) [] -> [t9: ] - lw v1, target-walk(s7) ;; [ 42] (set! v1-20 target-walk) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 43] (s.w! (+ self 72) v1-20) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 44] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 45] (set! v1-21 v0-2) [v0: object ] -> [v1: object ] -B13: -L368: - lw t9, move-legs?(s7) ;; [ 46] (set! t9-3 move-legs?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 47] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - bne s7, v0, L369 ;; [ 48] (b! (truthy v0-3) L369 (set! v1-22 #f)) [v0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B14: - lw t9, enter-state(s7) ;; [ 49] (set! t9-4 enter-state) [] -> [t9: ] - lw v1, target-duck-stance(s7);; [ 50] (set! v1-23 target-duck-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 51] (s.w! (+ self 72) v1-23) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 52] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 53] (set! v1-24 v0-4) [v0: object ] -> [v1: object ] -B15: -L369: - lwu v1, 108(s6) ;; [ 54] (set! v1-25 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 55] (set! v1-26 (l.wu (+ v1-25 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 56] (set! v1-27 (l.w (+ v1-26 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 57] (set! v1-28 (sll v1-27 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 58] (set! a0-1 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 59] (set! v1-29 (+ v1-28 a0-1)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 60] (set! v1-30 (l.wu (+ v1-29 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 61] (set! v1-31 (l.wu (+ v1-30 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 62] (set! a0-2 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 63] (set! a0-3 (l.wu (+ a0-2 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 64] (set! a0-4 (l.w (+ a0-3 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 65] (set! a0-5 (sll a0-4 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 66] (set! a1-0 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 67] (set! a0-6 (+ a0-5 a1-0)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 68] (set! a0-7 (l.wu (+ a0-6 4))) [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [ 69] (set! a0-8 (l.wu (+ a0-7 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 70] (set! v1-32 (logior v1-31 a0-8)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 71] (set! a0-9 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 72] (set! a0-10 (l.wu (+ a0-9 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 73] (set! a0-11 (l.w (+ a0-10 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 74] (set! a0-12 (sll a0-11 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 75] (set! a1-1 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 76] (set! a0-13 (+ a0-12 a1-1)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 77] (set! a0-14 (l.wu (+ a0-13 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [ 78] (set! a0-15 (l.wu (+ a0-14 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 79] (set! v1-33 (logior v1-32 a0-15)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [ 80] (set! v1-34 (logand v1-33 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L370 ;; [ 81] (bl! (zero? v1-34) L370 (no-delay!)) [v1: pad-buttons ] -> [] -B16: - or v1, s7, r0 ;; [ 82] (set! v1-35 #f) [] -> [v1: '#f ] - -B17: - lw t9, can-jump?(s7) ;; [ 83] (set! t9-5 can-jump?) [] -> [t9: (function symbol symbol :behavior target) ] - or a0, s7, r0 ;; [ 84] (set! a0-16 #f) [] -> [a0: '#f ] - jalr ra, t9 ;; [ 85] (call! a0-16) - ;; [a0: '#f t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 86] (set! v1-35 v0-5) [v0: symbol ] -> [v1: symbol ] -B18: -L370: - beq s7, v1, L372 ;; [ 87] (b! (not v1-35) L372 (set! v1-36 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B19: - lwu v1, 108(s6) ;; [ 88] (set! v1-37 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 89] (set! v1-38 (l.wu (+ v1-37 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 90] (set! v1-39 (l.w (+ v1-38 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 91] (set! v1-40 (sll v1-39 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 92] (set! a0-17 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 93] (set! v1-41 (+ v1-40 a0-17)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 94] (set! v1-42 (l.wu (+ v1-41 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwc1 f0, 72(v1) ;; [ 95] (set! f0-3 (l.f (+ v1-42 72))) [v1: cpad-info ] -> [] - mtc1 f1, r0 ;; [ 96] (set! f1-3 0) [] -> [] - c.eq.s f0, f1 ;; [ 97] (b! (!=.s f0-3 f1-3) L371 (nop!)) [] -> [] - bc1f L371 - sll r0, r0, 0 - -B20: - lw t9, enter-state(s7) ;; [ 98] (set! t9-6 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [ 99] (set! v1-43 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 28(v1) ;; [100] (set! f0-4 (l.f (+ v1-43 28))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [101] (set! a0-18 (fpr->gpr f0-4)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [102] (set! v1-44 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 32(v1) ;; [103] (set! f0-5 (l.f (+ v1-44 32))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [104] (set! a1-2 (fpr->gpr f0-5)) [] -> [a1: meters ] - daddiu a2, s7, duck ;; [105] (set! a2-0 'duck) [] -> [a2: symbol ] - lw v1, target-high-jump(s7);; [106] (set! v1-45 target-high-jump) [] -> [v1: (state float float basic target) ] - sw v1, 72(s6) ;; [107] (s.w! (+ self 72) v1-45) [v1: (state float float basic target) s6: target ] -> [] - jalr ra, t9 ;; [108] (call! a0-18 a1-2 a2-0) - ;; [a0: meters a1: meters a2: symbol t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [109] (set! v1-46 v0-6) [v0: object ] -> [v1: object ] - beq r0, r0, L372 ;; [110] (b! #t L372 (nop!)) [] -> [] - sll r0, r0, 0 - -B21: -L371: - lw t9, enter-state(s7) ;; [111] (set! t9-7 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [112] (set! v1-47 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 4(v1) ;; [113] (set! f0-6 (l.f (+ v1-47 4))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [114] (set! a0-19 (fpr->gpr f0-6)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [115] (set! v1-48 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 8(v1) ;; [116] (set! f0-7 (l.f (+ v1-48 8))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [117] (set! a1-3 (fpr->gpr f0-7)) [] -> [a1: meters ] - or a2, s7, r0 ;; [118] (set! a2-1 #f) [] -> [a2: '#f ] - lw v1, target-jump(s7) ;; [119] (set! v1-49 target-jump) [] -> [v1: (state float float surface target) ] - sw v1, 72(s6) ;; [120] (s.w! (+ self 72) v1-49) - ;; [v1: (state float float surface target) s6: target ] -> [] - jalr ra, t9 ;; [121] (call! a0-19 a1-3 a2-1) - ;; [a0: meters a1: meters a2: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [122] (set! v1-50 v0-7) [v0: object ] -> [v1: object ] -B22: -L372: - lw t9, can-hands?(s7) ;; [123] (set! t9-8 can-hands?) [] -> [t9: (function symbol symbol :behavior target) ] - daddiu a0, s7, #t ;; [124] (set! a0-20 #t) [] -> [a0: symbol ] - jalr ra, t9 ;; [125] (call! a0-20) - ;; [a0: symbol t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - beql s7, v0, L373 ;; [126] (bl! (not v0-8) L373 (no-delay!)) [v0: symbol ] -> [] -B23: - or v1, v0, r0 ;; [127] (set! v1-51 v0-8) [v0: symbol ] -> [v1: symbol ] - -B24: - lw t9, can-exit-duck?(s7) ;; [128] (set! t9-9 can-exit-duck?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [129] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [130] (set! v1-51 v0-9) [v0: symbol ] -> [v1: symbol ] -B25: -L373: - beq s7, v1, L374 ;; [131] (b! (not v1-51) L374 (set! v1-52 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B26: - lw t9, enter-state(s7) ;; [132] (set! t9-10 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [133] (set! v1-53 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 44(v1) ;; [134] (set! f0-8 (l.f (+ v1-53 44))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [135] (set! a0-21 (fpr->gpr f0-8)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [136] (set! v1-54 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 48(v1) ;; [137] (set! f0-9 (l.f (+ v1-54 48))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [138] (set! a1-4 (fpr->gpr f0-9)) [] -> [a1: meters ] - lw v1, target-attack-uppercut(s7);; [139] (set! v1-55 target-attack-uppercut) [] -> [v1: (state float float target) ] - sw v1, 72(s6) ;; [140] (s.w! (+ self 72) v1-55) [v1: (state float float target) s6: target ] -> [] - jalr ra, t9 ;; [141] (call! a0-21 a1-4) - ;; [a0: meters a1: meters t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [142] (set! v1-56 v0-10) [v0: object ] -> [v1: object ] -B27: -L374: - lw t9, fall-test(s7) ;; [143] (set! t9-11 fall-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [144] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, slide-down-test(s7);; [145] (set! t9-12 slide-down-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [146] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-duck-walk) - () - ((-> self state-hook)) - (if (and (or (zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons l1 r1)) - ) - (logtest? (-> self state-flags) (state-flags prevent-duck)) - (and (logtest? (-> self water flags) (water-flags wt10)) - (>= (- (- (-> self control trans y) (- (-> self water base-height) (-> self water wade-height)))) 2457.6) - ) - ) - (can-exit-duck?) - ) - (go target-walk) - ) - (if (not (move-legs?)) - (go target-duck-stance) - ) - (when (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - (go target-high-jump (-> *TARGET-bank* duck-jump-height-min) (-> *TARGET-bank* duck-jump-height-max) 'duck) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - ) - (if (and (can-hands? #t) (can-exit-duck?)) - (go - target-attack-uppercut - (-> *TARGET-bank* attack-jump-height-min) - (-> *TARGET-bank* attack-jump-height-max) - ) - ) - (fall-test) - (slide-down-test) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-duck-walk) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; Warnings: -;; INFO: Return type mismatch surface vs none. - -;; s6-0: target -L375: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lui v1, L786 ;; [ 0] (set! v1-0 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 1] (set! f0-0 (l.f v1-0)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 2] (set! v1-1 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [ 3] (s.f! (+ v1-1 1724) f0-0) [v1: control-info ] -> [] - lw t9, target-collide-set!(s7);; [ 4] (set! t9-0 target-collide-set!) - ;; [] -> [t9: (function symbol float int :behavior target) ] - daddiu a0, s7, duck ;; [ 5] (set! a0-0 'duck) [] -> [a0: symbol ] - lui v1, L786 ;; [ 6] (set! v1-2 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a1, 0(v1) ;; [ 7] (set! a1-0 (l.w v1-2)) [v1: ] -> [a1: int ] - jalr ra, t9 ;; [ 8] (call! a0-0 a1-0) - ;; [a0: symbol a1: int t9: (function symbol float int :behavior target) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 9] (set! v1-3 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 10] (set! v1-4 (l.w (+ v1-3 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 11] (b! (<=0.si v1-4) L376 (set! v1-5 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L376 - or v1, s7, r0 - -B1: - lwu v1, 120(s6) ;; [ 12] (set! v1-6 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 13] (set! v1-7 (l.wu (+ v1-6 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 14] (set! v1-5 (l.wu (+ v1-7 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B2: -L376: - lwu a0, 116(s6) ;; [ 15] (set! a0-1 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 16] (set! a0-2 (l.wu (+ a0-1 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 304(a0) ;; [ 17] (set! a0-3 (l.wu (+ a0-2 304))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 18] (set! a0-4 (= v1-5 a0-3)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - bne s7, a0, L377 ;; [ 19] (b! (truthy a0-4) L377 (set! v0-1 #f)) [a0: symbol ] -> [v0: '#f ] - or v0, s7, r0 - -B3: - lw v0, *duck-mods*(s7) ;; [ 20] (set! v0-2 *duck-mods*) [] -> [v0: surface ] - lwu v1, 108(s6) ;; [ 21] (set! v1-8 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw v0, 656(v1) ;; [ 22] (s.w! (+ v1-8 656) v0-2) [v0: surface v1: control-info ] -> [] -B4: -L377: - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-duck-walk) - () - (set! (-> self control unknown-float81) 1.0) - (target-collide-set! 'duck (the-as float 1.0)) - (if (not (ja-group? (-> self draw art-group data 69))) - (set! (-> self control unknown-surface00) *duck-mods*) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-duck-stance) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; s6-0: target -L378: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lwu v1, 120(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 1] (set! v1-1 (l.w (+ v1-0 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 2] (b! (<=0.si v1-1) L379 (set! v1-2 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L379 - or v1, s7, r0 - -B1: - lwu v1, 120(s6) ;; [ 3] (set! v1-3 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 4] (set! v1-4 (l.wu (+ v1-3 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 5] (set! v1-2 (l.wu (+ v1-4 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B2: -L379: - lwu a0, 116(s6) ;; [ 6] (set! a0-0 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 7] (set! a0-1 (l.wu (+ a0-0 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 304(a0) ;; [ 8] (set! a0-2 (l.wu (+ a0-1 304))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 9] (set! a0-3 (= v1-2 a0-2)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L381 ;; [ 10] (b! (not a0-3) L381 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B3: - lwu v1, 120(s6) ;; [ 11] (set! v1-5 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 12] (set! v1-6 (l.wu (+ v1-5 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 13] (set! a0-4 (+ v1-6 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 14] (set! v1-7 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 15] (set! v1-8 (l.wu (+ v1-7 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 308(v1) ;; [ 16] (set! v1-9 (l.wu (+ v1-8 308))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 17] (s.w! (+ a0-4 12) v1-9) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [ 18] (set! v1-10 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 19] (set! v1-11 (l.wu (+ v1-10 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 308(v1) ;; [ 20] (set! v1-12 (l.wu (+ v1-11 308))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 21] (set! (the-as art-joint-anim v1-13) (l.wu (+ v1-12 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 22] (set! v1-14 (l.h (+ v1-13 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 23] (set! v1-15 (+ v1-14 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 24] (set! f0-0 (gpr->fpr v1-15)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 25] (set! f0-1 (i2f f0-0)) [] -> [] - swc1 f0, 24(a0) ;; [ 26] (s.f! (+ a0-4 24) f0-1) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 27] (set! v1-16 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 28] (set! f0-2 (l.f v1-16)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 29] (s.f! (+ a0-4 28) f0-2) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 30] (set! f0-3 0) [] -> [] - swc1 f0, 16(a0) ;; [ 31] (s.f! (+ a0-4 16) f0-3) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [ 32] (set! t9-0 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 33] (set! v1-17 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 34] (set! v1-18 (l.wu (+ v1-17 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 308(v1) ;; [ 35] (set! a1-0 (l.wu (+ v1-18 308))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [ 36] (set! a2-0 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 37] (call! a0-4 a1-0 a2-0) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 38] (set! v1-19 v0-0) [v0: int ] -> [v1: int ] -B4: -L380: - lwu s6, 44(s6) ;; [ 39] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 40] (set! v1-20 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 41] (set! v1-21 (l.wu (+ v1-20 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 42] (set! a0-5 (+ v1-21 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [ 43] (set! v1-22 (l.wu (+ a0-5 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 44] (set! v1-23 (l.wu (+ v1-22 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 45] (set! v1-24 (l.h (+ v1-23 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 46] (set! v1-25 (+ v1-24 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 47] (set! f0-4 (gpr->fpr v1-25)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 48] (set! f0-5 (i2f f0-4)) [] -> [] - swc1 f0, 24(a0) ;; [ 49] (s.f! (+ a0-5 24) f0-5) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 50] (set! v1-26 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 51] (set! f0-6 (l.f v1-26)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 52] (s.f! (+ a0-5 28) f0-6) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 53] (set! t9-1 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 54] (set! a1-1 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 55] (set! a2-1 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 56] (call! a0-5 a1-1 a2-1) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 57] (set! v1-27 v0-1) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [ 58] (set! t9-2 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 59] (set! a0-6 0) [] -> [a0: ] - jalr ra, t9 ;; [ 60] (call! a0-6) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L380 ;; [ 61] (b! (not v0-2) L380 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B5: - or v1, s7, r0 ;; [ 62] (set! v1-28 #f) [] -> [v1: '#f ] - beq r0, r0, L388 ;; [ 63] (b! #t L388 (nop!)) [] -> [] - sll r0, r0, 0 - -B6: -L381: - lwu v1, 120(s6) ;; [ 64] (set! v1-29 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 65] (set! v1-30 (l.w (+ v1-29 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 66] (b! (<=0.si v1-30) L382 (set! v1-31 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L382 - or v1, s7, r0 - -B7: - lwu v1, 120(s6) ;; [ 67] (set! v1-32 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 68] (set! v1-33 (l.wu (+ v1-32 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 69] (set! v1-31 (l.wu (+ v1-33 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B8: -L382: - lwu a0, 116(s6) ;; [ 70] (set! a0-7 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 71] (set! a0-8 (l.wu (+ a0-7 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 152(a0) ;; [ 72] (set! a0-9 (l.wu (+ a0-8 152))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 73] (set! a0-10 (= v1-31 a0-9)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L383 ;; [ 74] (bl! (not a0-10) L383 (no-delay!)) [a0: symbol ] -> [] -B9: - or v1, a0, r0 ;; [ 75] (set! v1-34 a0-10) [a0: symbol ] -> [v1: symbol ] - -B10: - lwu v1, 120(s6) ;; [ 76] (set! v1-35 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 77] (set! v1-36 (l.wu (+ v1-35 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu v1, r0, v1 ;; [ 78] (set! v1-37 (+ v1-36 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - lwu a0, 120(s6) ;; [ 79] (set! a0-11 (l.wu (+ self 120))) [s6: target ] -> [a0: joint-control ] - daddiu a0, a0, 44 ;; [ 80] (set! a0-12 (+ a0-11 44)) - ;; [a0: joint-control ] -> [a0: (inline-array joint-control-channel) ] - dsubu a0, v1, a0 ;; [ 81] (set! v1-34 (= v1-37 a0-12)) - ;; [v1: joint-control-channel a0: (inline-array joint-control-channel) ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B11: -L383: - beq s7, v1, L384 ;; [ 82] (b! (not v1-34) L384 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B12: - or v1, s7, r0 ;; [ 83] (set! v1-38 #f) [] -> [v1: '#f ] - beq r0, r0, L388 ;; [ 84] (b! #t L388 (nop!)) [] -> [] - sll r0, r0, 0 - -B13: -L384: - lwu v1, 120(s6) ;; [ 85] (set! v1-39 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 86] (set! v1-40 (l.w (+ v1-39 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 87] (b! (<=0.si v1-40) L385 (set! v1-41 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L385 - or v1, s7, r0 - -B14: - lwu v1, 120(s6) ;; [ 88] (set! v1-42 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 89] (set! v1-43 (l.wu (+ v1-42 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 90] (set! v1-41 (l.wu (+ v1-43 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B15: -L385: - lwu a0, 116(s6) ;; [ 91] (set! a0-13 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 92] (set! a0-14 (l.wu (+ a0-13 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 156(a0) ;; [ 93] (set! a0-15 (l.wu (+ a0-14 156))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 94] (set! a0-16 (= v1-41 a0-15)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L386 ;; [ 95] (b! (not a0-16) L386 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B16: - lw t9, ja-channel-push!(s7);; [ 96] (set! t9-3 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 97] (set! a0-17 1) [] -> [a0: ] - addiu a1, r0, 30 ;; [ 98] (set! a1-2 30) [] -> [a1: ] - jalr ra, t9 ;; [ 99] (call! a0-17 a1-2) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [100] (set! v1-44 v0-3) [v0: int ] -> [v1: int ] - beq r0, r0, L388 ;; [101] (b! #t L388 (nop!)) [] -> [] - sll r0, r0, 0 - -B17: -L386: - lw t9, ja-channel-push!(s7);; [102] (set! t9-4 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [103] (set! a0-18 1) [] -> [a0: ] - addiu a1, r0, 12 ;; [104] (set! a1-3 12) [] -> [a1: ] - jalr ra, t9 ;; [105] (call! a0-18 a1-3) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [106] (set! v1-45 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [107] (set! v1-46 (l.wu (+ v1-45 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [108] (set! a0-19 (+ v1-46 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [109] (set! v1-47 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [110] (set! v1-48 (l.wu (+ v1-47 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 148(v1) ;; [111] (set! v1-49 (l.wu (+ v1-48 148))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [112] (s.w! (+ a0-19 12) v1-49) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [113] (set! v1-50 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [114] (set! v1-51 (l.wu (+ v1-50 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 148(v1) ;; [115] (set! v1-52 (l.wu (+ v1-51 148))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [116] (set! (the-as art-joint-anim v1-53) (l.wu (+ v1-52 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [117] (set! v1-54 (l.h (+ v1-53 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [118] (set! v1-55 (+ v1-54 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [119] (set! f0-7 (gpr->fpr v1-55)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [120] (set! f0-8 (i2f f0-7)) [] -> [] - swc1 f0, 24(a0) ;; [121] (s.f! (+ a0-19 24) f0-8) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [122] (set! v1-56 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [123] (set! f0-9 (l.f v1-56)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [124] (s.f! (+ a0-19 28) f0-9) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [125] (set! f0-10 0) [] -> [] - swc1 f0, 16(a0) ;; [126] (s.f! (+ a0-19 16) f0-10) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [127] (set! t9-5 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [128] (set! v1-57 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [129] (set! v1-58 (l.wu (+ v1-57 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 148(v1) ;; [130] (set! a1-4 (l.wu (+ v1-58 148))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [131] (set! a2-2 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [132] (call! a0-19 a1-4 a2-2) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [133] (set! v1-59 v0-5) [v0: int ] -> [v1: int ] -B18: -L387: - lwu s6, 44(s6) ;; [134] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [135] (set! v1-60 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [136] (set! v1-61 (l.wu (+ v1-60 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [137] (set! a0-20 (+ v1-61 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [138] (set! v1-62 (l.wu (+ a0-20 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [139] (set! v1-63 (l.wu (+ v1-62 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [140] (set! v1-64 (l.h (+ v1-63 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [141] (set! v1-65 (+ v1-64 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [142] (set! f0-11 (gpr->fpr v1-65)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [143] (set! f0-12 (i2f f0-11)) [] -> [] - swc1 f0, 24(a0) ;; [144] (s.f! (+ a0-20 24) f0-12) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [145] (set! v1-66 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [146] (set! f0-13 (l.f v1-66)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [147] (s.f! (+ a0-20 28) f0-13) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [148] (set! t9-6 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [149] (set! a1-5 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [150] (set! a2-3 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [151] (call! a0-20 a1-5 a2-3) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [152] (set! v1-67 v0-6) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [153] (set! t9-7 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [154] (set! a0-21 0) [] -> [a0: ] - jalr ra, t9 ;; [155] (call! a0-21) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L387 ;; [156] (b! (not v0-7) L387 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B19: - or v1, s7, r0 ;; [157] (set! v1-68 #f) [] -> [v1: '#f ] -B20: -L388: - lwu v1, 120(s6) ;; [158] (set! v1-69 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [159] (set! v1-70 (l.wu (+ v1-69 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [160] (set! a0-22 (+ v1-70 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [161] (set! v1-71 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [162] (set! v1-72 (l.wu (+ v1-71 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 152(v1) ;; [163] (set! v1-73 (l.wu (+ v1-72 152))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [164] (s.w! (+ a0-22 12) v1-73) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [165] (set! v1-74 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [166] (set! v1-75 (l.wu (+ v1-74 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 152(v1) ;; [167] (set! v1-76 (l.wu (+ v1-75 152))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [168] (set! (the-as art-joint-anim v1-77) (l.wu (+ v1-76 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [169] (set! v1-78 (l.h (+ v1-77 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [170] (set! v1-79 (+ v1-78 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [171] (set! f0-14 (gpr->fpr v1-79)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [172] (set! f0-15 (i2f f0-14)) [] -> [] - swc1 f0, 24(a0) ;; [173] (s.f! (+ a0-22 24) f0-15) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [174] (set! v1-80 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [175] (set! f0-16 (l.f v1-80)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [176] (s.f! (+ a0-22 28) f0-16) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [177] (set! f0-17 0) [] -> [] - swc1 f0, 16(a0) ;; [178] (s.f! (+ a0-22 16) f0-17) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [179] (set! t9-8 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [180] (set! v1-81 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [181] (set! v1-82 (l.wu (+ v1-81 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 152(v1) ;; [182] (set! a1-6 (l.wu (+ v1-82 152))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [183] (set! a2-4 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [184] (call! a0-22 a1-6 a2-4) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [185] (set! v1-83 v0-8) [v0: int ] -> [v1: int ] -B21: -L389: - lwu s6, 44(s6) ;; [186] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [187] (set! v1-84 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [188] (set! v1-85 (l.wu (+ v1-84 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [189] (set! a0-23 (+ v1-85 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [190] (set! v1-86 (l.wu (+ a0-23 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [191] (set! v1-87 (l.wu (+ v1-86 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [192] (set! v1-88 (l.h (+ v1-87 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [193] (set! v1-89 (+ v1-88 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [194] (set! f0-18 (gpr->fpr v1-89)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [195] (set! f0-19 (i2f f0-18)) [] -> [] - swc1 f0, 24(a0) ;; [196] (s.f! (+ a0-23 24) f0-19) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [197] (set! v1-90 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [198] (set! f0-20 (l.f v1-90)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [199] (s.f! (+ a0-23 28) f0-20) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [200] (set! t9-9 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [201] (set! a1-7 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [202] (set! a2-5 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [203] (call! a0-23 a1-7 a2-5) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [204] (set! v1-91 v0-9) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [205] (set! t9-10 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [206] (set! a0-24 0) [] -> [a0: ] - jalr ra, t9 ;; [207] (call! a0-24) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L389 ;; [208] (b! (not v0-10) L389 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B22: - or v1, s7, r0 ;; [209] (set! v1-92 #f) [] -> [v1: '#f ] - beq r0, r0, L388 ;; [210] (b! #t L388 (nop!)) [] -> [] - sll r0, r0, 0 - -B23: - or v0, s7, r0 ;; [211] (set! v0-11 #f) [] -> [v0: ] - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-duck-stance) - () - (cond - ((ja-group? (-> self draw art-group data 69)) - (ja-no-eval :group! (-> self draw art-group data 70) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - ((and (ja-group? (-> self draw art-group data 31)) (= (-> self skel root-channel 0) (-> self skel channel))) - ) - ((ja-group? (-> self draw art-group data 32)) - (ja-channel-push! 1 (seconds 0.1)) - ) - (else - (ja-channel-push! 1 (seconds 0.04)) - (ja-no-eval :group! (-> self draw art-group data 30) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - ) - (loop - (ja-no-eval :group! (-> self draw art-group data 31) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-duck-stance) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; v1-13: art-joint-anim s6-0: target -L390: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lwu t9, 196(s6) ;; [ 0] (set! t9-0 (l.wu (+ self 196))) - ;; [s6: target ] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 1] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lwu v1, 108(s6) ;; [ 2] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 3] (set! v1-1 (l.wu (+ v1-0 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 4] (set! v1-2 (l.w (+ v1-1 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 5] (set! v1-3 (sll v1-2 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 6] (set! a0-0 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 7] (set! v1-4 (+ v1-3 a0-0)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 8] (set! v1-5 (l.wu (+ v1-4 4))) [v1: ] -> [v1: cpad-info ] - lwu v1, 40(v1) ;; [ 9] (set! v1-6 (l.wu (+ v1-5 40))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 3072 ;; [ 10] (set! v1-7 (logand v1-6 3072)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L391 ;; [ 11] (bl! (zero? v1-7) L391 (no-delay!)) [v1: pad-buttons ] -> [] -B1: - daddiu v1, s7, 8 ;; [ 12] (set! v1-8 #t) [] -> [v1: symbol ] - -B2: - daddiu v1, s7, 8 ;; [ 13] (set! v1-9 #t) [] -> [v1: symbol ] - lwu a0, 160(s6) ;; [ 14] (set! a0-1 (l.wu (+ self 160))) [s6: target ] -> [a0: state-flags ] - andi a0, a0, 8192 ;; [ 15] (set! a0-2 (logand a0-1 8192)) [a0: state-flags ] -> [a0: state-flags ] - movz v1, s7, a0 ;; [ 16] (cmove-#f-zero v1-8 a0-2 v1-9) [v1: symbol a0: state-flags ] -> [v1: symbol ] -B3: -L391: - beql s7, v1, L394 ;; [ 17] (bl! (not v1-8) L394 (no-delay!)) [v1: symbol ] -> [] -B4: - or v1, v1, r0 ;; [ 18] (set! v1-10 v1-8) [v1: symbol ] -> [v1: symbol ] - -B5: - lwu v1, 120(s6) ;; [ 19] (set! v1-11 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 20] (set! v1-12 (l.w (+ v1-11 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 21] (b! (<=0.si v1-12) L392 (set! v1-13 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L392 - or v1, s7, r0 - -B6: - lwu v1, 120(s6) ;; [ 22] (set! v1-14 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 23] (set! v1-15 (l.wu (+ v1-14 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 24] (set! v1-13 (l.wu (+ v1-15 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B7: -L392: - lwu a0, 116(s6) ;; [ 25] (set! a0-3 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 26] (set! a0-4 (l.wu (+ a0-3 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 308(a0) ;; [ 27] (set! a0-5 (l.wu (+ a0-4 308))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [ 28] (set! a1-0 (= v1-13 a0-5)) [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L393 ;; [ 29] (bl! (truthy a1-0) L393 (no-delay!)) [a1: symbol ] -> [] -B8: - or a0, a1, r0 ;; [ 30] (set! a0-6 a1-0) [a1: symbol ] -> [a0: symbol ] - -B9: - lwu a0, 116(s6) ;; [ 31] (set! a0-7 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 32] (set! a0-8 (l.wu (+ a0-7 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 304(a0) ;; [ 33] (set! a0-9 (l.wu (+ a0-8 304))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 34] (set! a0-6 (= v1-13 a0-9)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B10: -L393: - bnel s7, a0, L394 ;; [ 35] (bl! (truthy a0-6) L394 (no-delay!)) [a0: symbol ] -> [] -B11: - or v1, s7, r0 ;; [ 36] (set! v1-10 #f) [] -> [v1: '#f ] - -B12: - lw t9, can-exit-duck?(s7) ;; [ 37] (set! t9-1 can-exit-duck?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 38] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 39] (set! v1-10 v0-1) [v0: symbol ] -> [v1: symbol ] -B13: -L394: - beq s7, v1, L395 ;; [ 40] (b! (not v1-10) L395 (set! v1-16 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B14: - lw t9, enter-state(s7) ;; [ 41] (set! t9-2 enter-state) [] -> [t9: ] - lw v1, target-stance(s7) ;; [ 42] (set! v1-17 target-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 43] (s.w! (+ self 72) v1-17) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 44] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 45] (set! v1-18 v0-2) [v0: object ] -> [v1: object ] -B15: -L395: - lw t9, move-legs?(s7) ;; [ 46] (set! t9-3 move-legs?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 47] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L396 ;; [ 48] (b! (not v0-3) L396 (set! v1-19 #f)) [v0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B16: - lw t9, enter-state(s7) ;; [ 49] (set! t9-4 enter-state) [] -> [t9: ] - lw v1, target-duck-walk(s7);; [ 50] (set! v1-20 target-duck-walk) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 51] (s.w! (+ self 72) v1-20) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 52] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 53] (set! v1-21 v0-4) [v0: object ] -> [v1: object ] -B17: -L396: - lwu v1, 108(s6) ;; [ 54] (set! v1-22 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 55] (set! v1-23 (l.wu (+ v1-22 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 56] (set! v1-24 (l.w (+ v1-23 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 57] (set! v1-25 (sll v1-24 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 58] (set! a0-10 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 59] (set! v1-26 (+ v1-25 a0-10)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 60] (set! v1-27 (l.wu (+ v1-26 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 61] (set! v1-28 (l.wu (+ v1-27 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 62] (set! a0-11 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 63] (set! a0-12 (l.wu (+ a0-11 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 64] (set! a0-13 (l.w (+ a0-12 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 65] (set! a0-14 (sll a0-13 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 66] (set! a1-1 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 67] (set! a0-15 (+ a0-14 a1-1)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 68] (set! a0-16 (l.wu (+ a0-15 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [ 69] (set! a0-17 (l.wu (+ a0-16 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 70] (set! v1-29 (logior v1-28 a0-17)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 71] (set! a0-18 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 72] (set! a0-19 (l.wu (+ a0-18 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 73] (set! a0-20 (l.w (+ a0-19 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 74] (set! a0-21 (sll a0-20 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 75] (set! a1-2 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 76] (set! a0-22 (+ a0-21 a1-2)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 77] (set! a0-23 (l.wu (+ a0-22 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [ 78] (set! a0-24 (l.wu (+ a0-23 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 79] (set! v1-30 (logior v1-29 a0-24)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [ 80] (set! v1-31 (logand v1-30 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L397 ;; [ 81] (bl! (zero? v1-31) L397 (no-delay!)) [v1: pad-buttons ] -> [] -B18: - or v1, s7, r0 ;; [ 82] (set! v1-32 #f) [] -> [v1: '#f ] - -B19: - lw t9, can-jump?(s7) ;; [ 83] (set! t9-5 can-jump?) [] -> [t9: (function symbol symbol :behavior target) ] - or a0, s7, r0 ;; [ 84] (set! a0-25 #f) [] -> [a0: '#f ] - jalr ra, t9 ;; [ 85] (call! a0-25) - ;; [a0: '#f t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 86] (set! v1-32 v0-5) [v0: symbol ] -> [v1: symbol ] -B20: -L397: - beq s7, v1, L399 ;; [ 87] (b! (not v1-32) L399 (set! v1-33 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B21: - lwu v1, 108(s6) ;; [ 88] (set! v1-34 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 89] (set! v1-35 (l.wu (+ v1-34 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 90] (set! v1-36 (l.w (+ v1-35 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 91] (set! v1-37 (sll v1-36 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 92] (set! a0-26 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 93] (set! v1-38 (+ v1-37 a0-26)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 94] (set! v1-39 (l.wu (+ v1-38 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwc1 f0, 72(v1) ;; [ 95] (set! f0-0 (l.f (+ v1-39 72))) [v1: cpad-info ] -> [] - mtc1 f1, r0 ;; [ 96] (set! f1-0 0) [] -> [] - c.eq.s f0, f1 ;; [ 97] (b! (!=.s f0-0 f1-0) L398 (nop!)) [] -> [] - bc1f L398 - sll r0, r0, 0 - -B22: - lw t9, enter-state(s7) ;; [ 98] (set! t9-6 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [ 99] (set! v1-40 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 28(v1) ;; [100] (set! f0-1 (l.f (+ v1-40 28))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [101] (set! a0-27 (fpr->gpr f0-1)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [102] (set! v1-41 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 32(v1) ;; [103] (set! f0-2 (l.f (+ v1-41 32))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [104] (set! a1-3 (fpr->gpr f0-2)) [] -> [a1: meters ] - daddiu a2, s7, duck ;; [105] (set! a2-0 'duck) [] -> [a2: symbol ] - lw v1, target-high-jump(s7);; [106] (set! v1-42 target-high-jump) [] -> [v1: (state float float basic target) ] - sw v1, 72(s6) ;; [107] (s.w! (+ self 72) v1-42) [v1: (state float float basic target) s6: target ] -> [] - jalr ra, t9 ;; [108] (call! a0-27 a1-3 a2-0) - ;; [a0: meters a1: meters a2: symbol t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [109] (set! v1-43 v0-6) [v0: object ] -> [v1: object ] - beq r0, r0, L399 ;; [110] (b! #t L399 (nop!)) [] -> [] - sll r0, r0, 0 - -B23: -L398: - lw t9, enter-state(s7) ;; [111] (set! t9-7 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [112] (set! v1-44 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 4(v1) ;; [113] (set! f0-3 (l.f (+ v1-44 4))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [114] (set! a0-28 (fpr->gpr f0-3)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [115] (set! v1-45 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 8(v1) ;; [116] (set! f0-4 (l.f (+ v1-45 8))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [117] (set! a1-4 (fpr->gpr f0-4)) [] -> [a1: meters ] - or a2, s7, r0 ;; [118] (set! a2-1 #f) [] -> [a2: '#f ] - lw v1, target-jump(s7) ;; [119] (set! v1-46 target-jump) [] -> [v1: (state float float surface target) ] - sw v1, 72(s6) ;; [120] (s.w! (+ self 72) v1-46) - ;; [v1: (state float float surface target) s6: target ] -> [] - jalr ra, t9 ;; [121] (call! a0-28 a1-4 a2-1) - ;; [a0: meters a1: meters a2: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [122] (set! v1-47 v0-7) [v0: object ] -> [v1: object ] -B24: -L399: - lw t9, can-hands?(s7) ;; [123] (set! t9-8 can-hands?) [] -> [t9: (function symbol symbol :behavior target) ] - daddiu a0, s7, #t ;; [124] (set! a0-29 #t) [] -> [a0: symbol ] - jalr ra, t9 ;; [125] (call! a0-29) - ;; [a0: symbol t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - beql s7, v0, L400 ;; [126] (bl! (not v0-8) L400 (no-delay!)) [v0: symbol ] -> [] -B25: - or v1, v0, r0 ;; [127] (set! v1-48 v0-8) [v0: symbol ] -> [v1: symbol ] - -B26: - lw t9, can-exit-duck?(s7) ;; [128] (set! t9-9 can-exit-duck?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [129] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [130] (set! v1-48 v0-9) [v0: symbol ] -> [v1: symbol ] -B27: -L400: - beq s7, v1, L401 ;; [131] (b! (not v1-48) L401 (set! v1-49 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B28: - lw t9, enter-state(s7) ;; [132] (set! t9-10 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [133] (set! v1-50 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 44(v1) ;; [134] (set! f0-5 (l.f (+ v1-50 44))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [135] (set! a0-30 (fpr->gpr f0-5)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [136] (set! v1-51 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 48(v1) ;; [137] (set! f0-6 (l.f (+ v1-51 48))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [138] (set! a1-5 (fpr->gpr f0-6)) [] -> [a1: meters ] - lw v1, target-attack-uppercut(s7);; [139] (set! v1-52 target-attack-uppercut) [] -> [v1: (state float float target) ] - sw v1, 72(s6) ;; [140] (s.w! (+ self 72) v1-52) [v1: (state float float target) s6: target ] -> [] - jalr ra, t9 ;; [141] (call! a0-30 a1-5) - ;; [a0: meters a1: meters t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [142] (set! v1-53 v0-10) [v0: object ] -> [v1: object ] -B29: -L401: - lw t9, fall-test(s7) ;; [143] (set! t9-11 fall-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [144] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, slide-down-test(s7);; [145] (set! t9-12 slide-down-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [146] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-duck-stance) - () - ((-> self state-hook)) - (if (and (or (zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-abs 0) (pad-buttons l1 r1)) - ) - (logtest? (-> self state-flags) (state-flags prevent-duck)) - ) - (let ((v1-13 (ja-group))) - (and (not (or (= v1-13 (-> self draw art-group data 70)) (= v1-13 (-> self draw art-group data 69)))) - (can-exit-duck?) - ) - ) - ) - (go target-stance) - ) - (if (move-legs?) - (go target-duck-walk) - ) - (when (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - (go target-high-jump (-> *TARGET-bank* duck-jump-height-min) (-> *TARGET-bank* duck-jump-height-max) 'duck) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - ) - (if (and (can-hands? #t) (can-exit-duck?)) - (go - target-attack-uppercut - (-> *TARGET-bank* attack-jump-height-min) - (-> *TARGET-bank* attack-jump-height-max) - ) - ) - (fall-test) - (slide-down-test) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (exit target-duck-stance) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; Warnings: -;; INFO: Return type mismatch int vs none. - -;; s6-0: target -L402: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lwu v1, 72(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 72))) [s6: target ] -> [v1: state ] - lwu v1, 0(v1) ;; [ 1] (set! v1-1 (l.wu v1-0)) [v1: state ] -> [v1: symbol ] - daddiu a0, s7, target-duck-walk;; [ 2] (set! a0-0 'target-duck-walk) [] -> [a0: symbol ] - dsubu v1, v1, a0 ;; [ 3] (set! a0-1 (= v1-1 a0-0)) [v1: symbol a0: symbol ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - bnel s7, a0, L403 ;; [ 4] (bl! (truthy a0-1) L403 (no-delay!)) [a0: symbol ] -> [] -B1: - or v1, a0, r0 ;; [ 5] (set! v1-2 a0-1) [a0: symbol ] -> [v1: symbol ] - -B2: - lwu v1, 72(s6) ;; [ 6] (set! v1-3 (l.wu (+ self 72))) [s6: target ] -> [v1: state ] - lwu v1, 0(v1) ;; [ 7] (set! v1-4 (l.wu v1-3)) [v1: state ] -> [v1: symbol ] - daddiu a0, s7, target-duck-stance;; [ 8] (set! a0-2 'target-duck-stance) [] -> [a0: symbol ] - dsubu v1, v1, a0 ;; [ 9] (set! a0-3 (= v1-4 a0-2)) [v1: symbol a0: symbol ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - bnel s7, a0, L403 ;; [ 10] (bl! (truthy a0-3) L403 (no-delay!)) [a0: symbol ] -> [] -B3: - or v1, a0, r0 ;; [ 11] (set! v1-2 a0-3) [a0: symbol ] -> [v1: symbol ] - -B4: - lwu v1, 72(s6) ;; [ 12] (set! v1-5 (l.wu (+ self 72))) [s6: target ] -> [v1: state ] - lwu v1, 0(v1) ;; [ 13] (set! v1-6 (l.wu v1-5)) [v1: state ] -> [v1: symbol ] - daddiu a0, s7, target-walk;; [ 14] (set! a0-4 'target-walk) [] -> [a0: symbol ] - dsubu v1, v1, a0 ;; [ 15] (set! a0-5 (= v1-6 a0-4)) [v1: symbol a0: symbol ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - bnel s7, a0, L403 ;; [ 16] (bl! (truthy a0-5) L403 (no-delay!)) [a0: symbol ] -> [] -B5: - or v1, a0, r0 ;; [ 17] (set! v1-2 a0-5) [a0: symbol ] -> [v1: symbol ] - -B6: - lwu v1, 72(s6) ;; [ 18] (set! v1-7 (l.wu (+ self 72))) [s6: target ] -> [v1: state ] - lwu v1, 0(v1) ;; [ 19] (set! v1-8 (l.wu v1-7)) [v1: state ] -> [v1: symbol ] - daddiu a0, s7, target-stance;; [ 20] (set! a0-6 'target-stance) [] -> [a0: symbol ] - dsubu v1, v1, a0 ;; [ 21] (set! a0-7 (= v1-8 a0-6)) [v1: symbol a0: symbol ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - bnel s7, a0, L403 ;; [ 22] (bl! (truthy a0-7) L403 (no-delay!)) [a0: symbol ] -> [] -B7: - or v1, a0, r0 ;; [ 23] (set! v1-2 a0-7) [a0: symbol ] -> [v1: symbol ] - -B8: - lwu v1, 72(s6) ;; [ 24] (set! v1-9 (l.wu (+ self 72))) [s6: target ] -> [v1: state ] - lwu v1, 0(v1) ;; [ 25] (set! v1-10 (l.wu v1-9)) [v1: state ] -> [v1: symbol ] - daddiu a0, s7, target-stance-look-around;; [ 26] (set! a0-8 'target-stance-look-around) [] -> [a0: symbol ] - dsubu a0, v1, a0 ;; [ 27] (set! v1-2 (= v1-10 a0-8)) [v1: symbol a0: symbol ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B9: -L403: - bne s7, v1, L404 ;; [ 28] (b! (truthy v1-2) L404 (set! v1-11 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B10: - lw t9, target-state-hook-exit(s7);; [ 29] (set! t9-0 target-state-hook-exit) - ;; [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 30] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 31] (set! v1-12 v0-0) [v0: none ] -> [v1: none ] -B11: -L404: - lw t9, target-exit(s7) ;; [ 32] (set! t9-1 target-exit) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 33] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, target-collide-set!(s7);; [ 34] (set! t9-2 target-collide-set!) - ;; [] -> [t9: (function symbol float int :behavior target) ] - daddiu a0, s7, normal ;; [ 35] (set! a0-9 'normal) [] -> [a0: symbol ] - lui v1, L814 ;; [ 36] (set! v1-13 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a1, 0(v1) ;; [ 37] (set! a1-0 (l.w v1-13)) [v1: ] -> [a1: int ] - jalr ra, t9 ;; [ 38] (call! a0-9 a1-0) - ;; [a0: symbol a1: int t9: (function symbol float int :behavior target) ] -> [v0: int ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (exit target-duck-stance) - () - (if (not (or (= (-> self next-state name) 'target-duck-walk) - (= (-> self next-state name) 'target-duck-stance) - (= (-> self next-state name) 'target-walk) - (= (-> self next-state name) 'target-stance) - (= (-> self next-state name) 'target-stance-look-around) - ) - ) - (target-state-hook-exit) - ) - (target-exit) - (target-collide-set! 'normal (the-as float 0.0)) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-duck-stance) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; Warnings: -;; INFO: Return type mismatch int vs none. - -;; s6-0: target -L405: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lui v1, L786 ;; [ 0] (set! v1-0 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 1] (set! f0-0 (l.f v1-0)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 2] (set! v1-1 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [ 3] (s.f! (+ v1-1 1724) f0-0) [v1: control-info ] -> [] - lw v1, *duck-mods*(s7) ;; [ 4] (set! v1-2 *duck-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [ 5] (set! a0-0 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [ 6] (s.w! (+ a0-0 656) v1-2) [v1: surface a0: control-info ] -> [] - lw t9, target-collide-set!(s7);; [ 7] (set! t9-0 target-collide-set!) - ;; [] -> [t9: (function symbol float int :behavior target) ] - daddiu a0, s7, duck ;; [ 8] (set! a0-1 'duck) [] -> [a0: symbol ] - lui v1, L786 ;; [ 9] (set! v1-3 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a1, 0(v1) ;; [ 10] (set! a1-0 (l.w v1-3)) [v1: ] -> [a1: int ] - jalr ra, t9 ;; [ 11] (call! a0-1 a1-0) - ;; [a0: symbol a1: int t9: (function symbol float int :behavior target) ] -> [v0: int ] - sll v0, ra, 0 - - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-duck-stance) - () - (set! (-> self control unknown-float81) 1.0) - (set! (-> self control unknown-surface00) *duck-mods*) - (target-collide-set! 'duck (the-as float 1.0)) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function mod-var-jump -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x80, fp? 1 ra? 1 ep? 1 - ;stack_vars: 32 bytes at 16 - ;gprs: gp s5 s4 s3 - ;fprs: f30 f28 f26 f24 + ;stack: total 0x80, fp? 0 ra? 1 ep? 1 + ;stack_vars: 56 bytes at 8 + ;gprs: gp s5 s4 + ;fprs: f30 f28 ;; Warnings: +;; WARN: Type Propagation failed: Function (method 51 ashelin) has unknown type ;; Used lq/sq -;; v0-2: vector v1-57: vector a0-0: symbol a1-0: symbol a2-0: symbol a3-0: vector s3-1: vector -;; s4-0: vector s6-0: target f0-5: float f0-13: float f26-0: float f28-0: float f30-0: float -L406: +L71: daddiu sp, sp, -128 sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s3, 48(sp) sq s4, 64(sp) sq s5, 80(sp) sq gp, 96(sp) - swc1 f24, 112(sp) - swc1 f26, 116(sp) - swc1 f28, 120(sp) - swc1 f30, 124(sp) + swc1 f28, 112(sp) + swc1 f30, 116(sp) B0: - or gp, a1, r0 ;; [ 0] (set! arg1 arg1) [a1: symbol ] -> [gp: symbol ] - or s5, a3, r0 ;; [ 1] (set! arg3 arg3) [a3: vector ] -> [s5: vector ] - lui v1, L769 ;; [ 2] (set! v1-0 L769) [] -> [v1: ] - ori v1, v1, L769 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 3] (set! f0-0 (l.f v1-0)) [v1: ] -> [] - lw v1, *display*(s7) ;; [ 4] (set! v1-1 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 5] (set! v1-2 (l.d (+ v1-1 780))) [v1: display ] -> [v1: time-frame ] - ld a1, 164(s6) ;; [ 6] (set! a1-1 (l.d (+ self 164))) [s6: target ] -> [a1: time-frame ] - dsubu v1, v1, a1 ;; [ 7] (set! v1-3 (- v1-2 a1-1)) [v1: time-frame a1: time-frame ] -> [v1: time-frame ] - mtc1 f1, v1 ;; [ 8] (set! f1-0 (gpr->fpr v1-3)) [v1: time-frame ] -> [] - cvt.s.w f1, f1 ;; [ 9] (set! f1-1 (i2f f1-0)) [] -> [] - mul.s f30, f0, f1 ;; [ 10] (set! f30-0 (*.s f0-0 f1-1)) [] -> [] - lui v1, L786 ;; [ 11] (set! v1-4 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 12] (set! f0-1 (l.f v1-4)) [v1: ] -> [] - c.lt.s f0, f30 ;; [ 13] (b! (<.s f0-1 f30-0) L407 (set! v1-5 #t)) [] -> [v1: symbol ] - bc1t L407 - daddiu v1, s7, 8 + or gp, a0, r0 ;; [ 0] (set! gp a0) + lw t9, quaternion-y-angle(s7);; [ 1] (set! t9 quaternion-y-angle) + lwu v1, 124(gp) ;; [ 2] (set! v1 (l.wu (+ gp 124))) + daddiu a0, v1, 28 ;; [ 3] (set! a0 (+ v1 28)) + jalr ra, t9 ;; [ 4] (call!) + sll v0, ra, 0 + + mtc1 f28, v0 ;; [ 5] (set! f28 (gpr->fpr v0)) + lbu v1, 416(gp) ;; [ 6] (set! v1 (l.bu (+ gp 416))) + addiu a0, r0, 6 ;; [ 7] (set! a0 6) + bne v1, a0, L76 ;; [ 8] (b! (!= v1 a0) L76 (nop!)) + sll r0, r0, 0 B1: - or v1, s7, r0 ;; [ 14] (set! v1-5 #f) [] -> [v1: '#f ] + daddiu v1, gp, 380 ;; [ 9] (set! v1 (+ gp 380)) + ld v1, 0(v1) ;; [ 10] (set! v1 (l.d v1)) + subu a0, v1, s7 ;; [ 11] (set! a0 (subu-s7 v1)) + beql a0, r0, L73 ;; [ 12] (bl! (zero? a0) L73 (no-delay!)) B2: -L407: - bnel s7, v1, L409 ;; [ 15] (bl! (truthy v1-5) L409 (no-delay!)) [v1: symbol ] -> [] + or a0, s7, r0 ;; [ 13] (set! a0 #f) + B3: - or v1, v1, r0 ;; [ 16] (set! v1-6 v1-5) [v1: symbol ] -> [v1: symbol ] + sllv a0, v1, r0 ;; [ 14] (.sllv a0 v1 r0) + lwu a1, 0(a0) ;; [ 15] (set! a1 (l.wu a0)) + lw a0, 40(a1) ;; [ 16] (set! a0 (l.w (+ a1 40))) + dsra32 v1, v1, 0 ;; [ 17] (set! v1 (sra v1 32)) + bne v1, a0, L72 ;; [ 18] (b! (!= v1 a0) L72 (set! a0 #f)) + or a0, s7, r0 B4: - lwu v1, 108(s6) ;; [ 17] (set! v1-7 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 2196(v1) ;; [ 18] (set! f0-2 (l.f (+ v1-7 2196))) [v1: control-info ] -> [] - mtc1 f1, r0 ;; [ 19] (set! f1-2 0) [] -> [] - c.lt.s f0, f1 ;; [ 20] (b! (<.s f0-2 f1-2) L408 (set! v1-8 #t)) [] -> [v1: symbol ] - bc1t L408 - daddiu v1, s7, 8 - + or a0, a1, r0 ;; [ 19] (set! a0 a1) B5: - or v1, s7, r0 ;; [ 21] (set! v1-8 #f) [] -> [v1: '#f ] +L72: + or v1, a0, r0 ;; [ 20] (set! v1 a0) B6: -L408: - bnel s7, v1, L409 ;; [ 22] (bl! (truthy v1-8) L409 (no-delay!)) [v1: symbol ] -> [] -B7: - or v1, v1, r0 ;; [ 23] (set! v1-6 v1-8) [v1: symbol ] -> [v1: symbol ] - -B8: - beq s7, a2, L409 ;; [ 24] (b! (not arg2) L409 (set! v1-6 #t)) [a2: symbol ] -> [v1: symbol ] - daddiu v1, s7, 8 - -B9: - or v1, s7, r0 ;; [ 25] (set! v1-6 #f) [] -> [v1: '#f ] -B10: -L409: - beq s7, v1, L410 ;; [ 26] (b! (not v1-6) L410 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B11: - lui v1, L787 ;; [ 27] (set! v1-9 L787) [] -> [v1: ] - ori v1, v1, L787 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 28] (set! f0-3 (l.f v1-9)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 29] (set! v1-10 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2196(v1) ;; [ 30] (s.f! (+ v1-10 2196) f0-3) [v1: control-info ] -> [] - mfc1 v1, f0 ;; [ 31] (set! v1-11 (fpr->gpr f0-3)) [] -> [v1: float ] - beq r0, r0, L411 ;; [ 32] (b! #t L411 (nop!)) [] -> [] - sll r0, r0, 0 - -B12: -L410: - lwu v1, 108(s6) ;; [ 33] (set! v1-12 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f30, 2196(v1) ;; [ 34] (s.f! (+ v1-12 2196) f30-0) [v1: control-info ] -> [] - lwu v1, 108(s6) ;; [ 35] (set! v1-13 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f30, 2200(v1) ;; [ 36] (s.f! (+ v1-13 2200) f30-0) [v1: control-info ] -> [] - beq s7, a0, L411 ;; [ 37] (b! (not arg0) L411 (set! v1-14 #f)) [a0: symbol ] -> [v1: '#f ] +L73: + beq s7, a0, L75 ;; [ 21] (b! (not a0) L75 (set! v1 #f)) or v1, s7, r0 -B13: - daddiu s3, sp, 16 ;; [ 38] (set! s3-0 (+ sp-0 16)) [sp: ] -> [s3: vector ] - sq r0, 0(s3) ;; [ 39] (s.q! s3-0 0) [s3: vector ] -> [] - lwu v1, 108(s6) ;; [ 40] (set! v1-15 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 12 ;; [ 41] (set! v1-16 (+ v1-15 12)) [v1: control-info ] -> [v1: vector ] - lwu a0, 108(s6) ;; [ 42] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu a0, a0, 2220 ;; [ 43] (set! a0-2 (+ a0-1 2220)) [a0: control-info ] -> [a0: vector ] - lqc2 vf4, 0(v1) ;; [ 44] (set! s3-1 (vector-!2 s3-0 v1-16 a0-2)) - ;; [v1: vector a0: vector s3: vector ] -> [s3: vector ] - lqc2 vf5, 0(a0) - vmove.w vf6, vf0 - vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(s3) - daddiu s4, sp, 32 ;; [ 45] (set! s4-0 (+ sp-0 32)) [sp: ] -> [s4: vector ] - sq r0, 0(s4) ;; [ 46] (s.q! s4-0 0) [s4: vector ] -> [] - lwu v1, 108(s6) ;; [ 47] (set! v1-17 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 48] (set! v1-18 (l.wu (+ v1-17 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 49] (set! a0-3 (+ v1-18 28)) [v1: dynamics ] -> [a0: vector ] - or v1, s5, r0 ;; [ 50] (set! v1-19 arg3) [s5: vector ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [ 51] (set! f0-4 (vec3dot a0-3 v1-19)) [v1: vector a0: vector ] -> [] - lwc1 f1, 4(a0) - lwc1 f2, 8(a0) +B7: + lwu v1, -4(a0) ;; [ 22] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 96(v1) ;; [ 23] (set! t9 (l.wu (+ v1 96))) + addiu a1, r0, 0 ;; [ 24] (set! a1 0) + jalr ra, t9 ;; [ 25] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 26] (set! v1 v0) + daddiu s5, sp, 16 ;; [ 27] (set! s5 (+ sp 16)) + lwu v1, 124(gp) ;; [ 28] (set! v1 (l.wu (+ gp 124))) + daddiu v1, v1, 60 ;; [ 29] (set! v1 (+ v1 60)) + lq v1, 0(v1) ;; [ 30] (set! v1 (l.q v1)) + sq v1, 0(s5) ;; [ 31] (s.q! s5 v1) + lwu v1, 124(gp) ;; [ 32] (set! v1 (l.wu (+ gp 124))) + daddiu s4, v1, 60 ;; [ 33] (set! s4 (+ v1 60)) + lw t9, vector-z-quaternion!(s7);; [ 34] (set! t9 vector-z-quaternion!) + daddiu a0, sp, 32 ;; [ 35] (set! a0 (+ sp 32)) + lwu v1, 124(gp) ;; [ 36] (set! v1 (l.wu (+ gp 124))) + daddiu a1, v1, 28 ;; [ 37] (set! a1 (+ v1 28)) + jalr ra, t9 ;; [ 38] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 39] (set! v1 v0) + lwc1 f0, 0(s4) ;; [ 40] (set! f0 (vec3dot s4 v1)) + lwc1 f1, 4(s4) + lwc1 f2, 8(s4) lwc1 f3, 0(v1) lwc1 f4, 4(v1) lwc1 f5, 8(v1) mula.s f0, f3 madda.s f1, f4 madd.s f0, f2, f5 - mfc1 v1, f0 ;; [ 52] (set! v1-20 (fpr->gpr f0-4)) [] -> [v1: float ] - mtc1 f0, v1 ;; [ 53] (set! f0-5 (gpr->fpr v1-20)) [v1: float ] -> [] - mtc1 f1, r0 ;; [ 54] (set! f1-3 0) [] -> [] - or a1, s4, r0 ;; [ 55] (set! a1-2 s4-0) [s4: vector ] -> [a1: vector ] - or v1, s5, r0 ;; [ 56] (set! v1-21 arg3) [s5: vector ] -> [v1: vector ] - or a0, s4, r0 ;; [ 57] (set! a0-4 s4-0) [s4: vector ] -> [a0: vector ] - lwu a2, 108(s6) ;; [ 58] (set! a2-1 (l.wu (+ self 108))) [s6: target ] -> [a2: control-info ] - lwu a2, 432(a2) ;; [ 59] (set! a2-2 (l.wu (+ a2-1 432))) [a2: control-info ] -> [a2: dynamics ] - daddiu a2, a2, 28 ;; [ 60] (set! a2-3 (+ a2-2 28)) [a2: dynamics ] -> [a2: vector ] - lqc2 vf1, 0(a2) ;; [ 61] (set! a0-5 (vector-float*!2 a0-4 a2-3 f0-5)) - ;; [a0: vector a2: vector ] -> [a0: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a0) - lqc2 vf4, 0(v1) ;; [ 62] (set! a1-3 (vector-!2 a1-2 v1-21 a0-5)) - ;; [v1: vector a0: vector a1: vector ] -> [a1: vector ] - lqc2 vf5, 0(a0) - vmove.w vf6, vf0 - vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(a1) - lw t9, vector-length(s7) ;; [ 63] (set! t9-0 vector-length) [] -> [t9: (function vector float) ] - or a0, s4, r0 ;; [ 64] (set! a0-6 s4-0) [s4: vector ] -> [a0: vector ] - jalr ra, t9 ;; [ 65] (call! a0-6) [a0: vector t9: (function vector float) ] -> [v0: float ] + mfc1 v1, f0 ;; [ 41] (set! v1 (fpr->gpr f0)) + mtc1 f0, v1 ;; [ 42] (set! f0 (gpr->fpr v1)) + mtc1 f1, r0 ;; [ 43] (set! f1 0) + c.lt.s f0, f1 ;; [ 44] (b! (>=.s f0 f1) L74 (set! v1 #f)) + bc1f L74 + or v1, s7, r0 + +B8: + lw t9, vector-negate-in-place!(s7);; [ 45] (set! t9 vector-negate-in-place!) + or a0, s5, r0 ;; [ 46] (set! a0 s5) + jalr ra, t9 ;; [ 47] (call!) sll v0, ra, 0 - mtc1 f28, v0 ;; [ 66] (set! f28-0 (gpr->fpr v0-0)) [v0: float ] -> [] - mov.s f26, f28 ;; [ 67] (set! f26-0 f28-0) [] -> [] - lui v1, L748 ;; [ 68] (set! v1-22 L748) [] -> [v1: ] - ori v1, v1, L748 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 69] (set! f0-6 (l.f v1-22)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 70] (set! v1-23 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 71] (set! v1-24 (l.wu (+ v1-23 432))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f1, 8(v1) ;; [ 72] (set! f1-4 (l.f (+ v1-24 8))) [v1: dynamics ] -> [] - mul.s f24, f0, f1 ;; [ 73] (set! f24-0 (*.s f0-6 f1-4)) [] -> [] - lw t9, lerp-scale(s7) ;; [ 74] (set! t9-1 lerp-scale) [] -> [t9: (function float float float float float float) ] - lwu v1, 108(s6) ;; [ 75] (set! v1-25 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 2180(v1) ;; [ 76] (set! f0-7 (l.f (+ v1-25 2180))) [v1: control-info ] -> [] - mfc1 a0, f0 ;; [ 77] (set! a0-7 (fpr->gpr f0-7)) [] -> [a0: float ] - lwu v1, 108(s6) ;; [ 78] (set! v1-26 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 2184(v1) ;; [ 79] (set! f0-8 (l.f (+ v1-26 2184))) [v1: control-info ] -> [] - mfc1 a1, f0 ;; [ 80] (set! a1-4 (fpr->gpr f0-8)) [] -> [a1: float ] - mfc1 a2, f30 ;; [ 81] (set! a2-4 (fpr->gpr f30-0)) [] -> [a2: float ] - lui v1, L814 ;; [ 82] (set! v1-27 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a3, 0(v1) ;; [ 83] (set! a3-1 (l.w v1-27)) [v1: ] -> [a3: int ] - lui v1, L786 ;; [ 84] (set! v1-28 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw t0, 0(v1) ;; [ 85] (set! t0-0 (l.w v1-28)) [v1: ] -> [t0: int ] - jalr ra, t9 ;; [ 86] (call! a0-7 a1-4 a2-4 a3-1 t0-0) - ;; [a0: float a1: float a2: float a3: int t0: int t9: (function float float float float float float) ] -> [v0: float ] + or v1, v0, r0 ;; [ 48] (set! v1 v0) +B9: +L74: + lw t9, atan(s7) ;; [ 49] (set! t9 atan) + lwc1 f0, 0(s5) ;; [ 50] (set! f0 (l.f s5)) + mfc1 a0, f0 ;; [ 51] (set! a0 (fpr->gpr f0)) + lwc1 f0, 8(s5) ;; [ 52] (set! f0 (l.f (+ s5 8))) + mfc1 a1, f0 ;; [ 53] (set! a1 (fpr->gpr f0)) + jalr ra, t9 ;; [ 54] (call!) sll v0, ra, 0 - mtc1 f0, v0 ;; [ 87] (set! f0-9 (gpr->fpr v0-1)) [v0: float ] -> [] - lwu v1, 108(s6) ;; [ 88] (set! v1-29 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 89] (set! v1-30 (l.wu (+ v1-29 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu v1, v1, 28 ;; [ 90] (set! v1-31 (+ v1-30 28)) [v1: dynamics ] -> [v1: vector ] - lwc1 f1, 0(v1) ;; [ 91] (set! f1-5 (vec3dot v1-31 s3-1)) [v1: vector s3: vector ] -> [] - lwc1 f2, 4(v1) - lwc1 f3, 8(v1) - lwc1 f4, 0(s3) - lwc1 f5, 4(s3) - lwc1 f6, 8(s3) - mula.s f1, f4 - madda.s f2, f5 - madd.s f1, f3, f6 - mfc1 v1, f1 ;; [ 92] (set! v1-32 (fpr->gpr f1-5)) [] -> [v1: float ] - mtc1 f1, v1 ;; [ 93] (set! f1-6 (gpr->fpr v1-32)) [v1: float ] -> [] - sub.s f0, f0, f1 ;; [ 94] (set! f0-10 (-.s f0-9 f1-6)) [] -> [] - mul.s f0, f24, f0 ;; [ 95] (set! f0-11 (*.s f24-0 f0-10)) [] -> [] - sqrt.s f0, f0 ;; [ 96] (set! f0-12 (sqrt.s f0-11)) [] -> [] - lui v1, L770 ;; [ 97] (set! v1-33 L770) [] -> [v1: ] - ori v1, v1, L770 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 98] (set! f1-7 (l.f v1-33)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 99] (set! v1-34 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [100] (set! v1-35 (l.wu (+ v1-34 432))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f2, 8(v1) ;; [101] (set! f2-0 (l.f (+ v1-35 8))) [v1: dynamics ] -> [] - neg.s f2, f2 ;; [102] (set! f2-1 (neg.s f2-0)) [] -> [] - mul.s f1, f1, f2 ;; [103] (set! f1-8 (*.s f1-7 f2-1)) [] -> [] - sub.s f0, f0, f1 ;; [104] (set! f0-13 (-.s f0-12 f1-8)) [] -> [] - or v1, s5, r0 ;; [105] (set! v1-36 arg3) [s5: vector ] -> [v1: vector ] - lwu a0, 108(s6) ;; [106] (set! a0-8 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 432(a0) ;; [107] (set! a0-9 (l.wu (+ a0-8 432))) [a0: control-info ] -> [a0: dynamics ] - daddiu a0, a0, 28 ;; [108] (set! a0-10 (+ a0-9 28)) [a0: dynamics ] -> [a0: vector ] - lqc2 vf1, 0(a0) ;; [109] (set! s5-1 (vector-float*!2 arg3 a0-10 f0-13)) - ;; [a0: vector s5: vector ] -> [s5: vector ] - mfc1 a0, f0 - qmtc2.i vf2, a0 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(s5) - or a0, s4, r0 ;; [110] (set! a0-11 s4-0) [s4: vector ] -> [a0: vector ] - div.s f0, f28, f26 ;; [111] (set! f0-14 (/.s f28-0 f26-0)) [] -> [] - lqc2 vf1, 0(s4) ;; [112] (set! a0-12 (vector-float*!2 a0-11 s4-0 f0-14)) - ;; [a0: vector s4: vector ] -> [a0: vector ] - mfc1 a1, f0 - qmtc2.i vf2, a1 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a0) - vmove.w vf6, vf0 ;; [113] (set! v1-37 (vector+!2 v1-36 s5-1 a0-12)) - ;; [v1: vector a0: vector s5: vector ] -> [v1: vector ] - lqc2 vf4, 0(s5) - lqc2 vf5, 0(a0) - vadd.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) + mtc1 f28, v0 ;; [ 55] (set! f28 (gpr->fpr v0)) + mfc1 v1, f28 ;; [ 56] (set! v1 (fpr->gpr f28)) +B10: +L75: + beq r0, r0, L85 ;; [ 57] (b! #t L85 (nop!)) + sll r0, r0, 0 + +B11: +L76: + daddiu s5, sp, 48 ;; [ 58] (set! s5 (+ sp 48)) + mtc1 f0, r0 ;; [ 59] (set! f0 0) + mtc1 f0, r0 ;; [ 60] (set! f0 0) + lw t9, vector-z-quaternion!(s7);; [ 61] (set! t9 vector-z-quaternion!) + or a0, s5, r0 ;; [ 62] (set! a0 s5) + lwu v1, 124(gp) ;; [ 63] (set! v1 (l.wu (+ gp 124))) + daddiu a1, v1, 28 ;; [ 64] (set! a1 (+ v1 28)) + jalr ra, t9 ;; [ 65] (call!) + sll v0, ra, 0 + + lw t9, atan(s7) ;; [ 66] (set! t9 atan) + lwc1 f0, 0(s5) ;; [ 67] (set! f0 (l.f s5)) + mfc1 a0, f0 ;; [ 68] (set! a0 (fpr->gpr f0)) + lwc1 f0, 8(s5) ;; [ 69] (set! f0 (l.f (+ s5 8))) + mfc1 a1, f0 ;; [ 70] (set! a1 (fpr->gpr f0)) + jalr ra, t9 ;; [ 71] (call!) + sll v0, ra, 0 + + mtc1 f28, v0 ;; [ 72] (set! f28 (gpr->fpr v0)) + or a0, gp, r0 ;; [ 73] (set! a0 gp) + lwu v1, -4(a0) ;; [ 74] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 216(v1) ;; [ 75] (set! t9 (l.wu (+ v1 216))) + or a1, s5, r0 ;; [ 76] (set! a1 s5) + jalr ra, t9 ;; [ 77] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 78] (set! v1 v0) + lw t9, atan(s7) ;; [ 79] (set! t9 atan) + lwc1 f0, 0(s5) ;; [ 80] (set! f0 (l.f s5)) + mfc1 a0, f0 ;; [ 81] (set! a0 (fpr->gpr f0)) + lwc1 f0, 8(s5) ;; [ 82] (set! f0 (l.f (+ s5 8))) + mfc1 a1, f0 ;; [ 83] (set! a1 (fpr->gpr f0)) + jalr ra, t9 ;; [ 84] (call!) + sll v0, ra, 0 + + mtc1 f30, v0 ;; [ 85] (set! f30 (gpr->fpr v0)) + lw t9, deg-(s7) ;; [ 86] (set! t9 deg-) + mfc1 a0, f30 ;; [ 87] (set! a0 (fpr->gpr f30)) + mfc1 a1, f28 ;; [ 88] (set! a1 (fpr->gpr f28)) + jalr ra, t9 ;; [ 89] (call!) + sll v0, ra, 0 + + mtc1 f0, v0 ;; [ 90] (set! f0 (gpr->fpr v0)) + or v1, s7, r0 ;; [ 91] (set! v1 #f) + lui v1, 18048 ;; [ 92] (set! v1 #x46800000) + mtc1 f1, v1 ;; [ 93] (set! f1 (gpr->fpr v1)) + abs.s f2, f0 ;; [ 94] (set! f2 (abs.s f0)) + c.lt.s f1, f2 ;; [ 95] (b! (<.s f1 f2) L77 (nop!)) + bc1t L77 + sll r0, r0, 0 + +B12: + mov.s f28, f30 ;; [ 96] (set! f28 f30) + mfc1 v1, f28 ;; [ 97] (set! v1 (fpr->gpr f28)) + beq r0, r0, L78 ;; [ 98] (b! #t L78 (nop!)) + sll r0, r0, 0 + +B13: +L77: + lui v1, 18176 ;; [ 99] (set! v1 #x47000000) + mtc1 f1, v1 ;; [100] (set! f1 (gpr->fpr v1)) + add.s f1, f1, f30 ;; [101] (set! f1 (+.s f1 f30)) + cvt.w.s f1, f1 ;; [102] (set! f1 (f2i f1)) + mfc1 v1, f1 ;; [103] (set! v1 (fpr->gpr f1)) + dsll32 v1, v1, 16 ;; [104] (set! v1 (sll v1 48)) + dsra32 v1, v1, 16 ;; [105] (set! v1 (sra v1 48)) + mtc1 f1, v1 ;; [106] (set! f1 (gpr->fpr v1)) + cvt.s.w f28, f1 ;; [107] (set! f28 (i2f f1)) + mfc1 v1, f28 ;; [108] (set! v1 (fpr->gpr f28)) B14: -L411: - or v1, r0, r0 ;; [114] (set! v1-38 0) [] -> [v1: ] - beql s7, gp, L414 ;; [115] (bl! (not arg1) L414 (no-delay!)) [gp: symbol ] -> [] +L78: + lui v1, 17920 ;; [109] (set! v1 #x46000000) + mtc1 f1, v1 ;; [110] (set! f1 (gpr->fpr v1)) + c.lt.s f1, f0 ;; [111] (b! (>=.s f1 f0) L79 (set! v1 #t)) + bc1f L79 + daddiu v1, s7, 4 + B15: - or v1, gp, r0 ;; [116] (set! v1-39 arg1) [gp: symbol ] -> [v1: symbol ] - + or v1, s7, r0 ;; [112] (set! v1 #f) B16: - lwu v1, 120(s6) ;; [117] (set! v1-40 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [118] (set! v1-41 (l.w (+ v1-40 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [119] (b! (<=0.si v1-41) L412 (set! v1-42 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L412 - or v1, s7, r0 - +L79: + beql s7, v1, L80 ;; [113] (bl! (not v1) L80 (no-delay!)) B17: - lwu v1, 120(s6) ;; [120] (set! v1-43 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [121] (set! v1-44 (l.wu (+ v1-43 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [122] (set! v1-42 (l.wu (+ v1-44 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B18: -L412: - beql s7, v1, L414 ;; [123] (bl! (not v1-42) L414 (no-delay!)) [v1: art-joint-anim ] -> [] -B19: - or v1, v1, r0 ;; [124] (set! v1-39 v1-42) [v1: art-joint-anim ] -> [v1: art-joint-anim ] + or v1, v1, r0 ;; [114] (set! v1 v1) +B18: + lui v1, -14720 ;; [115] (set! v1 -964689920) + mtc1 f1, v1 ;; [116] (set! f1 (gpr->fpr v1)) + c.lt.s f0, f1 ;; [117] (b! (>=.s f0 f1) L80 (set! v1 #t)) + bc1f L80 + daddiu v1, s7, 4 + +B19: + or v1, s7, r0 ;; [118] (set! v1 #f) B20: - lwu v1, 120(s6) ;; [125] (set! v1-45 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [126] (set! v1-46 (l.w (+ v1-45 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [127] (b! (<=0.si v1-46) L413 (set! v1-47 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L413 - or v1, s7, r0 +L80: + beq s7, v1, L81 ;; [119] (b! (not v1) L81 (nop!)) + sll r0, r0, 0 B21: - lwu v1, 120(s6) ;; [128] (set! v1-48 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [129] (set! v1-49 (l.wu (+ v1-48 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [130] (set! v1-47 (l.wu (+ v1-49 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] + lwu v1, 132(gp) ;; [120] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [121] (set! v1 (l.wu (+ v1 8))) + lwu v1, 68(v1) ;; [122] (set! v1 (l.wu (+ v1 68))) + or a0, v1, r0 ;; [123] (set! a0 v1) + beq r0, r0, L84 ;; [124] (b! #t L84 (nop!)) + sll r0, r0, 0 + B22: -L413: - lwu v1, 12(v1) ;; [131] (set! v1-50 (l.wu (+ v1-47 12))) [v1: art-joint-anim ] -> [v1: res-lump ] - beql s7, v1, L414 ;; [132] (bl! (not v1-50) L414 (no-delay!)) [v1: res-lump ] -> [] +L81: + lui v1, 17920 ;; [125] (set! v1 #x46000000) + mtc1 f1, v1 ;; [126] (set! f1 (gpr->fpr v1)) + c.lt.s f0, f1 ;; [127] (b! (<.s f0 f1) L82 (nop!)) + bc1t L82 + sll r0, r0, 0 + B23: - or v1, v1, r0 ;; [133] (set! v1-39 v1-50) [v1: res-lump ] -> [v1: res-lump ] + lwu v1, 132(gp) ;; [128] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [129] (set! v1 (l.wu (+ v1 8))) + lwu v1, 56(v1) ;; [130] (set! v1 (l.wu (+ v1 56))) + lui a0, 18176 ;; [131] (set! a0 #x47000000) + mtc1 f0, a0 ;; [132] (set! f0 (gpr->fpr a0)) + add.s f0, f0, f30 ;; [133] (set! f0 (+.s f0 f30)) + cvt.w.s f0, f0 ;; [134] (set! f0 (f2i f0)) + mfc1 a0, f0 ;; [135] (set! a0 (fpr->gpr f0)) + dsll32 a0, a0, 16 ;; [136] (set! a0 (sll a0 48)) + dsra32 a0, a0, 16 ;; [137] (set! a0 (sra a0 48)) + mtc1 f0, a0 ;; [138] (set! f0 (gpr->fpr a0)) + cvt.s.w f28, f0 ;; [139] (set! f28 (i2f f0)) + mfc1 a0, f28 ;; [140] (set! a0 (fpr->gpr f28)) + beq r0, r0, L84 ;; [141] (b! #t L84 (nop!)) + sll r0, r0, 0 B24: - daddiu v1, s7, #t ;; [134] (set! v1-39 #t) [] -> [v1: symbol ] +L82: + or a0, gp, r0 ;; [142] (set! a0 gp) + lwu v1, -4(a0) ;; [143] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 492(v1) ;; [144] (set! t9 (l.wu (+ v1 492))) + addiu a1, r0, 3 ;; [145] (set! a1 3) + jalr ra, t9 ;; [146] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [147] (set! v1 v0) + bne v1, r0, L83 ;; [148] (b! (nonzero? v1) L83 (nop!)) + sll r0, r0, 0 + B25: -L414: - beq s7, v1, L417 ;; [135] (b! (not v1-39) L417 (set! v0-2 #f)) [v1: basic ] -> [v0: '#f ] - or v0, s7, r0 + lwu v1, 132(gp) ;; [149] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [150] (set! v1 (l.wu (+ v1 8))) + lwu v1, 68(v1) ;; [151] (set! v1 (l.wu (+ v1 68))) + or a0, v1, r0 ;; [152] (set! a0 v1) + beq r0, r0, L84 ;; [153] (b! #t L84 (nop!)) + sll r0, r0, 0 B26: - lw v1, res-lump(s7) ;; [136] (set! v1-51 res-lump) [] -> [v1: ] - lwu gp, 56(v1) ;; [137] (set! gp-1 (l.wu (+ v1-51 56))) - ;; [v1: ] -> [gp: ] - lwu v1, 120(s6) ;; [138] (set! v1-52 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [139] (set! v1-53 (l.w (+ v1-52 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [140] (b! (<=0.si v1-53) L415 (set! v1-54 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L415 - or v1, s7, r0 - +L83: + lwu v1, 132(gp) ;; [154] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [155] (set! v1 (l.wu (+ v1 8))) + lwu v1, 56(v1) ;; [156] (set! v1 (l.wu (+ v1 56))) + lui a0, 18176 ;; [157] (set! a0 #x47000000) + mtc1 f0, a0 ;; [158] (set! f0 (gpr->fpr a0)) + add.s f0, f0, f30 ;; [159] (set! f0 (+.s f0 f30)) + cvt.w.s f0, f0 ;; [160] (set! f0 (f2i f0)) + mfc1 a0, f0 ;; [161] (set! a0 (fpr->gpr f0)) + dsll32 a0, a0, 16 ;; [162] (set! a0 (sll a0 48)) + dsra32 a0, a0, 16 ;; [163] (set! a0 (sra a0 48)) + mtc1 f0, a0 ;; [164] (set! f0 (gpr->fpr a0)) + cvt.s.w f28, f0 ;; [165] (set! f28 (i2f f0)) + mfc1 a0, f28 ;; [166] (set! a0 (fpr->gpr f28)) B27: - lwu v1, 120(s6) ;; [141] (set! v1-55 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [142] (set! v1-56 (l.wu (+ v1-55 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [143] (set! v1-54 (l.wu (+ v1-56 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] +L84: + sw v1, 988(gp) ;; [167] (s.w! (+ gp 988) v1) B28: -L415: - lwu s5, 12(v1) ;; [144] (set! s5-2 (l.wu (+ v1-54 12))) [v1: art-joint-anim ] -> [s5: res-lump ] - daddiu s4, s7, collide-offset;; [145] (set! s4-1 'collide-offset) [] -> [s4: symbol ] - daddiu s3, s7, interp ;; [146] (set! s3-2 'interp) [] -> [s3: symbol ] - lw t9, ja-frame-num(s7) ;; [147] (set! t9-2 ja-frame-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [148] (set! a0-13 0) [] -> [a0: ] - jalr ra, t9 ;; [149] (call! a0-13) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - or a3, v0, r0 ;; [150] (set! a3-2 v0-3) [v0: float ] -> [a3: float ] - or t0, s7, r0 ;; [151] (set! t0-1 #f) [] -> [t0: '#f ] - or t1, s7, r0 ;; [152] (set! t1-0 #f) [] -> [t1: '#f ] - lw t2, *res-static-buf*(s7);; [153] (set! t2-0 *res-static-buf*) [] -> [t2: pointer ] - or t9, gp, r0 ;; [154] (set! t9-3 gp-1) - ;; [gp: ] -> [t9: ] - or a0, s5, r0 ;; [155] (set! a0-14 s5-2) [s5: res-lump ] -> [a0: res-lump ] - or a1, s4, r0 ;; [156] (set! a1-5 s4-1) [s4: symbol ] -> [a1: symbol ] - or a2, s3, r0 ;; [157] (set! a2-5 s3-2) [s3: symbol ] -> [a2: symbol ] - jalr ra, t9 ;; [158] (call! a0-14 a1-5 a2-5 a3-2 t0-1 t1-0 t2-0) - ;; [a0: res-lump a1: symbol a2: symbol a3: float t0: '#f t1: '#f t2: pointer t9: ] -> [v0: vector ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [159] (set! v1-57 v0-4) [v0: vector ] -> [v1: vector ] - beq s7, v1, L416 ;; [160] (b! (not v1-57) L416 (nop!)) [v1: vector ] -> [] - sll r0, r0, 0 - -B29: - lwu a0, 108(s6) ;; [161] (set! a0-15 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - daddiu v0, a0, 588 ;; [162] (set! v0-2 (+ a0-15 588)) [a0: control-info ] -> [v0: vector ] - lq v1, 0(v1) ;; [163] (set! v1-58 (l.q v1-57)) [v1: vector ] -> [v1: uint128 ] - sq v1, 0(v0) ;; [164] (s.q! v0-2 v1-58) [v0: vector v1: uint128 ] -> [] - beq r0, r0, L417 ;; [165] (b! #t L417 (nop!)) [] -> [] - sll r0, r0, 0 - -B30: -L416: - lwu v1, 108(s6) ;; [166] (set! v1-59 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v0, v1, 588 ;; [167] (set! v0-2 (+ v1-59 588)) [v1: control-info ] -> [v0: vector ] - sq r0, 0(v0) ;; [168] (s.q! v0-2 0) [v0: vector ] -> [] -B31: -L417: +L85: + mfc1 v0, f28 ;; [168] (set! v0 (fpr->gpr f28)) ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 124(sp) - lwc1 f28, 120(sp) - lwc1 f26, 116(sp) - lwc1 f24, 112(sp) + lwc1 f30, 116(sp) + lwc1 f28, 112(sp) lq gp, 96(sp) lq s5, 80(sp) lq s4, 64(sp) - lq s3, 48(sp) jr ra daddiu sp, sp, 128 sll r0, r0, 0 sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(defbehavior mod-var-jump target ((arg0 symbol) (arg1 symbol) (arg2 symbol) (arg3 vector)) - (local-vars (v0-2 vector)) - (let ((f30-0 (* 0.033333335 (the float (- (-> *display* base-frame-counter) (-> self state-time)))))) - (cond - ((or (< 1.0 f30-0) (< (-> self control unknown-float123) 0.0) (not arg2)) - (set! (-> self control unknown-float123) -1.0) - ) - (else - (set! (-> self control unknown-float123) f30-0) - (set! (-> self control unknown-float124) f30-0) - (when arg0 - (let ((s3-1 (vector-! (new-stack-vector0) (-> self control trans) (-> self control unknown-vector102))) - (s4-0 (new-stack-vector0)) - ) - (let ((f0-5 (vector-dot (-> self control dynam gravity-normal) arg3))) - 0.0 - (vector-! s4-0 arg3 (vector-float*! s4-0 (-> self control dynam gravity-normal) f0-5)) - ) - (let* ((f28-0 (vector-length s4-0)) - (f26-0 f28-0) - (f0-13 - (- (sqrtf - (* 2.0 - (-> self control dynam gravity-length) - (- (lerp-scale - (the-as float (-> self control unknown-uint20)) - (the-as float (-> self control unknown-uint30)) - f30-0 - (the-as float 0.0) - (the-as float 1.0) - ) - (vector-dot (-> self control dynam gravity-normal) s3-1) - ) - ) - ) - (* 0.008333334 (- (-> self control dynam gravity-length))) - ) - ) - ) - (vector+! - arg3 - (vector-float*! arg3 (-> self control dynam gravity-normal) f0-13) - (vector-float*! s4-0 s4-0 (/ f28-0 f26-0)) - ) - ) - ) - ) - ) - ) - ) - 0 - (when (and arg1 (ja-group) (and (-> (ja-group) extra) #t)) - (let ((v1-57 (res-lump-struct (-> (ja-group) extra) 'collide-offset vector :time (ja-frame-num 0)))) - (cond - (v1-57 - (set! v0-2 (-> self control unknown-vector13)) - (set! (-> v0-2 quad) (-> v1-57 quad)) - ) - (else - (set! v0-2 (-> self control unknown-vector13)) - (set! (-> v0-2 quad) (the-as uint128 0)) - ) - ) - ) - v0-2 - ) - ) - -;;-*-OpenGOAL-End-*- - + (set! gp a0) + (set! t9 quaternion-y-angle) + (set! v1 (l.wu (+ gp 124))) + (set! a0 (+ v1 28)) + (call!) + (set! f28 (gpr->fpr v0)) + (set! v1 (l.bu (+ gp 416))) + (set! a0 6) + (b! (!= v1 a0) L76 (nop!)) + (set! v1 (+ gp 380)) + (set! v1 (l.d v1)) + (set! a0 (subu-s7 v1)) + (bl! (zero? a0) L73 (no-delay!)) + (set! a0 #f) + (.sllv a0 v1 r0) + (set! a1 (l.wu a0)) + (set! a0 (l.w (+ a1 40))) + (set! v1 (sra v1 32)) + (b! (!= v1 a0) L72 (set! a0 #f)) + (set! a0 a1) +(label L72) + (set! v1 a0) +(label L73) + (b! (not a0) L75 (set! v1 #f)) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 96))) + (set! a1 0) + (call!) + (set! v1 v0) + (set! s5 (+ sp 16)) + (set! v1 (l.wu (+ gp 124))) + (set! v1 (+ v1 60)) + (set! v1 (l.q v1)) + (s.q! s5 v1) + (set! v1 (l.wu (+ gp 124))) + (set! s4 (+ v1 60)) + (set! t9 vector-z-quaternion!) + (set! a0 (+ sp 32)) + (set! v1 (l.wu (+ gp 124))) + (set! a1 (+ v1 28)) + (call!) + (set! v1 v0) + (set! f0 (vec3dot s4 v1)) + (set! v1 (fpr->gpr f0)) + (set! f0 (gpr->fpr v1)) + (set! f1 0) + (b! (>=.s f0 f1) L74 (set! v1 #f)) + (set! t9 vector-negate-in-place!) + (set! a0 s5) + (call!) + (set! v1 v0) +(label L74) + (set! t9 atan) + (set! f0 (l.f s5)) + (set! a0 (fpr->gpr f0)) + (set! f0 (l.f (+ s5 8))) + (set! a1 (fpr->gpr f0)) + (call!) + (set! f28 (gpr->fpr v0)) + (set! v1 (fpr->gpr f28)) +(label L75) + (b! #t L85 (nop!)) +(label L76) + (set! s5 (+ sp 48)) + (set! f0 0) + (set! f0 0) + (set! t9 vector-z-quaternion!) + (set! a0 s5) + (set! v1 (l.wu (+ gp 124))) + (set! a1 (+ v1 28)) + (call!) + (set! t9 atan) + (set! f0 (l.f s5)) + (set! a0 (fpr->gpr f0)) + (set! f0 (l.f (+ s5 8))) + (set! a1 (fpr->gpr f0)) + (call!) + (set! f28 (gpr->fpr v0)) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 216))) + (set! a1 s5) + (call!) + (set! v1 v0) + (set! t9 atan) + (set! f0 (l.f s5)) + (set! a0 (fpr->gpr f0)) + (set! f0 (l.f (+ s5 8))) + (set! a1 (fpr->gpr f0)) + (call!) + (set! f30 (gpr->fpr v0)) + (set! t9 deg-) + (set! a0 (fpr->gpr f30)) + (set! a1 (fpr->gpr f28)) + (call!) + (set! f0 (gpr->fpr v0)) + (set! v1 #f) + (set! v1 #x46800000) + (set! f1 (gpr->fpr v1)) + (set! f2 (abs.s f0)) + (b! (<.s f1 f2) L77 (nop!)) + (set! f28 f30) + (set! v1 (fpr->gpr f28)) + (b! #t L78 (nop!)) +(label L77) + (set! v1 #x47000000) + (set! f1 (gpr->fpr v1)) + (set! f1 (+.s f1 f30)) + (set! f1 (f2i f1)) + (set! v1 (fpr->gpr f1)) + (set! v1 (sll v1 48)) + (set! v1 (sra v1 48)) + (set! f1 (gpr->fpr v1)) + (set! f28 (i2f f1)) + (set! v1 (fpr->gpr f28)) +(label L78) + (set! v1 #x46000000) + (set! f1 (gpr->fpr v1)) + (b! (>=.s f1 f0) L79 (set! v1 #t)) + (set! v1 #f) +(label L79) + (bl! (not v1) L80 (no-delay!)) + (set! v1 v1) + (set! v1 -964689920) + (set! f1 (gpr->fpr v1)) + (b! (>=.s f0 f1) L80 (set! v1 #t)) + (set! v1 #f) +(label L80) + (b! (not v1) L81 (nop!)) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 68))) + (set! a0 v1) + (b! #t L84 (nop!)) +(label L81) + (set! v1 #x46000000) + (set! f1 (gpr->fpr v1)) + (b! (<.s f0 f1) L82 (nop!)) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 56))) + (set! a0 #x47000000) + (set! f0 (gpr->fpr a0)) + (set! f0 (+.s f0 f30)) + (set! f0 (f2i f0)) + (set! a0 (fpr->gpr f0)) + (set! a0 (sll a0 48)) + (set! a0 (sra a0 48)) + (set! f0 (gpr->fpr a0)) + (set! f28 (i2f f0)) + (set! a0 (fpr->gpr f28)) + (b! #t L84 (nop!)) +(label L82) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 492))) + (set! a1 3) + (call!) + (set! v1 v0) + (b! (nonzero? v1) L83 (nop!)) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 68))) + (set! a0 v1) + (b! #t L84 (nop!)) +(label L83) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 56))) + (set! a0 #x47000000) + (set! f0 (gpr->fpr a0)) + (set! f0 (+.s f0 f30)) + (set! f0 (f2i f0)) + (set! a0 (fpr->gpr f0)) + (set! a0 (sll a0 48)) + (set! a0 (sra a0 48)) + (set! f0 (gpr->fpr a0)) + (set! f28 (i2f f0)) + (set! a0 (fpr->gpr f28)) +(label L84) + (s.w! (+ gp 988) v1) +(label L85) + (set! v0 (fpr->gpr f28)) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function init-var-jump +; .function (method 249 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x70, fp? 1 ra? 1 ep? 1 - ;stack_vars: 16 bytes at 16 - ;gprs: gp s5 s4 s3 s2 + ;stack: total 0x30, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp + ;fprs: f30 f28 ;; Warnings: -;; Used lq/sq +;; WARN: Type Propagation failed: Function (method 249 ashelin) has unknown type -;; v0-2: vector a0-0: float a1-0: float a2-0: vector a3-0: vector t0-0: vector s4-1: vector s6-0: target -;; f0-1: float f0-16: float f0-17: float f1-11: float f2-7: float -L418: - daddiu sp, sp, -112 +L86: + daddiu sp, sp, -48 sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s2, 32(sp) - sq s3, 48(sp) - sq s4, 64(sp) - sq s5, 80(sp) - sq gp, 96(sp) + sq gp, 16(sp) + swc1 f28, 32(sp) + swc1 f30, 36(sp) B0: - or s5, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: float ] -> [s5: float ] - or s3, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: float ] -> [s3: float ] - or s4, a2, r0 ;; [ 2] (set! arg2 arg2) [a2: vector ] -> [s4: vector ] - or s2, a3, r0 ;; [ 3] (set! arg3 arg3) [a3: vector ] -> [s2: vector ] - or gp, t0, r0 ;; [ 4] (set! arg4 arg4) [t0: vector ] -> [gp: vector ] - addiu v1, r0, -16385 ;; [ 5] (set! v1-0 -16385) [] -> [v1: ] - lwu a0, 108(s6) ;; [ 6] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 268(a0) ;; [ 7] (set! a0-2 (l.d (+ a0-1 268))) [a0: control-info ] -> [a0: cshape-moving-flags ] - and v1, v1, a0 ;; [ 8] (set! v1-1 (logand v1-0 a0-2)) - ;; [v1: a0: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - lwu a0, 108(s6) ;; [ 9] (set! a0-3 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 268(a0) ;; [ 10] (s.d! (+ a0-3 268) v1-1) [v1: cshape-moving-flags a0: control-info ] -> [] - lw t9, delete-back-vel(s7);; [ 11] (set! t9-0 delete-back-vel) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 12] (call!) [t9: (function none :behavior target) ] -> [v0: none ] + or gp, a0, r0 ;; [ 0] (set! gp a0) + lwu v1, 140(gp) ;; [ 1] (set! v1 (l.wu (+ gp 140))) + daddiu v1, v1, 112 ;; [ 2] (set! v1 (+ v1 112)) + lwc1 f0, 36(v1) ;; [ 3] (set! f0 (l.f (+ v1 36))) + mfc1 v1, f0 ;; [ 4] (set! v1 (fpr->gpr f0)) + mtc1 f30, v1 ;; [ 5] (set! f30 (gpr->fpr v1)) + lw t9, lerp-scale(s7) ;; [ 6] (set! t9 lerp-scale) + addiu a0, r0, 0 ;; [ 7] (set! a0 0) + lui a1, 16384 ;; [ 8] (set! a1 #x40000000) + mfc1 a2, f30 ;; [ 9] (set! a2 (fpr->gpr f30)) + lui a3, 17984 ;; [ 10] (set! a3 #x46400000) + lui t0, 18208 ;; [ 11] (set! t0 #x47200000) + jalr ra, t9 ;; [ 12] (call!) sll v0, ra, 0 - lw v1, *display*(s7) ;; [ 13] (set! v1-2 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 14] (set! v1-3 (l.d (+ v1-2 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 15] (set! a0-4 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 180(a0) ;; [ 16] (set! a0-5 (l.d (+ a0-4 180))) [a0: control-info ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 17] (set! v1-4 (- v1-3 a0-5)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti v1, v1, 15 ;; [ 18] (b! (>=.si v1-4 15) L420 (set! v1-5 #f)) [v1: time-frame ] -> [v1: '#f ] - beq v1, r0, L420 + mtc1 f0, v0 ;; [ 13] (set! f0 (gpr->fpr v0)) + lwc1 f1, 992(gp) ;; [ 14] (set! f1 (l.f (+ gp 992))) + lwu v1, 136(gp) ;; [ 15] (set! v1 (l.wu (+ gp 136))) + lbu v1, 3(v1) ;; [ 16] (set! v1 (l.bu (+ v1 3))) + sltu v1, r0, v1 ;; [ 17] (b! (<=0.ui v1) L87 (set! v1 #f)) + beq v1, r0, L87 or v1, s7, r0 B1: - mtc1 f0, r0 ;; [ 19] (set! f0-0 0) [] -> [] - lui v1, L813 ;; [ 20] (set! v1-6 L813) [] -> [v1: ] - ori v1, v1, L813 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 21] (set! f1-0 (l.f v1-6)) [v1: ] -> [] - lui v1, L752 ;; [ 22] (set! v1-7 L752) [] -> [v1: ] - ori v1, v1, L752 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [ 23] (set! f2-0 (l.f v1-7)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 24] (set! v1-8 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [ 25] (set! v1-9 (l.wu (+ v1-8 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [ 26] (set! a0-6 (+ v1-9 28)) [v1: dynamics ] -> [a0: vector ] - lwu v1, 108(s6) ;; [ 27] (set! v1-10 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 188 ;; [ 28] (set! v1-11 (+ v1-10 188)) [v1: control-info ] -> [v1: vector ] - lwc1 f3, 0(a0) ;; [ 29] (set! f3-0 (vec3dot a0-6 v1-11)) [v1: vector a0: vector ] -> [] - lwc1 f4, 4(a0) - lwc1 f5, 8(a0) - lwc1 f6, 0(v1) - lwc1 f7, 4(v1) - lwc1 f8, 8(v1) - mula.s f3, f6 - madda.s f4, f7 - madd.s f3, f5, f8 - mfc1 v1, f3 ;; [ 30] (set! v1-12 (fpr->gpr f3-0)) [] -> [v1: float ] - mtc1 f3, v1 ;; [ 31] (set! f3-1 (gpr->fpr v1-12)) [v1: float ] -> [] - mul.s f2, f2, f3 ;; [ 32] (set! f2-1 (*.s f2-0 f3-1)) [] -> [] - min.s f1, f1, f2 ;; [ 33] (set! f1-1 (min.s f1-0 f2-1)) [] -> [] - max.s f0, f0, f1 ;; [ 34] (set! f0-1 (max.s f0-0 f1-1)) [] -> [] - mtc1 f1, s5 ;; [ 35] (set! f1-2 (gpr->fpr arg0)) [s5: float ] -> [] - add.s f1, f1, f0 ;; [ 36] (set! f1-3 (+.s f1-2 f0-1)) [] -> [] - mfc1 s5, f1 ;; [ 37] (set! arg0 (fpr->gpr f1-3)) [] -> [s5: float ] - mtc1 f1, s3 ;; [ 38] (set! f1-4 (gpr->fpr arg1)) [s3: float ] -> [] - add.s f0, f1, f0 ;; [ 39] (set! f0-2 (+.s f1-4 f0-1)) [] -> [] - mfc1 s3, f0 ;; [ 40] (set! arg1 (fpr->gpr f0-2)) [] -> [s3: float ] - or v1, s3, r0 ;; [ 41] (set! v1-13 arg1) [s3: float ] -> [v1: float ] - lwu v1, 108(s6) ;; [ 42] (set! v1-14 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 660(v1) ;; [ 43] (set! v1-15 (l.wu (+ v1-14 660))) [v1: control-info ] -> [v1: surface ] - lwu v1, 144(v1) ;; [ 44] (set! v1-16 (l.wu (+ v1-15 144))) [v1: surface ] -> [v1: surface-flags ] - andi v1, v1, 16384 ;; [ 45] (set! v1-17 (logand v1-16 #x4000)) [v1: surface-flags ] -> [v1: surface-flags ] - bnel v1, r0, L419 ;; [ 46] (bl! (nonzero? v1-17) L419 (no-delay!)) [v1: surface-flags ] -> [] + lwu v1, 136(gp) ;; [ 18] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [ 19] (set! v1 (l.wu (+ v1 12))) + lwu v1, 4(v1) ;; [ 20] (set! v1 (l.wu (+ v1 4))) B2: - daddiu v1, s7, 8 ;; [ 47] (set! v1-18 #t) [] -> [v1: symbol ] - +L87: + beql s7, v1, L88 ;; [ 21] (bl! (not v1) L88 (no-delay!)) B3: - lwu v1, 108(s6) ;; [ 48] (set! v1-19 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 252(v1) ;; [ 49] (set! v1-20 (l.wu (+ v1-19 252))) [v1: control-info ] -> [v1: pat-surface ] - dsll32 v1, v1, 20 ;; [ 50] (set! v1-21 (sll v1-20 52)) [v1: pat-surface ] -> [v1: ( << 52) ] - dsrl32 v1, v1, 26 ;; [ 51] (set! v1-22 (srl v1-21 58)) [v1: ( << 52) ] -> [v1: pat-material ] - daddiu a0, v1, -21 ;; [ 52] (set! a0-7 (+ v1-22 -21)) - ;; [v1: pat-material ] -> [a0: ] - daddiu v1, s7, 8 ;; [ 53] (set! v1-18 (zero? a0-7)) [a0: ] -> [v1: symbol ] - movn v1, s7, a0 -B4: -L419: - beq s7, v1, L420 ;; [ 54] (b! (not v1-18) L420 (set! v1-23 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 + or a0, v1, r0 ;; [ 22] (set! a0 v1) +B4: + lwu a0, 132(gp) ;; [ 23] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 24] (set! a0 (l.wu (+ a0 8))) + lwu a0, 48(a0) ;; [ 25] (set! a0 (l.wu (+ a0 48))) + dsubu v1, v1, a0 ;; [ 26] (set! a0 (= v1 a0)) + daddiu a0, s7, 4 + movn a0, s7, v1 B5: - lwu v1, 108(s6) ;; [ 55] (set! v1-24 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 60(v1) ;; [ 56] (set! f0-3 (l.f (+ v1-24 60))) [v1: control-info ] -> [] - lwu v1, 108(s6) ;; [ 57] (set! v1-25 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 188(v1) ;; [ 58] (set! f1-5 (l.f (+ v1-25 188))) [v1: control-info ] -> [] - add.s f0, f0, f1 ;; [ 59] (set! f0-4 (+.s f0-3 f1-5)) [] -> [] - lwu v1, 108(s6) ;; [ 60] (set! v1-26 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 60(v1) ;; [ 61] (s.f! (+ v1-26 60) f0-4) [v1: control-info ] -> [] - lwu v1, 108(s6) ;; [ 62] (set! v1-27 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 68(v1) ;; [ 63] (set! f0-5 (l.f (+ v1-27 68))) [v1: control-info ] -> [] - lwu v1, 108(s6) ;; [ 64] (set! v1-28 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 196(v1) ;; [ 65] (set! f1-6 (l.f (+ v1-28 196))) [v1: control-info ] -> [] - add.s f0, f0, f1 ;; [ 66] (set! f0-6 (+.s f0-5 f1-6)) [] -> [] - lwu v1, 108(s6) ;; [ 67] (set! v1-29 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 68(v1) ;; [ 68] (s.f! (+ v1-29 68) f0-6) [v1: control-info ] -> [] - mfc1 v1, f0 ;; [ 69] (set! v1-30 (fpr->gpr f0-6)) [] -> [v1: float ] +L88: + beq s7, a0, L96 ;; [ 27] (b! (not a0) L96 (nop!)) + sll r0, r0, 0 + B6: -L420: - mtc1 f0, r0 ;; [ 70] (set! f0-7 0) [] -> [] - lwu v1, 108(s6) ;; [ 71] (set! v1-31 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2196(v1) ;; [ 72] (s.f! (+ v1-31 2196) f0-7) [v1: control-info ] -> [] - mtc1 f0, r0 ;; [ 73] (set! f0-8 0) [] -> [] - lwu v1, 108(s6) ;; [ 74] (set! v1-32 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2200(v1) ;; [ 75] (s.f! (+ v1-32 2200) f0-8) [v1: control-info ] -> [] - beq s7, s2, L421 ;; [ 76] (b! (not arg3) L421 (nop!)) [s2: vector ] -> [] + mov.s f28, f1 ;; [ 28] (set! f28 f1) + lw t9, seek(s7) ;; [ 29] (set! t9 seek) + mfc1 a0, f1 ;; [ 30] (set! a0 (fpr->gpr f1)) + mfc1 a1, f0 ;; [ 31] (set! a1 (fpr->gpr f0)) + lui v1, 16512 ;; [ 32] (set! v1 #x40800000) + mtc1 f0, v1 ;; [ 33] (set! f0 (gpr->fpr v1)) + lwu v1, 8(s6) ;; [ 34] (set! v1 (l.wu (+ s6 8))) + lwc1 f1, 76(v1) ;; [ 35] (set! f1 (l.f (+ v1 76))) + mul.s f0, f0, f1 ;; [ 36] (set! f0 (*.s f0 f1)) + mfc1 a2, f0 ;; [ 37] (set! a2 (fpr->gpr f0)) + jalr ra, t9 ;; [ 38] (call!) + sll v0, ra, 0 + + mtc1 f0, v0 ;; [ 39] (set! f0 (gpr->fpr v0)) + lui v1, 8 ;; [ 40] (set! v1 #x80000) + lwu a0, 600(gp) ;; [ 41] (set! a0 (l.wu (+ gp 600))) + and v1, v1, a0 ;; [ 42] (set! v1 (logand v1 a0)) + beq v1, r0, L91 ;; [ 43] (b! (zero? v1) L91 (nop!)) sll r0, r0, 0 B7: - mtc1 f0, s5 ;; [ 77] (set! f0-9 (gpr->fpr arg0)) [s5: float ] -> [] - lui v1, L794 ;; [ 78] (set! v1-33 L794) [] -> [v1: ] - ori v1, v1, L794 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 79] (set! f1-7 (l.f v1-33)) [v1: ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 80] (set! v1-34 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f2, 0(v1) ;; [ 81] (set! f2-2 (l.f v1-34)) [v1: target-bank ] -> [] - add.s f1, f1, f2 ;; [ 82] (set! f1-8 (+.s f1-7 f2-2)) [] -> [] - sub.s f0, f0, f1 ;; [ 83] (set! f0-10 (-.s f0-9 f1-8)) [] -> [] - lwu v1, 108(s6) ;; [ 84] (set! v1-35 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2180(v1) ;; [ 85] (s.f! (+ v1-35 2180) f0-10) [v1: control-info ] -> [] - mtc1 f0, s3 ;; [ 86] (set! f0-11 (gpr->fpr arg1)) [s3: float ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 87] (set! v1-36 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f1, 0(v1) ;; [ 88] (set! f1-9 (l.f v1-36)) [v1: target-bank ] -> [] - sub.s f0, f0, f1 ;; [ 89] (set! f0-12 (-.s f0-11 f1-9)) [] -> [] - lwu v1, 108(s6) ;; [ 90] (set! v1-37 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2184(v1) ;; [ 91] (s.f! (+ v1-37 2184) f0-12) [v1: control-info ] -> [] - mfc1 v1, f0 ;; [ 92] (set! v1-38 (fpr->gpr f0-12)) [] -> [v1: float ] - beq r0, r0, L422 ;; [ 93] (b! #t L422 (nop!)) [] -> [] + lui v1, 16256 ;; [ 44] (set! v1 #x3f800000) + mtc1 f1, v1 ;; [ 45] (set! f1 (gpr->fpr v1)) + c.lt.s f0, f1 ;; [ 46] (b! (>=.s f0 f1) L90 (set! v1 #f)) + bc1f L90 + or v1, s7, r0 + +B8: + lui v1, 16256 ;; [ 47] (set! v1 #x3f800000) + mtc1 f1, v1 ;; [ 48] (set! f1 (gpr->fpr v1)) + c.eq.s f28, f1 ;; [ 49] (b! (!=.s f28 f1) L89 (nop!)) + bc1f L89 + sll r0, r0, 0 + +B9: + lwu v1, 136(gp) ;; [ 50] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [ 51] (set! v1 (l.wu (+ v1 12))) + daddiu v1, v1, 64 ;; [ 52] (set! v1 (+ v1 64)) + lui a0, 17996 ;; [ 53] (set! a0 #x464ccccd) + ori a0, a0, 52429 + mtc1 f1, a0 ;; [ 54] (set! f1 (gpr->fpr a0)) + swc1 f1, 12(v1) ;; [ 55] (s.f! (+ v1 12) f1) + lwu a0, 132(gp) ;; [ 56] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 57] (set! a0 (l.wu (+ a0 8))) + lwu a0, 44(a0) ;; [ 58] (set! a0 (l.wu (+ a0 44))) + sw a0, 4(v1) ;; [ 59] (s.w! (+ v1 4) a0) + lui v1, -9 ;; [ 60] (set! v1 -524289) + ori v1, v1, 65535 + lwu a0, 600(gp) ;; [ 61] (set! a0 (l.wu (+ gp 600))) + and v1, v1, a0 ;; [ 62] (set! v1 (logand v1 a0)) + sw v1, 600(gp) ;; [ 63] (s.w! (+ gp 600) v1) + beq r0, r0, L90 ;; [ 64] (b! #t L90 (nop!)) + sll r0, r0, 0 + +B10: +L89: + lui v1, 16256 ;; [ 65] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [ 66] (set! f0 (gpr->fpr v1)) + mfc1 v1, f0 ;; [ 67] (set! v1 (fpr->gpr f0)) +B11: +L90: + beq r0, r0, L93 ;; [ 68] (b! #t L93 (nop!)) + sll r0, r0, 0 + +B12: +L91: + lui v1, 16256 ;; [ 69] (set! v1 #x3f800000) + mtc1 f1, v1 ;; [ 70] (set! f1 (gpr->fpr v1)) + c.lt.s f1, f0 ;; [ 71] (b! (>=.s f1 f0) L93 (set! v1 #f)) + bc1f L93 + or v1, s7, r0 + +B13: + lui v1, 16256 ;; [ 72] (set! v1 #x3f800000) + mtc1 f1, v1 ;; [ 73] (set! f1 (gpr->fpr v1)) + c.eq.s f28, f1 ;; [ 74] (b! (!=.s f28 f1) L92 (nop!)) + bc1f L92 + sll r0, r0, 0 + +B14: + lwu v1, 136(gp) ;; [ 75] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [ 76] (set! v1 (l.wu (+ v1 12))) + daddiu v1, v1, 64 ;; [ 77] (set! v1 (+ v1 64)) + lui a0, 18218 ;; [ 78] (set! a0 #x472aaaae) + ori a0, a0, 43694 + mtc1 f1, a0 ;; [ 79] (set! f1 (gpr->fpr a0)) + swc1 f1, 12(v1) ;; [ 80] (s.f! (+ v1 12) f1) + lwu a0, 132(gp) ;; [ 81] (set! a0 (l.wu (+ gp 132))) + lwu a0, 8(a0) ;; [ 82] (set! a0 (l.wu (+ a0 8))) + lwu a0, 52(a0) ;; [ 83] (set! a0 (l.wu (+ a0 52))) + sw a0, 4(v1) ;; [ 84] (s.w! (+ v1 4) a0) + lui v1, 8 ;; [ 85] (set! v1 #x80000) + lwu a0, 600(gp) ;; [ 86] (set! a0 (l.wu (+ gp 600))) + or v1, v1, a0 ;; [ 87] (set! v1 (logior v1 a0)) + sw v1, 600(gp) ;; [ 88] (s.w! (+ gp 600) v1) + beq r0, r0, L93 ;; [ 89] (b! #t L93 (nop!)) + sll r0, r0, 0 + +B15: +L92: + lui v1, 16256 ;; [ 90] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [ 91] (set! f0 (gpr->fpr v1)) + mfc1 v1, f0 ;; [ 92] (set! v1 (fpr->gpr f0)) +B16: +L93: + swc1 f0, 992(gp) ;; [ 93] (s.f! (+ gp 992) f0) + lui v1, 8 ;; [ 94] (set! v1 #x80000) + lwu a0, 600(gp) ;; [ 95] (set! a0 (l.wu (+ gp 600))) + and v1, v1, a0 ;; [ 96] (set! v1 (logand v1 a0)) + beq v1, r0, L94 ;; [ 97] (b! (zero? v1) L94 (nop!)) + sll r0, r0, 0 + +B17: + lui v1, -16512 ;; [ 98] (set! v1 -1082130432) + mtc1 f1, v1 ;; [ 99] (set! f1 (gpr->fpr v1)) + add.s f0, f1, f0 ;; [100] (set! f0 (+.s f1 f0)) + mfc1 v1, f0 ;; [101] (set! v1 (fpr->gpr f0)) + beq r0, r0, L95 ;; [102] (b! #t L95 (nop!)) + sll r0, r0, 0 + +B18: +L94: + lui v1, 16256 ;; [103] (set! v1 #x3f800000) + mtc1 f1, v1 ;; [104] (set! f1 (gpr->fpr v1)) + sub.s f0, f1, f0 ;; [105] (set! f0 (-.s f1 f0)) + mfc1 v1, f0 ;; [106] (set! v1 (fpr->gpr f0)) +B19: +L95: + mtc1 f0, v1 ;; [107] (set! f0 (gpr->fpr v1)) + lwu v1, 136(gp) ;; [108] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [109] (set! v1 (l.wu (+ v1 12))) + daddiu v1, v1, 64 ;; [110] (set! v1 (+ v1 64)) + swc1 f0, 36(v1) ;; [111] (s.f! (+ v1 36) f0) + swc1 f0, 32(v1) ;; [112] (s.f! (+ v1 32) f0) + mfc1 v1, f0 ;; [113] (set! v1 (fpr->gpr f0)) + lwu a0, 136(gp) ;; [114] (set! a0 (l.wu (+ gp 136))) + lwu v1, -4(a0) ;; [115] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 52(v1) ;; [116] (set! t9 (l.wu (+ v1 52))) + jalr ra, t9 ;; [117] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [118] (set! v1 v0) + mtc1 f28, v1 ;; [119] (set! f28 (gpr->fpr v1)) + lw t9, quaternion-y-angle(s7);; [120] (set! t9 quaternion-y-angle) + lwu v1, 124(gp) ;; [121] (set! v1 (l.wu (+ gp 124))) + daddiu a0, v1, 28 ;; [122] (set! a0 (+ v1 28)) + jalr ra, t9 ;; [123] (call!) + sll v0, ra, 0 + + mtc1 f0, v0 ;; [124] (set! f0 (gpr->fpr v0)) + lw t9, deg-(s7) ;; [125] (set! t9 deg-) + mfc1 a0, f0 ;; [126] (set! a0 (fpr->gpr f0)) + lwc1 f0, 632(gp) ;; [127] (set! f0 (l.f (+ gp 632))) + mfc1 a1, f0 ;; [128] (set! a1 (fpr->gpr f0)) + jalr ra, t9 ;; [129] (call!) + sll v0, ra, 0 + + mtc1 f1, v0 ;; [130] (set! f1 (gpr->fpr v0)) + lui v1, 18208 ;; [131] (set! v1 #x47200000) + mtc1 f0, v1 ;; [132] (set! f0 (gpr->fpr v1)) + lui v1, 16052 ;; [133] (set! v1 #x3eb4f4aa) + ori v1, v1, 62634 + mtc1 f2, v1 ;; [134] (set! f2 (gpr->fpr v1)) + lwu v1, 8(s6) ;; [135] (set! v1 (l.wu (+ s6 8))) + lwc1 f3, 80(v1) ;; [136] (set! f3 (l.f (+ v1 80))) + mul.s f2, f2, f3 ;; [137] (set! f2 (*.s f2 f3)) + abs.s f1, f1 ;; [138] (set! f1 (abs.s f1)) + mul.s f1, f2, f1 ;; [139] (set! f1 (*.s f2 f1)) + min.s f0, f0, f1 ;; [140] (set! f0 (min.s f0 f1)) + lui v1, 16768 ;; [141] (set! v1 #x41800000) + mtc1 f1, v1 ;; [142] (set! f1 (gpr->fpr v1)) + max.s f0, f30, f0 ;; [143] (set! f0 (max.s f30 f0)) + mul.s f0, f1, f0 ;; [144] (set! f0 (*.s f1 f0)) + lui v1, 16752 ;; [145] (set! v1 #x41700000) + mtc1 f1, v1 ;; [146] (set! f1 (gpr->fpr v1)) + mul.s f1, f1, f28 ;; [147] (set! f1 (*.s f1 f28)) + div.s f0, f0, f1 ;; [148] (set! f0 (/.s f0 f1)) + lwu v1, 136(gp) ;; [149] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [150] (set! v1 (l.wu (+ v1 12))) + daddu a0, r0, v1 ;; [151] (set! a0 (+ v1 0)) + swc1 f0, 20(a0) ;; [152] (s.f! (+ a0 20) f0) + lw t9, joint-control-channel-group-eval!(s7);; [153] (set! t9 joint-control-channel-group-eval!) + or a1, s7, r0 ;; [154] (set! a1 #f) + lw a2, num-func-loop!(s7) ;; [155] (set! a2 num-func-loop!) + jalr ra, t9 ;; [156] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [157] (set! v1 v0) + lwu v1, 136(gp) ;; [158] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [159] (set! v1 (l.wu (+ v1 12))) + daddiu a0, v1, 64 ;; [160] (set! a0 (+ v1 64)) + mtc1 f0, r0 ;; [161] (set! f0 0) + swc1 f0, 20(a0) ;; [162] (s.f! (+ a0 20) f0) + lw t9, joint-control-channel-group-eval!(s7);; [163] (set! t9 joint-control-channel-group-eval!) + or a1, s7, r0 ;; [164] (set! a1 #f) + lw a2, num-func-chan(s7) ;; [165] (set! a2 num-func-chan) + jalr ra, t9 ;; [166] (call!) + sll v0, ra, 0 + + beq r0, r0, L98 ;; [167] (b! #t L98 (nop!)) + sll r0, r0, 0 + +B20: +L96: + lw t9, seek(s7) ;; [168] (set! t9 seek) + mfc1 a0, f1 ;; [169] (set! a0 (fpr->gpr f1)) + mfc1 a1, f0 ;; [170] (set! a1 (fpr->gpr f0)) + lui v1, 16512 ;; [171] (set! v1 #x40800000) + mtc1 f0, v1 ;; [172] (set! f0 (gpr->fpr v1)) + lwu v1, 8(s6) ;; [173] (set! v1 (l.wu (+ s6 8))) + lwc1 f1, 76(v1) ;; [174] (set! f1 (l.f (+ v1 76))) + mul.s f0, f0, f1 ;; [175] (set! f0 (*.s f0 f1)) + mfc1 a2, f0 ;; [176] (set! a2 (fpr->gpr f0)) + jalr ra, t9 ;; [177] (call!) + sll v0, ra, 0 + + mtc1 f30, v0 ;; [178] (set! f30 (gpr->fpr v0)) + swc1 f30, 992(gp) ;; [179] (s.f! (+ gp 992) f30) + lw t9, ja-channel-push!(s7);; [180] (set! t9 ja-channel-push!) + addiu a0, r0, 2 ;; [181] (set! a0 2) + addiu a1, r0, 45 ;; [182] (set! a1 45) + jalr ra, t9 ;; [183] (call!) + sll v0, ra, 0 + + lwu v1, 136(gp) ;; [184] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [185] (set! v1 (l.wu (+ v1 12))) + daddu a0, r0, v1 ;; [186] (set! a0 (+ v1 0)) + lui v1, 18124 ;; [187] (set! v1 #x46cccccd) + ori v1, v1, 52429 + mtc1 f0, v1 ;; [188] (set! f0 (gpr->fpr v1)) + swc1 f0, 12(a0) ;; [189] (s.f! (+ a0 12) f0) + lwu v1, 132(gp) ;; [190] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [191] (set! v1 (l.wu (+ v1 8))) + lwu v1, 48(v1) ;; [192] (set! v1 (l.wu (+ v1 48))) + sw v1, 4(a0) ;; [193] (s.w! (+ a0 4) v1) + lui v1, 16256 ;; [194] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [195] (set! f0 (gpr->fpr v1)) + swc1 f0, 20(a0) ;; [196] (s.f! (+ a0 20) f0) + lw t9, joint-control-channel-group!(s7);; [197] (set! t9 joint-control-channel-group!) + lwu v1, 132(gp) ;; [198] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [199] (set! v1 (l.wu (+ v1 8))) + lwu a1, 48(v1) ;; [200] (set! a1 (l.wu (+ v1 48))) + lw a2, num-func-loop!(s7) ;; [201] (set! a2 num-func-loop!) + jalr ra, t9 ;; [202] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [203] (set! v1 v0) + lui v1, 16256 ;; [204] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [205] (set! f0 (gpr->fpr v1)) + c.lt.s f30, f0 ;; [206] (b! (>=.s f30 f0) L97 (nop!)) + bc1f L97 + sll r0, r0, 0 + +B21: + lui v1, 16256 ;; [207] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [208] (set! f0 (gpr->fpr v1)) + sub.s f0, f0, f30 ;; [209] (set! f0 (-.s f0 f30)) + lwu v1, 136(gp) ;; [210] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [211] (set! v1 (l.wu (+ v1 12))) + daddiu a0, v1, 64 ;; [212] (set! a0 (+ v1 64)) + swc1 f0, 36(a0) ;; [213] (s.f! (+ a0 36) f0) + swc1 f0, 32(a0) ;; [214] (s.f! (+ a0 32) f0) + lui v1, 17996 ;; [215] (set! v1 #x464ccccd) + ori v1, v1, 52429 + mtc1 f0, v1 ;; [216] (set! f0 (gpr->fpr v1)) + swc1 f0, 12(a0) ;; [217] (s.f! (+ a0 12) f0) + lwu v1, 132(gp) ;; [218] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [219] (set! v1 (l.wu (+ v1 8))) + lwu v1, 44(v1) ;; [220] (set! v1 (l.wu (+ v1 44))) + sw v1, 4(a0) ;; [221] (s.w! (+ a0 4) v1) + mtc1 f0, r0 ;; [222] (set! f0 0) + swc1 f0, 20(a0) ;; [223] (s.f! (+ a0 20) f0) + lw t9, joint-control-channel-group!(s7);; [224] (set! t9 joint-control-channel-group!) + lwu v1, 132(gp) ;; [225] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [226] (set! v1 (l.wu (+ v1 8))) + lwu a1, 44(v1) ;; [227] (set! a1 (l.wu (+ v1 44))) + lw a2, num-func-chan(s7) ;; [228] (set! a2 num-func-chan) + jalr ra, t9 ;; [229] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [230] (set! v1 v0) + lui v1, -9 ;; [231] (set! v1 -524289) + ori v1, v1, 65535 + lwu a0, 600(gp) ;; [232] (set! a0 (l.wu (+ gp 600))) + and v0, v1, a0 ;; [233] (set! v0 (logand v1 a0)) + sw v0, 600(gp) ;; [234] (s.w! (+ gp 600) v0) + beq r0, r0, L98 ;; [235] (b! #t L98 (nop!)) + sll r0, r0, 0 + +B22: +L97: + lui v1, -16512 ;; [236] (set! v1 -1082130432) + mtc1 f0, v1 ;; [237] (set! f0 (gpr->fpr v1)) + add.s f0, f0, f30 ;; [238] (set! f0 (+.s f0 f30)) + lwu v1, 136(gp) ;; [239] (set! v1 (l.wu (+ gp 136))) + lwu v1, 12(v1) ;; [240] (set! v1 (l.wu (+ v1 12))) + daddiu a0, v1, 64 ;; [241] (set! a0 (+ v1 64)) + swc1 f0, 36(a0) ;; [242] (s.f! (+ a0 36) f0) + swc1 f0, 32(a0) ;; [243] (s.f! (+ a0 32) f0) + lui v1, 18218 ;; [244] (set! v1 #x472aaaae) + ori v1, v1, 43694 + mtc1 f0, v1 ;; [245] (set! f0 (gpr->fpr v1)) + swc1 f0, 12(a0) ;; [246] (s.f! (+ a0 12) f0) + lwu v1, 132(gp) ;; [247] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [248] (set! v1 (l.wu (+ v1 8))) + lwu v1, 52(v1) ;; [249] (set! v1 (l.wu (+ v1 52))) + sw v1, 4(a0) ;; [250] (s.w! (+ a0 4) v1) + mtc1 f0, r0 ;; [251] (set! f0 0) + swc1 f0, 20(a0) ;; [252] (s.f! (+ a0 20) f0) + lw t9, joint-control-channel-group!(s7);; [253] (set! t9 joint-control-channel-group!) + lwu v1, 132(gp) ;; [254] (set! v1 (l.wu (+ gp 132))) + lwu v1, 8(v1) ;; [255] (set! v1 (l.wu (+ v1 8))) + lwu a1, 52(v1) ;; [256] (set! a1 (l.wu (+ v1 52))) + lw a2, num-func-chan(s7) ;; [257] (set! a2 num-func-chan) + jalr ra, t9 ;; [258] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [259] (set! v1 v0) + lui v1, 8 ;; [260] (set! v1 #x80000) + lwu a0, 600(gp) ;; [261] (set! a0 (l.wu (+ gp 600))) + or v0, v1, a0 ;; [262] (set! v0 (logior v1 a0)) + sw v0, 600(gp) ;; [263] (s.w! (+ gp 600) v0) +B23: +L98: + ld ra, 0(sp) + lwc1 f30, 36(sp) + lwc1 f28, 32(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 48 + + sll r0, r0, 0 + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! v1 (l.wu (+ gp 140))) + (set! v1 (+ v1 112)) + (set! f0 (l.f (+ v1 36))) + (set! v1 (fpr->gpr f0)) + (set! f30 (gpr->fpr v1)) + (set! t9 lerp-scale) + (set! a0 0) + (set! a1 #x40000000) + (set! a2 (fpr->gpr f30)) + (set! a3 #x46400000) + (set! t0 #x47200000) + (call!) + (set! f0 (gpr->fpr v0)) + (set! f1 (l.f (+ gp 992))) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.bu (+ v1 3))) + (b! (<=0.ui v1) L87 (set! v1 #f)) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! v1 (l.wu (+ v1 4))) +(label L87) + (bl! (not v1) L88 (no-delay!)) + (set! a0 v1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 48))) + (set! a0 (= v1 a0)) +(label L88) + (b! (not a0) L96 (nop!)) + (set! f28 f1) + (set! t9 seek) + (set! a0 (fpr->gpr f1)) + (set! a1 (fpr->gpr f0)) + (set! v1 #x40800000) + (set! f0 (gpr->fpr v1)) + (set! v1 (l.wu (+ s6 8))) + (set! f1 (l.f (+ v1 76))) + (set! f0 (*.s f0 f1)) + (set! a2 (fpr->gpr f0)) + (call!) + (set! f0 (gpr->fpr v0)) + (set! v1 #x80000) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logand v1 a0)) + (b! (zero? v1) L91 (nop!)) + (set! v1 #x3f800000) + (set! f1 (gpr->fpr v1)) + (b! (>=.s f0 f1) L90 (set! v1 #f)) + (set! v1 #x3f800000) + (set! f1 (gpr->fpr v1)) + (b! (!=.s f28 f1) L89 (nop!)) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! v1 (+ v1 64)) + (set! a0 #x464ccccd) + (set! f1 (gpr->fpr a0)) + (s.f! (+ v1 12) f1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 44))) + (s.w! (+ v1 4) a0) + (set! v1 -524289) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logand v1 a0)) + (s.w! (+ gp 600) v1) + (b! #t L90 (nop!)) +(label L89) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (set! v1 (fpr->gpr f0)) +(label L90) + (b! #t L93 (nop!)) +(label L91) + (set! v1 #x3f800000) + (set! f1 (gpr->fpr v1)) + (b! (>=.s f1 f0) L93 (set! v1 #f)) + (set! v1 #x3f800000) + (set! f1 (gpr->fpr v1)) + (b! (!=.s f28 f1) L92 (nop!)) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! v1 (+ v1 64)) + (set! a0 #x472aaaae) + (set! f1 (gpr->fpr a0)) + (s.f! (+ v1 12) f1) + (set! a0 (l.wu (+ gp 132))) + (set! a0 (l.wu (+ a0 8))) + (set! a0 (l.wu (+ a0 52))) + (s.w! (+ v1 4) a0) + (set! v1 #x80000) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logior v1 a0)) + (s.w! (+ gp 600) v1) + (b! #t L93 (nop!)) +(label L92) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (set! v1 (fpr->gpr f0)) +(label L93) + (s.f! (+ gp 992) f0) + (set! v1 #x80000) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logand v1 a0)) + (b! (zero? v1) L94 (nop!)) + (set! v1 -1082130432) + (set! f1 (gpr->fpr v1)) + (set! f0 (+.s f1 f0)) + (set! v1 (fpr->gpr f0)) + (b! #t L95 (nop!)) +(label L94) + (set! v1 #x3f800000) + (set! f1 (gpr->fpr v1)) + (set! f0 (-.s f1 f0)) + (set! v1 (fpr->gpr f0)) +(label L95) + (set! f0 (gpr->fpr v1)) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! v1 (+ v1 64)) + (s.f! (+ v1 36) f0) + (s.f! (+ v1 32) f0) + (set! v1 (fpr->gpr f0)) + (set! a0 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 52))) + (call!) + (set! v1 v0) + (set! f28 (gpr->fpr v1)) + (set! t9 quaternion-y-angle) + (set! v1 (l.wu (+ gp 124))) + (set! a0 (+ v1 28)) + (call!) + (set! f0 (gpr->fpr v0)) + (set! t9 deg-) + (set! a0 (fpr->gpr f0)) + (set! f0 (l.f (+ gp 632))) + (set! a1 (fpr->gpr f0)) + (call!) + (set! f1 (gpr->fpr v0)) + (set! v1 #x47200000) + (set! f0 (gpr->fpr v1)) + (set! v1 #x3eb4f4aa) + (set! f2 (gpr->fpr v1)) + (set! v1 (l.wu (+ s6 8))) + (set! f3 (l.f (+ v1 80))) + (set! f2 (*.s f2 f3)) + (set! f1 (abs.s f1)) + (set! f1 (*.s f2 f1)) + (set! f0 (min.s f0 f1)) + (set! v1 #x41800000) + (set! f1 (gpr->fpr v1)) + (set! f0 (max.s f30 f0)) + (set! f0 (*.s f1 f0)) + (set! v1 #x41700000) + (set! f1 (gpr->fpr v1)) + (set! f1 (*.s f1 f28)) + (set! f0 (/.s f0 f1)) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 0)) + (s.f! (+ a0 20) f0) + (set! t9 joint-control-channel-group-eval!) + (set! a1 #f) + (set! a2 num-func-loop!) + (call!) + (set! v1 v0) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 64)) + (set! f0 0) + (s.f! (+ a0 20) f0) + (set! t9 joint-control-channel-group-eval!) + (set! a1 #f) + (set! a2 num-func-chan) + (call!) + (b! #t L98 (nop!)) +(label L96) + (set! t9 seek) + (set! a0 (fpr->gpr f1)) + (set! a1 (fpr->gpr f0)) + (set! v1 #x40800000) + (set! f0 (gpr->fpr v1)) + (set! v1 (l.wu (+ s6 8))) + (set! f1 (l.f (+ v1 76))) + (set! f0 (*.s f0 f1)) + (set! a2 (fpr->gpr f0)) + (call!) + (set! f30 (gpr->fpr v0)) + (s.f! (+ gp 992) f30) + (set! t9 ja-channel-push!) + (set! a0 2) + (set! a1 45) + (call!) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 0)) + (set! v1 #x46cccccd) + (set! f0 (gpr->fpr v1)) + (s.f! (+ a0 12) f0) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 48))) + (s.w! (+ a0 4) v1) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ a0 20) f0) + (set! t9 joint-control-channel-group!) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! a1 (l.wu (+ v1 48))) + (set! a2 num-func-loop!) + (call!) + (set! v1 v0) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (b! (>=.s f30 f0) L97 (nop!)) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (set! f0 (-.s f0 f30)) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 64)) + (s.f! (+ a0 36) f0) + (s.f! (+ a0 32) f0) + (set! v1 #x464ccccd) + (set! f0 (gpr->fpr v1)) + (s.f! (+ a0 12) f0) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 44))) + (s.w! (+ a0 4) v1) + (set! f0 0) + (s.f! (+ a0 20) f0) + (set! t9 joint-control-channel-group!) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! a1 (l.wu (+ v1 44))) + (set! a2 num-func-chan) + (call!) + (set! v1 v0) + (set! v1 -524289) + (set! a0 (l.wu (+ gp 600))) + (set! v0 (logand v1 a0)) + (s.w! (+ gp 600) v0) + (b! #t L98 (nop!)) +(label L97) + (set! v1 -1082130432) + (set! f0 (gpr->fpr v1)) + (set! f0 (+.s f0 f30)) + (set! v1 (l.wu (+ gp 136))) + (set! v1 (l.wu (+ v1 12))) + (set! a0 (+ v1 64)) + (s.f! (+ a0 36) f0) + (s.f! (+ a0 32) f0) + (set! v1 #x472aaaae) + (set! f0 (gpr->fpr v1)) + (s.f! (+ a0 12) f0) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! v1 (l.wu (+ v1 52))) + (s.w! (+ a0 4) v1) + (set! f0 0) + (s.f! (+ a0 20) f0) + (set! t9 joint-control-channel-group!) + (set! v1 (l.wu (+ gp 132))) + (set! v1 (l.wu (+ v1 8))) + (set! a1 (l.wu (+ v1 52))) + (set! a2 num-func-chan) + (call!) + (set! v1 v0) + (set! v1 #x80000) + (set! a0 (l.wu (+ gp 600))) + (set! v0 (logior v1 a0)) + (s.w! (+ gp 600) v0) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 237 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0xa0, fp? 0 ra? 1 ep? 1 + ;stack_vars: 104 bytes at 8 + ;gprs: gp s5 s4 +;; Warnings: +;; WARN: Type Propagation failed: Function (method 237 ashelin) has unknown type +;; Used lq/sq + +L99: + daddiu sp, sp, -160 + sd ra, 0(sp) + sq s4, 112(sp) + sq s5, 128(sp) + sq gp, 144(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + or s5, a1, r0 ;; [ 1] (set! s5 a1) + lwu v1, 8(s6) ;; [ 2] (set! v1 (l.wu (+ s6 8))) + ld v1, 20(v1) ;; [ 3] (set! v1 (l.d (+ v1 20))) + sd v1, 1004(gp) ;; [ 4] (s.d! (+ gp 1004) v1) + lwu v1, 996(gp) ;; [ 5] (set! v1 (l.wu (+ gp 996))) + daddiu v1, v1, 1 ;; [ 6] (set! v1 (+ v1 1)) + sw v1, 996(gp) ;; [ 7] (s.w! (+ gp 996) v1) + daddiu s4, sp, 16 ;; [ 8] (set! s4 (+ sp 16)) + lwu v1, 52(gp) ;; [ 9] (set! v1 (l.wu (+ gp 52))) + sw v1, 0(s4) ;; [ 10] (s.w! s4 v1) + lui v1, 16256 ;; [ 11] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [ 12] (set! f0 (gpr->fpr v1)) + swc1 f0, 4(s4) ;; [ 13] (s.f! (+ s4 4) f0) + ori v1, r0, 40960 ;; [ 14] (set! v1 #xa000) + sd v1, 16(s4) ;; [ 15] (s.d! (+ s4 16) v1) + or a0, gp, r0 ;; [ 16] (set! a0 gp) + beq s7, a0, L100 ;; [ 17] (b! (not a0) L100 (set! v1 #f)) + or v1, s7, r0 + +B1: + lwu v1, 24(a0) ;; [ 18] (set! v1 (l.wu (+ a0 24))) +B2: +L100: + beq s7, v1, L101 ;; [ 19] (b! (not v1) L101 (nop!)) + sll r0, r0, 0 + +B3: + lwu a0, 0(v1) ;; [ 20] (set! a0 (l.wu v1)) + lw a0, 40(a0) ;; [ 21] (set! a0 (l.w (+ a0 40))) + dsll32 a0, a0, 0 ;; [ 22] (set! a0 (sll a0 32)) + beq r0, r0, L102 ;; [ 23] (b! #t L102 (nop!)) + sll r0, r0, 0 + +B4: +L101: + addiu a0, r0, 0 ;; [ 24] (set! a0 0) +B5: +L102: + sllv v1, v1, r0 ;; [ 25] (.sllv v1 v1 r0) + or v1, a0, v1 ;; [ 26] (set! v1 (logior a0 v1)) + sd v1, 24(s4) ;; [ 27] (s.d! (+ s4 24) v1) + sd s7, 32(s4) ;; [ 28] (s.d! (+ s4 32) #f) + or a0, gp, r0 ;; [ 29] (set! a0 gp) + beq s7, a0, L103 ;; [ 30] (b! (not a0) L103 (set! v1 #f)) + or v1, s7, r0 + +B6: + lwu v1, 24(a0) ;; [ 31] (set! v1 (l.wu (+ a0 24))) +B7: +L103: + beq s7, v1, L104 ;; [ 32] (b! (not v1) L104 (nop!)) sll r0, r0, 0 B8: -L421: - mtc1 f0, s5 ;; [ 94] (set! f0-13 (gpr->fpr arg0)) [s5: float ] -> [] - lwu v1, 108(s6) ;; [ 95] (set! v1-39 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2180(v1) ;; [ 96] (s.f! (+ v1-39 2180) f0-13) [v1: control-info ] -> [] - mtc1 f0, s3 ;; [ 97] (set! f0-14 (gpr->fpr arg1)) [s3: float ] -> [] - lwu v1, 108(s6) ;; [ 98] (set! v1-40 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 2184(v1) ;; [ 99] (s.f! (+ v1-40 2184) f0-14) [v1: control-info ] -> [] - mfc1 v1, f0 ;; [100] (set! v1-41 (fpr->gpr f0-14)) [] -> [v1: float ] -B9: -L422: - beq s7, s4, L423 ;; [101] (b! (not arg2) L423 (set! v1-42 #f)) [s4: vector ] -> [v1: '#f ] - or v1, s7, r0 + lwu a0, 0(v1) ;; [ 33] (set! a0 (l.wu v1)) + lw a0, 40(a0) ;; [ 34] (set! a0 (l.w (+ a0 40))) + dsll32 a0, a0, 0 ;; [ 35] (set! a0 (sll a0 32)) + beq r0, r0, L105 ;; [ 36] (b! #t L105 (nop!)) + sll r0, r0, 0 +B9: +L104: + addiu a0, r0, 0 ;; [ 37] (set! a0 0) B10: - daddiu s4, sp, 16 ;; [102] (set! s4-1 (+ sp-0 16)) [sp: ] -> [s4: vector ] - sq r0, 0(s4) ;; [103] (s.q! s4-1 0) [s4: vector ] -> [] - lwu v1, 108(s6) ;; [104] (set! v1-43 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [105] (set! v1-44 (l.wu (+ v1-43 432))) [v1: control-info ] -> [v1: dynamics ] - daddiu a0, v1, 28 ;; [106] (set! a0-8 (+ v1-44 28)) [v1: dynamics ] -> [a0: vector ] - or v1, gp, r0 ;; [107] (set! v1-45 arg4) [gp: vector ] -> [v1: vector ] - lwc1 f0, 0(a0) ;; [108] (set! f0-15 (vec3dot a0-8 v1-45)) [v1: vector a0: vector ] -> [] +L105: + sllv v1, v1, r0 ;; [ 38] (.sllv v1 v1 r0) + or v1, a0, v1 ;; [ 39] (set! v1 (logior a0 v1)) + sd v1, 40(s4) ;; [ 40] (s.d! (+ s4 40) v1) + lw v1, *game-info*(s7) ;; [ 41] (set! v1 *game-info*) + lwu a0, 224(v1) ;; [ 42] (set! a0 (l.wu (+ v1 224))) + daddiu a0, a0, 1 ;; [ 43] (set! a0 (+ a0 1)) + sw a0, 224(v1) ;; [ 44] (s.w! (+ v1 224) a0) + sw a0, 8(s4) ;; [ 45] (s.w! (+ s4 8) a0) + addiu v1, r0, 1200 ;; [ 46] (set! v1 1200) + sd v1, 80(s4) ;; [ 47] (s.d! (+ s4 80) v1) + lw t9, vector<-cspace!(s7);; [ 48] (set! t9 vector<-cspace!) + daddiu a0, s4, 48 ;; [ 49] (set! a0 (+ s4 48)) + lwu v1, 128(gp) ;; [ 50] (set! v1 (l.wu (+ gp 128))) + daddiu a1, v1, 716 ;; [ 51] (set! a1 (+ v1 716)) + jalr ra, t9 ;; [ 52] (call!) + sll v0, ra, 0 + + daddiu v1, s4, 64 ;; [ 53] (set! v1 (+ s4 64)) + lq a0, 0(s5) ;; [ 54] (set! a0 (l.q s5)) + sq a0, 0(v1) ;; [ 55] (s.q! v1 a0) + daddiu a1, s4, 64 ;; [ 56] (set! a1 (+ s4 64)) + daddiu v1, s4, 64 ;; [ 57] (set! v1 (+ s4 64)) + daddiu a0, s4, 48 ;; [ 58] (set! a0 (+ s4 48)) + lqc2 vf4, 0(v1) ;; [ 59] (set! a1 (vector-!2 a1 v1 a0)) + lqc2 vf5, 0(a0) + vmove.w vf6, vf0 + vsub.xyz vf6, vf4, vf5 + sqc2 vf6, 0(a1) + lw t9, vector-normalize!(s7);; [ 60] (set! t9 vector-normalize!) + daddiu a0, s4, 64 ;; [ 61] (set! a0 (+ s4 64)) + lui a1, 18582 ;; [ 62] (set! a1 #x48960000) + jalr ra, t9 ;; [ 63] (call!) + sll v0, ra, 0 + + lw t9, spawn-projectile(s7);; [ 64] (set! t9 spawn-projectile) + lw a0, ashelin-shot(s7) ;; [ 65] (set! a0 ashelin-shot) + lw a3, *default-dead-pool*(s7);; [ 66] (set! a3 *default-dead-pool*) + or a1, s4, r0 ;; [ 67] (set! a1 s4) + or a2, gp, r0 ;; [ 68] (set! a2 gp) + jalr ra, t9 ;; [ 69] (call!) + sll v0, ra, 0 + + ld ra, 0(sp) + lq gp, 144(sp) + lq s5, 128(sp) + lq s4, 112(sp) + jr ra + daddiu sp, sp, 160 + + sll r0, r0, 0 + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! s5 a1) + (set! v1 (l.wu (+ s6 8))) + (set! v1 (l.d (+ v1 20))) + (s.d! (+ gp 1004) v1) + (set! v1 (l.wu (+ gp 996))) + (set! v1 (+ v1 1)) + (s.w! (+ gp 996) v1) + (set! s4 (+ sp 16)) + (set! v1 (l.wu (+ gp 52))) + (s.w! s4 v1) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ s4 4) f0) + (set! v1 #xa000) + (s.d! (+ s4 16) v1) + (set! a0 gp) + (b! (not a0) L100 (set! v1 #f)) + (set! v1 (l.wu (+ a0 24))) +(label L100) + (b! (not v1) L101 (nop!)) + (set! a0 (l.wu v1)) + (set! a0 (l.w (+ a0 40))) + (set! a0 (sll a0 32)) + (b! #t L102 (nop!)) +(label L101) + (set! a0 0) +(label L102) + (.sllv v1 v1 r0) + (set! v1 (logior a0 v1)) + (s.d! (+ s4 24) v1) + (s.d! (+ s4 32) #f) + (set! a0 gp) + (b! (not a0) L103 (set! v1 #f)) + (set! v1 (l.wu (+ a0 24))) +(label L103) + (b! (not v1) L104 (nop!)) + (set! a0 (l.wu v1)) + (set! a0 (l.w (+ a0 40))) + (set! a0 (sll a0 32)) + (b! #t L105 (nop!)) +(label L104) + (set! a0 0) +(label L105) + (.sllv v1 v1 r0) + (set! v1 (logior a0 v1)) + (s.d! (+ s4 40) v1) + (set! v1 *game-info*) + (set! a0 (l.wu (+ v1 224))) + (set! a0 (+ a0 1)) + (s.w! (+ v1 224) a0) + (s.w! (+ s4 8) a0) + (set! v1 1200) + (s.d! (+ s4 80) v1) + (set! t9 vector<-cspace!) + (set! a0 (+ s4 48)) + (set! v1 (l.wu (+ gp 128))) + (set! a1 (+ v1 716)) + (call!) + (set! v1 (+ s4 64)) + (set! a0 (l.q s5)) + (s.q! v1 a0) + (set! a1 (+ s4 64)) + (set! v1 (+ s4 64)) + (set! a0 (+ s4 48)) + (set! a1 (vector-!2 a1 v1 a0)) + (set! t9 vector-normalize!) + (set! a0 (+ s4 64)) + (set! a1 #x48960000) + (call!) + (set! t9 spawn-projectile) + (set! a0 ashelin-shot) + (set! a3 *default-dead-pool*) + (set! a1 s4) + (set! a2 gp) + (call!) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 116 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x10, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 +;; Warnings: +;; WARN: Type Propagation failed: Function (method 116 ashelin) has unknown type + +L106: + daddiu sp, sp, -16 + sd ra, 0(sp) +B0: + lw t9, enter-state(s7) ;; [ 0] (set! t9 enter-state) + lwu v1, -4(a0) ;; [ 1] (set! v1 (l.wu (+ a0 -4))) + lwu v1, 732(v1) ;; [ 2] (set! v1 (l.wu (+ v1 732))) + sw v1, 64(s6) ;; [ 3] (s.w! (+ s6 64) v1) + jalr ra, t9 ;; [ 4] (call!) + sll v0, ra, 0 + + ld ra, 0(sp) + jr ra + daddiu sp, sp, 16 + + sll r0, r0, 0 + sll r0, r0, 0 + + (set! t9 enter-state) + (set! v1 (l.wu (+ a0 -4))) + (set! v1 (l.wu (+ v1 732))) + (s.w! (+ s6 64) v1) + (call!) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 239 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x20, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp +;; Warnings: +;; WARN: Type Propagation failed: Function (method 239 ashelin) has unknown type + +L107: + daddiu sp, sp, -32 + sd ra, 0(sp) + sq gp, 16(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + or a0, gp, r0 ;; [ 1] (set! a0 gp) + lwu v1, -4(a0) ;; [ 2] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 872(v1) ;; [ 3] (set! t9 (l.wu (+ v1 872))) + jalr ra, t9 ;; [ 4] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 5] (set! v1 v0) + beq s7, v1, L108 ;; [ 6] (b! (not v1) L108 (nop!)) + sll r0, r0, 0 + +B1: + lw t9, enter-state(s7) ;; [ 7] (set! t9 enter-state) + lwu v1, -4(gp) ;; [ 8] (set! v1 (l.wu (+ gp -4))) + lwu v1, 944(v1) ;; [ 9] (set! v1 (l.wu (+ v1 944))) + sw v1, 64(s6) ;; [ 10] (s.w! (+ s6 64) v1) + jalr ra, t9 ;; [ 11] (call!) + sll v0, ra, 0 + + beq r0, r0, L109 ;; [ 12] (b! #t L109 (nop!)) + sll r0, r0, 0 + +B2: +L108: + lw t9, enter-state(s7) ;; [ 13] (set! t9 enter-state) + lwu v1, -4(gp) ;; [ 14] (set! v1 (l.wu (+ gp -4))) + lwu v1, 940(v1) ;; [ 15] (set! v1 (l.wu (+ v1 940))) + sw v1, 64(s6) ;; [ 16] (s.w! (+ s6 64) v1) + jalr ra, t9 ;; [ 17] (call!) + sll v0, ra, 0 + +B3: +L109: + ld ra, 0(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 32 + + sll r0, r0, 0 + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 872))) + (call!) + (set! v1 v0) + (b! (not v1) L108 (nop!)) + (set! t9 enter-state) + (set! v1 (l.wu (+ gp -4))) + (set! v1 (l.wu (+ v1 944))) + (s.w! (+ s6 64) v1) + (call!) + (b! #t L109 (nop!)) +(label L108) + (set! t9 enter-state) + (set! v1 (l.wu (+ gp -4))) + (set! v1 (l.wu (+ v1 940))) + (s.w! (+ s6 64) v1) + (call!) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 72 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x20, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp +;; Warnings: +;; WARN: Type Propagation failed: Function (method 72 ashelin) has unknown type + +L110: + daddiu sp, sp, -32 + sd ra, 0(sp) + sq gp, 16(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + or a0, gp, r0 ;; [ 1] (set! a0 gp) + lwu v1, -4(a0) ;; [ 2] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 872(v1) ;; [ 3] (set! t9 (l.wu (+ v1 872))) + jalr ra, t9 ;; [ 4] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 5] (set! v1 v0) + beq s7, v1, L111 ;; [ 6] (b! (not v1) L111 (nop!)) + sll r0, r0, 0 + +B1: + lwu v1, -4(gp) ;; [ 7] (set! v1 (l.wu (+ gp -4))) + lwu t9, 296(v1) ;; [ 8] (set! t9 (l.wu (+ v1 296))) + or a0, gp, r0 ;; [ 9] (set! a0 gp) + jalr ra, t9 ;; [ 10] (call!) + sll v0, ra, 0 + + beq r0, r0, L112 ;; [ 11] (b! #t L112 (nop!)) + sll r0, r0, 0 + +B2: +L111: + or a0, gp, r0 ;; [ 12] (set! a0 gp) + lwu v1, -4(a0) ;; [ 13] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 972(v1) ;; [ 14] (set! t9 (l.wu (+ v1 972))) + jalr ra, t9 ;; [ 15] (call!) + sll v0, ra, 0 + +B3: +L112: + ld ra, 0(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 32 + + sll r0, r0, 0 + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 872))) + (call!) + (set! v1 v0) + (b! (not v1) L111 (nop!)) + (set! v1 (l.wu (+ gp -4))) + (set! t9 (l.wu (+ v1 296))) + (set! a0 gp) + (call!) + (b! #t L112 (nop!)) +(label L111) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 972))) + (call!) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 70 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x20, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp +;; Warnings: +;; WARN: Type Propagation failed: Function (method 70 ashelin) has unknown type + +L113: + daddiu sp, sp, -32 + sd ra, 0(sp) + sq gp, 16(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + or a0, gp, r0 ;; [ 1] (set! a0 gp) + lwu v1, -4(a0) ;; [ 2] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 908(v1) ;; [ 3] (set! t9 (l.wu (+ v1 908))) + daddiu a1, s7, #t ;; [ 4] (set! a1 #t) + jalr ra, t9 ;; [ 5] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 6] (set! v1 v0) + or a0, gp, r0 ;; [ 7] (set! a0 gp) + lwu v1, -4(a0) ;; [ 8] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 872(v1) ;; [ 9] (set! t9 (l.wu (+ v1 872))) + jalr ra, t9 ;; [ 10] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 11] (set! v1 v0) + bne s7, v1, L114 ;; [ 12] (b! (truthy v1) L114 (nop!)) + sll r0, r0, 0 + +B1: + lwu v1, -4(gp) ;; [ 13] (set! v1 (l.wu (+ gp -4))) + lwu t9, 304(v1) ;; [ 14] (set! t9 (l.wu (+ v1 304))) + or a0, gp, r0 ;; [ 15] (set! a0 gp) + jalr ra, t9 ;; [ 16] (call!) + sll v0, ra, 0 + + beq r0, r0, L117 ;; [ 17] (b! #t L117 (nop!)) + sll r0, r0, 0 + +B2: +L114: + or a0, gp, r0 ;; [ 18] (set! a0 gp) + lwu v1, -4(a0) ;; [ 19] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 968(v1) ;; [ 20] (set! t9 (l.wu (+ v1 968))) + daddiu a1, s7, #t ;; [ 21] (set! a1 #t) + or a2, s7, r0 ;; [ 22] (set! a2 #f) + jalr ra, t9 ;; [ 23] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 24] (set! v1 v0) + beq s7, v1, L115 ;; [ 25] (b! (not v1) L115 (nop!)) + sll r0, r0, 0 + +B3: + lw t9, enter-state(s7) ;; [ 26] (set! t9 enter-state) + lwu v1, -4(gp) ;; [ 27] (set! v1 (l.wu (+ gp -4))) + lwu v1, 944(v1) ;; [ 28] (set! v1 (l.wu (+ v1 944))) + sw v1, 64(s6) ;; [ 29] (s.w! (+ s6 64) v1) + jalr ra, t9 ;; [ 30] (call!) + sll v0, ra, 0 + + beq r0, r0, L117 ;; [ 31] (b! #t L117 (nop!)) + sll r0, r0, 0 + +B4: +L115: + or a0, gp, r0 ;; [ 32] (set! a0 gp) + lwu v1, -4(a0) ;; [ 33] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 1004(v1) ;; [ 34] (set! t9 (l.wu (+ v1 1004))) + jalr ra, t9 ;; [ 35] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 36] (set! v1 v0) + beq s7, v1, L116 ;; [ 37] (b! (not v1) L116 (nop!)) + sll r0, r0, 0 + +B5: + lw t9, enter-state(s7) ;; [ 38] (set! t9 enter-state) + lwu v1, -4(gp) ;; [ 39] (set! v1 (l.wu (+ gp -4))) + lwu v1, 928(v1) ;; [ 40] (set! v1 (l.wu (+ v1 928))) + sw v1, 64(s6) ;; [ 41] (s.w! (+ s6 64) v1) + jalr ra, t9 ;; [ 42] (call!) + sll v0, ra, 0 + + beq r0, r0, L117 ;; [ 43] (b! #t L117 (nop!)) + sll r0, r0, 0 + +B6: +L116: + lw t9, enter-state(s7) ;; [ 44] (set! t9 enter-state) + lwu v1, -4(gp) ;; [ 45] (set! v1 (l.wu (+ gp -4))) + lwu v1, 944(v1) ;; [ 46] (set! v1 (l.wu (+ v1 944))) + sw v1, 64(s6) ;; [ 47] (s.w! (+ s6 64) v1) + jalr ra, t9 ;; [ 48] (call!) + sll v0, ra, 0 + +B7: +L117: + ld ra, 0(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 32 + + sll r0, r0, 0 + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 908))) + (set! a1 #t) + (call!) + (set! v1 v0) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 872))) + (call!) + (set! v1 v0) + (b! (truthy v1) L114 (nop!)) + (set! v1 (l.wu (+ gp -4))) + (set! t9 (l.wu (+ v1 304))) + (set! a0 gp) + (call!) + (b! #t L117 (nop!)) +(label L114) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 968))) + (set! a1 #t) + (set! a2 #f) + (call!) + (set! v1 v0) + (b! (not v1) L115 (nop!)) + (set! t9 enter-state) + (set! v1 (l.wu (+ gp -4))) + (set! v1 (l.wu (+ v1 944))) + (s.w! (+ s6 64) v1) + (call!) + (b! #t L117 (nop!)) +(label L115) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 1004))) + (call!) + (set! v1 v0) + (b! (not v1) L116 (nop!)) + (set! t9 enter-state) + (set! v1 (l.wu (+ gp -4))) + (set! v1 (l.wu (+ v1 928))) + (s.w! (+ s6 64) v1) + (call!) + (b! #t L117 (nop!)) +(label L116) + (set! t9 enter-state) + (set! v1 (l.wu (+ gp -4))) + (set! v1 (l.wu (+ v1 944))) + (s.w! (+ s6 64) v1) + (call!) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 248 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x40, fp? 0 ra? 1 ep? 1 + ;stack_vars: 24 bytes at 8 + ;gprs: gp s5 +;; Warnings: +;; WARN: Type Propagation failed: Function (method 248 ashelin) has unknown type + +L118: + daddiu sp, sp, -64 + sd ra, 0(sp) + sq s5, 32(sp) + sq gp, 48(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + lui v1, 16 ;; [ 1] (set! v1 #x100000) + lwu a0, 600(gp) ;; [ 2] (set! a0 (l.wu (+ gp 600))) + and v1, v1, a0 ;; [ 3] (set! v1 (logand v1 a0)) + beq v1, r0, L121 ;; [ 4] (b! (zero? v1) L121 (set! v0 #f)) + or v0, s7, r0 + +B1: + lui v1, 16256 ;; [ 5] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [ 6] (set! f0 (gpr->fpr v1)) + lwu v1, 124(gp) ;; [ 7] (set! v1 (l.wu (+ gp 124))) + swc1 f0, 24(v1) ;; [ 8] (s.f! (+ v1 24) f0) + lui v1, 16256 ;; [ 9] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [ 10] (set! f0 (gpr->fpr v1)) + swc1 f0, 936(gp) ;; [ 11] (s.f! (+ gp 936) f0) + daddiu a0, gp, 1020 ;; [ 12] (set! a0 (+ gp 1020)) + lwu v1, 124(gp) ;; [ 13] (set! v1 (l.wu (+ gp 124))) + daddiu v1, v1, 12 ;; [ 14] (set! v1 (+ v1 12)) + lwc1 f0, 0(a0) ;; [ 15] (set! f0 (vec4dot a0 v1)) lwc1 f1, 4(a0) lwc1 f2, 8(a0) + lwc1 f3, 12(a0) + lwc1 f4, 0(v1) + lwc1 f5, 4(v1) + lwc1 f6, 8(v1) + lwc1 f7, 12(v1) + mula.s f0, f4 + madda.s f1, f5 + madda.s f2, f6 + madd.s f0, f3, f7 + mfc1 v1, f0 ;; [ 16] (set! v1 (fpr->gpr f0)) + mtc1 f0, v1 ;; [ 17] (set! f0 (gpr->fpr v1)) + daddiu a0, gp, 1020 ;; [ 18] (set! a0 (+ gp 1020)) + daddiu v1, gp, 924 ;; [ 19] (set! v1 (+ gp 924)) + lwc1 f1, 0(a0) ;; [ 20] (set! f1 (vec4dot a0 v1)) + lwc1 f2, 4(a0) + lwc1 f3, 8(a0) + lwc1 f4, 12(a0) + lwc1 f5, 0(v1) + lwc1 f6, 4(v1) + lwc1 f7, 8(v1) + lwc1 f8, 12(v1) + mula.s f1, f5 + madda.s f2, f6 + madda.s f3, f7 + madd.s f1, f4, f8 + mfc1 v1, f1 ;; [ 21] (set! v1 (fpr->gpr f1)) + mtc1 f1, v1 ;; [ 22] (set! f1 (gpr->fpr v1)) + mtc1 f2, r0 ;; [ 23] (set! f2 0) + c.lt.s f2, f1 ;; [ 24] (b! (<.s f2 f1) L119 (set! v1 #t)) + bc1t L119 + daddiu v1, s7, 4 + +B2: + or v1, s7, r0 ;; [ 25] (set! v1 #f) +B3: +L119: + beql s7, v1, L120 ;; [ 26] (bl! (not v1) L120 (no-delay!)) +B4: + or v1, v1, r0 ;; [ 27] (set! v1 v1) + +B5: + mtc1 f1, r0 ;; [ 28] (set! f1 0) + c.lt.s f1, f0 ;; [ 29] (b! (<.s f1 f0) L120 (set! v1 #t)) + bc1t L120 + daddiu v1, s7, 4 + +B6: + or v1, s7, r0 ;; [ 30] (set! v1 #f) +B7: +L120: + beq s7, v1, L121 ;; [ 31] (b! (not v1) L121 (set! v0 #f)) + or v0, s7, r0 + +B8: + daddiu s5, sp, 16 ;; [ 32] (set! s5 (+ sp 16)) + or a0, s5, r0 ;; [ 33] (set! a0 s5) + daddiu v1, gp, 924 ;; [ 34] (set! v1 (+ gp 924)) + lwu a1, 124(gp) ;; [ 35] (set! a1 (l.wu (+ gp 124))) + daddiu a1, a1, 12 ;; [ 36] (set! a1 (+ a1 12)) + lqc2 vf4, 0(v1) ;; [ 37] (set! a0 (vector-!2 a0 v1 a1)) + lqc2 vf5, 0(a1) + vmove.w vf6, vf0 + vsub.xyz vf6, vf4, vf5 + sqc2 vf6, 0(a0) + mtc1 f0, r0 ;; [ 38] (set! f0 0) + swc1 f0, 4(s5) ;; [ 39] (s.f! (+ s5 4) f0) + lw t9, vector-normalize!(s7);; [ 40] (set! t9 vector-normalize!) + or a0, s5, r0 ;; [ 41] (set! a0 s5) + lui a1, 16256 ;; [ 42] (set! a1 #x3f800000) + jalr ra, t9 ;; [ 43] (call!) + sll v0, ra, 0 + + daddiu v1, gp, 1020 ;; [ 44] (set! v1 (+ gp 1020)) + lwc1 f0, 0(s5) ;; [ 45] (set! f0 (vec3dot s5 v1)) + lwc1 f1, 4(s5) + lwc1 f2, 8(s5) lwc1 f3, 0(v1) lwc1 f4, 4(v1) lwc1 f5, 8(v1) mula.s f0, f3 madda.s f1, f4 madd.s f0, f2, f5 - mfc1 v1, f0 ;; [109] (set! v1-46 (fpr->gpr f0-15)) [] -> [v1: float ] - mtc1 f0, v1 ;; [110] (set! f0-16 (gpr->fpr v1-46)) [v1: float ] -> [] - mtc1 f1, r0 ;; [111] (set! f1-10 0) [] -> [] - or a1, s4, r0 ;; [112] (set! a1-1 s4-1) [s4: vector ] -> [a1: vector ] - or v1, gp, r0 ;; [113] (set! v1-47 arg4) [gp: vector ] -> [v1: vector ] - or a0, s4, r0 ;; [114] (set! a0-9 s4-1) [s4: vector ] -> [a0: vector ] - lwu a2, 108(s6) ;; [115] (set! a2-1 (l.wu (+ self 108))) [s6: target ] -> [a2: control-info ] - lwu a2, 432(a2) ;; [116] (set! a2-2 (l.wu (+ a2-1 432))) [a2: control-info ] -> [a2: dynamics ] - daddiu a2, a2, 28 ;; [117] (set! a2-3 (+ a2-2 28)) [a2: dynamics ] -> [a2: vector ] - lqc2 vf1, 0(a2) ;; [118] (set! a0-10 (vector-float*!2 a0-9 a2-3 f0-16)) - ;; [a0: vector a2: vector ] -> [a0: vector ] - mfc1 a2, f0 - qmtc2.i vf2, a2 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a0) - lqc2 vf4, 0(v1) ;; [119] (set! a1-2 (vector-!2 a1-1 v1-47 a0-10)) - ;; [v1: vector a0: vector a1: vector ] -> [a1: vector ] - lqc2 vf5, 0(a0) + mfc1 v1, f0 ;; [ 46] (set! v1 (fpr->gpr f0)) + mtc1 f0, v1 ;; [ 47] (set! f0 (gpr->fpr v1)) + mtc1 f1, r0 ;; [ 48] (set! f1 0) + c.lt.s f0, f1 ;; [ 49] (b! (>=.s f0 f1) L121 (set! v0 #t)) + bc1f L121 + daddiu v0, s7, 4 + +B9: + or v0, s7, r0 ;; [ 50] (set! v0 #f) +B10: +L121: + ld ra, 0(sp) + lq gp, 48(sp) + lq s5, 32(sp) + jr ra + daddiu sp, sp, 64 + + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! v1 #x100000) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logand v1 a0)) + (b! (zero? v1) L121 (set! v0 #f)) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (set! v1 (l.wu (+ gp 124))) + (s.f! (+ v1 24) f0) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ gp 936) f0) + (set! a0 (+ gp 1020)) + (set! v1 (l.wu (+ gp 124))) + (set! v1 (+ v1 12)) + (set! f0 (vec4dot a0 v1)) + (set! v1 (fpr->gpr f0)) + (set! f0 (gpr->fpr v1)) + (set! a0 (+ gp 1020)) + (set! v1 (+ gp 924)) + (set! f1 (vec4dot a0 v1)) + (set! v1 (fpr->gpr f1)) + (set! f1 (gpr->fpr v1)) + (set! f2 0) + (b! (<.s f2 f1) L119 (set! v1 #t)) + (set! v1 #f) +(label L119) + (bl! (not v1) L120 (no-delay!)) + (set! v1 v1) + (set! f1 0) + (b! (<.s f1 f0) L120 (set! v1 #t)) + (set! v1 #f) +(label L120) + (b! (not v1) L121 (set! v0 #f)) + (set! s5 (+ sp 16)) + (set! a0 s5) + (set! v1 (+ gp 924)) + (set! a1 (l.wu (+ gp 124))) + (set! a1 (+ a1 12)) + (set! a0 (vector-!2 a0 v1 a1)) + (set! f0 0) + (s.f! (+ s5 4) f0) + (set! t9 vector-normalize!) + (set! a0 s5) + (set! a1 #x3f800000) + (call!) + (set! v1 (+ gp 1020)) + (set! f0 (vec3dot s5 v1)) + (set! v1 (fpr->gpr f0)) + (set! f0 (gpr->fpr v1)) + (set! f1 0) + (b! (>=.s f0 f1) L121 (set! v0 #t)) + (set! v0 #f) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 247 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x70, fp? 0 ra? 1 ep? 1 + ;stack_vars: 56 bytes at 8 + ;gprs: gp s5 + ;fprs: f30 +;; Warnings: +;; WARN: Type Propagation failed: Function (method 247 ashelin) has unknown type +;; Used lq/sq + +L122: + daddiu sp, sp, -112 + sd ra, 0(sp) + sq s5, 64(sp) + sq gp, 80(sp) + swc1 f30, 96(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + lui v1, 16 ;; [ 1] (set! v1 #x100000) + lwu a0, 600(gp) ;; [ 2] (set! a0 (l.wu (+ gp 600))) + and v1, v1, a0 ;; [ 3] (set! v1 (logand v1 a0)) + beq v1, r0, L129 ;; [ 4] (b! (zero? v1) L129 (nop!)) + sll r0, r0, 0 + +B1: + lui v1, 16256 ;; [ 5] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [ 6] (set! f0 (gpr->fpr v1)) + lwu v1, 124(gp) ;; [ 7] (set! v1 (l.wu (+ gp 124))) + swc1 f0, 24(v1) ;; [ 8] (s.f! (+ v1 24) f0) + lui v1, 16256 ;; [ 9] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [ 10] (set! f0 (gpr->fpr v1)) + swc1 f0, 936(gp) ;; [ 11] (s.f! (+ gp 936) f0) + daddiu a0, gp, 1020 ;; [ 12] (set! a0 (+ gp 1020)) + lwu v1, 124(gp) ;; [ 13] (set! v1 (l.wu (+ gp 124))) + daddiu v1, v1, 12 ;; [ 14] (set! v1 (+ v1 12)) + lwc1 f0, 0(a0) ;; [ 15] (set! f0 (vec4dot a0 v1)) + lwc1 f1, 4(a0) + lwc1 f2, 8(a0) + lwc1 f3, 12(a0) + lwc1 f4, 0(v1) + lwc1 f5, 4(v1) + lwc1 f6, 8(v1) + lwc1 f7, 12(v1) + mula.s f0, f4 + madda.s f1, f5 + madda.s f2, f6 + madd.s f0, f3, f7 + mfc1 v1, f0 ;; [ 16] (set! v1 (fpr->gpr f0)) + mtc1 f30, v1 ;; [ 17] (set! f30 (gpr->fpr v1)) + daddiu a0, gp, 1020 ;; [ 18] (set! a0 (+ gp 1020)) + daddiu v1, gp, 924 ;; [ 19] (set! v1 (+ gp 924)) + lwc1 f0, 0(a0) ;; [ 20] (set! f0 (vec4dot a0 v1)) + lwc1 f1, 4(a0) + lwc1 f2, 8(a0) + lwc1 f3, 12(a0) + lwc1 f4, 0(v1) + lwc1 f5, 4(v1) + lwc1 f6, 8(v1) + lwc1 f7, 12(v1) + mula.s f0, f4 + madda.s f1, f5 + madda.s f2, f6 + madd.s f0, f3, f7 + mfc1 v1, f0 ;; [ 21] (set! v1 (fpr->gpr f0)) + mtc1 f0, v1 ;; [ 22] (set! f0 (gpr->fpr v1)) + mtc1 f1, r0 ;; [ 23] (set! f1 0) + c.lt.s f1, f0 ;; [ 24] (b! (>=.s f1 f0) L123 (set! v1 #t)) + bc1f L123 + daddiu v1, s7, 4 + +B2: + or v1, s7, r0 ;; [ 25] (set! v1 #f) +B3: +L123: + bnel s7, v1, L124 ;; [ 26] (bl! (truthy v1) L124 (no-delay!)) +B4: + or v1, v1, r0 ;; [ 27] (set! v1 v1) + +B5: + lui v1, -14848 ;; [ 28] (set! v1 -973078528) + mtc1 f0, v1 ;; [ 29] (set! f0 (gpr->fpr v1)) + c.lt.s f0, f30 ;; [ 30] (b! (>=.s f0 f30) L124 (set! v1 #t)) + bc1f L124 + daddiu v1, s7, 4 + +B6: + or v1, s7, r0 ;; [ 31] (set! v1 #f) +B7: +L124: + beq s7, v1, L125 ;; [ 32] (b! (not v1) L125 (set! v1 #f)) + or v1, s7, r0 + +B8: + daddiu v1, s7, #t ;; [ 33] (set! v1 #t) + or v0, v1, r0 ;; [ 34] (set! v0 v1) + beq r0, r0, L130 ;; [ 35] (b! #t L130 (nop!)) + sll r0, r0, 0 + +B9: + or v1, r0, r0 ;; [ 36] (set! v1 0) +B10: +L125: + daddiu s5, sp, 16 ;; [ 37] (set! s5 (+ sp 16)) + or a0, s5, r0 ;; [ 38] (set! a0 s5) + daddiu v1, gp, 924 ;; [ 39] (set! v1 (+ gp 924)) + lwu a1, 124(gp) ;; [ 40] (set! a1 (l.wu (+ gp 124))) + daddiu a1, a1, 12 ;; [ 41] (set! a1 (+ a1 12)) + lqc2 vf4, 0(v1) ;; [ 42] (set! a0 (vector-!2 a0 v1 a1)) + lqc2 vf5, 0(a1) vmove.w vf6, vf0 vsub.xyz vf6, vf4, vf5 - sqc2 vf6, 0(a1) - lw t9, vector-length(s7) ;; [120] (set! t9-1 vector-length) [] -> [t9: (function vector float) ] - or a0, s4, r0 ;; [121] (set! a0-11 s4-1) [s4: vector ] -> [a0: vector ] - jalr ra, t9 ;; [122] (call! a0-11) [a0: vector t9: (function vector float) ] -> [v0: float ] + sqc2 vf6, 0(a0) + mtc1 f0, r0 ;; [ 43] (set! f0 0) + swc1 f0, 4(s5) ;; [ 44] (s.f! (+ s5 4) f0) + lw t9, vector-normalize!(s7);; [ 45] (set! t9 vector-normalize!) + or a0, s5, r0 ;; [ 46] (set! a0 s5) + lui a1, 16256 ;; [ 47] (set! a1 #x3f800000) + jalr ra, t9 ;; [ 48] (call!) sll v0, ra, 0 - mtc1 f0, v0 ;; [123] (set! f0-17 (gpr->fpr v0-1)) [v0: float ] -> [] - mov.s f1, f0 ;; [124] (set! f1-11 f0-17) [] -> [] - lui v1, L748 ;; [125] (set! v1-48 L748) [] -> [v1: ] - ori v1, v1, L748 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [126] (set! f2-3 (l.f v1-48)) [v1: ] -> [] - lwu v1, 108(s6) ;; [127] (set! v1-49 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [128] (set! v1-50 (l.wu (+ v1-49 432))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f3, 8(v1) ;; [129] (set! f3-2 (l.f (+ v1-50 8))) [v1: dynamics ] -> [] - mul.s f2, f2, f3 ;; [130] (set! f2-4 (*.s f2-3 f3-2)) [] -> [] - mtc1 f3, s5 ;; [131] (set! f3-3 (gpr->fpr arg0)) [s5: float ] -> [] - mul.s f2, f2, f3 ;; [132] (set! f2-5 (*.s f2-4 f3-3)) [] -> [] - sqrt.s f2, f2 ;; [133] (set! f2-6 (sqrt.s f2-5)) [] -> [] - lui v1, L770 ;; [134] (set! v1-51 L770) [] -> [v1: ] - ori v1, v1, L770 - addu v1, fp, v1 - lwc1 f3, 0(v1) ;; [135] (set! f3-4 (l.f v1-51)) [v1: ] -> [] - lwu v1, 108(s6) ;; [136] (set! v1-52 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 432(v1) ;; [137] (set! v1-53 (l.wu (+ v1-52 432))) [v1: control-info ] -> [v1: dynamics ] - lwc1 f4, 8(v1) ;; [138] (set! f4-0 (l.f (+ v1-53 8))) [v1: dynamics ] -> [] - neg.s f4, f4 ;; [139] (set! f4-1 (neg.s f4-0)) [] -> [] - mul.s f3, f3, f4 ;; [140] (set! f3-5 (*.s f3-4 f4-1)) [] -> [] - sub.s f2, f2, f3 ;; [141] (set! f2-7 (-.s f2-6 f3-5)) [] -> [] - or v1, gp, r0 ;; [142] (set! v1-54 arg4) [gp: vector ] -> [v1: vector ] - lwu a0, 108(s6) ;; [143] (set! a0-12 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 432(a0) ;; [144] (set! a0-13 (l.wu (+ a0-12 432))) [a0: control-info ] -> [a0: dynamics ] - daddiu a0, a0, 28 ;; [145] (set! a0-14 (+ a0-13 28)) [a0: dynamics ] -> [a0: vector ] - lqc2 vf1, 0(a0) ;; [146] (set! gp-1 (vector-float*!2 arg4 a0-14 f2-7)) - ;; [a0: vector gp: vector ] -> [gp: vector ] - mfc1 a0, f2 - qmtc2.i vf2, a0 - vaddx.w vf1, vf0, vf0 - vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(gp) - or a0, s4, r0 ;; [147] (set! a0-15 s4-1) [s4: vector ] -> [a0: vector ] - div.s f0, f0, f1 ;; [148] (set! f0-18 (/.s f0-17 f1-11)) [] -> [] - lqc2 vf1, 0(s4) ;; [149] (set! a0-16 (vector-float*!2 a0-15 s4-1 f0-18)) - ;; [a0: vector s4: vector ] -> [a0: vector ] + lui v1, -16721 ;; [ 49] (set! v1 -1095820640) + ori v1, v1, 6816 + mtc1 f0, v1 ;; [ 50] (set! f0 (gpr->fpr v1)) + or a0, s5, r0 ;; [ 51] (set! a0 s5) + daddiu v1, gp, 1020 ;; [ 52] (set! v1 (+ gp 1020)) + lwc1 f1, 0(a0) ;; [ 53] (set! f1 (vec3dot a0 v1)) + lwc1 f2, 4(a0) + lwc1 f3, 8(a0) + lwc1 f4, 0(v1) + lwc1 f5, 4(v1) + lwc1 f6, 8(v1) + mula.s f1, f4 + madda.s f2, f5 + madd.s f1, f3, f6 + mfc1 v1, f1 ;; [ 54] (set! v1 (fpr->gpr f1)) + mtc1 f1, v1 ;; [ 55] (set! f1 (gpr->fpr v1)) + c.lt.s f0, f1 ;; [ 56] (b! (<.s f0 f1) L126 (set! v1 #f)) + bc1t L126 + or v1, s7, r0 + +B11: + daddiu v1, s7, #t ;; [ 57] (set! v1 #t) + or v0, v1, r0 ;; [ 58] (set! v0 v1) + beq r0, r0, L130 ;; [ 59] (b! #t L130 (nop!)) + sll r0, r0, 0 + +B12: + or v1, r0, r0 ;; [ 60] (set! v1 0) +B13: +L126: + mtc1 f0, r0 ;; [ 61] (set! f0 0) + c.lt.s f30, f0 ;; [ 62] (b! (<.s f30 f0) L127 (set! v1 #f)) + bc1t L127 + or v1, s7, r0 + +B14: + or v0, s7, r0 ;; [ 63] (set! v0 #f) + beq r0, r0, L130 ;; [ 64] (b! #t L130 (nop!)) + sll r0, r0, 0 + +B15: + or v1, r0, r0 ;; [ 65] (set! v1 0) +B16: +L127: + daddiu a2, sp, 32 ;; [ 66] (set! a2 (+ sp 32)) + daddiu a0, sp, 48 ;; [ 67] (set! a0 (+ sp 48)) + or v1, a2, r0 ;; [ 68] (set! v1 a2) + daddiu a1, gp, 1020 ;; [ 69] (set! a1 (+ gp 1020)) + lwc1 f0, 1032(gp) ;; [ 70] (set! f0 (l.f (+ gp 1032))) + neg.s f0, f0 ;; [ 71] (set! f0 (neg.s f0)) + lqc2 vf1, 0(a1) ;; [ 72] (set! v1 (vector-float*!2 v1 a1 f0)) mfc1 a1, f0 qmtc2.i vf2, a1 vaddx.w vf1, vf0, vf0 vmulx.xyz vf1, vf1, vf2 - sqc2 vf1, 0(a0) - vmove.w vf6, vf0 ;; [150] (set! v1-55 (vector+!2 v1-54 gp-1 a0-16)) - ;; [v1: vector a0: vector gp: vector ] -> [v1: vector ] - lqc2 vf4, 0(gp) - lqc2 vf5, 0(a0) - vadd.xyz vf6, vf4, vf5 - sqc2 vf6, 0(v1) -B11: -L423: - lwu v1, 108(s6) ;; [151] (set! v1-56 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v0, v1, 2220 ;; [152] (set! v0-2 (+ v1-56 2220)) [v1: control-info ] -> [v0: vector ] - lwu v1, 108(s6) ;; [153] (set! v1-57 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 12 ;; [154] (set! v1-58 (+ v1-57 12)) [v1: control-info ] -> [v1: vector ] - lq v1, 0(v1) ;; [155] (set! v1-59 (l.q v1-58)) [v1: vector ] -> [v1: uint128 ] - sq v1, 0(v0) ;; [156] (s.q! v0-2 v1-59) [v0: vector v1: uint128 ] -> [] + sqc2 vf1, 0(v1) + or v1, a0, r0 ;; [ 73] (set! v1 a0) + lwu a1, 124(gp) ;; [ 74] (set! a1 (l.wu (+ gp 124))) + daddiu a1, a1, 12 ;; [ 75] (set! a1 (+ a1 12)) + lq a1, 0(a1) ;; [ 76] (set! a1 (l.q a1)) + sq a1, 0(v1) ;; [ 77] (s.q! v1 a1) + mtc1 f0, r0 ;; [ 78] (set! f0 0) + swc1 f0, 4(a0) ;; [ 79] (s.f! (+ a0 4) f0) + lw t9, intersect-ray-plane(s7);; [ 80] (set! t9 intersect-ray-plane) + daddiu a3, gp, 1020 ;; [ 81] (set! a3 (+ gp 1020)) + or a1, s5, r0 ;; [ 82] (set! a1 s5) + jalr ra, t9 ;; [ 83] (call!) + sll v0, ra, 0 + + mtc1 f0, v0 ;; [ 84] (set! f0 (gpr->fpr v0)) + lui v1, 17920 ;; [ 85] (set! v1 #x46000000) + mtc1 f1, v1 ;; [ 86] (set! f1 (gpr->fpr v1)) + c.lt.s f0, f1 ;; [ 87] (b! (>=.s f0 f1) L128 (set! v0 #t)) + bc1f L128 + daddiu v0, s7, 4 + +B17: + or v0, s7, r0 ;; [ 88] (set! v0 #f) +B18: +L128: + beq r0, r0, L130 ;; [ 89] (b! #t L130 (nop!)) + sll r0, r0, 0 + +B19: +L129: + daddiu v0, s7, #t ;; [ 90] (set! v0 #t) +B20: +L130: ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 96(sp) - lq s5, 80(sp) - lq s4, 64(sp) - lq s3, 48(sp) - lq s2, 32(sp) + lwc1 f30, 96(sp) + lq gp, 80(sp) + lq s5, 64(sp) jr ra daddiu sp, sp, 112 sll r0, r0, 0 sll r0, r0, 0 + sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(defbehavior init-var-jump target ((arg0 float) (arg1 float) (arg2 vector) (arg3 vector) (arg4 vector)) - (logclear! (-> self control status) (cshape-moving-flags csmf14)) - (delete-back-vel) - (when (< (- (-> *display* base-frame-counter) (-> self control rider-time)) (seconds 0.05)) - (let ((f0-1 - (fmax - 0.0 - (fmin 28672.0 (* 0.5 (vector-dot (-> self control dynam gravity-normal) (-> self control rider-last-move)))) - ) - ) - ) - (set! arg0 (+ arg0 f0-1)) - (set! arg1 (+ arg1 f0-1)) - ) - (when (or (logtest? (-> self control unknown-surface01 flags) (surface-flags moving-ground)) - (= (-> self control poly-pat material) (pat-material rotate)) - ) - (+! (-> self control transv x) (-> self control rider-last-move x)) - (+! (-> self control transv z) (-> self control rider-last-move z)) - ) - ) - (set! (-> self control unknown-float123) 0.0) - (set! (-> self control unknown-float124) 0.0) - (cond - (arg3 - (set! (-> self control unknown-uint20) - (the-as uint (- arg0 (+ -409.6 (-> *TARGET-bank* jump-collide-offset)))) - ) - (set! (-> self control unknown-int21) (the-as int (- arg1 (-> *TARGET-bank* jump-collide-offset)))) - ) - (else - (set! (-> self control unknown-uint20) (the-as uint arg0)) - (set! (-> self control unknown-int21) (the-as int arg1)) - ) - ) - (when arg2 - (let ((s4-1 (new-stack-vector0))) - (let ((f0-16 (vector-dot (-> self control dynam gravity-normal) arg4))) - 0.0 - (vector-! s4-1 arg4 (vector-float*! s4-1 (-> self control dynam gravity-normal) f0-16)) - ) - (let* ((f0-17 (vector-length s4-1)) - (f1-11 f0-17) - (f2-7 - (- (sqrtf (* 2.0 (-> self control dynam gravity-length) arg0)) - (* 0.008333334 (- (-> self control dynam gravity-length))) - ) - ) - ) - (vector+! - arg4 - (vector-float*! arg4 (-> self control dynam gravity-normal) f2-7) - (vector-float*! s4-1 s4-1 (/ f0-17 f1-11)) - ) - ) - ) - ) - (let ((v0-2 (-> self control unknown-vector102))) - (set! (-> v0-2 quad) (-> self control trans quad)) - v0-2 - ) - ) - -;;-*-OpenGOAL-End-*- - + (set! gp a0) + (set! v1 #x100000) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logand v1 a0)) + (b! (zero? v1) L129 (nop!)) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (set! v1 (l.wu (+ gp 124))) + (s.f! (+ v1 24) f0) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ gp 936) f0) + (set! a0 (+ gp 1020)) + (set! v1 (l.wu (+ gp 124))) + (set! v1 (+ v1 12)) + (set! f0 (vec4dot a0 v1)) + (set! v1 (fpr->gpr f0)) + (set! f30 (gpr->fpr v1)) + (set! a0 (+ gp 1020)) + (set! v1 (+ gp 924)) + (set! f0 (vec4dot a0 v1)) + (set! v1 (fpr->gpr f0)) + (set! f0 (gpr->fpr v1)) + (set! f1 0) + (b! (>=.s f1 f0) L123 (set! v1 #t)) + (set! v1 #f) +(label L123) + (bl! (truthy v1) L124 (no-delay!)) + (set! v1 v1) + (set! v1 -973078528) + (set! f0 (gpr->fpr v1)) + (b! (>=.s f0 f30) L124 (set! v1 #t)) + (set! v1 #f) +(label L124) + (b! (not v1) L125 (set! v1 #f)) + (set! v1 #t) + (set! v0 v1) + (b! #t L130 (nop!)) + (set! v1 0) +(label L125) + (set! s5 (+ sp 16)) + (set! a0 s5) + (set! v1 (+ gp 924)) + (set! a1 (l.wu (+ gp 124))) + (set! a1 (+ a1 12)) + (set! a0 (vector-!2 a0 v1 a1)) + (set! f0 0) + (s.f! (+ s5 4) f0) + (set! t9 vector-normalize!) + (set! a0 s5) + (set! a1 #x3f800000) + (call!) + (set! v1 -1095820640) + (set! f0 (gpr->fpr v1)) + (set! a0 s5) + (set! v1 (+ gp 1020)) + (set! f1 (vec3dot a0 v1)) + (set! v1 (fpr->gpr f1)) + (set! f1 (gpr->fpr v1)) + (b! (<.s f0 f1) L126 (set! v1 #f)) + (set! v1 #t) + (set! v0 v1) + (b! #t L130 (nop!)) + (set! v1 0) +(label L126) + (set! f0 0) + (b! (<.s f30 f0) L127 (set! v1 #f)) + (set! v0 #f) + (b! #t L130 (nop!)) + (set! v1 0) +(label L127) + (set! a2 (+ sp 32)) + (set! a0 (+ sp 48)) + (set! v1 a2) + (set! a1 (+ gp 1020)) + (set! f0 (l.f (+ gp 1032))) + (set! f0 (neg.s f0)) + (set! v1 (vector-float*!2 v1 a1 f0)) + (set! v1 a0) + (set! a1 (l.wu (+ gp 124))) + (set! a1 (+ a1 12)) + (set! a1 (l.q a1)) + (s.q! v1 a1) + (set! f0 0) + (s.f! (+ a0 4) f0) + (set! t9 intersect-ray-plane) + (set! a3 (+ gp 1020)) + (set! a1 s5) + (call!) + (set! f0 (gpr->fpr v0)) + (set! v1 #x46000000) + (set! f1 (gpr->fpr v1)) + (b! (>=.s f0 f1) L128 (set! v0 #t)) + (set! v0 #f) +(label L128) + (b! #t L130 (nop!)) +(label L129) + (set! v0 #t) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-slide-down) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; s6-0: target -L424: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lwu v1, 120(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 1] (set! v1-1 (l.w (+ v1-0 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 2] (b! (<=0.si v1-1) L425 (set! v1-2 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L425 - or v1, s7, r0 - -B1: - lwu v1, 120(s6) ;; [ 3] (set! v1-3 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 4] (set! v1-4 (l.wu (+ v1-3 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 5] (set! v1-2 (l.wu (+ v1-4 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B2: -L425: - lwu a0, 116(s6) ;; [ 6] (set! a0-0 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 7] (set! a0-1 (l.wu (+ a0-0 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 152(a0) ;; [ 8] (set! a0-2 (l.wu (+ a0-1 152))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 9] (set! a0-3 (= v1-2 a0-2)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - bne s7, a0, L426 ;; [ 10] (b! (truthy a0-3) L426 (set! v1-5 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B3: - lw t9, ja-channel-push!(s7);; [ 11] (set! t9-0 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 12] (set! a0-4 1) [] -> [a0: ] - addiu a1, r0, 30 ;; [ 13] (set! a1-0 30) [] -> [a1: ] - jalr ra, t9 ;; [ 14] (call! a0-4 a1-0) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 15] (set! v1-6 v0-0) [v0: int ] -> [v1: int ] -B4: -L426: - lwu v1, 120(s6) ;; [ 16] (set! v1-7 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 17] (set! v1-8 (l.wu (+ v1-7 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 18] (set! a0-5 (+ v1-8 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 19] (set! v1-9 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 20] (set! v1-10 (l.wu (+ v1-9 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 152(v1) ;; [ 21] (set! v1-11 (l.wu (+ v1-10 152))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 22] (s.w! (+ a0-5 12) v1-11) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [ 23] (set! v1-12 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 24] (set! v1-13 (l.wu (+ v1-12 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 152(v1) ;; [ 25] (set! v1-14 (l.wu (+ v1-13 152))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 26] (set! (the-as art-joint-anim v1-15) (l.wu (+ v1-14 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 27] (set! v1-16 (l.h (+ v1-15 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 28] (set! v1-17 (+ v1-16 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 29] (set! f0-0 (gpr->fpr v1-17)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 30] (set! f0-1 (i2f f0-0)) [] -> [] - swc1 f0, 24(a0) ;; [ 31] (s.f! (+ a0-5 24) f0-1) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 32] (set! v1-18 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 33] (set! f0-2 (l.f v1-18)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 34] (s.f! (+ a0-5 28) f0-2) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 35] (set! f0-3 0) [] -> [] - swc1 f0, 16(a0) ;; [ 36] (s.f! (+ a0-5 16) f0-3) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [ 37] (set! t9-1 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 38] (set! v1-19 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 39] (set! v1-20 (l.wu (+ v1-19 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 152(v1) ;; [ 40] (set! a1-1 (l.wu (+ v1-20 152))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [ 41] (set! a2-0 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 42] (call! a0-5 a1-1 a2-0) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 43] (set! v1-21 v0-1) [v0: int ] -> [v1: int ] -B5: -L427: - lwu s6, 44(s6) ;; [ 44] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 45] (set! v1-22 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 46] (set! v1-23 (l.wu (+ v1-22 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 47] (set! a0-6 (+ v1-23 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [ 48] (set! v1-24 (l.wu (+ a0-6 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 49] (set! v1-25 (l.wu (+ v1-24 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 50] (set! v1-26 (l.h (+ v1-25 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 51] (set! v1-27 (+ v1-26 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 52] (set! f0-4 (gpr->fpr v1-27)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 53] (set! f0-5 (i2f f0-4)) [] -> [] - swc1 f0, 24(a0) ;; [ 54] (s.f! (+ a0-6 24) f0-5) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 55] (set! v1-28 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 56] (set! f0-6 (l.f v1-28)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 57] (s.f! (+ a0-6 28) f0-6) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 58] (set! t9-2 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 59] (set! a1-2 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 60] (set! a2-1 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 61] (call! a0-6 a1-2 a2-1) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 62] (set! v1-29 v0-2) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [ 63] (set! t9-3 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 64] (set! a0-7 0) [] -> [a0: ] - jalr ra, t9 ;; [ 65] (call! a0-7) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L427 ;; [ 66] (b! (not v0-3) L427 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B6: - or v1, s7, r0 ;; [ 67] (set! v1-30 #f) [] -> [v1: '#f ] - beq r0, r0, L426 ;; [ 68] (b! #t L426 (nop!)) [] -> [] - sll r0, r0, 0 - -B7: - or v0, s7, r0 ;; [ 69] (set! v0-4 #f) [] -> [v0: ] - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-slide-down) - () - (if (not (ja-group? (-> self draw art-group data 31))) - (ja-channel-push! 1 (seconds 0.1)) - ) - (loop - (ja-no-eval :group! (-> self draw art-group data 31) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-slide-down) +; .function (method 240 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;stack: total 0x10, fp? 0 ra? 1 ep? 1 ;stack_vars: 8 bytes at 8 ;; Warnings: -;; INFO: Return type mismatch object vs none. +;; WARN: Type Propagation failed: Function (method 240 ashelin) has unknown type -;; s6-0: target -L428: +L131: daddiu sp, sp, -16 sd ra, 0(sp) B0: - lwu v1, 108(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [ 1] (set! v1-1 (l.d (+ v1-0 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - andi v1, v1, 1 ;; [ 2] (set! v1-2 (logand v1-1 1)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - bnel v1, r0, L429 ;; [ 3] (bl! (nonzero? v1-2) L429 (no-delay!)) [v1: cshape-moving-flags ] -> [] + or v1, a1, r0 ;; [ 0] (set! v1 a1) + addiu a1, r0, 3 ;; [ 1] (set! a1 3) + bne v1, a1, L132 ;; [ 2] (b! (!= v1 a1) L132 (nop!)) + sll r0, r0, 0 + B1: - daddiu v1, s7, 8 ;; [ 4] (set! v1-3 #t) [] -> [v1: symbol ] + lw t9, enter-state(s7) ;; [ 3] (set! t9 enter-state) + lwu v1, -4(a0) ;; [ 4] (set! v1 (l.wu (+ a0 -4))) + lwu v1, 920(v1) ;; [ 5] (set! v1 (l.wu (+ v1 920))) + sw v1, 64(s6) ;; [ 6] (s.w! (+ s6 64) v1) + jalr ra, t9 ;; [ 7] (call!) + sll v0, ra, 0 + + beq r0, r0, L134 ;; [ 8] (b! #t L134 (nop!)) + sll r0, r0, 0 B2: - lw t9, target-move-dist(s7);; [ 5] (set! t9-0 target-move-dist) - ;; [] -> [t9: (function time-frame float :behavior target) ] - lw v1, *TARGET-bank*(s7) ;; [ 6] (set! v1-4 *TARGET-bank*) [] -> [v1: target-bank ] - ld a0, 556(v1) ;; [ 7] (set! a0-0 (l.d (+ v1-4 556))) [v1: target-bank ] -> [a0: seconds ] - jalr ra, t9 ;; [ 8] (call! a0-0) - ;; [a0: seconds t9: (function time-frame float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 9] (set! f0-0 (gpr->fpr v0-0)) [v0: float ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 10] (set! v1-5 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f1, 572(v1) ;; [ 11] (set! f1-0 (l.f (+ v1-5 572))) [v1: target-bank ] -> [] - c.lt.s f0, f1 ;; [ 12] (b! (>=.s f0-0 f1-0) L429 (set! v1-3 #f)) [] -> [v1: '#f ] - bc1f L429 - or v1, s7, r0 +L132: + addiu a1, r0, 2 ;; [ 9] (set! a1 2) + bne v1, a1, L133 ;; [ 10] (b! (!= v1 a1) L133 (nop!)) + sll r0, r0, 0 B3: - daddiu v1, s7, #t ;; [ 13] (set! v1-3 #t) [] -> [v1: symbol ] -B4: -L429: - beq s7, v1, L430 ;; [ 14] (b! (not v1-3) L430 (set! v0-1 #f)) [v1: symbol ] -> [v0: '#f ] - or v0, s7, r0 - -B5: - lwu v1, 108(s6) ;; [ 15] (set! v1-6 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [ 16] (set! v1-7 (l.d (+ v1-6 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - ori v1, v1, 1 ;; [ 17] (set! v1-8 (logior v1-7 1)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - lwu a0, 108(s6) ;; [ 18] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 268(a0) ;; [ 19] (s.d! (+ a0-1 268) v1-8) [v1: cshape-moving-flags a0: control-info ] -> [] - lw t9, enter-state(s7) ;; [ 20] (set! t9-1 enter-state) [] -> [t9: ] - lw v1, target-duck-stance(s7);; [ 21] (set! v1-9 target-duck-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 22] (s.w! (+ self 72) v1-9) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 23] (call!) [t9: ] -> [v0: object ] + lw t9, enter-state(s7) ;; [ 11] (set! t9 enter-state) + lwu v1, -4(a0) ;; [ 12] (set! v1 (l.wu (+ a0 -4))) + lwu v1, 924(v1) ;; [ 13] (set! v1 (l.wu (+ v1 924))) + sw v1, 64(s6) ;; [ 14] (s.w! (+ s6 64) v1) + jalr ra, t9 ;; [ 15] (call!) sll v0, ra, 0 -B6: -L430: + beq r0, r0, L134 ;; [ 16] (b! #t L134 (nop!)) + sll r0, r0, 0 + +B4: +L133: + lw t9, enter-state(s7) ;; [ 17] (set! t9 enter-state) + lwu v1, -4(a0) ;; [ 18] (set! v1 (l.wu (+ a0 -4))) + lwu v1, 916(v1) ;; [ 19] (set! v1 (l.wu (+ v1 916))) + sw v1, 64(s6) ;; [ 20] (s.w! (+ s6 64) v1) + jalr ra, t9 ;; [ 21] (call!) + sll v0, ra, 0 + +B5: +L134: ld ra, 0(sp) jr ra daddiu sp, sp, 16 @@ -19932,274 +6306,734 @@ L430: sll r0, r0, 0 sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-slide-down) - () - (when (or (logtest? (-> self control status) (cshape-moving-flags onsurf)) - (if (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) - #t - ) - ) - (logior! (-> self control status) (cshape-moving-flags onsurf)) - (go target-duck-stance) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - + (set! v1 a1) + (set! a1 3) + (b! (!= v1 a1) L132 (nop!)) + (set! t9 enter-state) + (set! v1 (l.wu (+ a0 -4))) + (set! v1 (l.wu (+ v1 920))) + (s.w! (+ s6 64) v1) + (call!) + (b! #t L134 (nop!)) +(label L132) + (set! a1 2) + (b! (!= v1 a1) L133 (nop!)) + (set! t9 enter-state) + (set! v1 (l.wu (+ a0 -4))) + (set! v1 (l.wu (+ v1 924))) + (s.w! (+ s6 64) v1) + (call!) + (b! #t L134 (nop!)) +(label L133) + (set! t9 enter-state) + (set! v1 (l.wu (+ a0 -4))) + (set! v1 (l.wu (+ v1 916))) + (s.w! (+ s6 64) v1) + (call!) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (exit target-slide-down) +; .function (method 242 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x00, fp? 0 ra? 0 ep? 1 + ;stack: total 0x60, fp? 0 ra? 1 ep? 1 + ;stack_vars: 40 bytes at 8 + ;gprs: gp s5 s4 ;; Warnings: -;; INFO: Return type mismatch time-frame vs none. +;; WARN: Type Propagation failed: Function (method 242 ashelin) has unknown type -;; s6-0: target +L135: + daddiu sp, sp, -96 + sd ra, 0(sp) + sq s4, 48(sp) + sq s5, 64(sp) + sq gp, 80(sp) B0: -L431: - lw v1, *display*(s7) ;; [ 0] (set! v1-0 *display*) [] -> [v1: display ] - ld v0, 780(v1) ;; [ 1] (set! v0-0 (l.d (+ v1-0 780))) [v1: display ] -> [v0: time-frame ] - lwu v1, 108(s6) ;; [ 2] (set! v1-1 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sd v0, 1700(v1) ;; [ 3] (s.d! (+ v1-1 1700) v0-0) [v0: time-frame v1: control-info ] -> [] + or gp, a0, r0 ;; [ 0] (set! gp a0) + addiu s5, r0, 0 ;; [ 1] (set! s5 0) + or a0, gp, r0 ;; [ 2] (set! a0 gp) + lwu v1, -4(a0) ;; [ 3] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 492(v1) ;; [ 4] (set! t9 (l.wu (+ v1 492))) + addiu a1, r0, 2 ;; [ 5] (set! a1 2) + jalr ra, t9 ;; [ 6] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 7] (set! v1 v0) + bne v1, r0, L137 ;; [ 8] (b! (nonzero? v1) L137 (nop!)) + sll r0, r0, 0 + +B1: + lui v1, 18048 ;; [ 9] (set! v1 #x46800000) + mtc1 f0, v1 ;; [ 10] (set! f0 (gpr->fpr v1)) + lwc1 f1, 888(gp) ;; [ 11] (set! f1 (l.f (+ gp 888))) + abs.s f1, f1 ;; [ 12] (set! f1 (abs.s f1)) + c.lt.s f0, f1 ;; [ 13] (b! (<.s f0 f1) L136 (set! v1 #f)) + bc1t L136 + or v1, s7, r0 + +B2: + daddiu s4, sp, 16 ;; [ 14] (set! s4 (+ sp 16)) + or a0, gp, r0 ;; [ 15] (set! a0 gp) + lwu v1, -4(a0) ;; [ 16] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 960(v1) ;; [ 17] (set! t9 (l.wu (+ v1 960))) + or a1, s4, r0 ;; [ 18] (set! a1 s4) + lui v1, 18048 ;; [ 19] (set! v1 #x46800000) + mtc1 f0, v1 ;; [ 20] (set! f0 (gpr->fpr v1)) + lwc1 f1, 896(gp) ;; [ 21] (set! f1 (l.f (+ gp 896))) + add.s f0, f0, f1 ;; [ 22] (set! f0 (+.s f0 f1)) + mfc1 a2, f0 ;; [ 23] (set! a2 (fpr->gpr f0)) + lui a3, 17920 ;; [ 24] (set! a3 #x46000000) + lui v1, 18207 ;; [ 25] (set! t0 #x471f03ee) + ori t0, v1, 1006 + lui v1, 18183 ;; [ 26] (set! t1 #x470703ee) + ori t1, v1, 1006 + jalr ra, t9 ;; [ 27] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 28] (set! v1 v0) + beq s7, v1, L136 ;; [ 29] (b! (not v1) L136 (set! v1 #f)) + or v1, s7, r0 + +B3: + daddiu v1, gp, 556 ;; [ 30] (set! v1 (+ gp 556)) + lwu a0, 124(gp) ;; [ 31] (set! a0 (l.wu (+ gp 124))) + daddiu a0, a0, 12 ;; [ 32] (set! a0 (+ a0 12)) + vmove.w vf6, vf0 ;; [ 33] (set! v1 (vector+!2 v1 s4 a0)) + lqc2 vf4, 0(s4) + lqc2 vf5, 0(a0) + vadd.xyz vf6, vf4, vf5 + sqc2 vf6, 0(v1) + addiu s5, r0, 3 ;; [ 34] (set! s5 3) + or v1, s5, r0 ;; [ 35] (set! v1 s5) +B4: +L136: + beq r0, r0, L138 ;; [ 36] (b! #t L138 (nop!)) + sll r0, r0, 0 + +B5: +L137: + lui v1, 18048 ;; [ 37] (set! v1 #x46800000) + mtc1 f0, v1 ;; [ 38] (set! f0 (gpr->fpr v1)) + lwc1 f1, 888(gp) ;; [ 39] (set! f1 (l.f (+ gp 888))) + abs.s f1, f1 ;; [ 40] (set! f1 (abs.s f1)) + c.lt.s f0, f1 ;; [ 41] (b! (<.s f0 f1) L138 (set! v1 #f)) + bc1t L138 + or v1, s7, r0 + +B6: + daddiu s4, sp, 32 ;; [ 42] (set! s4 (+ sp 32)) + or a0, gp, r0 ;; [ 43] (set! a0 gp) + lwu v1, -4(a0) ;; [ 44] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 960(v1) ;; [ 45] (set! t9 (l.wu (+ v1 960))) + or a1, s4, r0 ;; [ 46] (set! a1 s4) + lui v1, -14720 ;; [ 47] (set! v1 -964689920) + mtc1 f0, v1 ;; [ 48] (set! f0 (gpr->fpr v1)) + lwc1 f1, 896(gp) ;; [ 49] (set! f1 (l.f (+ gp 896))) + add.s f0, f0, f1 ;; [ 50] (set! f0 (+.s f0 f1)) + mfc1 a2, f0 ;; [ 51] (set! a2 (fpr->gpr f0)) + lui a3, 17920 ;; [ 52] (set! a3 #x46000000) + lui v1, 18207 ;; [ 53] (set! t0 #x471f03ee) + ori t0, v1, 1006 + lui v1, 18183 ;; [ 54] (set! t1 #x470703ee) + ori t1, v1, 1006 + jalr ra, t9 ;; [ 55] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 56] (set! v1 v0) + beq s7, v1, L138 ;; [ 57] (b! (not v1) L138 (set! v1 #f)) + or v1, s7, r0 + +B7: + daddiu v1, gp, 556 ;; [ 58] (set! v1 (+ gp 556)) + lwu a0, 124(gp) ;; [ 59] (set! a0 (l.wu (+ gp 124))) + daddiu a0, a0, 12 ;; [ 60] (set! a0 (+ a0 12)) + vmove.w vf6, vf0 ;; [ 61] (set! v1 (vector+!2 v1 s4 a0)) + lqc2 vf4, 0(s4) + lqc2 vf5, 0(a0) + vadd.xyz vf6, vf4, vf5 + sqc2 vf6, 0(v1) + addiu s5, r0, 2 ;; [ 62] (set! s5 2) + or v1, s5, r0 ;; [ 63] (set! v1 s5) +B8: +L138: + or v0, s5, r0 ;; [ 64] (set! v0 s5) + ld ra, 0(sp) + lq gp, 80(sp) + lq s5, 64(sp) + lq s4, 48(sp) jr ra - daddu sp, sp, r0 + daddiu sp, sp, 96 sll r0, r0, 0 sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (exit target-slide-down) - () - (set! (-> self control unknown-dword35) (-> *display* base-frame-counter)) - (none) - ) - -;;-*-OpenGOAL-End-*- + (set! gp a0) + (set! s5 0) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 492))) + (set! a1 2) + (call!) + (set! v1 v0) + (b! (nonzero? v1) L137 (nop!)) + (set! v1 #x46800000) + (set! f0 (gpr->fpr v1)) + (set! f1 (l.f (+ gp 888))) + (set! f1 (abs.s f1)) + (b! (<.s f0 f1) L136 (set! v1 #f)) + (set! s4 (+ sp 16)) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 960))) + (set! a1 s4) + (set! v1 #x46800000) + (set! f0 (gpr->fpr v1)) + (set! f1 (l.f (+ gp 896))) + (set! f0 (+.s f0 f1)) + (set! a2 (fpr->gpr f0)) + (set! a3 #x46000000) + (set! t0 #x471f03ee) + (set! t1 #x470703ee) + (call!) + (set! v1 v0) + (b! (not v1) L136 (set! v1 #f)) + (set! v1 (+ gp 556)) + (set! a0 (l.wu (+ gp 124))) + (set! a0 (+ a0 12)) + (set! v1 (vector+!2 v1 s4 a0)) + (set! s5 3) + (set! v1 s5) +(label L136) + (b! #t L138 (nop!)) +(label L137) + (set! v1 #x46800000) + (set! f0 (gpr->fpr v1)) + (set! f1 (l.f (+ gp 888))) + (set! f1 (abs.s f1)) + (b! (<.s f0 f1) L138 (set! v1 #f)) + (set! s4 (+ sp 32)) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 960))) + (set! a1 s4) + (set! v1 -964689920) + (set! f0 (gpr->fpr v1)) + (set! f1 (l.f (+ gp 896))) + (set! f0 (+.s f0 f1)) + (set! a2 (fpr->gpr f0)) + (set! a3 #x46000000) + (set! t0 #x471f03ee) + (set! t1 #x470703ee) + (call!) + (set! v1 v0) + (b! (not v1) L138 (set! v1 #f)) + (set! v1 (+ gp 556)) + (set! a0 (l.wu (+ gp 124))) + (set! a0 (+ a0 12)) + (set! v1 (vector+!2 v1 s4 a0)) + (set! s5 2) + (set! v1 s5) +(label L138) + (set! v0 s5) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-slide-down) +; .function (method 241 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x00, fp? 0 ra? 0 ep? 1 + ;stack: total 0x90, fp? 0 ra? 1 ep? 1 + ;stack_vars: 40 bytes at 8 + ;gprs: gp s5 s4 s3 s2 + ;fprs: f30 ;; Warnings: -;; INFO: Return type mismatch surface vs none. +;; WARN: Type Propagation failed: Function (method 241 ashelin) has unknown type -;; s6-0: target +L139: + daddiu sp, sp, -144 + sd ra, 0(sp) + sq s2, 48(sp) + sq s3, 64(sp) + sq s4, 80(sp) + sq s5, 96(sp) + sq gp, 112(sp) + swc1 f30, 128(sp) B0: -L432: - lw v0, *jump-mods*(s7) ;; [ 0] (set! v0-0 *jump-mods*) [] -> [v0: surface ] - lwu v1, 108(s6) ;; [ 1] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw v0, 656(v1) ;; [ 2] (s.w! (+ v1-0 656) v0-0) [v0: surface v1: control-info ] -> [] + or gp, a0, r0 ;; [ 0] (set! gp a0) + lw t9, target-pos(s7) ;; [ 1] (set! t9 target-pos) + addiu a0, r0, 0 ;; [ 2] (set! a0 0) + jalr ra, t9 ;; [ 3] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 4] (set! v1 v0) + lwu a0, 124(gp) ;; [ 5] (set! a0 (l.wu (+ gp 124))) + daddiu a1, a0, 12 ;; [ 6] (set! a1 (+ a0 12)) + lw t9, atan(s7) ;; [ 7] (set! t9 atan) + lwc1 f0, 0(a1) ;; [ 8] (set! f0 (l.f a1)) + lwc1 f1, 0(v1) ;; [ 9] (set! f1 (l.f v1)) + sub.s f0, f0, f1 ;; [ 10] (set! f0 (-.s f0 f1)) + mfc1 a0, f0 ;; [ 11] (set! a0 (fpr->gpr f0)) + lwc1 f0, 8(a1) ;; [ 12] (set! f0 (l.f (+ a1 8))) + lwc1 f1, 8(v1) ;; [ 13] (set! f1 (l.f (+ v1 8))) + sub.s f0, f0, f1 ;; [ 14] (set! f0 (-.s f0 f1)) + mfc1 a1, f0 ;; [ 15] (set! a1 (fpr->gpr f0)) + jalr ra, t9 ;; [ 16] (call!) + sll v0, ra, 0 + + mtc1 f30, v0 ;; [ 17] (set! f30 (gpr->fpr v0)) + lw t9, deg-(s7) ;; [ 18] (set! t9 deg-) + mfc1 a0, f30 ;; [ 19] (set! a0 (fpr->gpr f30)) + lwc1 f0, 892(gp) ;; [ 20] (set! f0 (l.f (+ gp 892))) + mfc1 a1, f0 ;; [ 21] (set! a1 (fpr->gpr f0)) + jalr ra, t9 ;; [ 22] (call!) + sll v0, ra, 0 + + mtc1 f0, v0 ;; [ 23] (set! f0 (gpr->fpr v0)) + addiu s5, r0, 0 ;; [ 24] (set! s5 0) + lui v1, 17920 ;; [ 25] (set! v1 #x46000000) + mtc1 f1, v1 ;; [ 26] (set! f1 (gpr->fpr v1)) + abs.s f2, f0 ;; [ 27] (set! f2 (abs.s f0)) + c.lt.s f1, f2 ;; [ 28] (b! (>=.s f1 f2) L140 (set! v1 #t)) + bc1f L140 + daddiu v1, s7, 4 + +B1: + or v1, s7, r0 ;; [ 29] (set! v1 #f) +B2: +L140: + bnel s7, v1, L141 ;; [ 30] (bl! (truthy v1) L141 (no-delay!)) +B3: + or v1, v1, r0 ;; [ 31] (set! v1 v1) + +B4: + abs.s f0, f0 ;; [ 32] (set! f0 (abs.s f0)) + lui v1, 18112 ;; [ 33] (set! v1 #x46c00000) + mtc1 f1, v1 ;; [ 34] (set! f1 (gpr->fpr v1)) + c.lt.s f0, f1 ;; [ 35] (b! (>=.s f0 f1) L141 (set! v1 #t)) + bc1f L141 + daddiu v1, s7, 4 + +B5: + or v1, s7, r0 ;; [ 36] (set! v1 #f) +B6: +L141: + beq s7, v1, L148 ;; [ 37] (b! (not v1) L148 (nop!)) + sll r0, r0, 0 + +B7: + daddiu s3, s7, 4 ;; [ 38] (set! s3 #t) + or a0, gp, r0 ;; [ 39] (set! a0 gp) + lwu v1, -4(a0) ;; [ 40] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 492(v1) ;; [ 41] (set! t9 (l.wu (+ v1 492))) + addiu a1, r0, 2 ;; [ 42] (set! a1 2) + jalr ra, t9 ;; [ 43] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 44] (set! v1 v0) + movn s3, s7, v1 ;; [ 45] (cmove-#f-nonzero s3 v1 s3) + daddiu s4, sp, 16 ;; [ 46] (set! s4 (+ sp 16)) + addiu s2, r0, 2 ;; [ 47] (set! s2 2) + beq r0, r0, L146 ;; [ 48] (b! #t L146 (nop!)) + sll r0, r0, 0 + +B8: +L142: + daddiu s2, s2, -1 ;; [ 49] (set! s2 (+ s2 -1)) + beq s7, s3, L144 ;; [ 50] (b! (not s3) L144 (nop!)) + sll r0, r0, 0 + +B9: + or a0, gp, r0 ;; [ 51] (set! a0 gp) + lwu v1, -4(a0) ;; [ 52] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 960(v1) ;; [ 53] (set! t9 (l.wu (+ v1 960))) + or a1, s4, r0 ;; [ 54] (set! a1 s4) + lui v1, 18048 ;; [ 55] (set! v1 #x46800000) + mtc1 f0, v1 ;; [ 56] (set! f0 (gpr->fpr v1)) + add.s f0, f0, f30 ;; [ 57] (set! f0 (+.s f0 f30)) + mfc1 a2, f0 ;; [ 58] (set! a2 (fpr->gpr f0)) + lui a3, 17920 ;; [ 59] (set! a3 #x46000000) + lui v1, 18207 ;; [ 60] (set! t0 #x471f03ee) + ori t0, v1, 1006 + lui v1, 18183 ;; [ 61] (set! t1 #x470703ee) + ori t1, v1, 1006 + jalr ra, t9 ;; [ 62] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 63] (set! v1 v0) + beq s7, v1, L143 ;; [ 64] (b! (not v1) L143 (set! v1 #f)) + or v1, s7, r0 + +B10: + daddiu v1, gp, 556 ;; [ 65] (set! v1 (+ gp 556)) + lwu a0, 124(gp) ;; [ 66] (set! a0 (l.wu (+ gp 124))) + daddiu a0, a0, 12 ;; [ 67] (set! a0 (+ a0 12)) + vmove.w vf6, vf0 ;; [ 68] (set! v1 (vector+!2 v1 s4 a0)) + lqc2 vf4, 0(s4) + lqc2 vf5, 0(a0) + vadd.xyz vf6, vf4, vf5 + sqc2 vf6, 0(v1) + addiu s5, r0, 3 ;; [ 69] (set! s5 3) + or v1, s7, r0 ;; [ 70] (set! v1 #f) + beq r0, r0, L147 ;; [ 71] (b! #t L147 (nop!)) + sll r0, r0, 0 + +B11: + or v1, r0, r0 ;; [ 72] (set! v1 0) +B12: +L143: + beq r0, r0, L145 ;; [ 73] (b! #t L145 (nop!)) + sll r0, r0, 0 + +B13: +L144: + or a0, gp, r0 ;; [ 74] (set! a0 gp) + lwu v1, -4(a0) ;; [ 75] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 960(v1) ;; [ 76] (set! t9 (l.wu (+ v1 960))) + or a1, s4, r0 ;; [ 77] (set! a1 s4) + lui v1, -14720 ;; [ 78] (set! v1 -964689920) + mtc1 f0, v1 ;; [ 79] (set! f0 (gpr->fpr v1)) + add.s f0, f0, f30 ;; [ 80] (set! f0 (+.s f0 f30)) + mfc1 a2, f0 ;; [ 81] (set! a2 (fpr->gpr f0)) + lui a3, 17920 ;; [ 82] (set! a3 #x46000000) + lui v1, 18207 ;; [ 83] (set! t0 #x471f03ee) + ori t0, v1, 1006 + lui v1, 18183 ;; [ 84] (set! t1 #x470703ee) + ori t1, v1, 1006 + jalr ra, t9 ;; [ 85] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 86] (set! v1 v0) + beq s7, v1, L145 ;; [ 87] (b! (not v1) L145 (set! v1 #f)) + or v1, s7, r0 + +B14: + daddiu v1, gp, 556 ;; [ 88] (set! v1 (+ gp 556)) + or a0, s4, r0 ;; [ 89] (set! a0 s4) + lwu a1, 124(gp) ;; [ 90] (set! a1 (l.wu (+ gp 124))) + daddiu a1, a1, 12 ;; [ 91] (set! a1 (+ a1 12)) + vmove.w vf6, vf0 ;; [ 92] (set! v1 (vector+!2 v1 a0 a1)) + lqc2 vf4, 0(a0) + lqc2 vf5, 0(a1) + vadd.xyz vf6, vf4, vf5 + sqc2 vf6, 0(v1) + addiu s5, r0, 2 ;; [ 93] (set! s5 2) + or v1, s7, r0 ;; [ 94] (set! v1 #f) + beq r0, r0, L147 ;; [ 95] (b! #t L147 (nop!)) + sll r0, r0, 0 + +B15: + or v1, r0, r0 ;; [ 96] (set! v1 0) +B16: +L145: + beq s7, s3, L146 ;; [ 97] (b! (not s3) L146 (set! s3 #t)) + daddiu s3, s7, 4 + +B17: + or s3, s7, r0 ;; [ 98] (set! s3 #f) +B18: +L146: + bne s2, r0, L142 ;; [ 99] (b! (nonzero? s2) L142 (nop!)) + sll r0, r0, 0 + +B19: + or v1, s7, r0 ;; [100] (set! v1 #f) + or v1, s7, r0 ;; [101] (set! v1 #f) +B20: +L147: + beq r0, r0, L149 ;; [102] (b! #t L149 (nop!)) + sll r0, r0, 0 + +B21: +L148: + daddiu s4, sp, 32 ;; [103] (set! s4 (+ sp 32)) + or a0, gp, r0 ;; [104] (set! a0 gp) + lwu v1, -4(a0) ;; [105] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 960(v1) ;; [106] (set! t9 (l.wu (+ v1 960))) + or a1, s4, r0 ;; [107] (set! a1 s4) + lui v1, 18176 ;; [108] (set! v1 #x47000000) + mtc1 f0, v1 ;; [109] (set! f0 (gpr->fpr v1)) + add.s f0, f0, f30 ;; [110] (set! f0 (+.s f0 f30)) + mfc1 a2, f0 ;; [111] (set! a2 (fpr->gpr f0)) + lui a3, 17920 ;; [112] (set! a3 #x46000000) + lui v1, 18207 ;; [113] (set! t0 #x471f03ee) + ori t0, v1, 1006 + lui v1, 18183 ;; [114] (set! t1 #x470703ee) + ori t1, v1, 1006 + jalr ra, t9 ;; [115] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [116] (set! v1 v0) + beq s7, v1, L149 ;; [117] (b! (not v1) L149 (set! v1 #f)) + or v1, s7, r0 + +B22: + daddiu v1, gp, 556 ;; [118] (set! v1 (+ gp 556)) + lwu a0, 124(gp) ;; [119] (set! a0 (l.wu (+ gp 124))) + daddiu a0, a0, 12 ;; [120] (set! a0 (+ a0 12)) + vmove.w vf6, vf0 ;; [121] (set! v1 (vector+!2 v1 s4 a0)) + lqc2 vf4, 0(s4) + lqc2 vf5, 0(a0) + vadd.xyz vf6, vf4, vf5 + sqc2 vf6, 0(v1) + addiu s5, r0, 1 ;; [122] (set! s5 1) + or v1, s5, r0 ;; [123] (set! v1 s5) +B23: +L149: + or v0, s5, r0 ;; [124] (set! v0 s5) + ld ra, 0(sp) + lwc1 f30, 128(sp) + lq gp, 112(sp) + lq s5, 96(sp) + lq s4, 80(sp) + lq s3, 64(sp) + lq s2, 48(sp) jr ra - daddu sp, sp, r0 + daddiu sp, sp, 144 sll r0, r0, 0 sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(state-handler (enter target-slide-down) () (set! (-> self control unknown-surface00) *jump-mods*) (none)) - -;;-*-OpenGOAL-End-*- - + (set! gp a0) + (set! t9 target-pos) + (set! a0 0) + (call!) + (set! v1 v0) + (set! a0 (l.wu (+ gp 124))) + (set! a1 (+ a0 12)) + (set! t9 atan) + (set! f0 (l.f a1)) + (set! f1 (l.f v1)) + (set! f0 (-.s f0 f1)) + (set! a0 (fpr->gpr f0)) + (set! f0 (l.f (+ a1 8))) + (set! f1 (l.f (+ v1 8))) + (set! f0 (-.s f0 f1)) + (set! a1 (fpr->gpr f0)) + (call!) + (set! f30 (gpr->fpr v0)) + (set! t9 deg-) + (set! a0 (fpr->gpr f30)) + (set! f0 (l.f (+ gp 892))) + (set! a1 (fpr->gpr f0)) + (call!) + (set! f0 (gpr->fpr v0)) + (set! s5 0) + (set! v1 #x46000000) + (set! f1 (gpr->fpr v1)) + (set! f2 (abs.s f0)) + (b! (>=.s f1 f2) L140 (set! v1 #t)) + (set! v1 #f) +(label L140) + (bl! (truthy v1) L141 (no-delay!)) + (set! v1 v1) + (set! f0 (abs.s f0)) + (set! v1 #x46c00000) + (set! f1 (gpr->fpr v1)) + (b! (>=.s f0 f1) L141 (set! v1 #t)) + (set! v1 #f) +(label L141) + (b! (not v1) L148 (nop!)) + (set! s3 #t) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 492))) + (set! a1 2) + (call!) + (set! v1 v0) + (cmove-#f-nonzero s3 v1 s3) + (set! s4 (+ sp 16)) + (set! s2 2) + (b! #t L146 (nop!)) +(label L142) + (set! s2 (+ s2 -1)) + (b! (not s3) L144 (nop!)) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 960))) + (set! a1 s4) + (set! v1 #x46800000) + (set! f0 (gpr->fpr v1)) + (set! f0 (+.s f0 f30)) + (set! a2 (fpr->gpr f0)) + (set! a3 #x46000000) + (set! t0 #x471f03ee) + (set! t1 #x470703ee) + (call!) + (set! v1 v0) + (b! (not v1) L143 (set! v1 #f)) + (set! v1 (+ gp 556)) + (set! a0 (l.wu (+ gp 124))) + (set! a0 (+ a0 12)) + (set! v1 (vector+!2 v1 s4 a0)) + (set! s5 3) + (set! v1 #f) + (b! #t L147 (nop!)) + (set! v1 0) +(label L143) + (b! #t L145 (nop!)) +(label L144) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 960))) + (set! a1 s4) + (set! v1 -964689920) + (set! f0 (gpr->fpr v1)) + (set! f0 (+.s f0 f30)) + (set! a2 (fpr->gpr f0)) + (set! a3 #x46000000) + (set! t0 #x471f03ee) + (set! t1 #x470703ee) + (call!) + (set! v1 v0) + (b! (not v1) L145 (set! v1 #f)) + (set! v1 (+ gp 556)) + (set! a0 s4) + (set! a1 (l.wu (+ gp 124))) + (set! a1 (+ a1 12)) + (set! v1 (vector+!2 v1 a0 a1)) + (set! s5 2) + (set! v1 #f) + (b! #t L147 (nop!)) + (set! v1 0) +(label L145) + (b! (not s3) L146 (set! s3 #t)) + (set! s3 #f) +(label L146) + (b! (nonzero? s2) L142 (nop!)) + (set! v1 #f) + (set! v1 #f) +(label L147) + (b! #t L149 (nop!)) +(label L148) + (set! s4 (+ sp 32)) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 960))) + (set! a1 s4) + (set! v1 #x47000000) + (set! f0 (gpr->fpr v1)) + (set! f0 (+.s f0 f30)) + (set! a2 (fpr->gpr f0)) + (set! a3 #x46000000) + (set! t0 #x471f03ee) + (set! t1 #x470703ee) + (call!) + (set! v1 v0) + (b! (not v1) L149 (set! v1 #f)) + (set! v1 (+ gp 556)) + (set! a0 (l.wu (+ gp 124))) + (set! a0 (+ a0 12)) + (set! v1 (vector+!2 v1 s4 a0)) + (set! s5 1) + (set! v1 s5) +(label L149) + (set! v0 s5) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-turn-around) +; .function (method 246 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x20, fp? 1 ra? 1 ep? 1 + ;stack: total 0x20, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 ;gprs: gp ;; Warnings: -;; INFO: Return type mismatch object vs none. +;; WARN: Type Propagation failed: Function (method 246 ashelin) has unknown type -;; s6-0: target -L433: +L150: daddiu sp, sp, -32 sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 sq gp, 16(sp) B0: - lw t9, ja-channel-push!(s7);; [ 0] (set! t9-0 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 1] (set! a0-0 1) [] -> [a0: ] - addiu a1, r0, 12 ;; [ 2] (set! a1-0 12) [] -> [a1: ] - jalr ra, t9 ;; [ 3] (call! a0-0 a1-0) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 + or gp, a0, r0 ;; [ 0] (set! gp a0) + lui v1, 18176 ;; [ 1] (set! v1 #x47000000) + mtc1 f0, v1 ;; [ 2] (set! f0 (gpr->fpr v1)) + lwc1 f1, 884(gp) ;; [ 3] (set! f1 (l.f (+ gp 884))) + c.lt.s f0, f1 ;; [ 4] (b! (<.s f0 f1) L151 (set! v1 #f)) + bc1t L151 + or v1, s7, r0 - lwu v1, 120(s6) ;; [ 4] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 5] (set! v1-1 (l.wu (+ v1-0 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [ 6] (set! gp-0 (+ v1-1 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lw t9, joint-control-channel-group-eval!(s7);; [ 7] (set! t9-1 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, gp, r0 ;; [ 8] (set! a0-1 gp-0) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 9] (set! v1-2 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 10] (set! v1-3 (l.wu (+ v1-2 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 160(v1) ;; [ 11] (set! a1-1 (l.wu (+ v1-3 160))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [ 12] (set! a2-0 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 13] (call! a0-1 a1-1 a2-0) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [ 14] (set! f0-0 0) [] -> [] - swc1 f0, 16(gp) ;; [ 15] (s.f! (+ gp-0 16) f0-0) [gp: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [ 16] (set! v1-4 (fpr->gpr f0-0)) [] -> [v1: float ] - lw t9, quaternion-rotate-y!(s7);; [ 17] (set! t9-2 quaternion-rotate-y!) - ;; [] -> [t9: (function quaternion quaternion float quaternion) ] - lwu v1, 108(s6) ;; [ 18] (set! v1-5 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a0, v1, 108 ;; [ 19] (set! a0-2 (+ v1-5 108)) [v1: control-info ] -> [a0: quaternion ] - lwu v1, 108(s6) ;; [ 20] (set! v1-6 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a1, v1, 108 ;; [ 21] (set! a1-2 (+ v1-6 108)) [v1: control-info ] -> [a1: quaternion ] - lui v1, L733 ;; [ 22] (set! v1-7 L733) [] -> [v1: ] - ori v1, v1, L733 - addu v1, fp, v1 - lw a2, 0(v1) ;; [ 23] (set! a2-1 (l.w v1-7)) [v1: ] -> [a2: int ] - jalr ra, t9 ;; [ 24] (call! a0-2 a1-2 a2-1) - ;; [a0: quaternion a1: quaternion a2: int t9: (function quaternion quaternion float quaternion) ] -> [v0: quaternion ] - sll v0, ra, 0 - - lwu a0, 128(s6) ;; [ 25] (set! a0-3 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [ 26] (set! v1-8 (l.wu (+ a0-3 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 52(v1) ;; [ 27] (set! t9-3 (l.wu (+ v1-8 52))) - ;; [v1: ] -> [t9: ] - jalr ra, t9 ;; [ 28] (call! a0-3) - ;; [a0: align-control t9: ] -> [v0: transformq ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 29] (set! v1-9 v0-3) [v0: transformq ] -> [v1: transformq ] B1: -L434: - lwu s6, 44(s6) ;; [ 30] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 31] (set! v1-10 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 32] (set! v1-11 (l.wu (+ v1-10 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 33] (set! a0-4 (+ v1-11 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [ 34] (set! v1-12 (l.wu (+ a0-4 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 35] (set! v1-13 (l.wu (+ v1-12 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 36] (set! v1-14 (l.h (+ v1-13 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 37] (set! v1-15 (+ v1-14 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 38] (set! f0-1 (gpr->fpr v1-15)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 39] (set! f0-2 (i2f f0-1)) [] -> [] - swc1 f0, 24(a0) ;; [ 40] (s.f! (+ a0-4 24) f0-2) [a0: joint-control-channel ] -> [] - lui v1, L748 ;; [ 41] (set! v1-16 L748) [] -> [v1: ] - ori v1, v1, L748 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 42] (set! f0-3 (l.f v1-16)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 43] (s.f! (+ a0-4 28) f0-3) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 44] (set! t9-4 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 45] (set! a1-3 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 46] (set! a2-2 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 47] (call! a0-4 a1-3 a2-2) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] + lwc1 f0, 896(gp) ;; [ 5] (set! f0 (l.f (+ gp 896))) + lwu v1, -4(gp) ;; [ 6] (set! v1 (l.wu (+ gp -4))) + lwu t9, 988(v1) ;; [ 7] (set! t9 (l.wu (+ v1 988))) + mfc1 a1, f0 ;; [ 8] (set! a1 (fpr->gpr f0)) + or a0, gp, r0 ;; [ 9] (set! a0 gp) + jalr ra, t9 ;; [ 10] (call!) sll v0, ra, 0 - or v1, v0, r0 ;; [ 48] (set! v1-17 v0-4) [v0: int ] -> [v1: int ] - lwu a0, 128(s6) ;; [ 49] (set! a0-5 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [ 50] (set! v1-18 (l.wu (+ a0-5 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 52(v1) ;; [ 51] (set! t9-5 (l.wu (+ v1-18 52))) - ;; [v1: ] -> [t9: ] - jalr ra, t9 ;; [ 52] (call! a0-5) - ;; [a0: align-control t9: ] -> [v0: transformq ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 53] (set! v1-19 v0-5) [v0: transformq ] -> [v1: transformq ] - lwu a0, 128(s6) ;; [ 54] (set! a0-6 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [ 55] (set! v1-20 (l.wu (+ a0-6 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 56(v1) ;; [ 56] (set! t9-6 (l.wu (+ v1-20 56))) - ;; [v1: ] -> [t9: ] - addiu a1, r0, 16 ;; [ 57] (set! a1-4 16) [] -> [a1: ] - lui v1, L786 ;; [ 58] (set! v1-21 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a2, 0(v1) ;; [ 59] (set! a2-3 (l.w v1-21)) [v1: ] -> [a2: int ] - lui v1, L786 ;; [ 60] (set! v1-22 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a3, 0(v1) ;; [ 61] (set! a3-0 (l.w v1-22)) [v1: ] -> [a3: int ] - lui v1, L786 ;; [ 62] (set! v1-23 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw t0, 0(v1) ;; [ 63] (set! t0-0 (l.w v1-23)) [v1: ] -> [t0: int ] - jalr ra, t9 ;; [ 64] (call! a0-6 a1-4 a2-3 a3-0 t0-0) - ;; [a0: align-control a1: a2: int a3: int t0: int t9: ] -> [v0: trsqv ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 65] (set! v1-24 v0-6) [v0: trsqv ] -> [v1: trsqv ] - lw t9, ja-done?(s7) ;; [ 66] (set! t9-7 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 67] (set! a0-7 0) [] -> [a0: ] - jalr ra, t9 ;; [ 68] (call! a0-7) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L434 ;; [ 69] (b! (not v0-7) L434 (nop!)) [v0: symbol ] -> [] + or v1, v0, r0 ;; [ 11] (set! v1 v0) + or v0, v1, r0 ;; [ 12] (set! v0 v1) + beq r0, r0, L153 ;; [ 13] (b! #t L153 (nop!)) sll r0, r0, 0 B2: - or v1, s7, r0 ;; [ 70] (set! v1-25 #f) [] -> [v1: '#f ] - lw t9, remove-exit(s7) ;; [ 71] (set! t9-8 remove-exit) [] -> [t9: (function stack-frame :behavior process) ] - jalr ra, t9 ;; [ 72] (call!) [t9: (function stack-frame :behavior process) ] -> [v0: stack-frame ] + or v1, r0, r0 ;; [ 14] (set! v1 0) +B3: +L151: + lui v1, 16 ;; [ 15] (set! v1 #x100000) + lwu a0, 600(gp) ;; [ 16] (set! a0 (l.wu (+ gp 600))) + and v1, v1, a0 ;; [ 17] (set! v1 (logand v1 a0)) + beq v1, r0, L152 ;; [ 18] (b! (zero? v1) L152 (set! v1 #f)) + or v1, s7, r0 + +B4: + lui v1, 16256 ;; [ 19] (set! v1 #x3f800000) + mtc1 f0, v1 ;; [ 20] (set! f0 (gpr->fpr v1)) + lwu v1, 124(gp) ;; [ 21] (set! v1 (l.wu (+ gp 124))) + swc1 f0, 24(v1) ;; [ 22] (s.f! (+ v1 24) f0) + daddiu a0, gp, 1020 ;; [ 23] (set! a0 (+ gp 1020)) + lwu v1, 124(gp) ;; [ 24] (set! v1 (l.wu (+ gp 124))) + daddiu v1, v1, 12 ;; [ 25] (set! v1 (+ v1 12)) + lwc1 f0, 0(a0) ;; [ 26] (set! f0 (vec4dot a0 v1)) + lwc1 f1, 4(a0) + lwc1 f2, 8(a0) + lwc1 f3, 12(a0) + lwc1 f4, 0(v1) + lwc1 f5, 4(v1) + lwc1 f6, 8(v1) + lwc1 f7, 12(v1) + mula.s f0, f4 + madda.s f1, f5 + madda.s f2, f6 + madd.s f0, f3, f7 + mfc1 v1, f0 ;; [ 27] (set! v1 (fpr->gpr f0)) + mtc1 f0, v1 ;; [ 28] (set! f0 (gpr->fpr v1)) + lui v1, 17984 ;; [ 29] (set! v1 #x46400000) + mtc1 f1, v1 ;; [ 30] (set! f1 (gpr->fpr v1)) + c.lt.s f0, f1 ;; [ 31] (b! (<.s f0 f1) L152 (set! v1 #f)) + bc1t L152 + or v1, s7, r0 + +B5: + lw t9, atan(s7) ;; [ 32] (set! t9 atan) + lwc1 f0, 1020(gp) ;; [ 33] (set! f0 (l.f (+ gp 1020))) + mfc1 a0, f0 ;; [ 34] (set! a0 (fpr->gpr f0)) + lwc1 f0, 1028(gp) ;; [ 35] (set! f0 (l.f (+ gp 1028))) + mfc1 a1, f0 ;; [ 36] (set! a1 (fpr->gpr f0)) + jalr ra, t9 ;; [ 37] (call!) sll v0, ra, 0 - mtc1 f0, r0 ;; [ 73] (set! f0-4 0) [] -> [] - lwu v1, 108(s6) ;; [ 74] (set! v1-26 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [ 75] (s.f! (+ v1-26 1724) f0-4) [v1: control-info ] -> [] - lw t9, set-forward-vel(s7);; [ 76] (set! t9-9 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - lui v1, L732 ;; [ 77] (set! v1-27 L732) [] -> [v1: ] - ori v1, v1, L732 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 78] (set! a0-8 (l.w v1-27)) [v1: ] -> [a0: int ] - jalr ra, t9 ;; [ 79] (call! a0-8) - ;; [a0: int t9: (function float vector :behavior target) ] -> [v0: vector ] + mtc1 f0, v0 ;; [ 38] (set! f0 (gpr->fpr v0)) + or a0, gp, r0 ;; [ 39] (set! a0 gp) + lwu v1, -4(a0) ;; [ 40] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 988(v1) ;; [ 41] (set! t9 (l.wu (+ v1 988))) + mfc1 a1, f0 ;; [ 42] (set! a1 (fpr->gpr f0)) + jalr ra, t9 ;; [ 43] (call!) sll v0, ra, 0 - lui v1, L732 ;; [ 80] (set! v1-28 L732) [] -> [v1: ] - ori v1, v1, L732 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 81] (set! f0-5 (l.f v1-28)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 82] (set! v1-29 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 528(v1) ;; [ 83] (s.f! (+ v1-29 528) f0-5) [v1: control-info ] -> [] - lw t9, target-state-hook-exit(s7);; [ 84] (set! t9-10 target-state-hook-exit) - ;; [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 85] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, enter-state(s7) ;; [ 86] (set! t9-11 enter-state) [] -> [t9: ] - lw v1, target-walk(s7) ;; [ 87] (set! v1-30 target-walk) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 88] (s.w! (+ self 72) v1-30) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 89] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 + or v1, v0, r0 ;; [ 44] (set! v1 v0) + or v0, v1, r0 ;; [ 45] (set! v0 v1) + beq r0, r0, L153 ;; [ 46] (b! #t L153 (nop!)) + sll r0, r0, 0 +B6: + or v1, r0, r0 ;; [ 47] (set! v1 0) +B7: +L152: + addiu v0, r0, 0 ;; [ 48] (set! v0 0) +B8: +L153: ld ra, 0(sp) - ld fp, 8(sp) lq gp, 16(sp) jr ra daddiu sp, sp, 32 @@ -20207,3387 +7041,381 @@ B2: sll r0, r0, 0 sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-turn-around) - () - (ja-channel-push! 1 (seconds 0.04)) - (ja :group! (-> self draw art-group data 33) :num! min) - (quaternion-rotate-y! (-> self control dir-targ) (-> self control dir-targ) (the-as float 32768.0)) - (compute-alignment! (-> self align)) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! max 2.0)) - (compute-alignment! (-> self align)) - (align! (-> self align) (align-opts adjust-quat) (the-as float 1.0) (the-as float 1.0) (the-as float 1.0)) - ) - (remove-exit) - (set! (-> self control unknown-float81) 0.0) - (set-forward-vel (the-as float 40960.0)) - (set! (-> self control unknown-float01) 40960.0) - (target-state-hook-exit) - (go target-walk) - (none) - ) - -;;-*-OpenGOAL-End-*- - + (set! gp a0) + (set! v1 #x47000000) + (set! f0 (gpr->fpr v1)) + (set! f1 (l.f (+ gp 884))) + (b! (<.s f0 f1) L151 (set! v1 #f)) + (set! f0 (l.f (+ gp 896))) + (set! v1 (l.wu (+ gp -4))) + (set! t9 (l.wu (+ v1 988))) + (set! a1 (fpr->gpr f0)) + (set! a0 gp) + (call!) + (set! v1 v0) + (set! v0 v1) + (b! #t L153 (nop!)) + (set! v1 0) +(label L151) + (set! v1 #x100000) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logand v1 a0)) + (b! (zero? v1) L152 (set! v1 #f)) + (set! v1 #x3f800000) + (set! f0 (gpr->fpr v1)) + (set! v1 (l.wu (+ gp 124))) + (s.f! (+ v1 24) f0) + (set! a0 (+ gp 1020)) + (set! v1 (l.wu (+ gp 124))) + (set! v1 (+ v1 12)) + (set! f0 (vec4dot a0 v1)) + (set! v1 (fpr->gpr f0)) + (set! f0 (gpr->fpr v1)) + (set! v1 #x46400000) + (set! f1 (gpr->fpr v1)) + (b! (<.s f0 f1) L152 (set! v1 #f)) + (set! t9 atan) + (set! f0 (l.f (+ gp 1020))) + (set! a0 (fpr->gpr f0)) + (set! f0 (l.f (+ gp 1028))) + (set! a1 (fpr->gpr f0)) + (call!) + (set! f0 (gpr->fpr v0)) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 988))) + (set! a1 (fpr->gpr f0)) + (call!) + (set! v1 v0) + (set! v0 v1) + (b! #t L153 (nop!)) + (set! v1 0) +(label L152) + (set! v0 0) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-turn-around) +; .function (method 243 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x60, fp? 0 ra? 1 ep? 1 + ;stack_vars: 24 bytes at 8 + ;gprs: gp s5 s4 + ;fprs: f30 +;; Warnings: +;; WARN: Type Propagation failed: Function (method 243 ashelin) has unknown type + +L154: + daddiu sp, sp, -96 + sd ra, 0(sp) + sq s4, 32(sp) + sq s5, 48(sp) + sq gp, 64(sp) + swc1 f30, 80(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + or s4, a1, r0 ;; [ 1] (set! s4 a1) + lw t9, deg-(s7) ;; [ 2] (set! t9 deg-) + or a0, s4, r0 ;; [ 3] (set! a0 s4) + lwc1 f0, 892(gp) ;; [ 4] (set! f0 (l.f (+ gp 892))) + mfc1 a1, f0 ;; [ 5] (set! a1 (fpr->gpr f0)) + jalr ra, t9 ;; [ 6] (call!) + sll v0, ra, 0 + + mtc1 f30, v0 ;; [ 7] (set! f30 (gpr->fpr v0)) + lui v1, 18048 ;; [ 8] (set! v1 #x46800000) + mtc1 f0, v1 ;; [ 9] (set! f0 (gpr->fpr v1)) + abs.s f1, f30 ;; [ 10] (set! f1 (abs.s f30)) + c.lt.s f0, f1 ;; [ 11] (b! (<.s f0 f1) L158 (set! v1 #f)) + bc1t L158 + or v1, s7, r0 + +B1: + daddiu s5, sp, 16 ;; [ 12] (set! s5 (+ sp 16)) + or a0, gp, r0 ;; [ 13] (set! a0 gp) + lwu v1, -4(a0) ;; [ 14] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 960(v1) ;; [ 15] (set! t9 (l.wu (+ v1 960))) + or a1, s5, r0 ;; [ 16] (set! a1 s5) + lui v1, 18176 ;; [ 17] (set! v1 #x47000000) + mtc1 f0, v1 ;; [ 18] (set! f0 (gpr->fpr v1)) + mtc1 f1, s4 ;; [ 19] (set! f1 (gpr->fpr s4)) + add.s f0, f0, f1 ;; [ 20] (set! f0 (+.s f0 f1)) + mfc1 a2, f0 ;; [ 21] (set! a2 (fpr->gpr f0)) + lui a3, 17920 ;; [ 22] (set! a3 #x46000000) + lui v1, 18207 ;; [ 23] (set! t0 #x471f03ee) + ori t0, v1, 1006 + lui v1, 18183 ;; [ 24] (set! t1 #x470703ee) + ori t1, v1, 1006 + jalr ra, t9 ;; [ 25] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 26] (set! v1 v0) + beq s7, v1, L155 ;; [ 27] (b! (not v1) L155 (set! v1 #f)) + or v1, s7, r0 + +B2: + daddiu v1, gp, 556 ;; [ 28] (set! v1 (+ gp 556)) + lwu a0, 124(gp) ;; [ 29] (set! a0 (l.wu (+ gp 124))) + daddiu a0, a0, 12 ;; [ 30] (set! a0 (+ a0 12)) + vmove.w vf6, vf0 ;; [ 31] (set! v1 (vector+!2 v1 s5 a0)) + lqc2 vf4, 0(s5) + lqc2 vf5, 0(a0) + vadd.xyz vf6, vf4, vf5 + sqc2 vf6, 0(v1) + addiu v0, r0, 1 ;; [ 32] (set! v0 1) + beq r0, r0, L159 ;; [ 33] (b! #t L159 (nop!)) + sll r0, r0, 0 + +B3: + or v1, r0, r0 ;; [ 34] (set! v1 0) +B4: +L155: + mtc1 f0, r0 ;; [ 35] (set! f0 0) + c.lt.s f0, f30 ;; [ 36] (b! (>=.s f0 f30) L157 (nop!)) + bc1f L157 + sll r0, r0, 0 + +B5: + or a0, gp, r0 ;; [ 37] (set! a0 gp) + lwu v1, -4(a0) ;; [ 38] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 960(v1) ;; [ 39] (set! t9 (l.wu (+ v1 960))) + or a1, s5, r0 ;; [ 40] (set! a1 s5) + lui v1, -14720 ;; [ 41] (set! v1 -964689920) + mtc1 f0, v1 ;; [ 42] (set! f0 (gpr->fpr v1)) + mtc1 f1, s4 ;; [ 43] (set! f1 (gpr->fpr s4)) + add.s f0, f0, f1 ;; [ 44] (set! f0 (+.s f0 f1)) + mfc1 a2, f0 ;; [ 45] (set! a2 (fpr->gpr f0)) + lui a3, 17920 ;; [ 46] (set! a3 #x46000000) + lui v1, 18207 ;; [ 47] (set! t0 #x471f03ee) + ori t0, v1, 1006 + lui v1, 18183 ;; [ 48] (set! t1 #x470703ee) + ori t1, v1, 1006 + jalr ra, t9 ;; [ 49] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 50] (set! v1 v0) + beq s7, v1, L156 ;; [ 51] (b! (not v1) L156 (set! v1 #f)) + or v1, s7, r0 + +B6: + daddiu v1, gp, 556 ;; [ 52] (set! v1 (+ gp 556)) + or a0, s5, r0 ;; [ 53] (set! a0 s5) + lwu a1, 124(gp) ;; [ 54] (set! a1 (l.wu (+ gp 124))) + daddiu a1, a1, 12 ;; [ 55] (set! a1 (+ a1 12)) + vmove.w vf6, vf0 ;; [ 56] (set! v1 (vector+!2 v1 a0 a1)) + lqc2 vf4, 0(a0) + lqc2 vf5, 0(a1) + vadd.xyz vf6, vf4, vf5 + sqc2 vf6, 0(v1) + addiu v0, r0, 2 ;; [ 57] (set! v0 2) + beq r0, r0, L159 ;; [ 58] (b! #t L159 (nop!)) + sll r0, r0, 0 + +B7: + or v1, r0, r0 ;; [ 59] (set! v1 0) +B8: +L156: + beq r0, r0, L158 ;; [ 60] (b! #t L158 (nop!)) + sll r0, r0, 0 + +B9: +L157: + or a0, gp, r0 ;; [ 61] (set! a0 gp) + lwu v1, -4(a0) ;; [ 62] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 960(v1) ;; [ 63] (set! t9 (l.wu (+ v1 960))) + or a1, s5, r0 ;; [ 64] (set! a1 s5) + lui v1, 18048 ;; [ 65] (set! v1 #x46800000) + mtc1 f0, v1 ;; [ 66] (set! f0 (gpr->fpr v1)) + mtc1 f1, s4 ;; [ 67] (set! f1 (gpr->fpr s4)) + add.s f0, f0, f1 ;; [ 68] (set! f0 (+.s f0 f1)) + mfc1 a2, f0 ;; [ 69] (set! a2 (fpr->gpr f0)) + lui a3, 17920 ;; [ 70] (set! a3 #x46000000) + lui v1, 18207 ;; [ 71] (set! t0 #x471f03ee) + ori t0, v1, 1006 + lui v1, 18183 ;; [ 72] (set! t1 #x470703ee) + ori t1, v1, 1006 + jalr ra, t9 ;; [ 73] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 74] (set! v1 v0) + beq s7, v1, L158 ;; [ 75] (b! (not v1) L158 (set! v1 #f)) + or v1, s7, r0 + +B10: + daddiu v1, gp, 556 ;; [ 76] (set! v1 (+ gp 556)) + or a0, s5, r0 ;; [ 77] (set! a0 s5) + lwu a1, 124(gp) ;; [ 78] (set! a1 (l.wu (+ gp 124))) + daddiu a1, a1, 12 ;; [ 79] (set! a1 (+ a1 12)) + vmove.w vf6, vf0 ;; [ 80] (set! v1 (vector+!2 v1 a0 a1)) + lqc2 vf4, 0(a0) + lqc2 vf5, 0(a1) + vadd.xyz vf6, vf4, vf5 + sqc2 vf6, 0(v1) + addiu v0, r0, 3 ;; [ 81] (set! v0 3) + beq r0, r0, L159 ;; [ 82] (b! #t L159 (nop!)) + sll r0, r0, 0 + +B11: + or v1, r0, r0 ;; [ 83] (set! v1 0) +B12: +L158: + addiu v0, r0, 0 ;; [ 84] (set! v0 0) +B13: +L159: + ld ra, 0(sp) + lwc1 f30, 80(sp) + lq gp, 64(sp) + lq s5, 48(sp) + lq s4, 32(sp) + jr ra + daddiu sp, sp, 96 + + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! s4 a1) + (set! t9 deg-) + (set! a0 s4) + (set! f0 (l.f (+ gp 892))) + (set! a1 (fpr->gpr f0)) + (call!) + (set! f30 (gpr->fpr v0)) + (set! v1 #x46800000) + (set! f0 (gpr->fpr v1)) + (set! f1 (abs.s f30)) + (b! (<.s f0 f1) L158 (set! v1 #f)) + (set! s5 (+ sp 16)) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 960))) + (set! a1 s5) + (set! v1 #x47000000) + (set! f0 (gpr->fpr v1)) + (set! f1 (gpr->fpr s4)) + (set! f0 (+.s f0 f1)) + (set! a2 (fpr->gpr f0)) + (set! a3 #x46000000) + (set! t0 #x471f03ee) + (set! t1 #x470703ee) + (call!) + (set! v1 v0) + (b! (not v1) L155 (set! v1 #f)) + (set! v1 (+ gp 556)) + (set! a0 (l.wu (+ gp 124))) + (set! a0 (+ a0 12)) + (set! v1 (vector+!2 v1 s5 a0)) + (set! v0 1) + (b! #t L159 (nop!)) + (set! v1 0) +(label L155) + (set! f0 0) + (b! (>=.s f0 f30) L157 (nop!)) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 960))) + (set! a1 s5) + (set! v1 -964689920) + (set! f0 (gpr->fpr v1)) + (set! f1 (gpr->fpr s4)) + (set! f0 (+.s f0 f1)) + (set! a2 (fpr->gpr f0)) + (set! a3 #x46000000) + (set! t0 #x471f03ee) + (set! t1 #x470703ee) + (call!) + (set! v1 v0) + (b! (not v1) L156 (set! v1 #f)) + (set! v1 (+ gp 556)) + (set! a0 s5) + (set! a1 (l.wu (+ gp 124))) + (set! a1 (+ a1 12)) + (set! v1 (vector+!2 v1 a0 a1)) + (set! v0 2) + (b! #t L159 (nop!)) + (set! v1 0) +(label L156) + (b! #t L158 (nop!)) +(label L157) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 960))) + (set! a1 s5) + (set! v1 #x46800000) + (set! f0 (gpr->fpr v1)) + (set! f1 (gpr->fpr s4)) + (set! f0 (+.s f0 f1)) + (set! a2 (fpr->gpr f0)) + (set! a3 #x46000000) + (set! t0 #x471f03ee) + (set! t1 #x470703ee) + (call!) + (set! v1 v0) + (b! (not v1) L158 (set! v1 #f)) + (set! v1 (+ gp 556)) + (set! a0 s5) + (set! a1 (l.wu (+ gp 124))) + (set! a1 (+ a1 12)) + (set! v1 (vector+!2 v1 a0 a1)) + (set! v0 3) + (b! #t L159 (nop!)) + (set! v1 0) +(label L158) + (set! v0 0) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 235 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;stack: total 0x10, fp? 0 ra? 1 ep? 1 ;stack_vars: 8 bytes at 8 -;; s6-0: target -L435: +;; Warnings: +;; WARN: Type Propagation failed: Function (method 235 ashelin) has unknown type + +L160: daddiu sp, sp, -16 sd ra, 0(sp) B0: - lwu t9, 196(s6) ;; [ 0] (set! t9-0 (l.wu (+ self 196))) - ;; [s6: target ] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 1] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lwu v1, 108(s6) ;; [ 2] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 3] (set! v1-1 (l.wu (+ v1-0 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 4] (set! v1-2 (l.w (+ v1-1 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 5] (set! v1-3 (sll v1-2 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 6] (set! a0-0 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 7] (set! v1-4 (+ v1-3 a0-0)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 8] (set! v1-5 (l.wu (+ v1-4 4))) [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 9] (set! v1-6 (l.wu (+ v1-5 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 10] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 11] (set! a0-2 (l.wu (+ a0-1 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 12] (set! a0-3 (l.w (+ a0-2 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 13] (set! a0-4 (sll a0-3 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 14] (set! a1-0 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 15] (set! a0-5 (+ a0-4 a1-0)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 16] (set! a0-6 (l.wu (+ a0-5 4))) [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [ 17] (set! a0-7 (l.wu (+ a0-6 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 18] (set! v1-7 (logior v1-6 a0-7)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 19] (set! a0-8 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 20] (set! a0-9 (l.wu (+ a0-8 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 21] (set! a0-10 (l.w (+ a0-9 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 22] (set! a0-11 (sll a0-10 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 23] (set! a1-1 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 24] (set! a0-12 (+ a0-11 a1-1)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 25] (set! a0-13 (l.wu (+ a0-12 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [ 26] (set! a0-14 (l.wu (+ a0-13 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 27] (set! v1-8 (logior v1-7 a0-14)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [ 28] (set! v1-9 (logand v1-8 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L436 ;; [ 29] (bl! (zero? v1-9) L436 (no-delay!)) [v1: pad-buttons ] -> [] + lwu v1, 8(s6) ;; [ 0] (set! v1 (l.wu (+ s6 8))) + ld v1, 20(v1) ;; [ 1] (set! v1 (l.d (+ v1 20))) + ld a2, 1004(a0) ;; [ 2] (set! a2 (l.d (+ a0 1004))) + dsubu v1, v1, a2 ;; [ 3] (set! v1 (- v1 a2)) + slti v1, v1, 300 ;; [ 4] (set! a2 (>=.si v1 300)) + daddiu a2, s7, 4 + movn a2, s7, v1 + beql s7, a2, L162 ;; [ 5] (bl! (not a2) L162 (no-delay!)) B1: - or v1, s7, r0 ;; [ 30] (set! v1-10 #f) [] -> [v1: '#f ] + or v0, a2, r0 ;; [ 6] (set! v0 a2) B2: - lw t9, can-jump?(s7) ;; [ 31] (set! t9-1 can-jump?) [] -> [t9: (function symbol symbol :behavior target) ] - or a0, s7, r0 ;; [ 32] (set! a0-15 #f) [] -> [a0: '#f ] - jalr ra, t9 ;; [ 33] (call! a0-15) - ;; [a0: '#f t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 34] (set! v1-10 v0-1) [v0: symbol ] -> [v1: symbol ] -B3: -L436: - beq s7, v1, L437 ;; [ 35] (b! (not v1-10) L437 (set! v1-11 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B4: - lw t9, enter-state(s7) ;; [ 36] (set! t9-2 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [ 37] (set! v1-12 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 4(v1) ;; [ 38] (set! f0-0 (l.f (+ v1-12 4))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [ 39] (set! a0-16 (fpr->gpr f0-0)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [ 40] (set! v1-13 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 8(v1) ;; [ 41] (set! f0-1 (l.f (+ v1-13 8))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [ 42] (set! a1-2 (fpr->gpr f0-1)) [] -> [a1: meters ] - or a2, s7, r0 ;; [ 43] (set! a2-0 #f) [] -> [a2: '#f ] - lw v1, target-jump(s7) ;; [ 44] (set! v1-14 target-jump) [] -> [v1: (state float float surface target) ] - sw v1, 72(s6) ;; [ 45] (s.w! (+ self 72) v1-14) - ;; [v1: (state float float surface target) s6: target ] -> [] - jalr ra, t9 ;; [ 46] (call! a0-16 a1-2 a2-0) - ;; [a0: meters a1: meters a2: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 47] (set! v1-15 v0-2) [v0: object ] -> [v1: object ] -B5: -L437: - lwu v1, 108(s6) ;; [ 48] (set! v1-16 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 49] (set! v1-17 (l.wu (+ v1-16 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 50] (set! v1-18 (l.w (+ v1-17 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 51] (set! v1-19 (sll v1-18 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 52] (set! a0-17 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 53] (set! v1-20 (+ v1-19 a0-17)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 54] (set! v1-21 (l.wu (+ v1-20 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 55] (set! v1-22 (l.wu (+ v1-21 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 8192 ;; [ 56] (set! v1-23 (logand v1-22 8192)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L438 ;; [ 57] (bl! (zero? v1-23) L438 (no-delay!)) [v1: pad-buttons ] -> [] -B6: - or v1, s7, r0 ;; [ 58] (set! v1-24 #f) [] -> [v1: '#f ] - -B7: - lw t9, can-feet?(s7) ;; [ 59] (set! t9-3 can-feet?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 60] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 61] (set! v1-24 v0-3) [v0: symbol ] -> [v1: symbol ] -B8: -L438: - beq s7, v1, L439 ;; [ 62] (b! (not v1-24) L439 (set! v1-25 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B9: - lw t9, enter-state(s7) ;; [ 63] (set! t9-4 enter-state) [] -> [t9: ] - lw v1, target-attack(s7) ;; [ 64] (set! v1-26 target-attack) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 65] (s.w! (+ self 72) v1-26) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 66] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 67] (set! v1-27 v0-4) [v0: object ] -> [v1: object ] -B10: -L439: - lw t9, can-hands?(s7) ;; [ 68] (set! t9-5 can-hands?) [] -> [t9: (function symbol symbol :behavior target) ] - daddiu a0, s7, #t ;; [ 69] (set! a0-18 #t) [] -> [a0: symbol ] - jalr ra, t9 ;; [ 70] (call! a0-18) - ;; [a0: symbol t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L440 ;; [ 71] (b! (not v0-5) L440 (set! v1-28 #f)) [v0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B11: - lw t9, enter-state(s7) ;; [ 72] (set! t9-6 enter-state) [] -> [t9: ] - lw v1, target-running-attack(s7);; [ 73] (set! v1-29 target-running-attack) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 74] (s.w! (+ self 72) v1-29) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 75] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 76] (set! v1-30 v0-6) [v0: object ] -> [v1: object ] -B12: -L440: - lwu v1, 108(s6) ;; [ 77] (set! v1-31 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [ 78] (set! v1-32 (l.d (+ v1-31 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - andi v1, v1, 1 ;; [ 79] (set! v1-33 (logand v1-32 1)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - bnel v1, r0, L441 ;; [ 80] (bl! (nonzero? v1-33) L441 (no-delay!)) [v1: cshape-moving-flags ] -> [] -B13: - or v1, s7, r0 ;; [ 81] (set! v1-34 #f) [] -> [v1: '#f ] - -B14: - lw v1, *display*(s7) ;; [ 82] (set! v1-35 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 83] (set! v1-36 (l.d (+ v1-35 780))) [v1: display ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 84] (set! a0-19 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 1284(a0) ;; [ 85] (set! a0-20 (l.d (+ a0-19 1284))) [a0: control-info ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 86] (set! v1-37 (- v1-36 a0-20)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti a0, v1, 24 ;; [ 87] (set! v1-34 (>=.si v1-37 24)) [v1: time-frame ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B15: -L441: - beq s7, v1, L442 ;; [ 88] (b! (not v1-34) L442 (set! v1-38 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B16: - lw t9, enter-state(s7) ;; [ 89] (set! t9-7 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [ 90] (set! a0-21 #f) [] -> [a0: '#f ] - lw v1, target-falling(s7) ;; [ 91] (set! v1-39 target-falling) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [ 92] (s.w! (+ self 72) v1-39) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [ 93] (call! a0-21) [a0: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 94] (set! v1-40 v0-7) [v0: object ] -> [v1: object ] -B17: -L442: - lw t9, slide-down-test(s7);; [ 95] (set! t9-8 slide-down-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 96] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-turn-around) - () - ((-> self state-hook)) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) - (go target-attack) - ) - (if (can-hands? #t) - (go target-running-attack) - ) - (if (and (zero? (logand (-> self control status) (cshape-moving-flags onsurf))) - (>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (seconds 0.08)) - ) - (go target-falling #f) - ) - (slide-down-test) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (exit target-turn-around) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; Warnings: -;; INFO: Return type mismatch float vs none. - -;; s6-0: target -L443: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lw t9, target-state-hook-exit(s7);; [ 0] (set! t9-0 target-state-hook-exit) - ;; [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 1] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, set-forward-vel(s7);; [ 2] (set! t9-1 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - lui v1, L814 ;; [ 3] (set! v1-0 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 4] (set! a0-0 (l.w v1-0)) [v1: ] -> [a0: int ] - jalr ra, t9 ;; [ 5] (call! a0-0) - ;; [a0: int t9: (function float vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - mtc1 f0, r0 ;; [ 6] (set! f0-0 0) [] -> [] - lwu v1, 108(s6) ;; [ 7] (set! v1-1 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 528(v1) ;; [ 8] (s.f! (+ v1-1 528) f0-0) [v1: control-info ] -> [] - lwu a0, 108(s6) ;; [ 9] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu v1, -4(a0) ;; [ 10] (set! v1-2 (l.wu (+ a0-1 -4))) - ;; [a0: control-info ] -> [v1: ] - lwu t9, 88(v1) ;; [ 11] (set! t9-2 (l.wu (+ v1-2 88))) - ;; [v1: ] -> [t9: ] - lwu v1, 108(s6) ;; [ 12] (set! v1-3 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a1, v1, 108 ;; [ 13] (set! a1-0 (+ v1-3 108)) [v1: control-info ] -> [a1: quaternion ] - jalr ra, t9 ;; [ 14] (call! a0-1 a1-0) - ;; [a0: control-info a1: quaternion t9: ] -> [v0: quaternion ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 15] (set! v1-4 v0-2) [v0: quaternion ] -> [v1: quaternion ] - mtc1 f0, r0 ;; [ 16] (set! f0-1 0) [] -> [] - lwu v1, 108(s6) ;; [ 17] (set! v1-5 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [ 18] (s.f! (+ v1-5 1724) f0-1) [v1: control-info ] -> [] - mfc1 v0, f0 ;; [ 19] (set! v0-3 (fpr->gpr f0-1)) [] -> [v0: float ] - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (exit target-turn-around) - () - (target-state-hook-exit) - (set-forward-vel (the-as float 0.0)) - (set! (-> self control unknown-float01) 0.0) - (set-quaternion! (-> self control) (-> self control dir-targ)) - (set! (-> self control unknown-float81) 0.0) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-turn-around) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; Warnings: -;; INFO: Return type mismatch float vs none. - -;; s6-0: target -L444: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lw t9, vector-turn-to(s7) ;; [ 0] (set! t9-0 vector-turn-to) [] -> [t9: (function vector vector :behavior target) ] - lwu v1, 108(s6) ;; [ 1] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu a0, v1, 60 ;; [ 2] (set! a0-0 (+ v1-0 60)) [v1: control-info ] -> [a0: vector ] - jalr ra, t9 ;; [ 3] (call! a0-0) - ;; [a0: vector t9: (function vector vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - lw v1, *turn-around-mods*(s7);; [ 4] (set! v1-1 *turn-around-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [ 5] (set! a0-1 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [ 6] (s.w! (+ a0-1 656) v1-1) [v1: surface a0: control-info ] -> [] - lui v1, L786 ;; [ 7] (set! v1-2 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 8] (set! f0-0 (l.f v1-2)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 9] (set! v1-3 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [ 10] (s.f! (+ v1-3 1724) f0-0) [v1: control-info ] -> [] - mfc1 v0, f0 ;; [ 11] (set! v0-1 (fpr->gpr f0-0)) [] -> [v0: float ] - ld ra, 0(sp) - ld fp, 8(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-turn-around) - () - (vector-turn-to (-> self control transv)) - (set! (-> self control unknown-surface00) *turn-around-mods*) - (set! (-> self control unknown-float81) 1.0) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-walk) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x50, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 - ;fprs: f30 f28 f26 f24 f22 -;; v1-108: art-joint-anim v1-116: art-joint-anim v1-146: art-joint-anim v1-317: effect-control -;; s5-4: art-joint-anim s6-0: target gp-0: symbol f0-64: float -;; f0-69: float f0-92: float f1-19: float f22-0: float -;; f24-0: float f26-1: float f28-0: float f28-1: float -;; f28-2: float f30-0: float f30-1: float f30-2: meters -L445: - daddiu sp, sp, -80 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s5, 16(sp) - sq gp, 32(sp) - swc1 f22, 48(sp) - swc1 f24, 52(sp) - swc1 f26, 56(sp) - swc1 f28, 60(sp) - swc1 f30, 64(sp) -B0: - mtc1 f28, r0 ;; [ 0] (set! f28-0 0) [] -> [] - mtc1 f0, r0 ;; [ 1] (set! f0-0 0) [] -> [] - lui v1, L786 ;; [ 2] (set! v1-0 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 3] (set! f1-0 (l.f v1-0)) [v1: ] -> [] - lui v1, L759 ;; [ 4] (set! v1-1 L759) [] -> [v1: ] - ori v1, v1, L759 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [ 5] (set! f2-0 (l.f v1-1)) [v1: ] -> [] - lui v1, L783 ;; [ 6] (set! v1-2 L783) [] -> [v1: ] - ori v1, v1, L783 - addu v1, fp, v1 - lwc1 f3, 0(v1) ;; [ 7] (set! f3-0 (l.f v1-2)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 8] (set! v1-3 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f4, 528(v1) ;; [ 9] (set! f4-0 (l.f (+ v1-3 528))) [v1: control-info ] -> [] - add.s f3, f3, f4 ;; [ 10] (set! f3-1 (+.s f3-0 f4-0)) [] -> [] - mul.s f2, f2, f3 ;; [ 11] (set! f2-1 (*.s f2-0 f3-1)) [] -> [] - min.s f1, f1, f2 ;; [ 12] (set! f1-1 (min.s f1-0 f2-1)) [] -> [] - max.s f30, f0, f1 ;; [ 13] (set! f30-0 (max.s f0-0 f1-1)) [] -> [] - or gp, s7, r0 ;; [ 14] (set! gp-0 #f) [] -> [gp: '#f ] - lwu v1, 120(s6) ;; [ 15] (set! v1-4 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 16] (set! v1-5 (l.w (+ v1-4 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 17] (b! (<=0.si v1-5) L446 (set! v1-6 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L446 - or v1, s7, r0 - -B1: - lwu v1, 120(s6) ;; [ 18] (set! v1-7 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 19] (set! v1-8 (l.wu (+ v1-7 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 20] (set! v1-6 (l.wu (+ v1-8 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B2: -L446: - lwu a0, 116(s6) ;; [ 21] (set! a0-0 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 22] (set! a0-1 (l.wu (+ a0-0 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 160(a0) ;; [ 23] (set! a0-2 (l.wu (+ a0-1 160))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 24] (set! a0-3 (= v1-6 a0-2)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L447 ;; [ 25] (b! (not a0-3) L447 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 + lui v1, 17925 ;; [ 7] (set! v1 #x4605b05b) + ori v1, v1, 45147 + mtc1 f0, v1 ;; [ 8] (set! f0 (gpr->fpr v1)) + lwc1 f1, 888(a0) ;; [ 9] (set! f1 (l.f (+ a0 888))) + abs.s f1, f1 ;; [ 10] (set! f1 (abs.s f1)) + c.lt.s f0, f1 ;; [ 11] (b! (>=.s f0 f1) L161 (set! v1 #t)) + bc1f L161 + daddiu v1, s7, 4 B3: - lui v1, L786 ;; [ 26] (set! v1-9 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [ 27] (set! f30-0 (l.f v1-9)) [v1: ] -> [] - lw t9, ja-channel-push!(s7);; [ 28] (set! t9-0 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 7 ;; [ 29] (set! a0-4 7) [] -> [a0: ] - addiu a1, r0, 15 ;; [ 30] (set! a1-0 15) [] -> [a1: ] - jalr ra, t9 ;; [ 31] (call! a0-4 a1-0) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 32] (set! v1-10 v0-0) [v0: int ] -> [v1: int ] - beq r0, r0, L497 ;; [ 33] (b! #t L497 (nop!)) [] -> [] - sll r0, r0, 0 - + or v1, s7, r0 ;; [ 12] (set! v1 #f) B4: -L447: - lwu v1, 120(s6) ;; [ 34] (set! v1-11 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 35] (set! v1-12 (l.w (+ v1-11 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 36] (b! (<=0.si v1-12) L448 (set! v1-13 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L448 - or v1, s7, r0 - +L161: + beql s7, v1, L162 ;; [ 13] (bl! (not v1) L162 (no-delay!)) B5: - lwu v1, 120(s6) ;; [ 37] (set! v1-14 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 38] (set! v1-15 (l.wu (+ v1-14 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 39] (set! v1-13 (l.wu (+ v1-15 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B6: -L448: - lwu a0, 116(s6) ;; [ 40] (set! a0-5 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 41] (set! a0-6 (l.wu (+ a0-5 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 304(a0) ;; [ 42] (set! a0-7 (l.wu (+ a0-6 304))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 43] (set! a0-8 (= v1-13 a0-7)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L449 ;; [ 44] (b! (not a0-8) L449 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B7: - lw t9, ja-channel-push!(s7);; [ 45] (set! t9-1 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 7 ;; [ 46] (set! a0-9 7) [] -> [a0: ] - addiu a1, r0, 22 ;; [ 47] (set! a1-1 22) [] -> [a1: ] - jalr ra, t9 ;; [ 48] (call! a0-9 a1-1) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lui v1, L786 ;; [ 49] (set! v1-16 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [ 50] (set! f30-0 (l.f v1-16)) [v1: ] -> [] - mfc1 v1, f30 ;; [ 51] (set! v1-17 (fpr->gpr f30-0)) [] -> [v1: float ] - beq r0, r0, L497 ;; [ 52] (b! #t L497 (nop!)) [] -> [] - sll r0, r0, 0 - -B8: -L449: - lwu v1, 120(s6) ;; [ 53] (set! v1-18 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 54] (set! v1-19 (l.w (+ v1-18 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 55] (b! (<=0.si v1-19) L450 (set! v1-20 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L450 - or v1, s7, r0 - -B9: - lwu v1, 120(s6) ;; [ 56] (set! v1-21 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 57] (set! v1-22 (l.wu (+ v1-21 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 58] (set! v1-20 (l.wu (+ v1-22 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B10: -L450: - lwu a0, 116(s6) ;; [ 59] (set! a0-10 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 60] (set! a0-11 (l.wu (+ a0-10 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 232(a0) ;; [ 61] (set! a0-12 (l.wu (+ a0-11 232))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 62] (set! a0-13 (= v1-20 a0-12)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L458 ;; [ 63] (b! (not a0-13) L458 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B11: - lui v1, L764 ;; [ 64] (set! v1-23 L764) [] -> [v1: ] - ori v1, v1, L764 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 65] (set! f0-1 (l.f v1-23)) [v1: ] -> [] - lui v1, L786 ;; [ 66] (set! v1-24 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 67] (set! f1-2 (l.f v1-24)) [v1: ] -> [] - lui v1, L759 ;; [ 68] (set! v1-25 L759) [] -> [v1: ] - ori v1, v1, L759 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [ 69] (set! f2-2 (l.f v1-25)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 70] (set! v1-26 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f3, 528(v1) ;; [ 71] (set! f3-2 (l.f (+ v1-26 528))) [v1: control-info ] -> [] - mul.s f2, f2, f3 ;; [ 72] (set! f2-3 (*.s f2-2 f3-2)) [] -> [] - min.s f1, f1, f2 ;; [ 73] (set! f1-3 (min.s f1-2 f2-3)) [] -> [] - max.s f30, f0, f1 ;; [ 74] (set! f30-1 (max.s f0-1 f1-3)) [] -> [] - lw t9, rand-vu-percent?(s7);; [ 75] (set! t9-2 rand-vu-percent?) [] -> [t9: (function float symbol) ] - lui v1, L751 ;; [ 76] (set! v1-27 L751) [] -> [v1: ] - ori v1, v1, L751 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 77] (set! a0-14 (l.w v1-27)) [v1: ] -> [a0: int ] - jalr ra, t9 ;; [ 78] (call! a0-14) [a0: int t9: (function float symbol) ] -> [v0: symbol ] - sll v0, ra, 0 - - beql s7, v0, L451 ;; [ 79] (bl! (not v0-2) L451 (no-delay!)) [v0: symbol ] -> [] -B12: - or v1, v0, r0 ;; [ 80] (set! v1-28 v0-2) [v0: symbol ] -> [v1: symbol ] - -B13: - lui v1, L782 ;; [ 81] (set! v1-29 L782) [] -> [v1: ] - ori v1, v1, L782 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 82] (set! f0-2 (l.f v1-29)) [v1: ] -> [] - lwu v1, 108(s6) ;; [ 83] (set! v1-30 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 528(v1) ;; [ 84] (set! f1-4 (l.f (+ v1-30 528))) [v1: control-info ] -> [] - c.lt.s f0, f1 ;; [ 85] (b! (<.s f0-2 f1-4) L451 (set! v1-28 #t)) [] -> [v1: symbol ] - bc1t L451 - daddiu v1, s7, 8 - -B14: - or v1, s7, r0 ;; [ 86] (set! v1-28 #f) [] -> [v1: '#f ] -B15: -L451: - beq s7, v1, L454 ;; [ 87] (b! (not v1-28) L454 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B16: - lwu v1, 120(s6) ;; [ 88] (set! v1-31 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 89] (set! v1-32 (l.wu (+ v1-31 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [ 90] (set! s5-0 (+ v1-32 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - lwu v1, 116(s6) ;; [ 91] (set! v1-33 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 92] (set! v1-34 (l.wu (+ v1-33 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 240(v1) ;; [ 93] (set! v1-35 (l.wu (+ v1-34 240))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(s5) ;; [ 94] (s.w! (+ s5-0 12) v1-35) [v1: art-element s5: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [ 95] (set! t9-3 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L743 ;; [ 96] (set! v1-36 L743) [] -> [v1: ] - ori v1, v1, L743 - addu v1, fp, v1 - lw a0, 0(v1) ;; [ 97] (set! a0-15 (l.w v1-36)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [ 98] (set! a1-2 0) [] -> [a1: ] - jalr ra, t9 ;; [ 99] (call! a0-15 a1-2) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [100] (set! f0-3 (gpr->fpr v0-3)) [v0: float ] -> [] - swc1 f0, 24(s5) ;; [101] (s.f! (+ s5-0 24) f0-3) [s5: joint-control-channel ] -> [] - swc1 f30, 28(s5) ;; [102] (s.f! (+ s5-0 28) f30-1) [s5: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [103] (set! f0-4 0) [] -> [] - swc1 f0, 16(s5) ;; [104] (s.f! (+ s5-0 16) f0-4) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [105] (set! t9-4 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [106] (set! v1-37 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [107] (set! v1-38 (l.wu (+ v1-37 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 240(v1) ;; [108] (set! a1-3 (l.wu (+ v1-38 240))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [109] (set! a2-0 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [110] (set! a0-16 s5-0) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [111] (call! a0-16 a1-3 a2-0) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [112] (set! v1-39 v0-4) [v0: int ] -> [v1: int ] -B17: -L452: - lwu s6, 44(s6) ;; [113] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [114] (set! v1-40 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [115] (set! v1-41 (l.wu (+ v1-40 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [116] (set! s5-1 (+ v1-41 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - lw t9, ja-aframe(s7) ;; [117] (set! t9-5 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L743 ;; [118] (set! v1-42 L743) [] -> [v1: ] - ori v1, v1, L743 - addu v1, fp, v1 - lw a0, 0(v1) ;; [119] (set! a0-17 (l.w v1-42)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [120] (set! a1-4 0) [] -> [a1: ] - jalr ra, t9 ;; [121] (call! a0-17 a1-4) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [122] (set! f0-5 (gpr->fpr v0-5)) [v0: float ] -> [] - swc1 f0, 24(s5) ;; [123] (s.f! (+ s5-1 24) f0-5) [s5: joint-control-channel ] -> [] - swc1 f30, 28(s5) ;; [124] (s.f! (+ s5-1 28) f30-1) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [125] (set! t9-6 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [126] (set! a1-5 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [127] (set! a2-1 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [128] (set! a0-18 s5-1) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [129] (call! a0-18 a1-5 a2-1) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [130] (set! v1-43 v0-6) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [131] (set! t9-7 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [132] (set! a0-19 0) [] -> [a0: ] - jalr ra, t9 ;; [133] (call! a0-19) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L452 ;; [134] (b! (not v0-7) L452 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B18: - or v1, s7, r0 ;; [135] (set! v1-44 #f) [] -> [v1: '#f ] - lwu v1, 120(s6) ;; [136] (set! v1-45 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [137] (set! v1-46 (l.wu (+ v1-45 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [138] (set! a0-20 (+ v1-46 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [139] (set! v1-47 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [140] (set! v1-48 (l.wu (+ v1-47 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 248(v1) ;; [141] (set! v1-49 (l.wu (+ v1-48 248))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [142] (s.w! (+ a0-20 12) v1-49) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [143] (set! v1-50 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [144] (set! v1-51 (l.wu (+ v1-50 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 248(v1) ;; [145] (set! v1-52 (l.wu (+ v1-51 248))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [146] (set! (the-as art-joint-anim v1-53) (l.wu (+ v1-52 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [147] (set! v1-54 (l.h (+ v1-53 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [148] (set! v1-55 (+ v1-54 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [149] (set! f0-6 (gpr->fpr v1-55)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [150] (set! f0-7 (i2f f0-6)) [] -> [] - swc1 f0, 24(a0) ;; [151] (s.f! (+ a0-20 24) f0-7) [a0: joint-control-channel ] -> [] - swc1 f30, 28(a0) ;; [152] (s.f! (+ a0-20 28) f30-1) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [153] (set! f0-8 0) [] -> [] - swc1 f0, 16(a0) ;; [154] (s.f! (+ a0-20 16) f0-8) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [155] (set! t9-8 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [156] (set! v1-56 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [157] (set! v1-57 (l.wu (+ v1-56 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 248(v1) ;; [158] (set! a1-6 (l.wu (+ v1-57 248))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [159] (set! a2-2 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [160] (call! a0-20 a1-6 a2-2) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [161] (set! v1-58 v0-8) [v0: int ] -> [v1: int ] -B19: -L453: - lwu s6, 44(s6) ;; [162] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [163] (set! v1-59 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [164] (set! v1-60 (l.wu (+ v1-59 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [165] (set! a0-21 (+ v1-60 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [166] (set! v1-61 (l.wu (+ a0-21 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [167] (set! v1-62 (l.wu (+ v1-61 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [168] (set! v1-63 (l.h (+ v1-62 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [169] (set! v1-64 (+ v1-63 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [170] (set! f0-9 (gpr->fpr v1-64)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [171] (set! f0-10 (i2f f0-9)) [] -> [] - swc1 f0, 24(a0) ;; [172] (s.f! (+ a0-21 24) f0-10) [a0: joint-control-channel ] -> [] - swc1 f30, 28(a0) ;; [173] (s.f! (+ a0-21 28) f30-1) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [174] (set! t9-9 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [175] (set! a1-7 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [176] (set! a2-3 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [177] (call! a0-21 a1-7 a2-3) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [178] (set! v1-65 v0-9) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [179] (set! t9-10 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [180] (set! a0-22 0) [] -> [a0: ] - jalr ra, t9 ;; [181] (call! a0-22) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L453 ;; [182] (b! (not v0-10) L453 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B20: - or v1, s7, r0 ;; [183] (set! v1-66 #f) [] -> [v1: '#f ] - beq r0, r0, L457 ;; [184] (b! #t L457 (nop!)) [] -> [] - sll r0, r0, 0 - -B21: -L454: - lwu v1, 120(s6) ;; [185] (set! v1-67 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [186] (set! v1-68 (l.wu (+ v1-67 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [187] (set! s5-2 (+ v1-68 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - lwu v1, 116(s6) ;; [188] (set! v1-69 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [189] (set! v1-70 (l.wu (+ v1-69 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 236(v1) ;; [190] (set! v1-71 (l.wu (+ v1-70 236))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(s5) ;; [191] (s.w! (+ s5-2 12) v1-71) [v1: art-element s5: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [192] (set! t9-11 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L743 ;; [193] (set! v1-72 L743) [] -> [v1: ] - ori v1, v1, L743 - addu v1, fp, v1 - lw a0, 0(v1) ;; [194] (set! a0-23 (l.w v1-72)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [195] (set! a1-8 0) [] -> [a1: ] - jalr ra, t9 ;; [196] (call! a0-23 a1-8) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [197] (set! f0-11 (gpr->fpr v0-11)) [v0: float ] -> [] - swc1 f0, 24(s5) ;; [198] (s.f! (+ s5-2 24) f0-11) [s5: joint-control-channel ] -> [] - swc1 f30, 28(s5) ;; [199] (s.f! (+ s5-2 28) f30-1) [s5: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [200] (set! f0-12 0) [] -> [] - swc1 f0, 16(s5) ;; [201] (s.f! (+ s5-2 16) f0-12) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [202] (set! t9-12 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [203] (set! v1-73 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [204] (set! v1-74 (l.wu (+ v1-73 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 236(v1) ;; [205] (set! a1-9 (l.wu (+ v1-74 236))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [206] (set! a2-4 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [207] (set! a0-24 s5-2) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [208] (call! a0-24 a1-9 a2-4) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [209] (set! v1-75 v0-12) [v0: int ] -> [v1: int ] -B22: -L455: - lwu s6, 44(s6) ;; [210] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [211] (set! v1-76 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [212] (set! v1-77 (l.wu (+ v1-76 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [213] (set! s5-3 (+ v1-77 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - lw t9, ja-aframe(s7) ;; [214] (set! t9-13 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L743 ;; [215] (set! v1-78 L743) [] -> [v1: ] - ori v1, v1, L743 - addu v1, fp, v1 - lw a0, 0(v1) ;; [216] (set! a0-25 (l.w v1-78)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [217] (set! a1-10 0) [] -> [a1: ] - jalr ra, t9 ;; [218] (call! a0-25 a1-10) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [219] (set! f0-13 (gpr->fpr v0-13)) [v0: float ] -> [] - swc1 f0, 24(s5) ;; [220] (s.f! (+ s5-3 24) f0-13) [s5: joint-control-channel ] -> [] - swc1 f30, 28(s5) ;; [221] (s.f! (+ s5-3 28) f30-1) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [222] (set! t9-14 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [223] (set! a1-11 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [224] (set! a2-5 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [225] (set! a0-26 s5-3) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [226] (call! a0-26 a1-11 a2-5) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [227] (set! v1-79 v0-14) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [228] (set! t9-15 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [229] (set! a0-27 0) [] -> [a0: ] - jalr ra, t9 ;; [230] (call! a0-27) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L455 ;; [231] (b! (not v0-15) L455 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B23: - or v1, s7, r0 ;; [232] (set! v1-80 #f) [] -> [v1: '#f ] - lwu v1, 120(s6) ;; [233] (set! v1-81 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [234] (set! v1-82 (l.wu (+ v1-81 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [235] (set! a0-28 (+ v1-82 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [236] (set! v1-83 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [237] (set! v1-84 (l.wu (+ v1-83 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 244(v1) ;; [238] (set! v1-85 (l.wu (+ v1-84 244))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [239] (s.w! (+ a0-28 12) v1-85) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [240] (set! v1-86 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [241] (set! v1-87 (l.wu (+ v1-86 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 244(v1) ;; [242] (set! v1-88 (l.wu (+ v1-87 244))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [243] (set! (the-as art-joint-anim v1-89) (l.wu (+ v1-88 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [244] (set! v1-90 (l.h (+ v1-89 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [245] (set! v1-91 (+ v1-90 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [246] (set! f0-14 (gpr->fpr v1-91)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [247] (set! f0-15 (i2f f0-14)) [] -> [] - swc1 f0, 24(a0) ;; [248] (s.f! (+ a0-28 24) f0-15) [a0: joint-control-channel ] -> [] - swc1 f30, 28(a0) ;; [249] (s.f! (+ a0-28 28) f30-1) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [250] (set! f0-16 0) [] -> [] - swc1 f0, 16(a0) ;; [251] (s.f! (+ a0-28 16) f0-16) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [252] (set! t9-16 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [253] (set! v1-92 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [254] (set! v1-93 (l.wu (+ v1-92 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 244(v1) ;; [255] (set! a1-12 (l.wu (+ v1-93 244))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [256] (set! a2-6 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [257] (call! a0-28 a1-12 a2-6) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [258] (set! v1-94 v0-16) [v0: int ] -> [v1: int ] -B24: -L456: - lwu s6, 44(s6) ;; [259] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [260] (set! v1-95 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [261] (set! v1-96 (l.wu (+ v1-95 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [262] (set! a0-29 (+ v1-96 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [263] (set! v1-97 (l.wu (+ a0-29 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [264] (set! v1-98 (l.wu (+ v1-97 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [265] (set! v1-99 (l.h (+ v1-98 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [266] (set! v1-100 (+ v1-99 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [267] (set! f0-17 (gpr->fpr v1-100)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [268] (set! f0-18 (i2f f0-17)) [] -> [] - swc1 f0, 24(a0) ;; [269] (s.f! (+ a0-29 24) f0-18) [a0: joint-control-channel ] -> [] - swc1 f30, 28(a0) ;; [270] (s.f! (+ a0-29 28) f30-1) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [271] (set! t9-17 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [272] (set! a1-13 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [273] (set! a2-7 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [274] (call! a0-29 a1-13 a2-7) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [275] (set! v1-101 v0-17) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [276] (set! t9-18 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [277] (set! a0-30 0) [] -> [a0: ] - jalr ra, t9 ;; [278] (call! a0-30) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L456 ;; [279] (b! (not v0-18) L456 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B25: - or v1, s7, r0 ;; [280] (set! v1-102 #f) [] -> [v1: '#f ] -B26: -L457: - lw t9, ja-channel-push!(s7);; [281] (set! t9-19 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 7 ;; [282] (set! a0-31 7) [] -> [a0: ] - addiu a1, r0, 15 ;; [283] (set! a1-14 15) [] -> [a1: ] - jalr ra, t9 ;; [284] (call! a0-31 a1-14) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lui v1, L786 ;; [285] (set! v1-103 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [286] (set! f30-0 (l.f v1-103)) [v1: ] -> [] - lui v1, L742 ;; [287] (set! v1-104 L742) [] -> [v1: ] - ori v1, v1, L742 - addu v1, fp, v1 - lwc1 f28, 0(v1) ;; [288] (set! f28-0 (l.f v1-104)) [v1: ] -> [] - mfc1 v1, f28 ;; [289] (set! v1-105 (fpr->gpr f28-0)) [] -> [v1: float ] - beq r0, r0, L497 ;; [290] (b! #t L497 (nop!)) [] -> [] - sll r0, r0, 0 - -B27: -L458: - lwu v1, 120(s6) ;; [291] (set! v1-106 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [292] (set! v1-107 (l.w (+ v1-106 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [293] (b! (<=0.si v1-107) L459 (set! v1-108 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L459 - or v1, s7, r0 - -B28: - lwu v1, 120(s6) ;; [294] (set! v1-109 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [295] (set! v1-110 (l.wu (+ v1-109 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [296] (set! v1-108 (l.wu (+ v1-110 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B29: -L459: - lwu a0, 116(s6) ;; [297] (set! a0-32 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [298] (set! a0-33 (l.wu (+ a0-32 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 264(a0) ;; [299] (set! a0-34 (l.wu (+ a0-33 264))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [300] (set! a1-15 (= v1-108 a0-34)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L460 ;; [301] (bl! (truthy a1-15) L460 (no-delay!)) [a1: symbol ] -> [] -B30: - or a0, a1, r0 ;; [302] (set! a0-35 a1-15) [a1: symbol ] -> [a0: symbol ] - -B31: - lwu a0, 116(s6) ;; [303] (set! a0-36 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [304] (set! a0-37 (l.wu (+ a0-36 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 268(a0) ;; [305] (set! a0-38 (l.wu (+ a0-37 268))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [306] (set! a0-35 (= v1-108 a0-38)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B32: -L460: - beq s7, a0, L461 ;; [307] (b! (not a0-35) L461 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B33: - lui v1, L786 ;; [308] (set! v1-111 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [309] (set! f30-0 (l.f v1-111)) [v1: ] -> [] - lui v1, L742 ;; [310] (set! v1-112 L742) [] -> [v1: ] - ori v1, v1, L742 - addu v1, fp, v1 - lwc1 f28, 0(v1) ;; [311] (set! f28-0 (l.f v1-112)) [v1: ] -> [] - lw t9, ja-channel-push!(s7);; [312] (set! t9-20 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 7 ;; [313] (set! a0-39 7) [] -> [a0: ] - addiu a1, r0, 45 ;; [314] (set! a1-16 45) [] -> [a1: ] - jalr ra, t9 ;; [315] (call! a0-39 a1-16) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [316] (set! v1-113 v0-20) [v0: int ] -> [v1: int ] - beq r0, r0, L497 ;; [317] (b! #t L497 (nop!)) [] -> [] - sll r0, r0, 0 - -B34: -L461: - lwu v1, 120(s6) ;; [318] (set! v1-114 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [319] (set! v1-115 (l.w (+ v1-114 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [320] (b! (<=0.si v1-115) L462 (set! v1-116 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L462 - or v1, s7, r0 - -B35: - lwu v1, 120(s6) ;; [321] (set! v1-117 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [322] (set! v1-118 (l.wu (+ v1-117 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [323] (set! v1-116 (l.wu (+ v1-118 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B36: -L462: - lwu a0, 116(s6) ;; [324] (set! a0-40 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [325] (set! a0-41 (l.wu (+ a0-40 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 364(a0) ;; [326] (set! a0-42 (l.wu (+ a0-41 364))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [327] (set! a1-17 (= v1-116 a0-42)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L463 ;; [328] (bl! (truthy a1-17) L463 (no-delay!)) [a1: symbol ] -> [] -B37: - or a0, a1, r0 ;; [329] (set! a0-43 a1-17) [a1: symbol ] -> [a0: symbol ] - -B38: - lwu a0, 116(s6) ;; [330] (set! a0-44 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [331] (set! a0-45 (l.wu (+ a0-44 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 368(a0) ;; [332] (set! a0-46 (l.wu (+ a0-45 368))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [333] (set! a0-43 (= v1-116 a0-46)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B39: -L463: - beq s7, a0, L464 ;; [334] (b! (not a0-43) L464 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B40: - lui v1, L786 ;; [335] (set! v1-119 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [336] (set! f30-0 (l.f v1-119)) [v1: ] -> [] - lui v1, L741 ;; [337] (set! v1-120 L741) [] -> [v1: ] - ori v1, v1, L741 - addu v1, fp, v1 - lwc1 f28, 0(v1) ;; [338] (set! f28-0 (l.f v1-120)) [v1: ] -> [] - lw t9, ja-channel-push!(s7);; [339] (set! t9-21 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 7 ;; [340] (set! a0-47 7) [] -> [a0: ] - addiu a1, r0, 30 ;; [341] (set! a1-18 30) [] -> [a1: ] - jalr ra, t9 ;; [342] (call! a0-47 a1-18) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [343] (set! v1-121 v0-21) [v0: int ] -> [v1: int ] - beq r0, r0, L497 ;; [344] (b! #t L497 (nop!)) [] -> [] - sll r0, r0, 0 - -B41: -L464: - lwu v1, 120(s6) ;; [345] (set! v1-122 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [346] (set! v1-123 (l.w (+ v1-122 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [347] (b! (<=0.si v1-123) L465 (set! v1-124 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L465 - or v1, s7, r0 - -B42: - lwu v1, 120(s6) ;; [348] (set! v1-125 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [349] (set! v1-126 (l.wu (+ v1-125 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [350] (set! v1-124 (l.wu (+ v1-126 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B43: -L465: - lwu a0, 116(s6) ;; [351] (set! a0-48 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [352] (set! a0-49 (l.wu (+ a0-48 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 120(a0) ;; [353] (set! a0-50 (l.wu (+ a0-49 120))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [354] (set! a0-51 (= v1-124 a0-50)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L466 ;; [355] (bl! (not a0-51) L466 (no-delay!)) [a0: symbol ] -> [] -B44: - or v1, a0, r0 ;; [356] (set! v1-127 a0-51) [a0: symbol ] -> [v1: symbol ] - -B45: - lwu v1, 120(s6) ;; [357] (set! v1-128 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [358] (set! v1-129 (l.wu (+ v1-128 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu v1, r0, v1 ;; [359] (set! v1-130 (+ v1-129 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - lwu a0, 120(s6) ;; [360] (set! a0-52 (l.wu (+ self 120))) [s6: target ] -> [a0: joint-control ] - daddiu a0, a0, 44 ;; [361] (set! a0-53 (+ a0-52 44)) - ;; [a0: joint-control ] -> [a0: (inline-array joint-control-channel) ] - dsubu a0, v1, a0 ;; [362] (set! v1-127 (= v1-130 a0-53)) - ;; [v1: joint-control-channel a0: (inline-array joint-control-channel) ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B46: -L466: - beq s7, v1, L467 ;; [363] (b! (not v1-127) L467 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B47: - lw t9, ja-aframe-num(s7) ;; [364] (set! t9-22 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [365] (set! a0-54 0) [] -> [a0: ] - jalr ra, t9 ;; [366] (call! a0-54) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f28, v0 ;; [367] (set! f28-0 (gpr->fpr v0-22)) [v0: float ] -> [] - mfc1 v1, f28 ;; [368] (set! v1-131 (fpr->gpr f28-0)) [] -> [v1: float ] - beq r0, r0, L497 ;; [369] (b! #t L497 (nop!)) [] -> [] - sll r0, r0, 0 - -B48: -L467: - lwu v1, 120(s6) ;; [370] (set! v1-132 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [371] (set! v1-133 (l.w (+ v1-132 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [372] (b! (<=0.si v1-133) L468 (set! v1-134 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L468 - or v1, s7, r0 - -B49: - lwu v1, 120(s6) ;; [373] (set! v1-135 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [374] (set! v1-136 (l.wu (+ v1-135 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [375] (set! v1-134 (l.wu (+ v1-136 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B50: -L468: - lwu a0, 116(s6) ;; [376] (set! a0-55 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [377] (set! a0-56 (l.wu (+ a0-55 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 436(a0) ;; [378] (set! a0-57 (l.wu (+ a0-56 436))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [379] (set! a0-58 (= v1-134 a0-57)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L469 ;; [380] (b! (not a0-58) L469 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B51: - lw t9, ja-aframe-num(s7) ;; [381] (set! t9-23 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [382] (set! a0-59 0) [] -> [a0: ] - jalr ra, t9 ;; [383] (call! a0-59) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f28, v0 ;; [384] (set! f28-0 (gpr->fpr v0-23)) [v0: float ] -> [] - lw t9, ja-channel-push!(s7);; [385] (set! t9-24 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 7 ;; [386] (set! a0-60 7) [] -> [a0: ] - addiu a1, r0, 30 ;; [387] (set! a1-19 30) [] -> [a1: ] - jalr ra, t9 ;; [388] (call! a0-60 a1-19) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [389] (set! v1-137 v0-24) [v0: int ] -> [v1: int ] - beq r0, r0, L497 ;; [390] (b! #t L497 (nop!)) [] -> [] - sll r0, r0, 0 - -B52: -L469: - lwu v1, 120(s6) ;; [391] (set! v1-138 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [392] (set! v1-139 (l.w (+ v1-138 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [393] (b! (<=0.si v1-139) L470 (set! v1-140 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L470 - or v1, s7, r0 - -B53: - lwu v1, 120(s6) ;; [394] (set! v1-141 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [395] (set! v1-142 (l.wu (+ v1-141 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [396] (set! v1-140 (l.wu (+ v1-142 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B54: -L470: - lwu a0, 116(s6) ;; [397] (set! a0-61 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [398] (set! a0-62 (l.wu (+ a0-61 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 384(a0) ;; [399] (set! a0-63 (l.wu (+ a0-62 384))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [400] (set! a0-64 (= v1-140 a0-63)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L471 ;; [401] (b! (not a0-64) L471 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B55: - lw t9, ja-aframe-num(s7) ;; [402] (set! t9-25 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [403] (set! a0-65 0) [] -> [a0: ] - jalr ra, t9 ;; [404] (call! a0-65) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f28, v0 ;; [405] (set! f28-0 (gpr->fpr v0-25)) [v0: float ] -> [] - lw t9, ja-channel-push!(s7);; [406] (set! t9-26 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 7 ;; [407] (set! a0-66 7) [] -> [a0: ] - addiu a1, r0, 15 ;; [408] (set! a1-20 15) [] -> [a1: ] - jalr ra, t9 ;; [409] (call! a0-66 a1-20) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [410] (set! v1-143 v0-26) [v0: int ] -> [v1: int ] - beq r0, r0, L497 ;; [411] (b! #t L497 (nop!)) [] -> [] - sll r0, r0, 0 - -B56: -L471: - lwu v1, 120(s6) ;; [412] (set! v1-144 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [413] (set! v1-145 (l.w (+ v1-144 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [414] (b! (<=0.si v1-145) L472 (set! v1-146 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L472 - or v1, s7, r0 - -B57: - lwu v1, 120(s6) ;; [415] (set! v1-147 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [416] (set! v1-148 (l.wu (+ v1-147 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [417] (set! v1-146 (l.wu (+ v1-148 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B58: -L472: - lwu a0, 116(s6) ;; [418] (set! a0-67 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [419] (set! a0-68 (l.wu (+ a0-67 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 180(a0) ;; [420] (set! a0-69 (l.wu (+ a0-68 180))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [421] (set! a1-21 (= v1-146 a0-69)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L473 ;; [422] (bl! (truthy a1-21) L473 (no-delay!)) [a1: symbol ] -> [] -B59: - or a0, a1, r0 ;; [423] (set! a0-70 a1-21) [a1: symbol ] -> [a0: symbol ] - -B60: - lwu a0, 116(s6) ;; [424] (set! a0-71 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [425] (set! a0-72 (l.wu (+ a0-71 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 312(a0) ;; [426] (set! a0-73 (l.wu (+ a0-72 312))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [427] (set! a1-22 (= v1-146 a0-73)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L473 ;; [428] (bl! (truthy a1-22) L473 (no-delay!)) [a1: symbol ] -> [] -B61: - or a0, a1, r0 ;; [429] (set! a0-70 a1-22) [a1: symbol ] -> [a0: symbol ] - -B62: - lwu a0, 116(s6) ;; [430] (set! a0-74 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [431] (set! a0-75 (l.wu (+ a0-74 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 260(a0) ;; [432] (set! a0-76 (l.wu (+ a0-75 260))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [433] (set! a1-23 (= v1-146 a0-76)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L473 ;; [434] (bl! (truthy a1-23) L473 (no-delay!)) [a1: symbol ] -> [] -B63: - or a0, a1, r0 ;; [435] (set! a0-70 a1-23) [a1: symbol ] -> [a0: symbol ] - -B64: - lwu a0, 116(s6) ;; [436] (set! a0-77 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [437] (set! a0-78 (l.wu (+ a0-77 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 276(a0) ;; [438] (set! a0-79 (l.wu (+ a0-78 276))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [439] (set! a1-24 (= v1-146 a0-79)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L473 ;; [440] (bl! (truthy a1-24) L473 (no-delay!)) [a1: symbol ] -> [] -B65: - or a0, a1, r0 ;; [441] (set! a0-70 a1-24) [a1: symbol ] -> [a0: symbol ] - -B66: - lwu a0, 116(s6) ;; [442] (set! a0-80 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [443] (set! a0-81 (l.wu (+ a0-80 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 288(a0) ;; [444] (set! a0-82 (l.wu (+ a0-81 288))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [445] (set! a1-25 (= v1-146 a0-82)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L473 ;; [446] (bl! (truthy a1-25) L473 (no-delay!)) [a1: symbol ] -> [] -B67: - or a0, a1, r0 ;; [447] (set! a0-70 a1-25) [a1: symbol ] -> [a0: symbol ] - -B68: - lwu a0, 116(s6) ;; [448] (set! a0-83 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [449] (set! a0-84 (l.wu (+ a0-83 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 300(a0) ;; [450] (set! a0-85 (l.wu (+ a0-84 300))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [451] (set! a0-70 (= v1-146 a0-85)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B69: -L473: - bnel s7, a0, L475 ;; [452] (bl! (truthy a0-70) L475 (no-delay!)) [a0: symbol ] -> [] -B70: - or v1, a0, r0 ;; [453] (set! v1-149 a0-70) [a0: symbol ] -> [v1: symbol ] - -B71: - lwu v1, 120(s6) ;; [454] (set! v1-150 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [455] (set! v1-151 (l.w (+ v1-150 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [456] (b! (<=0.si v1-151) L474 (set! v1-152 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L474 - or v1, s7, r0 - -B72: - lwu v1, 120(s6) ;; [457] (set! v1-153 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [458] (set! v1-154 (l.wu (+ v1-153 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [459] (set! v1-152 (l.wu (+ v1-154 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B73: -L474: - lwu a0, 116(s6) ;; [460] (set! a0-86 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [461] (set! a0-87 (l.wu (+ a0-86 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 164(a0) ;; [462] (set! a0-88 (l.wu (+ a0-87 164))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [463] (set! a0-89 (= v1-152 a0-88)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L475 ;; [464] (bl! (not a0-89) L475 (no-delay!)) [a0: symbol ] -> [] -B74: - or v1, a0, r0 ;; [465] (set! v1-149 a0-89) [a0: symbol ] -> [v1: symbol ] - -B75: - lui v1, L742 ;; [466] (set! v1-155 L742) [] -> [v1: ] - ori v1, v1, L742 - addu v1, fp, v1 - lwc1 f26, 0(v1) ;; [467] (set! f26-0 (l.f v1-155)) [v1: ] -> [] - lw t9, ja-aframe-num(s7) ;; [468] (set! t9-27 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [469] (set! a0-90 0) [] -> [a0: ] - jalr ra, t9 ;; [470] (call! a0-90) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [471] (set! f0-19 (gpr->fpr v0-27)) [v0: float ] -> [] - c.lt.s f26, f0 ;; [472] (b! (<.s f26-0 f0-19) L475 (set! v1-149 #t)) [] -> [v1: symbol ] - bc1t L475 - daddiu v1, s7, 8 - -B76: - or v1, s7, r0 ;; [473] (set! v1-149 #f) [] -> [v1: '#f ] -B77: -L475: - beql s7, v1, L476 ;; [474] (bl! (not v1-149) L476 (no-delay!)) [v1: symbol ] -> [] -B78: - or v1, v1, r0 ;; [475] (set! v1-156 v1-149) [v1: symbol ] -> [v1: symbol ] - -B79: - lui v1, L791 ;; [476] (set! v1-157 L791) [] -> [v1: ] - ori v1, v1, L791 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [477] (set! f0-20 (l.f v1-157)) [v1: ] -> [] - lwu v1, 108(s6) ;; [478] (set! v1-158 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 528(v1) ;; [479] (set! f1-5 (l.f (+ v1-158 528))) [v1: control-info ] -> [] - c.lt.s f0, f1 ;; [480] (b! (<.s f0-20 f1-5) L476 (set! v1-156 #t)) [] -> [v1: symbol ] - bc1t L476 - daddiu v1, s7, 8 - -B80: - or v1, s7, r0 ;; [481] (set! v1-156 #f) [] -> [v1: '#f ] -B81: -L476: - beq s7, v1, L492 ;; [482] (b! (not v1-156) L492 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B82: - lwu v1, 120(s6) ;; [483] (set! v1-159 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [484] (set! v1-160 (l.w (+ v1-159 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [485] (b! (<=0.si v1-160) L477 (set! s5-4 #f)) [v1: int ] -> [s5: '#f ] - beq v1, r0, L477 - or s5, s7, r0 - -B83: - lwu v1, 120(s6) ;; [486] (set! v1-161 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [487] (set! v1-162 (l.wu (+ v1-161 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu s5, 12(v1) ;; [488] (set! s5-4 (l.wu (+ v1-162 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: art-joint-anim ] -B84: -L477: - lwu v1, 108(s6) ;; [489] (set! v1-163 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f30, 412(v1) ;; [490] (set! f30-2 (l.f (+ v1-163 412))) [v1: control-info ] -> [] - lwu v1, 120(s6) ;; [491] (set! v1-164 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [492] (set! v1-165 (l.w (+ v1-164 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [493] (b! (<=0.si v1-165) L478 (set! v1-166 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L478 - or v1, s7, r0 - -B85: - lwu v1, 120(s6) ;; [494] (set! v1-167 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [495] (set! v1-168 (l.wu (+ v1-167 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [496] (set! v1-166 (l.wu (+ v1-168 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B86: -L478: - lwu a0, 116(s6) ;; [497] (set! a0-91 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [498] (set! a0-92 (l.wu (+ a0-91 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 312(a0) ;; [499] (set! a0-93 (l.wu (+ a0-92 312))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [500] (set! a1-26 (= v1-166 a0-93)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L479 ;; [501] (bl! (truthy a1-26) L479 (no-delay!)) [a1: symbol ] -> [] -B87: - or a0, a1, r0 ;; [502] (set! a0-94 a1-26) [a1: symbol ] -> [a0: symbol ] - -B88: - lwu a0, 116(s6) ;; [503] (set! a0-95 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [504] (set! a0-96 (l.wu (+ a0-95 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 260(a0) ;; [505] (set! a0-97 (l.wu (+ a0-96 260))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [506] (set! a0-94 (= v1-166 a0-97)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B89: -L479: - beq s7, a0, L480 ;; [507] (b! (not a0-94) L480 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B90: - lw t9, ja-channel-push!(s7);; [508] (set! t9-28 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [509] (set! a0-98 1) [] -> [a0: ] - addiu a1, r0, 15 ;; [510] (set! a1-27 15) [] -> [a1: ] - jalr ra, t9 ;; [511] (call! a0-98 a1-27) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [512] (set! v1-169 v0-28) [v0: int ] -> [v1: int ] - beq r0, r0, L481 ;; [513] (b! #t L481 (nop!)) [] -> [] - sll r0, r0, 0 - -B91: -L480: - lw t9, ja-channel-set!(s7);; [514] (set! t9-29 ja-channel-set!) - ;; [] -> [t9: (function int int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [515] (set! a0-99 1) [] -> [a0: ] - jalr ra, t9 ;; [516] (call! a0-99) - ;; [a0: t9: (function int int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [517] (set! v1-170 v0-29) [v0: int ] -> [v1: int ] -B92: -L481: - lwu v1, 116(s6) ;; [518] (set! v1-171 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [519] (set! v1-172 (l.wu (+ v1-171 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 164(v1) ;; [520] (set! v1-173 (l.wu (+ v1-172 164))) [v1: art-group ] -> [v1: art-element ] - bne s5, v1, L482 ;; [521] (b! (!= s5-4 v1-173) L482 (nop!)) [v1: art-element s5: art-joint-anim ] -> [] - sll r0, r0, 0 - -B93: - lui v1, L735 ;; [522] (set! v1-174 L735) [] -> [v1: ] - ori v1, v1, L735 - addu v1, fp, v1 - lw v1, 0(v1) ;; [523] (set! v1-175 (l.w v1-174)) [v1: ] -> [v1: int ] - beq r0, r0, L483 ;; [524] (b! #t L483 (nop!)) [] -> [] - sll r0, r0, 0 - -B94: -L482: - lui v1, L734 ;; [525] (set! v1-176 L734) [] -> [v1: ] - ori v1, v1, L734 - addu v1, fp, v1 - lw v1, 0(v1) ;; [526] (set! v1-175 (l.w v1-176)) [v1: ] -> [v1: int ] -B95: -L483: - mtc1 f0, v1 ;; [527] (set! f0-21 (gpr->fpr (the-as float v1-175))) [v1: float ] -> [] - c.lt.s f0, f30 ;; [528] (b! (>=.s f0-21 f30-2) L485 (nop!)) [] -> [] - bc1f L485 - sll r0, r0, 0 - -B96: - lwu v1, 120(s6) ;; [529] (set! v1-177 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [530] (set! v1-178 (l.wu (+ v1-177 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [531] (set! s5-5 (+ v1-178 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - lwu v1, 116(s6) ;; [532] (set! v1-179 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [533] (set! v1-180 (l.wu (+ v1-179 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 140(v1) ;; [534] (set! v1-181 (l.wu (+ v1-180 140))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(s5) ;; [535] (s.w! (+ s5-5 12) v1-181) [v1: art-element s5: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [536] (set! t9-30 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L750 ;; [537] (set! v1-182 L750) [] -> [v1: ] - ori v1, v1, L750 - addu v1, fp, v1 - lw a0, 0(v1) ;; [538] (set! a0-100 (l.w v1-182)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [539] (set! a1-28 0) [] -> [a1: ] - jalr ra, t9 ;; [540] (call! a0-100 a1-28) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [541] (set! f0-22 (gpr->fpr v0-30)) [v0: float ] -> [] - swc1 f0, 24(s5) ;; [542] (s.f! (+ s5-5 24) f0-22) [s5: joint-control-channel ] -> [] - lui v1, L776 ;; [543] (set! v1-183 L776) [] -> [v1: ] - ori v1, v1, L776 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [544] (set! f0-23 (l.f v1-183)) [v1: ] -> [] - swc1 f0, 28(s5) ;; [545] (s.f! (+ s5-5 28) f0-23) [s5: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [546] (set! f0-24 0) [] -> [] - swc1 f0, 16(s5) ;; [547] (s.f! (+ s5-5 16) f0-24) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [548] (set! t9-31 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [549] (set! v1-184 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [550] (set! v1-185 (l.wu (+ v1-184 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 140(v1) ;; [551] (set! a1-29 (l.wu (+ v1-185 140))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [552] (set! a2-8 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [553] (set! a0-101 s5-5) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [554] (call! a0-101 a1-29 a2-8) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [555] (set! v1-186 v0-31) [v0: int ] -> [v1: int ] -B97: -L484: - lwu s6, 44(s6) ;; [556] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [557] (set! v1-187 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [558] (set! v1-188 (l.wu (+ v1-187 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [559] (set! s5-6 (+ v1-188 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - lw t9, ja-aframe(s7) ;; [560] (set! t9-32 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L750 ;; [561] (set! v1-189 L750) [] -> [v1: ] - ori v1, v1, L750 - addu v1, fp, v1 - lw a0, 0(v1) ;; [562] (set! a0-102 (l.w v1-189)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [563] (set! a1-30 0) [] -> [a1: ] - jalr ra, t9 ;; [564] (call! a0-102 a1-30) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [565] (set! f0-25 (gpr->fpr v0-32)) [v0: float ] -> [] - swc1 f0, 24(s5) ;; [566] (s.f! (+ s5-6 24) f0-25) [s5: joint-control-channel ] -> [] - lui v1, L776 ;; [567] (set! v1-190 L776) [] -> [v1: ] - ori v1, v1, L776 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [568] (set! f0-26 (l.f v1-190)) [v1: ] -> [] - swc1 f0, 28(s5) ;; [569] (s.f! (+ s5-6 28) f0-26) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [570] (set! t9-33 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [571] (set! a1-31 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [572] (set! a2-9 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [573] (set! a0-103 s5-6) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [574] (call! a0-103 a1-31 a2-9) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [575] (set! v1-191 v0-33) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [576] (set! t9-34 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [577] (set! a0-104 0) [] -> [a0: ] - jalr ra, t9 ;; [578] (call! a0-104) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L484 ;; [579] (b! (not v0-34) L484 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B98: - or v1, s7, r0 ;; [580] (set! v1-192 #f) [] -> [v1: '#f ] - beq r0, r0, L491 ;; [581] (b! #t L491 (nop!)) [] -> [] - sll r0, r0, 0 - -B99: -L485: - lwu v1, 116(s6) ;; [582] (set! v1-193 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [583] (set! v1-194 (l.wu (+ v1-193 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 164(v1) ;; [584] (set! v1-195 (l.wu (+ v1-194 164))) [v1: art-group ] -> [v1: art-element ] - bne s5, v1, L486 ;; [585] (b! (!= s5-4 v1-195) L486 (nop!)) [v1: art-element s5: art-joint-anim ] -> [] - sll r0, r0, 0 - -B100: - lui v1, L736 ;; [586] (set! v1-196 L736) [] -> [v1: ] - ori v1, v1, L736 - addu v1, fp, v1 - lw v1, 0(v1) ;; [587] (set! v1-197 (l.w v1-196)) [v1: ] -> [v1: int ] - beq r0, r0, L487 ;; [588] (b! #t L487 (nop!)) [] -> [] - sll r0, r0, 0 - -B101: -L486: - lui v1, L734 ;; [589] (set! v1-198 L734) [] -> [v1: ] - ori v1, v1, L734 - addu v1, fp, v1 - lw v1, 0(v1) ;; [590] (set! v1-197 (l.w v1-198)) [v1: ] -> [v1: int ] -B102: -L487: - mtc1 f0, v1 ;; [591] (set! f0-27 (gpr->fpr (the-as float v1-197))) [v1: float ] -> [] - c.lt.s f0, f30 ;; [592] (b! (>=.s f0-27 f30-2) L489 (nop!)) [] -> [] - bc1f L489 - sll r0, r0, 0 - -B103: - lwu v1, 120(s6) ;; [593] (set! v1-199 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [594] (set! v1-200 (l.wu (+ v1-199 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [595] (set! s5-7 (+ v1-200 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - lwu v1, 116(s6) ;; [596] (set! v1-201 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [597] (set! v1-202 (l.wu (+ v1-201 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 140(v1) ;; [598] (set! v1-203 (l.wu (+ v1-202 140))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(s5) ;; [599] (s.w! (+ s5-7 12) v1-203) [v1: art-element s5: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [600] (set! t9-35 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L750 ;; [601] (set! v1-204 L750) [] -> [v1: ] - ori v1, v1, L750 - addu v1, fp, v1 - lw a0, 0(v1) ;; [602] (set! a0-105 (l.w v1-204)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [603] (set! a1-32 0) [] -> [a1: ] - jalr ra, t9 ;; [604] (call! a0-105 a1-32) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [605] (set! f0-28 (gpr->fpr v0-35)) [v0: float ] -> [] - swc1 f0, 24(s5) ;; [606] (s.f! (+ s5-7 24) f0-28) [s5: joint-control-channel ] -> [] - lui v1, L776 ;; [607] (set! v1-205 L776) [] -> [v1: ] - ori v1, v1, L776 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [608] (set! f0-29 (l.f v1-205)) [v1: ] -> [] - swc1 f0, 28(s5) ;; [609] (s.f! (+ s5-7 28) f0-29) [s5: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [610] (set! t9-36 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L787 ;; [611] (set! v1-206 L787) [] -> [v1: ] - ori v1, v1, L787 - addu v1, fp, v1 - lw a0, 0(v1) ;; [612] (set! a0-106 (l.w v1-206)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [613] (set! a1-33 0) [] -> [a1: ] - jalr ra, t9 ;; [614] (call! a0-106 a1-33) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [615] (set! f0-30 (gpr->fpr v0-36)) [v0: float ] -> [] - swc1 f0, 16(s5) ;; [616] (s.f! (+ s5-7 16) f0-30) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [617] (set! t9-37 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [618] (set! v1-207 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [619] (set! v1-208 (l.wu (+ v1-207 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 140(v1) ;; [620] (set! a1-34 (l.wu (+ v1-208 140))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [621] (set! a2-10 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [622] (set! a0-107 s5-7) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [623] (call! a0-107 a1-34 a2-10) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [624] (set! v1-209 v0-37) [v0: int ] -> [v1: int ] -B104: -L488: - lwu s6, 44(s6) ;; [625] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [626] (set! v1-210 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [627] (set! v1-211 (l.wu (+ v1-210 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [628] (set! s5-8 (+ v1-211 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - lw t9, ja-aframe(s7) ;; [629] (set! t9-38 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L750 ;; [630] (set! v1-212 L750) [] -> [v1: ] - ori v1, v1, L750 - addu v1, fp, v1 - lw a0, 0(v1) ;; [631] (set! a0-108 (l.w v1-212)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [632] (set! a1-35 0) [] -> [a1: ] - jalr ra, t9 ;; [633] (call! a0-108 a1-35) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [634] (set! f0-31 (gpr->fpr v0-38)) [v0: float ] -> [] - swc1 f0, 24(s5) ;; [635] (s.f! (+ s5-8 24) f0-31) [s5: joint-control-channel ] -> [] - lui v1, L776 ;; [636] (set! v1-213 L776) [] -> [v1: ] - ori v1, v1, L776 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [637] (set! f0-32 (l.f v1-213)) [v1: ] -> [] - swc1 f0, 28(s5) ;; [638] (s.f! (+ s5-8 28) f0-32) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [639] (set! t9-39 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [640] (set! a1-36 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [641] (set! a2-11 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [642] (set! a0-109 s5-8) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [643] (call! a0-109 a1-36 a2-11) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [644] (set! v1-214 v0-39) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [645] (set! t9-40 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [646] (set! a0-110 0) [] -> [a0: ] - jalr ra, t9 ;; [647] (call! a0-110) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L488 ;; [648] (b! (not v0-40) L488 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B105: - or v1, s7, r0 ;; [649] (set! v1-215 #f) [] -> [v1: '#f ] - beq r0, r0, L491 ;; [650] (b! #t L491 (nop!)) [] -> [] - sll r0, r0, 0 - -B106: -L489: - lwu v1, 120(s6) ;; [651] (set! v1-216 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [652] (set! v1-217 (l.wu (+ v1-216 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [653] (set! s5-9 (+ v1-217 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - lwu v1, 116(s6) ;; [654] (set! v1-218 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [655] (set! v1-219 (l.wu (+ v1-218 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 144(v1) ;; [656] (set! v1-220 (l.wu (+ v1-219 144))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(s5) ;; [657] (s.w! (+ s5-9 12) v1-220) [v1: art-element s5: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [658] (set! t9-41 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L749 ;; [659] (set! v1-221 L749) [] -> [v1: ] - ori v1, v1, L749 - addu v1, fp, v1 - lw a0, 0(v1) ;; [660] (set! a0-111 (l.w v1-221)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [661] (set! a1-37 0) [] -> [a1: ] - jalr ra, t9 ;; [662] (call! a0-111 a1-37) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [663] (set! f0-33 (gpr->fpr v0-41)) [v0: float ] -> [] - swc1 f0, 24(s5) ;; [664] (s.f! (+ s5-9 24) f0-33) [s5: joint-control-channel ] -> [] - lui v1, L776 ;; [665] (set! v1-222 L776) [] -> [v1: ] - ori v1, v1, L776 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [666] (set! f0-34 (l.f v1-222)) [v1: ] -> [] - swc1 f0, 28(s5) ;; [667] (s.f! (+ s5-9 28) f0-34) [s5: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [668] (set! f0-35 0) [] -> [] - swc1 f0, 16(s5) ;; [669] (s.f! (+ s5-9 16) f0-35) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [670] (set! t9-42 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [671] (set! v1-223 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [672] (set! v1-224 (l.wu (+ v1-223 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 144(v1) ;; [673] (set! a1-38 (l.wu (+ v1-224 144))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [674] (set! a2-12 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [675] (set! a0-112 s5-9) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [676] (call! a0-112 a1-38 a2-12) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [677] (set! v1-225 v0-42) [v0: int ] -> [v1: int ] -B107: -L490: - lwu s6, 44(s6) ;; [678] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [679] (set! v1-226 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [680] (set! v1-227 (l.wu (+ v1-226 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [681] (set! s5-10 (+ v1-227 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - lw t9, ja-aframe(s7) ;; [682] (set! t9-43 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L749 ;; [683] (set! v1-228 L749) [] -> [v1: ] - ori v1, v1, L749 - addu v1, fp, v1 - lw a0, 0(v1) ;; [684] (set! a0-113 (l.w v1-228)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [685] (set! a1-39 0) [] -> [a1: ] - jalr ra, t9 ;; [686] (call! a0-113 a1-39) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [687] (set! f0-36 (gpr->fpr v0-43)) [v0: float ] -> [] - swc1 f0, 24(s5) ;; [688] (s.f! (+ s5-10 24) f0-36) [s5: joint-control-channel ] -> [] - lui v1, L776 ;; [689] (set! v1-229 L776) [] -> [v1: ] - ori v1, v1, L776 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [690] (set! f0-37 (l.f v1-229)) [v1: ] -> [] - swc1 f0, 28(s5) ;; [691] (s.f! (+ s5-10 28) f0-37) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [692] (set! t9-44 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [693] (set! a1-40 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [694] (set! a2-13 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [695] (set! a0-114 s5-10) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [696] (call! a0-114 a1-40 a2-13) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [697] (set! v1-230 v0-44) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [698] (set! t9-45 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [699] (set! a0-115 0) [] -> [a0: ] - jalr ra, t9 ;; [700] (call! a0-115) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L490 ;; [701] (b! (not v0-45) L490 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B108: - or v1, s7, r0 ;; [702] (set! v1-231 #f) [] -> [v1: '#f ] -B109: -L491: - lwu s6, 44(s6) ;; [703] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [704] (set! v1-232 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [705] (set! v1-233 (l.wu (+ v1-232 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [706] (set! a0-116 (+ v1-233 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [707] (set! v1-234 (l.wu (+ a0-116 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [708] (set! v1-235 (l.wu (+ v1-234 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [709] (set! v1-236 (l.h (+ v1-235 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [710] (set! v1-237 (+ v1-236 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [711] (set! f0-38 (gpr->fpr v1-237)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [712] (set! f0-39 (i2f f0-38)) [] -> [] - swc1 f0, 24(a0) ;; [713] (s.f! (+ a0-116 24) f0-39) [a0: joint-control-channel ] -> [] - lui v1, L782 ;; [714] (set! v1-238 L782) [] -> [v1: ] - ori v1, v1, L782 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [715] (set! f0-40 (l.f v1-238)) [v1: ] -> [] - lwu v1, 108(s6) ;; [716] (set! v1-239 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 528(v1) ;; [717] (set! f1-6 (l.f (+ v1-239 528))) [v1: control-info ] -> [] - max.s f0, f0, f1 ;; [718] (set! f0-41 (max.s f0-40 f1-6)) [] -> [] - lw v1, *display*(s7) ;; [719] (set! v1-240 *display*) [] -> [v1: display ] - lwc1 f1, 904(v1) ;; [720] (set! f1-7 (l.f (+ v1-240 904))) [v1: display ] -> [] - mul.s f0, f0, f1 ;; [721] (set! f0-42 (*.s f0-41 f1-7)) [] -> [] - lw v1, *TARGET-bank*(s7) ;; [722] (set! v1-241 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f1, 228(v1) ;; [723] (set! f1-8 (l.f (+ v1-241 228))) [v1: target-bank ] -> [] - lw v1, *TARGET-bank*(s7) ;; [724] (set! v1-242 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f2, 204(v1) ;; [725] (set! f2-4 (l.f (+ v1-242 204))) [v1: target-bank ] -> [] - div.s f1, f1, f2 ;; [726] (set! f1-9 (/.s f1-8 f2-4)) [] -> [] - div.s f0, f0, f1 ;; [727] (set! f0-43 (/.s f0-42 f1-9)) [] -> [] - swc1 f0, 28(a0) ;; [728] (s.f! (+ a0-116 28) f0-43) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [729] (set! t9-46 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [730] (set! a1-41 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [731] (set! a2-14 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [732] (call! a0-116 a1-41 a2-14) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [733] (set! v1-243 v0-46) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [734] (set! t9-47 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [735] (set! a0-117 0) [] -> [a0: ] - jalr ra, t9 ;; [736] (call! a0-117) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L491 ;; [737] (b! (not v0-47) L491 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B110: - or v1, s7, r0 ;; [738] (set! v1-244 #f) [] -> [v1: '#f ] - lui v1, L742 ;; [739] (set! v1-245 L742) [] -> [v1: ] - ori v1, v1, L742 - addu v1, fp, v1 - lwc1 f28, 0(v1) ;; [740] (set! f28-0 (l.f v1-245)) [v1: ] -> [] - lui v1, L786 ;; [741] (set! v1-246 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [742] (set! f30-0 (l.f v1-246)) [v1: ] -> [] - lw t9, ja-channel-set!(s7);; [743] (set! t9-48 ja-channel-set!) - ;; [] -> [t9: (function int int :behavior process-drawable) ] - addiu a0, r0, 7 ;; [744] (set! a0-118 7) [] -> [a0: ] - jalr ra, t9 ;; [745] (call! a0-118) - ;; [a0: t9: (function int int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [746] (set! v1-247 v0-48) [v0: int ] -> [v1: int ] - beq r0, r0, L497 ;; [747] (b! #t L497 (nop!)) [] -> [] - sll r0, r0, 0 - -B111: -L492: - lwu v1, 120(s6) ;; [748] (set! v1-248 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [749] (set! v1-249 (l.w (+ v1-248 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [750] (b! (<=0.si v1-249) L493 (set! v1-250 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L493 - or v1, s7, r0 - -B112: - lwu v1, 120(s6) ;; [751] (set! v1-251 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [752] (set! v1-252 (l.wu (+ v1-251 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [753] (set! v1-250 (l.wu (+ v1-252 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B113: -L493: - lwu a0, 116(s6) ;; [754] (set! a0-119 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [755] (set! a0-120 (l.wu (+ a0-119 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 164(a0) ;; [756] (set! a0-121 (l.wu (+ a0-120 164))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [757] (set! a0-122 (= v1-250 a0-121)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L494 ;; [758] (b! (not a0-122) L494 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B114: - lw t9, ja-channel-push!(s7);; [759] (set! t9-49 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 7 ;; [760] (set! a0-123 7) [] -> [a0: ] - addiu a1, r0, 15 ;; [761] (set! a1-42 15) [] -> [a1: ] - jalr ra, t9 ;; [762] (call! a0-123 a1-42) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - daddiu gp, s7, #t ;; [763] (set! gp-0 #t) [] -> [gp: symbol ] - or v1, gp, r0 ;; [764] (set! v1-253 gp-0) [gp: symbol ] -> [v1: symbol ] - beq r0, r0, L497 ;; [765] (b! #t L497 (nop!)) [] -> [] - sll r0, r0, 0 - -B115: -L494: - lwu v1, 120(s6) ;; [766] (set! v1-254 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [767] (set! v1-255 (l.w (+ v1-254 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [768] (b! (<=0.si v1-255) L495 (set! v1-256 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L495 - or v1, s7, r0 - -B116: - lwu v1, 120(s6) ;; [769] (set! v1-257 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [770] (set! v1-258 (l.wu (+ v1-257 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [771] (set! v1-256 (l.wu (+ v1-258 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B117: -L495: - lwu a0, 116(s6) ;; [772] (set! a0-124 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [773] (set! a0-125 (l.wu (+ a0-124 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 340(a0) ;; [774] (set! a0-126 (l.wu (+ a0-125 340))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [775] (set! a0-127 (= v1-256 a0-126)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L496 ;; [776] (b! (not a0-127) L496 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B118: - lw t9, ja-channel-push!(s7);; [777] (set! t9-50 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 7 ;; [778] (set! a0-128 7) [] -> [a0: ] - addiu a1, r0, 45 ;; [779] (set! a1-43 45) [] -> [a1: ] - jalr ra, t9 ;; [780] (call! a0-128 a1-43) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [781] (set! v1-259 v0-50) [v0: int ] -> [v1: int ] - beq r0, r0, L497 ;; [782] (b! #t L497 (nop!)) [] -> [] - sll r0, r0, 0 - -B119: -L496: - lw t9, ja-channel-push!(s7);; [783] (set! t9-51 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 7 ;; [784] (set! a0-129 7) [] -> [a0: ] - addiu a1, r0, 15 ;; [785] (set! a1-44 15) [] -> [a1: ] - jalr ra, t9 ;; [786] (call! a0-129 a1-44) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [787] (set! v1-260 v0-51) [v0: int ] -> [v1: int ] -B120: -L497: - daddiu v1, s7, push ;; [788] (set! v1-261 'push) [] -> [v1: symbol ] - lwu a0, 120(s6) ;; [789] (set! a0-130 (l.wu (+ self 120))) [s6: target ] -> [a0: joint-control ] - lwu a0, 12(a0) ;; [790] (set! a0-131 (l.wu (+ a0-130 12))) - ;; [a0: joint-control ] -> [a0: (inline-array joint-control-channel) ] - sw v1, 148(a0) ;; [791] (s.w! (+ a0-131 148) v1-261) - ;; [v1: symbol a0: (inline-array joint-control-channel) ] -> [] - daddiu v1, s7, stack ;; [792] (set! v1-262 'stack) [] -> [v1: symbol ] - lwu a0, 120(s6) ;; [793] (set! a0-132 (l.wu (+ self 120))) [s6: target ] -> [a0: joint-control ] - lwu a0, 12(a0) ;; [794] (set! a0-133 (l.wu (+ a0-132 12))) - ;; [a0: joint-control ] -> [a0: (inline-array joint-control-channel) ] - sw v1, 292(a0) ;; [795] (s.w! (+ a0-133 292) v1-262) - ;; [v1: symbol a0: (inline-array joint-control-channel) ] -> [] - lwu v1, 120(s6) ;; [796] (set! v1-263 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [797] (set! v1-264 (l.wu (+ v1-263 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu v1, r0, v1 ;; [798] (set! v1-265 (+ v1-264 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - lwu a0, 116(s6) ;; [799] (set! a0-134 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [800] (set! a0-135 (l.wu (+ a0-134 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 120(a0) ;; [801] (set! a0-136 (l.wu (+ a0-135 120))) [a0: art-group ] -> [a0: art-element ] - sw a0, 12(v1) ;; [802] (s.w! (+ v1-265 12) a0-136) [v1: joint-control-channel a0: art-element ] -> [] - lw t9, ja-aframe(s7) ;; [803] (set! t9-52 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - mfc1 a0, f28 ;; [804] (set! a0-137 (fpr->gpr f28-0)) [] -> [a0: float ] - addiu a1, r0, 0 ;; [805] (set! a1-45 0) [] -> [a1: ] - jalr ra, t9 ;; [806] (call! a0-137 a1-45) - ;; [a0: float a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f28, v0 ;; [807] (set! f28-1 (gpr->fpr v0-52)) [v0: float ] -> [] - lwu v1, 120(s6) ;; [808] (set! v1-266 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [809] (set! v1-267 (l.wu (+ v1-266 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [810] (set! s5-11 (+ v1-267 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - mtc1 f0, r0 ;; [811] (set! f0-44 0) [] -> [] - swc1 f0, 8(s5) ;; [812] (s.f! (+ s5-11 8) f0-44) [s5: joint-control-channel ] -> [] - lw v1, *TARGET-bank*(s7) ;; [813] (set! v1-268 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 208(v1) ;; [814] (set! f0-45 (l.f (+ v1-268 208))) [v1: target-bank ] -> [] - swc1 f0, 36(s5) ;; [815] (s.f! (+ s5-11 36) f0-45) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [816] (set! t9-53 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, s5, r0 ;; [817] (set! a0-138 s5-11) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [818] (set! v1-269 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [819] (set! v1-270 (l.wu (+ v1-269 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 120(v1) ;; [820] (set! a1-46 (l.wu (+ v1-270 120))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [821] (set! a2-15 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [822] (call! a0-138 a1-46 a2-15) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - swc1 f28, 16(s5) ;; [823] (s.f! (+ s5-11 16) f28-1) [s5: joint-control-channel ] -> [] - mfc1 v1, f28 ;; [824] (set! v1-271 (fpr->gpr f28-1)) [] -> [v1: float ] - lwu v1, 120(s6) ;; [825] (set! v1-272 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [826] (set! v1-273 (l.wu (+ v1-272 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu s5, v1, 48 ;; [827] (set! s5-12 (+ v1-273 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - mtc1 f0, r0 ;; [828] (set! f0-46 0) [] -> [] - swc1 f0, 8(s5) ;; [829] (s.f! (+ s5-12 8) f0-46) [s5: joint-control-channel ] -> [] - lw v1, *TARGET-bank*(s7) ;; [830] (set! v1-274 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 216(v1) ;; [831] (set! f0-47 (l.f (+ v1-274 216))) [v1: target-bank ] -> [] - swc1 f0, 36(s5) ;; [832] (s.f! (+ s5-12 36) f0-47) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [833] (set! t9-54 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, s5, r0 ;; [834] (set! a0-139 s5-12) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [835] (set! v1-275 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [836] (set! v1-276 (l.wu (+ v1-275 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 128(v1) ;; [837] (set! a1-47 (l.wu (+ v1-276 128))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [838] (set! a2-16 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [839] (call! a0-139 a1-47 a2-16) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - swc1 f28, 16(s5) ;; [840] (s.f! (+ s5-12 16) f28-1) [s5: joint-control-channel ] -> [] - mfc1 v1, f28 ;; [841] (set! v1-277 (fpr->gpr f28-1)) [] -> [v1: float ] - lwu v1, 120(s6) ;; [842] (set! v1-278 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [843] (set! v1-279 (l.wu (+ v1-278 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu s5, v1, 96 ;; [844] (set! s5-13 (+ v1-279 96)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - mtc1 f0, r0 ;; [845] (set! f0-48 0) [] -> [] - swc1 f0, 8(s5) ;; [846] (s.f! (+ s5-13 8) f0-48) [s5: joint-control-channel ] -> [] - lw v1, *TARGET-bank*(s7) ;; [847] (set! v1-280 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 220(v1) ;; [848] (set! f0-49 (l.f (+ v1-280 220))) [v1: target-bank ] -> [] - swc1 f0, 36(s5) ;; [849] (s.f! (+ s5-13 36) f0-49) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [850] (set! t9-55 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, s5, r0 ;; [851] (set! a0-140 s5-13) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [852] (set! v1-281 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [853] (set! v1-282 (l.wu (+ v1-281 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 136(v1) ;; [854] (set! a1-48 (l.wu (+ v1-282 136))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [855] (set! a2-17 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [856] (call! a0-140 a1-48 a2-17) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - swc1 f28, 16(s5) ;; [857] (s.f! (+ s5-13 16) f28-1) [s5: joint-control-channel ] -> [] - mfc1 v1, f28 ;; [858] (set! v1-283 (fpr->gpr f28-1)) [] -> [v1: float ] - lwu v1, 120(s6) ;; [859] (set! v1-284 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [860] (set! v1-285 (l.wu (+ v1-284 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu s5, v1, 192 ;; [861] (set! s5-14 (+ v1-285 192)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - mtc1 f0, r0 ;; [862] (set! f0-50 0) [] -> [] - swc1 f0, 8(s5) ;; [863] (s.f! (+ s5-14 8) f0-50) [s5: joint-control-channel ] -> [] - lw v1, *TARGET-bank*(s7) ;; [864] (set! v1-286 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 232(v1) ;; [865] (set! f0-51 (l.f (+ v1-286 232))) [v1: target-bank ] -> [] - swc1 f0, 36(s5) ;; [866] (s.f! (+ s5-14 36) f0-51) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [867] (set! t9-56 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, s5, r0 ;; [868] (set! a0-141 s5-14) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [869] (set! v1-287 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [870] (set! v1-288 (l.wu (+ v1-287 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 108(v1) ;; [871] (set! a1-49 (l.wu (+ v1-288 108))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [872] (set! a2-18 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [873] (call! a0-141 a1-49 a2-18) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - swc1 f28, 16(s5) ;; [874] (s.f! (+ s5-14 16) f28-1) [s5: joint-control-channel ] -> [] - mfc1 v1, f28 ;; [875] (set! v1-289 (fpr->gpr f28-1)) [] -> [v1: float ] - lwu v1, 120(s6) ;; [876] (set! v1-290 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [877] (set! v1-291 (l.wu (+ v1-290 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu s5, v1, 240 ;; [878] (set! s5-15 (+ v1-291 240)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - mtc1 f0, r0 ;; [879] (set! f0-52 0) [] -> [] - swc1 f0, 8(s5) ;; [880] (s.f! (+ s5-15 8) f0-52) [s5: joint-control-channel ] -> [] - lw v1, *TARGET-bank*(s7) ;; [881] (set! v1-292 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 236(v1) ;; [882] (set! f0-53 (l.f (+ v1-292 236))) [v1: target-bank ] -> [] - swc1 f0, 36(s5) ;; [883] (s.f! (+ s5-15 36) f0-53) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [884] (set! t9-57 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, s5, r0 ;; [885] (set! a0-142 s5-15) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [886] (set! v1-293 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [887] (set! v1-294 (l.wu (+ v1-293 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 116(v1) ;; [888] (set! a1-50 (l.wu (+ v1-294 116))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [889] (set! a2-19 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [890] (call! a0-142 a1-50 a2-19) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - swc1 f28, 16(s5) ;; [891] (s.f! (+ s5-15 16) f28-1) [s5: joint-control-channel ] -> [] - mfc1 v1, f28 ;; [892] (set! v1-295 (fpr->gpr f28-1)) [] -> [v1: float ] - lwu v1, 120(s6) ;; [893] (set! v1-296 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [894] (set! v1-297 (l.wu (+ v1-296 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu s5, v1, 144 ;; [895] (set! s5-16 (+ v1-297 144)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - mtc1 f0, r0 ;; [896] (set! f0-54 0) [] -> [] - swc1 f0, 8(s5) ;; [897] (s.f! (+ s5-16 8) f0-54) [s5: joint-control-channel ] -> [] - lw v1, *TARGET-bank*(s7) ;; [898] (set! v1-298 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 224(v1) ;; [899] (set! f0-55 (l.f (+ v1-298 224))) [v1: target-bank ] -> [] - swc1 f0, 36(s5) ;; [900] (s.f! (+ s5-16 36) f0-55) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [901] (set! t9-58 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, s5, r0 ;; [902] (set! a0-143 s5-16) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [903] (set! v1-299 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [904] (set! v1-300 (l.wu (+ v1-299 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 100(v1) ;; [905] (set! a1-51 (l.wu (+ v1-300 100))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-identity(s7);; [906] (set! a2-20 num-func-identity) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [907] (call! a0-143 a1-51 a2-20) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - swc1 f28, 16(s5) ;; [908] (s.f! (+ s5-16 16) f28-1) [s5: joint-control-channel ] -> [] - mfc1 v1, f28 ;; [909] (set! v1-301 (fpr->gpr f28-1)) [] -> [v1: float ] - mtc1 f28, r0 ;; [910] (set! f28-2 0) [] -> [] - mtc1 f26, r0 ;; [911] (set! f26-1 0) [] -> [] -B121: -L498: - lui v1, L787 ;; [912] (set! v1-302 L787) [] -> [v1: ] - ori v1, v1, L787 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [913] (set! f0-56 (l.f v1-302)) [v1: ] -> [] - lui v1, L786 ;; [914] (set! v1-303 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [915] (set! f1-10 (l.f v1-303)) [v1: ] -> [] - lui v1, L748 ;; [916] (set! v1-304 L748) [] -> [v1: ] - ori v1, v1, L748 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [917] (set! f2-5 (l.f v1-304)) [v1: ] -> [] - lwu v1, 108(s6) ;; [918] (set! v1-305 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f3, 1300(v1) ;; [919] (set! f3-3 (l.f (+ v1-305 1300))) [v1: control-info ] -> [] - mul.s f2, f2, f3 ;; [920] (set! f2-6 (*.s f2-5 f3-3)) [] -> [] - min.s f1, f1, f2 ;; [921] (set! f1-11 (min.s f1-10 f2-6)) [] -> [] - max.s f22, f0, f1 ;; [922] (set! f22-0 (max.s f0-56 f1-11)) [] -> [] - lui v1, L787 ;; [923] (set! v1-306 L787) [] -> [v1: ] - ori v1, v1, L787 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [924] (set! f0-57 (l.f v1-306)) [v1: ] -> [] - lui v1, L786 ;; [925] (set! v1-307 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [926] (set! f1-12 (l.f v1-307)) [v1: ] -> [] - lui v1, L765 ;; [927] (set! v1-308 L765) [] -> [v1: ] - ori v1, v1, L765 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [928] (set! f2-7 (l.f v1-308)) [v1: ] -> [] - lwu v1, 108(s6) ;; [929] (set! v1-309 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f3, 1304(v1) ;; [930] (set! f3-4 (l.f (+ v1-309 1304))) [v1: control-info ] -> [] - mul.s f2, f2, f3 ;; [931] (set! f2-8 (*.s f2-7 f3-4)) [] -> [] - min.s f1, f1, f2 ;; [932] (set! f1-13 (min.s f1-12 f2-8)) [] -> [] - max.s f24, f0, f1 ;; [933] (set! f24-0 (max.s f0-57 f1-13)) [] -> [] - lw t9, seek(s7) ;; [934] (set! t9-59 seek) [] -> [t9: (function float float float float) ] - mfc1 a0, f30 ;; [935] (set! a0-144 (fpr->gpr f30-0)) [] -> [a0: float ] - mtc1 f0, r0 ;; [936] (set! f0-58 0) [] -> [] - lui v1, L786 ;; [937] (set! v1-310 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [938] (set! f1-14 (l.f v1-310)) [v1: ] -> [] - lui v1, L759 ;; [939] (set! v1-311 L759) [] -> [v1: ] - ori v1, v1, L759 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [940] (set! f2-9 (l.f v1-311)) [v1: ] -> [] - lui v1, L783 ;; [941] (set! v1-312 L783) [] -> [v1: ] - ori v1, v1, L783 - addu v1, fp, v1 - lwc1 f3, 0(v1) ;; [942] (set! f3-5 (l.f v1-312)) [v1: ] -> [] - lwu v1, 108(s6) ;; [943] (set! v1-313 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f4, 528(v1) ;; [944] (set! f4-1 (l.f (+ v1-313 528))) [v1: control-info ] -> [] - add.s f3, f3, f4 ;; [945] (set! f3-6 (+.s f3-5 f4-1)) [] -> [] - mul.s f2, f2, f3 ;; [946] (set! f2-10 (*.s f2-9 f3-6)) [] -> [] - min.s f1, f1, f2 ;; [947] (set! f1-15 (min.s f1-14 f2-10)) [] -> [] - max.s f0, f0, f1 ;; [948] (set! f0-59 (max.s f0-58 f1-15)) [] -> [] - mfc1 a1, f0 ;; [949] (set! a1-52 (fpr->gpr f0-59)) [] -> [a1: float ] - lui v1, L748 ;; [950] (set! v1-314 L748) [] -> [v1: ] - ori v1, v1, L748 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [951] (set! f0-60 (l.f v1-314)) [v1: ] -> [] - lw v1, *display*(s7) ;; [952] (set! v1-315 *display*) [] -> [v1: display ] - lwc1 f1, 904(v1) ;; [953] (set! f1-16 (l.f (+ v1-315 904))) [v1: display ] -> [] - mul.s f0, f0, f1 ;; [954] (set! f0-61 (*.s f0-60 f1-16)) [] -> [] - mfc1 a2, f0 ;; [955] (set! a2-21 (fpr->gpr f0-61)) [] -> [a2: float ] - jalr ra, t9 ;; [956] (call! a0-144 a1-52 a2-21) - ;; [a0: float a1: float a2: float t9: (function float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f30, v0 ;; [957] (set! f30-0 (gpr->fpr v0-59)) [v0: float ] -> [] - lwu v1, 120(s6) ;; [958] (set! v1-316 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 36(v1) ;; [959] (set! v1-317 (l.wu (+ v1-316 36))) [v1: joint-control ] -> [v1: effect-control ] - lui a0, L752 ;; [960] (set! a0-145 L752) [] -> [a0: ] - ori a0, a0, L752 - addu a0, fp, a0 - lwc1 f0, 0(a0) ;; [961] (set! f0-62 (l.f a0-145)) [a0: ] -> [] - c.lt.s f0, f30 ;; [962] (b! (>=.s f0-62 f30-0) L499 (nop!)) [] -> [] - bc1f L499 - sll r0, r0, 0 - -B122: - addiu a0, r0, 3 ;; [963] (set! a0-146 3) [] -> [a0: ] - beq r0, r0, L500 ;; [964] (b! #t L500 (nop!)) [] -> [] - sll r0, r0, 0 - -B123: -L499: - addiu a0, r0, 0 ;; [965] (set! a0-146 0) [] -> [a0: ] -B124: -L500: - sw a0, 16(v1) ;; [966] (s.w! (+ v1-317 16) a0-146) [v1: effect-control a0: int ] -> [] - or v1, r0, r0 ;; [967] (set! v1-318 0) [] -> [v1: ] - sub.s f0, f22, f28 ;; [968] (set! f0-63 (-.s f22-0 f28-2)) [] -> [] - abs.s f0, f0 ;; [969] (set! f0-64 (abs.s f0-63)) [] -> [] - lw t9, seek(s7) ;; [970] (set! t9-60 seek) [] -> [t9: (function float float float float) ] - mfc1 a0, f28 ;; [971] (set! a0-147 (fpr->gpr f28-2)) [] -> [a0: float ] - mfc1 a1, f22 ;; [972] (set! a1-53 (fpr->gpr f22-0)) [] -> [a1: float ] - lui v1, L761 ;; [973] (set! v1-319 L761) [] -> [v1: ] - ori v1, v1, L761 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [974] (set! f1-17 (l.f v1-319)) [v1: ] -> [] - lui v1, L766 ;; [975] (set! v1-320 L766) [] -> [v1: ] - ori v1, v1, L766 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [976] (set! f2-11 (l.f v1-320)) [v1: ] -> [] - lui v1, L753 ;; [977] (set! v1-321 L753) [] -> [v1: ] - ori v1, v1, L753 - addu v1, fp, v1 - lwc1 f3, 0(v1) ;; [978] (set! f3-7 (l.f v1-321)) [v1: ] -> [] - mul.s f0, f3, f0 ;; [979] (set! f0-65 (*.s f3-7 f0-64)) [] -> [] - min.s f0, f2, f0 ;; [980] (set! f0-66 (min.s f2-11 f0-65)) [] -> [] - max.s f0, f1, f0 ;; [981] (set! f0-67 (max.s f1-17 f0-66)) [] -> [] - mfc1 a2, f0 ;; [982] (set! a2-22 (fpr->gpr f0-67)) [] -> [a2: float ] - jalr ra, t9 ;; [983] (call! a0-147 a1-53 a2-22) - ;; [a0: float a1: float a2: float t9: (function float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f28, v0 ;; [984] (set! f28-2 (gpr->fpr v0-60)) [v0: float ] -> [] - mfc1 v1, f28 ;; [985] (set! v1-322 (fpr->gpr f28-2)) [] -> [v1: float ] - sub.s f0, f24, f26 ;; [986] (set! f0-68 (-.s f24-0 f26-1)) [] -> [] - abs.s f0, f0 ;; [987] (set! f0-69 (abs.s f0-68)) [] -> [] - lw t9, seek(s7) ;; [988] (set! t9-61 seek) [] -> [t9: (function float float float float) ] - mfc1 a0, f26 ;; [989] (set! a0-148 (fpr->gpr f26-1)) [] -> [a0: float ] - mfc1 a1, f24 ;; [990] (set! a1-54 (fpr->gpr f24-0)) [] -> [a1: float ] - lui v1, L761 ;; [991] (set! v1-323 L761) [] -> [v1: ] - ori v1, v1, L761 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [992] (set! f1-18 (l.f v1-323)) [v1: ] -> [] - lui v1, L766 ;; [993] (set! v1-324 L766) [] -> [v1: ] - ori v1, v1, L766 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [994] (set! f2-12 (l.f v1-324)) [v1: ] -> [] - lui v1, L753 ;; [995] (set! v1-325 L753) [] -> [v1: ] - ori v1, v1, L753 - addu v1, fp, v1 - lwc1 f3, 0(v1) ;; [996] (set! f3-8 (l.f v1-325)) [v1: ] -> [] - mul.s f0, f3, f0 ;; [997] (set! f0-70 (*.s f3-8 f0-69)) [] -> [] - min.s f0, f2, f0 ;; [998] (set! f0-71 (min.s f2-12 f0-70)) [] -> [] - max.s f0, f1, f0 ;; [999] (set! f0-72 (max.s f1-18 f0-71)) [] -> [] - mfc1 a2, f0 ;; [1000] (set! a2-23 (fpr->gpr f0-72)) [] -> [a2: float ] - jalr ra, t9 ;; [1001] (call! a0-148 a1-54 a2-23) - ;; [a0: float a1: float a2: float t9: (function float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f26, v0 ;; [1002] (set! f26-1 (gpr->fpr v0-61)) [v0: float ] -> [] - mfc1 v1, f26 ;; [1003] (set! v1-326 (fpr->gpr f26-1)) [] -> [v1: float ] - mtc1 f0, r0 ;; [1004] (set! f0-73 0) [] -> [] - c.lt.s f28, f0 ;; [1005] (b! (<.s f28-2 f0-73) L501 (nop!)) [] -> [] - bc1t L501 - sll r0, r0, 0 - -B125: - lwu v1, 120(s6) ;; [1006] (set! v1-327 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1007] (set! v1-328 (l.wu (+ v1-327 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu v1, v1, 48 ;; [1008] (set! v1-329 (+ v1-328 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - abs.s f0, f28 ;; [1009] (set! f0-74 (abs.s f28-2)) [] -> [] - swc1 f0, 8(v1) ;; [1010] (s.f! (+ v1-329 8) f0-74) [v1: joint-control-channel ] -> [] - lw a0, *TARGET-bank*(s7) ;; [1011] (set! a0-149 *TARGET-bank*) [] -> [a0: target-bank ] - lwc1 f0, 212(a0) ;; [1012] (set! f0-75 (l.f (+ a0-149 212))) [a0: target-bank ] -> [] - swc1 f0, 36(v1) ;; [1013] (s.f! (+ v1-329 36) f0-75) [v1: joint-control-channel ] -> [] - lwu a0, 116(s6) ;; [1014] (set! a0-150 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [1015] (set! a0-151 (l.wu (+ a0-150 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 124(a0) ;; [1016] (set! a0-152 (l.wu (+ a0-151 124))) [a0: art-group ] -> [a0: art-element ] - sw a0, 12(v1) ;; [1017] (s.w! (+ v1-329 12) a0-152) [v1: joint-control-channel a0: art-element ] -> [] - lwu v1, 120(s6) ;; [1018] (set! v1-330 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1019] (set! v1-331 (l.wu (+ v1-330 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu v1, v1, 192 ;; [1020] (set! v1-332 (+ v1-331 192)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - abs.s f0, f28 ;; [1021] (set! f0-76 (abs.s f28-2)) [] -> [] - swc1 f0, 8(v1) ;; [1022] (s.f! (+ v1-332 8) f0-76) [v1: joint-control-channel ] -> [] - lw a0, *TARGET-bank*(s7) ;; [1023] (set! a0-153 *TARGET-bank*) [] -> [a0: target-bank ] - lwc1 f0, 228(a0) ;; [1024] (set! f0-77 (l.f (+ a0-153 228))) [a0: target-bank ] -> [] - swc1 f0, 36(v1) ;; [1025] (s.f! (+ v1-332 36) f0-77) [v1: joint-control-channel ] -> [] - lwu a0, 116(s6) ;; [1026] (set! a0-154 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [1027] (set! a0-155 (l.wu (+ a0-154 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 104(a0) ;; [1028] (set! a0-156 (l.wu (+ a0-155 104))) [a0: art-group ] -> [a0: art-element ] - sw a0, 12(v1) ;; [1029] (s.w! (+ v1-332 12) a0-156) [v1: joint-control-channel a0: art-element ] -> [] - beq r0, r0, L502 ;; [1030] (b! #t L502 (nop!)) [] -> [] - sll r0, r0, 0 - -B126: -L501: - lwu v1, 120(s6) ;; [1031] (set! v1-333 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1032] (set! v1-334 (l.wu (+ v1-333 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu v1, v1, 48 ;; [1033] (set! v1-335 (+ v1-334 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - abs.s f0, f28 ;; [1034] (set! f0-78 (abs.s f28-2)) [] -> [] - swc1 f0, 8(v1) ;; [1035] (s.f! (+ v1-335 8) f0-78) [v1: joint-control-channel ] -> [] - lw a0, *TARGET-bank*(s7) ;; [1036] (set! a0-157 *TARGET-bank*) [] -> [a0: target-bank ] - lwc1 f0, 216(a0) ;; [1037] (set! f0-79 (l.f (+ a0-157 216))) [a0: target-bank ] -> [] - swc1 f0, 36(v1) ;; [1038] (s.f! (+ v1-335 36) f0-79) [v1: joint-control-channel ] -> [] - lwu a0, 116(s6) ;; [1039] (set! a0-158 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [1040] (set! a0-159 (l.wu (+ a0-158 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 128(a0) ;; [1041] (set! a0-160 (l.wu (+ a0-159 128))) [a0: art-group ] -> [a0: art-element ] - sw a0, 12(v1) ;; [1042] (s.w! (+ v1-335 12) a0-160) [v1: joint-control-channel a0: art-element ] -> [] - lwu v1, 120(s6) ;; [1043] (set! v1-336 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1044] (set! v1-337 (l.wu (+ v1-336 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu v1, v1, 192 ;; [1045] (set! v1-338 (+ v1-337 192)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - abs.s f0, f28 ;; [1046] (set! f0-80 (abs.s f28-2)) [] -> [] - swc1 f0, 8(v1) ;; [1047] (s.f! (+ v1-338 8) f0-80) [v1: joint-control-channel ] -> [] - lw a0, *TARGET-bank*(s7) ;; [1048] (set! a0-161 *TARGET-bank*) [] -> [a0: target-bank ] - lwc1 f0, 232(a0) ;; [1049] (set! f0-81 (l.f (+ a0-161 232))) [a0: target-bank ] -> [] - swc1 f0, 36(v1) ;; [1050] (s.f! (+ v1-338 36) f0-81) [v1: joint-control-channel ] -> [] - lwu a0, 116(s6) ;; [1051] (set! a0-162 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [1052] (set! a0-163 (l.wu (+ a0-162 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 108(a0) ;; [1053] (set! a0-164 (l.wu (+ a0-163 108))) [a0: art-group ] -> [a0: art-element ] - sw a0, 12(v1) ;; [1054] (s.w! (+ v1-338 12) a0-164) [v1: joint-control-channel a0: art-element ] -> [] -B127: -L502: - mtc1 f0, r0 ;; [1055] (set! f0-82 0) [] -> [] - c.lt.s f26, f0 ;; [1056] (b! (<.s f26-1 f0-82) L503 (nop!)) [] -> [] - bc1t L503 - sll r0, r0, 0 - -B128: - lwu v1, 120(s6) ;; [1057] (set! v1-339 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1058] (set! v1-340 (l.wu (+ v1-339 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu v1, v1, 96 ;; [1059] (set! v1-341 (+ v1-340 96)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - abs.s f0, f26 ;; [1060] (set! f0-83 (abs.s f26-1)) [] -> [] - swc1 f0, 8(v1) ;; [1061] (s.f! (+ v1-341 8) f0-83) [v1: joint-control-channel ] -> [] - lw a0, *TARGET-bank*(s7) ;; [1062] (set! a0-165 *TARGET-bank*) [] -> [a0: target-bank ] - lwc1 f0, 220(a0) ;; [1063] (set! f0-84 (l.f (+ a0-165 220))) [a0: target-bank ] -> [] - swc1 f0, 36(v1) ;; [1064] (s.f! (+ v1-341 36) f0-84) [v1: joint-control-channel ] -> [] - lwu a0, 116(s6) ;; [1065] (set! a0-166 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [1066] (set! a0-167 (l.wu (+ a0-166 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 132(a0) ;; [1067] (set! a0-168 (l.wu (+ a0-167 132))) [a0: art-group ] -> [a0: art-element ] - sw a0, 12(v1) ;; [1068] (s.w! (+ v1-341 12) a0-168) [v1: joint-control-channel a0: art-element ] -> [] - lwu v1, 120(s6) ;; [1069] (set! v1-342 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1070] (set! v1-343 (l.wu (+ v1-342 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu v1, v1, 240 ;; [1071] (set! v1-344 (+ v1-343 240)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - abs.s f0, f26 ;; [1072] (set! f0-85 (abs.s f26-1)) [] -> [] - swc1 f0, 8(v1) ;; [1073] (s.f! (+ v1-344 8) f0-85) [v1: joint-control-channel ] -> [] - lw a0, *TARGET-bank*(s7) ;; [1074] (set! a0-169 *TARGET-bank*) [] -> [a0: target-bank ] - lwc1 f0, 236(a0) ;; [1075] (set! f0-86 (l.f (+ a0-169 236))) [a0: target-bank ] -> [] - swc1 f0, 36(v1) ;; [1076] (s.f! (+ v1-344 36) f0-86) [v1: joint-control-channel ] -> [] - lwu a0, 116(s6) ;; [1077] (set! a0-170 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [1078] (set! a0-171 (l.wu (+ a0-170 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 112(a0) ;; [1079] (set! a0-172 (l.wu (+ a0-171 112))) [a0: art-group ] -> [a0: art-element ] - sw a0, 12(v1) ;; [1080] (s.w! (+ v1-344 12) a0-172) [v1: joint-control-channel a0: art-element ] -> [] - beq r0, r0, L504 ;; [1081] (b! #t L504 (nop!)) [] -> [] - sll r0, r0, 0 - -B129: -L503: - lwu v1, 120(s6) ;; [1082] (set! v1-345 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1083] (set! v1-346 (l.wu (+ v1-345 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu v1, v1, 96 ;; [1084] (set! v1-347 (+ v1-346 96)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - abs.s f0, f26 ;; [1085] (set! f0-87 (abs.s f26-1)) [] -> [] - swc1 f0, 8(v1) ;; [1086] (s.f! (+ v1-347 8) f0-87) [v1: joint-control-channel ] -> [] - lw a0, *TARGET-bank*(s7) ;; [1087] (set! a0-173 *TARGET-bank*) [] -> [a0: target-bank ] - lwc1 f0, 220(a0) ;; [1088] (set! f0-88 (l.f (+ a0-173 220))) [a0: target-bank ] -> [] - swc1 f0, 36(v1) ;; [1089] (s.f! (+ v1-347 36) f0-88) [v1: joint-control-channel ] -> [] - lwu a0, 116(s6) ;; [1090] (set! a0-174 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [1091] (set! a0-175 (l.wu (+ a0-174 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 136(a0) ;; [1092] (set! a0-176 (l.wu (+ a0-175 136))) [a0: art-group ] -> [a0: art-element ] - sw a0, 12(v1) ;; [1093] (s.w! (+ v1-347 12) a0-176) [v1: joint-control-channel a0: art-element ] -> [] - lwu v1, 120(s6) ;; [1094] (set! v1-348 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1095] (set! v1-349 (l.wu (+ v1-348 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu v1, v1, 240 ;; [1096] (set! v1-350 (+ v1-349 240)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - abs.s f0, f26 ;; [1097] (set! f0-89 (abs.s f26-1)) [] -> [] - swc1 f0, 8(v1) ;; [1098] (s.f! (+ v1-350 8) f0-89) [v1: joint-control-channel ] -> [] - lw a0, *TARGET-bank*(s7) ;; [1099] (set! a0-177 *TARGET-bank*) [] -> [a0: target-bank ] - lwc1 f0, 236(a0) ;; [1100] (set! f0-90 (l.f (+ a0-177 236))) [a0: target-bank ] -> [] - swc1 f0, 36(v1) ;; [1101] (s.f! (+ v1-350 36) f0-90) [v1: joint-control-channel ] -> [] - lwu a0, 116(s6) ;; [1102] (set! a0-178 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [1103] (set! a0-179 (l.wu (+ a0-178 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 116(a0) ;; [1104] (set! a0-180 (l.wu (+ a0-179 116))) [a0: art-group ] -> [a0: art-element ] - sw a0, 12(v1) ;; [1105] (s.w! (+ v1-350 12) a0-180) [v1: joint-control-channel a0: art-element ] -> [] -B130: -L504: - lwu v1, 120(s6) ;; [1106] (set! v1-351 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1107] (set! v1-352 (l.wu (+ v1-351 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu v1, v1, 288 ;; [1108] (set! v1-353 (+ v1-352 288)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - swc1 f30, 8(v1) ;; [1109] (s.f! (+ v1-353 8) f30-0) [v1: joint-control-channel ] -> [] - mfc1 v1, f30 ;; [1110] (set! v1-354 (fpr->gpr f30-0)) [] -> [v1: float ] - lwu a0, 120(s6) ;; [1111] (set! a0-181 (l.wu (+ self 120))) [s6: target ] -> [a0: joint-control ] - lwu v1, -4(a0) ;; [1112] (set! v1-355 (l.wu (+ a0-181 -4))) - ;; [a0: joint-control ] -> [v1: ] - lwu t9, 52(v1) ;; [1113] (set! t9-62 (l.wu (+ v1-355 52))) - ;; [v1: ] -> [t9: ] - jalr ra, t9 ;; [1114] (call! a0-181) - ;; [a0: joint-control t9: ] -> [v0: float ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [1115] (set! v1-356 v0-62) [v0: float ] -> [v1: float ] - mtc1 f1, v1 ;; [1116] (set! f1-19 (gpr->fpr v1-356)) [v1: float ] -> [] - lwu v1, 108(s6) ;; [1117] (set! v1-357 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 528(v1) ;; [1118] (set! f0-91 (l.f (+ v1-357 528))) [v1: control-info ] -> [] - lui v1, L789 ;; [1119] (set! v1-358 L789) [] -> [v1: ] - ori v1, v1, L789 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [1120] (set! f2-13 (l.f v1-358)) [v1: ] -> [] - lw v1, *TARGET-bank*(s7) ;; [1121] (set! v1-359 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f3, 204(v1) ;; [1122] (set! f3-9 (l.f (+ v1-359 204))) [v1: target-bank ] -> [] - div.s f1, f1, f3 ;; [1123] (set! f1-20 (/.s f1-19 f3-9)) [] -> [] - mul.s f1, f2, f1 ;; [1124] (set! f1-21 (*.s f2-13 f1-20)) [] -> [] - div.s f0, f0, f1 ;; [1125] (set! f0-92 (/.s f0-91 f1-21)) [] -> [] - lwu v1, 120(s6) ;; [1126] (set! v1-360 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1127] (set! v1-361 (l.wu (+ v1-360 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [1128] (set! a0-182 (+ v1-361 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - swc1 f0, 24(a0) ;; [1129] (s.f! (+ a0-182 24) f0-92) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [1130] (set! t9-63 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [1131] (set! a1-55 #f) [] -> [a1: '#f ] - lw a2, num-func-loop!(s7) ;; [1132] (set! a2-24 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [1133] (call! a0-182 a1-55 a2-24) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [1134] (set! v1-362 v0-63) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [1135] (set! v1-363 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1136] (set! v1-364 (l.wu (+ v1-363 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 48 ;; [1137] (set! a0-183 (+ v1-364 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [1138] (set! f0-93 0) [] -> [] - swc1 f0, 24(a0) ;; [1139] (s.f! (+ a0-183 24) f0-93) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [1140] (set! t9-64 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [1141] (set! a1-56 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [1142] (set! a2-25 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [1143] (call! a0-183 a1-56 a2-25) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [1144] (set! v1-365 v0-64) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [1145] (set! v1-366 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1146] (set! v1-367 (l.wu (+ v1-366 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 96 ;; [1147] (set! a0-184 (+ v1-367 96)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [1148] (set! f0-94 0) [] -> [] - swc1 f0, 24(a0) ;; [1149] (s.f! (+ a0-184 24) f0-94) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [1150] (set! t9-65 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [1151] (set! a1-57 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [1152] (set! a2-26 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [1153] (call! a0-184 a1-57 a2-26) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [1154] (set! v1-368 v0-65) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [1155] (set! v1-369 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1156] (set! v1-370 (l.wu (+ v1-369 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 144 ;; [1157] (set! a0-185 (+ v1-370 144)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [1158] (set! f0-95 0) [] -> [] - swc1 f0, 24(a0) ;; [1159] (s.f! (+ a0-185 24) f0-95) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [1160] (set! t9-66 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [1161] (set! a1-58 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [1162] (set! a2-27 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [1163] (call! a0-185 a1-58 a2-27) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [1164] (set! v1-371 v0-66) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [1165] (set! v1-372 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1166] (set! v1-373 (l.wu (+ v1-372 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 192 ;; [1167] (set! a0-186 (+ v1-373 192)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [1168] (set! f0-96 0) [] -> [] - swc1 f0, 24(a0) ;; [1169] (s.f! (+ a0-186 24) f0-96) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [1170] (set! t9-67 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [1171] (set! a1-59 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [1172] (set! a2-28 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [1173] (call! a0-186 a1-59 a2-28) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [1174] (set! v1-374 v0-67) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [1175] (set! v1-375 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1176] (set! v1-376 (l.wu (+ v1-375 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 240 ;; [1177] (set! a0-187 (+ v1-376 240)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [1178] (set! f0-97 0) [] -> [] - swc1 f0, 24(a0) ;; [1179] (s.f! (+ a0-187 24) f0-97) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [1180] (set! t9-68 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [1181] (set! a1-60 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [1182] (set! a2-29 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [1183] (call! a0-187 a1-60 a2-29) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [1184] (set! v1-377 v0-68) [v0: int ] -> [v1: int ] - beql s7, gp, L505 ;; [1185] (bl! (not gp-0) L505 (no-delay!)) [gp: symbol ] -> [] -B131: - or v1, gp, r0 ;; [1186] (set! v1-378 gp-0) [gp: symbol ] -> [v1: symbol ] - -B132: - lwu v1, 120(s6) ;; [1187] (set! v1-379 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [1188] (set! v1-380 (l.wu (+ v1-379 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu v1, r0, v1 ;; [1189] (set! v1-381 (+ v1-380 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - lwu a0, 120(s6) ;; [1190] (set! a0-188 (l.wu (+ self 120))) [s6: target ] -> [a0: joint-control ] - daddiu a0, a0, 44 ;; [1191] (set! a0-189 (+ a0-188 44)) - ;; [a0: joint-control ] -> [a0: (inline-array joint-control-channel) ] - dsubu a0, v1, a0 ;; [1192] (set! v1-378 (!= v1-381 a0-189)) - ;; [v1: joint-control-channel a0: (inline-array joint-control-channel) ] -> [v1: symbol ] - daddiu v1, s7, 8 - movz v1, s7, a0 -B133: -L505: - beq s7, v1, L506 ;; [1193] (b! (not v1-378) L506 (set! v1-382 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B134: - lw t9, ja-blend-eval(s7) ;; [1194] (set! t9-69 ja-blend-eval) [] -> [t9: (function int :behavior process-drawable) ] - jalr ra, t9 ;; [1195] (call!) [t9: (function int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [1196] (set! v1-383 v0-69) [v0: int ] -> [v1: int ] -B135: -L506: - lwu s6, 44(s6) ;; [1197] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - beq r0, r0, L498 ;; [1198] (b! #t L498 (nop!)) [] -> [] - sll r0, r0, 0 - -B136: - or v0, s7, r0 ;; [1199] (set! v0-70 #f) [] -> [v0: ] - ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 64(sp) - lwc1 f28, 60(sp) - lwc1 f26, 56(sp) - lwc1 f24, 52(sp) - lwc1 f22, 48(sp) - lq gp, 32(sp) - lq s5, 16(sp) - jr ra - daddiu sp, sp, 80 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-walk) - () - (let ((f28-0 0.0) - (f30-0 (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -16384.0 (-> self control unknown-float01)))))) - (gp-0 #f) - ) - (cond - ((ja-group? (-> self draw art-group data 33)) - (set! f30-0 1.0) - (ja-channel-push! 7 (seconds 0.05)) - ) - ((ja-group? (-> self draw art-group data 69)) - (ja-channel-push! 7 (seconds 0.075)) - (set! f30-0 1.0) - ) - ((ja-group? (-> self draw art-group data 51)) - (let ((f30-1 (fmax 0.8 (fmin 1.0 (* 0.000048828126 (-> self control unknown-float01)))))) - (cond - ((and (rand-vu-percent? (the-as float 0.3)) (< 20480.0 (-> self control unknown-float01))) - (ja-no-eval :group! (-> self draw art-group data 53) - :num! (seek! (ja-aframe (the-as float 29.0) 0) f30-1) - :frame-num 0.0 - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 29.0) 0) f30-1)) - ) - (ja-no-eval :group! (-> self draw art-group data 55) :num! (seek! max f30-1) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! max f30-1)) - ) - ) - (else - (ja-no-eval :group! (-> self draw art-group data 52) - :num! (seek! (ja-aframe (the-as float 29.0) 0) f30-1) - :frame-num 0.0 - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 29.0) 0) f30-1)) - ) - (ja-no-eval :group! (-> self draw art-group data 54) :num! (seek! max f30-1) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! max f30-1)) - ) - ) - ) - ) - (ja-channel-push! 7 (seconds 0.05)) - (set! f30-0 1.0) - (set! f28-0 30.0) - ) - (else - (let ((v1-108 (ja-group))) - (cond - ((or (= v1-108 (-> self draw art-group data 59)) (= v1-108 (-> self draw art-group data 60))) - (set! f30-0 1.0) - (set! f28-0 30.0) - (ja-channel-push! 7 (seconds 0.15)) - ) - ((let ((v1-116 (ja-group))) - (or (= v1-116 (-> self draw art-group data 84)) (= v1-116 (-> self draw art-group data 85))) - ) - (set! f30-0 1.0) - (set! f28-0 26.0) - (ja-channel-push! 7 (seconds 0.1)) - ) - ((and (ja-group? (-> self draw art-group data 23)) (= (-> self skel root-channel 0) (-> self skel channel))) - (set! f28-0 (ja-aframe-num 0)) - ) - ((ja-group? (-> self draw art-group data 102)) - (set! f28-0 (ja-aframe-num 0)) - (ja-channel-push! 7 (seconds 0.1)) - ) - ((ja-group? (-> self draw art-group data 89)) - (set! f28-0 (ja-aframe-num 0)) - (ja-channel-push! 7 (seconds 0.05)) - ) - ((let ((v1-146 (ja-group))) - (and (or (or (= v1-146 (-> self draw art-group data 38)) - (= v1-146 (-> self draw art-group data 71)) - (= v1-146 (-> self draw art-group data 58)) - (= v1-146 (-> self draw art-group data 62)) - (= v1-146 (-> self draw art-group data 65)) - (= v1-146 (-> self draw art-group data 68)) - ) - (and (ja-group? (-> self draw art-group data 34)) (< 30.0 (ja-aframe-num 0))) - ) - (< 12288.0 (-> self control unknown-float01)) - ) - ) - (let ((s5-4 (ja-group)) - (f30-2 (-> self control ground-impact-vel)) - ) - (case (ja-group) - (((-> self draw art-group data 71) (-> self draw art-group data 58)) - (ja-channel-push! 1 (seconds 0.05)) - ) - (else - (ja-channel-set! 1) - ) - ) - (cond - ((< (the-as float (if (= s5-4 (-> self draw art-group data 34)) - 77824.0 - 102400.0 - ) - ) - f30-2 - ) - (ja-no-eval :group! (-> self draw art-group data 28) - :num! (seek! (ja-aframe (the-as float 3.0) 0) 1.00001) - :frame-num 0.0 - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 3.0) 0) 1.00001)) - ) - ) - ((< (the-as float (if (= s5-4 (-> self draw art-group data 34)) - 61440.0 - 102400.0 - ) - ) - f30-2 - ) - (ja-no-eval :group! (-> self draw art-group data 28) - :num! (seek! (ja-aframe (the-as float 3.0) 0) 1.00001) - :frame-num (ja-aframe (the-as float -1.0) 0) - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 3.0) 0) 1.00001)) - ) - ) - (else - (ja-no-eval :group! (-> self draw art-group data 29) - :num! (seek! (ja-aframe (the-as float 4.0) 0) 1.00001) - :frame-num 0.0 - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! (ja-aframe (the-as float 4.0) 0) 1.00001)) - ) - ) - ) - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! max (/ (* (fmax 20480.0 (-> self control unknown-float01)) (-> *display* seconds-per-frame)) - (/ (-> *TARGET-bank* run-up-cycle-dist) (-> *TARGET-bank* run-cycle-length)) - ) - ) - ) - ) - (set! f28-0 30.0) - (set! f30-0 1.0) - (ja-channel-set! 7) - ) - ((ja-group? (-> self draw art-group data 34)) - (ja-channel-push! 7 (seconds 0.05)) - (set! gp-0 #t) - ) - ((ja-group? (-> self draw art-group data 78)) - (ja-channel-push! 7 (seconds 0.15)) - ) - (else - (ja-channel-push! 7 (seconds 0.05)) - ) - ) - ) - ) - ) - (set! (-> self skel root-channel 3 command) 'push) - (set! (-> self skel root-channel 6 command) 'stack) - (ja :group! (-> self draw art-group data 23)) - (let ((f28-1 (ja-aframe f28-0 0))) - (ja :group! (-> self draw art-group data 23) - :num! (identity f28-1) - :frame-interp 0.0 - :dist (-> *TARGET-bank* walk-cycle-dist) - ) - (ja :chan 1 - :group! (-> self draw art-group data 25) - :num! (identity f28-1) - :frame-interp 0.0 - :dist (-> *TARGET-bank* walk-down-cycle-dist) - ) - (ja :chan 2 - :group! (-> self draw art-group data 27) - :num! (identity f28-1) - :frame-interp 0.0 - :dist (-> *TARGET-bank* walk-side-cycle-dist) - ) - (ja :chan 4 - :group! (-> self draw art-group data 20) - :num! (identity f28-1) - :frame-interp 0.0 - :dist (-> *TARGET-bank* run-down-cycle-dist) - ) - (ja :chan 5 - :group! (-> self draw art-group data 22) - :num! (identity f28-1) - :frame-interp 0.0 - :dist (-> *TARGET-bank* run-side-cycle-dist) - ) - (ja :chan 3 - :group! (-> self draw art-group data 18) - :num! (identity f28-1) - :frame-interp 0.0 - :dist (-> *TARGET-bank* run-cycle-dist) - ) - ) - (let ((f28-2 0.0) - (f26-1 0.0) - ) - (loop - (let ((f22-0 (fmax -1.0 (fmin 1.0 (* 2.0 (-> self control unknown-float61))))) - (f24-0 (fmax -1.0 (fmin 1.0 (* 1.6 (-> self control unknown-float62))))) - ) - (set! f30-0 (seek - f30-0 - (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -16384.0 (-> self control unknown-float01))))) - (* 2.0 (-> *display* seconds-per-frame)) - ) - ) - (let ((v1-317 (-> self skel effect))) - (set! (-> v1-317 channel-offset) (if (< 0.5 f30-0) - 3 - 0 - ) - ) - ) - 0 - (let ((f0-64 (fabs (- f22-0 f28-2)))) - (set! f28-2 (seek f28-2 f22-0 (fmax 0.05 (fmin 0.2 (* 0.25 f0-64))))) - ) - (let ((f0-69 (fabs (- f24-0 f26-1)))) - (set! f26-1 (seek f26-1 f24-0 (fmax 0.05 (fmin 0.2 (* 0.25 f0-69))))) - ) - ) - (cond - ((>= f28-2 0.0) - (ja :chan 1 - :group! (-> self draw art-group data 24) - :frame-interp (fabs f28-2) - :dist (-> *TARGET-bank* walk-up-cycle-dist) - ) - (ja :chan 4 - :group! (-> self draw art-group data 19) - :frame-interp (fabs f28-2) - :dist (-> *TARGET-bank* run-up-cycle-dist) - ) - ) - (else - (ja :chan 1 - :group! (-> self draw art-group data 25) - :frame-interp (fabs f28-2) - :dist (-> *TARGET-bank* walk-down-cycle-dist) - ) - (ja :chan 4 - :group! (-> self draw art-group data 20) - :frame-interp (fabs f28-2) - :dist (-> *TARGET-bank* run-down-cycle-dist) - ) - ) - ) - (cond - ((>= f26-1 0.0) - (ja :chan 2 - :group! (-> self draw art-group data 26) - :frame-interp (fabs f26-1) - :dist (-> *TARGET-bank* walk-side-cycle-dist) - ) - (ja :chan 5 - :group! (-> self draw art-group data 21) - :frame-interp (fabs f26-1) - :dist (-> *TARGET-bank* run-side-cycle-dist) - ) - ) - (else - (ja :chan 2 - :group! (-> self draw art-group data 27) - :frame-interp (fabs f26-1) - :dist (-> *TARGET-bank* walk-side-cycle-dist) - ) - (ja :chan 5 - :group! (-> self draw art-group data 22) - :frame-interp (fabs f26-1) - :dist (-> *TARGET-bank* run-side-cycle-dist) - ) - ) - ) - (set! (-> self skel root-channel 6 frame-interp) f30-0) - (let* ((f1-19 (current-cycle-distance (-> self skel))) - (f0-92 (/ (-> self control unknown-float01) (* 60.0 (/ f1-19 (-> *TARGET-bank* run-cycle-length))))) - ) - (ja :num! (loop! f0-92)) - ) - (ja :chan 1 :num! (chan 0)) - (ja :chan 2 :num! (chan 0)) - (ja :chan 3 :num! (chan 0)) - (ja :chan 4 :num! (chan 0)) - (ja :chan 5 :num! (chan 0)) - (if (and gp-0 (!= (-> self skel root-channel 0) (-> self skel channel))) - (ja-blend-eval) - ) - (suspend) - ) - ) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-walk) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 -;; Warnings: -;; Used lq/sq - -;; s6-0: target -L507: - daddiu sp, sp, -16 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 -B0: - lwu t9, 196(s6) ;; [ 0] (set! t9-0 (l.wu (+ self 196))) - ;; [s6: target ] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 1] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - addiu v1, r0, 1 ;; [ 2] (set! v1-0 1) [] -> [v1: ] - lwu a0, 108(s6) ;; [ 3] (set! a0-0 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 260(a0) ;; [ 4] (set! a0-1 (l.wu (+ a0-0 260))) [a0: control-info ] -> [a0: pat-surface ] - dsll32 a0, a0, 20 ;; [ 5] (set! a0-2 (sll a0-1 52)) [a0: pat-surface ] -> [a0: ( << 52) ] - dsrl32 a0, a0, 26 ;; [ 6] (set! a0-3 (srl a0-2 58)) [a0: ( << 52) ] -> [a0: pat-material ] - bne a0, v1, L508 ;; [ 7] (b! (!= a0-3 v1-0) L508 (set! v1-1 #f)) - ;; [v1: a0: pat-material ] -> [v1: '#f ] - or v1, s7, r0 - -B1: - lw t9, target-effect-exit(s7);; [ 8] (set! t9-1 target-effect-exit) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 9] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, remove-exit(s7) ;; [ 10] (set! t9-2 remove-exit) [] -> [t9: (function stack-frame :behavior process) ] - jalr ra, t9 ;; [ 11] (call!) [t9: (function stack-frame :behavior process) ] -> [v0: stack-frame ] - sll v0, ra, 0 - - lw t9, enter-state(s7) ;; [ 12] (set! t9-3 enter-state) [] -> [t9: ] - lw v1, target-ice-walk(s7);; [ 13] (set! v1-2 target-ice-walk) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 14] (s.w! (+ self 72) v1-2) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 15] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 16] (set! v1-3 v0-3) [v0: object ] -> [v1: object ] -B2: -L508: - lwu v1, 108(s6) ;; [ 17] (set! v1-4 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 18] (set! v1-5 (l.wu (+ v1-4 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 19] (set! v1-6 (l.w (+ v1-5 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 20] (set! v1-7 (sll v1-6 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 21] (set! a0-4 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 22] (set! v1-8 (+ v1-7 a0-4)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 23] (set! v1-9 (l.wu (+ v1-8 4))) [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 24] (set! v1-10 (l.wu (+ v1-9 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 25] (set! a0-5 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 26] (set! a0-6 (l.wu (+ a0-5 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 27] (set! a0-7 (l.w (+ a0-6 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 28] (set! a0-8 (sll a0-7 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 29] (set! a1-0 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 30] (set! a0-9 (+ a0-8 a1-0)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 31] (set! a0-10 (l.wu (+ a0-9 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [ 32] (set! a0-11 (l.wu (+ a0-10 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 33] (set! v1-11 (logior v1-10 a0-11)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 34] (set! a0-12 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 35] (set! a0-13 (l.wu (+ a0-12 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 36] (set! a0-14 (l.w (+ a0-13 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 37] (set! a0-15 (sll a0-14 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 38] (set! a1-1 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 39] (set! a0-16 (+ a0-15 a1-1)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 40] (set! a0-17 (l.wu (+ a0-16 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [ 41] (set! a0-18 (l.wu (+ a0-17 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 42] (set! v1-12 (logior v1-11 a0-18)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 3072 ;; [ 43] (set! v1-13 (logand v1-12 3072)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L510 ;; [ 44] (bl! (zero? v1-13) L510 (no-delay!)) [v1: pad-buttons ] -> [] -B3: - or v1, s7, r0 ;; [ 45] (set! v1-14 #f) [] -> [v1: '#f ] - -B4: - lw v1, *display*(s7) ;; [ 46] (set! v1-15 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 47] (set! v1-16 (l.d (+ v1-15 780))) [v1: display ] -> [v1: time-frame ] - lw a0, *TARGET-bank*(s7) ;; [ 48] (set! a0-19 *TARGET-bank*) [] -> [a0: target-bank ] - ld a0, 100(a0) ;; [ 49] (set! a0-20 (l.d (+ a0-19 100))) [a0: target-bank ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 50] (set! v1-17 (- v1-16 a0-20)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - lwu a0, 108(s6) ;; [ 51] (set! a0-21 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - ld a0, 1660(a0) ;; [ 52] (set! a0-22 (l.d (+ a0-21 1660))) [a0: control-info ] -> [a0: time-frame ] - slt v1, v1, a0 ;; [ 53] (set! a0-23 (>=.si v1-17 a0-22)) [v1: time-frame a0: time-frame ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L510 ;; [ 54] (bl! (not a0-23) L510 (no-delay!)) [a0: symbol ] -> [] -B5: - or v1, a0, r0 ;; [ 55] (set! v1-14 a0-23) [a0: symbol ] -> [v1: symbol ] + or v0, v1, r0 ;; [ 14] (set! v0 v1) B6: - lwu v1, 108(s6) ;; [ 56] (set! v1-18 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 57] (set! v1-19 (l.wu (+ v1-18 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 58] (set! v1-20 (l.w (+ v1-19 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 59] (set! v1-21 (sll v1-20 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 60] (set! a0-24 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 61] (set! v1-22 (+ v1-21 a0-24)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 62] (set! v1-23 (l.wu (+ v1-22 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwc1 f0, 72(v1) ;; [ 63] (set! f0-0 (l.f (+ v1-23 72))) [v1: cpad-info ] -> [] - mtc1 f1, r0 ;; [ 64] (set! f1-0 0) [] -> [] - c.eq.s f0, f1 ;; [ 65] (b! (!=.s f0-0 f1-0) L509 (set! v1-24 #t)) [] -> [v1: symbol ] - bc1f L509 - daddiu v1, s7, 8 + lwu v1, -4(a0) ;; [ 15] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 968(v1) ;; [ 16] (set! t9 (l.wu (+ v1 968))) + daddiu a2, s7, #t ;; [ 17] (set! a2 #t) + jalr ra, t9 ;; [ 18] (call!) + sll v0, ra, 0 B7: - or v1, s7, r0 ;; [ 66] (set! v1-24 #f) [] -> [v1: '#f ] -B8: -L509: - beql s7, v1, L510 ;; [ 67] (bl! (not v1-24) L510 (no-delay!)) [v1: symbol ] -> [] -B9: - or v1, v1, r0 ;; [ 68] (set! v1-14 v1-24) [v1: symbol ] -> [v1: symbol ] - -B10: - lw t9, can-wheel?(s7) ;; [ 69] (set! t9-4 can-wheel?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 70] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 71] (set! v1-14 v0-4) [v0: symbol ] -> [v1: symbol ] -B11: -L510: - beq s7, v1, L511 ;; [ 72] (b! (not v1-14) L511 (set! v1-25 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B12: - lw t9, enter-state(s7) ;; [ 73] (set! t9-5 enter-state) [] -> [t9: ] - lw v1, target-wheel(s7) ;; [ 74] (set! v1-26 target-wheel) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 75] (s.w! (+ self 72) v1-26) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 76] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 77] (set! v1-27 v0-5) [v0: object ] -> [v1: object ] -B13: -L511: - lwu v1, 108(s6) ;; [ 78] (set! v1-28 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 79] (set! v1-29 (l.wu (+ v1-28 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 80] (set! v1-30 (l.w (+ v1-29 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 81] (set! v1-31 (sll v1-30 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 82] (set! a0-25 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 83] (set! v1-32 (+ v1-31 a0-25)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 84] (set! v1-33 (l.wu (+ v1-32 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 40(v1) ;; [ 85] (set! v1-34 (l.wu (+ v1-33 40))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 3072 ;; [ 86] (set! v1-35 (logand v1-34 3072)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L512 ;; [ 87] (bl! (zero? v1-35) L512 (no-delay!)) [v1: pad-buttons ] -> [] -B14: - or v1, s7, r0 ;; [ 88] (set! v1-36 #f) [] -> [v1: '#f ] - -B15: - lw t9, can-duck?(s7) ;; [ 89] (set! t9-6 can-duck?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 90] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 91] (set! v1-36 v0-6) [v0: symbol ] -> [v1: symbol ] -B16: -L512: - beq s7, v1, L513 ;; [ 92] (b! (not v1-36) L513 (set! v1-37 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B17: - lw t9, target-effect-exit(s7);; [ 93] (set! t9-7 target-effect-exit) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 94] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, remove-exit(s7) ;; [ 95] (set! t9-8 remove-exit) [] -> [t9: (function stack-frame :behavior process) ] - jalr ra, t9 ;; [ 96] (call!) [t9: (function stack-frame :behavior process) ] -> [v0: stack-frame ] - sll v0, ra, 0 - - lw t9, enter-state(s7) ;; [ 97] (set! t9-9 enter-state) [] -> [t9: ] - lw v1, target-duck-walk(s7);; [ 98] (set! v1-38 target-duck-walk) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 99] (s.w! (+ self 72) v1-38) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [100] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [101] (set! v1-39 v0-9) [v0: object ] -> [v1: object ] -B18: -L513: - lw t9, move-legs?(s7) ;; [102] (set! t9-10 move-legs?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [103] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - bne s7, v0, L514 ;; [104] (b! (truthy v0-10) L514 (set! v1-40 #f)) [v0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B19: - lw t9, target-effect-exit(s7);; [105] (set! t9-11 target-effect-exit) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [106] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, remove-exit(s7) ;; [107] (set! t9-12 remove-exit) [] -> [t9: (function stack-frame :behavior process) ] - jalr ra, t9 ;; [108] (call!) [t9: (function stack-frame :behavior process) ] -> [v0: stack-frame ] - sll v0, ra, 0 - - lw t9, enter-state(s7) ;; [109] (set! t9-13 enter-state) [] -> [t9: ] - lw v1, target-stance(s7) ;; [110] (set! v1-41 target-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [111] (s.w! (+ self 72) v1-41) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [112] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [113] (set! v1-42 v0-13) [v0: object ] -> [v1: object ] -B20: -L514: - lwu v1, 108(s6) ;; [114] (set! v1-43 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [115] (set! v1-44 (l.wu (+ v1-43 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [116] (set! v1-45 (l.w (+ v1-44 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [117] (set! v1-46 (sll v1-45 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [118] (set! a0-26 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [119] (set! v1-47 (+ v1-46 a0-26)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [120] (set! v1-48 (l.wu (+ v1-47 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [121] (set! v1-49 (l.wu (+ v1-48 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [122] (set! a0-27 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [123] (set! a0-28 (l.wu (+ a0-27 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [124] (set! a0-29 (l.w (+ a0-28 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [125] (set! a0-30 (sll a0-29 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [126] (set! a1-2 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [127] (set! a0-31 (+ a0-30 a1-2)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [128] (set! a0-32 (l.wu (+ a0-31 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [129] (set! a0-33 (l.wu (+ a0-32 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [130] (set! v1-50 (logior v1-49 a0-33)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [131] (set! a0-34 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [132] (set! a0-35 (l.wu (+ a0-34 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [133] (set! a0-36 (l.w (+ a0-35 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [134] (set! a0-37 (sll a0-36 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [135] (set! a1-3 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [136] (set! a0-38 (+ a0-37 a1-3)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [137] (set! a0-39 (l.wu (+ a0-38 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [138] (set! a0-40 (l.wu (+ a0-39 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [139] (set! v1-51 (logior v1-50 a0-40)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [140] (set! v1-52 (logand v1-51 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L515 ;; [141] (bl! (zero? v1-52) L515 (no-delay!)) [v1: pad-buttons ] -> [] -B21: - or v1, s7, r0 ;; [142] (set! v1-53 #f) [] -> [v1: '#f ] - -B22: - lw t9, can-jump?(s7) ;; [143] (set! t9-14 can-jump?) [] -> [t9: (function symbol symbol :behavior target) ] - or a0, s7, r0 ;; [144] (set! a0-41 #f) [] -> [a0: '#f ] - jalr ra, t9 ;; [145] (call! a0-41) - ;; [a0: '#f t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [146] (set! v1-53 v0-14) [v0: symbol ] -> [v1: symbol ] -B23: -L515: - beq s7, v1, L516 ;; [147] (b! (not v1-53) L516 (set! v1-54 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B24: - lw t9, enter-state(s7) ;; [148] (set! t9-15 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [149] (set! v1-55 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 4(v1) ;; [150] (set! f0-1 (l.f (+ v1-55 4))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [151] (set! a0-42 (fpr->gpr f0-1)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [152] (set! v1-56 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 8(v1) ;; [153] (set! f0-2 (l.f (+ v1-56 8))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [154] (set! a1-4 (fpr->gpr f0-2)) [] -> [a1: meters ] - or a2, s7, r0 ;; [155] (set! a2-0 #f) [] -> [a2: '#f ] - lw v1, target-jump(s7) ;; [156] (set! v1-57 target-jump) [] -> [v1: (state float float surface target) ] - sw v1, 72(s6) ;; [157] (s.w! (+ self 72) v1-57) - ;; [v1: (state float float surface target) s6: target ] -> [] - jalr ra, t9 ;; [158] (call! a0-42 a1-4 a2-0) - ;; [a0: meters a1: meters a2: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [159] (set! v1-58 v0-15) [v0: object ] -> [v1: object ] -B25: -L516: - lwu v1, 108(s6) ;; [160] (set! v1-59 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [161] (set! v1-60 (l.wu (+ v1-59 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [162] (set! v1-61 (l.w (+ v1-60 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [163] (set! v1-62 (sll v1-61 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [164] (set! a0-43 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [165] (set! v1-63 (+ v1-62 a0-43)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [166] (set! v1-64 (l.wu (+ v1-63 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [167] (set! v1-65 (l.wu (+ v1-64 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [168] (set! a0-44 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [169] (set! a0-45 (l.wu (+ a0-44 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [170] (set! a0-46 (l.w (+ a0-45 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [171] (set! a0-47 (sll a0-46 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [172] (set! a1-5 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [173] (set! a0-48 (+ a0-47 a1-5)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [174] (set! a0-49 (l.wu (+ a0-48 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [175] (set! a0-50 (l.wu (+ a0-49 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [176] (set! v1-66 (logior v1-65 a0-50)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [177] (set! a0-51 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [178] (set! a0-52 (l.wu (+ a0-51 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [179] (set! a0-53 (l.w (+ a0-52 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [180] (set! a0-54 (sll a0-53 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [181] (set! a1-6 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [182] (set! a0-55 (+ a0-54 a1-6)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [183] (set! a0-56 (l.wu (+ a0-55 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [184] (set! a0-57 (l.wu (+ a0-56 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [185] (set! v1-67 (logior v1-66 a0-57)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 8192 ;; [186] (set! v1-68 (logand v1-67 8192)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L517 ;; [187] (bl! (zero? v1-68) L517 (no-delay!)) [v1: pad-buttons ] -> [] -B26: - or v1, s7, r0 ;; [188] (set! v1-69 #f) [] -> [v1: '#f ] - -B27: - lw t9, can-feet?(s7) ;; [189] (set! t9-16 can-feet?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [190] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [191] (set! v1-69 v0-16) [v0: symbol ] -> [v1: symbol ] -B28: -L517: - beq s7, v1, L518 ;; [192] (b! (not v1-69) L518 (set! v1-70 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B29: - lw t9, enter-state(s7) ;; [193] (set! t9-17 enter-state) [] -> [t9: ] - lw v1, target-attack(s7) ;; [194] (set! v1-71 target-attack) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [195] (s.w! (+ self 72) v1-71) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [196] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [197] (set! v1-72 v0-17) [v0: object ] -> [v1: object ] -B30: -L518: - lw t9, can-hands?(s7) ;; [198] (set! t9-18 can-hands?) [] -> [t9: (function symbol symbol :behavior target) ] - daddiu a0, s7, #t ;; [199] (set! a0-58 #t) [] -> [a0: symbol ] - jalr ra, t9 ;; [200] (call! a0-58) - ;; [a0: symbol t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L519 ;; [201] (b! (not v0-18) L519 (set! v1-73 #f)) [v0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B31: - lw t9, enter-state(s7) ;; [202] (set! t9-19 enter-state) [] -> [t9: ] - lw v1, target-running-attack(s7);; [203] (set! v1-74 target-running-attack) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [204] (s.w! (+ self 72) v1-74) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [205] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [206] (set! v1-75 v0-19) [v0: object ] -> [v1: object ] -B32: -L519: - lw t9, turn-around?(s7) ;; [207] (set! t9-20 turn-around?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [208] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - beql s7, v0, L520 ;; [209] (bl! (not v0-20) L520 (no-delay!)) [v0: symbol ] -> [] -B33: - or v1, v0, r0 ;; [210] (set! v1-76 v0-20) [v0: symbol ] -> [v1: symbol ] - -B34: - lw v1, *display*(s7) ;; [211] (set! v1-77 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [212] (set! v1-78 (l.d (+ v1-77 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [213] (set! a0-59 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [214] (set! v1-79 (- v1-78 a0-59)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti a0, v1, 90 ;; [215] (set! v1-76 (>=.si v1-79 90)) [v1: time-frame ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B35: -L520: - beq s7, v1, L521 ;; [216] (b! (not v1-76) L521 (set! v1-80 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B36: - lwu v1, 108(s6) ;; [217] (set! v1-81 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - daddiu v1, v1, 60 ;; [218] (set! v1-82 (+ v1-81 60)) [v1: control-info ] -> [v1: vector ] - lwu a0, 108(s6) ;; [219] (set! a0-60 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lw a0, 2112(a0) ;; [220] (set! a0-61 (l.w (+ a0-60 2112))) [a0: control-info ] -> [a0: int ] - dsll a0, a0, 4 ;; [221] (set! a0-62 (sll a0-61 4)) [a0: int ] -> [a0: ] - daddiu a0, a0, 1852 ;; [222] (set! a0-63 (+ a0-62 1852)) - ;; [a0: ] -> [a0: ] - lwu a1, 108(s6) ;; [223] (set! a1-7 (l.wu (+ self 108))) [s6: target ] -> [a1: control-info ] - daddu a0, a0, a1 ;; [224] (set! a0-64 (+ a0-63 a1-7)) - ;; [a0: a1: control-info ] -> [a0: vector ] - lq a0, 0(a0) ;; [225] (set! a0-65 (l.q a0-64)) [a0: vector ] -> [a0: uint128 ] - sq a0, 0(v1) ;; [226] (s.q! v1-82 a0-65) [v1: vector a0: uint128 ] -> [] - lui v1, L786 ;; [227] (set! v1-83 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [228] (set! f0-3 (l.f v1-83)) [v1: ] -> [] - lwu v1, 108(s6) ;; [229] (set! v1-84 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 72(v1) ;; [230] (s.f! (+ v1-84 72) f0-3) [v1: control-info ] -> [] - lw t9, enter-state(s7) ;; [231] (set! t9-21 enter-state) [] -> [t9: ] - lw v1, target-turn-around(s7);; [232] (set! v1-85 target-turn-around) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [233] (s.w! (+ self 72) v1-85) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [234] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [235] (set! v1-86 v0-21) [v0: object ] -> [v1: object ] -B37: -L521: - lw t9, slide-down-test(s7);; [236] (set! t9-22 slide-down-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [237] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, fall-test(s7) ;; [238] (set! t9-23 fall-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [239] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - +L162: ld ra, 0(sp) - ld fp, 8(sp) jr ra daddiu sp, sp, 16 @@ -23595,4414 +7423,291 @@ L521: sll r0, r0, 0 sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-walk) - () - ((-> self state-hook)) - (when (= (-> self control ground-pat material) (pat-material ice)) - (target-effect-exit) - (remove-exit) - (go target-ice-walk) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons l1 r1) - ) - (and (>= (- (-> *display* base-frame-counter) (-> *TARGET-bank* wheel-timeout)) (-> self control unknown-dword30)) - (and (!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) (can-wheel?)) - ) - ) - (go target-wheel) - ) - (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) - (target-effect-exit) - (remove-exit) - (go target-duck-walk) - ) - (when (not (move-legs?)) - (target-effect-exit) - (remove-exit) - (go target-stance) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons circle) - ) - (can-feet?) - ) - (go target-attack) - ) - (if (can-hands? #t) - (go target-running-attack) - ) - (when (and (turn-around?) (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.3))) - (set! (-> self control transv quad) - (-> self control unknown-vector-array10 (-> self control unknown-int10) quad) - ) - (set! (-> self control transv w) 1.0) - (go target-turn-around) - ) - (slide-down-test) - (fall-test) - (none) - ) - -;;-*-OpenGOAL-End-*- - + (set! v1 (l.wu (+ s6 8))) + (set! v1 (l.d (+ v1 20))) + (set! a2 (l.d (+ a0 1004))) + (set! v1 (- v1 a2)) + (set! a2 (>=.si v1 300)) + (bl! (not a2) L162 (no-delay!)) + (set! v0 a2) + (set! v1 #x4605b05b) + (set! f0 (gpr->fpr v1)) + (set! f1 (l.f (+ a0 888))) + (set! f1 (abs.s f1)) + (b! (>=.s f0 f1) L161 (set! v1 #t)) + (set! v1 #f) +(label L161) + (bl! (not v1) L162 (no-delay!)) + (set! v0 v1) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 968))) + (set! a2 #t) + (call!) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (exit target-walk) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 - -L522: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lw t9, target-effect-exit(s7);; [ 0] (set! t9-0 target-effect-exit) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 1] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, target-state-hook-exit(s7);; [ 2] (set! t9-1 target-state-hook-exit) - ;; [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 3] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler (exit target-walk) () (target-effect-exit) (target-state-hook-exit) (none)) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-walk) +; .function (method 238 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;stack: total 0x00, fp? 0 ra? 0 ep? 1 ;; Warnings: -;; INFO: Return type mismatch surface vs none. +;; WARN: Type Propagation failed: Function (method 238 ashelin) has unknown type -;; s6-0: target B0: -L523: - lw v1, *display*(s7) ;; [ 0] (set! v1-0 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 1] (set! v1-1 (l.d (+ v1-0 780))) [v1: display ] -> [v1: time-frame ] - sd v1, 164(s6) ;; [ 2] (s.d! (+ self 164) v1-1) [v1: time-frame s6: target ] -> [] - lw v0, *walk-mods*(s7) ;; [ 3] (set! v0-0 *walk-mods*) [] -> [v0: surface ] - lwu v1, 108(s6) ;; [ 4] (set! v1-2 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - sw v0, 656(v1) ;; [ 5] (s.w! (+ v1-2 656) v0-0) [v0: surface v1: control-info ] -> [] +L163: + lwu v1, 600(a0) ;; [ 0] (set! v1 (l.wu (+ a0 600))) + andi v1, v1, 128 ;; [ 1] (set! v1 (logand v1 128)) + beql v1, r0, L164 ;; [ 2] (bl! (zero? v1) L164 (no-delay!)) +B1: + or v1, s7, r0 ;; [ 3] (set! v1 #f) + +B2: + lwu v1, 880(a0) ;; [ 4] (set! v1 (l.wu (+ a0 880))) + lwu v1, -4(v1) ;; [ 5] (set! v1 (l.wu (+ v1 -4))) + lw a3, target(s7) ;; [ 6] (set! a3 target) + dsubu a3, v1, a3 ;; [ 7] (set! v1 (= v1 a3)) + daddiu v1, s7, 4 + movn v1, s7, a3 +B3: +L164: + beq s7, v1, L165 ;; [ 8] (b! (not v1) L165 (nop!)) + sll r0, r0, 0 + +B4: + daddiu v0, s7, #t ;; [ 9] (set! v0 #t) + beq r0, r0, L169 ;; [ 10] (b! #t L169 (nop!)) + sll r0, r0, 0 + +B5: +L165: + lui v1, 18336 ;; [ 11] (set! v1 #x47a00000) + mtc1 f0, v1 ;; [ 12] (set! f0 (gpr->fpr v1)) + beq s7, a2, L166 ;; [ 13] (b! (not a2) L166 (set! v1 #f)) + or v1, s7, r0 + +B6: + lui v1, 17856 ;; [ 14] (set! v1 #x45c00000) + mtc1 f1, v1 ;; [ 15] (set! f1 (gpr->fpr v1)) + add.s f0, f1, f0 ;; [ 16] (set! f0 (+.s f1 f0)) + mfc1 v1, f0 ;; [ 17] (set! v1 (fpr->gpr f0)) +B7: +L166: + lwc1 f1, 884(a0) ;; [ 18] (set! f1 (l.f (+ a0 884))) + c.lt.s f0, f1 ;; [ 19] (b! (<.s f0 f1) L169 (set! v0 #f)) + bc1t L169 + or v0, s7, r0 + +B8: + lb v1, 900(a0) ;; [ 20] (set! v1 (l.b (+ a0 900))) + beq s7, a1, L168 ;; [ 21] (b! (not a1) L168 (nop!)) + sll r0, r0, 0 + +B9: + daddiu a0, v1, -1 ;; [ 22] (set! a0 (+ v1 -1)) + daddiu a1, s7, 4 ;; [ 23] (set! a1 (zero? a0)) + movn a1, s7, a0 + bnel s7, a1, L167 ;; [ 24] (bl! (truthy a1) L167 (no-delay!)) +B10: + or v0, a1, r0 ;; [ 25] (set! v0 a1) + +B11: + daddiu v1, v1, -4 ;; [ 26] (set! v1 (+ v1 -4)) + daddiu v0, s7, 4 ;; [ 27] (set! v0 (zero? v1)) + movn v0, s7, v1 +B12: +L167: + beq r0, r0, L169 ;; [ 28] (b! #t L169 (nop!)) + sll r0, r0, 0 + +B13: +L168: + daddiu v1, v1, -1 ;; [ 29] (set! v1 (+ v1 -1)) + daddiu v0, s7, 4 ;; [ 30] (set! v0 (zero? v1)) + movn v0, s7, v1 +B14: +L169: jr ra daddu sp, sp, r0 sll r0, r0, 0 sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-walk) - () - (set! (-> self state-time) (-> *display* base-frame-counter)) - (set! (-> self control unknown-surface00) *walk-mods*) - (none) - ) - -;;-*-OpenGOAL-End-*- +(label L163) + (set! v1 (l.wu (+ a0 600))) + (set! v1 (logand v1 128)) + (bl! (zero? v1) L164 (no-delay!)) + (set! v1 #f) + (set! v1 (l.wu (+ a0 880))) + (set! v1 (l.wu (+ v1 -4))) + (set! a3 target) + (set! v1 (= v1 a3)) +(label L164) + (b! (not v1) L165 (nop!)) + (set! v0 #t) + (b! #t L169 (nop!)) +(label L165) + (set! v1 #x47a00000) + (set! f0 (gpr->fpr v1)) + (b! (not a2) L166 (set! v1 #f)) + (set! v1 #x45c00000) + (set! f1 (gpr->fpr v1)) + (set! f0 (+.s f1 f0)) + (set! v1 (fpr->gpr f0)) +(label L166) + (set! f1 (l.f (+ a0 884))) + (b! (<.s f0 f1) L169 (set! v0 #f)) + (set! v1 (l.b (+ a0 900))) + (b! (not a1) L168 (nop!)) + (set! a0 (+ v1 -1)) + (set! a1 (zero? a0)) + (bl! (truthy a1) L167 (no-delay!)) + (set! v0 a1) + (set! v1 (+ v1 -4)) + (set! v0 (zero? v1)) +(label L167) + (b! #t L169 (nop!)) +(label L168) + (set! v1 (+ v1 -1)) + (set! v0 (zero? v1)) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-stance) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x90, fp? 1 ra? 1 ep? 1 - ;stack_vars: 48 bytes at 16 - ;gprs: gp s5 s4 s3 - ;fprs: f30 f28 f26 -;; v1-3: art-joint-anim v1-206: art-joint-anim v1-243: art-joint-anim s4-2: int -;; s5-0: int s6-0: target gp-0: ground-tween-info f0-57: float -;; f30-1: float -L524: - daddiu sp, sp, -144 - sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s3, 64(sp) - sq s4, 80(sp) - sq s5, 96(sp) - sq gp, 112(sp) - swc1 f26, 128(sp) - swc1 f28, 132(sp) - swc1 f30, 136(sp) -B0: - addiu s5, r0, 22 ;; [ 0] (set! s5-0 22) [] -> [s5: ] - lw v1, ground-tween-info(s7);; [ 1] (set! v1-0 ground-tween-info) [] -> [v1: ] - lwu t9, 16(v1) ;; [ 2] (set! t9-0 (l.wu (+ v1-0 16))) - ;; [v1: ] -> [t9: (function symbol type ground-tween-info) ] - daddiu a0, sp, 16 ;; [ 3] (set! a0-0 (+ sp-0 16)) [sp: ] -> [a0: ground-tween-info ] - lw a1, ground-tween-info(s7);; [ 4] (set! a1-0 ground-tween-info) [] -> [a1: ] - jalr ra, t9 ;; [ 5] (call! a0-0 a1-0) - ;; [a0: ground-tween-info a1: t9: (function symbol type ground-tween-info) ] -> [v0: ground-tween-info ] - sll v0, ra, 0 - - or gp, v0, r0 ;; [ 6] (set! gp-0 v0-0) [v0: ground-tween-info ] -> [gp: ground-tween-info ] - lwu v1, 120(s6) ;; [ 7] (set! v1-1 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 8] (set! v1-2 (l.w (+ v1-1 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 9] (b! (<=0.si v1-2) L525 (set! v1-3 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L525 - or v1, s7, r0 - -B1: - lwu v1, 120(s6) ;; [ 10] (set! v1-4 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 11] (set! v1-5 (l.wu (+ v1-4 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 12] (set! v1-3 (l.wu (+ v1-5 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B2: -L525: - lwu a0, 116(s6) ;; [ 13] (set! a0-1 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 14] (set! a0-2 (l.wu (+ a0-1 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 384(a0) ;; [ 15] (set! a0-3 (l.wu (+ a0-2 384))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [ 16] (set! a1-1 (= v1-3 a0-3)) [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L526 ;; [ 17] (bl! (truthy a1-1) L526 (no-delay!)) [a1: symbol ] -> [] -B3: - or a0, a1, r0 ;; [ 18] (set! a0-4 a1-1) [a1: symbol ] -> [a0: symbol ] - -B4: - lwu a0, 116(s6) ;; [ 19] (set! a0-5 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 20] (set! a0-6 (l.wu (+ a0-5 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 388(a0) ;; [ 21] (set! a0-7 (l.wu (+ a0-6 388))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 22] (set! a0-4 (= v1-3 a0-7)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B5: -L526: - beq s7, a0, L527 ;; [ 23] (b! (not a0-4) L527 (set! v1-6 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B6: - addiu s5, r0, 45 ;; [ 24] (set! s5-0 45) [] -> [s5: ] - or v1, s5, r0 ;; [ 25] (set! v1-7 s5-0) [s5: ] -> [v1: ] - beq r0, r0, L569 ;; [ 26] (b! #t L569 (nop!)) [] -> [] - sll r0, r0, 0 - -B7: -L527: - lwu v1, 120(s6) ;; [ 27] (set! v1-8 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 28] (set! v1-9 (l.w (+ v1-8 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 29] (b! (<=0.si v1-9) L528 (set! v1-10 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L528 - or v1, s7, r0 - -B8: - lwu v1, 120(s6) ;; [ 30] (set! v1-11 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 31] (set! v1-12 (l.wu (+ v1-11 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 32] (set! v1-10 (l.wu (+ v1-12 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B9: -L528: - lwu a0, 116(s6) ;; [ 33] (set! a0-8 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 34] (set! a0-9 (l.wu (+ a0-8 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 312(a0) ;; [ 35] (set! a0-10 (l.wu (+ a0-9 312))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 36] (set! a0-11 (= v1-10 a0-10)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L530 ;; [ 37] (b! (not a0-11) L530 (set! v1-13 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B10: - lwu v1, 120(s6) ;; [ 38] (set! v1-14 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 39] (set! v1-15 (l.wu (+ v1-14 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 40] (set! a0-12 (+ v1-15 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 41] (set! v1-16 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 42] (set! v1-17 (l.wu (+ v1-16 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 316(v1) ;; [ 43] (set! v1-18 (l.wu (+ v1-17 316))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 44] (s.w! (+ a0-12 12) v1-18) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [ 45] (set! v1-19 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 46] (set! v1-20 (l.wu (+ v1-19 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 316(v1) ;; [ 47] (set! v1-21 (l.wu (+ v1-20 316))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 48] (set! (the-as art-joint-anim v1-22) (l.wu (+ v1-21 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 49] (set! v1-23 (l.h (+ v1-22 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 50] (set! v1-24 (+ v1-23 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 51] (set! f0-0 (gpr->fpr v1-24)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 52] (set! f0-1 (i2f f0-0)) [] -> [] - swc1 f0, 24(a0) ;; [ 53] (s.f! (+ a0-12 24) f0-1) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 54] (set! v1-25 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 55] (set! f0-2 (l.f v1-25)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 56] (s.f! (+ a0-12 28) f0-2) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 57] (set! f0-3 0) [] -> [] - swc1 f0, 16(a0) ;; [ 58] (s.f! (+ a0-12 16) f0-3) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [ 59] (set! t9-1 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 60] (set! v1-26 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 61] (set! v1-27 (l.wu (+ v1-26 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 316(v1) ;; [ 62] (set! a1-2 (l.wu (+ v1-27 316))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [ 63] (set! a2-0 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 64] (call! a0-12 a1-2 a2-0) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 65] (set! v1-28 v0-1) [v0: int ] -> [v1: int ] -B11: -L529: - lwu s6, 44(s6) ;; [ 66] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 67] (set! v1-29 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 68] (set! v1-30 (l.wu (+ v1-29 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 69] (set! a0-13 (+ v1-30 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [ 70] (set! v1-31 (l.wu (+ a0-13 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 71] (set! v1-32 (l.wu (+ v1-31 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 72] (set! v1-33 (l.h (+ v1-32 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 73] (set! v1-34 (+ v1-33 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 74] (set! f0-4 (gpr->fpr v1-34)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 75] (set! f0-5 (i2f f0-4)) [] -> [] - swc1 f0, 24(a0) ;; [ 76] (s.f! (+ a0-13 24) f0-5) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 77] (set! v1-35 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 78] (set! f0-6 (l.f v1-35)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 79] (s.f! (+ a0-13 28) f0-6) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 80] (set! t9-2 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 81] (set! a1-3 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 82] (set! a2-1 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 83] (call! a0-13 a1-3 a2-1) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 84] (set! v1-36 v0-2) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [ 85] (set! t9-3 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 86] (set! a0-14 0) [] -> [a0: ] - jalr ra, t9 ;; [ 87] (call! a0-14) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L529 ;; [ 88] (b! (not v0-3) L529 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B12: - or v1, s7, r0 ;; [ 89] (set! v1-37 #f) [] -> [v1: '#f ] - beq r0, r0, L569 ;; [ 90] (b! #t L569 (nop!)) [] -> [] - sll r0, r0, 0 - -B13: -L530: - lwu v1, 120(s6) ;; [ 91] (set! v1-38 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 92] (set! v1-39 (l.w (+ v1-38 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 93] (b! (<=0.si v1-39) L531 (set! v1-40 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L531 - or v1, s7, r0 - -B14: - lwu v1, 120(s6) ;; [ 94] (set! v1-41 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 95] (set! v1-42 (l.wu (+ v1-41 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 96] (set! v1-40 (l.wu (+ v1-42 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B15: -L531: - lwu a0, 116(s6) ;; [ 97] (set! a0-15 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 98] (set! a0-16 (l.wu (+ a0-15 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 232(a0) ;; [ 99] (set! a0-17 (l.wu (+ a0-16 232))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [100] (set! a0-18 (= v1-40 a0-17)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L536 ;; [101] (b! (not a0-18) L536 (set! v1-43 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B16: - lw t9, rand-vu-percent?(s7);; [102] (set! t9-4 rand-vu-percent?) [] -> [t9: (function float symbol) ] - lui v1, L751 ;; [103] (set! v1-44 L751) [] -> [v1: ] - ori v1, v1, L751 - addu v1, fp, v1 - lw a0, 0(v1) ;; [104] (set! a0-19 (l.w v1-44)) [v1: ] -> [a0: int ] - jalr ra, t9 ;; [105] (call! a0-19) [a0: int t9: (function float symbol) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L533 ;; [106] (b! (not v0-4) L533 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B17: - lwu v1, 120(s6) ;; [107] (set! v1-45 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [108] (set! v1-46 (l.wu (+ v1-45 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [109] (set! a0-20 (+ v1-46 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [110] (set! v1-47 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [111] (set! v1-48 (l.wu (+ v1-47 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 240(v1) ;; [112] (set! v1-49 (l.wu (+ v1-48 240))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [113] (s.w! (+ a0-20 12) v1-49) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [114] (set! v1-50 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [115] (set! v1-51 (l.wu (+ v1-50 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 240(v1) ;; [116] (set! v1-52 (l.wu (+ v1-51 240))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [117] (set! (the-as art-joint-anim v1-53) (l.wu (+ v1-52 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [118] (set! v1-54 (l.h (+ v1-53 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [119] (set! v1-55 (+ v1-54 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [120] (set! f0-7 (gpr->fpr v1-55)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [121] (set! f0-8 (i2f f0-7)) [] -> [] - swc1 f0, 24(a0) ;; [122] (s.f! (+ a0-20 24) f0-8) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [123] (set! v1-56 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [124] (set! f0-9 (l.f v1-56)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [125] (s.f! (+ a0-20 28) f0-9) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [126] (set! f0-10 0) [] -> [] - swc1 f0, 16(a0) ;; [127] (s.f! (+ a0-20 16) f0-10) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [128] (set! t9-5 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [129] (set! v1-57 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [130] (set! v1-58 (l.wu (+ v1-57 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 240(v1) ;; [131] (set! a1-4 (l.wu (+ v1-58 240))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [132] (set! a2-2 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [133] (call! a0-20 a1-4 a2-2) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [134] (set! v1-59 v0-5) [v0: int ] -> [v1: int ] -B18: -L532: - lwu s6, 44(s6) ;; [135] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [136] (set! v1-60 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [137] (set! v1-61 (l.wu (+ v1-60 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [138] (set! a0-21 (+ v1-61 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [139] (set! v1-62 (l.wu (+ a0-21 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [140] (set! v1-63 (l.wu (+ v1-62 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [141] (set! v1-64 (l.h (+ v1-63 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [142] (set! v1-65 (+ v1-64 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [143] (set! f0-11 (gpr->fpr v1-65)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [144] (set! f0-12 (i2f f0-11)) [] -> [] - swc1 f0, 24(a0) ;; [145] (s.f! (+ a0-21 24) f0-12) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [146] (set! v1-66 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [147] (set! f0-13 (l.f v1-66)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [148] (s.f! (+ a0-21 28) f0-13) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [149] (set! t9-6 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [150] (set! a1-5 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [151] (set! a2-3 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [152] (call! a0-21 a1-5 a2-3) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [153] (set! v1-67 v0-6) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [154] (set! t9-7 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [155] (set! a0-22 0) [] -> [a0: ] - jalr ra, t9 ;; [156] (call! a0-22) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L532 ;; [157] (b! (not v0-7) L532 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B19: - or v1, s7, r0 ;; [158] (set! v1-68 #f) [] -> [v1: '#f ] - beq r0, r0, L535 ;; [159] (b! #t L535 (nop!)) [] -> [] - sll r0, r0, 0 - -B20: -L533: - lwu v1, 120(s6) ;; [160] (set! v1-69 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [161] (set! v1-70 (l.wu (+ v1-69 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [162] (set! a0-23 (+ v1-70 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [163] (set! v1-71 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [164] (set! v1-72 (l.wu (+ v1-71 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 236(v1) ;; [165] (set! v1-73 (l.wu (+ v1-72 236))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [166] (s.w! (+ a0-23 12) v1-73) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [167] (set! v1-74 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [168] (set! v1-75 (l.wu (+ v1-74 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 236(v1) ;; [169] (set! v1-76 (l.wu (+ v1-75 236))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [170] (set! (the-as art-joint-anim v1-77) (l.wu (+ v1-76 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [171] (set! v1-78 (l.h (+ v1-77 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [172] (set! v1-79 (+ v1-78 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [173] (set! f0-14 (gpr->fpr v1-79)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [174] (set! f0-15 (i2f f0-14)) [] -> [] - swc1 f0, 24(a0) ;; [175] (s.f! (+ a0-23 24) f0-15) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [176] (set! v1-80 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [177] (set! f0-16 (l.f v1-80)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [178] (s.f! (+ a0-23 28) f0-16) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [179] (set! f0-17 0) [] -> [] - swc1 f0, 16(a0) ;; [180] (s.f! (+ a0-23 16) f0-17) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [181] (set! t9-8 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [182] (set! v1-81 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [183] (set! v1-82 (l.wu (+ v1-81 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 236(v1) ;; [184] (set! a1-6 (l.wu (+ v1-82 236))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [185] (set! a2-4 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [186] (call! a0-23 a1-6 a2-4) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [187] (set! v1-83 v0-8) [v0: int ] -> [v1: int ] -B21: -L534: - lwu s6, 44(s6) ;; [188] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [189] (set! v1-84 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [190] (set! v1-85 (l.wu (+ v1-84 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [191] (set! a0-24 (+ v1-85 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [192] (set! v1-86 (l.wu (+ a0-24 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [193] (set! v1-87 (l.wu (+ v1-86 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [194] (set! v1-88 (l.h (+ v1-87 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [195] (set! v1-89 (+ v1-88 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [196] (set! f0-18 (gpr->fpr v1-89)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [197] (set! f0-19 (i2f f0-18)) [] -> [] - swc1 f0, 24(a0) ;; [198] (s.f! (+ a0-24 24) f0-19) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [199] (set! v1-90 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [200] (set! f0-20 (l.f v1-90)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [201] (s.f! (+ a0-24 28) f0-20) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [202] (set! t9-9 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [203] (set! a1-7 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [204] (set! a2-5 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [205] (call! a0-24 a1-7 a2-5) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [206] (set! v1-91 v0-9) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [207] (set! t9-10 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [208] (set! a0-25 0) [] -> [a0: ] - jalr ra, t9 ;; [209] (call! a0-25) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L534 ;; [210] (b! (not v0-10) L534 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B22: - or v1, s7, r0 ;; [211] (set! v1-92 #f) [] -> [v1: '#f ] -B23: -L535: - beq r0, r0, L569 ;; [212] (b! #t L569 (nop!)) [] -> [] - sll r0, r0, 0 - -B24: -L536: - lwu v1, 120(s6) ;; [213] (set! v1-93 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [214] (set! v1-94 (l.w (+ v1-93 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [215] (b! (<=0.si v1-94) L537 (set! v1-95 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L537 - or v1, s7, r0 - -B25: - lwu v1, 120(s6) ;; [216] (set! v1-96 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [217] (set! v1-97 (l.wu (+ v1-96 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [218] (set! v1-95 (l.wu (+ v1-97 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B26: -L537: - lwu a0, 116(s6) ;; [219] (set! a0-26 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [220] (set! a0-27 (l.wu (+ a0-26 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 340(a0) ;; [221] (set! a0-28 (l.wu (+ a0-27 340))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [222] (set! a0-29 (= v1-95 a0-28)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L539 ;; [223] (b! (not a0-29) L539 (set! v1-98 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B27: - lwu v1, 120(s6) ;; [224] (set! v1-99 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [225] (set! v1-100 (l.wu (+ v1-99 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [226] (set! a0-30 (+ v1-100 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [227] (set! v1-101 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [228] (set! v1-102 (l.wu (+ v1-101 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 344(v1) ;; [229] (set! v1-103 (l.wu (+ v1-102 344))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [230] (s.w! (+ a0-30 12) v1-103) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [231] (set! v1-104 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [232] (set! v1-105 (l.wu (+ v1-104 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 344(v1) ;; [233] (set! v1-106 (l.wu (+ v1-105 344))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [234] (set! (the-as art-joint-anim v1-107) (l.wu (+ v1-106 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [235] (set! v1-108 (l.h (+ v1-107 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [236] (set! v1-109 (+ v1-108 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [237] (set! f0-21 (gpr->fpr v1-109)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [238] (set! f0-22 (i2f f0-21)) [] -> [] - swc1 f0, 24(a0) ;; [239] (s.f! (+ a0-30 24) f0-22) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [240] (set! v1-110 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [241] (set! f0-23 (l.f v1-110)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [242] (s.f! (+ a0-30 28) f0-23) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [243] (set! f0-24 0) [] -> [] - swc1 f0, 16(a0) ;; [244] (s.f! (+ a0-30 16) f0-24) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [245] (set! t9-11 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [246] (set! v1-111 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [247] (set! v1-112 (l.wu (+ v1-111 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 344(v1) ;; [248] (set! a1-8 (l.wu (+ v1-112 344))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [249] (set! a2-6 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [250] (call! a0-30 a1-8 a2-6) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [251] (set! v1-113 v0-11) [v0: int ] -> [v1: int ] -B28: -L538: - lwu s6, 44(s6) ;; [252] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [253] (set! v1-114 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [254] (set! v1-115 (l.wu (+ v1-114 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [255] (set! a0-31 (+ v1-115 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [256] (set! v1-116 (l.wu (+ a0-31 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [257] (set! v1-117 (l.wu (+ v1-116 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [258] (set! v1-118 (l.h (+ v1-117 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [259] (set! v1-119 (+ v1-118 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [260] (set! f0-25 (gpr->fpr v1-119)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [261] (set! f0-26 (i2f f0-25)) [] -> [] - swc1 f0, 24(a0) ;; [262] (s.f! (+ a0-31 24) f0-26) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [263] (set! v1-120 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [264] (set! f0-27 (l.f v1-120)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [265] (s.f! (+ a0-31 28) f0-27) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [266] (set! t9-12 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [267] (set! a1-9 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [268] (set! a2-7 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [269] (call! a0-31 a1-9 a2-7) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [270] (set! v1-121 v0-12) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [271] (set! t9-13 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [272] (set! a0-32 0) [] -> [a0: ] - jalr ra, t9 ;; [273] (call! a0-32) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L538 ;; [274] (b! (not v0-13) L538 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B29: - or v1, s7, r0 ;; [275] (set! v1-122 #f) [] -> [v1: '#f ] - beq r0, r0, L569 ;; [276] (b! #t L569 (nop!)) [] -> [] - sll r0, r0, 0 - -B30: -L539: - lwu v1, 120(s6) ;; [277] (set! v1-123 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [278] (set! v1-124 (l.w (+ v1-123 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [279] (b! (<=0.si v1-124) L540 (set! v1-125 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L540 - or v1, s7, r0 - -B31: - lwu v1, 120(s6) ;; [280] (set! v1-126 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [281] (set! v1-127 (l.wu (+ v1-126 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [282] (set! v1-125 (l.wu (+ v1-127 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B32: -L540: - lwu a0, 116(s6) ;; [283] (set! a0-33 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [284] (set! a0-34 (l.wu (+ a0-33 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 364(a0) ;; [285] (set! a0-35 (l.wu (+ a0-34 364))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [286] (set! a0-36 (= v1-125 a0-35)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L542 ;; [287] (b! (not a0-36) L542 (set! v1-128 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B33: - lwu v1, 120(s6) ;; [288] (set! v1-129 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [289] (set! v1-130 (l.wu (+ v1-129 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [290] (set! a0-37 (+ v1-130 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [291] (set! v1-131 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [292] (set! v1-132 (l.wu (+ v1-131 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 368(v1) ;; [293] (set! v1-133 (l.wu (+ v1-132 368))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [294] (s.w! (+ a0-37 12) v1-133) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [295] (set! v1-134 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [296] (set! v1-135 (l.wu (+ v1-134 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 368(v1) ;; [297] (set! v1-136 (l.wu (+ v1-135 368))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [298] (set! (the-as art-joint-anim v1-137) (l.wu (+ v1-136 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [299] (set! v1-138 (l.h (+ v1-137 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [300] (set! v1-139 (+ v1-138 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [301] (set! f0-28 (gpr->fpr v1-139)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [302] (set! f0-29 (i2f f0-28)) [] -> [] - swc1 f0, 24(a0) ;; [303] (s.f! (+ a0-37 24) f0-29) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [304] (set! v1-140 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [305] (set! f0-30 (l.f v1-140)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [306] (s.f! (+ a0-37 28) f0-30) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [307] (set! f0-31 0) [] -> [] - swc1 f0, 16(a0) ;; [308] (s.f! (+ a0-37 16) f0-31) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [309] (set! t9-14 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [310] (set! v1-141 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [311] (set! v1-142 (l.wu (+ v1-141 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 368(v1) ;; [312] (set! a1-10 (l.wu (+ v1-142 368))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [313] (set! a2-8 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [314] (call! a0-37 a1-10 a2-8) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [315] (set! v1-143 v0-14) [v0: int ] -> [v1: int ] -B34: -L541: - lwu s6, 44(s6) ;; [316] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [317] (set! v1-144 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [318] (set! v1-145 (l.wu (+ v1-144 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [319] (set! a0-38 (+ v1-145 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [320] (set! v1-146 (l.wu (+ a0-38 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [321] (set! v1-147 (l.wu (+ v1-146 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [322] (set! v1-148 (l.h (+ v1-147 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [323] (set! v1-149 (+ v1-148 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [324] (set! f0-32 (gpr->fpr v1-149)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [325] (set! f0-33 (i2f f0-32)) [] -> [] - swc1 f0, 24(a0) ;; [326] (s.f! (+ a0-38 24) f0-33) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [327] (set! v1-150 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [328] (set! f0-34 (l.f v1-150)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [329] (s.f! (+ a0-38 28) f0-34) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [330] (set! t9-15 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [331] (set! a1-11 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [332] (set! a2-9 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [333] (call! a0-38 a1-11 a2-9) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [334] (set! v1-151 v0-15) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [335] (set! t9-16 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [336] (set! a0-39 0) [] -> [a0: ] - jalr ra, t9 ;; [337] (call! a0-39) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L541 ;; [338] (b! (not v0-16) L541 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B35: - or v1, s7, r0 ;; [339] (set! v1-152 #f) [] -> [v1: '#f ] - addiu s5, r0, 0 ;; [340] (set! s5-0 0) [] -> [s5: ] - or v1, s5, r0 ;; [341] (set! v1-153 s5-0) [s5: ] -> [v1: ] - beq r0, r0, L569 ;; [342] (b! #t L569 (nop!)) [] -> [] - sll r0, r0, 0 - -B36: -L542: - lwu v1, 120(s6) ;; [343] (set! v1-154 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [344] (set! v1-155 (l.w (+ v1-154 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [345] (b! (<=0.si v1-155) L543 (set! v1-156 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L543 - or v1, s7, r0 - -B37: - lwu v1, 120(s6) ;; [346] (set! v1-157 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [347] (set! v1-158 (l.wu (+ v1-157 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [348] (set! v1-156 (l.wu (+ v1-158 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B38: -L543: - lwu a0, 116(s6) ;; [349] (set! a0-40 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [350] (set! a0-41 (l.wu (+ a0-40 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 264(a0) ;; [351] (set! a0-42 (l.wu (+ a0-41 264))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [352] (set! a0-43 (= v1-156 a0-42)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L551 ;; [353] (b! (not a0-43) L551 (set! v1-159 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B39: - lwu v1, 108(s6) ;; [354] (set! v1-160 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 1720(v1) ;; [355] (set! f0-35 (l.f (+ v1-160 1720))) [v1: control-info ] -> [] - lwu v1, 108(s6) ;; [356] (set! v1-161 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [357] (s.f! (+ v1-161 1724) f0-35) [v1: control-info ] -> [] - lw v1, *walk-no-turn-mods*(s7);; [358] (set! v1-162 *walk-no-turn-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [359] (set! a0-44 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [360] (s.w! (+ a0-44 656) v1-162) [v1: surface a0: control-info ] -> [] - lwu v1, 120(s6) ;; [361] (set! v1-163 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [362] (set! v1-164 (l.wu (+ v1-163 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s4, r0, v1 ;; [363] (set! s4-0 (+ v1-164 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s4: joint-control-channel ] - lw t9, rand-vu-percent?(s7);; [364] (set! t9-17 rand-vu-percent?) [] -> [t9: (function float symbol) ] - lui v1, L751 ;; [365] (set! v1-165 L751) [] -> [v1: ] - ori v1, v1, L751 - addu v1, fp, v1 - lw a0, 0(v1) ;; [366] (set! a0-45 (l.w v1-165)) [v1: ] -> [a0: int ] - jalr ra, t9 ;; [367] (call! a0-45) [a0: int t9: (function float symbol) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L544 ;; [368] (b! (not v0-17) L544 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B40: - lwu v1, 116(s6) ;; [369] (set! v1-166 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [370] (set! v1-167 (l.wu (+ v1-166 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 272(v1) ;; [371] (set! v1-168 (l.wu (+ v1-167 272))) [v1: art-group ] -> [v1: art-element ] - beq r0, r0, L545 ;; [372] (b! #t L545 (nop!)) [] -> [] - sll r0, r0, 0 - -B41: -L544: - lwu v1, 116(s6) ;; [373] (set! v1-169 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [374] (set! v1-170 (l.wu (+ v1-169 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 268(v1) ;; [375] (set! v1-168 (l.wu (+ v1-170 268))) [v1: art-group ] -> [v1: art-element ] -B42: -L545: - sw v1, 12(s4) ;; [376] (s.w! (+ s4-0 12) v1-168) [v1: art-element s4: joint-control-channel ] -> [] - lw t9, rand-vu-percent?(s7);; [377] (set! t9-18 rand-vu-percent?) [] -> [t9: (function float symbol) ] - lui v1, L751 ;; [378] (set! v1-171 L751) [] -> [v1: ] - ori v1, v1, L751 - addu v1, fp, v1 - lw a0, 0(v1) ;; [379] (set! a0-46 (l.w v1-171)) [v1: ] -> [a0: int ] - jalr ra, t9 ;; [380] (call! a0-46) [a0: int t9: (function float symbol) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L546 ;; [381] (b! (not v0-18) L546 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B43: - lwu v1, 116(s6) ;; [382] (set! v1-172 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [383] (set! v1-173 (l.wu (+ v1-172 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 272(v1) ;; [384] (set! v1-174 (l.wu (+ v1-173 272))) [v1: art-group ] -> [v1: art-element ] - beq r0, r0, L547 ;; [385] (b! #t L547 (nop!)) [] -> [] - sll r0, r0, 0 - -B44: -L546: - lwu v1, 116(s6) ;; [386] (set! v1-175 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [387] (set! v1-176 (l.wu (+ v1-175 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 268(v1) ;; [388] (set! v1-174 (l.wu (+ v1-176 268))) [v1: art-group ] -> [v1: art-element ] -B45: -L547: - lwu v1, 44(v1) ;; [389] (set! (the-as art-joint-anim v1-177) (l.wu (+ (the-as art-joint-anim v1-174) 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [390] (set! v1-178 (l.h (+ v1-177 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [391] (set! v1-179 (+ v1-178 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [392] (set! f0-36 (gpr->fpr v1-179)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [393] (set! f0-37 (i2f f0-36)) [] -> [] - swc1 f0, 24(s4) ;; [394] (s.f! (+ s4-0 24) f0-37) [s4: joint-control-channel ] -> [] - lui v1, L786 ;; [395] (set! v1-180 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [396] (set! f0-38 (l.f v1-180)) [v1: ] -> [] - swc1 f0, 28(s4) ;; [397] (s.f! (+ s4-0 28) f0-38) [s4: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [398] (set! f0-39 0) [] -> [] - swc1 f0, 16(s4) ;; [399] (s.f! (+ s4-0 16) f0-39) [s4: joint-control-channel ] -> [] - lw s3, joint-control-channel-group!(s7);; [400] (set! s3-0 joint-control-channel-group!) - ;; [] -> [s3: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lw t9, rand-vu-percent?(s7);; [401] (set! t9-19 rand-vu-percent?) [] -> [t9: (function float symbol) ] - lui v1, L751 ;; [402] (set! v1-181 L751) [] -> [v1: ] - ori v1, v1, L751 - addu v1, fp, v1 - lw a0, 0(v1) ;; [403] (set! a0-47 (l.w v1-181)) [v1: ] -> [a0: int ] - jalr ra, t9 ;; [404] (call! a0-47) [a0: int t9: (function float symbol) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L548 ;; [405] (b! (not v0-19) L548 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B46: - lwu v1, 116(s6) ;; [406] (set! v1-182 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [407] (set! v1-183 (l.wu (+ v1-182 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 272(v1) ;; [408] (set! a1-12 (l.wu (+ v1-183 272))) [v1: art-group ] -> [a1: art-element ] - beq r0, r0, L549 ;; [409] (b! #t L549 (nop!)) [] -> [] - sll r0, r0, 0 - -B47: -L548: - lwu v1, 116(s6) ;; [410] (set! v1-184 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [411] (set! v1-185 (l.wu (+ v1-184 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 268(v1) ;; [412] (set! a1-12 (l.wu (+ v1-185 268))) [v1: art-group ] -> [a1: art-element ] -B48: -L549: - lw a2, num-func-seek!(s7) ;; [413] (set! a2-10 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or t9, s3, r0 ;; [414] (set! t9-20 s3-0) - ;; [s3: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a0, s4, r0 ;; [415] (set! a0-48 s4-0) [s4: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [416] (call! a0-48 a1-12 a2-10) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [417] (set! v1-186 v0-20) [v0: int ] -> [v1: int ] -B49: -L550: - lw t9, seek(s7) ;; [418] (set! t9-21 seek) [] -> [t9: (function float float float float) ] - lwu v1, 108(s6) ;; [419] (set! v1-187 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 1724(v1) ;; [420] (set! f0-40 (l.f (+ v1-187 1724))) [v1: control-info ] -> [] - mfc1 a0, f0 ;; [421] (set! a0-49 (fpr->gpr f0-40)) [] -> [a0: float ] - lui v1, L814 ;; [422] (set! v1-188 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw a1, 0(v1) ;; [423] (set! a1-13 (l.w v1-188)) [v1: ] -> [a1: int ] - lw v1, *display*(s7) ;; [424] (set! v1-189 *display*) [] -> [v1: display ] - lwc1 f0, 904(v1) ;; [425] (set! f0-41 (l.f (+ v1-189 904))) [v1: display ] -> [] - mfc1 a2, f0 ;; [426] (set! a2-11 (fpr->gpr f0-41)) [] -> [a2: float ] - jalr ra, t9 ;; [427] (call! a0-49 a1-13 a2-11) - ;; [a0: float a1: int a2: float t9: (function float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [428] (set! f0-42 (gpr->fpr v0-21)) [v0: float ] -> [] - lwu v1, 108(s6) ;; [429] (set! v1-190 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [430] (s.f! (+ v1-190 1724) f0-42) [v1: control-info ] -> [] - lwu s6, 44(s6) ;; [431] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [432] (set! v1-191 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [433] (set! v1-192 (l.wu (+ v1-191 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [434] (set! a0-50 (+ v1-192 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [435] (set! v1-193 (l.wu (+ a0-50 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [436] (set! v1-194 (l.wu (+ v1-193 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [437] (set! v1-195 (l.h (+ v1-194 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [438] (set! v1-196 (+ v1-195 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [439] (set! f0-43 (gpr->fpr v1-196)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [440] (set! f0-44 (i2f f0-43)) [] -> [] - swc1 f0, 24(a0) ;; [441] (s.f! (+ a0-50 24) f0-44) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [442] (set! v1-197 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [443] (set! f0-45 (l.f v1-197)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [444] (s.f! (+ a0-50 28) f0-45) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [445] (set! t9-22 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [446] (set! a1-14 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [447] (set! a2-12 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [448] (call! a0-50 a1-14 a2-12) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [449] (set! v1-198 v0-22) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [450] (set! t9-23 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [451] (set! a0-51 0) [] -> [a0: ] - jalr ra, t9 ;; [452] (call! a0-51) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L550 ;; [453] (b! (not v0-23) L550 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B50: - or v1, s7, r0 ;; [454] (set! v1-199 #f) [] -> [v1: '#f ] - lw v1, *walk-mods*(s7) ;; [455] (set! v1-200 *walk-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [456] (set! a0-52 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [457] (s.w! (+ a0-52 656) v1-200) [v1: surface a0: control-info ] -> [] - mtc1 f0, r0 ;; [458] (set! f0-46 0) [] -> [] - lwu v1, 108(s6) ;; [459] (set! v1-201 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [460] (s.f! (+ v1-201 1724) f0-46) [v1: control-info ] -> [] - lwu a0, 108(s6) ;; [461] (set! a0-53 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu v1, -4(a0) ;; [462] (set! v1-202 (l.wu (+ a0-53 -4))) - ;; [a0: control-info ] -> [v1: ] - lwu t9, 100(v1) ;; [463] (set! t9-24 (l.wu (+ v1-202 100))) - ;; [v1: ] -> [t9: ] - jalr ra, t9 ;; [464] (call! a0-53) - ;; [a0: control-info t9: ] -> [v0: quaternion ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [465] (set! v1-203 v0-24) [v0: quaternion ] -> [v1: quaternion ] - beq r0, r0, L569 ;; [466] (b! #t L569 (nop!)) [] -> [] - sll r0, r0, 0 - -B51: -L551: - lwu v1, 120(s6) ;; [467] (set! v1-204 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [468] (set! v1-205 (l.w (+ v1-204 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [469] (b! (<=0.si v1-205) L552 (set! v1-206 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L552 - or v1, s7, r0 - -B52: - lwu v1, 120(s6) ;; [470] (set! v1-207 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [471] (set! v1-208 (l.wu (+ v1-207 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [472] (set! v1-206 (l.wu (+ v1-208 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B53: -L552: - lwu a0, 116(s6) ;; [473] (set! a0-54 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [474] (set! a0-55 (l.wu (+ a0-54 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 152(a0) ;; [475] (set! a0-56 (l.wu (+ a0-55 152))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [476] (set! a1-15 (= v1-206 a0-56)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L553 ;; [477] (bl! (truthy a1-15) L553 (no-delay!)) [a1: symbol ] -> [] -B54: - or a0, a1, r0 ;; [478] (set! a0-57 a1-15) [a1: symbol ] -> [a0: symbol ] - -B55: - lwu a0, 116(s6) ;; [479] (set! a0-58 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [480] (set! a0-59 (l.wu (+ a0-58 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 156(a0) ;; [481] (set! a0-60 (l.wu (+ a0-59 156))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [482] (set! a0-57 (= v1-206 a0-60)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B56: -L553: - beq s7, a0, L555 ;; [483] (b! (not a0-57) L555 (set! v1-209 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B57: - lw t9, ja-channel-push!(s7);; [484] (set! t9-25 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [485] (set! a0-61 1) [] -> [a0: ] - addiu a1, r0, 12 ;; [486] (set! a1-16 12) [] -> [a1: ] - jalr ra, t9 ;; [487] (call! a0-61 a1-16) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [488] (set! v1-210 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [489] (set! v1-211 (l.wu (+ v1-210 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [490] (set! a0-62 (+ v1-211 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [491] (set! v1-212 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [492] (set! v1-213 (l.wu (+ v1-212 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 148(v1) ;; [493] (set! v1-214 (l.wu (+ v1-213 148))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [494] (s.w! (+ a0-62 12) v1-214) [v1: art-element a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [495] (set! f0-47 0) [] -> [] - swc1 f0, 24(a0) ;; [496] (s.f! (+ a0-62 24) f0-47) [a0: joint-control-channel ] -> [] - lui v1, L754 ;; [497] (set! v1-215 L754) [] -> [v1: ] - ori v1, v1, L754 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [498] (set! f0-48 (l.f v1-215)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [499] (s.f! (+ a0-62 28) f0-48) [a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [500] (set! v1-216 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [501] (set! v1-217 (l.wu (+ v1-216 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 148(v1) ;; [502] (set! v1-218 (l.wu (+ v1-217 148))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [503] (set! (the-as art-joint-anim v1-219) (l.wu (+ v1-218 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [504] (set! v1-220 (l.h (+ v1-219 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [505] (set! v1-221 (+ v1-220 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [506] (set! f0-49 (gpr->fpr v1-221)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [507] (set! f0-50 (i2f f0-49)) [] -> [] - swc1 f0, 16(a0) ;; [508] (s.f! (+ a0-62 16) f0-50) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [509] (set! t9-26 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [510] (set! v1-222 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [511] (set! v1-223 (l.wu (+ v1-222 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 148(v1) ;; [512] (set! a1-17 (l.wu (+ v1-223 148))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [513] (set! a2-13 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [514] (call! a0-62 a1-17 a2-13) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [515] (set! v1-224 v0-26) [v0: int ] -> [v1: int ] -B58: -L554: - lwu s6, 44(s6) ;; [516] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [517] (set! v1-225 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [518] (set! v1-226 (l.wu (+ v1-225 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [519] (set! a0-63 (+ v1-226 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [520] (set! f0-51 0) [] -> [] - swc1 f0, 24(a0) ;; [521] (s.f! (+ a0-63 24) f0-51) [a0: joint-control-channel ] -> [] - lui v1, L754 ;; [522] (set! v1-227 L754) [] -> [v1: ] - ori v1, v1, L754 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [523] (set! f0-52 (l.f v1-227)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [524] (s.f! (+ a0-63 28) f0-52) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [525] (set! t9-27 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [526] (set! a1-18 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [527] (set! a2-14 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [528] (call! a0-63 a1-18 a2-14) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [529] (set! v1-228 v0-27) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [530] (set! t9-28 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [531] (set! a0-64 0) [] -> [a0: ] - jalr ra, t9 ;; [532] (call! a0-64) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L554 ;; [533] (b! (not v0-28) L554 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B59: - or v1, s7, r0 ;; [534] (set! v1-229 #f) [] -> [v1: '#f ] - addiu s5, r0, 12 ;; [535] (set! s5-0 12) [] -> [s5: ] - or v1, s5, r0 ;; [536] (set! v1-230 s5-0) [s5: ] -> [v1: ] - beq r0, r0, L569 ;; [537] (b! #t L569 (nop!)) [] -> [] - sll r0, r0, 0 - -B60: -L555: - lwu v1, 120(s6) ;; [538] (set! v1-231 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [539] (set! v1-232 (l.w (+ v1-231 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [540] (b! (<=0.si v1-232) L556 (set! v1-233 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L556 - or v1, s7, r0 - -B61: - lwu v1, 120(s6) ;; [541] (set! v1-234 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [542] (set! v1-235 (l.wu (+ v1-234 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [543] (set! v1-233 (l.wu (+ v1-235 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B62: -L556: - lwu a0, 116(s6) ;; [544] (set! a0-65 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [545] (set! a0-66 (l.wu (+ a0-65 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 120(a0) ;; [546] (set! a0-67 (l.wu (+ a0-66 120))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [547] (set! a0-68 (= v1-233 a0-67)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L557 ;; [548] (bl! (not a0-68) L557 (no-delay!)) [a0: symbol ] -> [] -B63: - or v1, a0, r0 ;; [549] (set! v1-236 a0-68) [a0: symbol ] -> [v1: symbol ] - -B64: - addiu s5, r0, 45 ;; [550] (set! s5-0 45) [] -> [s5: ] - lui v1, L752 ;; [551] (set! v1-237 L752) [] -> [v1: ] - ori v1, v1, L752 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [552] (set! f0-53 (l.f v1-237)) [v1: ] -> [] - lwu v1, 120(s6) ;; [553] (set! v1-238 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [554] (set! v1-239 (l.wu (+ v1-238 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwc1 f1, 296(v1) ;; [555] (set! f1-0 (l.f (+ v1-239 296))) [v1: (inline-array joint-control-channel) ] -> [] - c.lt.s f0, f1 ;; [556] (b! (<.s f0-53 f1-0) L557 (set! v1-236 #t)) [] -> [v1: symbol ] - bc1t L557 - daddiu v1, s7, 8 - -B65: - or v1, s7, r0 ;; [557] (set! v1-236 #f) [] -> [v1: '#f ] -B66: -L557: - bnel s7, v1, L559 ;; [558] (bl! (truthy v1-236) L559 (no-delay!)) [v1: symbol ] -> [] -B67: - or v1, v1, r0 ;; [559] (set! v1-240 v1-236) [v1: symbol ] -> [v1: symbol ] - -B68: - lwu v1, 120(s6) ;; [560] (set! v1-241 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [561] (set! v1-242 (l.w (+ v1-241 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [562] (b! (<=0.si v1-242) L558 (set! v1-243 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L558 - or v1, s7, r0 - -B69: - lwu v1, 120(s6) ;; [563] (set! v1-244 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [564] (set! v1-245 (l.wu (+ v1-244 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [565] (set! v1-243 (l.wu (+ v1-245 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B70: -L558: - lwu a0, 116(s6) ;; [566] (set! a0-69 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [567] (set! a0-70 (l.wu (+ a0-69 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 140(a0) ;; [568] (set! a0-71 (l.wu (+ a0-70 140))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [569] (set! a1-19 (= v1-243 a0-71)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L559 ;; [570] (bl! (truthy a1-19) L559 (no-delay!)) [a1: symbol ] -> [] -B71: - or v1, a1, r0 ;; [571] (set! v1-240 a1-19) [a1: symbol ] -> [v1: symbol ] - -B72: - lwu a0, 116(s6) ;; [572] (set! a0-72 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [573] (set! a0-73 (l.wu (+ a0-72 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 144(a0) ;; [574] (set! a0-74 (l.wu (+ a0-73 144))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [575] (set! a1-20 (= v1-243 a0-74)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L559 ;; [576] (bl! (truthy a1-20) L559 (no-delay!)) [a1: symbol ] -> [] -B73: - or v1, a1, r0 ;; [577] (set! v1-240 a1-20) [a1: symbol ] -> [v1: symbol ] - -B74: - lwu a0, 116(s6) ;; [578] (set! a0-75 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [579] (set! a0-76 (l.wu (+ a0-75 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 244(a0) ;; [580] (set! a0-77 (l.wu (+ a0-76 244))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [581] (set! a1-21 (= v1-243 a0-77)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L559 ;; [582] (bl! (truthy a1-21) L559 (no-delay!)) [a1: symbol ] -> [] -B75: - or v1, a1, r0 ;; [583] (set! v1-240 a1-21) [a1: symbol ] -> [v1: symbol ] - -B76: - lwu a0, 116(s6) ;; [584] (set! a0-78 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [585] (set! a0-79 (l.wu (+ a0-78 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 248(a0) ;; [586] (set! a0-80 (l.wu (+ a0-79 248))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [587] (set! v1-240 (= v1-243 a0-80)) - ;; [v1: art-joint-anim a0: art-element ] -> [v1: symbol ] - daddiu v1, s7, 8 - movn v1, s7, a0 -B77: -L559: - beq s7, v1, L566 ;; [588] (b! (not v1-240) L566 (set! v1-246 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B78: - lwu v1, 120(s6) ;; [589] (set! v1-247 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [590] (set! v1-248 (l.w (+ v1-247 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [591] (b! (<=0.si v1-248) L560 (set! v1-249 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L560 - or v1, s7, r0 - -B79: - lwu v1, 120(s6) ;; [592] (set! v1-250 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [593] (set! v1-251 (l.wu (+ v1-250 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [594] (set! v1-249 (l.wu (+ v1-251 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B80: -L560: - lwu a0, 116(s6) ;; [595] (set! a0-81 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [596] (set! a0-82 (l.wu (+ a0-81 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 120(a0) ;; [597] (set! a0-83 (l.wu (+ a0-82 120))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [598] (set! a0-84 (= v1-249 a0-83)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L561 ;; [599] (b! (not a0-84) L561 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B81: - lui v1, L746 ;; [600] (set! v1-252 L746) [] -> [v1: ] - ori v1, v1, L746 - addu v1, fp, v1 - lwc1 f30, 0(v1) ;; [601] (set! f30-0 (l.f v1-252)) [v1: ] -> [] - lui v1, L780 ;; [602] (set! v1-253 L780) [] -> [v1: ] - ori v1, v1, L780 - addu v1, fp, v1 - lwc1 f28, 0(v1) ;; [603] (set! f28-0 (l.f v1-253)) [v1: ] -> [] - lui v1, L781 ;; [604] (set! v1-254 L781) [] -> [v1: ] - ori v1, v1, L781 - addu v1, fp, v1 - lwc1 f26, 0(v1) ;; [605] (set! f26-0 (l.f v1-254)) [v1: ] -> [] - lw t9, ja-aframe-num(s7) ;; [606] (set! t9-29 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [607] (set! a0-85 0) [] -> [a0: ] - jalr ra, t9 ;; [608] (call! a0-85) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [609] (set! f0-54 (gpr->fpr v0-29)) [v0: float ] -> [] - add.s f0, f26, f0 ;; [610] (set! f0-55 (+.s f26-0 f0-54)) [] -> [] - mul.s f0, f28, f0 ;; [611] (set! f0-56 (*.s f28-0 f0-55)) [] -> [] - add.s f0, f30, f0 ;; [612] (set! f0-57 (+.s f30-0 f0-56)) [] -> [] - lui v1, L746 ;; [613] (set! v1-255 L746) [] -> [v1: ] - ori v1, v1, L746 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [614] (set! f1-1 (l.f v1-255)) [v1: ] -> [] - div.s f1, f0, f1 ;; [615] (set! f1-2 (/.s f0-57 f1-1)) [] -> [] - cvt.w.s f1, f1 ;; [616] (set! f1-3 (f2i f1-2)) [] -> [] - cvt.s.w f1, f1 ;; [617] (set! f1-4 (i2f f1-3)) [] -> [] - lui v1, L746 ;; [618] (set! v1-256 L746) [] -> [v1: ] - ori v1, v1, L746 - addu v1, fp, v1 - lwc1 f2, 0(v1) ;; [619] (set! f2-0 (l.f v1-256)) [v1: ] -> [] - mul.s f1, f1, f2 ;; [620] (set! f1-5 (*.s f1-4 f2-0)) [] -> [] - sub.s f0, f0, f1 ;; [621] (set! f0-58 (-.s f0-57 f1-5)) [] -> [] - mfc1 v1, f0 ;; [622] (set! v1-257 (fpr->gpr f0-58)) [] -> [v1: float ] - beq r0, r0, L562 ;; [623] (b! #t L562 (nop!)) [] -> [] - sll r0, r0, 0 - -B82: -L561: - lui v1, L814 ;; [624] (set! v1-258 L814) [] -> [v1: ] - ori v1, v1, L814 - addu v1, fp, v1 - lw v1, 0(v1) ;; [625] (set! v1-257 (l.w v1-258)) [v1: ] -> [v1: int ] -B83: -L562: - mtc1 f30, v1 ;; [626] (set! f30-1 (gpr->fpr (the-as float v1-257))) [v1: float ] -> [] - addiu s5, r0, 45 ;; [627] (set! s5-0 45) [] -> [s5: ] - lw t9, ja-channel-push!(s7);; [628] (set! t9-30 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 3 ;; [629] (set! a0-86 3) [] -> [a0: ] - or a1, s5, r0 ;; [630] (set! a1-22 s5-0) [s5: ] -> [a1: ] - jalr ra, t9 ;; [631] (call! a0-86 a1-22) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lw t9, ground-tween-initialize(s7);; [632] (set! t9-31 ground-tween-initialize) - ;; [] -> [t9: (function ground-tween-info uint uint uint uint uint uint ground-tween-info :behavior target) ] - or a0, gp, r0 ;; [633] (set! a0-87 gp-0) [gp: ground-tween-info ] -> [a0: ground-tween-info ] - addiu a1, r0, 0 ;; [634] (set! a1-23 0) [] -> [a1: ] - lwu v1, 116(s6) ;; [635] (set! v1-259 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [636] (set! v1-260 (l.wu (+ v1-259 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a2, 44(v1) ;; [637] (set! a2-15 (l.wu (+ v1-260 44))) [v1: art-group ] -> [a2: art-element ] - lwu v1, 116(s6) ;; [638] (set! v1-261 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [639] (set! v1-262 (l.wu (+ v1-261 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a3, 80(v1) ;; [640] (set! a3-0 (l.wu (+ v1-262 80))) [v1: art-group ] -> [a3: art-element ] - lwu v1, 116(s6) ;; [641] (set! v1-263 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [642] (set! v1-264 (l.wu (+ v1-263 4))) [v1: draw-control ] -> [v1: art-group ] - lwu t0, 92(v1) ;; [643] (set! t0-0 (l.wu (+ v1-264 92))) [v1: art-group ] -> [t0: art-element ] - lwu v1, 116(s6) ;; [644] (set! v1-265 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [645] (set! v1-266 (l.wu (+ v1-265 4))) [v1: draw-control ] -> [v1: art-group ] - lwu t1, 56(v1) ;; [646] (set! t1-0 (l.wu (+ v1-266 56))) [v1: art-group ] -> [t1: art-element ] - lwu v1, 116(s6) ;; [647] (set! v1-267 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [648] (set! v1-268 (l.wu (+ v1-267 4))) [v1: draw-control ] -> [v1: art-group ] - lwu t2, 68(v1) ;; [649] (set! t2-0 (l.wu (+ v1-268 68))) [v1: art-group ] -> [t2: art-element ] - jalr ra, t9 ;; [650] (call! a0-87 a1-23 a2-15 a3-0 t0-0 t1-0 t2-0) - ;; [a0: ground-tween-info a1: a2: art-element a3: art-element t0: art-element t1: art-element t2: art-element t9: (function ground-tween-info uint uint uint uint uint uint ground-tween-info :behavior target) ] -> [v0: ground-tween-info ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [651] (set! v1-269 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [652] (set! v1-270 (l.wu (+ v1-269 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s4, r0, v1 ;; [653] (set! s4-1 (+ v1-270 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s4: joint-control-channel ] - lw v1, num-func-identity(s7);; [654] (set! v1-271 num-func-identity) - ;; [] -> [v1: (function joint-control-channel float float float) ] - sw v1, 20(s4) ;; [655] (s.w! (+ s4-1 20) v1-271) - ;; [v1: (function joint-control-channel float float float) s4: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [656] (set! t9-32 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - mfc1 a0, f30 ;; [657] (set! a0-88 (fpr->gpr f30-1)) [] -> [a0: float ] - addiu a1, r0, 0 ;; [658] (set! a1-24 0) [] -> [a1: ] - jalr ra, t9 ;; [659] (call! a0-88 a1-24) - ;; [a0: float a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [660] (set! f0-59 (gpr->fpr v0-32)) [v0: float ] -> [] - swc1 f0, 16(s4) ;; [661] (s.f! (+ s4-1 16) f0-59) [s4: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [662] (set! v1-272 (fpr->gpr f0-59)) [] -> [v1: float ] - lwu v1, 120(s6) ;; [663] (set! v1-273 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [664] (set! v1-274 (l.wu (+ v1-273 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 48 ;; [665] (set! a0-89 (+ v1-274 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [666] (set! f0-60 0) [] -> [] - swc1 f0, 24(a0) ;; [667] (s.f! (+ a0-89 24) f0-60) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [668] (set! t9-33 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [669] (set! a1-25 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [670] (set! a2-16 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [671] (call! a0-89 a1-25 a2-16) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [672] (set! v1-275 v0-33) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [673] (set! v1-276 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [674] (set! v1-277 (l.wu (+ v1-276 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 96 ;; [675] (set! a0-90 (+ v1-277 96)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [676] (set! f0-61 0) [] -> [] - swc1 f0, 24(a0) ;; [677] (s.f! (+ a0-90 24) f0-61) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [678] (set! t9-34 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [679] (set! a1-26 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [680] (set! a2-17 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [681] (call! a0-90 a1-26 a2-17) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [682] (set! v1-278 v0-34) [v0: int ] -> [v1: int ] - addiu s4, r0, 0 ;; [683] (set! s4-2 0) [] -> [s4: ] - beq r0, r0, L564 ;; [684] (b! #t L564 (nop!)) [] -> [] - sll r0, r0, 0 - -B84: -L563: - lw t9, ground-tween-update(s7);; [685] (set! t9-35 ground-tween-update) - ;; [] -> [t9: (function ground-tween-info float float none :behavior target) ] - or a0, gp, r0 ;; [686] (set! a0-91 gp-0) [gp: ground-tween-info ] -> [a0: ground-tween-info ] - lwu v1, 108(s6) ;; [687] (set! v1-279 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 1300(v1) ;; [688] (set! f0-62 (l.f (+ v1-279 1300))) [v1: control-info ] -> [] - mfc1 a1, f0 ;; [689] (set! a1-27 (fpr->gpr f0-62)) [] -> [a1: float ] - lwu v1, 108(s6) ;; [690] (set! v1-280 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 1304(v1) ;; [691] (set! f0-63 (l.f (+ v1-280 1304))) [v1: control-info ] -> [] - mfc1 a2, f0 ;; [692] (set! a2-18 (fpr->gpr f0-63)) [] -> [a2: float ] - jalr ra, t9 ;; [693] (call! a0-91 a1-27 a2-18) - ;; [a0: ground-tween-info a1: float a2: float t9: (function ground-tween-info float float none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lwu s6, 44(s6) ;; [694] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [695] (set! v1-281 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [696] (set! v1-282 (l.wu (+ v1-281 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [697] (set! a0-92 (+ v1-282 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [698] (set! v1-283 (l.wu (+ a0-92 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [699] (set! v1-284 (l.wu (+ v1-283 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [700] (set! v1-285 (l.h (+ v1-284 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [701] (set! v1-286 (+ v1-285 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [702] (set! f0-64 (gpr->fpr v1-286)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [703] (set! f0-65 (i2f f0-64)) [] -> [] - swc1 f0, 24(a0) ;; [704] (s.f! (+ a0-92 24) f0-65) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [705] (set! v1-287 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [706] (set! f0-66 (l.f v1-287)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [707] (s.f! (+ a0-92 28) f0-66) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [708] (set! t9-36 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [709] (set! a1-28 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [710] (set! a2-19 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [711] (call! a0-92 a1-28 a2-19) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [712] (set! v1-288 v0-36) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [713] (set! v1-289 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [714] (set! v1-290 (l.wu (+ v1-289 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 48 ;; [715] (set! a0-93 (+ v1-290 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [716] (set! f0-67 0) [] -> [] - swc1 f0, 24(a0) ;; [717] (s.f! (+ a0-93 24) f0-67) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [718] (set! t9-37 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [719] (set! a1-29 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [720] (set! a2-20 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [721] (call! a0-93 a1-29 a2-20) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [722] (set! v1-291 v0-37) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [723] (set! v1-292 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [724] (set! v1-293 (l.wu (+ v1-292 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 96 ;; [725] (set! a0-94 (+ v1-293 96)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [726] (set! f0-68 0) [] -> [] - swc1 f0, 24(a0) ;; [727] (s.f! (+ a0-94 24) f0-68) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [728] (set! t9-38 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [729] (set! a1-30 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [730] (set! a2-21 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [731] (call! a0-94 a1-30 a2-21) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [732] (set! v1-294 v0-38) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [733] (set! t9-39 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [734] (set! a0-95 0) [] -> [a0: ] - jalr ra, t9 ;; [735] (call! a0-95) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L563 ;; [736] (b! (not v0-39) L563 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B85: - or v1, s7, r0 ;; [737] (set! v1-295 #f) [] -> [v1: '#f ] - lwu v1, 120(s6) ;; [738] (set! v1-296 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [739] (set! v1-297 (l.wu (+ v1-296 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu v1, r0, v1 ;; [740] (set! v1-298 (+ v1-297 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - lw a0, num-func-identity(s7);; [741] (set! a0-96 num-func-identity) - ;; [] -> [a0: (function joint-control-channel float float float) ] - sw a0, 20(v1) ;; [742] (s.w! (+ v1-298 20) a0-96) - ;; [v1: joint-control-channel a0: (function joint-control-channel float float float) ] -> [] - mtc1 f0, r0 ;; [743] (set! f0-69 0) [] -> [] - swc1 f0, 16(v1) ;; [744] (s.f! (+ v1-298 16) f0-69) [v1: joint-control-channel ] -> [] - mfc1 v1, f0 ;; [745] (set! v1-299 (fpr->gpr f0-69)) [] -> [v1: float ] - daddiu s4, s4, 1 ;; [746] (set! s4-2 (+ s4-2 1)) [s4: int ] -> [s4: ] -B86: -L564: - slti v1, s4, 3 ;; [747] (b! (<.si s4-2 3) L563 (nop!)) [s4: int ] -> [] - bne v1, r0, L563 - sll r0, r0, 0 - -B87: - or v1, s7, r0 ;; [748] (set! v1-300 #f) [] -> [v1: '#f ] - or v1, s7, r0 ;; [749] (set! v1-301 #f) [] -> [v1: '#f ] - lw t9, ground-tween-initialize(s7);; [750] (set! t9-40 ground-tween-initialize) - ;; [] -> [t9: (function ground-tween-info uint uint uint uint uint uint ground-tween-info :behavior target) ] - or a0, gp, r0 ;; [751] (set! a0-97 gp-0) [gp: ground-tween-info ] -> [a0: ground-tween-info ] - addiu a1, r0, 0 ;; [752] (set! a1-31 0) [] -> [a1: ] - lwu v1, 116(s6) ;; [753] (set! v1-302 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [754] (set! v1-303 (l.wu (+ v1-302 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a2, 40(v1) ;; [755] (set! a2-22 (l.wu (+ v1-303 40))) [v1: art-group ] -> [a2: art-element ] - lwu v1, 116(s6) ;; [756] (set! v1-304 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [757] (set! v1-305 (l.wu (+ v1-304 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a3, 76(v1) ;; [758] (set! a3-1 (l.wu (+ v1-305 76))) [v1: art-group ] -> [a3: art-element ] - lwu v1, 116(s6) ;; [759] (set! v1-306 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [760] (set! v1-307 (l.wu (+ v1-306 4))) [v1: draw-control ] -> [v1: art-group ] - lwu t0, 88(v1) ;; [761] (set! t0-1 (l.wu (+ v1-307 88))) [v1: art-group ] -> [t0: art-element ] - lwu v1, 116(s6) ;; [762] (set! v1-308 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [763] (set! v1-309 (l.wu (+ v1-308 4))) [v1: draw-control ] -> [v1: art-group ] - lwu t1, 52(v1) ;; [764] (set! t1-1 (l.wu (+ v1-309 52))) [v1: art-group ] -> [t1: art-element ] - lwu v1, 116(s6) ;; [765] (set! v1-310 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [766] (set! v1-311 (l.wu (+ v1-310 4))) [v1: draw-control ] -> [v1: art-group ] - lwu t2, 64(v1) ;; [767] (set! t2-1 (l.wu (+ v1-311 64))) [v1: art-group ] -> [t2: art-element ] - jalr ra, t9 ;; [768] (call! a0-97 a1-31 a2-22 a3-1 t0-1 t1-1 t2-1) - ;; [a0: ground-tween-info a1: a2: art-element a3: art-element t0: art-element t1: art-element t2: art-element t9: (function ground-tween-info uint uint uint uint uint uint ground-tween-info :behavior target) ] -> [v0: ground-tween-info ] - sll v0, ra, 0 - -B88: -L565: - lw t9, ground-tween-update(s7);; [769] (set! t9-41 ground-tween-update) - ;; [] -> [t9: (function ground-tween-info float float none :behavior target) ] - or a0, gp, r0 ;; [770] (set! a0-98 gp-0) [gp: ground-tween-info ] -> [a0: ground-tween-info ] - lwu v1, 108(s6) ;; [771] (set! v1-312 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 1300(v1) ;; [772] (set! f0-70 (l.f (+ v1-312 1300))) [v1: control-info ] -> [] - mfc1 a1, f0 ;; [773] (set! a1-32 (fpr->gpr f0-70)) [] -> [a1: float ] - lwu v1, 108(s6) ;; [774] (set! v1-313 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 1304(v1) ;; [775] (set! f0-71 (l.f (+ v1-313 1304))) [v1: control-info ] -> [] - mfc1 a2, f0 ;; [776] (set! a2-23 (fpr->gpr f0-71)) [] -> [a2: float ] - jalr ra, t9 ;; [777] (call! a0-98 a1-32 a2-23) - ;; [a0: ground-tween-info a1: float a2: float t9: (function ground-tween-info float float none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lwu s6, 44(s6) ;; [778] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [779] (set! v1-314 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [780] (set! v1-315 (l.wu (+ v1-314 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [781] (set! a0-99 (+ v1-315 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [782] (set! v1-316 (l.wu (+ a0-99 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [783] (set! v1-317 (l.wu (+ v1-316 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [784] (set! v1-318 (l.h (+ v1-317 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [785] (set! v1-319 (+ v1-318 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [786] (set! f0-72 (gpr->fpr v1-319)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [787] (set! f0-73 (i2f f0-72)) [] -> [] - swc1 f0, 24(a0) ;; [788] (s.f! (+ a0-99 24) f0-73) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [789] (set! v1-320 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [790] (set! f0-74 (l.f v1-320)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [791] (s.f! (+ a0-99 28) f0-74) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [792] (set! t9-42 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [793] (set! a1-33 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [794] (set! a2-24 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [795] (call! a0-99 a1-33 a2-24) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [796] (set! v1-321 v0-42) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [797] (set! v1-322 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [798] (set! v1-323 (l.wu (+ v1-322 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 48 ;; [799] (set! a0-100 (+ v1-323 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [800] (set! f0-75 0) [] -> [] - swc1 f0, 24(a0) ;; [801] (s.f! (+ a0-100 24) f0-75) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [802] (set! t9-43 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [803] (set! a1-34 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [804] (set! a2-25 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [805] (call! a0-100 a1-34 a2-25) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [806] (set! v1-324 v0-43) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [807] (set! v1-325 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [808] (set! v1-326 (l.wu (+ v1-325 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 96 ;; [809] (set! a0-101 (+ v1-326 96)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [810] (set! f0-76 0) [] -> [] - swc1 f0, 24(a0) ;; [811] (s.f! (+ a0-101 24) f0-76) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [812] (set! t9-44 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [813] (set! a1-35 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [814] (set! a2-26 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [815] (call! a0-101 a1-35 a2-26) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [816] (set! v1-327 v0-44) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [817] (set! t9-45 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [818] (set! a0-102 0) [] -> [a0: ] - jalr ra, t9 ;; [819] (call! a0-102) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L565 ;; [820] (b! (not v0-45) L565 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B89: - or v1, s7, r0 ;; [821] (set! v1-328 #f) [] -> [v1: '#f ] - beq r0, r0, L569 ;; [822] (b! #t L569 (nop!)) [] -> [] - sll r0, r0, 0 - -B90: -L566: - lwu v1, 120(s6) ;; [823] (set! v1-329 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [824] (set! v1-330 (l.w (+ v1-329 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [825] (b! (<=0.si v1-330) L567 (set! v1-331 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L567 - or v1, s7, r0 - -B91: - lwu v1, 120(s6) ;; [826] (set! v1-332 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [827] (set! v1-333 (l.wu (+ v1-332 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [828] (set! v1-331 (l.wu (+ v1-333 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B92: -L567: - lwu a0, 116(s6) ;; [829] (set! a0-103 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [830] (set! a0-104 (l.wu (+ a0-103 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 120(a0) ;; [831] (set! a0-105 (l.wu (+ a0-104 120))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [832] (set! a0-106 (= v1-331 a0-105)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L568 ;; [833] (bl! (not a0-106) L568 (no-delay!)) [a0: symbol ] -> [] -B93: - or v1, a0, r0 ;; [834] (set! v1-334 a0-106) [a0: symbol ] -> [v1: symbol ] - -B94: - lwu v1, 108(s6) ;; [835] (set! v1-335 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 528(v1) ;; [836] (set! f0-77 (l.f (+ v1-335 528))) [v1: control-info ] -> [] - lui v1, L775 ;; [837] (set! v1-336 L775) [] -> [v1: ] - ori v1, v1, L775 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [838] (set! f1-6 (l.f v1-336)) [v1: ] -> [] - c.lt.s f0, f1 ;; [839] (b! (>=.s f0-77 f1-6) L568 (set! v1-334 #t)) [] -> [v1: symbol ] - bc1f L568 - daddiu v1, s7, 8 - -B95: - or v1, s7, r0 ;; [840] (set! v1-334 #f) [] -> [v1: '#f ] -B96: -L568: - beq s7, v1, L569 ;; [841] (b! (not v1-334) L569 (set! v1-337 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B97: - addiu s5, r0, 45 ;; [842] (set! s5-0 45) [] -> [s5: ] - or v1, s5, r0 ;; [843] (set! v1-338 s5-0) [s5: ] -> [v1: ] -B98: -L569: - lwu v1, 120(s6) ;; [844] (set! v1-339 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [845] (set! v1-340 (l.w (+ v1-339 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [846] (b! (<=0.si v1-340) L570 (set! v1-341 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L570 - or v1, s7, r0 - -B99: - lwu v1, 120(s6) ;; [847] (set! v1-342 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [848] (set! v1-343 (l.wu (+ v1-342 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [849] (set! v1-341 (l.wu (+ v1-343 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B100: -L570: - lwu a0, 116(s6) ;; [850] (set! a0-107 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [851] (set! a0-108 (l.wu (+ a0-107 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 48(a0) ;; [852] (set! a0-109 (l.wu (+ a0-108 48))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [853] (set! a0-110 (= v1-341 a0-109)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L571 ;; [854] (bl! (not a0-110) L571 (no-delay!)) [a0: symbol ] -> [] -B101: - or v1, a0, r0 ;; [855] (set! v1-344 a0-110) [a0: symbol ] -> [v1: symbol ] - -B102: - lw t9, ja-group-size(s7) ;; [856] (set! t9-46 ja-group-size) [] -> [t9: (function int :behavior process-drawable) ] - jalr ra, t9 ;; [857] (call!) [t9: (function int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - daddiu a0, v0, -3 ;; [858] (set! a0-111 (+ v0-46 -3)) [v0: int ] -> [a0: ] - daddiu v1, s7, 8 ;; [859] (set! v1-344 (zero? a0-111)) [a0: ] -> [v1: symbol ] - movn v1, s7, a0 -B103: -L571: - bne s7, v1, L572 ;; [860] (b! (truthy v1-344) L572 (set! v1-345 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B104: - lw t9, ja-channel-push!(s7);; [861] (set! t9-47 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 3 ;; [862] (set! a0-112 3) [] -> [a0: ] - or a1, s5, r0 ;; [863] (set! a1-36 s5-0) [s5: int ] -> [a1: int ] - jalr ra, t9 ;; [864] (call! a0-112 a1-36) - ;; [a0: a1: int t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [865] (set! v1-346 v0-47) [v0: int ] -> [v1: int ] -B105: -L572: - lw t9, ground-tween-initialize(s7);; [866] (set! t9-48 ground-tween-initialize) - ;; [] -> [t9: (function ground-tween-info uint uint uint uint uint uint ground-tween-info :behavior target) ] - or a0, gp, r0 ;; [867] (set! a0-113 gp-0) [gp: ground-tween-info ] -> [a0: ground-tween-info ] - addiu a1, r0, 0 ;; [868] (set! a1-37 0) [] -> [a1: ] - lwu v1, 116(s6) ;; [869] (set! v1-347 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [870] (set! v1-348 (l.wu (+ v1-347 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a2, 48(v1) ;; [871] (set! a2-27 (l.wu (+ v1-348 48))) [v1: art-group ] -> [a2: art-element ] - lwu v1, 116(s6) ;; [872] (set! v1-349 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [873] (set! v1-350 (l.wu (+ v1-349 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a3, 84(v1) ;; [874] (set! a3-2 (l.wu (+ v1-350 84))) [v1: art-group ] -> [a3: art-element ] - lwu v1, 116(s6) ;; [875] (set! v1-351 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [876] (set! v1-352 (l.wu (+ v1-351 4))) [v1: draw-control ] -> [v1: art-group ] - lwu t0, 96(v1) ;; [877] (set! t0-2 (l.wu (+ v1-352 96))) [v1: art-group ] -> [t0: art-element ] - lwu v1, 116(s6) ;; [878] (set! v1-353 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [879] (set! v1-354 (l.wu (+ v1-353 4))) [v1: draw-control ] -> [v1: art-group ] - lwu t1, 60(v1) ;; [880] (set! t1-2 (l.wu (+ v1-354 60))) [v1: art-group ] -> [t1: art-element ] - lwu v1, 116(s6) ;; [881] (set! v1-355 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [882] (set! v1-356 (l.wu (+ v1-355 4))) [v1: draw-control ] -> [v1: art-group ] - lwu t2, 72(v1) ;; [883] (set! t2-2 (l.wu (+ v1-356 72))) [v1: art-group ] -> [t2: art-element ] - jalr ra, t9 ;; [884] (call! a0-113 a1-37 a2-27 a3-2 t0-2 t1-2 t2-2) - ;; [a0: ground-tween-info a1: a2: art-element a3: art-element t0: art-element t1: art-element t2: art-element t9: (function ground-tween-info uint uint uint uint uint uint ground-tween-info :behavior target) ] -> [v0: ground-tween-info ] - sll v0, ra, 0 - -B106: -L573: - lw t9, ground-tween-update(s7);; [885] (set! t9-49 ground-tween-update) - ;; [] -> [t9: (function ground-tween-info float float none :behavior target) ] - or a0, gp, r0 ;; [886] (set! a0-114 gp-0) [gp: ground-tween-info ] -> [a0: ground-tween-info ] - lwu v1, 108(s6) ;; [887] (set! v1-357 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 1300(v1) ;; [888] (set! f0-78 (l.f (+ v1-357 1300))) [v1: control-info ] -> [] - mfc1 a1, f0 ;; [889] (set! a1-38 (fpr->gpr f0-78)) [] -> [a1: float ] - lwu v1, 108(s6) ;; [890] (set! v1-358 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 1304(v1) ;; [891] (set! f0-79 (l.f (+ v1-358 1304))) [v1: control-info ] -> [] - mfc1 a2, f0 ;; [892] (set! a2-28 (fpr->gpr f0-79)) [] -> [a2: float ] - jalr ra, t9 ;; [893] (call! a0-114 a1-38 a2-28) - ;; [a0: ground-tween-info a1: float a2: float t9: (function ground-tween-info float float none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lwu s6, 44(s6) ;; [894] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [895] (set! v1-359 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [896] (set! v1-360 (l.wu (+ v1-359 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [897] (set! a0-115 (+ v1-360 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lui v1, L786 ;; [898] (set! v1-361 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [899] (set! f0-80 (l.f v1-361)) [v1: ] -> [] - swc1 f0, 24(a0) ;; [900] (s.f! (+ a0-115 24) f0-80) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [901] (set! t9-50 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [902] (set! a1-39 #f) [] -> [a1: '#f ] - lw a2, num-func-loop!(s7) ;; [903] (set! a2-29 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [904] (call! a0-115 a1-39 a2-29) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [905] (set! v1-362 v0-50) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [906] (set! v1-363 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [907] (set! v1-364 (l.wu (+ v1-363 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 48 ;; [908] (set! a0-116 (+ v1-364 48)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [909] (set! f0-81 0) [] -> [] - swc1 f0, 24(a0) ;; [910] (s.f! (+ a0-116 24) f0-81) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [911] (set! t9-51 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [912] (set! a1-40 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [913] (set! a2-30 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [914] (call! a0-116 a1-40 a2-30) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [915] (set! v1-365 v0-51) [v0: int ] -> [v1: int ] - lwu v1, 120(s6) ;; [916] (set! v1-366 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [917] (set! v1-367 (l.wu (+ v1-366 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddiu a0, v1, 96 ;; [918] (set! a0-117 (+ v1-367 96)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - mtc1 f0, r0 ;; [919] (set! f0-82 0) [] -> [] - swc1 f0, 24(a0) ;; [920] (s.f! (+ a0-117 24) f0-82) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [921] (set! t9-52 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [922] (set! a1-41 #f) [] -> [a1: '#f ] - lw a2, num-func-chan(s7) ;; [923] (set! a2-31 num-func-chan) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [924] (call! a0-117 a1-41 a2-31) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [925] (set! v1-368 v0-52) [v0: int ] -> [v1: int ] - lw t9, can-play-stance-amibent?(s7);; [926] (set! t9-53 can-play-stance-amibent?) - ;; [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [927] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L574 ;; [928] (b! (not v0-53) L574 (set! v1-369 #f)) [v0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B107: - lw t9, enter-state(s7) ;; [929] (set! t9-54 enter-state) [] -> [t9: ] - lw v1, target-stance-ambient(s7);; [930] (set! v1-370 target-stance-ambient) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [931] (s.w! (+ self 72) v1-370) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [932] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [933] (set! v1-371 v0-54) [v0: object ] -> [v1: object ] -B108: -L574: - beq r0, r0, L573 ;; [934] (b! #t L573 (nop!)) [] -> [] - sll r0, r0, 0 - -B109: - or v0, s7, r0 ;; [935] (set! v0-55 #f) [] -> [v0: ] - ld ra, 0(sp) - ld fp, 8(sp) - lwc1 f30, 136(sp) - lwc1 f28, 132(sp) - lwc1 f26, 128(sp) - lq gp, 112(sp) - lq s5, 96(sp) - lq s4, 80(sp) - lq s3, 64(sp) - jr ra - daddiu sp, sp, 144 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (code target-stance) - () - (let ((s5-0 22) - (gp-0 (new 'stack 'ground-tween-info)) - ) - (let ((v1-3 (ja-group))) - (cond - ((or (= v1-3 (-> self draw art-group data 89)) (= v1-3 (-> self draw art-group data 90))) - (set! s5-0 45) - ) - ((ja-group? (-> self draw art-group data 71)) - (ja-no-eval :group! (-> self draw art-group data 72) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - ((ja-group? (-> self draw art-group data 51)) - (cond - ((rand-vu-percent? (the-as float 0.3)) - (ja-no-eval :group! (-> self draw art-group data 53) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - (else - (ja-no-eval :group! (-> self draw art-group data 52) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - ) - ) - ((ja-group? (-> self draw art-group data 78)) - (ja-no-eval :group! (-> self draw art-group data 79) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - ((ja-group? (-> self draw art-group data 84)) - (ja-no-eval :group! (-> self draw art-group data 85) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - (set! s5-0 0) - ) - ((ja-group? (-> self draw art-group data 59)) - (set! (-> self control unknown-float81) (-> self control unknown-float80)) - (set! (-> self control unknown-surface00) *walk-no-turn-mods*) - (ja-no-eval :group! (if (rand-vu-percent? (the-as float 0.3)) - (-> self draw art-group data 61) - (-> self draw art-group data 60) - ) - :num! (seek!) - :frame-num 0.0 - ) - (until (ja-done? 0) - (seek! (-> self control unknown-float81) (the-as float 0.0) (-> *display* seconds-per-frame)) - (suspend) - (ja :num! (seek!)) - ) - (set! (-> self control unknown-surface00) *walk-mods*) - (set! (-> self control unknown-float81) 0.0) - (rot->dir-targ! (-> self control)) - ) - ((let ((v1-206 (ja-group))) - (or (= v1-206 (-> self draw art-group data 31)) (= v1-206 (-> self draw art-group data 32))) - ) - (ja-channel-push! 1 (seconds 0.04)) - (ja-no-eval :group! (-> self draw art-group data 30) :num! (seek! 0.0 1.2) :frame-num max) - (until (ja-done? 0) - (suspend) - (ja :num! (seek! 0.0 1.2)) - ) - (set! s5-0 12) - ) - ((or (and (ja-group? (-> self draw art-group data 23)) - (begin (set! s5-0 45) (< 0.5 (-> self skel root-channel 6 frame-interp))) - ) - (let ((v1-243 (ja-group))) - (or (= v1-243 (-> self draw art-group data 28)) - (= v1-243 (-> self draw art-group data 29)) - (= v1-243 (-> self draw art-group data 54)) - (= v1-243 (-> self draw art-group data 55)) - ) - ) - ) - (let ((f30-1 (the-as float (cond - ((ja-group? (-> self draw art-group data 23)) - (let ((f0-57 (+ 50.0 (* 0.8333333 (+ -25.0 (ja-aframe-num 0)))))) - (- f0-57 (* (the float (the int (/ f0-57 50.0))) 50.0)) - ) - ) - (else - 0.0 - ) - ) - ) - ) - ) - (set! s5-0 45) - (ja-channel-push! 3 (the-as time-frame s5-0)) - (ground-tween-initialize - gp-0 - (the-as uint 0) - (the-as uint (-> self draw art-group data 4)) - (the-as uint (-> self draw art-group data 13)) - (the-as uint (-> self draw art-group data 16)) - (the-as uint (-> self draw art-group data 7)) - (the-as uint (-> self draw art-group data 10)) - ) - (ja :num-func num-func-identity :frame-num (ja-aframe f30-1 0)) - ) - (ja :chan 1 :num! (chan 0)) - (ja :chan 2 :num! (chan 0)) - (dotimes (s4-2 3) - (until (ja-done? 0) - (ground-tween-update gp-0 (-> self control unknown-float61) (-> self control unknown-float62)) - (suspend) - (ja :num! (seek!)) - (ja :chan 1 :num! (chan 0)) - (ja :chan 2 :num! (chan 0)) - ) - (ja :num-func num-func-identity :frame-num 0.0) - ) - (ground-tween-initialize - gp-0 - (the-as uint 0) - (the-as uint (-> self draw art-group data 3)) - (the-as uint (-> self draw art-group data 12)) - (the-as uint (-> self draw art-group data 15)) - (the-as uint (-> self draw art-group data 6)) - (the-as uint (-> self draw art-group data 9)) - ) - (until (ja-done? 0) - (ground-tween-update gp-0 (-> self control unknown-float61) (-> self control unknown-float62)) - (suspend) - (ja :num! (seek!)) - (ja :chan 1 :num! (chan 0)) - (ja :chan 2 :num! (chan 0)) - ) - ) - ((and (ja-group? (-> self draw art-group data 23)) (>= (-> self control unknown-float01) 5734.4)) - (set! s5-0 45) - ) - ) - ) - (if (not (and (ja-group? (-> self draw art-group data 5)) (= (ja-group-size) 3))) - (ja-channel-push! 3 (the-as time-frame s5-0)) - ) - (ground-tween-initialize - gp-0 - (the-as uint 0) - (the-as uint (-> self draw art-group data 5)) - (the-as uint (-> self draw art-group data 14)) - (the-as uint (-> self draw art-group data 17)) - (the-as uint (-> self draw art-group data 8)) - (the-as uint (-> self draw art-group data 11)) - ) - (loop - (ground-tween-update gp-0 (-> self control unknown-float61) (-> self control unknown-float62)) - (suspend) - (ja :num! (loop!)) - (ja :chan 1 :num! (chan 0)) - (ja :chan 2 :num! (chan 0)) - (if (can-play-stance-amibent?) - (go target-stance-ambient) - ) - ) - ) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (trans target-stance) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; s6-0: target -L575: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lwu t9, 196(s6) ;; [ 0] (set! t9-0 (l.wu (+ self 196))) - ;; [s6: target ] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 1] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lwu v1, 152(s6) ;; [ 2] (set! v1-0 (l.wu (+ self 152))) [s6: target ] -> [v1: water-control ] - lwu v1, 0(v1) ;; [ 3] (set! v1-1 (l.wu v1-0)) [v1: water-control ] -> [v1: water-flags ] - andi v1, v1, 1024 ;; [ 4] (set! v1-2 (logand v1-1 1024)) [v1: water-flags ] -> [v1: water-flags ] - beq v1, r0, L576 ;; [ 5] (b! (zero? v1-2) L576 (set! v1-3 #f)) [v1: water-flags ] -> [v1: '#f ] - or v1, s7, r0 - -B1: - lw t9, enter-state(s7) ;; [ 6] (set! t9-1 enter-state) [] -> [t9: ] - lw v1, target-wade-stance(s7);; [ 7] (set! v1-4 target-wade-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 8] (s.w! (+ self 72) v1-4) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 9] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 10] (set! v1-5 v0-1) [v0: object ] -> [v1: object ] -B2: -L576: - addiu v1, r0, 1 ;; [ 11] (set! v1-6 1) [] -> [v1: ] - lwu a0, 108(s6) ;; [ 12] (set! a0-0 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 260(a0) ;; [ 13] (set! a0-1 (l.wu (+ a0-0 260))) [a0: control-info ] -> [a0: pat-surface ] - dsll32 a0, a0, 20 ;; [ 14] (set! a0-2 (sll a0-1 52)) [a0: pat-surface ] -> [a0: ( << 52) ] - dsrl32 a0, a0, 26 ;; [ 15] (set! a0-3 (srl a0-2 58)) [a0: ( << 52) ] -> [a0: pat-material ] - bne a0, v1, L577 ;; [ 16] (b! (!= a0-3 v1-6) L577 (set! v1-7 #f)) - ;; [v1: a0: pat-material ] -> [v1: '#f ] - or v1, s7, r0 - -B3: - mtc1 f0, r0 ;; [ 17] (set! f0-0 0) [] -> [] - lwu v1, 108(s6) ;; [ 18] (set! v1-8 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [ 19] (s.f! (+ v1-8 1724) f0-0) [v1: control-info ] -> [] - lw t9, remove-exit(s7) ;; [ 20] (set! t9-2 remove-exit) [] -> [t9: (function stack-frame :behavior process) ] - jalr ra, t9 ;; [ 21] (call!) [t9: (function stack-frame :behavior process) ] -> [v0: stack-frame ] - sll v0, ra, 0 - - lw t9, enter-state(s7) ;; [ 22] (set! t9-3 enter-state) [] -> [t9: ] - lw v1, target-ice-stance(s7);; [ 23] (set! v1-9 target-ice-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 24] (s.w! (+ self 72) v1-9) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 25] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 26] (set! v1-10 v0-3) [v0: object ] -> [v1: object ] -B4: -L577: - lw t9, move-legs?(s7) ;; [ 27] (set! t9-4 move-legs?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 28] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L578 ;; [ 29] (b! (not v0-4) L578 (set! v1-11 #f)) [v0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B5: - mtc1 f0, r0 ;; [ 30] (set! f0-1 0) [] -> [] - lwu v1, 108(s6) ;; [ 31] (set! v1-12 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [ 32] (s.f! (+ v1-12 1724) f0-1) [v1: control-info ] -> [] - lw t9, remove-exit(s7) ;; [ 33] (set! t9-5 remove-exit) [] -> [t9: (function stack-frame :behavior process) ] - jalr ra, t9 ;; [ 34] (call!) [t9: (function stack-frame :behavior process) ] -> [v0: stack-frame ] - sll v0, ra, 0 - - lw t9, enter-state(s7) ;; [ 35] (set! t9-6 enter-state) [] -> [t9: ] - lw v1, target-walk(s7) ;; [ 36] (set! v1-13 target-walk) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 37] (s.w! (+ self 72) v1-13) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 38] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 39] (set! v1-14 v0-6) [v0: object ] -> [v1: object ] -B6: -L578: - lwu v1, 108(s6) ;; [ 40] (set! v1-15 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 41] (set! v1-16 (l.wu (+ v1-15 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 42] (set! v1-17 (l.w (+ v1-16 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 43] (set! v1-18 (sll v1-17 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 44] (set! a0-4 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 45] (set! v1-19 (+ v1-18 a0-4)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 46] (set! v1-20 (l.wu (+ v1-19 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 40(v1) ;; [ 47] (set! v1-21 (l.wu (+ v1-20 40))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 3072 ;; [ 48] (set! v1-22 (logand v1-21 3072)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L579 ;; [ 49] (bl! (zero? v1-22) L579 (no-delay!)) [v1: pad-buttons ] -> [] -B7: - or v1, s7, r0 ;; [ 50] (set! v1-23 #f) [] -> [v1: '#f ] - -B8: - lw t9, can-duck?(s7) ;; [ 51] (set! t9-7 can-duck?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 52] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 53] (set! v1-23 v0-7) [v0: symbol ] -> [v1: symbol ] -B9: -L579: - beq s7, v1, L580 ;; [ 54] (b! (not v1-23) L580 (set! v1-24 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B10: - mtc1 f0, r0 ;; [ 55] (set! f0-2 0) [] -> [] - lwu v1, 108(s6) ;; [ 56] (set! v1-25 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [ 57] (s.f! (+ v1-25 1724) f0-2) [v1: control-info ] -> [] - lw t9, remove-exit(s7) ;; [ 58] (set! t9-8 remove-exit) [] -> [t9: (function stack-frame :behavior process) ] - jalr ra, t9 ;; [ 59] (call!) [t9: (function stack-frame :behavior process) ] -> [v0: stack-frame ] - sll v0, ra, 0 - - lw t9, enter-state(s7) ;; [ 60] (set! t9-9 enter-state) [] -> [t9: ] - lw v1, target-duck-stance(s7);; [ 61] (set! v1-26 target-duck-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 62] (s.w! (+ self 72) v1-26) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 63] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 64] (set! v1-27 v0-9) [v0: object ] -> [v1: object ] -B11: -L580: - lwu v1, 108(s6) ;; [ 65] (set! v1-28 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 66] (set! v1-29 (l.wu (+ v1-28 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 67] (set! v1-30 (l.w (+ v1-29 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 68] (set! v1-31 (sll v1-30 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 69] (set! a0-5 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 70] (set! v1-32 (+ v1-31 a0-5)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 71] (set! v1-33 (l.wu (+ v1-32 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 72] (set! v1-34 (l.wu (+ v1-33 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 73] (set! a0-6 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 74] (set! a0-7 (l.wu (+ a0-6 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 75] (set! a0-8 (l.w (+ a0-7 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 76] (set! a0-9 (sll a0-8 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 77] (set! a1-0 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 78] (set! a0-10 (+ a0-9 a1-0)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 79] (set! a0-11 (l.wu (+ a0-10 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [ 80] (set! a0-12 (l.wu (+ a0-11 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 81] (set! v1-35 (logior v1-34 a0-12)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 82] (set! a0-13 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 83] (set! a0-14 (l.wu (+ a0-13 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 84] (set! a0-15 (l.w (+ a0-14 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 85] (set! a0-16 (sll a0-15 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 86] (set! a1-1 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 87] (set! a0-17 (+ a0-16 a1-1)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 88] (set! a0-18 (l.wu (+ a0-17 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [ 89] (set! a0-19 (l.wu (+ a0-18 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 90] (set! v1-36 (logior v1-35 a0-19)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [ 91] (set! v1-37 (logand v1-36 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L581 ;; [ 92] (bl! (zero? v1-37) L581 (no-delay!)) [v1: pad-buttons ] -> [] -B12: - or v1, s7, r0 ;; [ 93] (set! v1-38 #f) [] -> [v1: '#f ] - -B13: - lw t9, can-jump?(s7) ;; [ 94] (set! t9-10 can-jump?) [] -> [t9: (function symbol symbol :behavior target) ] - or a0, s7, r0 ;; [ 95] (set! a0-20 #f) [] -> [a0: '#f ] - jalr ra, t9 ;; [ 96] (call! a0-20) - ;; [a0: '#f t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 97] (set! v1-38 v0-10) [v0: symbol ] -> [v1: symbol ] -B14: -L581: - beq s7, v1, L582 ;; [ 98] (b! (not v1-38) L582 (set! v1-39 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B15: - lw t9, enter-state(s7) ;; [ 99] (set! t9-11 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [100] (set! v1-40 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 4(v1) ;; [101] (set! f0-3 (l.f (+ v1-40 4))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [102] (set! a0-21 (fpr->gpr f0-3)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [103] (set! v1-41 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 8(v1) ;; [104] (set! f0-4 (l.f (+ v1-41 8))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [105] (set! a1-2 (fpr->gpr f0-4)) [] -> [a1: meters ] - or a2, s7, r0 ;; [106] (set! a2-0 #f) [] -> [a2: '#f ] - lw v1, target-jump(s7) ;; [107] (set! v1-42 target-jump) [] -> [v1: (state float float surface target) ] - sw v1, 72(s6) ;; [108] (s.w! (+ self 72) v1-42) - ;; [v1: (state float float surface target) s6: target ] -> [] - jalr ra, t9 ;; [109] (call! a0-21 a1-2 a2-0) - ;; [a0: meters a1: meters a2: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [110] (set! v1-43 v0-11) [v0: object ] -> [v1: object ] -B16: -L582: - lwu v1, 108(s6) ;; [111] (set! v1-44 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [112] (set! v1-45 (l.wu (+ v1-44 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [113] (set! v1-46 (l.w (+ v1-45 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [114] (set! v1-47 (sll v1-46 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [115] (set! a0-22 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [116] (set! v1-48 (+ v1-47 a0-22)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [117] (set! v1-49 (l.wu (+ v1-48 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [118] (set! v1-50 (l.wu (+ v1-49 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [119] (set! a0-23 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [120] (set! a0-24 (l.wu (+ a0-23 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [121] (set! a0-25 (l.w (+ a0-24 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [122] (set! a0-26 (sll a0-25 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [123] (set! a1-3 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [124] (set! a0-27 (+ a0-26 a1-3)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [125] (set! a0-28 (l.wu (+ a0-27 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [126] (set! a0-29 (l.wu (+ a0-28 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [127] (set! v1-51 (logior v1-50 a0-29)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [128] (set! a0-30 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [129] (set! a0-31 (l.wu (+ a0-30 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [130] (set! a0-32 (l.w (+ a0-31 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [131] (set! a0-33 (sll a0-32 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [132] (set! a1-4 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [133] (set! a0-34 (+ a0-33 a1-4)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [134] (set! a0-35 (l.wu (+ a0-34 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [135] (set! a0-36 (l.wu (+ a0-35 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [136] (set! v1-52 (logior v1-51 a0-36)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 8192 ;; [137] (set! v1-53 (logand v1-52 8192)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L583 ;; [138] (bl! (zero? v1-53) L583 (no-delay!)) [v1: pad-buttons ] -> [] -B17: - or v1, s7, r0 ;; [139] (set! v1-54 #f) [] -> [v1: '#f ] - -B18: - lw t9, can-feet?(s7) ;; [140] (set! t9-12 can-feet?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [141] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [142] (set! v1-54 v0-12) [v0: symbol ] -> [v1: symbol ] -B19: -L583: - beq s7, v1, L584 ;; [143] (b! (not v1-54) L584 (set! v1-55 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B20: - lw t9, enter-state(s7) ;; [144] (set! t9-13 enter-state) [] -> [t9: ] - lw v1, target-attack(s7) ;; [145] (set! v1-56 target-attack) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [146] (s.w! (+ self 72) v1-56) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [147] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [148] (set! v1-57 v0-13) [v0: object ] -> [v1: object ] -B21: -L584: - lw t9, can-hands?(s7) ;; [149] (set! t9-14 can-hands?) [] -> [t9: (function symbol symbol :behavior target) ] - daddiu a0, s7, #t ;; [150] (set! a0-37 #t) [] -> [a0: symbol ] - jalr ra, t9 ;; [151] (call! a0-37) - ;; [a0: symbol t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L585 ;; [152] (b! (not v0-14) L585 (set! v1-58 #f)) [v0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B22: - lw t9, enter-state(s7) ;; [153] (set! t9-15 enter-state) [] -> [t9: ] - lw v1, target-running-attack(s7);; [154] (set! v1-59 target-running-attack) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [155] (s.w! (+ self 72) v1-59) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [156] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [157] (set! v1-60 v0-15) [v0: object ] -> [v1: object ] -B23: -L585: - lw t9, slide-down-test(s7);; [158] (set! t9-16 slide-down-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [159] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - lw t9, fall-test(s7) ;; [160] (set! t9-17 fall-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [161] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (trans target-stance) - () - ((-> self state-hook)) - (if (logtest? (-> self water flags) (water-flags wt10)) - (go target-wade-stance) - ) - (when (= (-> self control ground-pat material) (pat-material ice)) - (set! (-> self control unknown-float81) 0.0) - (remove-exit) - (go target-ice-stance) - ) - (when (move-legs?) - (set! (-> self control unknown-float81) 0.0) - (remove-exit) - (go target-walk) - ) - (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) l1 r1) (can-duck?)) - (set! (-> self control unknown-float81) 0.0) - (remove-exit) - (go target-duck-stance) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (can-jump? #f) - ) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons circle) - ) - (can-feet?) - ) - (go target-attack) - ) - (if (can-hands? #t) - (go target-running-attack) - ) - (slide-down-test) - (fall-test) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (exit target-stance) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; s6-0: target -L586: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - mtc1 f0, r0 ;; [ 0] (set! f0-0 0) [] -> [] - lwu v1, 108(s6) ;; [ 1] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - swc1 f0, 1724(v1) ;; [ 2] (s.f! (+ v1-0 1724) f0-0) [v1: control-info ] -> [] - lw t9, target-state-hook-exit(s7);; [ 3] (set! t9-0 target-state-hook-exit) - ;; [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [ 4] (call!) [t9: (function none :behavior target) ] -> [v0: none ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (exit target-stance) - () - (set! (-> self control unknown-float81) 0.0) - (target-state-hook-exit) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (enter target-stance) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x00, fp? 0 ra? 0 ep? 1 -;; Warnings: -;; INFO: Return type mismatch time-frame vs none. - -;; s6-0: target -B0: -L587: - lw v1, *walk-mods*(s7) ;; [ 0] (set! v1-0 *walk-mods*) [] -> [v1: surface ] - lwu a0, 108(s6) ;; [ 1] (set! a0-0 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sw v1, 656(a0) ;; [ 2] (s.w! (+ a0-0 656) v1-0) [v1: surface a0: control-info ] -> [] - lw v1, *display*(s7) ;; [ 3] (set! v1-1 *display*) [] -> [v1: display ] - ld v0, 780(v1) ;; [ 4] (set! v0-0 (l.d (+ v1-1 780))) [v1: display ] -> [v0: time-frame ] - sd v0, 164(s6) ;; [ 5] (s.d! (+ self 164) v0-0) [v0: time-frame s6: target ] -> [] - jr ra - daddu sp, sp, r0 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler - (enter target-stance) - () - (set! (-> self control unknown-surface00) *walk-mods*) - (set! (-> self state-time) (-> *display* base-frame-counter)) - (none) - ) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function (code target-startup) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 0 ra? 1 ep? 1 - ;stack_vars: 8 bytes at 8 -;; Warnings: -;; INFO: Return type mismatch object vs none. - - -L588: - daddiu sp, sp, -16 - sd ra, 0(sp) -B0: - lwu s6, 44(s6) ;; [ 0] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu s6, 44(s6) ;; [ 1] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lw t9, enter-state(s7) ;; [ 2] (set! t9-0 enter-state) [] -> [t9: ] - lw v1, target-stance(s7) ;; [ 3] (set! v1-0 target-stance) [] -> [v1: (state target) ] - sw v1, 72(s6) ;; [ 4] (s.w! (+ self 72) v1-0) [v1: (state target) s6: target ] -> [] - jalr ra, t9 ;; [ 5] (call!) [t9: ] -> [v0: object ] - sll v0, ra, 0 - - ld ra, 0(sp) - jr ra - daddiu sp, sp, 16 - - sll r0, r0, 0 - sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(state-handler (code target-startup) () (suspend) (suspend) (go target-stance) (none)) - -;;-*-OpenGOAL-End-*- - -;; .endfunction - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function target-hit-ground-anim +; .function (method 115 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;stack: total 0x40, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 - ;fprs: f30 f28 -;; v1-2: art-joint-anim v1-95: art-joint-anim v1-187: art-joint-anim -;; v1-242: art-joint-anim v1-305: art-joint-anim a0-0: symbol -;; s5-0: joint-control-channel s5-1: joint-control-channel s6-0: target -;; gp-0: symbol f30-0: float f30-1: float -;; f30-2: float -L589: + ;gprs: gp s5 s4 +;; Warnings: +;; WARN: Type Propagation failed: Function (method 115 ashelin) has unknown type + +L170: daddiu sp, sp, -64 sd ra, 0(sp) sd fp, 8(sp) or fp, t9, r0 - sq s5, 16(sp) - sq gp, 32(sp) - swc1 f28, 48(sp) - swc1 f30, 52(sp) + sq s4, 16(sp) + sq s5, 32(sp) + sq gp, 48(sp) B0: - lwu v1, 120(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 1] (set! v1-1 (l.w (+ v1-0 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 2] (b! (<=0.si v1-1) L590 (set! v1-2 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L590 + or gp, a0, r0 ;; [ 0] (set! gp a0) + or a0, gp, r0 ;; [ 1] (set! a0 gp) + lwu v1, -4(a0) ;; [ 2] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 856(v1) ;; [ 3] (set! t9 (l.wu (+ v1 856))) + jalr ra, t9 ;; [ 4] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 5] (set! v1 v0) + addiu v1, r0, 22 ;; [ 6] (set! v1 22) + sb v1, 704(gp) ;; [ 7] (s.b! (+ gp 704) v1) + mtc1 f0, r0 ;; [ 8] (set! f0 0) + swc1 f0, 992(gp) ;; [ 9] (s.f! (+ gp 992) f0) + lui v1, 18504 ;; [ 10] (set! v1 #x48480000) + mtc1 f0, v1 ;; [ 11] (set! f0 (gpr->fpr v1)) + swc1 f0, 876(gp) ;; [ 12] (s.f! (+ gp 876) f0) + sw r0, 668(gp) ;; [ 13] (s.w! (+ gp 668) 0) + addiu v1, r0, 750 ;; [ 14] (set! v1 750) + sw v1, 672(gp) ;; [ 15] (s.w! (+ gp 672) v1) + or s5, gp, r0 ;; [ 16] (set! s5 gp) + lwu v1, -4(s5) ;; [ 17] (set! v1 (l.wu (+ s5 -4))) + lwu s4, 72(v1) ;; [ 18] (set! s4 (l.wu (+ v1 72))) + lw a0, *level*(s7) ;; [ 19] (set! a0 *level*) + lwu v1, -4(a0) ;; [ 20] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 108(v1) ;; [ 21] (set! t9 (l.wu (+ v1 108))) + daddiu a1, fp, L220 ;; [ 22] (set! a1 L220) "skel-ashelin" + or a2, s7, r0 ;; [ 23] (set! a2 #f) + jalr ra, t9 ;; [ 24] (call!) + sll v0, ra, 0 + + or a1, v0, r0 ;; [ 25] (set! a1 v0) + addiu a2, r0, 0 ;; [ 26] (set! a2 0) + or t9, s4, r0 ;; [ 27] (set! t9 s4) + or a0, s5, r0 ;; [ 28] (set! a0 s5) + jalr ra, t9 ;; [ 29] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 30] (set! v1 v0) + or a0, gp, r0 ;; [ 31] (set! a0 gp) + lwu v1, -4(a0) ;; [ 32] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 468(v1) ;; [ 33] (set! t9 (l.wu (+ v1 468))) + lw a1, *ashelin-nav-enemy-info*(s7);; [ 34] (set! a1 *ashelin-nav-enemy-info*) + jalr ra, t9 ;; [ 35] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 36] (set! v1 v0) + lwu v1, 484(gp) ;; [ 37] (set! v1 (l.wu (+ gp 484))) + addiu a0, r0, 1 ;; [ 38] (set! a0 1) + sb a0, 148(v1) ;; [ 39] (s.b! (+ v1 148) a0) + addiu a0, r0, 2 ;; [ 40] (set! a0 2) + sb a0, 149(v1) ;; [ 41] (s.b! (+ v1 149) a0) + sb r0, 150(v1) ;; [ 42] (s.b! (+ v1 150) 0) + daddiu a0, v1, 44 ;; [ 43] (set! a0 (+ v1 44)) + lui a1, 17976 ;; [ 44] (set! a1 #x4638e38e) + ori a1, a1, 58254 + mtc1 f0, a1 ;; [ 45] (set! f0 (gpr->fpr a1)) + swc1 f0, 0(a0) ;; [ 46] (s.f! a0 f0) + lui a1, 17976 ;; [ 47] (set! a1 #x4638e38e) + ori a1, a1, 58254 + mtc1 f0, a1 ;; [ 48] (set! f0 (gpr->fpr a1)) + swc1 f0, 4(a0) ;; [ 49] (s.f! (+ a0 4) f0) + mtc1 f0, r0 ;; [ 50] (set! f0 0) + swc1 f0, 8(a0) ;; [ 51] (s.f! (+ a0 8) f0) + lui a1, 16256 ;; [ 52] (set! a1 #x3f800000) + mtc1 f0, a1 ;; [ 53] (set! f0 (gpr->fpr a1)) + swc1 f0, 12(a0) ;; [ 54] (s.f! (+ a0 12) f0) + lui a0, 18161 ;; [ 55] (set! a0 #x46f1c71c) + ori a0, a0, 50972 + mtc1 f0, a0 ;; [ 56] (set! f0 (gpr->fpr a0)) + swc1 f0, 144(v1) ;; [ 57] (s.f! (+ v1 144) f0) + mfc1 v1, f0 ;; [ 58] (set! v1 (fpr->gpr f0)) + lw v1, bot(s7) ;; [ 59] (set! v1 bot) + lwu t9, 476(v1) ;; [ 60] (set! t9 (l.wu (+ v1 476))) + or a0, gp, r0 ;; [ 61] (set! a0 gp) + jalr ra, t9 ;; [ 62] (call!) + sll v0, ra, 0 + + lw a0, *default-dead-pool*(s7);; [ 63] (set! a0 *default-dead-pool*) + lwu v1, -4(a0) ;; [ 64] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 72(v1) ;; [ 65] (set! t9 (l.wu (+ v1 72))) + lw a1, simple-focus(s7) ;; [ 66] (set! a1 simple-focus) + addiu a2, r0, 16384 ;; [ 67] (set! a2 #x4000) + jalr ra, t9 ;; [ 68] (call!) + sll v0, ra, 0 + + or s5, v0, r0 ;; [ 69] (set! s5 v0) + beq s7, s5, L171 ;; [ 70] (b! (not s5) L171 (set! v1 #f)) or v1, s7, r0 B1: - lwu v1, 120(s6) ;; [ 3] (set! v1-3 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 4] (set! v1-4 (l.wu (+ v1-3 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 5] (set! v1-2 (l.wu (+ v1-4 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] + lw v1, simple-focus(s7) ;; [ 71] (set! v1 simple-focus) + lwu t9, 52(v1) ;; [ 72] (set! t9 (l.wu (+ v1 52))) + or a0, s5, r0 ;; [ 73] (set! a0 s5) + or a1, gp, r0 ;; [ 74] (set! a1 gp) + ori v1, r0, 65335 ;; [ 75] (set! v1 #xff37) + lw a2, simple-focus(s7) ;; [ 76] (set! a2 simple-focus) + lwu a2, 0(a2) ;; [ 77] (set! a2 (l.wu a2)) + daddu v1, v1, a2 ;; [ 78] (set! v1 (+ v1 a2)) + lwu a2, 0(v1) ;; [ 79] (set! a2 (l.wu v1)) + lui v1, 28672 ;; [ 80] (set! a3 #x70004000) + ori a3, v1, 16384 + jalr ra, t9 ;; [ 81] (call!) + sll v0, ra, 0 + + lw t9, run-function-in-process(s7);; [ 82] (set! t9 run-function-in-process) + or a0, s5, r0 ;; [ 83] (set! a0 s5) + lw a1, simple-focus-init-by-other(s7);; [ 84] (set! a1 simple-focus-init-by-other) + jalr ra, t9 ;; [ 85] (call!) + sll v0, ra, 0 + + lwu v1, 24(s5) ;; [ 86] (set! v1 (l.wu (+ s5 24))) B2: -L590: - lwu a1, 116(s6) ;; [ 6] (set! a1-0 (l.wu (+ self 116))) [s6: target ] -> [a1: draw-control ] - lwu a1, 4(a1) ;; [ 7] (set! a1-1 (l.wu (+ a1-0 4))) [a1: draw-control ] -> [a1: art-group ] - lwu a1, 280(a1) ;; [ 8] (set! a1-2 (l.wu (+ a1-1 280))) [a1: art-group ] -> [a1: art-element ] - dsubu a1, v1, a1 ;; [ 9] (set! a2-0 (= v1-2 a1-2)) [v1: art-joint-anim a1: art-element ] -> [a2: symbol ] - daddiu a2, s7, 8 - movn a2, s7, a1 - bnel s7, a2, L591 ;; [ 10] (bl! (truthy a2-0) L591 (no-delay!)) [a2: symbol ] -> [] -B3: - or a1, a2, r0 ;; [ 11] (set! a1-3 a2-0) [a2: symbol ] -> [a1: symbol ] - -B4: - lwu a1, 116(s6) ;; [ 12] (set! a1-4 (l.wu (+ self 116))) [s6: target ] -> [a1: draw-control ] - lwu a1, 4(a1) ;; [ 13] (set! a1-5 (l.wu (+ a1-4 4))) [a1: draw-control ] -> [a1: art-group ] - lwu a1, 284(a1) ;; [ 14] (set! a1-6 (l.wu (+ a1-5 284))) [a1: art-group ] -> [a1: art-element ] - dsubu a1, v1, a1 ;; [ 15] (set! a2-1 (= v1-2 a1-6)) [v1: art-joint-anim a1: art-element ] -> [a2: symbol ] - daddiu a2, s7, 8 - movn a2, s7, a1 - bnel s7, a2, L591 ;; [ 16] (bl! (truthy a2-1) L591 (no-delay!)) [a2: symbol ] -> [] -B5: - or a1, a2, r0 ;; [ 17] (set! a1-3 a2-1) [a2: symbol ] -> [a1: symbol ] - -B6: - lwu a1, 116(s6) ;; [ 18] (set! a1-7 (l.wu (+ self 116))) [s6: target ] -> [a1: draw-control ] - lwu a1, 4(a1) ;; [ 19] (set! a1-8 (l.wu (+ a1-7 4))) [a1: draw-control ] -> [a1: art-group ] - lwu a1, 292(a1) ;; [ 20] (set! a1-9 (l.wu (+ a1-8 292))) [a1: art-group ] -> [a1: art-element ] - dsubu a1, v1, a1 ;; [ 21] (set! a2-2 (= v1-2 a1-9)) [v1: art-joint-anim a1: art-element ] -> [a2: symbol ] - daddiu a2, s7, 8 - movn a2, s7, a1 - bnel s7, a2, L591 ;; [ 22] (bl! (truthy a2-2) L591 (no-delay!)) [a2: symbol ] -> [] -B7: - or a1, a2, r0 ;; [ 23] (set! a1-3 a2-2) [a2: symbol ] -> [a1: symbol ] - -B8: - lwu a1, 116(s6) ;; [ 24] (set! a1-10 (l.wu (+ self 116))) [s6: target ] -> [a1: draw-control ] - lwu a1, 4(a1) ;; [ 25] (set! a1-11 (l.wu (+ a1-10 4))) [a1: draw-control ] -> [a1: art-group ] - lwu a1, 296(a1) ;; [ 26] (set! a1-12 (l.wu (+ a1-11 296))) [a1: art-group ] -> [a1: art-element ] - dsubu v1, v1, a1 ;; [ 27] (set! a1-3 (= v1-2 a1-12)) [v1: art-joint-anim a1: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, v1 -B9: -L591: - beq s7, a1, L612 ;; [ 28] (b! (not a1-3) L612 (set! v1-5 #f)) [a1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B10: - lwu v1, 108(s6) ;; [ 29] (set! v1-6 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 30] (set! v1-7 (l.wu (+ v1-6 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 31] (set! v1-8 (l.w (+ v1-7 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 32] (set! v1-9 (sll v1-8 2)) [v1: int ] -> [v1: ] - lw a1, *cpad-list*(s7) ;; [ 33] (set! a1-13 *cpad-list*) [] -> [a1: cpad-list ] - daddu v1, v1, a1 ;; [ 34] (set! v1-10 (+ v1-9 a1-13)) - ;; [v1: a1: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 35] (set! v1-11 (l.wu (+ v1-10 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwc1 f0, 72(v1) ;; [ 36] (set! f0-0 (l.f (+ v1-11 72))) [v1: cpad-info ] -> [] - mtc1 f1, r0 ;; [ 37] (set! f1-0 0) [] -> [] - c.eq.s f0, f1 ;; [ 38] (b! (=.s f0-0 f1-0) L592 (set! v1-12 #t)) [] -> [v1: symbol ] - bc1t L592 - daddiu v1, s7, 8 - -B11: - or v1, s7, r0 ;; [ 39] (set! v1-12 #f) [] -> [v1: '#f ] -B12: -L592: - bnel s7, v1, L593 ;; [ 40] (bl! (truthy v1-12) L593 (no-delay!)) [v1: symbol ] -> [] -B13: - or gp, v1, r0 ;; [ 41] (set! gp-0 v1-12) [v1: symbol ] -> [gp: symbol ] - -B14: - lwu v1, 108(s6) ;; [ 42] (set! v1-13 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f0, 528(v1) ;; [ 43] (set! f0-1 (l.f (+ v1-13 528))) [v1: control-info ] -> [] - lui v1, L736 ;; [ 44] (set! v1-14 L736) [] -> [v1: ] - ori v1, v1, L736 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [ 45] (set! f1-1 (l.f v1-14)) [v1: ] -> [] - c.lt.s f0, f1 ;; [ 46] (b! (<.s f0-1 f1-1) L593 (set! gp-0 #t)) [] -> [gp: symbol ] - bc1t L593 - daddiu gp, s7, 8 - -B15: - or gp, s7, r0 ;; [ 47] (set! gp-0 #f) [] -> [gp: '#f ] -B16: -L593: - daddiu v1, s7, swim ;; [ 48] (set! v1-15 'swim) [] -> [v1: symbol ] - bne a0, v1, L594 ;; [ 49] (b! (!= arg0 v1-15) L594 (nop!)) [v1: symbol a0: symbol ] -> [] - sll r0, r0, 0 - -B17: - lui v1, L767 ;; [ 50] (set! v1-16 L767) [] -> [v1: ] - ori v1, v1, L767 - addu v1, fp, v1 - lw v1, 0(v1) ;; [ 51] (set! v1-17 (l.w v1-16)) [v1: ] -> [v1: int ] - beq r0, r0, L595 ;; [ 52] (b! #t L595 (nop!)) [] -> [] - sll r0, r0, 0 - -B18: -L594: - lui v1, L786 ;; [ 53] (set! v1-18 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw v1, 0(v1) ;; [ 54] (set! v1-17 (l.w v1-18)) [v1: ] -> [v1: int ] -B19: -L595: - mtc1 f30, v1 ;; [ 55] (set! f30-0 (gpr->fpr (the-as float v1-17))) [v1: float ] -> [] - lw t9, ja-channel-set!(s7);; [ 56] (set! t9-0 ja-channel-set!) - ;; [] -> [t9: (function int int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 57] (set! a0-1 1) [] -> [a0: ] - jalr ra, t9 ;; [ 58] (call! a0-1) - ;; [a0: t9: (function int int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 59] (set! v1-19 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 60] (set! v1-20 (l.wu (+ v1-19 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [ 61] (set! s5-0 (+ v1-20 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - beq s7, gp, L596 ;; [ 62] (b! (not gp-0) L596 (nop!)) [gp: symbol ] -> [] - sll r0, r0, 0 - -B20: - lwu v1, 116(s6) ;; [ 63] (set! v1-21 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 64] (set! v1-22 (l.wu (+ v1-21 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 288(v1) ;; [ 65] (set! v1-23 (l.wu (+ v1-22 288))) [v1: art-group ] -> [v1: art-element ] - beq r0, r0, L597 ;; [ 66] (b! #t L597 (nop!)) [] -> [] - sll r0, r0, 0 - -B21: -L596: - lwu v1, 116(s6) ;; [ 67] (set! v1-24 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 68] (set! v1-25 (l.wu (+ v1-24 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 300(v1) ;; [ 69] (set! v1-23 (l.wu (+ v1-25 300))) [v1: art-group ] -> [v1: art-element ] -B22: -L597: - sw v1, 12(s5) ;; [ 70] (s.w! (+ s5-0 12) v1-23) [v1: art-element s5: joint-control-channel ] -> [] - beq s7, gp, L598 ;; [ 71] (b! (not gp-0) L598 (nop!)) [gp: symbol ] -> [] - sll r0, r0, 0 - -B23: - lwu v1, 116(s6) ;; [ 72] (set! v1-26 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 73] (set! v1-27 (l.wu (+ v1-26 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 288(v1) ;; [ 74] (set! v1-28 (l.wu (+ v1-27 288))) [v1: art-group ] -> [v1: art-element ] - beq r0, r0, L599 ;; [ 75] (b! #t L599 (nop!)) [] -> [] - sll r0, r0, 0 - -B24: -L598: - lwu v1, 116(s6) ;; [ 76] (set! v1-29 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 77] (set! v1-30 (l.wu (+ v1-29 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 300(v1) ;; [ 78] (set! v1-28 (l.wu (+ v1-30 300))) [v1: art-group ] -> [v1: art-element ] -B25: -L599: - lwu v1, 44(v1) ;; [ 79] (set! (the-as art-joint-anim v1-31) (l.wu (+ (the-as art-joint-anim v1-28) 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 80] (set! v1-32 (l.h (+ v1-31 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 81] (set! v1-33 (+ v1-32 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 82] (set! f0-2 (gpr->fpr v1-33)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 83] (set! f0-3 (i2f f0-2)) [] -> [] - swc1 f0, 24(s5) ;; [ 84] (s.f! (+ s5-0 24) f0-3) [s5: joint-control-channel ] -> [] - lw t9, seek(s7) ;; [ 85] (set! t9-1 seek) [] -> [t9: (function float float float float) ] - mfc1 a0, f30 ;; [ 86] (set! a0-2 (fpr->gpr f30-0)) [] -> [a0: float ] - lui v1, L786 ;; [ 87] (set! v1-34 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a1, 0(v1) ;; [ 88] (set! a1-14 (l.w v1-34)) [v1: ] -> [a1: int ] - lui v1, L752 ;; [ 89] (set! v1-35 L752) [] -> [v1: ] - ori v1, v1, L752 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 90] (set! f0-4 (l.f v1-35)) [v1: ] -> [] - lw v1, *display*(s7) ;; [ 91] (set! v1-36 *display*) [] -> [v1: display ] - lwc1 f1, 904(v1) ;; [ 92] (set! f1-2 (l.f (+ v1-36 904))) [v1: display ] -> [] - mul.s f0, f0, f1 ;; [ 93] (set! f0-5 (*.s f0-4 f1-2)) [] -> [] - mfc1 a2, f0 ;; [ 94] (set! a2-3 (fpr->gpr f0-5)) [] -> [a2: float ] - jalr ra, t9 ;; [ 95] (call! a0-2 a1-14 a2-3) - ;; [a0: float a1: int a2: float t9: (function float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f30, v0 ;; [ 96] (set! f30-1 (gpr->fpr v0-1)) [v0: float ] -> [] - swc1 f30, 28(s5) ;; [ 97] (s.f! (+ s5-0 28) f30-1) [s5: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 98] (set! f0-6 0) [] -> [] - swc1 f0, 16(s5) ;; [ 99] (s.f! (+ s5-0 16) f0-6) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [100] (set! t9-2 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - beq s7, gp, L600 ;; [101] (b! (not gp-0) L600 (nop!)) [gp: symbol ] -> [] - sll r0, r0, 0 - -B26: - lwu v1, 116(s6) ;; [102] (set! v1-37 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [103] (set! v1-38 (l.wu (+ v1-37 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 288(v1) ;; [104] (set! a1-15 (l.wu (+ v1-38 288))) [v1: art-group ] -> [a1: art-element ] - beq r0, r0, L601 ;; [105] (b! #t L601 (nop!)) [] -> [] - sll r0, r0, 0 - -B27: -L600: - lwu v1, 116(s6) ;; [106] (set! v1-39 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [107] (set! v1-40 (l.wu (+ v1-39 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 300(v1) ;; [108] (set! a1-15 (l.wu (+ v1-40 300))) [v1: art-group ] -> [a1: art-element ] -B28: -L601: - lw a2, num-func-seek!(s7) ;; [109] (set! a2-4 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [110] (set! a0-3 s5-0) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [111] (call! a0-3 a1-15 a2-4) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [112] (set! v1-41 v0-2) [v0: int ] -> [v1: int ] -B29: -L602: - lwu a0, 128(s6) ;; [113] (set! a0-4 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [114] (set! v1-42 (l.wu (+ a0-4 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 52(v1) ;; [115] (set! t9-3 (l.wu (+ v1-42 52))) - ;; [v1: ] -> [t9: ] - jalr ra, t9 ;; [116] (call! a0-4) - ;; [a0: align-control t9: ] -> [v0: transformq ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [117] (set! v1-43 v0-3) [v0: transformq ] -> [v1: transformq ] - lwu a0, 128(s6) ;; [118] (set! a0-5 (l.wu (+ self 128))) [s6: target ] -> [a0: align-control ] - lwu v1, -4(a0) ;; [119] (set! v1-44 (l.wu (+ a0-5 -4))) - ;; [a0: align-control ] -> [v1: ] - lwu t9, 56(v1) ;; [120] (set! t9-4 (l.wu (+ v1-44 56))) - ;; [v1: ] -> [t9: ] - beq s7, gp, L603 ;; [121] (b! (not gp-0) L603 (nop!)) [gp: symbol ] -> [] - sll r0, r0, 0 - -B30: - addiu a1, r0, 2 ;; [122] (set! a1-16 2) [] -> [a1: ] - beq r0, r0, L604 ;; [123] (b! #t L604 (nop!)) [] -> [] - sll r0, r0, 0 - -B31: -L603: - addiu a1, r0, 6 ;; [124] (set! a1-16 6) [] -> [a1: ] -B32: -L604: - lui v1, L786 ;; [125] (set! v1-45 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a2, 0(v1) ;; [126] (set! a2-5 (l.w v1-45)) [v1: ] -> [a2: int ] - lui v1, L786 ;; [127] (set! v1-46 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a3, 0(v1) ;; [128] (set! a3-0 (l.w v1-46)) [v1: ] -> [a3: int ] - lui v1, L785 ;; [129] (set! v1-47 L785) [] -> [v1: ] - ori v1, v1, L785 - addu v1, fp, v1 - lw t0, 0(v1) ;; [130] (set! t0-0 (l.w v1-47)) [v1: ] -> [t0: int ] - jalr ra, t9 ;; [131] (call! a0-5 a1-16 a2-5 a3-0 t0-0) - ;; [a0: align-control a1: int a2: int a3: int t0: int t9: ] -> [v0: trsqv ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [132] (set! v1-48 v0-4) [v0: trsqv ] -> [v1: trsqv ] - lui v1, L779 ;; [133] (set! v1-49 L779) [] -> [v1: ] - ori v1, v1, L779 - addu v1, fp, v1 - lwc1 f28, 0(v1) ;; [134] (set! f28-0 (l.f v1-49)) [v1: ] -> [] - lw t9, ja-aframe-num(s7) ;; [135] (set! t9-5 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [136] (set! a0-6 0) [] -> [a0: ] - jalr ra, t9 ;; [137] (call! a0-6) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [138] (set! f0-7 (gpr->fpr v0-5)) [v0: float ] -> [] - c.lt.s f28, f0 ;; [139] (b! (>=.s f28-0 f0-7) L605 (set! v1-50 #t)) [] -> [v1: symbol ] - bc1f L605 - daddiu v1, s7, 8 - -B33: - or v1, s7, r0 ;; [140] (set! v1-50 #f) [] -> [v1: '#f ] -B34: -L605: - beql s7, v1, L607 ;; [141] (bl! (not v1-50) L607 (no-delay!)) [v1: symbol ] -> [] -B35: - or v1, v1, r0 ;; [142] (set! v1-51 v1-50) [v1: symbol ] -> [v1: symbol ] - -B36: - lw t9, ja-aframe-num(s7) ;; [143] (set! t9-6 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [144] (set! a0-7 0) [] -> [a0: ] - jalr ra, t9 ;; [145] (call! a0-7) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [146] (set! f0-8 (gpr->fpr v0-6)) [v0: float ] -> [] - lui v1, L778 ;; [147] (set! v1-52 L778) [] -> [v1: ] - ori v1, v1, L778 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [148] (set! f1-3 (l.f v1-52)) [v1: ] -> [] - c.lt.s f0, f1 ;; [149] (b! (>=.s f0-8 f1-3) L606 (set! v1-53 #t)) [] -> [v1: symbol ] - bc1f L606 - daddiu v1, s7, 8 - -B37: - or v1, s7, r0 ;; [150] (set! v1-53 #f) [] -> [v1: '#f ] -B38: -L606: - beql s7, v1, L607 ;; [151] (bl! (not v1-53) L607 (no-delay!)) [v1: symbol ] -> [] -B39: - or v1, v1, r0 ;; [152] (set! v1-51 v1-53) [v1: symbol ] -> [v1: symbol ] - -B40: - lwu v1, 72(s6) ;; [153] (set! v1-54 (l.wu (+ self 72))) [s6: target ] -> [v1: state ] - lwu v1, 0(v1) ;; [154] (set! v1-55 (l.wu v1-54)) [v1: state ] -> [v1: symbol ] - daddiu a0, s7, target-flop-hit-ground;; [155] (set! a0-8 'target-flop-hit-ground) [] -> [a0: symbol ] - dsubu v1, v1, a0 ;; [156] (set! a0-9 (= v1-55 a0-8)) [v1: symbol a0: symbol ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L607 ;; [157] (bl! (not a0-9) L607 (no-delay!)) [a0: symbol ] -> [] -B41: - or v1, a0, r0 ;; [158] (set! v1-51 a0-9) [a0: symbol ] -> [v1: symbol ] - -B42: - lwu v1, 108(s6) ;; [159] (set! v1-56 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lw v1, 2180(v1) ;; [160] (set! v1-57 (l.w (+ v1-56 2180))) [v1: control-info ] -> [v1: spool-anim ] - daddiu a0, s7, stuck ;; [161] (set! a0-10 'stuck) [] -> [a0: symbol ] - dsubu a0, v1, a0 ;; [162] (set! v1-51 (!= v1-57 a0-10)) [v1: spool-anim a0: symbol ] -> [v1: symbol ] - daddiu v1, s7, 8 - movz v1, s7, a0 -B43: -L607: - beq s7, v1, L611 ;; [163] (b! (not v1-51) L611 (set! v1-58 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B44: - lw v1, target-jump-event-handler(s7);; [164] (set! v1-59 target-jump-event-handler) - ;; [] -> [v1: (function process int symbol event-message-block object :behavior target) ] - sw v1, 64(s6) ;; [165] (s.w! (+ self 64) v1-59) - ;; [v1: (function process int symbol event-message-block object :behavior target) s6: target ] -> [] - lwu v1, 108(s6) ;; [166] (set! v1-60 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [167] (set! v1-61 (l.wu (+ v1-60 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [168] (set! v1-62 (l.w (+ v1-61 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [169] (set! v1-63 (sll v1-62 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [170] (set! a0-11 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [171] (set! v1-64 (+ v1-63 a0-11)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [172] (set! v1-65 (l.wu (+ v1-64 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 40(v1) ;; [173] (set! v1-66 (l.wu (+ v1-65 40))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [174] (set! v1-67 (logand v1-66 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L608 ;; [175] (bl! (zero? v1-67) L608 (no-delay!)) [v1: pad-buttons ] -> [] -B45: - or v1, s7, r0 ;; [176] (set! v1-68 #f) [] -> [v1: '#f ] - -B46: - lw t9, can-jump?(s7) ;; [177] (set! t9-7 can-jump?) [] -> [t9: (function symbol symbol :behavior target) ] - or a0, s7, r0 ;; [178] (set! a0-12 #f) [] -> [a0: '#f ] - jalr ra, t9 ;; [179] (call! a0-12) - ;; [a0: '#f t9: (function symbol symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [180] (set! v1-68 v0-7) [v0: symbol ] -> [v1: symbol ] -B47: -L608: - beq s7, v1, L611 ;; [181] (b! (not v1-68) L611 (set! v1-69 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B48: - lw t9, ja-channel-set!(s7);; [182] (set! t9-8 ja-channel-set!) - ;; [] -> [t9: (function int int :behavior process-drawable) ] - addiu a0, r0, 0 ;; [183] (set! a0-13 0) [] -> [a0: ] - jalr ra, t9 ;; [184] (call! a0-13) - ;; [a0: t9: (function int int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lw t9, enter-state(s7) ;; [185] (set! t9-9 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [186] (set! v1-70 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 36(v1) ;; [187] (set! f0-9 (l.f (+ v1-70 36))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [188] (set! a0-14 (fpr->gpr f0-9)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [189] (set! v1-71 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 40(v1) ;; [190] (set! f0-10 (l.f (+ v1-71 40))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [191] (set! a1-17 (fpr->gpr f0-10)) [] -> [a1: meters ] - beq s7, gp, L609 ;; [192] (b! (not gp-0) L609 (nop!)) [gp: symbol ] -> [] - sll r0, r0, 0 - -B49: - daddiu a2, s7, flop ;; [193] (set! a2-6 'flop) [] -> [a2: symbol ] - beq r0, r0, L610 ;; [194] (b! #t L610 (nop!)) [] -> [] - sll r0, r0, 0 - -B50: -L609: - daddiu a2, s7, flop-forward;; [195] (set! a2-6 'flop-forward) [] -> [a2: symbol ] -B51: -L610: - lw v1, target-high-jump(s7);; [196] (set! v1-72 target-high-jump) [] -> [v1: (state float float basic target) ] - sw v1, 72(s6) ;; [197] (s.w! (+ self 72) v1-72) [v1: (state float float basic target) s6: target ] -> [] - jalr ra, t9 ;; [198] (call! a0-14 a1-17 a2-6) - ;; [a0: meters a1: meters a2: symbol t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [199] (set! v1-73 v0-9) [v0: object ] -> [v1: object ] -B52: -L611: - lwu s6, 44(s6) ;; [200] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [201] (set! v1-74 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [202] (set! v1-75 (l.wu (+ v1-74 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [203] (set! s5-1 (+ v1-75 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - lwu v1, 12(s5) ;; [204] (set! v1-76 (l.wu (+ s5-1 12))) - ;; [s5: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [205] (set! v1-77 (l.wu (+ v1-76 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [206] (set! v1-78 (l.h (+ v1-77 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [207] (set! v1-79 (+ v1-78 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [208] (set! f0-11 (gpr->fpr v1-79)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [209] (set! f0-12 (i2f f0-11)) [] -> [] - swc1 f0, 24(s5) ;; [210] (s.f! (+ s5-1 24) f0-12) [s5: joint-control-channel ] -> [] - lw t9, seek(s7) ;; [211] (set! t9-10 seek) [] -> [t9: (function float float float float) ] - mfc1 a0, f30 ;; [212] (set! a0-15 (fpr->gpr f30-1)) [] -> [a0: float ] - lui v1, L786 ;; [213] (set! v1-80 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lw a1, 0(v1) ;; [214] (set! a1-18 (l.w v1-80)) [v1: ] -> [a1: int ] - lui v1, L752 ;; [215] (set! v1-81 L752) [] -> [v1: ] - ori v1, v1, L752 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [216] (set! f0-13 (l.f v1-81)) [v1: ] -> [] - lw v1, *display*(s7) ;; [217] (set! v1-82 *display*) [] -> [v1: display ] - lwc1 f1, 904(v1) ;; [218] (set! f1-4 (l.f (+ v1-82 904))) [v1: display ] -> [] - mul.s f0, f0, f1 ;; [219] (set! f0-14 (*.s f0-13 f1-4)) [] -> [] - mfc1 a2, f0 ;; [220] (set! a2-7 (fpr->gpr f0-14)) [] -> [a2: float ] - jalr ra, t9 ;; [221] (call! a0-15 a1-18 a2-7) - ;; [a0: float a1: int a2: float t9: (function float float float float) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f30, v0 ;; [222] (set! f30-1 (gpr->fpr v0-10)) [v0: float ] -> [] - swc1 f30, 28(s5) ;; [223] (s.f! (+ s5-1 28) f30-1) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [224] (set! t9-11 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [225] (set! a1-19 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [226] (set! a2-8 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [227] (set! a0-16 s5-1) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [228] (call! a0-16 a1-19 a2-8) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [229] (set! v1-83 v0-11) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [230] (set! t9-12 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [231] (set! a0-17 0) [] -> [a0: ] - jalr ra, t9 ;; [232] (call! a0-17) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L602 ;; [233] (b! (not v0-12) L602 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B53: - or v0, s7, r0 ;; [234] (set! v0-13 #f) [] -> [v0: '#f ] - beq r0, r0, L646 ;; [235] (b! #t L646 (nop!)) [] -> [] - sll r0, r0, 0 - -B54: -L612: - lwu v1, 108(s6) ;; [236] (set! v1-84 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 260(v1) ;; [237] (set! v1-85 (l.wu (+ v1-84 260))) [v1: control-info ] -> [v1: pat-surface ] - dsll32 v1, v1, 20 ;; [238] (set! v1-86 (sll v1-85 52)) [v1: pat-surface ] -> [v1: ( << 52) ] - dsrl32 v1, v1, 26 ;; [239] (set! v1-87 (srl v1-86 58)) [v1: ( << 52) ] -> [v1: pat-material ] - daddiu v1, v1, -1 ;; [240] (set! v1-88 (+ v1-87 -1)) - ;; [v1: pat-material ] -> [v1: ] - daddiu a0, s7, 8 ;; [241] (set! a0-18 (zero? v1-88)) [v1: ] -> [a0: symbol ] - movn a0, s7, v1 - beql s7, a0, L613 ;; [242] (bl! (not a0-18) L613 (no-delay!)) [a0: symbol ] -> [] -B55: - or v1, a0, r0 ;; [243] (set! v1-89 a0-18) [a0: symbol ] -> [v1: symbol ] - -B56: - lui v1, L777 ;; [244] (set! v1-90 L777) [] -> [v1: ] - ori v1, v1, L777 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [245] (set! f0-15 (l.f v1-90)) [v1: ] -> [] - lwu v1, 108(s6) ;; [246] (set! v1-91 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwc1 f1, 528(v1) ;; [247] (set! f1-5 (l.f (+ v1-91 528))) [v1: control-info ] -> [] - c.lt.s f0, f1 ;; [248] (b! (<.s f0-15 f1-5) L613 (set! v1-89 #t)) [] -> [v1: symbol ] - bc1t L613 - daddiu v1, s7, 8 - -B57: - or v1, s7, r0 ;; [249] (set! v1-89 #f) [] -> [v1: '#f ] -B58: -L613: - beq s7, v1, L614 ;; [250] (b! (not v1-89) L614 (set! v1-92 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B59: - or v0, s7, r0 ;; [251] (set! v0-13 #f) [] -> [v0: '#f ] - beq r0, r0, L646 ;; [252] (b! #t L646 (nop!)) [] -> [] - sll r0, r0, 0 - -B60: -L614: - lwu v1, 120(s6) ;; [253] (set! v1-93 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [254] (set! v1-94 (l.w (+ v1-93 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [255] (b! (<=0.si v1-94) L615 (set! v1-95 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L615 - or v1, s7, r0 - -B61: - lwu v1, 120(s6) ;; [256] (set! v1-96 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [257] (set! v1-97 (l.wu (+ v1-96 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [258] (set! v1-95 (l.wu (+ v1-97 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B62: -L615: - lwu a0, 116(s6) ;; [259] (set! a0-19 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [260] (set! a0-20 (l.wu (+ a0-19 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 180(a0) ;; [261] (set! a0-21 (l.wu (+ a0-20 180))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [262] (set! a1-20 (= v1-95 a0-21)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L616 ;; [263] (bl! (truthy a1-20) L616 (no-delay!)) [a1: symbol ] -> [] -B63: - or a0, a1, r0 ;; [264] (set! a0-22 a1-20) [a1: symbol ] -> [a0: symbol ] - -B64: - lwu a0, 116(s6) ;; [265] (set! a0-23 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [266] (set! a0-24 (l.wu (+ a0-23 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 196(a0) ;; [267] (set! a0-25 (l.wu (+ a0-24 196))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [268] (set! a1-21 (= v1-95 a0-25)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L616 ;; [269] (bl! (truthy a1-21) L616 (no-delay!)) [a1: symbol ] -> [] -B65: - or a0, a1, r0 ;; [270] (set! a0-22 a1-21) [a1: symbol ] -> [a0: symbol ] - -B66: - lwu a0, 116(s6) ;; [271] (set! a0-26 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [272] (set! a0-27 (l.wu (+ a0-26 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 200(a0) ;; [273] (set! a0-28 (l.wu (+ a0-27 200))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [274] (set! a0-22 (= v1-95 a0-28)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B67: -L616: - bnel s7, a0, L618 ;; [275] (bl! (truthy a0-22) L618 (no-delay!)) [a0: symbol ] -> [] -B68: - or v1, a0, r0 ;; [276] (set! v1-98 a0-22) [a0: symbol ] -> [v1: symbol ] - -B69: - lwu v1, 120(s6) ;; [277] (set! v1-99 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [278] (set! v1-100 (l.w (+ v1-99 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [279] (b! (<=0.si v1-100) L617 (set! v1-101 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L617 - or v1, s7, r0 - -B70: - lwu v1, 120(s6) ;; [280] (set! v1-102 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [281] (set! v1-103 (l.wu (+ v1-102 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [282] (set! v1-101 (l.wu (+ v1-103 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B71: -L617: - lwu a0, 116(s6) ;; [283] (set! a0-29 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [284] (set! a0-30 (l.wu (+ a0-29 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 164(a0) ;; [285] (set! a0-31 (l.wu (+ a0-30 164))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [286] (set! a0-32 (= v1-101 a0-31)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L618 ;; [287] (bl! (not a0-32) L618 (no-delay!)) [a0: symbol ] -> [] -B72: - or v1, a0, r0 ;; [288] (set! v1-98 a0-32) [a0: symbol ] -> [v1: symbol ] - -B73: - lw t9, ja-aframe-num(s7) ;; [289] (set! t9-13 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [290] (set! a0-33 0) [] -> [a0: ] - jalr ra, t9 ;; [291] (call! a0-33) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [292] (set! f0-16 (gpr->fpr v0-14)) [v0: float ] -> [] - lui v1, L745 ;; [293] (set! v1-104 L745) [] -> [v1: ] - ori v1, v1, L745 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [294] (set! f1-6 (l.f v1-104)) [v1: ] -> [] - c.lt.s f0, f1 ;; [295] (b! (>=.s f0-16 f1-6) L618 (set! v1-98 #t)) [] -> [v1: symbol ] - bc1f L618 - daddiu v1, s7, 8 - -B74: - or v1, s7, r0 ;; [296] (set! v1-98 #f) [] -> [v1: '#f ] -B75: -L618: - beq s7, v1, L620 ;; [297] (b! (not v1-98) L620 (set! v1-105 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B76: - lw t9, ja-channel-push!(s7);; [298] (set! t9-14 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [299] (set! a0-34 1) [] -> [a0: ] - addiu a1, r0, 6 ;; [300] (set! a1-22 6) [] -> [a1: ] - jalr ra, t9 ;; [301] (call! a0-34 a1-22) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [302] (set! v1-106 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [303] (set! v1-107 (l.wu (+ v1-106 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [304] (set! a0-35 (+ v1-107 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [305] (set! v1-108 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [306] (set! v1-109 (l.wu (+ v1-108 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 168(v1) ;; [307] (set! v1-110 (l.wu (+ v1-109 168))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [308] (s.w! (+ a0-35 12) v1-110) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [309] (set! v1-111 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [310] (set! v1-112 (l.wu (+ v1-111 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 168(v1) ;; [311] (set! v1-113 (l.wu (+ v1-112 168))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [312] (set! (the-as art-joint-anim v1-114) (l.wu (+ v1-113 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [313] (set! v1-115 (l.h (+ v1-114 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [314] (set! v1-116 (+ v1-115 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [315] (set! f0-17 (gpr->fpr v1-116)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [316] (set! f0-18 (i2f f0-17)) [] -> [] - swc1 f0, 24(a0) ;; [317] (s.f! (+ a0-35 24) f0-18) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [318] (set! v1-117 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [319] (set! f0-19 (l.f v1-117)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [320] (s.f! (+ a0-35 28) f0-19) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [321] (set! f0-20 0) [] -> [] - swc1 f0, 16(a0) ;; [322] (s.f! (+ a0-35 16) f0-20) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [323] (set! t9-15 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [324] (set! v1-118 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [325] (set! v1-119 (l.wu (+ v1-118 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 168(v1) ;; [326] (set! a1-23 (l.wu (+ v1-119 168))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [327] (set! a2-9 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [328] (call! a0-35 a1-23 a2-9) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [329] (set! v1-120 v0-16) [v0: int ] -> [v1: int ] -B77: -L619: - lwu s6, 44(s6) ;; [330] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [331] (set! v1-121 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [332] (set! v1-122 (l.wu (+ v1-121 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [333] (set! a0-36 (+ v1-122 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [334] (set! v1-123 (l.wu (+ a0-36 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [335] (set! v1-124 (l.wu (+ v1-123 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [336] (set! v1-125 (l.h (+ v1-124 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [337] (set! v1-126 (+ v1-125 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [338] (set! f0-21 (gpr->fpr v1-126)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [339] (set! f0-22 (i2f f0-21)) [] -> [] - swc1 f0, 24(a0) ;; [340] (s.f! (+ a0-36 24) f0-22) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [341] (set! v1-127 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [342] (set! f0-23 (l.f v1-127)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [343] (s.f! (+ a0-36 28) f0-23) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [344] (set! t9-16 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [345] (set! a1-24 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [346] (set! a2-10 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [347] (call! a0-36 a1-24 a2-10) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [348] (set! v1-128 v0-17) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [349] (set! t9-17 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [350] (set! a0-37 0) [] -> [a0: ] - jalr ra, t9 ;; [351] (call! a0-37) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L619 ;; [352] (b! (not v0-18) L619 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B78: - or v0, s7, r0 ;; [353] (set! v0-13 #f) [] -> [v0: '#f ] - beq r0, r0, L646 ;; [354] (b! #t L646 (nop!)) [] -> [] - sll r0, r0, 0 - -B79: -L620: - lwu v1, 120(s6) ;; [355] (set! v1-129 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [356] (set! v1-130 (l.w (+ v1-129 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [357] (b! (<=0.si v1-130) L621 (set! v1-131 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L621 - or v1, s7, r0 - -B80: - lwu v1, 120(s6) ;; [358] (set! v1-132 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [359] (set! v1-133 (l.wu (+ v1-132 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [360] (set! v1-131 (l.wu (+ v1-133 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B81: -L621: - lwu a0, 116(s6) ;; [361] (set! a0-38 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [362] (set! a0-39 (l.wu (+ a0-38 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 164(a0) ;; [363] (set! a0-40 (l.wu (+ a0-39 164))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [364] (set! a0-41 (= v1-131 a0-40)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L622 ;; [365] (bl! (not a0-41) L622 (no-delay!)) [a0: symbol ] -> [] -B82: - or v1, a0, r0 ;; [366] (set! v1-134 a0-41) [a0: symbol ] -> [v1: symbol ] - -B83: - lw t9, ja-aframe-num(s7) ;; [367] (set! t9-18 ja-aframe-num) - ;; [] -> [t9: (function int float :behavior process-drawable) ] - addiu a0, r0, 0 ;; [368] (set! a0-42 0) [] -> [a0: ] - jalr ra, t9 ;; [369] (call! a0-42) - ;; [a0: t9: (function int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [370] (set! f0-24 (gpr->fpr v0-19)) [v0: float ] -> [] - lui v1, L727 ;; [371] (set! v1-135 L727) [] -> [v1: ] - ori v1, v1, L727 - addu v1, fp, v1 - lwc1 f1, 0(v1) ;; [372] (set! f1-7 (l.f v1-135)) [v1: ] -> [] - c.lt.s f0, f1 ;; [373] (b! (>=.s f0-24 f1-7) L622 (set! v1-134 #t)) [] -> [v1: symbol ] - bc1f L622 - daddiu v1, s7, 8 - -B84: - or v1, s7, r0 ;; [374] (set! v1-134 #f) [] -> [v1: '#f ] -B85: -L622: - beq s7, v1, L625 ;; [375] (b! (not v1-134) L625 (set! v1-136 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B86: - lw t9, ja-channel-set!(s7);; [376] (set! t9-19 ja-channel-set!) - ;; [] -> [t9: (function int int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [377] (set! a0-43 1) [] -> [a0: ] - jalr ra, t9 ;; [378] (call! a0-43) - ;; [a0: t9: (function int int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [379] (set! v1-137 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [380] (set! v1-138 (l.wu (+ v1-137 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [381] (set! a0-44 (+ v1-138 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [382] (set! v1-139 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [383] (set! v1-140 (l.wu (+ v1-139 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 184(v1) ;; [384] (set! v1-141 (l.wu (+ v1-140 184))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [385] (s.w! (+ a0-44 12) v1-141) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [386] (set! v1-142 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [387] (set! v1-143 (l.wu (+ v1-142 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 184(v1) ;; [388] (set! v1-144 (l.wu (+ v1-143 184))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [389] (set! (the-as art-joint-anim v1-145) (l.wu (+ v1-144 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [390] (set! v1-146 (l.h (+ v1-145 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [391] (set! v1-147 (+ v1-146 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [392] (set! f0-25 (gpr->fpr v1-147)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [393] (set! f0-26 (i2f f0-25)) [] -> [] - swc1 f0, 24(a0) ;; [394] (s.f! (+ a0-44 24) f0-26) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [395] (set! v1-148 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [396] (set! f0-27 (l.f v1-148)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [397] (s.f! (+ a0-44 28) f0-27) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [398] (set! f0-28 0) [] -> [] - swc1 f0, 16(a0) ;; [399] (s.f! (+ a0-44 16) f0-28) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [400] (set! t9-20 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [401] (set! v1-149 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [402] (set! v1-150 (l.wu (+ v1-149 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 184(v1) ;; [403] (set! a1-25 (l.wu (+ v1-150 184))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [404] (set! a2-11 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [405] (call! a0-44 a1-25 a2-11) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [406] (set! v1-151 v0-21) [v0: int ] -> [v1: int ] -B87: -L623: - lwu s6, 44(s6) ;; [407] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [408] (set! v1-152 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [409] (set! v1-153 (l.wu (+ v1-152 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [410] (set! a0-45 (+ v1-153 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [411] (set! v1-154 (l.wu (+ a0-45 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [412] (set! v1-155 (l.wu (+ v1-154 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [413] (set! v1-156 (l.h (+ v1-155 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [414] (set! v1-157 (+ v1-156 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [415] (set! f0-29 (gpr->fpr v1-157)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [416] (set! f0-30 (i2f f0-29)) [] -> [] - swc1 f0, 24(a0) ;; [417] (s.f! (+ a0-45 24) f0-30) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [418] (set! v1-158 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [419] (set! f0-31 (l.f v1-158)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [420] (s.f! (+ a0-45 28) f0-31) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [421] (set! t9-21 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [422] (set! a1-26 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [423] (set! a2-12 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [424] (call! a0-45 a1-26 a2-12) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [425] (set! v1-159 v0-22) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [426] (set! t9-22 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [427] (set! a0-46 0) [] -> [a0: ] - jalr ra, t9 ;; [428] (call! a0-46) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L623 ;; [429] (b! (not v0-23) L623 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B88: - or v1, s7, r0 ;; [430] (set! v1-160 #f) [] -> [v1: '#f ] - lwu v1, 120(s6) ;; [431] (set! v1-161 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [432] (set! v1-162 (l.wu (+ v1-161 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [433] (set! gp-1 (+ v1-162 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lwu v1, 116(s6) ;; [434] (set! v1-163 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [435] (set! v1-164 (l.wu (+ v1-163 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 168(v1) ;; [436] (set! v1-165 (l.wu (+ v1-164 168))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(gp) ;; [437] (s.w! (+ gp-1 12) v1-165) [v1: art-element gp: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [438] (set! v1-166 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [439] (set! v1-167 (l.wu (+ v1-166 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 168(v1) ;; [440] (set! v1-168 (l.wu (+ v1-167 168))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [441] (set! (the-as art-joint-anim v1-169) (l.wu (+ v1-168 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [442] (set! v1-170 (l.h (+ v1-169 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [443] (set! v1-171 (+ v1-170 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [444] (set! f0-32 (gpr->fpr v1-171)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [445] (set! f0-33 (i2f f0-32)) [] -> [] - swc1 f0, 24(gp) ;; [446] (s.f! (+ gp-1 24) f0-33) [gp: joint-control-channel ] -> [] - lui v1, L786 ;; [447] (set! v1-172 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [448] (set! f0-34 (l.f v1-172)) [v1: ] -> [] - swc1 f0, 28(gp) ;; [449] (s.f! (+ gp-1 28) f0-34) [gp: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [450] (set! t9-23 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L746 ;; [451] (set! v1-173 L746) [] -> [v1: ] - ori v1, v1, L746 - addu v1, fp, v1 - lw a0, 0(v1) ;; [452] (set! a0-47 (l.w v1-173)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [453] (set! a1-27 0) [] -> [a1: ] - jalr ra, t9 ;; [454] (call! a0-47 a1-27) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [455] (set! f0-35 (gpr->fpr v0-24)) [v0: float ] -> [] - swc1 f0, 16(gp) ;; [456] (s.f! (+ gp-1 16) f0-35) [gp: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [457] (set! t9-24 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [458] (set! v1-174 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [459] (set! v1-175 (l.wu (+ v1-174 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 168(v1) ;; [460] (set! a1-28 (l.wu (+ v1-175 168))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [461] (set! a2-13 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, gp, r0 ;; [462] (set! a0-48 gp-1) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [463] (call! a0-48 a1-28 a2-13) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [464] (set! v1-176 v0-25) [v0: int ] -> [v1: int ] -B89: -L624: - lwu s6, 44(s6) ;; [465] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [466] (set! v1-177 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [467] (set! v1-178 (l.wu (+ v1-177 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [468] (set! a0-49 (+ v1-178 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [469] (set! v1-179 (l.wu (+ a0-49 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [470] (set! v1-180 (l.wu (+ v1-179 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [471] (set! v1-181 (l.h (+ v1-180 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [472] (set! v1-182 (+ v1-181 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [473] (set! f0-36 (gpr->fpr v1-182)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [474] (set! f0-37 (i2f f0-36)) [] -> [] - swc1 f0, 24(a0) ;; [475] (s.f! (+ a0-49 24) f0-37) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [476] (set! v1-183 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [477] (set! f0-38 (l.f v1-183)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [478] (s.f! (+ a0-49 28) f0-38) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [479] (set! t9-25 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [480] (set! a1-29 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [481] (set! a2-14 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [482] (call! a0-49 a1-29 a2-14) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [483] (set! v1-184 v0-26) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [484] (set! t9-26 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [485] (set! a0-50 0) [] -> [a0: ] - jalr ra, t9 ;; [486] (call! a0-50) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L624 ;; [487] (b! (not v0-27) L624 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B90: - or v0, s7, r0 ;; [488] (set! v0-13 #f) [] -> [v0: '#f ] - beq r0, r0, L646 ;; [489] (b! #t L646 (nop!)) [] -> [] - sll r0, r0, 0 - -B91: -L625: - lwu v1, 120(s6) ;; [490] (set! v1-185 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [491] (set! v1-186 (l.w (+ v1-185 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [492] (b! (<=0.si v1-186) L626 (set! v1-187 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L626 - or v1, s7, r0 - -B92: - lwu v1, 120(s6) ;; [493] (set! v1-188 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [494] (set! v1-189 (l.wu (+ v1-188 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [495] (set! v1-187 (l.wu (+ v1-189 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B93: -L626: - lwu a0, 116(s6) ;; [496] (set! a0-51 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [497] (set! a0-52 (l.wu (+ a0-51 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 164(a0) ;; [498] (set! a0-53 (l.wu (+ a0-52 164))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [499] (set! a1-30 (= v1-187 a0-53)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L627 ;; [500] (bl! (truthy a1-30) L627 (no-delay!)) [a1: symbol ] -> [] -B94: - or a0, a1, r0 ;; [501] (set! a0-54 a1-30) [a1: symbol ] -> [a0: symbol ] - -B95: - lwu a0, 116(s6) ;; [502] (set! a0-55 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [503] (set! a0-56 (l.wu (+ a0-55 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 192(a0) ;; [504] (set! a0-57 (l.wu (+ a0-56 192))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [505] (set! a0-54 (= v1-187 a0-57)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B96: -L627: - beq s7, a0, L630 ;; [506] (b! (not a0-54) L630 (set! v1-190 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B97: - lw t9, ja-channel-set!(s7);; [507] (set! t9-27 ja-channel-set!) - ;; [] -> [t9: (function int int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [508] (set! a0-58 1) [] -> [a0: ] - jalr ra, t9 ;; [509] (call! a0-58) - ;; [a0: t9: (function int int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [510] (set! v1-191 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [511] (set! v1-192 (l.wu (+ v1-191 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [512] (set! gp-2 (+ v1-192 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lwu v1, 116(s6) ;; [513] (set! v1-193 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [514] (set! v1-194 (l.wu (+ v1-193 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 184(v1) ;; [515] (set! v1-195 (l.wu (+ v1-194 184))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(gp) ;; [516] (s.w! (+ gp-2 12) v1-195) [v1: art-element gp: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [517] (set! v1-196 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [518] (set! v1-197 (l.wu (+ v1-196 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 184(v1) ;; [519] (set! v1-198 (l.wu (+ v1-197 184))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [520] (set! (the-as art-joint-anim v1-199) (l.wu (+ v1-198 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [521] (set! v1-200 (l.h (+ v1-199 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [522] (set! v1-201 (+ v1-200 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [523] (set! f0-39 (gpr->fpr v1-201)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [524] (set! f0-40 (i2f f0-39)) [] -> [] - swc1 f0, 24(gp) ;; [525] (s.f! (+ gp-2 24) f0-40) [gp: joint-control-channel ] -> [] - lui v1, L786 ;; [526] (set! v1-202 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [527] (set! f0-41 (l.f v1-202)) [v1: ] -> [] - swc1 f0, 28(gp) ;; [528] (s.f! (+ gp-2 28) f0-41) [gp: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [529] (set! t9-28 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L745 ;; [530] (set! v1-203 L745) [] -> [v1: ] - ori v1, v1, L745 - addu v1, fp, v1 - lw a0, 0(v1) ;; [531] (set! a0-59 (l.w v1-203)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [532] (set! a1-31 0) [] -> [a1: ] - jalr ra, t9 ;; [533] (call! a0-59 a1-31) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [534] (set! f0-42 (gpr->fpr v0-29)) [v0: float ] -> [] - swc1 f0, 16(gp) ;; [535] (s.f! (+ gp-2 16) f0-42) [gp: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [536] (set! t9-29 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [537] (set! v1-204 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [538] (set! v1-205 (l.wu (+ v1-204 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 184(v1) ;; [539] (set! a1-32 (l.wu (+ v1-205 184))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [540] (set! a2-15 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, gp, r0 ;; [541] (set! a0-60 gp-2) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [542] (call! a0-60 a1-32 a2-15) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [543] (set! v1-206 v0-30) [v0: int ] -> [v1: int ] -B98: -L628: - lwu s6, 44(s6) ;; [544] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [545] (set! v1-207 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [546] (set! v1-208 (l.wu (+ v1-207 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [547] (set! a0-61 (+ v1-208 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [548] (set! v1-209 (l.wu (+ a0-61 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [549] (set! v1-210 (l.wu (+ v1-209 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [550] (set! v1-211 (l.h (+ v1-210 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [551] (set! v1-212 (+ v1-211 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [552] (set! f0-43 (gpr->fpr v1-212)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [553] (set! f0-44 (i2f f0-43)) [] -> [] - swc1 f0, 24(a0) ;; [554] (s.f! (+ a0-61 24) f0-44) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [555] (set! v1-213 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [556] (set! f0-45 (l.f v1-213)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [557] (s.f! (+ a0-61 28) f0-45) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [558] (set! t9-30 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [559] (set! a1-33 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [560] (set! a2-16 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [561] (call! a0-61 a1-33 a2-16) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [562] (set! v1-214 v0-31) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [563] (set! t9-31 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [564] (set! a0-62 0) [] -> [a0: ] - jalr ra, t9 ;; [565] (call! a0-62) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L628 ;; [566] (b! (not v0-32) L628 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B99: - or v1, s7, r0 ;; [567] (set! v1-215 #f) [] -> [v1: '#f ] - lwu v1, 120(s6) ;; [568] (set! v1-216 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [569] (set! v1-217 (l.wu (+ v1-216 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [570] (set! gp-3 (+ v1-217 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lwu v1, 116(s6) ;; [571] (set! v1-218 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [572] (set! v1-219 (l.wu (+ v1-218 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 168(v1) ;; [573] (set! v1-220 (l.wu (+ v1-219 168))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(gp) ;; [574] (s.w! (+ gp-3 12) v1-220) [v1: art-element gp: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [575] (set! v1-221 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [576] (set! v1-222 (l.wu (+ v1-221 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 168(v1) ;; [577] (set! v1-223 (l.wu (+ v1-222 168))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [578] (set! (the-as art-joint-anim v1-224) (l.wu (+ v1-223 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [579] (set! v1-225 (l.h (+ v1-224 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [580] (set! v1-226 (+ v1-225 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [581] (set! f0-46 (gpr->fpr v1-226)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [582] (set! f0-47 (i2f f0-46)) [] -> [] - swc1 f0, 24(gp) ;; [583] (s.f! (+ gp-3 24) f0-47) [gp: joint-control-channel ] -> [] - lui v1, L786 ;; [584] (set! v1-227 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [585] (set! f0-48 (l.f v1-227)) [v1: ] -> [] - swc1 f0, 28(gp) ;; [586] (s.f! (+ gp-3 28) f0-48) [gp: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [587] (set! t9-32 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L746 ;; [588] (set! v1-228 L746) [] -> [v1: ] - ori v1, v1, L746 - addu v1, fp, v1 - lw a0, 0(v1) ;; [589] (set! a0-63 (l.w v1-228)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [590] (set! a1-34 0) [] -> [a1: ] - jalr ra, t9 ;; [591] (call! a0-63 a1-34) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [592] (set! f0-49 (gpr->fpr v0-33)) [v0: float ] -> [] - swc1 f0, 16(gp) ;; [593] (s.f! (+ gp-3 16) f0-49) [gp: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [594] (set! t9-33 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [595] (set! v1-229 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [596] (set! v1-230 (l.wu (+ v1-229 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 168(v1) ;; [597] (set! a1-35 (l.wu (+ v1-230 168))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [598] (set! a2-17 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, gp, r0 ;; [599] (set! a0-64 gp-3) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [600] (call! a0-64 a1-35 a2-17) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [601] (set! v1-231 v0-34) [v0: int ] -> [v1: int ] -B100: -L629: - lwu s6, 44(s6) ;; [602] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [603] (set! v1-232 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [604] (set! v1-233 (l.wu (+ v1-232 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [605] (set! a0-65 (+ v1-233 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [606] (set! v1-234 (l.wu (+ a0-65 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [607] (set! v1-235 (l.wu (+ v1-234 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [608] (set! v1-236 (l.h (+ v1-235 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [609] (set! v1-237 (+ v1-236 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [610] (set! f0-50 (gpr->fpr v1-237)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [611] (set! f0-51 (i2f f0-50)) [] -> [] - swc1 f0, 24(a0) ;; [612] (s.f! (+ a0-65 24) f0-51) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [613] (set! v1-238 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [614] (set! f0-52 (l.f v1-238)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [615] (s.f! (+ a0-65 28) f0-52) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [616] (set! t9-34 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [617] (set! a1-36 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [618] (set! a2-18 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [619] (call! a0-65 a1-36 a2-18) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [620] (set! v1-239 v0-35) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [621] (set! t9-35 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [622] (set! a0-66 0) [] -> [a0: ] - jalr ra, t9 ;; [623] (call! a0-66) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L629 ;; [624] (b! (not v0-36) L629 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B101: - or v0, s7, r0 ;; [625] (set! v0-13 #f) [] -> [v0: '#f ] - beq r0, r0, L646 ;; [626] (b! #t L646 (nop!)) [] -> [] - sll r0, r0, 0 - -B102: -L630: - lwu v1, 120(s6) ;; [627] (set! v1-240 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [628] (set! v1-241 (l.w (+ v1-240 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [629] (b! (<=0.si v1-241) L631 (set! v1-242 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L631 - or v1, s7, r0 - -B103: - lwu v1, 120(s6) ;; [630] (set! v1-243 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [631] (set! v1-244 (l.wu (+ v1-243 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [632] (set! v1-242 (l.wu (+ v1-244 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B104: -L631: - lwu a0, 116(s6) ;; [633] (set! a0-67 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [634] (set! a0-68 (l.wu (+ a0-67 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 320(a0) ;; [635] (set! a0-69 (l.wu (+ a0-68 320))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [636] (set! a1-37 (= v1-242 a0-69)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L632 ;; [637] (bl! (truthy a1-37) L632 (no-delay!)) [a1: symbol ] -> [] -B105: - or a0, a1, r0 ;; [638] (set! a0-70 a1-37) [a1: symbol ] -> [a0: symbol ] - -B106: - lwu a0, 116(s6) ;; [639] (set! a0-71 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [640] (set! a0-72 (l.wu (+ a0-71 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 324(a0) ;; [641] (set! a0-73 (l.wu (+ a0-72 324))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [642] (set! a0-70 (= v1-242 a0-73)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B107: -L632: - beq s7, a0, L638 ;; [643] (b! (not a0-70) L638 (set! v1-245 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B108: - lwu v1, 120(s6) ;; [644] (set! v1-246 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [645] (set! v1-247 (l.w (+ v1-246 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [646] (b! (<=0.si v1-247) L633 (set! v1-248 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L633 - or v1, s7, r0 - -B109: - lwu v1, 120(s6) ;; [647] (set! v1-249 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [648] (set! v1-250 (l.wu (+ v1-249 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [649] (set! v1-248 (l.wu (+ v1-250 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B110: -L633: - lwu a0, 116(s6) ;; [650] (set! a0-74 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [651] (set! a0-75 (l.wu (+ a0-74 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 324(a0) ;; [652] (set! a0-76 (l.wu (+ a0-75 324))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [653] (set! a0-77 (= v1-248 a0-76)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L634 ;; [654] (b! (not a0-77) L634 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B111: - lui v1, L737 ;; [655] (set! v1-251 L737) [] -> [v1: ] - ori v1, v1, L737 - addu v1, fp, v1 - lw v1, 0(v1) ;; [656] (set! v1-252 (l.w v1-251)) [v1: ] -> [v1: int ] - beq r0, r0, L635 ;; [657] (b! #t L635 (nop!)) [] -> [] - sll r0, r0, 0 - -B112: -L634: - lui v1, L738 ;; [658] (set! v1-253 L738) [] -> [v1: ] - ori v1, v1, L738 - addu v1, fp, v1 - lw v1, 0(v1) ;; [659] (set! v1-252 (l.w v1-253)) [v1: ] -> [v1: int ] -B113: -L635: - mtc1 f30, v1 ;; [660] (set! f30-2 (gpr->fpr (the-as float v1-252))) [v1: float ] -> [] - lw t9, ja-channel-push!(s7);; [661] (set! t9-36 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [662] (set! a0-78 1) [] -> [a0: ] - addiu a1, r0, 12 ;; [663] (set! a1-38 12) [] -> [a1: ] - jalr ra, t9 ;; [664] (call! a0-78 a1-38) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [665] (set! v1-254 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [666] (set! v1-255 (l.wu (+ v1-254 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [667] (set! gp-4 (+ v1-255 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lwu v1, 116(s6) ;; [668] (set! v1-256 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [669] (set! v1-257 (l.wu (+ v1-256 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 184(v1) ;; [670] (set! v1-258 (l.wu (+ v1-257 184))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(gp) ;; [671] (s.w! (+ gp-4 12) v1-258) [v1: art-element gp: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [672] (set! v1-259 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [673] (set! v1-260 (l.wu (+ v1-259 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 184(v1) ;; [674] (set! v1-261 (l.wu (+ v1-260 184))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [675] (set! (the-as art-joint-anim v1-262) (l.wu (+ v1-261 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [676] (set! v1-263 (l.h (+ v1-262 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [677] (set! v1-264 (+ v1-263 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [678] (set! f0-53 (gpr->fpr v1-264)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [679] (set! f0-54 (i2f f0-53)) [] -> [] - swc1 f0, 24(gp) ;; [680] (s.f! (+ gp-4 24) f0-54) [gp: joint-control-channel ] -> [] - lui v1, L786 ;; [681] (set! v1-265 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [682] (set! f0-55 (l.f v1-265)) [v1: ] -> [] - swc1 f0, 28(gp) ;; [683] (s.f! (+ gp-4 28) f0-55) [gp: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [684] (set! t9-37 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L745 ;; [685] (set! v1-266 L745) [] -> [v1: ] - ori v1, v1, L745 - addu v1, fp, v1 - lw a0, 0(v1) ;; [686] (set! a0-79 (l.w v1-266)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [687] (set! a1-39 0) [] -> [a1: ] - jalr ra, t9 ;; [688] (call! a0-79 a1-39) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [689] (set! f0-56 (gpr->fpr v0-38)) [v0: float ] -> [] - swc1 f0, 16(gp) ;; [690] (s.f! (+ gp-4 16) f0-56) [gp: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [691] (set! t9-38 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [692] (set! v1-267 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [693] (set! v1-268 (l.wu (+ v1-267 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 184(v1) ;; [694] (set! a1-40 (l.wu (+ v1-268 184))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [695] (set! a2-19 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, gp, r0 ;; [696] (set! a0-80 gp-4) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [697] (call! a0-80 a1-40 a2-19) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [698] (set! v1-269 v0-39) [v0: int ] -> [v1: int ] -B114: -L636: - lw t9, set-forward-vel(s7);; [699] (set! t9-39 set-forward-vel) [] -> [t9: (function float vector :behavior target) ] - mfc1 a0, f30 ;; [700] (set! a0-81 (fpr->gpr f30-2)) [] -> [a0: float ] - jalr ra, t9 ;; [701] (call! a0-81) - ;; [a0: float t9: (function float vector :behavior target) ] -> [v0: vector ] - sll v0, ra, 0 - - lwu s6, 44(s6) ;; [702] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [703] (set! v1-270 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [704] (set! v1-271 (l.wu (+ v1-270 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [705] (set! a0-82 (+ v1-271 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [706] (set! v1-272 (l.wu (+ a0-82 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [707] (set! v1-273 (l.wu (+ v1-272 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [708] (set! v1-274 (l.h (+ v1-273 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [709] (set! v1-275 (+ v1-274 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [710] (set! f0-57 (gpr->fpr v1-275)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [711] (set! f0-58 (i2f f0-57)) [] -> [] - swc1 f0, 24(a0) ;; [712] (s.f! (+ a0-82 24) f0-58) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [713] (set! v1-276 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [714] (set! f0-59 (l.f v1-276)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [715] (s.f! (+ a0-82 28) f0-59) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [716] (set! t9-40 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [717] (set! a1-41 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [718] (set! a2-20 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [719] (call! a0-82 a1-41 a2-20) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [720] (set! v1-277 v0-41) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [721] (set! t9-41 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [722] (set! a0-83 0) [] -> [a0: ] - jalr ra, t9 ;; [723] (call! a0-83) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L636 ;; [724] (b! (not v0-42) L636 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B115: - or v1, s7, r0 ;; [725] (set! v1-278 #f) [] -> [v1: '#f ] - lwu v1, 120(s6) ;; [726] (set! v1-279 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [727] (set! v1-280 (l.wu (+ v1-279 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [728] (set! gp-5 (+ v1-280 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lwu v1, 116(s6) ;; [729] (set! v1-281 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [730] (set! v1-282 (l.wu (+ v1-281 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 168(v1) ;; [731] (set! v1-283 (l.wu (+ v1-282 168))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(gp) ;; [732] (s.w! (+ gp-5 12) v1-283) [v1: art-element gp: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [733] (set! v1-284 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [734] (set! v1-285 (l.wu (+ v1-284 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 168(v1) ;; [735] (set! v1-286 (l.wu (+ v1-285 168))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [736] (set! (the-as art-joint-anim v1-287) (l.wu (+ v1-286 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [737] (set! v1-288 (l.h (+ v1-287 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [738] (set! v1-289 (+ v1-288 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [739] (set! f0-60 (gpr->fpr v1-289)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [740] (set! f0-61 (i2f f0-60)) [] -> [] - swc1 f0, 24(gp) ;; [741] (s.f! (+ gp-5 24) f0-61) [gp: joint-control-channel ] -> [] - lui v1, L786 ;; [742] (set! v1-290 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [743] (set! f0-62 (l.f v1-290)) [v1: ] -> [] - swc1 f0, 28(gp) ;; [744] (s.f! (+ gp-5 28) f0-62) [gp: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [745] (set! t9-42 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L746 ;; [746] (set! v1-291 L746) [] -> [v1: ] - ori v1, v1, L746 - addu v1, fp, v1 - lw a0, 0(v1) ;; [747] (set! a0-84 (l.w v1-291)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [748] (set! a1-42 0) [] -> [a1: ] - jalr ra, t9 ;; [749] (call! a0-84 a1-42) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [750] (set! f0-63 (gpr->fpr v0-43)) [v0: float ] -> [] - swc1 f0, 16(gp) ;; [751] (s.f! (+ gp-5 16) f0-63) [gp: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [752] (set! t9-43 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [753] (set! v1-292 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [754] (set! v1-293 (l.wu (+ v1-292 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 168(v1) ;; [755] (set! a1-43 (l.wu (+ v1-293 168))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [756] (set! a2-21 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, gp, r0 ;; [757] (set! a0-85 gp-5) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [758] (call! a0-85 a1-43 a2-21) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [759] (set! v1-294 v0-44) [v0: int ] -> [v1: int ] -B116: -L637: - lwu s6, 44(s6) ;; [760] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [761] (set! v1-295 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [762] (set! v1-296 (l.wu (+ v1-295 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [763] (set! a0-86 (+ v1-296 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [764] (set! v1-297 (l.wu (+ a0-86 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [765] (set! v1-298 (l.wu (+ v1-297 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [766] (set! v1-299 (l.h (+ v1-298 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [767] (set! v1-300 (+ v1-299 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [768] (set! f0-64 (gpr->fpr v1-300)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [769] (set! f0-65 (i2f f0-64)) [] -> [] - swc1 f0, 24(a0) ;; [770] (s.f! (+ a0-86 24) f0-65) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [771] (set! v1-301 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [772] (set! f0-66 (l.f v1-301)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [773] (s.f! (+ a0-86 28) f0-66) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [774] (set! t9-44 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [775] (set! a1-44 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [776] (set! a2-22 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [777] (call! a0-86 a1-44 a2-22) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [778] (set! v1-302 v0-45) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [779] (set! t9-45 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [780] (set! a0-87 0) [] -> [a0: ] - jalr ra, t9 ;; [781] (call! a0-87) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L637 ;; [782] (b! (not v0-46) L637 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B117: - or v0, s7, r0 ;; [783] (set! v0-13 #f) [] -> [v0: '#f ] - beq r0, r0, L646 ;; [784] (b! #t L646 (nop!)) [] -> [] - sll r0, r0, 0 - -B118: -L638: - lwu v1, 120(s6) ;; [785] (set! v1-303 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [786] (set! v1-304 (l.w (+ v1-303 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [787] (b! (<=0.si v1-304) L639 (set! v1-305 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L639 - or v1, s7, r0 - -B119: - lwu v1, 120(s6) ;; [788] (set! v1-306 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [789] (set! v1-307 (l.wu (+ v1-306 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [790] (set! v1-305 (l.wu (+ v1-307 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B120: -L639: - lwu a0, 116(s6) ;; [791] (set! a0-88 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [792] (set! a0-89 (l.wu (+ a0-88 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 164(a0) ;; [793] (set! a0-90 (l.wu (+ a0-89 164))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [794] (set! a1-45 (= v1-305 a0-90)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L640 ;; [795] (bl! (truthy a1-45) L640 (no-delay!)) [a1: symbol ] -> [] -B121: - or a0, a1, r0 ;; [796] (set! a0-91 a1-45) [a1: symbol ] -> [a0: symbol ] - -B122: - lwu a0, 116(s6) ;; [797] (set! a0-92 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [798] (set! a0-93 (l.wu (+ a0-92 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 252(a0) ;; [799] (set! a0-94 (l.wu (+ a0-93 252))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [800] (set! a1-46 (= v1-305 a0-94)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L640 ;; [801] (bl! (truthy a1-46) L640 (no-delay!)) [a1: symbol ] -> [] -B123: - or a0, a1, r0 ;; [802] (set! a0-91 a1-46) [a1: symbol ] -> [a0: symbol ] - -B124: - lwu a0, 116(s6) ;; [803] (set! a0-95 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [804] (set! a0-96 (l.wu (+ a0-95 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 256(a0) ;; [805] (set! a0-97 (l.wu (+ a0-96 256))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [806] (set! a1-47 (= v1-305 a0-97)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L640 ;; [807] (bl! (truthy a1-47) L640 (no-delay!)) [a1: symbol ] -> [] -B125: - or a0, a1, r0 ;; [808] (set! a0-91 a1-47) [a1: symbol ] -> [a0: symbol ] - -B126: - lwu a0, 116(s6) ;; [809] (set! a0-98 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [810] (set! a0-99 (l.wu (+ a0-98 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 260(a0) ;; [811] (set! a0-100 (l.wu (+ a0-99 260))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [812] (set! a1-48 (= v1-305 a0-100)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L640 ;; [813] (bl! (truthy a1-48) L640 (no-delay!)) [a1: symbol ] -> [] -B127: - or a0, a1, r0 ;; [814] (set! a0-91 a1-48) [a1: symbol ] -> [a0: symbol ] - -B128: - lwu a0, 116(s6) ;; [815] (set! a0-101 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [816] (set! a0-102 (l.wu (+ a0-101 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 300(a0) ;; [817] (set! a0-103 (l.wu (+ a0-102 300))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [818] (set! a1-49 (= v1-305 a0-103)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L640 ;; [819] (bl! (truthy a1-49) L640 (no-delay!)) [a1: symbol ] -> [] -B129: - or a0, a1, r0 ;; [820] (set! a0-91 a1-49) [a1: symbol ] -> [a0: symbol ] - -B130: - lwu a0, 116(s6) ;; [821] (set! a0-104 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [822] (set! a0-105 (l.wu (+ a0-104 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 288(a0) ;; [823] (set! a0-106 (l.wu (+ a0-105 288))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [824] (set! a1-50 (= v1-305 a0-106)) - ;; [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L640 ;; [825] (bl! (truthy a1-50) L640 (no-delay!)) [a1: symbol ] -> [] -B131: - or a0, a1, r0 ;; [826] (set! a0-91 a1-50) [a1: symbol ] -> [a0: symbol ] - -B132: - lwu a0, 116(s6) ;; [827] (set! a0-107 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [828] (set! a0-108 (l.wu (+ a0-107 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 276(a0) ;; [829] (set! a0-109 (l.wu (+ a0-108 276))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [830] (set! a0-91 (= v1-305 a0-109)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B133: -L640: - beq s7, a0, L642 ;; [831] (b! (not a0-91) L642 (set! v1-308 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B134: - lw t9, ja-channel-push!(s7);; [832] (set! t9-46 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [833] (set! a0-110 1) [] -> [a0: ] - addiu a1, r0, 12 ;; [834] (set! a1-51 12) [] -> [a1: ] - jalr ra, t9 ;; [835] (call! a0-110 a1-51) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [836] (set! v1-309 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [837] (set! v1-310 (l.wu (+ v1-309 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu gp, r0, v1 ;; [838] (set! gp-6 (+ v1-310 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [gp: joint-control-channel ] - lwu v1, 116(s6) ;; [839] (set! v1-311 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [840] (set! v1-312 (l.wu (+ v1-311 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 168(v1) ;; [841] (set! v1-313 (l.wu (+ v1-312 168))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(gp) ;; [842] (s.w! (+ gp-6 12) v1-313) [v1: art-element gp: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [843] (set! v1-314 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [844] (set! v1-315 (l.wu (+ v1-314 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 168(v1) ;; [845] (set! v1-316 (l.wu (+ v1-315 168))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [846] (set! (the-as art-joint-anim v1-317) (l.wu (+ v1-316 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [847] (set! v1-318 (l.h (+ v1-317 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [848] (set! v1-319 (+ v1-318 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [849] (set! f0-67 (gpr->fpr v1-319)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [850] (set! f0-68 (i2f f0-67)) [] -> [] - swc1 f0, 24(gp) ;; [851] (s.f! (+ gp-6 24) f0-68) [gp: joint-control-channel ] -> [] - lui v1, L786 ;; [852] (set! v1-320 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [853] (set! f0-69 (l.f v1-320)) [v1: ] -> [] - swc1 f0, 28(gp) ;; [854] (s.f! (+ gp-6 28) f0-69) [gp: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [855] (set! t9-47 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L744 ;; [856] (set! v1-321 L744) [] -> [v1: ] - ori v1, v1, L744 - addu v1, fp, v1 - lw a0, 0(v1) ;; [857] (set! a0-111 (l.w v1-321)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [858] (set! a1-52 0) [] -> [a1: ] - jalr ra, t9 ;; [859] (call! a0-111 a1-52) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [860] (set! f0-70 (gpr->fpr v0-48)) [v0: float ] -> [] - swc1 f0, 16(gp) ;; [861] (s.f! (+ gp-6 16) f0-70) [gp: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [862] (set! t9-48 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [863] (set! v1-322 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [864] (set! v1-323 (l.wu (+ v1-322 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 168(v1) ;; [865] (set! a1-53 (l.wu (+ v1-323 168))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [866] (set! a2-23 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, gp, r0 ;; [867] (set! a0-112 gp-6) [gp: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [868] (call! a0-112 a1-53 a2-23) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [869] (set! v1-324 v0-49) [v0: int ] -> [v1: int ] -B135: -L641: - lwu s6, 44(s6) ;; [870] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [871] (set! v1-325 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [872] (set! v1-326 (l.wu (+ v1-325 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [873] (set! a0-113 (+ v1-326 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [874] (set! v1-327 (l.wu (+ a0-113 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [875] (set! v1-328 (l.wu (+ v1-327 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [876] (set! v1-329 (l.h (+ v1-328 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [877] (set! v1-330 (+ v1-329 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [878] (set! f0-71 (gpr->fpr v1-330)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [879] (set! f0-72 (i2f f0-71)) [] -> [] - swc1 f0, 24(a0) ;; [880] (s.f! (+ a0-113 24) f0-72) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [881] (set! v1-331 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [882] (set! f0-73 (l.f v1-331)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [883] (s.f! (+ a0-113 28) f0-73) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [884] (set! t9-49 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [885] (set! a1-54 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [886] (set! a2-24 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [887] (call! a0-113 a1-54 a2-24) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [888] (set! v1-332 v0-50) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [889] (set! t9-50 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [890] (set! a0-114 0) [] -> [a0: ] - jalr ra, t9 ;; [891] (call! a0-114) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L641 ;; [892] (b! (not v0-51) L641 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B136: - or v0, s7, r0 ;; [893] (set! v0-13 #f) [] -> [v0: '#f ] - beq r0, r0, L646 ;; [894] (b! #t L646 (nop!)) [] -> [] - sll r0, r0, 0 - -B137: -L642: - lwu v1, 120(s6) ;; [895] (set! v1-333 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [896] (set! v1-334 (l.w (+ v1-333 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [897] (b! (<=0.si v1-334) L643 (set! v1-335 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L643 - or v1, s7, r0 - -B138: - lwu v1, 120(s6) ;; [898] (set! v1-336 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [899] (set! v1-337 (l.wu (+ v1-336 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [900] (set! v1-335 (l.wu (+ v1-337 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B139: -L643: - lwu a0, 116(s6) ;; [901] (set! a0-115 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [902] (set! a0-116 (l.wu (+ a0-115 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 168(a0) ;; [903] (set! a0-117 (l.wu (+ a0-116 168))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [904] (set! a0-118 (= v1-335 a0-117)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L646 ;; [905] (b! (not a0-118) L646 (set! v0-13 #f)) [a0: symbol ] -> [v0: '#f ] - or v0, s7, r0 - -B140: - lwu v1, 120(s6) ;; [906] (set! v1-338 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [907] (set! v1-339 (l.wu (+ v1-338 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [908] (set! a0-119 (+ v1-339 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [909] (set! v1-340 (l.wu (+ a0-119 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [910] (set! v1-341 (l.wu (+ v1-340 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [911] (set! v1-342 (l.h (+ v1-341 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [912] (set! v1-343 (+ v1-342 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [913] (set! f0-74 (gpr->fpr v1-343)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [914] (set! f0-75 (i2f f0-74)) [] -> [] - swc1 f0, 24(a0) ;; [915] (s.f! (+ a0-119 24) f0-75) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [916] (set! v1-344 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [917] (set! f0-76 (l.f v1-344)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [918] (s.f! (+ a0-119 28) f0-76) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [919] (set! t9-51 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [920] (set! a1-55 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [921] (set! a2-25 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [922] (call! a0-119 a1-55 a2-25) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [923] (set! v1-345 v0-52) [v0: int ] -> [v1: int ] - beq r0, r0, L645 ;; [924] (b! #t L645 (nop!)) [] -> [] - sll r0, r0, 0 - -B141: -L644: - lwu s6, 44(s6) ;; [925] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lw t9, ja-eval(s7) ;; [926] (set! t9-52 ja-eval) [] -> [t9: (function int :behavior process-drawable) ] - jalr ra, t9 ;; [927] (call!) [t9: (function int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - -B142: -L645: - lw t9, ja-done?(s7) ;; [928] (set! t9-53 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [929] (set! a0-120 0) [] -> [a0: ] - jalr ra, t9 ;; [930] (call! a0-120) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L644 ;; [931] (b! (not v0-54) L644 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B143: - or v0, s7, r0 ;; [932] (set! v0-13 #f) [] -> [v0: '#f ] -B144: -L646: +L171: + sw v1, 740(gp) ;; [ 87] (s.w! (+ gp 740) v1) + or v0, r0, r0 ;; [ 88] (set! v0 0) ld ra, 0(sp) ld fp, 8(sp) - lwc1 f30, 52(sp) - lwc1 f28, 48(sp) - lq gp, 32(sp) - lq s5, 16(sp) + lq gp, 48(sp) + lq s5, 32(sp) + lq s4, 16(sp) jr ra daddiu sp, sp, 64 @@ -28010,815 +7715,1135 @@ L646: sll r0, r0, 0 sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(defbehavior target-hit-ground-anim target ((arg0 symbol)) - (let ((v1-2 (ja-group))) - (cond - ((or (= v1-2 (-> self draw art-group data 63)) - (= v1-2 (-> self draw art-group data 64)) - (= v1-2 (-> self draw art-group data 66)) - (= v1-2 (-> self draw art-group data 67)) - ) - (let ((gp-0 (or (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) - (< (-> self control unknown-float01) 61440.0) - ) - ) - (f30-0 (the-as float (if (= arg0 'swim) - 0.4 - 1.0 - ) - ) - ) - ) - (ja-channel-set! 1) - (let ((s5-0 (-> self skel root-channel 0))) - (set! (-> s5-0 frame-group) (the-as art-joint-anim (if gp-0 - (-> self draw art-group data 65) - (-> self draw art-group data 68) - ) - ) - ) - (set! (-> s5-0 param 0) (the float (+ (-> (the-as art-joint-anim (if gp-0 - (-> self draw art-group data 65) - (-> self draw art-group data 68) - ) - ) - data - 0 - length - ) - -1 - ) - ) - ) - (let ((f30-1 (seek f30-0 (the-as float 1.0) (* 0.5 (-> *display* seconds-per-frame))))) - (set! (-> s5-0 param 1) f30-1) - (set! (-> s5-0 frame-num) 0.0) - (joint-control-channel-group! - s5-0 - (the-as art-joint-anim (if gp-0 - (-> self draw art-group data 65) - (-> self draw art-group data 68) - ) - ) - num-func-seek! - ) - (until (ja-done? 0) - (compute-alignment! (-> self align)) - (align! - (-> self align) - (the-as align-opts (if gp-0 - 2 - 6 - ) - ) - (the-as float 1.0) - (the-as float 1.0) - (the-as float 1.5) - ) - (when (and (>= 25.0 (ja-aframe-num 0)) (and (>= (ja-aframe-num 0) 21.0) - (= (-> self next-state name) 'target-flop-hit-ground) - (!= (-> self control unknown-spoolanim00) 'stuck) - ) - ) - (set! (-> self event-hook) target-jump-event-handler) - (when (and (cpad-hold? (-> self control unknown-cpad-info00 number) x) (can-jump? #f)) - (ja-channel-set! 0) - (go - target-high-jump - (-> *TARGET-bank* flop-jump-height-min) - (-> *TARGET-bank* flop-jump-height-max) - (if gp-0 - 'flop - 'flop-forward - ) - ) - ) - ) - (suspend) - (let ((s5-1 (-> self skel root-channel 0))) - (set! (-> s5-1 param 0) (the float (+ (-> s5-1 frame-group data 0 length) -1))) - (set! f30-1 (seek f30-1 (the-as float 1.0) (* 0.5 (-> *display* seconds-per-frame)))) - (set! (-> s5-1 param 1) f30-1) - (joint-control-channel-group-eval! s5-1 (the-as art-joint-anim #f) num-func-seek!) - ) - ) - ) - ) - ) - #f - ) - ((and (= (-> self control ground-pat material) (pat-material ice)) - (< 16384.0 (-> self control unknown-float01)) - ) - #f - ) - ((let ((v1-95 (ja-group))) - (or (or (= v1-95 (-> self draw art-group data 38)) - (= v1-95 (-> self draw art-group data 42)) - (= v1-95 (-> self draw art-group data 43)) - ) - (and (ja-group? (-> self draw art-group data 34)) (>= (ja-aframe-num 0) 38.0)) - ) - ) - (ja-channel-push! 1 (seconds 0.02)) - (ja-no-eval :group! (-> self draw art-group data 35) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - #f - ) - ((and (ja-group? (-> self draw art-group data 34)) (>= (ja-aframe-num 0) 35.0)) - (ja-channel-set! 1) - (ja-no-eval :group! (-> self draw art-group data 39) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - (ja-no-eval :group! (-> self draw art-group data 35) - :num! (seek!) - :frame-num (ja-aframe (the-as float 50.0) 0) - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - #f - ) - ((let ((v1-187 (ja-group))) - (or (= v1-187 (-> self draw art-group data 34)) (= v1-187 (-> self draw art-group data 41))) - ) - (ja-channel-set! 1) - (ja-no-eval :group! (-> self draw art-group data 39) - :num! (seek!) - :frame-num (ja-aframe (the-as float 38.0) 0) - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - (ja-no-eval :group! (-> self draw art-group data 35) - :num! (seek!) - :frame-num (ja-aframe (the-as float 50.0) 0) - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - #f - ) - ((let ((v1-242 (ja-group))) - (or (= v1-242 (-> self draw art-group data 73)) (= v1-242 (-> self draw art-group data 74))) - ) - (let ((f30-2 (the-as float (if (ja-group? (-> self draw art-group data 74)) - 24576.0 - -24576.0 - ) - ) - ) - ) - (ja-channel-push! 1 (seconds 0.04)) - (ja-no-eval :group! (-> self draw art-group data 39) - :num! (seek!) - :frame-num (ja-aframe (the-as float 38.0) 0) - ) - (until (ja-done? 0) - (set-forward-vel f30-2) - (suspend) - (ja :num! (seek!)) - ) - ) - (ja-no-eval :group! (-> self draw art-group data 35) - :num! (seek!) - :frame-num (ja-aframe (the-as float 50.0) 0) - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - #f - ) - ((let ((v1-305 (ja-group))) - (or (= v1-305 (-> self draw art-group data 34)) - (= v1-305 (-> self draw art-group data 56)) - (= v1-305 (-> self draw art-group data 57)) - (= v1-305 (-> self draw art-group data 58)) - (= v1-305 (-> self draw art-group data 68)) - (= v1-305 (-> self draw art-group data 65)) - (= v1-305 (-> self draw art-group data 62)) - ) - ) - (ja-channel-push! 1 (seconds 0.04)) - (ja-no-eval :group! (-> self draw art-group data 35) - :num! (seek!) - :frame-num (ja-aframe (the-as float 42.0) 0) - ) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - #f - ) - ((ja-group? (-> self draw art-group data 35)) - (ja-no-eval :num! (seek!)) - (while (not (ja-done? 0)) - (suspend) - (ja-eval) - ) - #f - ) - ) - ) - ) - -;;-*-OpenGOAL-End-*- - + (set! gp a0) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 856))) + (call!) + (set! v1 v0) + (set! v1 22) + (s.b! (+ gp 704) v1) + (set! f0 0) + (s.f! (+ gp 992) f0) + (set! v1 #x48480000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ gp 876) f0) + (s.w! (+ gp 668) 0) + (set! v1 750) + (s.w! (+ gp 672) v1) + (set! s5 gp) + (set! v1 (l.wu (+ s5 -4))) + (set! s4 (l.wu (+ v1 72))) + (set! a0 *level*) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 108))) + (set! a1 L220) + (set! a2 #f) + (call!) + (set! a1 v0) + (set! a2 0) + (set! t9 s4) + (set! a0 s5) + (call!) + (set! v1 v0) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 468))) + (set! a1 *ashelin-nav-enemy-info*) + (call!) + (set! v1 v0) + (set! v1 (l.wu (+ gp 484))) + (set! a0 1) + (s.b! (+ v1 148) a0) + (set! a0 2) + (s.b! (+ v1 149) a0) + (s.b! (+ v1 150) 0) + (set! a0 (+ v1 44)) + (set! a1 #x4638e38e) + (set! f0 (gpr->fpr a1)) + (s.f! a0 f0) + (set! a1 #x4638e38e) + (set! f0 (gpr->fpr a1)) + (s.f! (+ a0 4) f0) + (set! f0 0) + (s.f! (+ a0 8) f0) + (set! a1 #x3f800000) + (set! f0 (gpr->fpr a1)) + (s.f! (+ a0 12) f0) + (set! a0 #x46f1c71c) + (set! f0 (gpr->fpr a0)) + (s.f! (+ v1 144) f0) + (set! v1 (fpr->gpr f0)) + (set! v1 bot) + (set! t9 (l.wu (+ v1 476))) + (set! a0 gp) + (call!) + (set! a0 *default-dead-pool*) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 72))) + (set! a1 simple-focus) + (set! a2 #x4000) + (call!) + (set! s5 v0) + (b! (not s5) L171 (set! v1 #f)) + (set! v1 simple-focus) + (set! t9 (l.wu (+ v1 52))) + (set! a0 s5) + (set! a1 gp) + (set! v1 #xff37) + (set! a2 simple-focus) + (set! a2 (l.wu a2)) + (set! v1 (+ v1 a2)) + (set! a2 (l.wu v1)) + (set! a3 #x70004000) + (call!) + (set! t9 run-function-in-process) + (set! a0 s5) + (set! a1 simple-focus-init-by-other) + (call!) + (set! v1 (l.wu (+ s5 24))) +(label L171) + (s.w! (+ gp 740) v1) + (set! v0 0) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function target-falling-trans +; .function (method 114 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x30, fp? 0 ra? 1 ep? 1 + ;stack: total 0x40, fp? 0 ra? 1 ep? 1 ;stack_vars: 8 bytes at 8 - ;gprs: gp s5 + ;gprs: gp s5 s4 ;; Warnings: -;; INFO: Return type mismatch int vs none. +;; WARN: Type Propagation failed: Function (method 114 ashelin) has unknown type -;; a0-0: basic a1-0: time-frame s6-0: target -L647: - daddiu sp, sp, -48 +L172: + daddiu sp, sp, -64 sd ra, 0(sp) - sq s5, 16(sp) - sq gp, 32(sp) + sq s4, 16(sp) + sq s5, 32(sp) + sq gp, 48(sp) B0: - or s5, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: basic ] -> [s5: basic ] - or gp, a1, r0 ;; [ 1] (set! arg1 arg1) [a1: time-frame ] -> [gp: time-frame ] - lwu v1, 108(s6) ;; [ 2] (set! v1-0 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 3] (set! v1-1 (l.wu (+ v1-0 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 4] (set! v1-2 (l.w (+ v1-1 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 5] (set! v1-3 (sll v1-2 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 6] (set! a0-1 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 7] (set! v1-4 (+ v1-3 a0-1)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 8] (set! v1-5 (l.wu (+ v1-4 4))) [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 9] (set! v1-6 (l.wu (+ v1-5 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - andi v1, v1, 8192 ;; [ 10] (set! v1-7 (logand v1-6 8192)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L648 ;; [ 11] (bl! (zero? v1-7) L648 (no-delay!)) [v1: pad-buttons ] -> [] + or gp, a0, r0 ;; [ 0] (set! gp a0) + lw v1, collide-shape-moving(s7);; [ 1] (set! v1 collide-shape-moving) + lwu t9, 16(v1) ;; [ 2] (set! t9 (l.wu (+ v1 16))) + daddiu a0, s7, process ;; [ 3] (set! a0 'process) + lw a1, collide-shape-moving(s7);; [ 4] (set! a1 collide-shape-moving) + or a2, gp, r0 ;; [ 5] (set! a2 gp) + addiu a3, r0, 2 ;; [ 6] (set! a3 2) + jalr ra, t9 ;; [ 7] (call!) + sll v0, ra, 0 + + or s5, v0, r0 ;; [ 8] (set! s5 v0) + lw a0, *standard-dynamics*(s7);; [ 9] (set! a0 *standard-dynamics*) + lwu v1, -4(a0) ;; [ 10] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 40(v1) ;; [ 11] (set! t9 (l.wu (+ v1 40))) + daddiu a1, s7, process ;; [ 12] (set! a1 'process) + jalr ra, t9 ;; [ 13] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 14] (set! v1 v0) + sw v1, 464(s5) ;; [ 15] (s.w! (+ s5 464) v1) + lw v1, cshape-reaction-default(s7);; [ 16] (set! v1 cshape-reaction-default) + sw v1, 312(s5) ;; [ 17] (s.w! (+ s5 312) v1) + lw v1, nothing(s7) ;; [ 18] (set! v1 nothing) + sw v1, 316(s5) ;; [ 19] (s.w! (+ s5 316) v1) + lw v1, collide-shape-prim-group(s7);; [ 20] (set! v1 collide-shape-prim-group) + lwu t9, 16(v1) ;; [ 21] (set! t9 (l.wu (+ v1 16))) + daddiu a0, s7, process ;; [ 22] (set! a0 'process) + lw a1, collide-shape-prim-group(s7);; [ 23] (set! a1 collide-shape-prim-group) + or a2, s5, r0 ;; [ 24] (set! a2 s5) + addiu a3, r0, 3 ;; [ 25] (set! a3 3) + addiu t0, r0, 0 ;; [ 26] (set! t0 0) + jalr ra, t9 ;; [ 27] (call!) + sll v0, ra, 0 + + or s4, v0, r0 ;; [ 28] (set! s4 v0) + addiu v1, r0, 4 ;; [ 29] (set! v1 4) + sb v1, 142(s5) ;; [ 30] (s.b! (+ s5 142) v1) + lui v1, 32 ;; [ 31] (set! v1 #x200004) + ori v1, v1, 4 + sw v1, 28(s4) ;; [ 32] (s.w! (+ s4 28) v1) + lui v1, 8 ;; [ 33] (set! v1 #x806fb) + ori v1, v1, 1787 + sw v1, 32(s4) ;; [ 34] (s.w! (+ s4 32) v1) + addiu v1, r0, 585 ;; [ 35] (set! v1 585) + sw v1, 36(s4) ;; [ 36] (s.w! (+ s4 36) v1) + daddiu v1, s4, 44 ;; [ 37] (set! v1 (+ s4 44)) + mtc1 f0, r0 ;; [ 38] (set! f0 0) + swc1 f0, 0(v1) ;; [ 39] (s.f! v1 f0) + lui a0, 17856 ;; [ 40] (set! a0 #x45c00000) + mtc1 f0, a0 ;; [ 41] (set! f0 (gpr->fpr a0)) + swc1 f0, 4(v1) ;; [ 42] (s.f! (+ v1 4) f0) + mtc1 f0, r0 ;; [ 43] (set! f0 0) + swc1 f0, 8(v1) ;; [ 44] (s.f! (+ v1 8) f0) + lui a0, 17920 ;; [ 45] (set! a0 #x46000000) + mtc1 f0, a0 ;; [ 46] (set! f0 (gpr->fpr a0)) + swc1 f0, 12(v1) ;; [ 47] (s.f! (+ v1 12) f0) + sw s4, 156(s5) ;; [ 48] (s.w! (+ s5 156) s4) + lw v1, collide-shape-prim-sphere(s7);; [ 49] (set! v1 collide-shape-prim-sphere) + lwu t9, 16(v1) ;; [ 50] (set! t9 (l.wu (+ v1 16))) + daddiu a0, s7, process ;; [ 51] (set! a0 'process) + lw a1, collide-shape-prim-sphere(s7);; [ 52] (set! a1 collide-shape-prim-sphere) + or a2, s5, r0 ;; [ 53] (set! a2 s5) + addiu a3, r0, 0 ;; [ 54] (set! a3 0) + jalr ra, t9 ;; [ 55] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 56] (set! v1 v0) + lui a0, 32 ;; [ 57] (set! a0 #x200004) + ori a0, a0, 4 + sw a0, 28(v1) ;; [ 58] (s.w! (+ v1 28) a0) + lui a0, 8 ;; [ 59] (set! a0 #x806fb) + ori a0, a0, 1787 + sw a0, 32(v1) ;; [ 60] (s.w! (+ v1 32) a0) + addiu a0, r0, 73 ;; [ 61] (set! a0 73) + sw a0, 36(v1) ;; [ 62] (s.w! (+ v1 36) a0) + daddiu a0, v1, 44 ;; [ 63] (set! a0 (+ v1 44)) + mtc1 f0, r0 ;; [ 64] (set! f0 0) + swc1 f0, 0(a0) ;; [ 65] (s.f! a0 f0) + lui a1, 17740 ;; [ 66] (set! a1 #x454ccccd) + ori a1, a1, 52429 + mtc1 f0, a1 ;; [ 67] (set! f0 (gpr->fpr a1)) + swc1 f0, 4(a0) ;; [ 68] (s.f! (+ a0 4) f0) + mtc1 f0, r0 ;; [ 69] (set! f0 0) + swc1 f0, 8(a0) ;; [ 70] (s.f! (+ a0 8) f0) + lui a1, 17740 ;; [ 71] (set! a1 #x454ccccd) + ori a1, a1, 52429 + mtc1 f0, a1 ;; [ 72] (set! f0 (gpr->fpr a1)) + swc1 f0, 12(a0) ;; [ 73] (s.f! (+ a0 12) f0) + lw v1, collide-shape-prim-sphere(s7);; [ 74] (set! v1 collide-shape-prim-sphere) + lwu t9, 16(v1) ;; [ 75] (set! t9 (l.wu (+ v1 16))) + daddiu a0, s7, process ;; [ 76] (set! a0 'process) + lw a1, collide-shape-prim-sphere(s7);; [ 77] (set! a1 collide-shape-prim-sphere) + or a2, s5, r0 ;; [ 78] (set! a2 s5) + addiu a3, r0, 0 ;; [ 79] (set! a3 0) + jalr ra, t9 ;; [ 80] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [ 81] (set! v1 v0) + lui a0, 32 ;; [ 82] (set! a0 #x200004) + ori a0, a0, 4 + sw a0, 28(v1) ;; [ 83] (s.w! (+ v1 28) a0) + lui a0, 8 ;; [ 84] (set! a0 #x806fb) + ori a0, a0, 1787 + sw a0, 32(v1) ;; [ 85] (s.w! (+ v1 32) a0) + addiu a0, r0, 65 ;; [ 86] (set! a0 65) + sw a0, 36(v1) ;; [ 87] (s.w! (+ v1 36) a0) + daddiu a0, v1, 44 ;; [ 88] (set! a0 (+ v1 44)) + mtc1 f0, r0 ;; [ 89] (set! f0 0) + swc1 f0, 0(a0) ;; [ 90] (s.f! a0 f0) + lui a1, 17830 ;; [ 91] (set! a1 #x45a66666) + ori a1, a1, 26214 + mtc1 f0, a1 ;; [ 92] (set! f0 (gpr->fpr a1)) + swc1 f0, 4(a0) ;; [ 93] (s.f! (+ a0 4) f0) + mtc1 f0, r0 ;; [ 94] (set! f0 0) + swc1 f0, 8(a0) ;; [ 95] (s.f! (+ a0 8) f0) + lui a1, 17740 ;; [ 96] (set! a1 #x454ccccd) + ori a1, a1, 52429 + mtc1 f0, a1 ;; [ 97] (set! f0 (gpr->fpr a1)) + swc1 f0, 12(a0) ;; [ 98] (s.f! (+ a0 12) f0) + lw v1, collide-shape-prim-sphere(s7);; [ 99] (set! v1 collide-shape-prim-sphere) + lwu t9, 16(v1) ;; [100] (set! t9 (l.wu (+ v1 16))) + daddiu a0, s7, process ;; [101] (set! a0 'process) + lw a1, collide-shape-prim-sphere(s7);; [102] (set! a1 collide-shape-prim-sphere) + or a2, s5, r0 ;; [103] (set! a2 s5) + addiu a3, r0, 0 ;; [104] (set! a3 0) + jalr ra, t9 ;; [105] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [106] (set! v1 v0) + lui a0, 32 ;; [107] (set! a0 #x200004) + ori a0, a0, 4 + sw a0, 28(v1) ;; [108] (s.w! (+ v1 28) a0) + lui a0, 8 ;; [109] (set! a0 #x806fb) + ori a0, a0, 1787 + sw a0, 32(v1) ;; [110] (s.w! (+ v1 32) a0) + addiu a0, r0, 577 ;; [111] (set! a0 577) + sw a0, 36(v1) ;; [112] (s.w! (+ v1 36) a0) + daddiu a0, v1, 44 ;; [113] (set! a0 (+ v1 44)) + mtc1 f0, r0 ;; [114] (set! f0 0) + swc1 f0, 0(a0) ;; [115] (s.f! a0 f0) + lui a1, 17894 ;; [116] (set! a1 #x45e66666) + ori a1, a1, 26214 + mtc1 f0, a1 ;; [117] (set! f0 (gpr->fpr a1)) + swc1 f0, 4(a0) ;; [118] (s.f! (+ a0 4) f0) + mtc1 f0, r0 ;; [119] (set! f0 0) + swc1 f0, 8(a0) ;; [120] (s.f! (+ a0 8) f0) + lui a1, 17740 ;; [121] (set! a1 #x454ccccd) + ori a1, a1, 52429 + mtc1 f0, a1 ;; [122] (set! f0 (gpr->fpr a1)) + swc1 f0, 12(a0) ;; [123] (s.f! (+ a0 12) f0) + lui v1, 17824 ;; [124] (set! v1 #x45a00000) + mtc1 f0, v1 ;; [125] (set! f0 (gpr->fpr v1)) + swc1 f0, 4(s5) ;; [126] (s.f! (+ s5 4) f0) + lwu v1, 156(s5) ;; [127] (set! v1 (l.wu (+ s5 156))) + lwu a0, 28(v1) ;; [128] (set! a0 (l.wu (+ v1 28))) + sw a0, 180(s5) ;; [129] (s.w! (+ s5 180) a0) + lwu v1, 32(v1) ;; [130] (set! v1 (l.wu (+ v1 32))) + sw v1, 184(s5) ;; [131] (s.w! (+ s5 184) v1) + addiu v1, r0, 3 ;; [132] (set! v1 3) + sb v1, 140(s5) ;; [133] (s.b! (+ s5 140) v1) + addiu v1, r0, 7 ;; [134] (set! v1 7) + sb v1, 188(s5) ;; [135] (s.b! (+ s5 188) v1) + sw s5, 124(gp) ;; [136] (s.w! (+ gp 124) s5) + or v0, r0, r0 ;; [137] (set! v0 0) + ld ra, 0(sp) + lq gp, 48(sp) + lq s5, 32(sp) + lq s4, 16(sp) + jr ra + daddiu sp, sp, 64 + + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! v1 collide-shape-moving) + (set! t9 (l.wu (+ v1 16))) + (set! a0 'process) + (set! a1 collide-shape-moving) + (set! a2 gp) + (set! a3 2) + (call!) + (set! s5 v0) + (set! a0 *standard-dynamics*) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 40))) + (set! a1 'process) + (call!) + (set! v1 v0) + (s.w! (+ s5 464) v1) + (set! v1 cshape-reaction-default) + (s.w! (+ s5 312) v1) + (set! v1 nothing) + (s.w! (+ s5 316) v1) + (set! v1 collide-shape-prim-group) + (set! t9 (l.wu (+ v1 16))) + (set! a0 'process) + (set! a1 collide-shape-prim-group) + (set! a2 s5) + (set! a3 3) + (set! t0 0) + (call!) + (set! s4 v0) + (set! v1 4) + (s.b! (+ s5 142) v1) + (set! v1 #x200004) + (s.w! (+ s4 28) v1) + (set! v1 #x806fb) + (s.w! (+ s4 32) v1) + (set! v1 585) + (s.w! (+ s4 36) v1) + (set! v1 (+ s4 44)) + (set! f0 0) + (s.f! v1 f0) + (set! a0 #x45c00000) + (set! f0 (gpr->fpr a0)) + (s.f! (+ v1 4) f0) + (set! f0 0) + (s.f! (+ v1 8) f0) + (set! a0 #x46000000) + (set! f0 (gpr->fpr a0)) + (s.f! (+ v1 12) f0) + (s.w! (+ s5 156) s4) + (set! v1 collide-shape-prim-sphere) + (set! t9 (l.wu (+ v1 16))) + (set! a0 'process) + (set! a1 collide-shape-prim-sphere) + (set! a2 s5) + (set! a3 0) + (call!) + (set! v1 v0) + (set! a0 #x200004) + (s.w! (+ v1 28) a0) + (set! a0 #x806fb) + (s.w! (+ v1 32) a0) + (set! a0 73) + (s.w! (+ v1 36) a0) + (set! a0 (+ v1 44)) + (set! f0 0) + (s.f! a0 f0) + (set! a1 #x454ccccd) + (set! f0 (gpr->fpr a1)) + (s.f! (+ a0 4) f0) + (set! f0 0) + (s.f! (+ a0 8) f0) + (set! a1 #x454ccccd) + (set! f0 (gpr->fpr a1)) + (s.f! (+ a0 12) f0) + (set! v1 collide-shape-prim-sphere) + (set! t9 (l.wu (+ v1 16))) + (set! a0 'process) + (set! a1 collide-shape-prim-sphere) + (set! a2 s5) + (set! a3 0) + (call!) + (set! v1 v0) + (set! a0 #x200004) + (s.w! (+ v1 28) a0) + (set! a0 #x806fb) + (s.w! (+ v1 32) a0) + (set! a0 65) + (s.w! (+ v1 36) a0) + (set! a0 (+ v1 44)) + (set! f0 0) + (s.f! a0 f0) + (set! a1 #x45a66666) + (set! f0 (gpr->fpr a1)) + (s.f! (+ a0 4) f0) + (set! f0 0) + (s.f! (+ a0 8) f0) + (set! a1 #x454ccccd) + (set! f0 (gpr->fpr a1)) + (s.f! (+ a0 12) f0) + (set! v1 collide-shape-prim-sphere) + (set! t9 (l.wu (+ v1 16))) + (set! a0 'process) + (set! a1 collide-shape-prim-sphere) + (set! a2 s5) + (set! a3 0) + (call!) + (set! v1 v0) + (set! a0 #x200004) + (s.w! (+ v1 28) a0) + (set! a0 #x806fb) + (s.w! (+ v1 32) a0) + (set! a0 577) + (s.w! (+ v1 36) a0) + (set! a0 (+ v1 44)) + (set! f0 0) + (s.f! a0 f0) + (set! a1 #x45e66666) + (set! f0 (gpr->fpr a1)) + (s.f! (+ a0 4) f0) + (set! f0 0) + (s.f! (+ a0 8) f0) + (set! a1 #x454ccccd) + (set! f0 (gpr->fpr a1)) + (s.f! (+ a0 12) f0) + (set! v1 #x45a00000) + (set! f0 (gpr->fpr v1)) + (s.f! (+ s5 4) f0) + (set! v1 (l.wu (+ s5 156))) + (set! a0 (l.wu (+ v1 28))) + (s.w! (+ s5 180) a0) + (set! v1 (l.wu (+ v1 32))) + (s.w! (+ s5 184) v1) + (set! v1 3) + (s.b! (+ s5 140) v1) + (set! v1 7) + (s.b! (+ s5 188) v1) + (s.w! (+ gp 124) s5) + (set! v0 0) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 183 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x20, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp +;; Warnings: +;; WARN: Type Propagation failed: Function (method 183 ashelin) has unknown type + +L173: + daddiu sp, sp, -32 + sd ra, 0(sp) + sq gp, 16(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + lw v1, bot(s7) ;; [ 1] (set! v1 bot) + lwu t9, 748(v1) ;; [ 2] (set! t9 (l.wu (+ v1 748))) + or a0, gp, r0 ;; [ 3] (set! a0 gp) + jalr ra, t9 ;; [ 4] (call!) + sll v0, ra, 0 + + beql s7, v0, L174 ;; [ 5] (bl! (not v0) L174 (no-delay!)) B1: - or v1, s7, r0 ;; [ 12] (set! v1-8 #f) [] -> [v1: '#f ] + or v0, v0, r0 ;; [ 6] (set! v0 v0) B2: - lw t9, can-feet?(s7) ;; [ 13] (set! t9-0 can-feet?) [] -> [t9: (function symbol :behavior target) ] - jalr ra, t9 ;; [ 14] (call!) [t9: (function symbol :behavior target) ] -> [v0: symbol ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 15] (set! v1-8 v0-0) [v0: symbol ] -> [v1: symbol ] + lwu v1, 64(gp) ;; [ 7] (set! v1 (l.wu (+ gp 64))) + beql s7, v1, L174 ;; [ 8] (bl! (not v1) L174 (no-delay!)) B3: -L648: - beq s7, v1, L649 ;; [ 16] (b! (not v1-8) L649 (set! v1-9 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 + or v0, v1, r0 ;; [ 9] (set! v0 v1) B4: - lw t9, enter-state(s7) ;; [ 17] (set! t9-1 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [ 18] (set! a0-2 #f) [] -> [a0: '#f ] - lw v1, target-attack-air(s7);; [ 19] (set! v1-10 target-attack-air) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [ 20] (s.w! (+ self 72) v1-10) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [ 21] (call! a0-2) [a0: '#f t9: ] -> [v0: object ] + lwu v1, 64(gp) ;; [ 10] (set! v1 (l.wu (+ gp 64))) + lwu v1, 0(v1) ;; [ 11] (set! v1 (l.wu v1)) + daddiu a0, s7, waiting-idle;; [ 12] (set! a0 'waiting-idle) + dsubu a0, v1, a0 ;; [ 13] (set! a1 (= v1 a0)) + daddiu a1, s7, 4 + movn a1, s7, a0 + bnel s7, a1, L174 ;; [ 14] (bl! (truthy a1) L174 (no-delay!)) +B5: + or v0, a1, r0 ;; [ 15] (set! v0 a1) + +B6: + daddiu a0, s7, hidden ;; [ 16] (set! a0 'hidden) + dsubu a0, v1, a0 ;; [ 17] (set! a1 (= v1 a0)) + daddiu a1, s7, 4 + movn a1, s7, a0 + bnel s7, a1, L174 ;; [ 18] (bl! (truthy a1) L174 (no-delay!)) +B7: + or v0, a1, r0 ;; [ 19] (set! v0 a1) + +B8: + daddiu a0, s7, traveling ;; [ 20] (set! a0 'traveling) + dsubu v1, v1, a0 ;; [ 21] (set! v0 (= v1 a0)) + daddiu v0, s7, 4 + movn v0, s7, v1 +B9: +L174: + ld ra, 0(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 32 + + sll r0, r0, 0 + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! v1 bot) + (set! t9 (l.wu (+ v1 748))) + (set! a0 gp) + (call!) + (bl! (not v0) L174 (no-delay!)) + (set! v0 v0) + (set! v1 (l.wu (+ gp 64))) + (bl! (not v1) L174 (no-delay!)) + (set! v0 v1) + (set! v1 (l.wu (+ gp 64))) + (set! v1 (l.wu v1)) + (set! a0 'waiting-idle) + (set! a1 (= v1 a0)) + (bl! (truthy a1) L174 (no-delay!)) + (set! v0 a1) + (set! a0 'hidden) + (set! a1 (= v1 a0)) + (bl! (truthy a1) L174 (no-delay!)) + (set! v0 a1) + (set! a0 'traveling) + (set! v0 (= v1 a0)) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 97 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x40, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp s5 s4 +;; Warnings: +;; WARN: Type Propagation failed: Function (method 97 ashelin) has unknown type + +L175: + daddiu sp, sp, -64 + sd ra, 0(sp) + sq s4, 16(sp) + sq s5, 32(sp) + sq gp, 48(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + ld v1, 748(gp) ;; [ 1] (set! v1 (l.d (+ gp 748))) + subu a0, v1, s7 ;; [ 2] (set! a0 (subu-s7 v1)) + beql a0, r0, L177 ;; [ 3] (bl! (zero? a0) L177 (no-delay!)) +B1: + or s5, s7, r0 ;; [ 4] (set! s5 #f) + +B2: + sllv a0, v1, r0 ;; [ 5] (.sllv a0 v1 r0) + lwu a0, 0(a0) ;; [ 6] (set! a0 (l.wu a0)) + lw a1, 40(a0) ;; [ 7] (set! a1 (l.w (+ a0 40))) + dsra32 v1, v1, 0 ;; [ 8] (set! v1 (sra v1 32)) + bne v1, a1, L176 ;; [ 9] (b! (!= v1 a1) L176 (set! s5 #f)) + or s5, s7, r0 + +B3: + or s5, a0, r0 ;; [ 10] (set! s5 a0) +B4: +L176: + or v1, s5, r0 ;; [ 11] (set! v1 s5) +B5: +L177: + lw t9, type?(s7) ;; [ 12] (set! t9 type?) + or a0, s5, r0 ;; [ 13] (set! a0 s5) + lw a1, process-focusable(s7);; [ 14] (set! a1 process-focusable) + jalr ra, t9 ;; [ 15] (call!) sll v0, ra, 0 - or v1, v0, r0 ;; [ 22] (set! v1-11 v0-1) [v0: object ] -> [v1: object ] -B5: -L649: - daddiu v1, s7, target-eco-powerup;; [ 23] (set! v1-12 'target-eco-powerup) [] -> [v1: symbol ] - bne s5, v1, L651 ;; [ 24] (b! (!= arg0 v1-12) L651 (set! v1-13 #f)) [v1: symbol s5: basic ] -> [v1: '#f ] + beq s7, v0, L178 ;; [ 16] (b! (not v0) L178 (set! v1 #f)) or v1, s7, r0 B6: - lwu v1, 108(s6) ;; [ 25] (set! v1-14 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - lwu v1, 664(v1) ;; [ 26] (set! v1-15 (l.wu (+ v1-14 664))) [v1: control-info ] -> [v1: cpad-info ] - lw v1, 32(v1) ;; [ 27] (set! v1-16 (l.w (+ v1-15 32))) [v1: cpad-info ] -> [v1: int ] - dsll v1, v1, 2 ;; [ 28] (set! v1-17 (sll v1-16 2)) [v1: int ] -> [v1: ] - lw a0, *cpad-list*(s7) ;; [ 29] (set! a0-3 *cpad-list*) [] -> [a0: cpad-list ] - daddu v1, v1, a0 ;; [ 30] (set! v1-18 (+ v1-17 a0-3)) - ;; [v1: a0: cpad-list ] -> [v1: ] - lwu v1, 4(v1) ;; [ 31] (set! v1-19 (l.wu (+ v1-18 4))) - ;; [v1: ] -> [v1: cpad-info ] - lwu v1, 56(v1) ;; [ 32] (set! v1-20 (l.wu (+ v1-19 56))) [v1: cpad-info ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 33] (set! a0-4 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 34] (set! a0-5 (l.wu (+ a0-4 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 35] (set! a0-6 (l.w (+ a0-5 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 36] (set! a0-7 (sll a0-6 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 37] (set! a1-1 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 38] (set! a0-8 (+ a0-7 a1-1)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 39] (set! a0-9 (l.wu (+ a0-8 4))) [a0: ] -> [a0: cpad-info ] - lwu a0, 60(a0) ;; [ 40] (set! a0-10 (l.wu (+ a0-9 60))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 41] (set! v1-21 (logior v1-20 a0-10)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - lwu a0, 108(s6) ;; [ 42] (set! a0-11 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [ 43] (set! a0-12 (l.wu (+ a0-11 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [ 44] (set! a0-13 (l.w (+ a0-12 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [ 45] (set! a0-14 (sll a0-13 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [ 46] (set! a1-2 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [ 47] (set! a0-15 (+ a0-14 a1-2)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [ 48] (set! a0-16 (l.wu (+ a0-15 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 64(a0) ;; [ 49] (set! a0-17 (l.wu (+ a0-16 64))) [a0: cpad-info ] -> [a0: pad-buttons ] - or v1, v1, a0 ;; [ 50] (set! v1-22 (logior v1-21 a0-17)) - ;; [v1: pad-buttons a0: pad-buttons ] -> [v1: pad-buttons ] - andi v1, v1, 16384 ;; [ 51] (set! v1-23 (logand v1-22 #x4000)) [v1: pad-buttons ] -> [v1: pad-buttons ] - beql v1, r0, L650 ;; [ 52] (bl! (zero? v1-23) L650 (no-delay!)) [v1: pad-buttons ] -> [] + or v1, s5, r0 ;; [ 17] (set! v1 s5) B7: - or v1, s7, r0 ;; [ 53] (set! v1-24 #f) [] -> [v1: '#f ] +L178: + beq s7, v1, L183 ;; [ 18] (b! (not v1) L183 (set! a0 #f)) + or a0, s7, r0 B8: - lwu v1, 152(s6) ;; [ 54] (set! v1-25 (l.wu (+ self 152))) [s6: target ] -> [v1: water-control ] - lwu v1, 0(v1) ;; [ 55] (set! v1-26 (l.wu v1-25)) [v1: water-control ] -> [v1: water-flags ] - andi v1, v1, 512 ;; [ 56] (set! v1-27 (logand v1-26 512)) [v1: water-flags ] -> [v1: water-flags ] - bnel v1, r0, L650 ;; [ 57] (bl! (nonzero? v1-27) L650 (no-delay!)) [v1: water-flags ] -> [] + lw a0, target(s7) ;; [ 19] (set! a0 target) + lwu a1, -4(v1) ;; [ 20] (set! a1 (l.wu (+ v1 -4))) + bne a1, a0, L182 ;; [ 21] (b! (!= a1 a0) L182 (nop!)) + sll r0, r0, 0 + B9: - or v1, s7, r0 ;; [ 58] (set! v1-24 #f) [] -> [v1: '#f ] - + lwu a0, 600(gp) ;; [ 22] (set! a0 (l.wu (+ gp 600))) + andi a0, a0, 128 ;; [ 23] (set! a0 (logand a0 128)) + beql a0, r0, L179 ;; [ 24] (bl! (zero? a0) L179 (no-delay!)) B10: - lw v1, *display*(s7) ;; [ 59] (set! v1-28 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [ 60] (set! v1-29 (l.d (+ v1-28 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [ 61] (set! a0-18 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [ 62] (set! v1-30 (- v1-29 a0-18)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slti v1, v1, 900 ;; [ 63] (set! a0-19 (<.si v1-30 900)) [v1: time-frame ] -> [a0: symbol ] - daddiu a0, s7, 8 - movz a0, s7, v1 - beql s7, a0, L650 ;; [ 64] (bl! (not a0-19) L650 (no-delay!)) [a0: symbol ] -> [] -B11: - or v1, a0, r0 ;; [ 65] (set! v1-24 a0-19) [a0: symbol ] -> [v1: symbol ] + daddiu a0, s7, 4 ;; [ 25] (set! a0 #t) +B11: + lwu a0, 8(s6) ;; [ 26] (set! a0 (l.wu (+ s6 8))) + ld a0, 20(a0) ;; [ 27] (set! a0 (l.d (+ a0 20))) + ld a1, 796(gp) ;; [ 28] (set! a1 (l.d (+ gp 796))) + dsubu a0, a0, a1 ;; [ 29] (set! a0 (- a0 a1)) + slti a1, a0, 1500 ;; [ 30] (set! a0 (>=.si a0 1500)) + daddiu a0, s7, 4 + movn a0, s7, a1 B12: - daddiu v1, s7, 8 ;; [ 66] (set! v1-31 #t) [] -> [v1: symbol ] - lwu a0, 160(s6) ;; [ 67] (set! a0-20 (l.wu (+ self 160))) [s6: target ] -> [a0: state-flags ] - andi a0, a0, 2048 ;; [ 68] (set! a0-21 (logand a0-20 2048)) [a0: state-flags ] -> [a0: state-flags ] - movn v1, s7, a0 ;; [ 69] (cmove-#f-nonzero v1-24 a0-21 v1-31) - ;; [v1: symbol a0: state-flags ] -> [v1: symbol ] +L179: + beq s7, a0, L181 ;; [ 31] (b! (not a0) L181 (set! a0 #f)) + or a0, s7, r0 + B13: -L650: - beq s7, v1, L651 ;; [ 70] (b! (not v1-24) L651 (set! v1-32 #f)) [v1: symbol ] -> [v1: '#f ] + lwu v1, 600(gp) ;; [ 32] (set! v1 (l.wu (+ gp 600))) + andi v1, v1, 128 ;; [ 33] (set! v1 (logand v1 128)) + beq v1, r0, L180 ;; [ 34] (b! (zero? v1) L180 (set! v1 #f)) or v1, s7, r0 B14: - lw t9, enter-state(s7) ;; [ 71] (set! t9-2 enter-state) [] -> [t9: ] - lw v1, *TARGET-bank*(s7) ;; [ 72] (set! v1-33 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 4(v1) ;; [ 73] (set! f0-0 (l.f (+ v1-33 4))) [v1: target-bank ] -> [] - mfc1 a0, f0 ;; [ 74] (set! a0-22 (fpr->gpr f0-0)) [] -> [a0: meters ] - lw v1, *TARGET-bank*(s7) ;; [ 75] (set! v1-34 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f0, 8(v1) ;; [ 76] (set! f0-1 (l.f (+ v1-34 8))) [v1: target-bank ] -> [] - mfc1 a1, f0 ;; [ 77] (set! a1-3 (fpr->gpr f0-1)) [] -> [a1: meters ] - or a2, s7, r0 ;; [ 78] (set! a2-0 #f) [] -> [a2: '#f ] - lw v1, target-jump(s7) ;; [ 79] (set! v1-35 target-jump) [] -> [v1: (state float float surface target) ] - sw v1, 72(s6) ;; [ 80] (s.w! (+ self 72) v1-35) - ;; [v1: (state float float surface target) s6: target ] -> [] - jalr ra, t9 ;; [ 81] (call! a0-22 a1-3 a2-0) - ;; [a0: meters a1: meters a2: '#f t9: ] -> [v0: object ] + or a0, gp, r0 ;; [ 35] (set! a0 gp) + lwu v1, -4(a0) ;; [ 36] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 764(v1) ;; [ 37] (set! t9 (l.wu (+ v1 764))) + jalr ra, t9 ;; [ 38] (call!) sll v0, ra, 0 - or v1, v0, r0 ;; [ 82] (set! v1-36 v0-2) [v0: object ] -> [v1: object ] + or v1, v0, r0 ;; [ 39] (set! v1 v0) B15: -L651: - lwu v1, 108(s6) ;; [ 83] (set! v1-37 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [ 84] (set! v1-38 (l.d (+ v1-37 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - andi v1, v1, 1 ;; [ 85] (set! v1-39 (logand v1-38 1)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - beq v1, r0, L652 ;; [ 86] (b! (zero? v1-39) L652 (set! v1-40 #f)) [v1: cshape-moving-flags ] -> [v1: '#f ] - or v1, s7, r0 - +L180: + or v1, s7, r0 ;; [ 40] (set! v1 #f) + sd s7, 748(gp) ;; [ 41] (s.d! (+ gp 748) #f) + or a0, s7, r0 ;; [ 42] (set! a0 #f) B16: - lw t9, enter-state(s7) ;; [ 87] (set! t9-3 enter-state) [] -> [t9: ] - or a0, s7, r0 ;; [ 88] (set! a0-23 #f) [] -> [a0: '#f ] - lw v1, target-hit-ground(s7);; [ 89] (set! v1-41 target-hit-ground) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [ 90] (s.w! (+ self 72) v1-41) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [ 91] (call! a0-23) [a0: '#f t9: ] -> [v0: object ] - sll v0, ra, 0 +L181: + beq r0, r0, L183 ;; [ 43] (b! #t L183 (nop!)) + sll r0, r0, 0 - or v1, v0, r0 ;; [ 92] (set! v1-42 v0-3) [v0: object ] -> [v1: object ] B17: -L652: - lw t9, target-move-dist(s7);; [ 93] (set! t9-4 target-move-dist) - ;; [] -> [t9: (function time-frame float :behavior target) ] - lw v1, *TARGET-bank*(s7) ;; [ 94] (set! v1-43 *TARGET-bank*) [] -> [v1: target-bank ] - ld a0, 556(v1) ;; [ 95] (set! a0-24 (l.d (+ v1-43 556))) [v1: target-bank ] -> [a0: seconds ] - jalr ra, t9 ;; [ 96] (call! a0-24) - ;; [a0: seconds t9: (function time-frame float :behavior target) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [ 97] (set! f0-2 (gpr->fpr v0-4)) [v0: float ] -> [] - lw v1, *TARGET-bank*(s7) ;; [ 98] (set! v1-44 *TARGET-bank*) [] -> [v1: target-bank ] - lwc1 f1, 572(v1) ;; [ 99] (set! f1-0 (l.f (+ v1-44 572))) [v1: target-bank ] -> [] - c.lt.s f0, f1 ;; [100] (b! (<.s f0-2 f1-0) L653 (set! v1-45 #t)) [] -> [v1: symbol ] - bc1t L653 - daddiu v1, s7, 8 +L182: + lwu a0, 8(s6) ;; [ 44] (set! a0 (l.wu (+ s6 8))) + ld a0, 20(a0) ;; [ 45] (set! a0 (l.d (+ a0 20))) + ld a1, 796(gp) ;; [ 46] (set! a1 (l.d (+ gp 796))) + dsubu a0, a0, a1 ;; [ 47] (set! a0 (- a0 a1)) + slti a0, a0, 750 ;; [ 48] (b! (<.si a0 750) L183 (set! a0 #f)) + bne a0, r0, L183 + or a0, s7, r0 B18: - or v1, s7, r0 ;; [101] (set! v1-45 #f) [] -> [v1: '#f ] + or v1, s7, r0 ;; [ 49] (set! v1 #f) + sd s7, 748(gp) ;; [ 50] (s.d! (+ gp 748) #f) + or a0, s7, r0 ;; [ 51] (set! a0 #f) B19: -L653: - beql s7, v1, L655 ;; [102] (bl! (not v1-45) L655 (no-delay!)) [v1: symbol ] -> [] +L183: + lb a0, 705(gp) ;; [ 52] (set! a0 (l.b (+ gp 705))) + or s5, s7, r0 ;; [ 53] (set! s5 #f) + bne a0, r0, L191 ;; [ 54] (b! (nonzero? a0) L191 (set! a1 #f)) + or a1, s7, r0 + B20: - or v1, v1, r0 ;; [103] (set! v1-46 v1-45) [v1: symbol ] -> [v1: symbol ] + beq s7, v1, L184 ;; [ 55] (b! (not v1) L184 (nop!)) + sll r0, r0, 0 B21: - slt v1, gp, r0 ;; [104] (set! a0-25 (>=0.si arg1)) [gp: time-frame ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L655 ;; [105] (bl! (not a0-25) L655 (no-delay!)) [a0: symbol ] -> [] + or s5, v1, r0 ;; [ 56] (set! s5 v1) + or a0, s5, r0 ;; [ 57] (set! a0 s5) + beq r0, r0, L190 ;; [ 58] (b! #t L190 (nop!)) + sll r0, r0, 0 + B22: - or v1, a0, r0 ;; [106] (set! v1-46 a0-25) [a0: symbol ] -> [v1: symbol ] +L184: + or a0, gp, r0 ;; [ 59] (set! a0 gp) + lwu v1, -4(a0) ;; [ 60] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 772(v1) ;; [ 61] (set! t9 (l.wu (+ v1 772))) + jalr ra, t9 ;; [ 62] (call!) + sll v0, ra, 0 + + or s5, v0, r0 ;; [ 63] (set! s5 v0) + beq s7, s5, L185 ;; [ 64] (b! (not s5) L185 (nop!)) + sll r0, r0, 0 B23: - lw v1, *display*(s7) ;; [107] (set! v1-47 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [108] (set! v1-48 (l.d (+ v1-47 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [109] (set! a0-26 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - dsubu v1, v1, a0 ;; [110] (set! v1-49 (- v1-48 a0-26)) [v1: time-frame a0: time-frame ] -> [v1: time-frame ] - slt v1, v1, gp ;; [111] (set! a0-27 (>=.si v1-49 arg1)) [v1: time-frame gp: time-frame ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beql s7, a0, L655 ;; [112] (bl! (not a0-27) L655 (no-delay!)) [a0: symbol ] -> [] -B24: - or v1, a0, r0 ;; [113] (set! v1-46 a0-27) [a0: symbol ] -> [v1: symbol ] + or a0, s5, r0 ;; [ 65] (set! a0 s5) + beq r0, r0, L190 ;; [ 66] (b! #t L190 (nop!)) + sll r0, r0, 0 +B24: +L185: + ld v1, 732(gp) ;; [ 67] (set! v1 (l.d (+ gp 732))) + subu a0, v1, s7 ;; [ 68] (set! a0 (subu-s7 v1)) + beql a0, r0, L187 ;; [ 69] (bl! (zero? a0) L187 (no-delay!)) B25: - lw v1, *cheat-mode*(s7) ;; [114] (set! v1-50 *cheat-mode*) [] -> [v1: symbol ] - beql s7, v1, L654 ;; [115] (bl! (not v1-50) L654 (no-delay!)) [v1: symbol ] -> [] + or s4, s7, r0 ;; [ 70] (set! s4 #f) + B26: - or v1, v1, r0 ;; [116] (set! v1-51 v1-50) [v1: symbol ] -> [v1: symbol ] + sllv a0, v1, r0 ;; [ 71] (.sllv a0 v1 r0) + lwu a0, 0(a0) ;; [ 72] (set! a0 (l.wu a0)) + lw a1, 40(a0) ;; [ 73] (set! a1 (l.w (+ a0 40))) + dsra32 v1, v1, 0 ;; [ 74] (set! v1 (sra v1 32)) + bne v1, a1, L186 ;; [ 75] (b! (!= v1 a1) L186 (set! s4 #f)) + or s4, s7, r0 B27: - daddiu v1, s7, 8 ;; [117] (set! v1-52 #t) [] -> [v1: symbol ] - lwu a0, 108(s6) ;; [118] (set! a0-28 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - lwu a0, 664(a0) ;; [119] (set! a0-29 (l.wu (+ a0-28 664))) [a0: control-info ] -> [a0: cpad-info ] - lw a0, 32(a0) ;; [120] (set! a0-30 (l.w (+ a0-29 32))) [a0: cpad-info ] -> [a0: int ] - dsll a0, a0, 2 ;; [121] (set! a0-31 (sll a0-30 2)) [a0: int ] -> [a0: ] - lw a1, *cpad-list*(s7) ;; [122] (set! a1-4 *cpad-list*) [] -> [a1: cpad-list ] - daddu a0, a0, a1 ;; [123] (set! a0-32 (+ a0-31 a1-4)) - ;; [a0: a1: cpad-list ] -> [a0: ] - lwu a0, 4(a0) ;; [124] (set! a0-33 (l.wu (+ a0-32 4))) - ;; [a0: ] -> [a0: cpad-info ] - lwu a0, 40(a0) ;; [125] (set! a0-34 (l.wu (+ a0-33 40))) [a0: cpad-info ] -> [a0: pad-buttons ] - andi a0, a0, 512 ;; [126] (set! a0-35 (logand a0-34 512)) [a0: pad-buttons ] -> [a0: pad-buttons ] - movz v1, s7, a0 ;; [127] (cmove-#f-zero v1-51 a0-35 v1-52) [v1: symbol a0: pad-buttons ] -> [v1: symbol ] + or s4, a0, r0 ;; [ 76] (set! s4 a0) B28: -L654: - beq s7, v1, L655 ;; [128] (b! (not v1-51) L655 (set! v1-46 #t)) [v1: symbol ] -> [v1: symbol ] - daddiu v1, s7, 8 - +L186: + or v1, s4, r0 ;; [ 77] (set! v1 s4) B29: - or v1, s7, r0 ;; [129] (set! v1-46 #f) [] -> [v1: '#f ] -B30: -L655: - beq s7, v1, L656 ;; [130] (b! (not v1-46) L656 (set! v1-53 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 +L187: + lw t9, type?(s7) ;; [ 78] (set! t9 type?) + or a0, s4, r0 ;; [ 79] (set! a0 s4) + lw a1, process-focusable(s7);; [ 80] (set! a1 process-focusable) + jalr ra, t9 ;; [ 81] (call!) + sll v0, ra, 0 + beq s7, v0, L188 ;; [ 82] (b! (not v0) L188 (set! s5 #f)) + or s5, s7, r0 + +B30: + or s5, s4, r0 ;; [ 83] (set! s5 s4) B31: - daddiu v1, s7, #t ;; [131] (set! v1-53 #t) [] -> [v1: symbol ] +L188: + beq s7, s5, L189 ;; [ 84] (b! (not s5) L189 (nop!)) + sll r0, r0, 0 + B32: -L656: - beq s7, v1, L657 ;; [132] (b! (not v1-53) L657 (set! v1-54 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 + or a0, s5, r0 ;; [ 85] (set! a0 s5) + beq r0, r0, L190 ;; [ 86] (b! #t L190 (nop!)) + sll r0, r0, 0 B33: - lwu v1, 108(s6) ;; [133] (set! v1-55 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [134] (set! v1-56 (l.d (+ v1-55 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - ori v1, v1, 1 ;; [135] (set! v1-57 (logior v1-56 1)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - lwu a0, 108(s6) ;; [136] (set! a0-36 (l.wu (+ self 108))) [s6: target ] -> [a0: control-info ] - sd v1, 268(a0) ;; [137] (s.d! (+ a0-36 268) v1-57) [v1: cshape-moving-flags a0: control-info ] -> [] - lw t9, enter-state(s7) ;; [138] (set! t9-5 enter-state) [] -> [t9: ] - daddiu a0, s7, stuck ;; [139] (set! a0-37 'stuck) [] -> [a0: symbol ] - lw v1, target-hit-ground(s7);; [140] (set! v1-58 target-hit-ground) [] -> [v1: (state symbol target) ] - sw v1, 72(s6) ;; [141] (s.w! (+ self 72) v1-58) [v1: (state symbol target) s6: target ] -> [] - jalr ra, t9 ;; [142] (call! a0-37) [a0: symbol t9: ] -> [v0: object ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [143] (set! v1-59 v0-5) [v0: object ] -> [v1: object ] +L189: + lw s5, *target*(s7) ;; [ 87] (set! s5 *target*) + or a0, s5, r0 ;; [ 88] (set! a0 s5) B34: -L657: - lw v1, *display*(s7) ;; [144] (set! v1-60 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [145] (set! v1-61 (l.d (+ v1-60 780))) [v1: display ] -> [v1: time-frame ] - ld a0, 164(s6) ;; [146] (set! a0-38 (l.d (+ self 164))) [s6: target ] -> [a0: time-frame ] - beq a0, v1, L658 ;; [147] (b! (= a0-38 v1-61) L658 (set! v1-62 #f)) - ;; [v1: time-frame a0: time-frame ] -> [v1: '#f ] - or v1, s7, r0 +L190: + beq r0, r0, L198 ;; [ 89] (b! #t L198 (nop!)) + sll r0, r0, 0 B35: - lw t9, slide-down-test(s7);; [148] (set! t9-6 slide-down-test) [] -> [t9: (function none :behavior target) ] - jalr ra, t9 ;; [149] (call!) [t9: (function none :behavior target) ] -> [v0: none ] +L191: + addiu a1, r0, 1 ;; [ 90] (set! a1 1) + bne a0, a1, L198 ;; [ 91] (b! (!= a0 a1) L198 (set! a0 #f)) + or a0, s7, r0 + +B36: + beq s7, v1, L192 ;; [ 92] (b! (not v1) L192 (nop!)) + sll r0, r0, 0 + +B37: + or s5, v1, r0 ;; [ 93] (set! s5 v1) + or a0, s5, r0 ;; [ 94] (set! a0 s5) + beq r0, r0, L198 ;; [ 95] (b! #t L198 (nop!)) + sll r0, r0, 0 + +B38: +L192: + ld v1, 732(gp) ;; [ 96] (set! v1 (l.d (+ gp 732))) + subu a0, v1, s7 ;; [ 97] (set! a0 (subu-s7 v1)) + beql a0, r0, L194 ;; [ 98] (bl! (zero? a0) L194 (no-delay!)) +B39: + or s4, s7, r0 ;; [ 99] (set! s4 #f) + +B40: + sllv a0, v1, r0 ;; [100] (.sllv a0 v1 r0) + lwu a0, 0(a0) ;; [101] (set! a0 (l.wu a0)) + lw a1, 40(a0) ;; [102] (set! a1 (l.w (+ a0 40))) + dsra32 v1, v1, 0 ;; [103] (set! v1 (sra v1 32)) + bne v1, a1, L193 ;; [104] (b! (!= v1 a1) L193 (set! s4 #f)) + or s4, s7, r0 + +B41: + or s4, a0, r0 ;; [105] (set! s4 a0) +B42: +L193: + or v1, s4, r0 ;; [106] (set! v1 s4) +B43: +L194: + lw t9, type?(s7) ;; [107] (set! t9 type?) + or a0, s4, r0 ;; [108] (set! a0 s4) + lw a1, process-focusable(s7);; [109] (set! a1 process-focusable) + jalr ra, t9 ;; [110] (call!) sll v0, ra, 0 - or v1, v0, r0 ;; [150] (set! v1-63 v0-6) [v0: none ] -> [v1: none ] -B36: -L658: - or v0, r0, r0 ;; [151] (set! v0-7 0) [] -> [v0: ] + beq s7, v0, L195 ;; [111] (b! (not v0) L195 (set! s5 #f)) + or s5, s7, r0 + +B44: + or s5, s4, r0 ;; [112] (set! s5 s4) +B45: +L195: + beq s7, s5, L196 ;; [113] (b! (not s5) L196 (nop!)) + sll r0, r0, 0 + +B46: + or a0, s5, r0 ;; [114] (set! a0 s5) + beq r0, r0, L198 ;; [115] (b! #t L198 (nop!)) + sll r0, r0, 0 + +B47: +L196: + or a0, gp, r0 ;; [116] (set! a0 gp) + lwu v1, -4(a0) ;; [117] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 772(v1) ;; [118] (set! t9 (l.wu (+ v1 772))) + jalr ra, t9 ;; [119] (call!) + sll v0, ra, 0 + + or s5, v0, r0 ;; [120] (set! s5 v0) + beq s7, s5, L197 ;; [121] (b! (not s5) L197 (nop!)) + sll r0, r0, 0 + +B48: + or a0, s5, r0 ;; [122] (set! a0 s5) + beq r0, r0, L198 ;; [123] (b! #t L198 (nop!)) + sll r0, r0, 0 + +B49: +L197: + lw s5, *target*(s7) ;; [124] (set! s5 *target*) + or a0, s5, r0 ;; [125] (set! a0 s5) +B50: +L198: + beq s7, s5, L201 ;; [126] (b! (not s5) L201 (nop!)) + sll r0, r0, 0 + +B51: + daddiu a0, gp, 380 ;; [127] (set! a0 (+ gp 380)) + lw v1, enemy-focus(s7) ;; [128] (set! v1 enemy-focus) + lwu t9, 64(v1) ;; [129] (set! t9 (l.wu (+ v1 64))) + or a1, s5, r0 ;; [130] (set! a1 s5) + or a2, gp, r0 ;; [131] (set! a2 gp) + jalr ra, t9 ;; [132] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [133] (set! v1 v0) + lwu v1, 600(gp) ;; [134] (set! v1 (l.wu (+ gp 600))) + andi v1, v1, 128 ;; [135] (set! v1 (logand v1 128)) + beql v1, r0, L199 ;; [136] (bl! (zero? v1) L199 (no-delay!)) +B52: + or v1, s7, r0 ;; [137] (set! v1 #f) + +B53: + lwu v1, -4(s5) ;; [138] (set! v1 (l.wu (+ s5 -4))) + lw a0, target(s7) ;; [139] (set! a0 target) + dsubu a0, v1, a0 ;; [140] (set! v1 (!= v1 a0)) + daddiu v1, s7, 4 + movz v1, s7, a0 +B54: +L199: + beq s7, v1, L200 ;; [141] (b! (not v1) L200 (set! v1 #f)) + or v1, s7, r0 + +B55: + addiu v1, r0, -129 ;; [142] (set! v1 -129) + lwu a0, 600(gp) ;; [143] (set! a0 (l.wu (+ gp 600))) + and v1, v1, a0 ;; [144] (set! v1 (logand v1 a0)) + sw v1, 600(gp) ;; [145] (s.w! (+ gp 600) v1) +B56: +L200: + beq r0, r0, L202 ;; [146] (b! #t L202 (nop!)) + sll r0, r0, 0 + +B57: +L201: + daddiu a0, gp, 380 ;; [147] (set! a0 (+ gp 380)) + lw v1, enemy-focus(s7) ;; [148] (set! v1 enemy-focus) + lwu t9, 52(v1) ;; [149] (set! t9 (l.wu (+ v1 52))) + jalr ra, t9 ;; [150] (call!) + sll v0, ra, 0 + + or v1, v0, r0 ;; [151] (set! v1 v0) + addiu v1, r0, -129 ;; [152] (set! v1 -129) + lwu a0, 600(gp) ;; [153] (set! a0 (l.wu (+ gp 600))) + and v1, v1, a0 ;; [154] (set! v1 (logand v1 a0)) + sw v1, 600(gp) ;; [155] (s.w! (+ gp 600) v1) +B58: +L202: + or v0, s5, r0 ;; [156] (set! v0 s5) ld ra, 0(sp) - lq gp, 32(sp) - lq s5, 16(sp) + lq gp, 48(sp) + lq s5, 32(sp) + lq s4, 16(sp) jr ra - daddiu sp, sp, 48 + daddiu sp, sp, 64 sll r0, r0, 0 sll r0, r0, 0 - sll r0, r0, 0 - - -;;-*-OpenGOAL-Start-*- - -(defbehavior target-falling-trans target ((arg0 basic) (arg1 time-frame)) - (if (and (cpad-pressed? (-> self control unknown-cpad-info00 number) circle) (can-feet?)) - (go target-attack-air #f) - ) - (when (= arg0 'target-eco-powerup) - (if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 1) - ) - (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 2) - ) - (pad-buttons x) - ) - (zero? (logand (-> self water flags) (water-flags wt09))) - (< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3)) - (zero? (logand (-> self state-flags) (state-flags prevent-jump))) - ) - (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) - ) - ) - (if (logtest? (-> self control status) (cshape-moving-flags onsurf)) - (go target-hit-ground #f) - ) - (when (if (and (< (target-move-dist (-> *TARGET-bank* stuck-time)) (-> *TARGET-bank* stuck-distance)) - (>= arg1 0) - (>= (- (-> *display* base-frame-counter) (-> self state-time)) arg1) - (not (and *cheat-mode* (cpad-hold? (-> self control unknown-cpad-info00 number) r2))) - ) - #t - ) - (logior! (-> self control status) (cshape-moving-flags onsurf)) - (go target-hit-ground 'stuck) - ) - (if (!= (-> self state-time) (-> *display* base-frame-counter)) - (slide-down-test) - ) - 0 - (none) - ) - -;;-*-OpenGOAL-End-*- + (set! gp a0) + (set! v1 (l.d (+ gp 748))) + (set! a0 (subu-s7 v1)) + (bl! (zero? a0) L177 (no-delay!)) + (set! s5 #f) + (.sllv a0 v1 r0) + (set! a0 (l.wu a0)) + (set! a1 (l.w (+ a0 40))) + (set! v1 (sra v1 32)) + (b! (!= v1 a1) L176 (set! s5 #f)) + (set! s5 a0) +(label L176) + (set! v1 s5) +(label L177) + (set! t9 type?) + (set! a0 s5) + (set! a1 process-focusable) + (call!) + (b! (not v0) L178 (set! v1 #f)) + (set! v1 s5) +(label L178) + (b! (not v1) L183 (set! a0 #f)) + (set! a0 target) + (set! a1 (l.wu (+ v1 -4))) + (b! (!= a1 a0) L182 (nop!)) + (set! a0 (l.wu (+ gp 600))) + (set! a0 (logand a0 128)) + (bl! (zero? a0) L179 (no-delay!)) + (set! a0 #t) + (set! a0 (l.wu (+ s6 8))) + (set! a0 (l.d (+ a0 20))) + (set! a1 (l.d (+ gp 796))) + (set! a0 (- a0 a1)) + (set! a0 (>=.si a0 1500)) +(label L179) + (b! (not a0) L181 (set! a0 #f)) + (set! v1 (l.wu (+ gp 600))) + (set! v1 (logand v1 128)) + (b! (zero? v1) L180 (set! v1 #f)) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 764))) + (call!) + (set! v1 v0) +(label L180) + (set! v1 #f) + (s.d! (+ gp 748) #f) + (set! a0 #f) +(label L181) + (b! #t L183 (nop!)) +(label L182) + (set! a0 (l.wu (+ s6 8))) + (set! a0 (l.d (+ a0 20))) + (set! a1 (l.d (+ gp 796))) + (set! a0 (- a0 a1)) + (b! (<.si a0 750) L183 (set! a0 #f)) + (set! v1 #f) + (s.d! (+ gp 748) #f) + (set! a0 #f) +(label L183) + (set! a0 (l.b (+ gp 705))) + (set! s5 #f) + (b! (nonzero? a0) L191 (set! a1 #f)) + (b! (not v1) L184 (nop!)) + (set! s5 v1) + (set! a0 s5) + (b! #t L190 (nop!)) +(label L184) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 772))) + (call!) + (set! s5 v0) + (b! (not s5) L185 (nop!)) + (set! a0 s5) + (b! #t L190 (nop!)) +(label L185) + (set! v1 (l.d (+ gp 732))) + (set! a0 (subu-s7 v1)) + (bl! (zero? a0) L187 (no-delay!)) + (set! s4 #f) + (.sllv a0 v1 r0) + (set! a0 (l.wu a0)) + (set! a1 (l.w (+ a0 40))) + (set! v1 (sra v1 32)) + (b! (!= v1 a1) L186 (set! s4 #f)) + (set! s4 a0) +(label L186) + (set! v1 s4) +(label L187) + (set! t9 type?) + (set! a0 s4) + (set! a1 process-focusable) + (call!) + (b! (not v0) L188 (set! s5 #f)) + (set! s5 s4) +(label L188) + (b! (not s5) L189 (nop!)) + (set! a0 s5) + (b! #t L190 (nop!)) +(label L189) + (set! s5 *target*) + (set! a0 s5) +(label L190) + (b! #t L198 (nop!)) +(label L191) + (set! a1 1) + (b! (!= a0 a1) L198 (set! a0 #f)) + (b! (not v1) L192 (nop!)) + (set! s5 v1) + (set! a0 s5) + (b! #t L198 (nop!)) +(label L192) + (set! v1 (l.d (+ gp 732))) + (set! a0 (subu-s7 v1)) + (bl! (zero? a0) L194 (no-delay!)) + (set! s4 #f) + (.sllv a0 v1 r0) + (set! a0 (l.wu a0)) + (set! a1 (l.w (+ a0 40))) + (set! v1 (sra v1 32)) + (b! (!= v1 a1) L193 (set! s4 #f)) + (set! s4 a0) +(label L193) + (set! v1 s4) +(label L194) + (set! t9 type?) + (set! a0 s4) + (set! a1 process-focusable) + (call!) + (b! (not v0) L195 (set! s5 #f)) + (set! s5 s4) +(label L195) + (b! (not s5) L196 (nop!)) + (set! a0 s5) + (b! #t L198 (nop!)) +(label L196) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 772))) + (call!) + (set! s5 v0) + (b! (not s5) L197 (nop!)) + (set! a0 s5) + (b! #t L198 (nop!)) +(label L197) + (set! s5 *target*) + (set! a0 s5) +(label L198) + (b! (not s5) L201 (nop!)) + (set! a0 (+ gp 380)) + (set! v1 enemy-focus) + (set! t9 (l.wu (+ v1 64))) + (set! a1 s5) + (set! a2 gp) + (call!) + (set! v1 v0) + (set! v1 (l.wu (+ gp 600))) + (set! v1 (logand v1 128)) + (bl! (zero? v1) L199 (no-delay!)) + (set! v1 #f) + (set! v1 (l.wu (+ s5 -4))) + (set! a0 target) + (set! v1 (!= v1 a0)) +(label L199) + (b! (not v1) L200 (set! v1 #f)) + (set! v1 -129) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logand v1 a0)) + (s.w! (+ gp 600) v1) +(label L200) + (b! #t L202 (nop!)) +(label L201) + (set! a0 (+ gp 380)) + (set! v1 enemy-focus) + (set! t9 (l.wu (+ v1 52))) + (call!) + (set! v1 v0) + (set! v1 -129) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logand v1 a0)) + (s.w! (+ gp 600) v1) +(label L202) + (set! v0 s5) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function target-falling-anim-trans +; .function (method 104 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x10, fp? 1 ra? 1 ep? 1 + ;stack: total 0x10, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 ;; Warnings: -;; INFO: Return type mismatch int vs none. +;; WARN: Type Propagation failed: Function (method 104 ashelin) has unknown type -;; v1-2: art-joint-anim s6-0: target -L659: +L203: daddiu sp, sp, -16 sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 B0: - lwu v1, 120(s6) ;; [ 0] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 1] (set! v1-1 (l.w (+ v1-0 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 2] (b! (<=0.si v1-1) L660 (set! v1-2 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L660 - or v1, s7, r0 - + lwu v1, -4(a1) ;; [ 0] (set! v1 (l.wu (+ a1 -4))) + lw t0, target(s7) ;; [ 1] (set! t0 target) + dsubu v1, v1, t0 ;; [ 2] (set! t0 (= v1 t0)) + daddiu t0, s7, 4 + movn t0, s7, v1 + beql s7, t0, L204 ;; [ 3] (bl! (not t0) L204 (no-delay!)) B1: - lwu v1, 120(s6) ;; [ 3] (set! v1-3 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 4] (set! v1-4 (l.wu (+ v1-3 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 5] (set! v1-2 (l.wu (+ v1-4 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] + or v1, t0, r0 ;; [ 4] (set! v1 t0) + B2: -L660: - lwu a0, 116(s6) ;; [ 6] (set! a0-0 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 7] (set! a0-1 (l.wu (+ a0-0 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 180(a0) ;; [ 8] (set! a0-2 (l.wu (+ a0-1 180))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [ 9] (set! a1-0 (= v1-2 a0-2)) [v1: art-joint-anim a0: art-element ] -> [a1: symbol ] - daddiu a1, s7, 8 - movn a1, s7, a0 - bnel s7, a1, L661 ;; [ 10] (bl! (truthy a1-0) L661 (no-delay!)) [a1: symbol ] -> [] + lwu v1, 64(a0) ;; [ 5] (set! v1 (l.wu (+ a0 64))) + beql s7, v1, L204 ;; [ 6] (bl! (not v1) L204 (no-delay!)) B3: - or a0, a1, r0 ;; [ 11] (set! a0-3 a1-0) [a1: symbol ] -> [a0: symbol ] + or v1, v1, r0 ;; [ 7] (set! v1 v1) B4: - lwu a0, 116(s6) ;; [ 12] (set! a0-4 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 13] (set! a0-5 (l.wu (+ a0-4 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 168(a0) ;; [ 14] (set! a0-6 (l.wu (+ a0-5 168))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 15] (set! a0-3 (= v1-2 a0-6)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 + lwu v1, 64(a0) ;; [ 8] (set! v1 (l.wu (+ a0 64))) + lwu v1, 0(v1) ;; [ 9] (set! v1 (l.wu v1)) + daddiu t0, s7, back-spring;; [ 10] (set! t0 'back-spring) + dsubu t0, v1, t0 ;; [ 11] (set! t1 (= v1 t0)) + daddiu t1, s7, 4 + movn t1, s7, t0 + bnel s7, t1, L204 ;; [ 12] (bl! (truthy t1) L204 (no-delay!)) B5: -L661: - bne s7, a0, L662 ;; [ 16] (b! (truthy a0-3) L662 (set! v1-5 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 + or v1, t1, r0 ;; [ 13] (set! v1 t1) B6: - lw t9, ja-channel-push!(s7);; [ 17] (set! t9-0 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 18] (set! a0-7 1) [] -> [a0: ] - addiu a1, r0, 99 ;; [ 19] (set! a1-1 99) [] -> [a1: ] - jalr ra, t9 ;; [ 20] (call! a0-7 a1-1) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 21] (set! v1-6 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 22] (set! v1-7 (l.wu (+ v1-6 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu v1, r0, v1 ;; [ 23] (set! v1-8 (+ v1-7 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - lwu a0, 116(s6) ;; [ 24] (set! a0-8 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 25] (set! a0-9 (l.wu (+ a0-8 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 180(a0) ;; [ 26] (set! a0-10 (l.wu (+ a0-9 180))) [a0: art-group ] -> [a0: art-element ] - sw a0, 12(v1) ;; [ 27] (s.w! (+ v1-8 12) a0-10) [v1: joint-control-channel a0: art-element ] -> [] - beq r0, r0, L669 ;; [ 28] (b! #t L669 (nop!)) [] -> [] - sll r0, r0, 0 - + daddiu t0, s7, cartwheel-left;; [ 14] (set! t0 'cartwheel-left) + dsubu t0, v1, t0 ;; [ 15] (set! t1 (= v1 t0)) + daddiu t1, s7, 4 + movn t1, s7, t0 + bnel s7, t1, L204 ;; [ 16] (bl! (truthy t1) L204 (no-delay!)) B7: -L662: - lwu v1, 108(s6) ;; [ 29] (set! v1-9 (l.wu (+ self 108))) [s6: target ] -> [v1: control-info ] - ld v1, 268(v1) ;; [ 30] (set! v1-10 (l.d (+ v1-9 268))) [v1: control-info ] -> [v1: cshape-moving-flags ] - andi v1, v1, 1 ;; [ 31] (set! v1-11 (logand v1-10 1)) - ;; [v1: cshape-moving-flags ] -> [v1: cshape-moving-flags ] - beql v1, r0, L664 ;; [ 32] (bl! (zero? v1-11) L664 (no-delay!)) [v1: cshape-moving-flags ] -> [] -B8: - or v1, s7, r0 ;; [ 33] (set! v1-12 #f) [] -> [v1: '#f ] + or v1, t1, r0 ;; [ 17] (set! v1 t1) +B8: + daddiu t0, s7, tumble-right;; [ 18] (set! t0 'tumble-right) + dsubu t0, v1, t0 ;; [ 19] (set! v1 (= v1 t0)) + daddiu v1, s7, 4 + movn v1, s7, t0 B9: - lwu v1, 120(s6) ;; [ 34] (set! v1-13 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 35] (set! v1-14 (l.w (+ v1-13 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 36] (b! (<=0.si v1-14) L663 (set! v1-15 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L663 - or v1, s7, r0 +L204: + beq s7, v1, L205 ;; [ 20] (b! (not v1) L205 (nop!)) + sll r0, r0, 0 B10: - lwu v1, 120(s6) ;; [ 37] (set! v1-16 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 38] (set! v1-17 (l.wu (+ v1-16 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 39] (set! v1-15 (l.wu (+ v1-17 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] + or v0, s7, r0 ;; [ 21] (set! v0 #f) + beq r0, r0, L206 ;; [ 22] (b! #t L206 (nop!)) + sll r0, r0, 0 + B11: -L663: - lwu a0, 116(s6) ;; [ 40] (set! a0-11 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 41] (set! a0-12 (l.wu (+ a0-11 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 168(a0) ;; [ 42] (set! a0-13 (l.wu (+ a0-12 168))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 43] (set! a0-14 (= v1-15 a0-13)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L664 ;; [ 44] (b! (not a0-14) L664 (set! v1-12 #t)) [a0: symbol ] -> [v1: symbol ] - daddiu v1, s7, 8 +L205: + lw v1, bot(s7) ;; [ 23] (set! v1 bot) + lwu t9, 432(v1) ;; [ 24] (set! t9 (l.wu (+ v1 432))) + jalr ra, t9 ;; [ 25] (call!) + sll v0, ra, 0 B12: - or v1, s7, r0 ;; [ 45] (set! v1-12 #f) [] -> [v1: '#f ] -B13: -L664: - beq s7, v1, L665 ;; [ 46] (b! (not v1-12) L665 (set! v1-18 #f)) [v1: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B14: - lw t9, ja-channel-push!(s7);; [ 47] (set! t9-1 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 48] (set! a0-15 1) [] -> [a0: ] - addiu a1, r0, 6 ;; [ 49] (set! a1-2 6) [] -> [a1: ] - jalr ra, t9 ;; [ 50] (call! a0-15 a1-2) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 51] (set! v1-19 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 52] (set! v1-20 (l.wu (+ v1-19 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu v1, r0, v1 ;; [ 53] (set! v1-21 (+ v1-20 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - lwu a0, 116(s6) ;; [ 54] (set! a0-16 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 55] (set! a0-17 (l.wu (+ a0-16 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 168(a0) ;; [ 56] (set! a0-18 (l.wu (+ a0-17 168))) [a0: art-group ] -> [a0: art-element ] - sw a0, 12(v1) ;; [ 57] (s.w! (+ v1-21 12) a0-18) [v1: joint-control-channel a0: art-element ] -> [] - beq r0, r0, L669 ;; [ 58] (b! #t L669 (nop!)) [] -> [] - sll r0, r0, 0 - -B15: -L665: - lwu v1, 120(s6) ;; [ 59] (set! v1-22 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 60] (set! v1-23 (l.w (+ v1-22 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 61] (b! (<=0.si v1-23) L666 (set! v1-24 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L666 - or v1, s7, r0 - -B16: - lwu v1, 120(s6) ;; [ 62] (set! v1-25 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 63] (set! v1-26 (l.wu (+ v1-25 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 64] (set! v1-24 (l.wu (+ v1-26 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B17: -L666: - lwu a0, 116(s6) ;; [ 65] (set! a0-19 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 66] (set! a0-20 (l.wu (+ a0-19 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 180(a0) ;; [ 67] (set! a0-21 (l.wu (+ a0-20 180))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 68] (set! a0-22 (= v1-24 a0-21)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L667 ;; [ 69] (b! (not a0-22) L667 (set! v1-27 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B18: - lwu v1, 120(s6) ;; [ 70] (set! v1-28 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 71] (set! v1-29 (l.wu (+ v1-28 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 72] (set! a0-23 (+ v1-29 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lui v1, L786 ;; [ 73] (set! v1-30 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 74] (set! f0-0 (l.f v1-30)) [v1: ] -> [] - swc1 f0, 24(a0) ;; [ 75] (s.f! (+ a0-23 24) f0-0) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 76] (set! t9-2 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 77] (set! a1-3 #f) [] -> [a1: '#f ] - lw a2, num-func-loop!(s7) ;; [ 78] (set! a2-0 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 79] (call! a0-23 a1-3 a2-0) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 80] (set! v1-31 v0-2) [v0: int ] -> [v1: int ] - beq r0, r0, L669 ;; [ 81] (b! #t L669 (nop!)) [] -> [] - sll r0, r0, 0 - -B19: -L667: - lwu v1, 120(s6) ;; [ 82] (set! v1-32 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 83] (set! v1-33 (l.w (+ v1-32 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 84] (b! (<=0.si v1-33) L668 (set! v1-34 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L668 - or v1, s7, r0 - -B20: - lwu v1, 120(s6) ;; [ 85] (set! v1-35 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 86] (set! v1-36 (l.wu (+ v1-35 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 87] (set! v1-34 (l.wu (+ v1-36 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B21: -L668: - lwu a0, 116(s6) ;; [ 88] (set! a0-24 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 89] (set! a0-25 (l.wu (+ a0-24 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 168(a0) ;; [ 90] (set! a0-26 (l.wu (+ a0-25 168))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 91] (set! a0-27 (= v1-34 a0-26)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L669 ;; [ 92] (b! (not a0-27) L669 (set! v1-37 #f)) [a0: symbol ] -> [v1: '#f ] - or v1, s7, r0 - -B22: - lwu v1, 120(s6) ;; [ 93] (set! v1-38 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 94] (set! v1-39 (l.wu (+ v1-38 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 95] (set! a0-28 (+ v1-39 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [ 96] (set! v1-40 (l.wu (+ a0-28 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 97] (set! v1-41 (l.wu (+ v1-40 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 98] (set! v1-42 (l.h (+ v1-41 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 99] (set! v1-43 (+ v1-42 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [100] (set! f0-1 (gpr->fpr v1-43)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [101] (set! f0-2 (i2f f0-1)) [] -> [] - swc1 f0, 24(a0) ;; [102] (s.f! (+ a0-28 24) f0-2) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [103] (set! v1-44 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [104] (set! f0-3 (l.f v1-44)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [105] (s.f! (+ a0-28 28) f0-3) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [106] (set! t9-3 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [107] (set! a1-4 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [108] (set! a2-1 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [109] (call! a0-28 a1-4 a2-1) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [110] (set! v1-45 v0-3) [v0: int ] -> [v1: int ] -B23: -L669: - or v0, r0, r0 ;; [111] (set! v0-4 0) [] -> [v0: ] +L206: ld ra, 0(sp) - ld fp, 8(sp) jr ra daddiu sp, sp, 16 @@ -28826,1219 +8851,476 @@ L669: sll r0, r0, 0 sll r0, r0, 0 - -;;-*-OpenGOAL-Start-*- - -(defbehavior target-falling-anim-trans target () - (let ((v1-2 (ja-group))) - (b! - (or (= v1-2 (-> self draw art-group data 38)) (= v1-2 (-> self draw art-group data 35))) - cfg-7 - :delay (empty-form) - ) - ) - (ja-channel-push! 1 (seconds 0.33)) - (ja :group! (-> self draw art-group data 38)) - (b! #t cfg-23 :delay (nop!)) - (label cfg-7) - (cond - ((and (logtest? (-> self control status) (cshape-moving-flags onsurf)) - (not (ja-group? (-> self draw art-group data 35))) - ) - (ja-channel-push! 1 (seconds 0.02)) - (ja :group! (-> self draw art-group data 35)) - ) - ((ja-group? (-> self draw art-group data 38)) - (ja :num! (loop!)) - ) - ((ja-group? (-> self draw art-group data 35)) - (ja :num! (seek!)) - ) - ) - (label cfg-23) - 0 - (none) - ) - -;;-*-OpenGOAL-End-*- - + (set! v1 (l.wu (+ a1 -4))) + (set! t0 target) + (set! t0 (= v1 t0)) + (bl! (not t0) L204 (no-delay!)) + (set! v1 t0) + (set! v1 (l.wu (+ a0 64))) + (bl! (not v1) L204 (no-delay!)) + (set! v1 v1) + (set! v1 (l.wu (+ a0 64))) + (set! v1 (l.wu v1)) + (set! t0 'back-spring) + (set! t1 (= v1 t0)) + (bl! (truthy t1) L204 (no-delay!)) + (set! v1 t1) + (set! t0 'cartwheel-left) + (set! t1 (= v1 t0)) + (bl! (truthy t1) L204 (no-delay!)) + (set! v1 t1) + (set! t0 'tumble-right) + (set! v1 (= v1 t0)) +(label L204) + (b! (not v1) L205 (nop!)) + (set! v0 #f) + (b! #t L206 (nop!)) +(label L205) + (set! v1 bot) + (set! t9 (l.wu (+ v1 432))) + (call!) + (ret-value v0) ;; .endfunction ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; .function target-falling-anim +; .function (method 106 ashelin) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - ;stack: total 0x30, fp? 1 ra? 1 ep? 1 - ;gprs: gp s5 -;; v1-2: art-joint-anim v1-8: art-joint-anim a0-0: time-frame a1-0: time-frame s5-1: time-frame -;; s6-0: target -L670: - daddiu sp, sp, -48 + ;stack: total 0x20, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp +;; Warnings: +;; WARN: Type Propagation failed: Function (method 106 ashelin) has unknown type + +L207: + daddiu sp, sp, -32 sd ra, 0(sp) - sd fp, 8(sp) - or fp, t9, r0 - sq s5, 16(sp) - sq gp, 32(sp) + sq gp, 16(sp) B0: - or gp, a0, r0 ;; [ 0] (set! arg0 arg0) [a0: time-frame ] -> [gp: time-frame ] - lwu v1, 120(s6) ;; [ 1] (set! v1-0 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 2] (set! v1-1 (l.w (+ v1-0 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 3] (b! (<=0.si v1-1) L671 (set! v1-2 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L671 + or gp, a0, r0 ;; [ 0] (set! gp a0) + lw v1, bot(s7) ;; [ 1] (set! v1 bot) + lwu t9, 440(v1) ;; [ 2] (set! t9 (l.wu (+ v1 440))) + or a0, gp, r0 ;; [ 3] (set! a0 gp) + jalr ra, t9 ;; [ 4] (call!) + sll v0, ra, 0 + + addiu v1, r0, 6 ;; [ 5] (set! v1 6) + lbu a0, 416(gp) ;; [ 6] (set! a0 (l.bu (+ gp 416))) + beq a0, v1, L208 ;; [ 7] (b! (= a0 v1) L208 (set! v0 #f)) + or v0, s7, r0 + +B1: + addiu v0, r0, 1 ;; [ 8] (set! v0 1) + sb v0, 416(gp) ;; [ 9] (s.b! (+ gp 416) v0) +B2: +L208: + ld ra, 0(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 32 + + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! v1 bot) + (set! t9 (l.wu (+ v1 440))) + (set! a0 gp) + (call!) + (set! v1 6) + (set! a0 (l.bu (+ gp 416))) + (b! (= a0 v1) L208 (set! v0 #f)) + (set! v0 1) + (s.b! (+ gp 416) v0) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 193 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x20, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp +;; Warnings: +;; WARN: Type Propagation failed: Function (method 193 ashelin) has unknown type + +L209: + daddiu sp, sp, -32 + sd ra, 0(sp) + sq gp, 16(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + lw v1, bot(s7) ;; [ 1] (set! v1 bot) + lwu t9, 788(v1) ;; [ 2] (set! t9 (l.wu (+ v1 788))) + or a0, gp, r0 ;; [ 3] (set! a0 gp) + jalr ra, t9 ;; [ 4] (call!) + sll v0, ra, 0 + + bnel s7, v0, L210 ;; [ 5] (bl! (truthy v0) L210 (no-delay!)) +B1: + or v1, s7, r0 ;; [ 6] (set! v1 #f) + +B2: + daddiu v1, s7, 4 ;; [ 7] (set! v1 #t) + lui a0, 64 ;; [ 8] (set! a0 #x400000) + ld a1, 436(gp) ;; [ 9] (set! a1 (l.d (+ gp 436))) + and a0, a0, a1 ;; [ 10] (set! a0 (logand a0 a1)) + movz v1, s7, a0 ;; [ 11] (cmove-#f-zero v1 a0 v1) +B3: +L210: + beq s7, v1, L212 ;; [ 12] (b! (not v1) L212 (set! v1 #f)) + or v1, s7, r0 + +B4: + lui v1, 64 ;; [ 13] (set! v1 #x400000) + lwu a0, 600(gp) ;; [ 14] (set! a0 (l.wu (+ gp 600))) + and v1, v1, a0 ;; [ 15] (set! v1 (logand v1 a0)) + beq v1, r0, L211 ;; [ 16] (b! (zero? v1) L211 (set! v1 #f)) + or v1, s7, r0 + +B5: + daddiu v0, s7, #t ;; [ 17] (set! v0 #t) + or v1, v0, r0 ;; [ 18] (set! v1 v0) +B6: +L211: + lui v1, 32 ;; [ 19] (set! v1 #x200000) + lwu a0, 600(gp) ;; [ 20] (set! a0 (l.wu (+ gp 600))) + or v1, v1, a0 ;; [ 21] (set! v1 (logior v1 a0)) + sw v1, 600(gp) ;; [ 22] (s.w! (+ gp 600) v1) +B7: +L212: + ld ra, 0(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 32 + + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (set! v1 bot) + (set! t9 (l.wu (+ v1 788))) + (set! a0 gp) + (call!) + (bl! (truthy v0) L210 (no-delay!)) + (set! v1 #f) + (set! v1 #t) + (set! a0 #x400000) + (set! a1 (l.d (+ gp 436))) + (set! a0 (logand a0 a1)) + (cmove-#f-zero v1 a0 v1) +(label L210) + (b! (not v1) L212 (set! v1 #f)) + (set! v1 #x400000) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logand v1 a0)) + (b! (zero? v1) L211 (set! v1 #f)) + (set! v0 #t) + (set! v1 v0) +(label L211) + (set! v1 #x200000) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logior v1 a0)) + (s.w! (+ gp 600) v1) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 250 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x20, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp +;; Warnings: +;; WARN: Type Propagation failed: Function (method 250 ashelin) has unknown type + +L213: + daddiu sp, sp, -32 + sd ra, 0(sp) + sq gp, 16(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + beq s7, a1, L214 ;; [ 1] (b! (not a1) L214 (nop!)) + sll r0, r0, 0 + +B1: + lui v1, 64 ;; [ 2] (set! v1 #x400000) + lwu a0, 600(gp) ;; [ 3] (set! a0 (l.wu (+ gp 600))) + or v1, v1, a0 ;; [ 4] (set! v1 (logior v1 a0)) + sw v1, 600(gp) ;; [ 5] (s.w! (+ gp 600) v1) + beq r0, r0, L215 ;; [ 6] (b! #t L215 (nop!)) + sll r0, r0, 0 + +B2: +L214: + lui v1, -65 ;; [ 7] (set! v1 -4194305) + ori v1, v1, 65535 + lwu a0, 600(gp) ;; [ 8] (set! a0 (l.wu (+ gp 600))) + and v1, v1, a0 ;; [ 9] (set! v1 (logand v1 a0)) + sw v1, 600(gp) ;; [ 10] (s.w! (+ gp 600) v1) +B3: +L215: + or a0, gp, r0 ;; [ 11] (set! a0 gp) + lwu v1, -4(a0) ;; [ 12] (set! v1 (l.wu (+ a0 -4))) + lwu t9, 252(v1) ;; [ 13] (set! t9 (l.wu (+ v1 252))) + jalr ra, t9 ;; [ 14] (call!) + sll v0, ra, 0 + + lwu v1, 124(gp) ;; [ 15] (set! v1 (l.wu (+ gp 124))) + sd v0, 172(v1) ;; [ 16] (s.d! (+ v1 172) v0) + ld ra, 0(sp) + lq gp, 16(sp) + jr ra + daddiu sp, sp, 32 + + sll r0, r0, 0 + sll r0, r0, 0 + sll r0, r0, 0 + + (set! gp a0) + (b! (not a1) L214 (nop!)) + (set! v1 #x400000) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logior v1 a0)) + (s.w! (+ gp 600) v1) + (b! #t L215 (nop!)) +(label L214) + (set! v1 -4194305) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logand v1 a0)) + (s.w! (+ gp 600) v1) +(label L215) + (set! a0 gp) + (set! v1 (l.wu (+ a0 -4))) + (set! t9 (l.wu (+ v1 252))) + (call!) + (set! v1 (l.wu (+ gp 124))) + (s.d! (+ v1 172) v0) + (ret-value v0) +;; .endfunction + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; .function (method 59 ashelin) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;stack: total 0x20, fp? 0 ra? 1 ep? 1 + ;stack_vars: 8 bytes at 8 + ;gprs: gp +;; Warnings: +;; WARN: Type Propagation failed: Function (method 59 ashelin) has unknown type + +L216: + daddiu sp, sp, -32 + sd ra, 0(sp) + sq gp, 16(sp) +B0: + or gp, a0, r0 ;; [ 0] (set! gp a0) + lw v1, bot(s7) ;; [ 1] (set! v1 bot) + lwu t9, 252(v1) ;; [ 2] (set! t9 (l.wu (+ v1 252))) + or a0, gp, r0 ;; [ 3] (set! a0 gp) + jalr ra, t9 ;; [ 4] (call!) + sll v0, ra, 0 + + lui v1, 64 ;; [ 5] (set! v1 #x400000) + lwu a0, 600(gp) ;; [ 6] (set! a0 (l.wu (+ gp 600))) + and v1, v1, a0 ;; [ 7] (set! v1 (logand v1 a0)) + beq v1, r0, L217 ;; [ 8] (b! (zero? v1) L217 (set! v1 #f)) or v1, s7, r0 B1: - lwu v1, 120(s6) ;; [ 4] (set! v1-3 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 5] (set! v1-4 (l.wu (+ v1-3 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 6] (set! v1-2 (l.wu (+ v1-4 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] + lui v1, 64 ;; [ 9] (set! v1 #x400000) + or v0, v1, v0 ;; [ 10] (set! v0 (logior v1 v0)) + or v1, v0, r0 ;; [ 11] (set! v1 v0) B2: -L671: - lwu a0, 116(s6) ;; [ 7] (set! a0-1 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 8] (set! a0-2 (l.wu (+ a0-1 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 180(a0) ;; [ 9] (set! a0-3 (l.wu (+ a0-2 180))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [ 10] (set! a2-0 (= v1-2 a0-3)) [v1: art-joint-anim a0: art-element ] -> [a2: symbol ] - daddiu a2, s7, 8 - movn a2, s7, a0 - bnel s7, a2, L672 ;; [ 11] (bl! (truthy a2-0) L672 (no-delay!)) [a2: symbol ] -> [] -B3: - or a0, a2, r0 ;; [ 12] (set! a0-4 a2-0) [a2: symbol ] -> [a0: symbol ] - -B4: - lwu a0, 116(s6) ;; [ 13] (set! a0-5 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 14] (set! a0-6 (l.wu (+ a0-5 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 276(a0) ;; [ 15] (set! a0-7 (l.wu (+ a0-6 276))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 16] (set! a0-4 (= v1-2 a0-7)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B5: -L672: - beq s7, a0, L673 ;; [ 17] (b! (not a0-4) L673 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B6: - or v1, s7, r0 ;; [ 18] (set! v1-5 #f) [] -> [v1: '#f ] - beq r0, r0, L686 ;; [ 19] (b! #t L686 (nop!)) [] -> [] - sll r0, r0, 0 - -B7: -L673: - lwu v1, 120(s6) ;; [ 20] (set! v1-6 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 21] (set! v1-7 (l.w (+ v1-6 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 22] (b! (<=0.si v1-7) L674 (set! v1-8 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L674 - or v1, s7, r0 - -B8: - lwu v1, 120(s6) ;; [ 23] (set! v1-9 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 24] (set! v1-10 (l.wu (+ v1-9 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 25] (set! v1-8 (l.wu (+ v1-10 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B9: -L674: - lwu a0, 116(s6) ;; [ 26] (set! a0-8 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 27] (set! a0-9 (l.wu (+ a0-8 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 204(a0) ;; [ 28] (set! a0-10 (l.wu (+ a0-9 204))) [a0: art-group ] -> [a0: art-element ] - dsubu a0, v1, a0 ;; [ 29] (set! a2-1 (= v1-8 a0-10)) [v1: art-joint-anim a0: art-element ] -> [a2: symbol ] - daddiu a2, s7, 8 - movn a2, s7, a0 - bnel s7, a2, L675 ;; [ 30] (bl! (truthy a2-1) L675 (no-delay!)) [a2: symbol ] -> [] -B10: - or a0, a2, r0 ;; [ 31] (set! a0-11 a2-1) [a2: symbol ] -> [a0: symbol ] - -B11: - lwu a0, 116(s6) ;; [ 32] (set! a0-12 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [ 33] (set! a0-13 (l.wu (+ a0-12 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 208(a0) ;; [ 34] (set! a0-14 (l.wu (+ a0-13 208))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [ 35] (set! a0-11 (= v1-8 a0-14)) [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 -B12: -L675: - beq s7, a0, L677 ;; [ 36] (b! (not a0-11) L677 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B13: - lw t9, ja-channel-push!(s7);; [ 37] (set! t9-0 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [ 38] (set! a0-15 1) [] -> [a0: ] - addiu a1, r0, 45 ;; [ 39] (set! a1-1 45) [] -> [a1: ] - jalr ra, t9 ;; [ 40] (call! a0-15 a1-1) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [ 41] (set! v1-11 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 42] (set! v1-12 (l.wu (+ v1-11 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 43] (set! a0-16 (+ v1-12 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [ 44] (set! v1-13 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 45] (set! v1-14 (l.wu (+ v1-13 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 228(v1) ;; [ 46] (set! v1-15 (l.wu (+ v1-14 228))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [ 47] (s.w! (+ a0-16 12) v1-15) [v1: art-element a0: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [ 48] (set! v1-16 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 49] (set! v1-17 (l.wu (+ v1-16 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 228(v1) ;; [ 50] (set! v1-18 (l.wu (+ v1-17 228))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 51] (set! (the-as art-joint-anim v1-19) (l.wu (+ v1-18 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 52] (set! v1-20 (l.h (+ v1-19 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 53] (set! v1-21 (+ v1-20 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 54] (set! f0-0 (gpr->fpr v1-21)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 55] (set! f0-1 (i2f f0-0)) [] -> [] - swc1 f0, 24(a0) ;; [ 56] (s.f! (+ a0-16 24) f0-1) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 57] (set! v1-22 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 58] (set! f0-2 (l.f v1-22)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 59] (s.f! (+ a0-16 28) f0-2) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [ 60] (set! f0-3 0) [] -> [] - swc1 f0, 16(a0) ;; [ 61] (s.f! (+ a0-16 16) f0-3) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [ 62] (set! t9-1 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [ 63] (set! v1-23 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [ 64] (set! v1-24 (l.wu (+ v1-23 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 228(v1) ;; [ 65] (set! a1-2 (l.wu (+ v1-24 228))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [ 66] (set! a2-2 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 67] (call! a0-16 a1-2 a2-2) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 68] (set! v1-25 v0-1) [v0: int ] -> [v1: int ] -B14: -L676: - lwu s6, 44(s6) ;; [ 69] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [ 70] (set! v1-26 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 71] (set! v1-27 (l.wu (+ v1-26 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [ 72] (set! a0-17 (+ v1-27 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [ 73] (set! v1-28 (l.wu (+ a0-17 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [ 74] (set! v1-29 (l.wu (+ v1-28 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [ 75] (set! v1-30 (l.h (+ v1-29 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [ 76] (set! v1-31 (+ v1-30 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [ 77] (set! f0-4 (gpr->fpr v1-31)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [ 78] (set! f0-5 (i2f f0-4)) [] -> [] - swc1 f0, 24(a0) ;; [ 79] (s.f! (+ a0-17 24) f0-5) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [ 80] (set! v1-32 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [ 81] (set! f0-6 (l.f v1-32)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [ 82] (s.f! (+ a0-17 28) f0-6) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [ 83] (set! t9-2 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [ 84] (set! a1-3 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [ 85] (set! a2-3 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [ 86] (call! a0-17 a1-3 a2-3) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [ 87] (set! v1-33 v0-2) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [ 88] (set! t9-3 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [ 89] (set! a0-18 0) [] -> [a0: ] - jalr ra, t9 ;; [ 90] (call! a0-18) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L676 ;; [ 91] (b! (not v0-3) L676 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B15: - or v1, s7, r0 ;; [ 92] (set! v1-34 #f) [] -> [v1: '#f ] - beq r0, r0, L686 ;; [ 93] (b! #t L686 (nop!)) [] -> [] - sll r0, r0, 0 - -B16: -L677: - lwu v1, 120(s6) ;; [ 94] (set! v1-35 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [ 95] (set! v1-36 (l.w (+ v1-35 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [ 96] (b! (<=0.si v1-36) L678 (set! v1-37 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L678 - or v1, s7, r0 - -B17: - lwu v1, 120(s6) ;; [ 97] (set! v1-38 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [ 98] (set! v1-39 (l.wu (+ v1-38 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [ 99] (set! v1-37 (l.wu (+ v1-39 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B18: -L678: - lwu a0, 116(s6) ;; [100] (set! a0-19 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [101] (set! a0-20 (l.wu (+ a0-19 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 228(a0) ;; [102] (set! a0-21 (l.wu (+ a0-20 228))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [103] (set! a0-22 (= v1-37 a0-21)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L680 ;; [104] (b! (not a0-22) L680 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B19: -L679: - lwu s6, 44(s6) ;; [105] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [106] (set! v1-40 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [107] (set! v1-41 (l.wu (+ v1-40 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [108] (set! a0-23 (+ v1-41 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [109] (set! v1-42 (l.wu (+ a0-23 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [110] (set! v1-43 (l.wu (+ v1-42 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [111] (set! v1-44 (l.h (+ v1-43 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [112] (set! v1-45 (+ v1-44 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [113] (set! f0-7 (gpr->fpr v1-45)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [114] (set! f0-8 (i2f f0-7)) [] -> [] - swc1 f0, 24(a0) ;; [115] (s.f! (+ a0-23 24) f0-8) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [116] (set! v1-46 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [117] (set! f0-9 (l.f v1-46)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [118] (s.f! (+ a0-23 28) f0-9) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [119] (set! t9-4 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [120] (set! a1-4 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [121] (set! a2-4 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [122] (call! a0-23 a1-4 a2-4) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [123] (set! v1-47 v0-4) [v0: int ] -> [v1: int ] - lw t9, ja-done?(s7) ;; [124] (set! t9-5 ja-done?) [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [125] (set! a0-24 0) [] -> [a0: ] - jalr ra, t9 ;; [126] (call! a0-24) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L679 ;; [127] (b! (not v0-5) L679 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B20: - or v1, s7, r0 ;; [128] (set! v1-48 #f) [] -> [v1: '#f ] - lw t9, ja-channel-push!(s7);; [129] (set! t9-6 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [130] (set! a0-25 1) [] -> [a0: ] - addiu a1, r0, 45 ;; [131] (set! a1-5 45) [] -> [a1: ] - jalr ra, t9 ;; [132] (call! a0-25 a1-5) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [133] (set! v1-49 v0-6) [v0: int ] -> [v1: int ] - beq r0, r0, L686 ;; [134] (b! #t L686 (nop!)) [] -> [] - sll r0, r0, 0 - -B21: -L680: - lwu v1, 120(s6) ;; [135] (set! v1-50 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lw v1, 20(v1) ;; [136] (set! v1-51 (l.w (+ v1-50 20))) [v1: joint-control ] -> [v1: int ] - slt v1, r0, v1 ;; [137] (b! (<=0.si v1-51) L681 (set! v1-52 #f)) [v1: int ] -> [v1: '#f ] - beq v1, r0, L681 - or v1, s7, r0 - -B22: - lwu v1, 120(s6) ;; [138] (set! v1-53 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [139] (set! v1-54 (l.wu (+ v1-53 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu v1, 12(v1) ;; [140] (set! v1-52 (l.wu (+ v1-54 12))) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: art-joint-anim ] -B23: -L681: - lwu a0, 116(s6) ;; [141] (set! a0-26 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [142] (set! a0-27 (l.wu (+ a0-26 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 372(a0) ;; [143] (set! a0-28 (l.wu (+ a0-27 372))) [a0: art-group ] -> [a0: art-element ] - dsubu v1, v1, a0 ;; [144] (set! a0-29 (= v1-52 a0-28)) - ;; [v1: art-joint-anim a0: art-element ] -> [a0: symbol ] - daddiu a0, s7, 8 - movn a0, s7, v1 - beq s7, a0, L683 ;; [145] (b! (not a0-29) L683 (nop!)) [a0: symbol ] -> [] - sll r0, r0, 0 - -B24: - lw t9, ja-channel-push!(s7);; [146] (set! t9-7 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [147] (set! a0-30 1) [] -> [a0: ] - addiu a1, r0, 45 ;; [148] (set! a1-6 45) [] -> [a1: ] - jalr ra, t9 ;; [149] (call! a0-30 a1-6) - ;; [a0: a1: t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [150] (set! v1-55 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [151] (set! v1-56 (l.wu (+ v1-55 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu s5, r0, v1 ;; [152] (set! s5-0 (+ v1-56 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [s5: joint-control-channel ] - lwu v1, 116(s6) ;; [153] (set! v1-57 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [154] (set! v1-58 (l.wu (+ v1-57 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 164(v1) ;; [155] (set! v1-59 (l.wu (+ v1-58 164))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(s5) ;; [156] (s.w! (+ s5-0 12) v1-59) [v1: art-element s5: joint-control-channel ] -> [] - lwu v1, 116(s6) ;; [157] (set! v1-60 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [158] (set! v1-61 (l.wu (+ v1-60 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 164(v1) ;; [159] (set! v1-62 (l.wu (+ v1-61 164))) [v1: art-group ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [160] (set! (the-as art-joint-anim v1-63) (l.wu (+ v1-62 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [161] (set! v1-64 (l.h (+ v1-63 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [162] (set! v1-65 (+ v1-64 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [163] (set! f0-10 (gpr->fpr v1-65)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [164] (set! f0-11 (i2f f0-10)) [] -> [] - swc1 f0, 24(s5) ;; [165] (s.f! (+ s5-0 24) f0-11) [s5: joint-control-channel ] -> [] - lui v1, L786 ;; [166] (set! v1-66 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [167] (set! f0-12 (l.f v1-66)) [v1: ] -> [] - swc1 f0, 28(s5) ;; [168] (s.f! (+ s5-0 28) f0-12) [s5: joint-control-channel ] -> [] - lw t9, ja-aframe(s7) ;; [169] (set! t9-8 ja-aframe) - ;; [] -> [t9: (function float int float :behavior process-drawable) ] - lui v1, L747 ;; [170] (set! v1-67 L747) [] -> [v1: ] - ori v1, v1, L747 - addu v1, fp, v1 - lw a0, 0(v1) ;; [171] (set! a0-31 (l.w v1-67)) [v1: ] -> [a0: int ] - addiu a1, r0, 0 ;; [172] (set! a1-7 0) [] -> [a1: ] - jalr ra, t9 ;; [173] (call! a0-31 a1-7) - ;; [a0: int a1: t9: (function float int float :behavior process-drawable) ] -> [v0: float ] - sll v0, ra, 0 - - mtc1 f0, v0 ;; [174] (set! f0-13 (gpr->fpr v0-8)) [v0: float ] -> [] - swc1 f0, 16(s5) ;; [175] (s.f! (+ s5-0 16) f0-13) [s5: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [176] (set! t9-9 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [177] (set! v1-68 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [178] (set! v1-69 (l.wu (+ v1-68 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 164(v1) ;; [179] (set! a1-8 (l.wu (+ v1-69 164))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-seek!(s7) ;; [180] (set! a2-5 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - or a0, s5, r0 ;; [181] (set! a0-32 s5-0) [s5: joint-control-channel ] -> [a0: joint-control-channel ] - jalr ra, t9 ;; [182] (call! a0-32 a1-8 a2-5) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [183] (set! v1-70 v0-9) [v0: int ] -> [v1: int ] -B25: -L682: - lwu v1, 120(s6) ;; [184] (set! v1-71 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [185] (set! v1-72 (l.wu (+ v1-71 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [186] (set! a0-33 (+ v1-72 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 12(a0) ;; [187] (set! v1-73 (l.wu (+ a0-33 12))) - ;; [a0: joint-control-channel ] -> [v1: art-joint-anim ] - lwu v1, 44(v1) ;; [188] (set! v1-74 (l.wu (+ v1-73 44))) - ;; [v1: art-joint-anim ] -> [v1: joint-anim-compressed ] - lh v1, 6(v1) ;; [189] (set! v1-75 (l.h (+ v1-74 6))) [v1: joint-anim-compressed ] -> [v1: int ] - daddiu v1, v1, -1 ;; [190] (set! v1-76 (+ v1-75 -1)) [v1: int ] -> [v1: ] - mtc1 f0, v1 ;; [191] (set! f0-14 (gpr->fpr v1-76)) [v1: ] -> [] - cvt.s.w f0, f0 ;; [192] (set! f0-15 (i2f f0-14)) [] -> [] - swc1 f0, 24(a0) ;; [193] (s.f! (+ a0-33 24) f0-15) [a0: joint-control-channel ] -> [] - lui v1, L786 ;; [194] (set! v1-77 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [195] (set! f0-16 (l.f v1-77)) [v1: ] -> [] - swc1 f0, 28(a0) ;; [196] (s.f! (+ a0-33 28) f0-16) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [197] (set! t9-10 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - or a1, s7, r0 ;; [198] (set! a1-9 #f) [] -> [a1: '#f ] - lw a2, num-func-seek!(s7) ;; [199] (set! a2-6 num-func-seek!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [200] (call! a0-33 a1-9 a2-6) - ;; [a0: joint-control-channel a1: '#f a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [201] (set! v1-78 v0-10) [v0: int ] -> [v1: int ] - lwu s6, 44(s6) ;; [202] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lw t9, ja-done?(s7) ;; [203] (set! t9-11 ja-done?) - ;; [] -> [t9: (function int symbol :behavior process-drawable) ] - addiu a0, r0, 0 ;; [204] (set! a0-34 0) [] -> [a0: ] - jalr ra, t9 ;; [205] (call! a0-34) - ;; [a0: t9: (function int symbol :behavior process-drawable) ] -> [v0: symbol ] - sll v0, ra, 0 - - beq s7, v0, L682 ;; [206] (b! (not v0-11) L682 (nop!)) [v0: symbol ] -> [] - sll r0, r0, 0 - -B26: - or v1, s7, r0 ;; [207] (set! v1-79 #f) [] -> [v1: '#f ] - beq r0, r0, L686 ;; [208] (b! #t L686 (nop!)) [] -> [] - sll r0, r0, 0 - -B27: -L683: - lw t9, ja-channel-push!(s7);; [209] (set! t9-12 ja-channel-push!) - ;; [] -> [t9: (function int time-frame int :behavior process-drawable) ] - addiu a0, r0, 1 ;; [210] (set! a0-35 1) [] -> [a0: ] - jalr ra, t9 ;; [211] (call! a0-35 arg1) - ;; [a0: a1: time-frame t9: (function int time-frame int :behavior process-drawable) ] -> [v0: int ] - sll v0, ra, 0 - - lwu v1, 120(s6) ;; [212] (set! v1-80 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [213] (set! v1-81 (l.wu (+ v1-80 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu v1, r0, v1 ;; [214] (set! v1-82 (+ v1-81 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [v1: joint-control-channel ] - lwu a0, 116(s6) ;; [215] (set! a0-36 (l.wu (+ self 116))) [s6: target ] -> [a0: draw-control ] - lwu a0, 4(a0) ;; [216] (set! a0-37 (l.wu (+ a0-36 4))) [a0: draw-control ] -> [a0: art-group ] - lwu a0, 180(a0) ;; [217] (set! a0-38 (l.wu (+ a0-37 180))) [a0: art-group ] -> [a0: art-element ] - sw a0, 12(v1) ;; [218] (s.w! (+ v1-82 12) a0-38) [v1: joint-control-channel a0: art-element ] -> [] - beq r0, r0, L685 ;; [219] (b! #t L685 (nop!)) [] -> [] - sll r0, r0, 0 - -B28: -L684: - lwu s6, 44(s6) ;; [220] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - -B29: -L685: - lwu v1, 120(s6) ;; [221] (set! v1-83 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - daddiu v1, v1, 44 ;; [222] (set! v1-84 (+ v1-83 44)) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - lwu a0, 120(s6) ;; [223] (set! a0-39 (l.wu (+ self 120))) [s6: target ] -> [a0: joint-control ] - lwu a0, 12(a0) ;; [224] (set! a0-40 (l.wu (+ a0-39 12))) - ;; [a0: joint-control ] -> [a0: (inline-array joint-control-channel) ] - daddu a0, r0, a0 ;; [225] (set! a0-41 (+ a0-40 0)) - ;; [a0: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - bne a0, v1, L684 ;; [226] (b! (!= a0-41 v1-84) L684 (nop!)) - ;; [v1: (inline-array joint-control-channel) a0: joint-control-channel ] -> [] - sll r0, r0, 0 - -B30: - or v1, s7, r0 ;; [227] (set! v1-85 #f) [] -> [v1: '#f ] -B31: -L686: - lwu v1, 120(s6) ;; [228] (set! v1-86 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [229] (set! v1-87 (l.wu (+ v1-86 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [230] (set! a0-42 (+ v1-87 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [231] (set! v1-88 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [232] (set! v1-89 (l.wu (+ v1-88 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 180(v1) ;; [233] (set! v1-90 (l.wu (+ v1-89 180))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [234] (s.w! (+ a0-42 12) v1-90) [v1: art-element a0: joint-control-channel ] -> [] - lui v1, L786 ;; [235] (set! v1-91 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [236] (set! f0-17 (l.f v1-91)) [v1: ] -> [] - swc1 f0, 24(a0) ;; [237] (s.f! (+ a0-42 24) f0-17) [a0: joint-control-channel ] -> [] - mtc1 f0, r0 ;; [238] (set! f0-18 0) [] -> [] - swc1 f0, 16(a0) ;; [239] (s.f! (+ a0-42 16) f0-18) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group!(s7);; [240] (set! t9-13 joint-control-channel-group!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [241] (set! v1-92 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [242] (set! v1-93 (l.wu (+ v1-92 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 180(v1) ;; [243] (set! a1-10 (l.wu (+ v1-93 180))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-loop!(s7) ;; [244] (set! a2-7 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [245] (call! a0-42 a1-10 a2-7) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [246] (set! v1-94 v0-13) [v0: int ] -> [v1: int ] - lw v1, *display*(s7) ;; [247] (set! v1-95 *display*) [] -> [v1: display ] - ld s5, 780(v1) ;; [248] (set! s5-1 (l.d (+ v1-95 780))) [v1: display ] -> [s5: time-frame ] - beq r0, r0, L688 ;; [249] (b! #t L688 (nop!)) [] -> [] - sll r0, r0, 0 - -B32: -L687: - lwu s6, 44(s6) ;; [250] (suspend) [] -> [] - mtlo1 s6 - lwu s6, 12(s6) - jalr ra, s6 - mflo1 s6 - - lwu v1, 120(s6) ;; [251] (set! v1-96 (l.wu (+ self 120))) [s6: target ] -> [v1: joint-control ] - lwu v1, 12(v1) ;; [252] (set! v1-97 (l.wu (+ v1-96 12))) - ;; [v1: joint-control ] -> [v1: (inline-array joint-control-channel) ] - daddu a0, r0, v1 ;; [253] (set! a0-43 (+ v1-97 0)) - ;; [v1: (inline-array joint-control-channel) ] -> [a0: joint-control-channel ] - lwu v1, 116(s6) ;; [254] (set! v1-98 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [255] (set! v1-99 (l.wu (+ v1-98 4))) [v1: draw-control ] -> [v1: art-group ] - lwu v1, 180(v1) ;; [256] (set! v1-100 (l.wu (+ v1-99 180))) [v1: art-group ] -> [v1: art-element ] - sw v1, 12(a0) ;; [257] (s.w! (+ a0-43 12) v1-100) [v1: art-element a0: joint-control-channel ] -> [] - lui v1, L786 ;; [258] (set! v1-101 L786) [] -> [v1: ] - ori v1, v1, L786 - addu v1, fp, v1 - lwc1 f0, 0(v1) ;; [259] (set! f0-19 (l.f v1-101)) [v1: ] -> [] - swc1 f0, 24(a0) ;; [260] (s.f! (+ a0-43 24) f0-19) [a0: joint-control-channel ] -> [] - lw t9, joint-control-channel-group-eval!(s7);; [261] (set! t9-14 joint-control-channel-group-eval!) - ;; [] -> [t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] - lwu v1, 116(s6) ;; [262] (set! v1-102 (l.wu (+ self 116))) [s6: target ] -> [v1: draw-control ] - lwu v1, 4(v1) ;; [263] (set! v1-103 (l.wu (+ v1-102 4))) [v1: draw-control ] -> [v1: art-group ] - lwu a1, 180(v1) ;; [264] (set! a1-11 (l.wu (+ v1-103 180))) [v1: art-group ] -> [a1: art-element ] - lw a2, num-func-loop!(s7) ;; [265] (set! a2-8 num-func-loop!) - ;; [] -> [a2: (function joint-control-channel float float float) ] - jalr ra, t9 ;; [266] (call! a0-43 a1-11 a2-8) - ;; [a0: joint-control-channel a1: art-element a2: (function joint-control-channel float float float) t9: (function joint-control-channel art-joint-anim (function joint-control-channel float float float) int) ] -> [v0: int ] - sll v0, ra, 0 - - or v1, v0, r0 ;; [267] (set! v1-104 v0-14) [v0: int ] -> [v1: int ] -B33: -L688: - daddiu v1, gp, 1 ;; [268] (set! v1-105 (+ arg0 1)) [gp: time-frame ] -> [v1: ] - daddiu a0, s7, 8 ;; [269] (set! a0-44 (zero? v1-105)) [v1: ] -> [a0: symbol ] - movn a0, s7, v1 - bnel s7, a0, L689 ;; [270] (bl! (truthy a0-44) L689 (no-delay!)) [a0: symbol ] -> [] -B34: - or v1, a0, r0 ;; [271] (set! v1-106 a0-44) [a0: symbol ] -> [v1: symbol ] - -B35: - lw v1, *display*(s7) ;; [272] (set! v1-107 *display*) [] -> [v1: display ] - ld v1, 780(v1) ;; [273] (set! v1-108 (l.d (+ v1-107 780))) [v1: display ] -> [v1: time-frame ] - dsubu v1, v1, s5 ;; [274] (set! v1-109 (- v1-108 s5-1)) - ;; [v1: time-frame s5: time-frame ] -> [v1: time-frame ] - slt a0, v1, gp ;; [275] (set! v1-106 (<.si v1-109 arg0)) [v1: time-frame gp: time-frame ] -> [v1: symbol ] - daddiu v1, s7, 8 - movz v1, s7, a0 -B36: -L689: - bne s7, v1, L687 ;; [276] (b! (truthy v1-106) L687 (nop!)) [v1: symbol ] -> [] - sll r0, r0, 0 - -B37: - or v0, s7, r0 ;; [277] (set! v0-15 #f) [] -> [v0: '#f ] +L217: ld ra, 0(sp) - ld fp, 8(sp) - lq gp, 32(sp) - lq s5, 16(sp) + lq gp, 16(sp) jr ra - daddiu sp, sp, 48 + daddiu sp, sp, 32 - -;;-*-OpenGOAL-Start-*- - -(defbehavior target-falling-anim target ((arg0 time-frame) (arg1 time-frame)) - (let ((v1-2 (ja-group))) - (cond - ((or (= v1-2 (-> self draw art-group data 38)) (= v1-2 (-> self draw art-group data 62))) - ) - ((let ((v1-8 (ja-group))) - (or (= v1-8 (-> self draw art-group data 44)) (= v1-8 (-> self draw art-group data 45))) - ) - (ja-channel-push! 1 (seconds 0.15)) - (ja-no-eval :group! (-> self draw art-group data 50) :num! (seek!) :frame-num 0.0) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - ) - ((ja-group? (-> self draw art-group data 50)) - (until (ja-done? 0) - (suspend) - (ja :num! (seek!)) - ) - (ja-channel-push! 1 (seconds 0.15)) - ) - ((ja-group? (-> self draw art-group data 86)) - (ja-channel-push! 1 (seconds 0.15)) - (ja-no-eval :group! (-> self draw art-group data 34) - :num! (seek!) - :frame-num (ja-aframe (the-as float 20.0) 0) - ) - (until (ja-done? 0) - (ja :num! (seek!)) - (suspend) - ) - ) - (else - (ja-channel-push! 1 arg1) - (ja :group! (-> self draw art-group data 38)) - (while (!= (-> self skel root-channel 0) (-> self skel channel)) - (suspend) - ) - ) - ) - ) - (ja-no-eval :group! (-> self draw art-group data 38) :num! (loop!) :frame-num 0.0) - (let ((s5-1 (-> *display* base-frame-counter))) - (while (or (= arg0 -1) (< (- (-> *display* base-frame-counter) s5-1) arg0)) - (suspend) - (ja :group! (-> self draw art-group data 38) :num! (loop!)) - ) - ) - #f - ) - -;;-*-OpenGOAL-End-*- - + (set! gp a0) + (set! v1 bot) + (set! t9 (l.wu (+ v1 252))) + (set! a0 gp) + (call!) + (set! v1 #x400000) + (set! a0 (l.wu (+ gp 600))) + (set! v1 (logand v1 a0)) + (b! (zero? v1) L217 (set! v1 #f)) + (set! v1 #x400000) + (set! v0 (logior v1 v0)) + (set! v1 v0) + (ret-value v0) ;; .endfunction -L690: - .word 0x0 - .word 0x0 - .type state -L691: - .symbol target-wheel-flip - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L692: - .symbol target-wheel - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L693: - .symbol target-flop-hit-ground - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L694: - .symbol target-flop - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L695: - .symbol target-attack-uppercut-jump - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L696: - .symbol target-attack-uppercut - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L697: - .symbol target-attack-air - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L698: - .symbol target-running-attack - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L699: - .symbol target-attack - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type string -; "sksp0072" -L700: - .word 0x8 - .word 0x70736b73 - .word 0x32373030 - .word 0x0 - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L701: - .symbol target-hit-ground - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L702: - .symbol target-falling - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L703: - .symbol target-duck-high-jump-jump - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L704: - .symbol target-duck-high-jump - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L705: - .symbol target-high-jump - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L706: - .symbol target-double-jump - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L707: - .symbol target-jump-forward - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L708: - .symbol target-jump - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type string -; "sksp0388" -L709: - .word 0x8 - .word 0x70736b73 - .word 0x38383330 +L218: .word 0x0 .word 0x0 .word 0x0 .word 0x0 .type string -; "sksp0393" -L710: - .word 0x8 - .word 0x70736b73 - .word 0x33393330 - .word 0x0 - .word 0x0 +; "hud-ashlyn-head" +L219: + .word 0xf + .word 0x2d647568 + .word 0x6c687361 + .word 0x682d6e79 + .word 0x646165 .word 0x0 .word 0x0 .type string -; "sksp009e" -L711: - .word 0x8 - .word 0x70736b73 - .word 0x65393030 +; "skel-ashelin" +L220: + .word 0xc + .word 0x6c656b73 + .word 0x6873612d + .word 0x6e696c65 + .word 0x0 + .word 0x0 + .word 0x0 + .type nav-enemy-info +L221: + .word 0x0 + .symbol #t + .symbol #f + .symbol #t + .symbol #f + .symbol #f + .symbol #t + .symbol #f + .word L222 + .word 0x3 + .word 0x3 + .word 0xffffffff + .word 0x3 + .word 0xa + .word 0xb + .word 0x1a + .word 0x1a + .word 0xffffffff + .word 0x3 + .word 0x3 + .word 0x3 + .word 0x5 + .word 0x6 + .word 0x4 .word 0x0 .word 0x0 .word 0x0 .word 0x0 - .type string -; "sksp009d" -L712: - .word 0x8 - .word 0x70736b73 - .word 0x64393030 .word 0x0 .word 0x0 .word 0x0 .word 0x0 - .type state -L713: - .symbol target-duck-walk - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f .word 0x0 .word 0x0 .word 0x0 - .type state -L714: - .symbol target-duck-stance - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L715: - .symbol target-slide-down - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L716: - .symbol target-turn-around - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L717: - .symbol target-walk - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L718: - .symbol target-stance - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .word 0x0 - .word 0x0 - .word 0x0 - .type state -L719: - .symbol target-startup - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f - .symbol #f -L720: - .word 0x48700000 -L721: - .word 0x40e00000 -L722: - .word 0x48c00000 -L723: - .word 0x47f00000 -L724: - .word 0x48b40000 -L725: - .word 0x49200000 -L726: - .word 0x45800000 -L727: - .word 0x420c0000 -L728: - .word 0x42dc0000 -L729: - .word 0xc7f00000 -L730: - .word 0xc8700000 -L731: - .word 0xc8200000 -L732: + .word 0x48200000 .word 0x47200000 -L733: - .word 0x47000000 -L734: - .word 0x47c80000 -L735: - .word 0x47980000 -L736: - .word 0x47700000 -L737: - .word 0x46c00000 -L738: - .word 0xc6c00000 -L739: - .word 0x41800000 -L740: - .word 0x40a00000 -L741: - .word 0x41d00000 -L742: - .word 0x41f00000 -L743: - .word 0x41e80000 -L744: - .word 0x42280000 -L745: - .word 0x42180000 -L746: - .word 0x42480000 -L747: - .word 0x41a00000 -L748: - .word 0x40000000 -L749: - .word 0x40800000 -L750: - .word 0x40400000 -L751: - .word 0x3e99999a -L752: - .word 0x3f000000 -L753: - .word 0x3e800000 -L754: - .word 0x3f99999a -L755: - .word 0x3f19999a -L756: - .word 0x39000000 -L757: - .word 0x46e66666 -L758: - .word 0x47866666 -L759: - .word 0x384ccccd -L760: - .word 0x3b808081 -L761: - .word 0x3d4ccccd -L762: - .word 0x3f333333 -L763: - .word 0x3f733333 -L764: - .word 0x3f4ccccd -L765: - .word 0x3fcccccd -L766: - .word 0x3e4ccccd -L767: - .word 0x3ecccccd -L768: - .word 0x3b5a740e -L769: - .word 0x3d088889 -L770: - .word 0x3c088889 -L771: - .word 0x4519999a -L772: - .word 0x3f666666 -L773: - .word 0x4703ef7b -L774: - .word 0xc6333333 -L775: - .word 0x45b33333 -L776: - .word 0x3f800054 -L777: - .word 0x46800000 -L778: - .word 0x41a80000 -L779: - .word 0x41c80000 -L780: - .word 0x3f555555 -L781: - .word 0xc1c80000 -L782: - .word 0x46a00000 -L783: - .word 0xc6800000 -L784: - .word 0x477fdef6 -L785: - .word 0x3fc00000 -L786: - .word 0x3f800000 -L787: - .word 0xbf800000 -L788: - .word 0x3836db6e -L789: - .word 0x42700000 -L790: - .word 0x46d00000 -L791: - .word 0x46400000 -L792: - .word 0xc6200000 -L793: - .word 0x38aaaaab -L794: - .word 0xc3cccccd -L795: - .word 0xc5000000 -L796: - .word 0x47900000 -L797: - .word 0x44800000 -L798: - .word 0x45000000 -L799: - .word 0x42000000 -L800: - .word 0x43160000 -L801: - .word 0xc6000000 -L802: - .word 0x44cccccd -L803: - .word 0x41400000 -L804: - .word 0x46accccd -L805: - .word 0xc7700000 -L806: - .word 0x422c0000 -L807: - .word 0x45c00000 -L808: - .word 0x488c0000 -L809: - .word 0x41000000 -L810: - .word 0x41e00000 -L811: - .word 0x40c00000 -L812: - .word 0xc8b40000 -L813: - .word 0x46e00000 -L814: + .word 0x47a00000 + .word 0xa + .word 0x1 + .word 0x6b2 .word 0x0 -L815: - .word 0x6d697773 - .word 0x7274732d + .word 0x0 + .word 0xffffffff + .word 0xffffffff + .word 0xc8c80000 + .word 0x3f333333 + .word 0x0 + .word 0x46400000 + .word 0x46000000 + .symbol generic + .word 0x2 + .word 0x80249 + .word 0x46400000 + .word 0x3f000000 + .word 0x452aaaab + .word 0x47600000 + .word 0x47600000 + .word 0x47a00000 + .word 0x47a00000 + .word 0x47600000 + .word 0x47600000 + .word 0x47a00000 + .word 0x47a00000 + .word 0x47600000 + .word 0x47600000 + .word 0x47a00000 + .word 0x47a00000 + .word 0x4820cccd + .word 0x48733333 + .word 0x48333333 + .word 0x4854cccd + .word 0x47600000 + .word 0x47600000 + .word 0x47a00000 + .word 0x47a00000 + .word 0x47600000 + .word 0x47600000 + .word 0x47a00000 + .word 0x47a00000 + .word 0x47200000 + .word 0x47400000 + .word 0x46c00000 + .word 0x47200000 + .word 0x46000000 + .word 0x45800000 + .word 0xc5800000 + .word 0x49160000 + .word 0xffffffff + .word 0x0 + .word 0x0 + .word 0x0 + .word 0x0 + .word 0x0 + .word 0x48200000 + .symbol #f + .symbol #t + .symbol #t + .symbol #f + .symbol #f + .symbol #f + .word 0x4 + .word 0xffffffff + .word 0x6 + .word 0xffffffff + .word 0x47200000 + .word 0x47c80000 + .word 0x47400000 + .word 0x46400000 + .word 0x46a00000 + .word 0x46c00000 + .word 0x47800000 + .word 0x47a00000 + .word 0x47000000 + .word 0x0 + .word 0x4b0 + .word 0x0 + .word 0x5a + .word 0x0 + .word 0x46a00000 + .word 0x47700000 + .symbol #f + .word 0x0 +L222: + .word 0x1010301 + .word 0x0 + .word 0x0 + .word 0x0 + .type ashelin-global-info +L223: + .word 0x0 + .word 0xd + .word 0xe + .word 0xf + .word 0x13 + .word 0x14 + .word 0x15 + .word 0x10 + .word 0x11 + .word 0x12 + .word 0x16 + .word 0x17 + .word 0x18 diff --git a/src/extension.ts b/src/extension.ts index ca45165..62582e0 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -8,6 +8,7 @@ import { PdfCustomProvider } from "./vendor/vscode-pdfviewer/pdfProvider"; import { switchFile } from "./utils/FileUtils"; import { activateDecompTools } from "./decomp/decomp-tools"; import { initContext } from "./context"; +import { IRFoldingRangeProvider } from "./languages/ir2-folder"; export async function activate(context: vscode.ExtensionContext) { // Init Context @@ -40,6 +41,12 @@ export async function activate(context: vscode.ExtensionContext) { ) ); + // Language Customizations + vscode.languages.registerFoldingRangeProvider( + { scheme: "file", language: "opengoal-ir" }, + new IRFoldingRangeProvider() + ); + // Start the LSP lsp.activate(context); } diff --git a/src/languages/ir2-folder.ts b/src/languages/ir2-folder.ts new file mode 100644 index 0000000..ed535b8 --- /dev/null +++ b/src/languages/ir2-folder.ts @@ -0,0 +1,91 @@ +import * as vscode from "vscode"; + +export class IRFoldingRangeProvider implements vscode.FoldingRangeProvider { + provideFoldingRanges(document: vscode.TextDocument): vscode.FoldingRange[] { + const ranges: vscode.FoldingRange[] = []; + const functionStart = /^; \.function/; + const functionEnd = /^;; \.endfunction/; + const label = /L\d+:/; + const branch = /B\d+:/; + + let currFunctionStart = -1; + let currLabelStart = -1; + let currBranchStart = -1; + + for (let i = 0; i < document.lineCount; i++) { + const line = document.lineAt(i).text; + // The start of a new function + if (functionStart.test(line)) { + currFunctionStart = i; + } + // The end of the current function + if (functionEnd.test(line)) { + if (currFunctionStart != -1) { + // End existing function + ranges.push( + new vscode.FoldingRange( + currFunctionStart, + i - 1, + vscode.FoldingRangeKind.Region + ) + ); + } + } + // The start of a label or new section of data + if (label.test(line)) { + if (currLabelStart != -1) { + // End existing label + ranges.push( + new vscode.FoldingRange( + currLabelStart, + i - 1, + vscode.FoldingRangeKind.Region + ) + ); + } + currLabelStart = i; + } else if ( + currLabelStart != -1 && + (line.trim().startsWith("(") || line.trim().startsWith(";")) + ) { + // End existing label + ranges.push( + new vscode.FoldingRange( + currLabelStart, + i - 1, + vscode.FoldingRangeKind.Region + ) + ); + currLabelStart = -1; + } + if (branch.test(line)) { + if (currBranchStart != -1) { + // End existing function + ranges.push( + new vscode.FoldingRange( + currBranchStart, + i - 1, + vscode.FoldingRangeKind.Region + ) + ); + } + currBranchStart = i; + } else if ( + currBranchStart != -1 && + (line.trim().startsWith("(") || line.trim().startsWith(";")) + ) { + // End existing branch + ranges.push( + new vscode.FoldingRange( + currBranchStart, + i - 1, + vscode.FoldingRangeKind.Region + ) + ); + currBranchStart = -1; + } + } + + return ranges; + } +} diff --git a/syntaxes/configs/opengoal-ir.jsonc b/syntaxes/configs/opengoal-ir.jsonc index f11858e..c3cc77e 100644 --- a/syntaxes/configs/opengoal-ir.jsonc +++ b/syntaxes/configs/opengoal-ir.jsonc @@ -9,11 +9,5 @@ ["(", ")"], ["\"", "\""] ], - "folding": { - "markers": { - "start": "^; \\.function.*", - "end": "^;; \\.endfunction\\b" - } - }, "wordPattern": "[^\\s,\\(\\)]+" }