From 081e2c6a685ec002fe621f789fdd0fd53a954290 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 6 Jan 2020 21:45:56 +1000 Subject: [PATCH] Decompile scenarioCallback38 --- src/game/game_000920.c | 4 ++-- src/game/game_066310.c | 2 +- src/game/game_176d70.c | 30 ++++++------------------------ src/include/game/game_176d70.h | 6 +++--- src/include/types.h | 2 +- 5 files changed, 13 insertions(+), 31 deletions(-) diff --git a/src/game/game_000920.c b/src/game/game_000920.c index 49d09b795..6c58d9195 100644 --- a/src/game/game_000920.c +++ b/src/game/game_000920.c @@ -4054,7 +4054,7 @@ glabel func0f0037ac /* f004104: 27a50080 */ addiu $a1,$sp,0x80 /* f004108: 27a6007c */ addiu $a2,$sp,0x7c /* f00410c: 27a70078 */ addiu $a3,$sp,0x78 -/* f004110: 0fc6192e */ jal func0f1864b8 +/* f004110: 0fc6192e */ jal scenarioCallback38 /* f004114: afa20080 */ sw $v0,0x80($sp) /* f004118: 8fb80080 */ lw $t8,0x80($sp) /* f00411c: 8e790000 */ lw $t9,0x0($s3) @@ -4799,7 +4799,7 @@ glabel func0f004604 /* f004b7c: 27a70078 */ addiu $a3,$sp,0x78 /* f004b80: afa9003c */ sw $t1,0x3c($sp) /* f004b84: afaa0040 */ sw $t2,0x40($sp) -/* f004b88: 0fc6192e */ jal func0f1864b8 +/* f004b88: 0fc6192e */ jal scenarioCallback38 /* f004b8c: afac0074 */ sw $t4,0x74($sp) /* f004b90: 3c1f8007 */ lui $ra,0x8007 /* f004b94: 27ff0764 */ addiu $ra,$ra,0x764 diff --git a/src/game/game_066310.c b/src/game/game_066310.c index 751b233f8..c3a964e01 100644 --- a/src/game/game_066310.c +++ b/src/game/game_066310.c @@ -4851,7 +4851,7 @@ glabel func0f069144 /* f0692ac: 27a70050 */ addiu $a3,$sp,0x50 /* f0692b0: 460a8481 */ sub.s $f18,$f16,$f10 /* f0692b4: e7b2005c */ swc1 $f18,0x5c($sp) -/* f0692b8: 0fc6192e */ jal func0f1864b8 +/* f0692b8: 0fc6192e */ jal scenarioCallback38 /* f0692bc: 85c40028 */ lh $a0,0x28($t6) /* f0692c0: 920f0000 */ lbu $t7,0x0($s0) /* f0692c4: 8fb80058 */ lw $t8,0x58($sp) diff --git a/src/game/game_176d70.c b/src/game/game_176d70.c index c3078541c..12f7d1320 100644 --- a/src/game/game_176d70.c +++ b/src/game/game_176d70.c @@ -17323,30 +17323,12 @@ glabel func0f186408 /* f1864b4: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel func0f1864b8 -/* f1864b8: 3c18800b */ lui $t8,0x800b -/* f1864bc: 9318cb98 */ lbu $t8,-0x3468($t8) -/* f1864c0: 3c028008 */ lui $v0,0x8008 -/* f1864c4: 27bdffe8 */ addiu $sp,$sp,-24 -/* f1864c8: 0018c8c0 */ sll $t9,$t8,0x3 -/* f1864cc: 0338c821 */ addu $t9,$t9,$t8 -/* f1864d0: 0019c8c0 */ sll $t9,$t9,0x3 -/* f1864d4: 00591021 */ addu $v0,$v0,$t9 -/* f1864d8: 8c426fd0 */ lw $v0,0x6fd0($v0) -/* f1864dc: afa40018 */ sw $a0,0x18($sp) -/* f1864e0: 00047400 */ sll $t6,$a0,0x10 -/* f1864e4: 000e2403 */ sra $a0,$t6,0x10 -/* f1864e8: 10400003 */ beqz $v0,.L0f1864f8 -/* f1864ec: afbf0014 */ sw $ra,0x14($sp) -/* f1864f0: 0040f809 */ jalr $v0 -/* f1864f4: 00000000 */ sll $zero,$zero,0x0 -.L0f1864f8: -/* f1864f8: 8fbf0014 */ lw $ra,0x14($sp) -/* f1864fc: 27bd0018 */ addiu $sp,$sp,0x18 -/* f186500: 03e00008 */ jr $ra -/* f186504: 00000000 */ sll $zero,$zero,0x0 -); +void scenarioCallback38(s16 arg0, s32 *arg1, s32 *arg2, s32 *arg3) +{ + if (g_MpScenarios[g_MpSetup.scenario].unk38) { + g_MpScenarios[g_MpSetup.scenario].unk38(arg0, arg1, arg2, arg3); + } +} GLOBAL_ASM( glabel func0f186508 diff --git a/src/include/game/game_176d70.h b/src/include/game/game_176d70.h index 9087972bb..2e954b78a 100644 --- a/src/include/game/game_176d70.h +++ b/src/include/game/game_176d70.h @@ -106,7 +106,7 @@ u32 func0f181800(void); u32 scenarioCaptureCallback2c(void); u32 scenarioCaptureCallback30(void); u32 scenarioCaptureCallback34(void); -u32 scenarioCaptureCallback38(void); +void scenarioCaptureCallback38(s16 arg0, s32 *arg1, s32 *arg2, s32 *arg3); void scenarioHillCallback40(s32 *arg0); void scenarioHillCallback44(s32 *arg0); void scenarioHillCallback04(void); @@ -117,7 +117,7 @@ u32 scenarioHillCallback1c(void); u32 scenarioHillCallback20(void); u32 func0f182aac(void); u32 scenarioHillCallback34(void); -u32 scenarioHillCallback38(void); +void scenarioHillCallback38(s16 arg0, s32 *arg1, s32 *arg2, s32 *arg3); void scenarioHackerCallback04(void); s32 scenarioHackerCallback08(void); u32 func0f182ba4(void); @@ -160,7 +160,7 @@ u32 func0f185e20(void); u32 func0f18617c(void); u32 func0f18620c(void); u32 func0f186408(void); -u32 func0f1864b8(void); +void scenarioCallback38(s16 arg0, s32 *arg1, s32 *arg2, s32 *arg3); u32 func0f186508(void); u32 func0f1866b8(void); u32 func0f186780(void); diff --git a/src/include/types.h b/src/include/types.h index a0d48140e..bc0c47f67 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -4115,7 +4115,7 @@ struct mpscenario { void *unk2c; void *unk30; void *unk34; - void *unk38; + void (*unk38)(s16 arg0, s32 *arg1, s32 *arg2, s32 *arg3); void *unk3c; void (*unk40)(s32 *arg0); void (*unk44)(s32 *arg0);