From c82c8d131dd7d180b8c2fc2ac629b672476ebfca Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 6 Jan 2020 18:19:49 +1000 Subject: [PATCH] Decompile scenarioCallback40 --- src/game/game_0d4690.c | 8 ++-- src/game/game_10ccd0.c | 52 ++++++++++---------- src/game/game_176d70.c | 37 ++++---------- src/game/game_187770.c | 88 +++++++++++++++++----------------- src/include/game/game_0d4690.h | 2 +- src/include/game/game_176d70.h | 4 +- src/include/types.h | 2 +- 7 files changed, 87 insertions(+), 106 deletions(-) diff --git a/src/game/game_0d4690.c b/src/game/game_0d4690.c index 5ce8b52e0..4e473d50b 100644 --- a/src/game/game_0d4690.c +++ b/src/game/game_0d4690.c @@ -1105,7 +1105,7 @@ glabel func0f0d5360 ); GLOBAL_ASM( -glabel func0f0d53f8 +glabel scenarioDefaultCallback40 /* f0d53f8: 24ae001f */ addiu $t6,$a1,0x1f /* f0d53fc: 240f0001 */ addiu $t7,$zero,0x1 /* f0d5400: 01cf1004 */ sllv $v0,$t7,$t6 @@ -1205,7 +1205,7 @@ glabel func0f0d54e4 /* f0d551c: 2414000a */ addiu $s4,$zero,0xa /* f0d5520: 02602025 */ or $a0,$s3,$zero .L0f0d5524: -/* f0d5524: 0fc354fe */ jal func0f0d53f8 +/* f0d5524: 0fc354fe */ jal scenarioDefaultCallback40 /* f0d5528: 24050008 */ addiu $a1,$zero,0x8 /* f0d552c: 56200008 */ bnezl $s1,.L0f0d5550 /* f0d5530: 26100001 */ addiu $s0,$s0,0x1 @@ -1401,12 +1401,12 @@ glabel func0f0d579c /* f0d57a0: afbf0014 */ sw $ra,0x14($sp) /* f0d57a4: afa5001c */ sw $a1,0x1c($sp) /* f0d57a8: afa40018 */ sw $a0,0x18($sp) -/* f0d57ac: 0fc354fe */ jal func0f0d53f8 +/* f0d57ac: 0fc354fe */ jal scenarioDefaultCallback40 /* f0d57b0: 24050007 */ addiu $a1,$zero,0x7 /* f0d57b4: 8fae001c */ lw $t6,0x1c($sp) /* f0d57b8: 2405000d */ addiu $a1,$zero,0xd /* f0d57bc: adc20000 */ sw $v0,0x0($t6) -/* f0d57c0: 0fc354fe */ jal func0f0d53f8 +/* f0d57c0: 0fc354fe */ jal scenarioDefaultCallback40 /* f0d57c4: 8fa40018 */ lw $a0,0x18($sp) /* f0d57c8: 8faf001c */ lw $t7,0x1c($sp) /* f0d57cc: a5e20004 */ sh $v0,0x4($t7) diff --git a/src/game/game_10ccd0.c b/src/game/game_10ccd0.c index fab869e03..7006791a0 100644 --- a/src/game/game_10ccd0.c +++ b/src/game/game_10ccd0.c @@ -3349,7 +3349,7 @@ glabel func0f10fac8 /* f10fb80: 0fc35539 */ jal func0f0d54e4 /* f10fb84: 00003025 */ or $a2,$zero,$zero /* f10fb88: 02802025 */ or $a0,$s4,$zero -/* f10fb8c: 0fc354fe */ jal func0f0d53f8 +/* f10fb8c: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fb90: 24050005 */ addiu $a1,$zero,0x5 /* f10fb94: 3c03800a */ lui $v1,0x800a /* f10fb98: 24632200 */ addiu $v1,$v1,0x2200 @@ -3359,12 +3359,12 @@ glabel func0f10fac8 /* f10fba8: 314bff07 */ andi $t3,$t2,0xff07 /* f10fbac: 012b6025 */ or $t4,$t1,$t3 /* f10fbb0: a06c000b */ sb $t4,0xb($v1) -/* f10fbb4: 0fc354fe */ jal func0f0d53f8 +/* f10fbb4: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fbb8: 24050020 */ addiu $a1,$zero,0x20 /* f10fbbc: 3c01800a */ lui $at,0x800a /* f10fbc0: ac222210 */ sw $v0,0x2210($at) /* f10fbc4: 02802025 */ or $a0,$s4,$zero -/* f10fbc8: 0fc354fe */ jal func0f0d53f8 +/* f10fbc8: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fbcc: 24050002 */ addiu $a1,$zero,0x2 /* f10fbd0: 3c03800a */ lui $v1,0x800a /* f10fbd4: 24632200 */ addiu $v1,$v1,0x2200 @@ -3374,12 +3374,12 @@ glabel func0f10fac8 /* f10fbe4: 31f8fff8 */ andi $t8,$t7,0xfff8 /* f10fbe8: 01d8c825 */ or $t9,$t6,$t8 /* f10fbec: a079000b */ sb $t9,0xb($v1) -/* f10fbf0: 0fc354fe */ jal func0f0d53f8 +/* f10fbf0: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fbf4: 24050005 */ addiu $a1,$zero,0x5 /* f10fbf8: 3c01800a */ lui $at,0x800a /* f10fbfc: a022220c */ sb $v0,0x220c($at) /* f10fc00: 02802025 */ or $a0,$s4,$zero -/* f10fc04: 0fc354fe */ jal func0f0d53f8 +/* f10fc04: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fc08: 24050006 */ addiu $a1,$zero,0x6 /* f10fc0c: 00022880 */ sll $a1,$v0,0x2 /* f10fc10: 2ca100fc */ sltiu $at,$a1,0xfc @@ -3392,7 +3392,7 @@ glabel func0f10fac8 /* f10fc28: 0c003a87 */ jal audioSetSfxVolume /* f10fc2c: 3104ffff */ andi $a0,$t0,0xffff /* f10fc30: 02802025 */ or $a0,$s4,$zero -/* f10fc34: 0fc354fe */ jal func0f0d53f8 +/* f10fc34: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fc38: 24050006 */ addiu $a1,$zero,0x6 /* f10fc3c: 00022880 */ sll $a1,$v0,0x2 /* f10fc40: 2ca100fc */ sltiu $at,$a1,0xfc @@ -3405,18 +3405,18 @@ glabel func0f10fac8 /* f10fc58: 0fc54bdc */ jal optionsSetMusicVolume /* f10fc5c: 3124ffff */ andi $a0,$t1,0xffff /* f10fc60: 02802025 */ or $a0,$s4,$zero -/* f10fc64: 0fc354fe */ jal func0f0d53f8 +/* f10fc64: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fc68: 24050002 */ addiu $a1,$zero,0x2 /* f10fc6c: 0c003ce3 */ jal audioSetSoundMode /* f10fc70: 00402025 */ or $a0,$v0,$zero /* f10fc74: 02802025 */ or $a0,$s4,$zero -/* f10fc78: 0fc354fe */ jal func0f0d53f8 +/* f10fc78: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fc7c: 24050003 */ addiu $a1,$zero,0x3 /* f10fc80: 02202025 */ or $a0,$s1,$zero /* f10fc84: 0fc549cb */ jal optionsSetControlMode /* f10fc88: 00402825 */ or $a1,$v0,$zero /* f10fc8c: 02802025 */ or $a0,$s4,$zero -/* f10fc90: 0fc354fe */ jal func0f0d53f8 +/* f10fc90: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fc94: 24050003 */ addiu $a1,$zero,0x3 /* f10fc98: 02402025 */ or $a0,$s2,$zero /* f10fc9c: 0fc549cb */ jal optionsSetControlMode @@ -3427,14 +3427,14 @@ glabel func0f10fac8 /* f10fcb0: 26102200 */ addiu $s0,$s0,0x2200 .L0f10fcb4: /* f10fcb4: 02802025 */ or $a0,$s4,$zero -/* f10fcb8: 0fc354fe */ jal func0f0d53f8 +/* f10fcb8: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fcbc: 24050008 */ addiu $a1,$zero,0x8 /* f10fcc0: 26100001 */ addiu $s0,$s0,0x1 /* f10fcc4: 0211082b */ sltu $at,$s0,$s1 /* f10fcc8: 1420fffa */ bnez $at,.L0f10fcb4 /* f10fccc: a2020013 */ sb $v0,0x13($s0) /* f10fcd0: 02802025 */ or $a0,$s4,$zero -/* f10fcd4: 0fc354fe */ jal func0f0d53f8 +/* f10fcd4: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fcd8: 24050010 */ addiu $a1,$zero,0x10 /* f10fcdc: 3c01800a */ lui $at,0x800a /* f10fce0: 3c13800a */ lui $s3,0x800a @@ -3446,7 +3446,7 @@ glabel func0f10fac8 /* f10fcf4: 02608825 */ or $s1,$s3,$zero .L0f10fcf8: /* f10fcf8: 02802025 */ or $a0,$s4,$zero -/* f10fcfc: 0fc354fe */ jal func0f0d53f8 +/* f10fcfc: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fd00: 2405000c */ addiu $a1,$zero,0xc /* f10fd04: 26100001 */ addiu $s0,$s0,0x1 /* f10fd08: 26310002 */ addiu $s1,$s1,0x2 @@ -3464,7 +3464,7 @@ glabel func0f10fac8 .L0f10fd38: /* f10fd38: 02802025 */ or $a0,$s4,$zero .L0f10fd3c: -/* f10fd3c: 0fc354fe */ jal func0f0d53f8 +/* f10fd3c: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fd40: 24050001 */ addiu $a1,$zero,0x1 /* f10fd44: 02202025 */ or $a0,$s1,$zero /* f10fd48: 02002825 */ or $a1,$s0,$zero @@ -3485,7 +3485,7 @@ glabel func0f10fac8 /* f10fd84: 26102200 */ addiu $s0,$s0,0x2200 .L0f10fd88: /* f10fd88: 02802025 */ or $a0,$s4,$zero -/* f10fd8c: 0fc354fe */ jal func0f0d53f8 +/* f10fd8c: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fd90: 24050015 */ addiu $a1,$zero,0x15 /* f10fd94: 26100004 */ addiu $s0,$s0,0x4 /* f10fd98: 0211082b */ sltu $at,$s0,$s1 @@ -3503,7 +3503,7 @@ glabel func0f10fac8 /* f10fdc4: 10000001 */ beqz $zero,.L0f10fdcc /* f10fdc8: 24050002 */ addiu $a1,$zero,0x2 .L0f10fdcc: -/* f10fdcc: 0fc354fe */ jal func0f0d53f8 +/* f10fdcc: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fdd0: 02802025 */ or $a0,$s4,$zero /* f10fdd4: 26100001 */ addiu $s0,$s0,0x1 /* f10fdd8: 0212082b */ sltu $at,$s0,$s2 @@ -3515,7 +3515,7 @@ glabel func0f10fac8 /* f10fdf0: 26102200 */ addiu $s0,$s0,0x2200 .L0f10fdf4: /* f10fdf4: 02802025 */ or $a0,$s4,$zero -/* f10fdf8: 0fc354fe */ jal func0f0d53f8 +/* f10fdf8: 0fc354fe */ jal scenarioDefaultCallback40 /* f10fdfc: 24050008 */ addiu $a1,$zero,0x8 /* f10fe00: 26100001 */ addiu $s0,$s0,0x1 /* f10fe04: 1611fffb */ bne $s0,$s1,.L0f10fdf4 @@ -4074,17 +4074,17 @@ glabel func0f1105fc /* f11062c: 0fc35539 */ jal func0f0d54e4 /* f110630: 00003025 */ or $a2,$zero,$zero /* f110634: 27a40018 */ addiu $a0,$sp,0x18 -/* f110638: 0fc354fe */ jal func0f0d53f8 +/* f110638: 0fc354fe */ jal scenarioDefaultCallback40 /* f11063c: 24050005 */ addiu $a1,$zero,0x5 /* f110640: 8fae0100 */ lw $t6,0x100($sp) /* f110644: 27a40018 */ addiu $a0,$sp,0x18 /* f110648: 24050020 */ addiu $a1,$zero,0x20 -/* f11064c: 0fc354fe */ jal func0f0d53f8 +/* f11064c: 0fc354fe */ jal scenarioDefaultCallback40 /* f110650: a1c20000 */ sb $v0,0x0($t6) /* f110654: 8faf0108 */ lw $t7,0x108($sp) /* f110658: 27a40018 */ addiu $a0,$sp,0x18 /* f11065c: 24050002 */ addiu $a1,$zero,0x2 -/* f110660: 0fc354fe */ jal func0f0d53f8 +/* f110660: 0fc354fe */ jal scenarioDefaultCallback40 /* f110664: ade20000 */ sw $v0,0x0($t7) /* f110668: 8fb80104 */ lw $t8,0x104($sp) /* f11066c: a3020000 */ sb $v0,0x0($t8) @@ -4249,12 +4249,12 @@ glabel func0f11080c /* f110894: 02402025 */ or $a0,$s2,$zero /* f110898: 24050001 */ addiu $a1,$zero,0x1 /* f11089c: ae39047c */ sw $t9,0x47c($s1) -/* f1108a0: 0fc354fe */ jal func0f0d53f8 +/* f1108a0: 0fc354fe */ jal scenarioDefaultCallback40 /* f1108a4: a6280480 */ sh $t0,0x480($s1) /* f1108a8: 3c01800b */ lui $at,0x800b /* f1108ac: a022cc11 */ sb $v0,-0x33ef($at) /* f1108b0: 02402025 */ or $a0,$s2,$zero -/* f1108b4: 0fc354fe */ jal func0f0d53f8 +/* f1108b4: 0fc354fe */ jal scenarioDefaultCallback40 /* f1108b8: 24050004 */ addiu $a1,$zero,0x4 /* f1108bc: a6220482 */ sh $v0,0x482($s1) /* f1108c0: 3c11800b */ lui $s1,%hi(var800acc10) @@ -4271,7 +4271,7 @@ glabel func0f11080c /* f1108e8: 5420fffa */ bnezl $at,.L0f1108d4 /* f1108ec: 02402025 */ or $a0,$s2,$zero /* f1108f0: 02402025 */ or $a0,$s2,$zero -/* f1108f4: 0fc354fe */ jal func0f0d53f8 +/* f1108f4: 0fc354fe */ jal scenarioDefaultCallback40 /* f1108f8: 24050008 */ addiu $a1,$zero,0x8 /* f1108fc: 304300ff */ andi $v1,$v0,0xff /* f110900: 240100ff */ addiu $at,$zero,0xff @@ -4290,23 +4290,23 @@ glabel func0f11080c /* f11092c: 2610cbb0 */ addiu $s0,$s0,%lo(var800acbb0) .L0f110930: /* f110930: 02402025 */ or $a0,$s2,$zero -/* f110934: 0fc354fe */ jal func0f0d53f8 +/* f110934: 0fc354fe */ jal scenarioDefaultCallback40 /* f110938: 24050008 */ addiu $a1,$zero,0x8 /* f11093c: 26100001 */ addiu $s0,$s0,0x1 /* f110940: 1611fffb */ bne $s0,$s1,.L0f110930 /* f110944: a2020064 */ sb $v0,0x64($s0) /* f110948: 02402025 */ or $a0,$s2,$zero -/* f11094c: 0fc354fe */ jal func0f0d53f8 +/* f11094c: 0fc354fe */ jal scenarioDefaultCallback40 /* f110950: 24050001 */ addiu $a1,$zero,0x1 /* f110954: 3c01800b */ lui $at,0x800b /* f110958: a022cc12 */ sb $v0,-0x33ee($at) /* f11095c: 02402025 */ or $a0,$s2,$zero -/* f110960: 0fc354fe */ jal func0f0d53f8 +/* f110960: 0fc354fe */ jal scenarioDefaultCallback40 /* f110964: 24050001 */ addiu $a1,$zero,0x1 /* f110968: 3c01800a */ lui $at,0x800a /* f11096c: a022232b */ sb $v0,0x232b($at) /* f110970: 02402025 */ or $a0,$s2,$zero -/* f110974: 0fc354fe */ jal func0f0d53f8 +/* f110974: 0fc354fe */ jal scenarioDefaultCallback40 /* f110978: 24050001 */ addiu $a1,$zero,0x1 /* f11097c: 3c01800a */ lui $at,0x800a /* f110980: a022232c */ sb $v0,0x232c($at) diff --git a/src/game/game_176d70.c b/src/game/game_176d70.c index 9c6d53cfe..c3078541c 100644 --- a/src/game/game_176d70.c +++ b/src/game/game_176d70.c @@ -12113,7 +12113,7 @@ GLOBAL_ASM( glabel scenarioHillCallback40 /* f181b24: 27bdffe8 */ addiu $sp,$sp,-24 /* f181b28: afbf0014 */ sw $ra,0x14($sp) -/* f181b2c: 0fc354fe */ jal func0f0d53f8 +/* f181b2c: 0fc354fe */ jal scenarioDefaultCallback40 /* f181b30: 24050008 */ addiu $a1,$zero,0x8 /* f181b34: 8fbf0014 */ lw $ra,0x14($sp) /* f181b38: 3c01800a */ lui $at,0x800a @@ -16187,33 +16187,14 @@ s32 menuhandlerMpOpenOptions(u32 operation, struct menu_item *item, s32 *value) return 0; } -GLOBAL_ASM( -glabel func0f1853d0 -/* f1853d0: 3c0e800b */ lui $t6,0x800b -/* f1853d4: 91cecb98 */ lbu $t6,-0x3468($t6) -/* f1853d8: 3c028008 */ lui $v0,0x8008 -/* f1853dc: 27bdffe8 */ addiu $sp,$sp,-24 -/* f1853e0: 000e78c0 */ sll $t7,$t6,0x3 -/* f1853e4: 01ee7821 */ addu $t7,$t7,$t6 -/* f1853e8: 000f78c0 */ sll $t7,$t7,0x3 -/* f1853ec: 004f1021 */ addu $v0,$v0,$t7 -/* f1853f0: 8c426fd8 */ lw $v0,0x6fd8($v0) -/* f1853f4: afbf0014 */ sw $ra,0x14($sp) -/* f1853f8: 10400005 */ beqz $v0,.L0f185410 -/* f1853fc: 00000000 */ sll $zero,$zero,0x0 -/* f185400: 0040f809 */ jalr $v0 -/* f185404: 00000000 */ sll $zero,$zero,0x0 -/* f185408: 10000004 */ beqz $zero,.L0f18541c -/* f18540c: 8fbf0014 */ lw $ra,0x14($sp) -.L0f185410: -/* f185410: 0fc354fe */ jal func0f0d53f8 -/* f185414: 24050008 */ addiu $a1,$zero,0x8 -/* f185418: 8fbf0014 */ lw $ra,0x14($sp) -.L0f18541c: -/* f18541c: 27bd0018 */ addiu $sp,$sp,0x18 -/* f185420: 03e00008 */ jr $ra -/* f185424: 00000000 */ sll $zero,$zero,0x0 -); +void scenarioCallback40(s32 *arg0) +{ + if (g_MpScenarios[g_MpSetup.scenario].unk40) { + g_MpScenarios[g_MpSetup.scenario].unk40(arg0); + } else { + scenarioDefaultCallback40(arg0, 8); + } +} void scenarioCallback44(s32 *arg0) { diff --git a/src/game/game_187770.c b/src/game/game_187770.c index 6b03c7859..da3935d14 100644 --- a/src/game/game_187770.c +++ b/src/game/game_187770.c @@ -6964,7 +6964,7 @@ glabel func0f18d1b8 /* f18d1fc: 02002825 */ or $a1,$s0,$zero /* f18d200: 24050008 */ addiu $a1,$zero,0x8 .L0f18d204: -/* f18d204: 0fc354fe */ jal func0f0d53f8 +/* f18d204: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d208: 02402025 */ or $a0,$s2,$zero /* f18d20c: 2610fff8 */ addiu $s0,$s0,-8 /* f18d210: a2220097 */ sb $v0,0x97($s1) @@ -7041,16 +7041,16 @@ glabel func0f18d2b8 /* f18d304: 0fc35539 */ jal func0f0d54e4 /* f18d308: 24060001 */ addiu $a2,$zero,0x1 /* f18d30c: 02602025 */ or $a0,$s3,$zero -/* f18d310: 0fc354fe */ jal func0f0d53f8 +/* f18d310: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d314: 2405001c */ addiu $a1,$zero,0x1c /* f18d318: 12000037 */ beqz $s0,.L0f18d3f8 /* f18d31c: aea20068 */ sw $v0,0x68($s5) /* f18d320: 02602025 */ or $a0,$s3,$zero -/* f18d324: 0fc354fe */ jal func0f0d53f8 +/* f18d324: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d328: 24050007 */ addiu $a1,$zero,0x7 /* f18d32c: a2a2000f */ sb $v0,0xf($s5) /* f18d330: 02602025 */ or $a0,$s3,$zero -/* f18d334: 0fc354fe */ jal func0f0d53f8 +/* f18d334: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d338: 24050007 */ addiu $a1,$zero,0x7 /* f18d33c: a2a20010 */ sb $v0,0x10($s5) /* f18d340: 02602025 */ or $a0,$s3,$zero @@ -7102,10 +7102,10 @@ glabel func0f18d2b8 /* f18d3f4: a2a0000f */ sb $zero,0xf($s5) .L0f18d3f8: /* f18d3f8: 02602025 */ or $a0,$s3,$zero -/* f18d3fc: 0fc354fe */ jal func0f0d53f8 +/* f18d3fc: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d400: 24050007 */ addiu $a1,$zero,0x7 /* f18d404: 02602025 */ or $a0,$s3,$zero -/* f18d408: 0fc354fe */ jal func0f0d53f8 +/* f18d408: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d40c: 24050007 */ addiu $a1,$zero,0x7 /* f18d410: 02602025 */ or $a0,$s3,$zero /* f18d414: 0fc355e7 */ jal func0f0d579c @@ -7113,75 +7113,75 @@ glabel func0f18d2b8 .L0f18d41c: /* f18d41c: 02602025 */ or $a0,$s3,$zero .L0f18d420: -/* f18d420: 0fc354fe */ jal func0f0d53f8 +/* f18d420: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d424: 24050008 */ addiu $a1,$zero,0x8 /* f18d428: aea20014 */ sw $v0,0x14($s5) /* f18d42c: 02602025 */ or $a0,$s3,$zero -/* f18d430: 0fc354fe */ jal func0f0d53f8 +/* f18d430: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d434: 24050014 */ addiu $a1,$zero,0x14 /* f18d438: aea20054 */ sw $v0,0x54($s5) /* f18d43c: 02602025 */ or $a0,$s3,$zero -/* f18d440: 0fc354fe */ jal func0f0d53f8 +/* f18d440: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d444: 24050014 */ addiu $a1,$zero,0x14 /* f18d448: aea20058 */ sw $v0,0x58($s5) /* f18d44c: 02602025 */ or $a0,$s3,$zero -/* f18d450: 0fc354fe */ jal func0f0d53f8 +/* f18d450: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d454: 24050013 */ addiu $a1,$zero,0x13 /* f18d458: aea2005c */ sw $v0,0x5c($s5) /* f18d45c: 02602025 */ or $a0,$s3,$zero -/* f18d460: 0fc354fe */ jal func0f0d53f8 +/* f18d460: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d464: 24050013 */ addiu $a1,$zero,0x13 /* f18d468: aea20060 */ sw $v0,0x60($s5) /* f18d46c: 02602025 */ or $a0,$s3,$zero -/* f18d470: 0fc354fe */ jal func0f0d53f8 +/* f18d470: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d474: 24050013 */ addiu $a1,$zero,0x13 /* f18d478: aea20064 */ sw $v0,0x64($s5) /* f18d47c: 02602025 */ or $a0,$s3,$zero -/* f18d480: 0fc354fe */ jal func0f0d53f8 +/* f18d480: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d484: 24050019 */ addiu $a1,$zero,0x19 /* f18d488: aea2006c */ sw $v0,0x6c($s5) /* f18d48c: 02602025 */ or $a0,$s3,$zero -/* f18d490: 0fc354fe */ jal func0f0d53f8 +/* f18d490: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d494: 2405000a */ addiu $a1,$zero,0xa /* f18d498: aea20070 */ sw $v0,0x70($s5) /* f18d49c: 02602025 */ or $a0,$s3,$zero -/* f18d4a0: 0fc354fe */ jal func0f0d53f8 +/* f18d4a0: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d4a4: 2405001a */ addiu $a1,$zero,0x1a /* f18d4a8: aea20074 */ sw $v0,0x74($s5) /* f18d4ac: 02602025 */ or $a0,$s3,$zero -/* f18d4b0: 0fc354fe */ jal func0f0d53f8 +/* f18d4b0: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d4b4: 2405001a */ addiu $a1,$zero,0x1a /* f18d4b8: aea20078 */ sw $v0,0x78($s5) /* f18d4bc: 02602025 */ or $a0,$s3,$zero -/* f18d4c0: 0fc354fe */ jal func0f0d53f8 +/* f18d4c0: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d4c4: 24050014 */ addiu $a1,$zero,0x14 /* f18d4c8: aea2007c */ sw $v0,0x7c($s5) /* f18d4cc: 02602025 */ or $a0,$s3,$zero -/* f18d4d0: 0fc354fe */ jal func0f0d53f8 +/* f18d4d0: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d4d4: 2405001e */ addiu $a1,$zero,0x1e /* f18d4d8: aea20080 */ sw $v0,0x80($s5) /* f18d4dc: 02602025 */ or $a0,$s3,$zero -/* f18d4e0: 0fc354fe */ jal func0f0d53f8 +/* f18d4e0: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d4e4: 24050012 */ addiu $a1,$zero,0x12 /* f18d4e8: aea20084 */ sw $v0,0x84($s5) /* f18d4ec: 02602025 */ or $a0,$s3,$zero -/* f18d4f0: 0fc354fe */ jal func0f0d53f8 +/* f18d4f0: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d4f4: 24050012 */ addiu $a1,$zero,0x12 /* f18d4f8: aea20088 */ sw $v0,0x88($s5) /* f18d4fc: 02602025 */ or $a0,$s3,$zero -/* f18d500: 0fc354fe */ jal func0f0d53f8 +/* f18d500: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d504: 24050012 */ addiu $a1,$zero,0x12 /* f18d508: aea2008c */ sw $v0,0x8c($s5) /* f18d50c: 02602025 */ or $a0,$s3,$zero -/* f18d510: 0fc354fe */ jal func0f0d53f8 +/* f18d510: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d514: 24050010 */ addiu $a1,$zero,0x10 /* f18d518: aea20090 */ sw $v0,0x90($s5) /* f18d51c: 02602025 */ or $a0,$s3,$zero -/* f18d520: 0fc354fe */ jal func0f0d53f8 +/* f18d520: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d524: 24050002 */ addiu $a1,$zero,0x2 /* f18d528: a2a20044 */ sb $v0,0x44($s5) /* f18d52c: 02602025 */ or $a0,$s3,$zero -/* f18d530: 0fc354fe */ jal func0f0d53f8 +/* f18d530: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d534: 2405000c */ addiu $a1,$zero,0xc /* f18d538: a6a20048 */ sh $v0,0x48($s5) /* f18d53c: 00008825 */ or $s1,$zero,$zero @@ -7190,7 +7190,7 @@ glabel func0f18d2b8 .L0f18d548: /* f18d548: 02602025 */ or $a0,$s3,$zero .L0f18d54c: -/* f18d54c: 0fc354fe */ jal func0f0d53f8 +/* f18d54c: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d550: 24050001 */ addiu $a1,$zero,0x1 /* f18d554: 02802025 */ or $a0,$s4,$zero /* f18d558: 02202825 */ or $a1,$s1,$zero @@ -7510,7 +7510,7 @@ glabel func0f18d9a4 /* f18d9d0: 0fc35539 */ jal func0f0d54e4 /* f18d9d4: 00003025 */ or $a2,$zero,$zero /* f18d9d8: 27a40018 */ addiu $a0,$sp,0x18 -/* f18d9dc: 0fc354fe */ jal func0f0d53f8 +/* f18d9dc: 0fc354fe */ jal scenarioDefaultCallback40 /* f18d9e0: 2405001c */ addiu $a1,$zero,0x1c /* f18d9e4: 8fae0100 */ lw $t6,0x100($sp) /* f18d9e8: adc20000 */ sw $v0,0x0($t6) @@ -7940,21 +7940,21 @@ glabel func0f18df5c /* f18df90: 0fc35539 */ jal func0f0d54e4 /* f18df94: 00003025 */ or $a2,$zero,$zero /* f18df98: 02602025 */ or $a0,$s3,$zero -/* f18df9c: 0fc354fe */ jal func0f0d53f8 +/* f18df9c: 0fc354fe */ jal scenarioDefaultCallback40 /* f18dfa0: 24050004 */ addiu $a1,$zero,0x4 /* f18dfa4: 02602025 */ or $a0,$s3,$zero -/* f18dfa8: 0fc354fe */ jal func0f0d53f8 +/* f18dfa8: 0fc354fe */ jal scenarioDefaultCallback40 /* f18dfac: 24050007 */ addiu $a1,$zero,0x7 /* f18dfb0: a2a20011 */ sb $v0,0x11($s5) /* f18dfb4: 02602025 */ or $a0,$s3,$zero -/* f18dfb8: 0fc354fe */ jal func0f0d53f8 +/* f18dfb8: 0fc354fe */ jal scenarioDefaultCallback40 /* f18dfbc: 24050003 */ addiu $a1,$zero,0x3 /* f18dfc0: 0fc61521 */ jal scenarioCallback04 /* f18dfc4: a2a20010 */ sb $v0,0x10($s5) -/* f18dfc8: 0fc614f4 */ jal func0f1853d0 +/* f18dfc8: 0fc614f4 */ jal scenarioCallback40 /* f18dfcc: 02602025 */ or $a0,$s3,$zero /* f18dfd0: 02602025 */ or $a0,$s3,$zero -/* f18dfd4: 0fc354fe */ jal func0f0d53f8 +/* f18dfd4: 0fc354fe */ jal scenarioDefaultCallback40 /* f18dfd8: 24050015 */ addiu $a1,$zero,0x15 /* f18dfdc: 96ae0016 */ lhu $t6,0x16($s5) /* f18dfe0: 3c11800b */ lui $s1,%hi(g_MpSimulants) @@ -7970,11 +7970,11 @@ glabel func0f18df5c .L0f18e008: /* f18e008: a2200000 */ sb $zero,0x0($s1) /* f18e00c: 02602025 */ or $a0,$s3,$zero -/* f18e010: 0fc354fe */ jal func0f0d53f8 +/* f18e010: 0fc354fe */ jal scenarioDefaultCallback40 /* f18e014: 24050005 */ addiu $a1,$zero,0x5 /* f18e018: a2220047 */ sb $v0,0x47($s1) /* f18e01c: 02602025 */ or $a0,$s3,$zero -/* f18e020: 0fc354fe */ jal func0f0d53f8 +/* f18e020: 0fc354fe */ jal scenarioDefaultCallback40 /* f18e024: 24050003 */ addiu $a1,$zero,0x3 /* f18e028: a2220048 */ sb $v0,0x48($s1) /* f18e02c: 00001825 */ or $v1,$zero,$zero @@ -7994,15 +7994,15 @@ glabel func0f18df5c /* f18e060: 03095025 */ or $t2,$t8,$t1 /* f18e064: a6aa0016 */ sh $t2,0x16($s5) .L0f18e068: -/* f18e068: 0fc354fe */ jal func0f0d53f8 +/* f18e068: 0fc354fe */ jal scenarioDefaultCallback40 /* f18e06c: 24050007 */ addiu $a1,$zero,0x7 /* f18e070: a222000f */ sb $v0,0xf($s1) /* f18e074: 02602025 */ or $a0,$s3,$zero -/* f18e078: 0fc354fe */ jal func0f0d53f8 +/* f18e078: 0fc354fe */ jal scenarioDefaultCallback40 /* f18e07c: 24050007 */ addiu $a1,$zero,0x7 /* f18e080: a2220010 */ sb $v0,0x10($s1) /* f18e084: 02602025 */ or $a0,$s3,$zero -/* f18e088: 0fc354fe */ jal func0f0d53f8 +/* f18e088: 0fc354fe */ jal scenarioDefaultCallback40 /* f18e08c: 24050003 */ addiu $a1,$zero,0x3 /* f18e090: 26520001 */ addiu $s2,$s2,0x1 /* f18e094: 2a410008 */ slti $at,$s2,0x8 @@ -8018,7 +8018,7 @@ glabel func0f18df5c /* f18e0bc: 2610cb88 */ addiu $s0,$s0,%lo(g_MpSetup) .L0f18e0c0: /* f18e0c0: 02602025 */ or $a0,$s3,$zero -/* f18e0c4: 0fc354fe */ jal func0f0d53f8 +/* f18e0c4: 0fc354fe */ jal scenarioDefaultCallback40 /* f18e0c8: 24050007 */ addiu $a1,$zero,0x7 /* f18e0cc: 26100001 */ addiu $s0,$s0,0x1 /* f18e0d0: 0211082b */ sltu $at,$s0,$s1 @@ -8027,15 +8027,15 @@ glabel func0f18df5c /* f18e0dc: 0fc6244f */ jal func0f18913c /* f18e0e0: 00000000 */ sll $zero,$zero,0x0 /* f18e0e4: 02602025 */ or $a0,$s3,$zero -/* f18e0e8: 0fc354fe */ jal func0f0d53f8 +/* f18e0e8: 0fc354fe */ jal scenarioDefaultCallback40 /* f18e0ec: 24050006 */ addiu $a1,$zero,0x6 /* f18e0f0: a2a20012 */ sb $v0,0x12($s5) /* f18e0f4: 02602025 */ or $a0,$s3,$zero -/* f18e0f8: 0fc354fe */ jal func0f0d53f8 +/* f18e0f8: 0fc354fe */ jal scenarioDefaultCallback40 /* f18e0fc: 24050007 */ addiu $a1,$zero,0x7 /* f18e100: a2a20013 */ sb $v0,0x13($s5) /* f18e104: 02602025 */ or $a0,$s3,$zero -/* f18e108: 0fc354fe */ jal func0f0d53f8 +/* f18e108: 0fc354fe */ jal scenarioDefaultCallback40 /* f18e10c: 24050009 */ addiu $a1,$zero,0x9 /* f18e110: 3c10800b */ lui $s0,%hi(g_MpChrs) /* f18e114: 3c11800b */ lui $s1,%hi(var800aca38) @@ -8044,7 +8044,7 @@ glabel func0f18df5c /* f18e120: 2610c7b8 */ addiu $s0,$s0,%lo(g_MpChrs) .L0f18e124: /* f18e124: 02602025 */ or $a0,$s3,$zero -/* f18e128: 0fc354fe */ jal func0f0d53f8 +/* f18e128: 0fc354fe */ jal scenarioDefaultCallback40 /* f18e12c: 24050003 */ addiu $a1,$zero,0x3 /* f18e130: 261000a0 */ addiu $s0,$s0,0xa0 /* f18e134: 1611fffb */ bne $s0,$s1,.L0f18e124 @@ -8234,17 +8234,17 @@ glabel func0f18e39c /* f18e3cc: 0fc35539 */ jal func0f0d54e4 /* f18e3d0: 00003025 */ or $a2,$zero,$zero /* f18e3d4: 27a40018 */ addiu $a0,$sp,0x18 -/* f18e3d8: 0fc354fe */ jal func0f0d53f8 +/* f18e3d8: 0fc354fe */ jal scenarioDefaultCallback40 /* f18e3dc: 24050004 */ addiu $a1,$zero,0x4 /* f18e3e0: 8fae0100 */ lw $t6,0x100($sp) /* f18e3e4: 27a40018 */ addiu $a0,$sp,0x18 /* f18e3e8: 24050007 */ addiu $a1,$zero,0x7 -/* f18e3ec: 0fc354fe */ jal func0f0d53f8 +/* f18e3ec: 0fc354fe */ jal scenarioDefaultCallback40 /* f18e3f0: a5c20000 */ sh $v0,0x0($t6) /* f18e3f4: 8faf0104 */ lw $t7,0x104($sp) /* f18e3f8: 27a40018 */ addiu $a0,$sp,0x18 /* f18e3fc: 24050003 */ addiu $a1,$zero,0x3 -/* f18e400: 0fc354fe */ jal func0f0d53f8 +/* f18e400: 0fc354fe */ jal scenarioDefaultCallback40 /* f18e404: a5e20000 */ sh $v0,0x0($t7) /* f18e408: 8fb80108 */ lw $t8,0x108($sp) /* f18e40c: a7020000 */ sh $v0,0x0($t8) diff --git a/src/include/game/game_0d4690.h b/src/include/game/game_0d4690.h index 755035a21..956ba623a 100644 --- a/src/include/game/game_0d4690.h +++ b/src/include/game/game_0d4690.h @@ -12,7 +12,7 @@ u32 func0f0d4c80(void); u32 func0f0d4d0c(void); void scenarioDefaultCallback44(s32 *arg0, s32 arg1, s32 arg2); u32 func0f0d5360(void); -u32 func0f0d53f8(void); +void scenarioDefaultCallback40(s32 *arg0, s32 arg1); u32 func0f0d545c(void); u32 func0f0d5484(void); u32 func0f0d54c4(void); diff --git a/src/include/game/game_176d70.h b/src/include/game/game_176d70.h index 93db755ee..9087972bb 100644 --- a/src/include/game/game_176d70.h +++ b/src/include/game/game_176d70.h @@ -107,7 +107,7 @@ u32 scenarioCaptureCallback2c(void); u32 scenarioCaptureCallback30(void); u32 scenarioCaptureCallback34(void); u32 scenarioCaptureCallback38(void); -u32 scenarioHillCallback40(void); +void scenarioHillCallback40(s32 *arg0); void scenarioHillCallback44(s32 *arg0); void scenarioHillCallback04(void); void scenarioHillCallback0c(void); @@ -144,7 +144,7 @@ u32 scenarioPopacapCallback20(u32 arg); u32 scenarioPopacapCallback24(void); u32 func0f184fb0(void); u32 func0f18500c(void); -u32 func0f1853d0(void); +void scenarioCallback40(s32 *arg0); void scenarioCallback44(s32 *arg0); void scenarioCallback04(void); s32 scenarioCallback08(void); diff --git a/src/include/types.h b/src/include/types.h index f1c1ab8d1..a0d48140e 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -4117,7 +4117,7 @@ struct mpscenario { void *unk34; void *unk38; void *unk3c; - void *unk40; + void (*unk40)(s32 *arg0); void (*unk44)(s32 *arg0); };