mirror of
https://github.com/open-goal/jak-project
synced 2026-08-21 14:54:53 -04:00
[decomp] target-handler (#2027)
This commit is contained in:
@@ -730,8 +730,14 @@ void merge_infos(
|
||||
* the none variables
|
||||
*/
|
||||
void SSA::make_vars(const Function& function, const DecompilerTypeSystem& dts) {
|
||||
bool event_handler_hack =
|
||||
function.ir2.env.version > GameVersion::Jak1 && function.guessed_name.is_event_handler();
|
||||
bool event_handler_hack = false;
|
||||
|
||||
if (function.ir2.env.version == GameVersion::Jak2) {
|
||||
event_handler_hack = function.guessed_name.is_event_handler() ||
|
||||
function.guessed_name.to_string() == "target-generic-event-handler" ||
|
||||
function.guessed_name.to_string() == "target-standard-event-handler";
|
||||
}
|
||||
|
||||
for (int block_id = 0; block_id < int(blocks.size()); block_id++) {
|
||||
const auto& block = blocks.at(block_id);
|
||||
const TypeState* init_types = &function.ir2.env.get_types_at_block_entry(block_id);
|
||||
|
||||
+865
-883
File diff suppressed because it is too large
Load Diff
@@ -110,7 +110,6 @@
|
||||
"draw-inline-array-instance-shrub",
|
||||
|
||||
"target-land-effect",
|
||||
"target-standard-event-handler",
|
||||
"(method 12 effect-control)",
|
||||
"(method 11 effect-control)",
|
||||
"(method 10 effect-control)",
|
||||
@@ -393,7 +392,60 @@
|
||||
"(method 24 grid-hash)": [39, 35, 22, 15],
|
||||
"(method 12 flow-control)": [11, 12, 13, 14, 15, 18, 20, 22, 29],
|
||||
"(method 19 process-drawable)": [0, 2, 3, 7, 10, 11, 30],
|
||||
"find-offending-process-focusable": [16, 19]
|
||||
"find-offending-process-focusable": [16, 19],
|
||||
|
||||
"target-standard-event-handler": [
|
||||
5, // fwd L31/7
|
||||
6, // to 152
|
||||
7, // fwd L38
|
||||
20, // to 152
|
||||
21, // fwd L39
|
||||
22, // to 152
|
||||
23, // to L40
|
||||
24, // to 152
|
||||
25, // to L45
|
||||
43, // to l152
|
||||
44, // to 46
|
||||
45, // to l152
|
||||
|
||||
46, // to l114
|
||||
|
||||
190, // to l152
|
||||
191, // to 121
|
||||
210,
|
||||
211,
|
||||
212,
|
||||
213,
|
||||
214,
|
||||
|
||||
224,
|
||||
225,
|
||||
226,
|
||||
227,
|
||||
232,
|
||||
233,
|
||||
234,
|
||||
235,
|
||||
236,
|
||||
237,
|
||||
238,
|
||||
239,
|
||||
240,
|
||||
241,
|
||||
242,
|
||||
|
||||
255,
|
||||
256,
|
||||
|
||||
269,
|
||||
270,
|
||||
285,
|
||||
286,
|
||||
287,
|
||||
288,
|
||||
289,
|
||||
290
|
||||
]
|
||||
},
|
||||
|
||||
// Sometimes the game might use format strings that are fetched dynamically,
|
||||
|
||||
@@ -3390,7 +3390,8 @@
|
||||
[681, "v1", "fact-info-target"],
|
||||
[699, "v1", "fact-info-target"],
|
||||
[866, "v1", "(state target)"],
|
||||
[894, "a0", "process"]
|
||||
[894, "a0", "process"],
|
||||
[517, "v1", "float"]
|
||||
],
|
||||
"target-dangerous-event-handler": [
|
||||
[9, "v1", "fact-info-target"],
|
||||
@@ -3515,7 +3516,8 @@
|
||||
"(code special-contents-die crate)": [[42, "v1", "collide-shape-moving"]],
|
||||
"target-send-attack": [
|
||||
["_stack_", 96, "symbol"],
|
||||
[16, "s4", "process-focusable"]
|
||||
[16, "s4", "process-focusable"],
|
||||
[[429, 444], "t1", "sound-name"]
|
||||
],
|
||||
"(method 36 crate)": [
|
||||
[6, "a0", "collide-shape-moving"],
|
||||
@@ -4905,5 +4907,29 @@
|
||||
[360, "a0", "(pointer uint128)"]
|
||||
],
|
||||
"(method 13 editable-face)": [[[31, 84], "s3", "(inline-array vector)"]],
|
||||
"(method 13 editable-plane)": [[[37, 90], "s3", "(inline-array vector)"]]
|
||||
"(method 13 editable-plane)": [[[37, 90], "s3", "(inline-array vector)"]],
|
||||
"target-standard-event-handler": [
|
||||
[45, "v1", "(pointer process)"],
|
||||
[93, "a0", "vector"],
|
||||
[203, "a0", "process"],
|
||||
[205, "v1", "(pointer process)"],
|
||||
[228, "a0", "process"],
|
||||
[230, "v1", "(pointer process)"],
|
||||
[250, "a0", "process"],
|
||||
[252, "v1", "(pointer process)"],
|
||||
[343, "s5", "process"],
|
||||
[345, "v1", "(pointer process)"],
|
||||
[369, "a0", "process"],
|
||||
[371, "v1", "(pointer process)"],
|
||||
[392, "a0", "process"],
|
||||
[394, "v1", "(pointer process)"],
|
||||
[439, "a0", "process"],
|
||||
[441, "v1", "(pointer process)"],
|
||||
[461, "a0", "process"],
|
||||
[463, "v1", "(pointer process)"],
|
||||
[640, "a0", "process"],
|
||||
[642, "v1", "(pointer process)"],
|
||||
[698, "v1", "(pointer process)"],
|
||||
[68, "a0", "vector"]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ class GLDisplay : public GfxDisplay {
|
||||
int get_screen_rate(int vmode_idx) override;
|
||||
int get_screen_vmode_count() override;
|
||||
int get_monitor_count() override;
|
||||
std::tuple<double, double> get_mouse_pos();
|
||||
std::tuple<double, double> get_mouse_pos() override;
|
||||
void set_size(int w, int h) override;
|
||||
void update_fullscreen(GfxDisplayMode mode, int screen) override;
|
||||
void render() override;
|
||||
|
||||
@@ -184,7 +184,6 @@ int sql_query_sync(Ptr<String> string_in) {
|
||||
break;
|
||||
}
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
||||
/*
|
||||
iVar2 = 99999;
|
||||
do {
|
||||
bVar1 = iVar2 != 0;
|
||||
|
||||
@@ -16,7 +16,6 @@ struct Cache {
|
||||
u64 execute(void* ctxt) {
|
||||
auto* c = (ExecutionContext*)ctxt;
|
||||
bool bc = false;
|
||||
u32 call_addr = 0;
|
||||
c->load_symbol2(v1, cache.math_camera); // lw v1, *math-camera*(s7)
|
||||
c->load_symbol2(a0, cache.sky_work); // lw a0, *sky-work*(s7)
|
||||
c->daddiu(a0, a0, 1008); // daddiu a0, a0, 1008
|
||||
@@ -293,8 +292,6 @@ struct Cache {
|
||||
u64 execute(void* ctxt) {
|
||||
auto* c = (ExecutionContext*)ctxt;
|
||||
c->copy_vfs_from_other(&ocean_regs_vfs);
|
||||
bool bc = false;
|
||||
u32 call_addr = 0;
|
||||
c->mov64(v1, a0); // or v1, a0, r0
|
||||
get_fake_spad_addr2(t4, cache.fake_scratchpad_data, 0, c);// lui t4, 28672
|
||||
c->ori(t4, t4, 12288); // ori t4, t4, 12288
|
||||
|
||||
@@ -12,7 +12,6 @@ struct Cache {
|
||||
u64 execute(void* ctxt) {
|
||||
auto* c = (ExecutionContext*)ctxt;
|
||||
bool bc = false;
|
||||
u32 call_addr = 0;
|
||||
c->mtc1(f0, a2); // mtc1 f0, a2
|
||||
c->cvtws(f0, f0); // cvt.w.s f0, f0
|
||||
c->mfc1(t1, f0); // mfc1 t1, f0
|
||||
@@ -198,7 +197,6 @@ namespace method_15_ocean {
|
||||
u64 execute(void* ctxt) {
|
||||
auto* c = (ExecutionContext*)ctxt;
|
||||
bool bc = false;
|
||||
u32 call_addr = 0;
|
||||
// nop // sll r0, r0, 0
|
||||
c->mov64(v1, a1); // or v1, a1, r0
|
||||
c->mov64(a0, a2); // or a0, a2, r0
|
||||
@@ -511,7 +509,6 @@ block_5:
|
||||
goto block_13;
|
||||
}
|
||||
|
||||
block_7:
|
||||
c->lui(a0, 16288); // lui a0, 16288
|
||||
c->mtc1(f0, a0); // mtc1 f0, a0
|
||||
c->lwc1(f1, 4, v1); // lwc1 f1, 4(v1)
|
||||
@@ -528,7 +525,6 @@ block_9:
|
||||
goto block_13;
|
||||
}
|
||||
|
||||
block_11:
|
||||
c->lui(a0, 16288); // lui a0, 16288
|
||||
c->mtc1(f0, a0); // mtc1 f0, a0
|
||||
c->lwc1(f1, 8, v1); // lwc1 f1, 8(v1)
|
||||
|
||||
@@ -8,7 +8,6 @@ namespace method_18_grid_hash {
|
||||
u64 execute(void* ctxt) {
|
||||
auto* c = (ExecutionContext*)ctxt;
|
||||
bool bc = false;
|
||||
u32 call_addr = 0;
|
||||
c->lh(v1, 10, a0); // lh v1, 10(a0)
|
||||
c->lb(a3, 24, a0); // lb a3, 24(a0)
|
||||
c->mult3(a3, a3, v1); // mult3 a3, a3, v1
|
||||
@@ -49,7 +48,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_3;
|
||||
}
|
||||
|
||||
block_2:
|
||||
c->dsubu(a2, r0, a2); // dsubu a2, r0, a2
|
||||
c->dsrav(a1, a1, a2); // dsrav a1, a1, a2
|
||||
|
||||
@@ -117,7 +115,6 @@ namespace method_19_grid_hash {
|
||||
u64 execute(void* ctxt) {
|
||||
auto* c = (ExecutionContext*)ctxt;
|
||||
bool bc = false;
|
||||
u32 call_addr = 0;
|
||||
c->lh(v1, 10, a0); // lh v1, 10(a0)
|
||||
c->lb(a3, 24, a0); // lb a3, 24(a0)
|
||||
c->mult3(a3, a3, v1); // mult3 a3, a3, v1
|
||||
@@ -158,7 +155,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_3;
|
||||
}
|
||||
|
||||
block_2:
|
||||
c->dsubu(a2, r0, a2); // dsubu a2, r0, a2
|
||||
c->dsrav(a1, a1, a2); // dsrav a1, a1, a2
|
||||
|
||||
@@ -226,7 +222,6 @@ namespace method_20_grid_hash {
|
||||
u64 execute(void* ctxt) {
|
||||
auto* c = (ExecutionContext*)ctxt;
|
||||
bool bc = false;
|
||||
u32 call_addr = 0;
|
||||
c->daddiu(sp, sp, -48); // daddiu sp, sp, -48
|
||||
c->sd(ra, 0, sp); // sd ra, 0(sp)
|
||||
c->sq(s5, 16, sp); // sq s5, 16(sp)
|
||||
@@ -357,8 +352,6 @@ namespace Mips2C::jak2 {
|
||||
namespace method_22_grid_hash {
|
||||
u64 execute(void* ctxt) {
|
||||
auto* c = (ExecutionContext*)ctxt;
|
||||
bool bc = false;
|
||||
u32 call_addr = 0;
|
||||
// nop // sll r0, r0, 0
|
||||
// nop // sll r0, r0, 0
|
||||
c->lq(v1, 0, a2); // lq v1, 0(a2)
|
||||
@@ -507,7 +500,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_4;
|
||||
}
|
||||
|
||||
block_3:
|
||||
c->dsubu(a3, r0, a3); // dsubu a3, r0, a3
|
||||
c->dsrav(a3, t2, a3); // dsrav a3, t2, a3
|
||||
|
||||
@@ -647,7 +639,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_3;
|
||||
}
|
||||
|
||||
block_2:
|
||||
c->dsubu(t3, r0, t3); // dsubu t3, r0, t3
|
||||
c->dsrav(t1, t1, t3); // dsrav t1, t1, t3
|
||||
|
||||
@@ -1220,7 +1211,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_6;
|
||||
}
|
||||
|
||||
block_5:
|
||||
c->dsubu(a1, r0, a1); // dsubu a1, r0, a1
|
||||
c->dsrav(a0, a0, a1); // dsrav a0, a0, a1
|
||||
|
||||
@@ -1464,7 +1454,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_6;
|
||||
}
|
||||
|
||||
block_5:
|
||||
c->dsubu(a1, r0, a1); // dsubu a1, r0, a1
|
||||
c->dsrav(a0, a0, a1); // dsrav a0, a0, a1
|
||||
|
||||
@@ -1738,7 +1727,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_3;
|
||||
}
|
||||
|
||||
block_2:
|
||||
c->dsubu(t0, r0, t0); // dsubu t0, r0, t0
|
||||
c->dsrav(t0, t2, t0); // dsrav t0, t2, t0
|
||||
|
||||
@@ -1899,7 +1887,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_4;
|
||||
}
|
||||
|
||||
block_3:
|
||||
c->dsubu(a3, r0, a3); // dsubu a3, r0, a3
|
||||
c->dsrav(a3, t2, a3); // dsrav a3, t2, a3
|
||||
|
||||
@@ -2249,7 +2236,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_4;
|
||||
}
|
||||
|
||||
block_3:
|
||||
c->dsubu(a1, r0, a1); // dsubu a1, r0, a1
|
||||
c->dsrav(a0, a0, a1); // dsrav a0, a0, a1
|
||||
|
||||
@@ -2611,7 +2597,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_30;
|
||||
}
|
||||
|
||||
block_12:
|
||||
c->lwc1(f0, 16, gp); // lwc1 f0, 16(gp)
|
||||
c->lwc1(f1, 0, t0); // lwc1 f1, 0(t0)
|
||||
c->lwc1(f2, 12, t0); // lwc1 f2, 12(t0)
|
||||
@@ -2629,7 +2614,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_30;
|
||||
}
|
||||
|
||||
block_16:
|
||||
c->lwc1(f0, 4, t0); // lwc1 f0, 4(t0)
|
||||
c->lwc1(f1, 12, t0); // lwc1 f1, 12(t0)
|
||||
c->adds(f0, f0, f1); // add.s f0, f0, f1
|
||||
@@ -2647,7 +2631,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_30;
|
||||
}
|
||||
|
||||
block_20:
|
||||
c->lwc1(f0, 20, gp); // lwc1 f0, 20(gp)
|
||||
c->lwc1(f1, 4, t0); // lwc1 f1, 4(t0)
|
||||
c->lwc1(f2, 12, t0); // lwc1 f2, 12(t0)
|
||||
@@ -2665,7 +2648,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_30;
|
||||
}
|
||||
|
||||
block_24:
|
||||
c->lwc1(f0, 8, t0); // lwc1 f0, 8(t0)
|
||||
c->lwc1(f1, 12, t0); // lwc1 f1, 12(t0)
|
||||
c->adds(f0, f0, f1); // add.s f0, f0, f1
|
||||
@@ -2683,7 +2665,6 @@ u64 execute(void* ctxt) {
|
||||
goto block_30;
|
||||
}
|
||||
|
||||
block_28:
|
||||
c->lwc1(f0, 24, gp); // lwc1 f0, 24(gp)
|
||||
c->lwc1(f1, 8, t0); // lwc1 f1, 8(t0)
|
||||
c->lwc1(f2, 12, t0); // lwc1 f2, 12(t0)
|
||||
|
||||
@@ -182,11 +182,11 @@
|
||||
(time-of-last-debug-float time-frame :offset 5944)
|
||||
(danger-mode symbol :offset 5984)
|
||||
(target-attack-id uint32 :offset 5988)
|
||||
(unknown-attack-id00 int32 :offset 5992)
|
||||
(attacked-by-id int32 :offset 5992)
|
||||
(bomb-scale float :offset 5996)
|
||||
(attack-count uint64 :offset 6000)
|
||||
(unknown-dword06 handle :offset 6008)
|
||||
(unknown-time-frame000 time-frame :offset 6016)
|
||||
(send-attack-dest handle :offset 6008)
|
||||
(send-attack-time time-frame :offset 6016)
|
||||
(unknown-combo-tracker00 combo-tracker :inline :offset 6032)
|
||||
(unknown-time-frame21 time-frame :offset 6072)
|
||||
(unknown-dword07 int64 :offset 6096)
|
||||
|
||||
@@ -765,14 +765,12 @@
|
||||
(the-as object (deactivate self))
|
||||
)
|
||||
((= v1-0 'do-effect)
|
||||
(when (and (nonzero? (-> self skel)) (-> self skel effect))
|
||||
(let ((t9-46 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
(-> event param 0)
|
||||
(-> event param 1)
|
||||
-1
|
||||
(the-as object (t9-46))
|
||||
(if (and (nonzero? (-> self skel)) (-> self skel effect))
|
||||
(the-as
|
||||
object
|
||||
(do-effect (-> self skel effect) (the-as symbol (-> event param 0)) (the-as float (-> event param 1)) -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if (-> self cur-event-hook)
|
||||
|
||||
@@ -23,6 +23,22 @@
|
||||
(bit-12 12)
|
||||
)
|
||||
|
||||
(defenum vehicle-type
|
||||
:type int32
|
||||
(bikea 0)
|
||||
(bikeb 1)
|
||||
(bikec 2)
|
||||
(cara 3)
|
||||
(carb 4)
|
||||
(carc 5)
|
||||
(guard-bike 6)
|
||||
(hellcat 7)
|
||||
(evan-test-bike 8)
|
||||
(test-bike 9)
|
||||
(test-car 10)
|
||||
)
|
||||
|
||||
|
||||
(declare-type race-mesh basic)
|
||||
|
||||
;; NOTE - for cam-start
|
||||
|
||||
@@ -60,9 +60,9 @@
|
||||
(:methods
|
||||
(new (symbol type process-drawable) _type_ 0)
|
||||
(effect-control-method-9 (_type_) none 9)
|
||||
(effect-control-method-10 () none 10)
|
||||
(do-effect (_type_ symbol float int) none 10)
|
||||
(effect-control-method-11 () none 11)
|
||||
(effect-control-method-12 (_type_ symbol float int basic sound-name) int 12)
|
||||
(play-effect-sound (_type_ symbol float int basic sound-name) int 12)
|
||||
(set-channel-offset! (_type_ int) none 13)
|
||||
(effect-control-method-14 () none 14)
|
||||
)
|
||||
|
||||
@@ -331,7 +331,7 @@
|
||||
:flag-assert #xc000000a0
|
||||
(:methods
|
||||
(attack-info-method-9 (_type_ attack-info process-drawable process-drawable) none 9)
|
||||
(attack-info-method-10 (_type_ object process-drawable process touching-shapes-entry) attack-info 10)
|
||||
(compute-intersect-info (_type_ object process-drawable process touching-shapes-entry) attack-info 10)
|
||||
(combine! (_type_ attack-info process-drawable) attack-info 11)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
(define-extern can-play-stance-amibent? (function symbol :behavior target))
|
||||
(define-extern ja-blend-eval (function int :behavior process-drawable))
|
||||
(define-extern spawn-projectile (function type projectile-init-by-other-params process-tree dead-pool (pointer process)))
|
||||
(define-extern target-attacked (function symbol attack-info process process (state symbol attack-info target) object :behavior target))
|
||||
(define-extern target-attacked (function symbol attack-info process touching-shapes-entry (state symbol attack-info target) object :behavior target))
|
||||
(define-extern target-clone-anim (state handle target))
|
||||
(define-extern clone-anim (function handle symbol string none :behavior process-drawable))
|
||||
(define-extern lightning-probe-callback (function lightning-tracker none))
|
||||
@@ -2558,7 +2558,7 @@
|
||||
event-type
|
||||
(the-as attack-info (-> event param 1))
|
||||
proc
|
||||
(the-as process (-> event param 0))
|
||||
(the-as touching-shapes-entry (-> event param 0))
|
||||
target-hit
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1059,20 +1059,10 @@
|
||||
)
|
||||
)
|
||||
(spawn (-> self board part-control) (-> self control trans))
|
||||
(let ((t9-26 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'effect-board-poof
|
||||
0
|
||||
-1
|
||||
(t9-26)
|
||||
)
|
||||
(when (< (-> self board shock-offset) -2048.0)
|
||||
(let ((t9-27 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'effect-board-poof
|
||||
0
|
||||
-1
|
||||
(t9-27)
|
||||
(do-effect (-> self skel effect) 'effect-board-poof 0.0 -1)
|
||||
(if (< (-> self board shock-offset) -2048.0)
|
||||
(do-effect (-> self skel effect) 'effect-board-poof 0.0 -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector-lerp! (-> self board slow-transv) (-> self board slow-transv) (-> self control transv) 0.2)
|
||||
(if (< (-> self board slow-transv y) 0.0)
|
||||
|
||||
@@ -3217,7 +3217,7 @@
|
||||
(set! (-> obj control current-surface name) 'current)
|
||||
(set! (-> obj control current-surface active-hook) nothing)
|
||||
(set! (-> obj control current-surface touch-hook) nothing)
|
||||
(set! (-> obj control unknown-dword06) (the-as handle #f))
|
||||
(set! (-> obj control send-attack-dest) (the-as handle #f))
|
||||
(dotimes (v1-84 8)
|
||||
(set! (-> obj attack-info-old v1-84 attacker) (the-as handle #f))
|
||||
)
|
||||
|
||||
@@ -710,7 +710,7 @@
|
||||
((arg0 (pointer float)) (arg1 (pointer uint64)) (arg2 (pointer uint64)))
|
||||
(let ((s4-0 (the-as process-focusable (combo-tracker-method-13
|
||||
(-> self control unknown-combo-tracker00)
|
||||
(-> self control unknown-dword06)
|
||||
(-> self control send-attack-dest)
|
||||
(-> self control trans)
|
||||
24576.0
|
||||
(-> self control c-R-w vector 2)
|
||||
@@ -950,7 +950,7 @@
|
||||
)
|
||||
)
|
||||
(let ((t1-3 (make-u128 (the-as uint #x7469682d6863) (the-as uint #x6e75702d6b616a64))))
|
||||
(effect-control-method-12
|
||||
(play-effect-sound
|
||||
(-> self skel effect)
|
||||
'punch
|
||||
-1.0
|
||||
|
||||
@@ -82,7 +82,6 @@
|
||||
(define-extern target-hit-ground-anim (function symbol symbol none :behavior target))
|
||||
(define-extern are-still? (function symbol :behavior target))
|
||||
(define-extern *attack-end-mods* surface)
|
||||
(define-extern target-send-attack (function process uint uint int int uint symbol :behavior target))
|
||||
(define-extern target-dangerous-event-handler (function process int symbol event-message-block object :behavior target))
|
||||
(define-extern target-start-attack (function none :behavior target))
|
||||
(define-extern target-danger-set! (function symbol symbol none :behavior target))
|
||||
@@ -160,6 +159,20 @@
|
||||
(define-extern target-death (state symbol target))
|
||||
(define-extern *float-mods* surface)
|
||||
|
||||
(define-extern target-send-attack (function process symbol touching-shapes-entry int int uint symbol :behavior target))
|
||||
(define-extern target-powerup-effect (function symbol none :behavior target))
|
||||
(define-extern target-load-wait (state target))
|
||||
(define-extern target-board-start (state object target))
|
||||
(define-extern target-pilot-start (state handle target))
|
||||
(define-extern target-mech-start (state handle target))
|
||||
(define-extern target-turret-get-on (state handle target))
|
||||
(define-extern target-play-anim (state string handle target))
|
||||
(define-extern target-edge-grab (state target))
|
||||
(define-extern target-pilot-edge-grab (state target))
|
||||
(define-extern target-pole-cycle (state handle target))
|
||||
(define-extern target-slide-down-to-ground (state target))
|
||||
|
||||
|
||||
;; og:ignore-form:(new 'static 'boxed-array
|
||||
|
||||
;; DECOMP BEGINS
|
||||
@@ -251,6 +264,9 @@
|
||||
target-indax-start
|
||||
(target-warp-in vector vector target)
|
||||
(target-warp-out vector vector target)
|
||||
(target-racing-start handle)
|
||||
(target-flut-start handle)
|
||||
(target-tube-start handle)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1578,7 +1578,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod attack-info-method-10 attack-info ((obj attack-info) (arg0 object) (arg1 process-drawable) (arg2 process) (arg3 touching-shapes-entry))
|
||||
(defmethod compute-intersect-info attack-info ((obj attack-info) (arg0 object) (arg1 process-drawable) (arg2 process) (arg3 touching-shapes-entry))
|
||||
(when (and arg3 arg1)
|
||||
(let ((a1-2 (prims-touching? arg3 (the-as collide-shape (-> arg1 root)) (the-as uint -1))))
|
||||
(when a1-2
|
||||
|
||||
@@ -2094,8 +2094,8 @@
|
||||
)
|
||||
(when (target-send-attack
|
||||
proc
|
||||
(the-as uint (-> self control danger-mode))
|
||||
(-> event param 0)
|
||||
(-> self control danger-mode)
|
||||
(the-as touching-shapes-entry (-> event param 0))
|
||||
(the-as int (-> self control target-attack-id))
|
||||
(the-as int (-> self control attack-count))
|
||||
(the-as uint (-> self control penetrate-using))
|
||||
@@ -2234,12 +2234,7 @@
|
||||
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(let ((s5-1 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'group-red-eco-spinkick
|
||||
(ja-frame-num 0)
|
||||
38
|
||||
(s5-1)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 38)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
|
||||
(talker-spawn-func (-> *talker-speech* 328) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
)
|
||||
@@ -2355,8 +2350,8 @@
|
||||
)
|
||||
(let ((gp-1 (target-send-attack
|
||||
proc
|
||||
(the-as uint (-> self control danger-mode))
|
||||
(-> event param 0)
|
||||
(-> self control danger-mode)
|
||||
(the-as touching-shapes-entry (-> event param 0))
|
||||
(the-as int (-> self control target-attack-id))
|
||||
(the-as int (-> self control attack-count))
|
||||
(the-as uint (-> self control penetrate-using))
|
||||
@@ -2542,12 +2537,7 @@
|
||||
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(let ((s5-1 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'group-red-eco-spinkick
|
||||
(ja-frame-num 0)
|
||||
22
|
||||
(s5-1)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 22)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
|
||||
(talker-spawn-func (-> *talker-speech* 328) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
)
|
||||
@@ -2748,7 +2738,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(effect-control-method-12
|
||||
(play-effect-sound
|
||||
(-> self skel effect)
|
||||
'punch
|
||||
-1.0
|
||||
@@ -2991,12 +2981,7 @@
|
||||
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(let ((s5-0 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'group-red-eco-spinkick
|
||||
(ja-frame-num 0)
|
||||
31
|
||||
(s5-0)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 31)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
|
||||
(talker-spawn-func (-> *talker-speech* 328) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
)
|
||||
@@ -3291,12 +3276,7 @@
|
||||
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(let ((s5-0 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'group-red-eco-spinkick
|
||||
(ja-frame-num 0)
|
||||
22
|
||||
(s5-0)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 22)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
|
||||
)
|
||||
(if (and (= (-> self control danger-mode) 'uppercut)
|
||||
@@ -3500,16 +3480,11 @@
|
||||
)
|
||||
)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.5))
|
||||
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(let ((s4-0 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'group-red-eco-strike-ground
|
||||
(ja-frame-num 0)
|
||||
0
|
||||
(s4-0)
|
||||
(if (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-strike-ground (ja-frame-num 0) 0)
|
||||
)
|
||||
)
|
||||
(let ((v1-56 (process-spawn touch-tracker :init touch-tracker-init (-> self control trans) #x45800000 30 :to self))
|
||||
)
|
||||
(send-event
|
||||
@@ -3530,17 +3505,11 @@
|
||||
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(let* ((gp-2 (-> self skel effect))
|
||||
(s5-2 (method-of-object gp-2 effect-control-method-10))
|
||||
)
|
||||
'group-red-eco-spinkick
|
||||
(ja-frame-num 0)
|
||||
(if (rand-vu-percent? 0.5)
|
||||
22
|
||||
18
|
||||
)
|
||||
(s5-2)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) (if (rand-vu-percent? 0.5)
|
||||
22
|
||||
18
|
||||
)
|
||||
)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
|
||||
)
|
||||
(when (and (not (-> self control danger-mode))
|
||||
@@ -3753,17 +3722,11 @@
|
||||
)
|
||||
(< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.25))
|
||||
)
|
||||
(let* ((gp-0 (-> self skel effect))
|
||||
(s5-0 (method-of-object gp-0 effect-control-method-10))
|
||||
)
|
||||
'group-red-eco-spinkick
|
||||
(ja-frame-num 0)
|
||||
(if (rand-vu-percent? 0.5)
|
||||
22
|
||||
18
|
||||
)
|
||||
(s5-0)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) (if (rand-vu-percent? 0.5)
|
||||
22
|
||||
18
|
||||
)
|
||||
)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
|
||||
)
|
||||
(let ((v1-37 (ja-group)))
|
||||
|
||||
@@ -481,7 +481,7 @@
|
||||
|
||||
(defmacro process->ppointer (proc)
|
||||
"safely get a (pointer process) from a process, returning #f if invalid."
|
||||
`(let ((the-proc ,proc))
|
||||
`(let ((the-proc (the-as process ,proc)))
|
||||
(if the-proc (-> the-proc ppointer))
|
||||
)
|
||||
)
|
||||
|
||||
+2
-2
@@ -116,8 +116,8 @@
|
||||
)
|
||||
|
||||
(defmacro process->ppointer (proc)
|
||||
;"safely get a (pointer process) from a process, returning #f if invalid."
|
||||
`(let ((the-proc ,proc))
|
||||
"safely get a (pointer process) from a process, returning #f if invalid."
|
||||
`(let ((the-proc (the-as process ,proc)))
|
||||
(if the-proc (-> the-proc ppointer))
|
||||
)
|
||||
)
|
||||
|
||||
+3
-3
@@ -177,11 +177,11 @@
|
||||
(time-of-last-debug-float time-frame :offset 5944)
|
||||
(danger-mode symbol :offset 5984)
|
||||
(target-attack-id uint32 :offset 5988)
|
||||
(unknown-attack-id00 int32 :offset 5992)
|
||||
(attacked-by-id int32 :offset 5992)
|
||||
(bomb-scale float :offset 5996)
|
||||
(attack-count uint64 :offset 6000)
|
||||
(unknown-dword06 handle :offset 6008)
|
||||
(unknown-time-frame000 time-frame :offset 6016)
|
||||
(send-attack-dest handle :offset 6008)
|
||||
(send-attack-time time-frame :offset 6016)
|
||||
(unknown-combo-tracker00 combo-tracker :inline :offset 6032)
|
||||
(unknown-time-frame21 time-frame :offset 6072)
|
||||
(unknown-dword07 int64 :offset 6096)
|
||||
|
||||
+5
-7
@@ -1049,14 +1049,12 @@
|
||||
(the-as object (deactivate self))
|
||||
)
|
||||
((= v1-0 'do-effect)
|
||||
(when (and (nonzero? (-> self skel)) (-> self skel effect))
|
||||
(let ((t9-46 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
(-> event param 0)
|
||||
(-> event param 1)
|
||||
-1
|
||||
(the-as object (t9-46))
|
||||
(if (and (nonzero? (-> self skel)) (-> self skel effect))
|
||||
(the-as
|
||||
object
|
||||
(do-effect (-> self skel effect) (the-as symbol (-> event param 0)) (the-as float (-> event param 1)) -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if (-> self cur-event-hook)
|
||||
|
||||
+9
-2
@@ -1,5 +1,7 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type effect-control
|
||||
(deftype effect-control (basic)
|
||||
((process process-drawable :offset-assert 4)
|
||||
(flags effect-control-flag :offset-assert 8)
|
||||
@@ -16,14 +18,15 @@
|
||||
(:methods
|
||||
(new (symbol type process-drawable) _type_ 0)
|
||||
(effect-control-method-9 (_type_) none 9)
|
||||
(effect-control-method-10 () none 10)
|
||||
(do-effect (_type_ symbol float int) none 10)
|
||||
(effect-control-method-11 () none 11)
|
||||
(effect-control-method-12 (_type_ symbol float int basic sound-name) int 12)
|
||||
(play-effect-sound (_type_ symbol float int basic sound-name) int 12)
|
||||
(set-channel-offset! (_type_ int) none 13)
|
||||
(effect-control-method-14 () none 14)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type effect-control
|
||||
(defmethod inspect effect-control ((obj effect-control))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
@@ -42,6 +45,7 @@
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for method 0 of type effect-control
|
||||
(defmethod new effect-control ((allocation symbol) (type-to-make type) (arg0 process-drawable))
|
||||
(cond
|
||||
((res-lump-struct (-> arg0 draw jgeo extra) 'effect-name structure)
|
||||
@@ -57,10 +61,13 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 13 of type effect-control
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod set-channel-offset! effect-control ((obj effect-control) (arg0 int))
|
||||
(set! (-> obj channel-offset) arg0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
0
|
||||
|
||||
+1
-1
@@ -306,7 +306,7 @@
|
||||
:flag-assert #xc000000a0
|
||||
(:methods
|
||||
(attack-info-method-9 (_type_ attack-info process-drawable process-drawable) none 9)
|
||||
(attack-info-method-10 (_type_ object process-drawable process touching-shapes-entry) attack-info 10)
|
||||
(compute-intersect-info (_type_ object process-drawable process touching-shapes-entry) attack-info 10)
|
||||
(combine! (_type_ attack-info process-drawable) attack-info 11)
|
||||
)
|
||||
)
|
||||
|
||||
+1
-1
@@ -2559,7 +2559,7 @@
|
||||
event-type
|
||||
(the-as attack-info (-> event param 1))
|
||||
proc
|
||||
(the-as process (-> event param 0))
|
||||
(the-as touching-shapes-entry (-> event param 0))
|
||||
target-hit
|
||||
)
|
||||
)
|
||||
|
||||
+3
-13
@@ -1043,20 +1043,10 @@
|
||||
)
|
||||
)
|
||||
(spawn (-> self board part-control) (-> self control trans))
|
||||
(let ((t9-26 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'effect-board-poof
|
||||
0
|
||||
-1
|
||||
(t9-26)
|
||||
)
|
||||
(when (< (-> self board shock-offset) -2048.0)
|
||||
(let ((t9-27 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'effect-board-poof
|
||||
0
|
||||
-1
|
||||
(t9-27)
|
||||
(do-effect (-> self skel effect) 'effect-board-poof 0.0 -1)
|
||||
(if (< (-> self board shock-offset) -2048.0)
|
||||
(do-effect (-> self skel effect) 'effect-board-poof 0.0 -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector-lerp! (-> self board slow-transv) (-> self board slow-transv) (-> self control transv) 0.2)
|
||||
(if (< (-> self board slow-transv y) 0.0)
|
||||
|
||||
+1
-1
@@ -3278,7 +3278,7 @@
|
||||
(set! (-> obj control current-surface name) 'current)
|
||||
(set! (-> obj control current-surface active-hook) nothing)
|
||||
(set! (-> obj control current-surface touch-hook) nothing)
|
||||
(set! (-> obj control unknown-dword06) (the-as handle #f))
|
||||
(set! (-> obj control send-attack-dest) (the-as handle #f))
|
||||
(dotimes (v1-84 8)
|
||||
(set! (-> obj attack-info-old v1-84 attacker) (the-as handle #f))
|
||||
)
|
||||
|
||||
+2
-2
@@ -710,7 +710,7 @@
|
||||
((arg0 (pointer float)) (arg1 (pointer uint64)) (arg2 (pointer uint64)))
|
||||
(let ((s4-0 (the-as process-focusable (combo-tracker-method-13
|
||||
(-> self control unknown-combo-tracker00)
|
||||
(-> self control unknown-dword06)
|
||||
(-> self control send-attack-dest)
|
||||
(-> self control trans)
|
||||
24576.0
|
||||
(-> self control c-R-w vector 2)
|
||||
@@ -950,7 +950,7 @@
|
||||
)
|
||||
)
|
||||
(let ((t1-3 (make-u128 (the-as uint #x7469682d6863) (the-as uint #x6e75702d6b616a64))))
|
||||
(effect-control-method-12
|
||||
(play-effect-sound
|
||||
(-> self skel effect)
|
||||
'punch
|
||||
-1.0
|
||||
|
||||
+1660
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -1743,7 +1743,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 10 of type attack-info
|
||||
(defmethod attack-info-method-10 attack-info ((obj attack-info) (arg0 object) (arg1 process-drawable) (arg2 process) (arg3 touching-shapes-entry))
|
||||
(defmethod compute-intersect-info attack-info ((obj attack-info) (arg0 object) (arg1 process-drawable) (arg2 process) (arg3 touching-shapes-entry))
|
||||
(when (and arg3 arg1)
|
||||
(let ((a1-2 (prims-touching? arg3 (the-as collide-shape (-> arg1 root)) (the-as uint -1))))
|
||||
(when a1-2
|
||||
|
||||
+23
-60
@@ -2118,8 +2118,8 @@
|
||||
)
|
||||
(when (target-send-attack
|
||||
proc
|
||||
(the-as uint (-> self control danger-mode))
|
||||
(-> event param 0)
|
||||
(-> self control danger-mode)
|
||||
(the-as touching-shapes-entry (-> event param 0))
|
||||
(the-as int (-> self control target-attack-id))
|
||||
(the-as int (-> self control attack-count))
|
||||
(the-as uint (-> self control penetrate-using))
|
||||
@@ -2258,12 +2258,7 @@
|
||||
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(let ((s5-1 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'group-red-eco-spinkick
|
||||
(ja-frame-num 0)
|
||||
38
|
||||
(s5-1)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 38)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
|
||||
(talker-spawn-func (-> *talker-speech* 328) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
)
|
||||
@@ -2381,8 +2376,8 @@
|
||||
)
|
||||
(let ((gp-1 (target-send-attack
|
||||
proc
|
||||
(the-as uint (-> self control danger-mode))
|
||||
(-> event param 0)
|
||||
(-> self control danger-mode)
|
||||
(the-as touching-shapes-entry (-> event param 0))
|
||||
(the-as int (-> self control target-attack-id))
|
||||
(the-as int (-> self control attack-count))
|
||||
(the-as uint (-> self control penetrate-using))
|
||||
@@ -2568,12 +2563,7 @@
|
||||
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(let ((s5-1 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'group-red-eco-spinkick
|
||||
(ja-frame-num 0)
|
||||
22
|
||||
(s5-1)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 22)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
|
||||
(talker-spawn-func (-> *talker-speech* 328) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
)
|
||||
@@ -2774,7 +2764,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(effect-control-method-12
|
||||
(play-effect-sound
|
||||
(-> self skel effect)
|
||||
'punch
|
||||
-1.0
|
||||
@@ -3019,12 +3009,7 @@
|
||||
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(let ((s5-0 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'group-red-eco-spinkick
|
||||
(ja-frame-num 0)
|
||||
31
|
||||
(s5-0)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 31)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
|
||||
(talker-spawn-func (-> *talker-speech* 328) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
)
|
||||
@@ -3323,12 +3308,7 @@
|
||||
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(let ((s5-0 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'group-red-eco-spinkick
|
||||
(ja-frame-num 0)
|
||||
22
|
||||
(s5-0)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) 22)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
|
||||
)
|
||||
(if (and (= (-> self control danger-mode) 'uppercut)
|
||||
@@ -3533,16 +3513,11 @@
|
||||
)
|
||||
)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.5))
|
||||
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(let ((s4-0 (method-of-object (-> self skel effect) effect-control-method-10)))
|
||||
'group-red-eco-strike-ground
|
||||
(ja-frame-num 0)
|
||||
0
|
||||
(s4-0)
|
||||
(if (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-strike-ground (ja-frame-num 0) 0)
|
||||
)
|
||||
)
|
||||
(let ((v1-56 (process-spawn touch-tracker :init touch-tracker-init (-> self control trans) #x45800000 30 :to self))
|
||||
)
|
||||
(send-event
|
||||
@@ -3563,17 +3538,11 @@
|
||||
(when (and (= (-> (the-as fact-info-target (-> self fact-override)) eco-type) 2)
|
||||
(>= (-> (the-as fact-info-target (-> self fact-override)) eco-level) 1.0)
|
||||
)
|
||||
(let* ((gp-2 (-> self skel effect))
|
||||
(s5-2 (method-of-object gp-2 effect-control-method-10))
|
||||
)
|
||||
'group-red-eco-spinkick
|
||||
(ja-frame-num 0)
|
||||
(if (rand-vu-percent? 0.5)
|
||||
22
|
||||
18
|
||||
)
|
||||
(s5-2)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) (if (rand-vu-percent? 0.5)
|
||||
22
|
||||
18
|
||||
)
|
||||
)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
|
||||
)
|
||||
(when (and (not (-> self control danger-mode))
|
||||
@@ -3787,17 +3756,11 @@
|
||||
)
|
||||
(< (- (-> self clock frame-counter) (-> self state-time)) (seconds 0.25))
|
||||
)
|
||||
(let* ((gp-0 (-> self skel effect))
|
||||
(s5-0 (method-of-object gp-0 effect-control-method-10))
|
||||
)
|
||||
'group-red-eco-spinkick
|
||||
(ja-frame-num 0)
|
||||
(if (rand-vu-percent? 0.5)
|
||||
22
|
||||
18
|
||||
)
|
||||
(s5-0)
|
||||
)
|
||||
(do-effect (-> self skel effect) 'group-red-eco-spinkick (ja-frame-num 0) (if (rand-vu-percent? 0.5)
|
||||
22
|
||||
18
|
||||
)
|
||||
)
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 153 (seconds 0.1))
|
||||
)
|
||||
(let ((v1-37 (ja-group)))
|
||||
|
||||
@@ -191,7 +191,9 @@
|
||||
"(method 10 joint-control)",
|
||||
|
||||
"entity-lookup-part-group",
|
||||
"process-drawable-shock-skel-effect" // stack array
|
||||
"process-drawable-shock-skel-effect", // stack array
|
||||
|
||||
"target-send-attack"
|
||||
],
|
||||
|
||||
"skip_compile_states": {
|
||||
|
||||
Reference in New Issue
Block a user