From e326eb392d20ec5a7c3b2e2ff1f39627d8a7ec8e Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 21 Oct 2019 20:06:58 +1000 Subject: [PATCH] Decompile ai0184 --- src/files/setup/setuplee.c | 4 ++-- src/files/setup/setupsho.c | 4 ++-- src/game/chr/chraicommands.c | 34 ++++++++-------------------------- src/include/commands.h | 17 +++++++++-------- src/setup/ailists.c | 16 ++++++++-------- 5 files changed, 29 insertions(+), 46 deletions(-) diff --git a/src/files/setup/setuplee.c b/src/files/setup/setuplee.c index 6d3c1e771..2f8753353 100644 --- a/src/files/setup/setuplee.c +++ b/src/files/setup/setuplee.c @@ -3014,7 +3014,7 @@ u8 func0421_bridge_skedar[] = { goto_next(0xca) // Unreachable - cmd0184(0x5a64) + cmd0184(90, 100) // Reachable from below beginloop(0xcb) @@ -3083,7 +3083,7 @@ u8 func0421_bridge_skedar[] = { goto_next(0x2c) label(0x60) - cmd0184(0x283c) + cmd0184(40, 60) dprint 'F','I','R','E',' ','F','U','L','L','\n',0, label(0x06) goto_first(0xcb) diff --git a/src/files/setup/setupsho.c b/src/files/setup/setupsho.c index 3566c4bc5..74465c41e 100644 --- a/src/files/setup/setupsho.c +++ b/src/files/setup/setupsho.c @@ -1726,7 +1726,7 @@ u8 func0409_reaper_slayer_skedar[] = { goto_next(0x71) // Unreachable - cmd0184(0x5a64) + cmd0184(90, 100) beginloop(0x64) if_chr_stopped(/*goto*/ 0x63) @@ -1797,7 +1797,7 @@ u8 func0409_reaper_slayer_skedar[] = { goto_next(0x2d) label(0x72) - cmd0184(0x283c) + cmd0184(40, 60) dprint 'F','I','R','E',' ','F','U','L','L','\n',0, label(0x06) goto_first(0x64) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index edd3c5f26..c2bba030f 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -15183,32 +15183,14 @@ bool ai0183(void) /** * @cmd 0184 */ -GLOBAL_ASM( -glabel ai0184 -/* f05d004: 3c03800a */ lui $v1,0x800a -/* f05d008: 24639fc0 */ addiu $v1,$v1,-24640 -/* f05d00c: 8c6e0434 */ lw $t6,0x434($v1) -/* f05d010: 8c6f0438 */ lw $t7,0x438($v1) -/* f05d014: 27bdffe0 */ addiu $sp,$sp,-32 -/* f05d018: afbf001c */ sw $ra,0x1c($sp) -/* f05d01c: 01cf1021 */ addu $v0,$t6,$t7 -/* f05d020: 90580003 */ lbu $t8,0x3($v0) -/* f05d024: 90470002 */ lbu $a3,0x2($v0) -/* f05d028: 8c640424 */ lw $a0,0x424($v1) -/* f05d02c: 24050200 */ addiu $a1,$zero,0x200 -/* f05d030: 00003025 */ or $a2,$zero,$zero -/* f05d034: 0fc0e8fb */ jal func0f03a3ec -/* f05d038: afb80010 */ sw $t8,0x10($sp) -/* f05d03c: 3c03800a */ lui $v1,0x800a -/* f05d040: 24639fc0 */ addiu $v1,$v1,-24640 -/* f05d044: 8c790438 */ lw $t9,0x438($v1) -/* f05d048: 8fbf001c */ lw $ra,0x1c($sp) -/* f05d04c: 27bd0020 */ addiu $sp,$sp,0x20 -/* f05d050: 27280004 */ addiu $t0,$t9,0x4 -/* f05d054: ac680438 */ sw $t0,0x438($v1) -/* f05d058: 03e00008 */ jr $ra -/* f05d05c: 00001025 */ or $v0,$zero,$zero -); +bool ai0184(void) +{ + u8 *cmd = g_Vars.ailist + g_Vars.aioffset; + func0f03a3ec(g_Vars.chrdata, 512, 0, cmd[2], cmd[3]); + g_Vars.aioffset += 4; + + return false; +} /** * @cmd 0186 diff --git a/src/include/commands.h b/src/include/commands.h index 02bb90422..1fba95893 100644 --- a/src/include/commands.h +++ b/src/include/commands.h @@ -1536,19 +1536,20 @@ // aimendrshoulder, aimendback and amendsideback. // // Called with values: -// 0x5a64 (23140) -// 0x283c (10300) -// 0x141e (5150) +// 90, 100 +// 40, 60 +// 20, 30 // // Used by: -// Attack Ship - Bridge skedar (with 0x283c) -// Ruins - Reaper and Slayer skedar (with 0x283c) -// globals.s - with values 0x5a64 and 0x141e +// Attack Ship - Bridge skedar (with 40,60) +// Ruins - Reaper and Slayer skedar (with 40,60) +// globals.s - with values 90,100 and 20,30 // // Sometimes accompanied with dprint "FIRE FULL" -#define cmd0184(u1) \ +#define cmd0184(u1, u2) \ mkshort(0x0184), \ - mkshort(u1), + u1, \ + u2, // The rom address for this command is not a valid function entry...? #define cmd0185_mponly \ diff --git a/src/setup/ailists.c b/src/setup/ailists.c index e122a9950..ac66b8034 100644 --- a/src/setup/ailists.c +++ b/src/setup/ailists.c @@ -1640,13 +1640,13 @@ u8 func0007_alerted[] = { if_rand_lt(10, /*goto*/ 0x57) if_rand_gt(64, /*goto*/ 0x16) if_self_flag_bankx_eq(CHRFLAG1_00000010, FALSE, BANK_1, /*goto*/ 0x13) - cmd0184(0x5a64) + cmd0184(90, 100) set_self_flag_bankx(CHRFLAG1_00000020, BANK_1) goto_next(0x60) label(0x13) if_self_flag_bankx_eq(CHRFLAG1_00000004, FALSE, BANK_1, /*goto*/ 0x13) - cmd0184(0x141e) + cmd0184(20, 30) goto_next(0x60) label(0x13) @@ -1990,13 +1990,13 @@ u8 func0007_alerted[] = { if_rand_lt(10, /*goto*/ 0x57) if_rand_gt(64, /*goto*/ 0x16) if_self_flag_bankx_eq(CHRFLAG1_00000010, FALSE, BANK_1, /*goto*/ 0x13) - cmd0184(0x5a64) + cmd0184(90, 100) set_self_flag_bankx(CHRFLAG1_00000020, BANK_1) goto_next(0x43) label(0x13) if_self_flag_bankx_eq(CHRFLAG1_00000004, FALSE, BANK_1, /*goto*/ 0x13) - cmd0184(0x141e) + cmd0184(20, 30) goto_next(0x43) label(0x13) @@ -2326,13 +2326,13 @@ u8 func0007_alerted[] = { if_rand_lt(10, /*goto*/ 0x57) if_rand_gt(64, /*goto*/ 0x16) if_self_flag_bankx_eq(CHRFLAG1_00000010, FALSE, BANK_1, /*goto*/ 0x13) - cmd0184(0x5a64) + cmd0184(90, 100) set_self_flag_bankx(CHRFLAG1_00000020, BANK_1) goto_next(0x44) label(0x13) if_self_flag_bankx_eq(CHRFLAG1_00000004, FALSE, BANK_1, /*goto*/ 0x13) - cmd0184(0x141e) + cmd0184(20, 30) goto_next(0x44) label(0x13) @@ -3179,13 +3179,13 @@ u8 func000c_combat_with_target_chr[] = { call_rng if_rand_gt(64, /*goto*/ 0x16) if_self_flag_bankx_eq(CHRFLAG1_00000010, FALSE, BANK_1, /*goto*/ 0x13) - cmd0184(0x5a64) + cmd0184(90, 100) set_self_flag_bankx(CHRFLAG1_00000020, BANK_1) goto_next(0xc3) label(0x13) if_self_flag_bankx_eq(CHRFLAG1_00000004, FALSE, BANK_1, /*goto*/ 0x13) - cmd0184(0x141e) + cmd0184(20, 30) goto_next(0xc3) label(0x13)