From 10940a285bf2861a6fbdf9099b8b796ed626e243 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 7 Sep 2021 18:02:09 +1000 Subject: [PATCH] Decompile func0f0d5484 --- src/game/game_0d4690.c | 39 +++++-------- src/game/game_110680.c | 14 ++--- src/game/gamefile.c | 78 ++++++++++++------------- src/game/mplayer/mplayer.c | 86 ++++++++++++++-------------- src/game/mplayer/scenarios.c | 10 ++-- src/include/game/game_0d4690.h | 6 +- src/include/game/mplayer/scenarios.h | 17 +----- src/include/types.h | 7 ++- 8 files changed, 119 insertions(+), 138 deletions(-) diff --git a/src/game/game_0d4690.c b/src/game/game_0d4690.c index f9bd0543b..4265cd68f 100644 --- a/src/game/game_0d4690.c +++ b/src/game/game_0d4690.c @@ -1119,7 +1119,7 @@ glabel func0f0d5360 #endif GLOBAL_ASM( -glabel savefileGetInteger +glabel savebufferGetInteger /* f0d53f8: 24ae001f */ addiu $t6,$a1,0x1f /* f0d53fc: 240f0001 */ addiu $t7,$zero,0x1 /* f0d5400: 01cf1004 */ sllv $v0,$t7,$t6 @@ -1165,27 +1165,16 @@ glabel func0f0d545c /* f0d5480: 00000000 */ nop ); -GLOBAL_ASM( -glabel func0f0d5484 -/* f0d5484: afa60008 */ sw $a2,0x8($sp) -/* f0d5488: 30c300ff */ andi $v1,$a2,0xff -/* f0d548c: 00a03825 */ or $a3,$a1,$zero -/* f0d5490: ac800000 */ sw $zero,0x0($a0) -/* f0d5494: 18600009 */ blez $v1,.L0f0d54bc -/* f0d5498: 00001025 */ or $v0,$zero,$zero -/* f0d549c: 00802825 */ or $a1,$a0,$zero -/* f0d54a0: 00e03025 */ or $a2,$a3,$zero -.L0f0d54a4: -/* f0d54a4: 90cf0000 */ lbu $t7,0x0($a2) -/* f0d54a8: 24420001 */ addiu $v0,$v0,0x1 -/* f0d54ac: 24a50001 */ addiu $a1,$a1,0x1 -/* f0d54b0: 24c60001 */ addiu $a2,$a2,0x1 -/* f0d54b4: 1443fffb */ bne $v0,$v1,.L0f0d54a4 -/* f0d54b8: a0af0003 */ sb $t7,0x3($a1) -.L0f0d54bc: -/* f0d54bc: 03e00008 */ jr $ra -/* f0d54c0: 00000000 */ nop -); +void func0f0d5484(struct savebuffer *buffer, u8 *data, u8 len) +{ + s32 i; + + buffer->word = 0; + + for (i = 0; i < len; i++) { + buffer->bytes[i] = data[i]; + } +} GLOBAL_ASM( glabel func0f0d54c4 @@ -1219,7 +1208,7 @@ glabel func0f0d54e4 /* f0d551c: 2414000a */ addiu $s4,$zero,0xa /* f0d5520: 02602025 */ or $a0,$s3,$zero .L0f0d5524: -/* f0d5524: 0fc354fe */ jal savefileGetInteger +/* f0d5524: 0fc354fe */ jal savebufferGetInteger /* f0d5528: 24050008 */ addiu $a1,$zero,0x8 /* f0d552c: 56200008 */ bnezl $s1,.L0f0d5550 /* f0d5530: 26100001 */ addiu $s0,$s0,0x1 @@ -1417,12 +1406,12 @@ glabel func0f0d579c /* f0d57a0: afbf0014 */ sw $ra,0x14($sp) /* f0d57a4: afa5001c */ sw $a1,0x1c($sp) /* f0d57a8: afa40018 */ sw $a0,0x18($sp) -/* f0d57ac: 0fc354fe */ jal savefileGetInteger +/* f0d57ac: 0fc354fe */ jal savebufferGetInteger /* 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 savefileGetInteger +/* f0d57c0: 0fc354fe */ jal savebufferGetInteger /* f0d57c4: 8fa40018 */ lw $a0,0x18($sp) /* f0d57c8: 8faf001c */ lw $t7,0x1c($sp) /* f0d57cc: a5e20004 */ sh $v0,0x4($t7) diff --git a/src/game/game_110680.c b/src/game/game_110680.c index ef3ac1ea2..49b97f6bb 100644 --- a/src/game/game_110680.c +++ b/src/game/game_110680.c @@ -235,12 +235,12 @@ glabel func0f11080c /* f110894: 02402025 */ or $a0,$s2,$zero /* f110898: 24050001 */ addiu $a1,$zero,0x1 /* f11089c: ae39047c */ sw $t9,0x47c($s1) -/* f1108a0: 0fc354fe */ jal savefileGetInteger +/* f1108a0: 0fc354fe */ jal savebufferGetInteger /* f1108a4: a6280480 */ sh $t0,0x480($s1) /* f1108a8: 3c01800b */ lui $at,%hi(g_MpSetup+0x89) /* f1108ac: a022cc11 */ sb $v0,%lo(g_MpSetup+0x89)($at) /* f1108b0: 02402025 */ or $a0,$s2,$zero -/* f1108b4: 0fc354fe */ jal savefileGetInteger +/* f1108b4: 0fc354fe */ jal savebufferGetInteger /* f1108b8: 24050004 */ addiu $a1,$zero,0x4 /* f1108bc: a6220482 */ sh $v0,0x482($s1) /* f1108c0: 3c11800b */ lui $s1,%hi(g_MpSetup+0x88) @@ -257,7 +257,7 @@ glabel func0f11080c /* f1108e8: 5420fffa */ bnezl $at,.L0f1108d4 /* f1108ec: 02402025 */ or $a0,$s2,$zero /* f1108f0: 02402025 */ or $a0,$s2,$zero -/* f1108f4: 0fc354fe */ jal savefileGetInteger +/* f1108f4: 0fc354fe */ jal savebufferGetInteger /* f1108f8: 24050008 */ addiu $a1,$zero,0x8 /* f1108fc: 304300ff */ andi $v1,$v0,0xff /* f110900: 240100ff */ addiu $at,$zero,0xff @@ -276,23 +276,23 @@ glabel func0f11080c /* f11092c: 2610cbb0 */ addiu $s0,$s0,%lo(g_MpSetup+0x28) .L0f110930: /* f110930: 02402025 */ or $a0,$s2,$zero -/* f110934: 0fc354fe */ jal savefileGetInteger +/* f110934: 0fc354fe */ jal savebufferGetInteger /* 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 savefileGetInteger +/* f11094c: 0fc354fe */ jal savebufferGetInteger /* f110950: 24050001 */ addiu $a1,$zero,0x1 /* f110954: 3c01800b */ lui $at,%hi(g_MpSetup+0x8a) /* f110958: a022cc12 */ sb $v0,%lo(g_MpSetup+0x8a)($at) /* f11095c: 02402025 */ or $a0,$s2,$zero -/* f110960: 0fc354fe */ jal savefileGetInteger +/* f110960: 0fc354fe */ jal savebufferGetInteger /* f110964: 24050001 */ addiu $a1,$zero,0x1 /* f110968: 3c01800a */ lui $at,%hi(var800a2328+0x3) /* f11096c: a022232b */ sb $v0,%lo(var800a2328+0x3)($at) /* f110970: 02402025 */ or $a0,$s2,$zero -/* f110974: 0fc354fe */ jal savefileGetInteger +/* f110974: 0fc354fe */ jal savebufferGetInteger /* f110978: 24050001 */ addiu $a1,$zero,0x1 /* f11097c: 3c01800a */ lui $at,%hi(g_AltTitle) /* f110980: a022232c */ sb $v0,%lo(g_AltTitle)($at) diff --git a/src/game/gamefile.c b/src/game/gamefile.c index 12f4d94f6..b2381ba33 100644 --- a/src/game/gamefile.c +++ b/src/game/gamefile.c @@ -967,7 +967,7 @@ glabel func0f10fac8 /* f10fb80: 0fc35539 */ jal func0f0d54e4 /* f10fb84: 00003025 */ or $a2,$zero,$zero /* f10fb88: 02802025 */ or $a0,$s4,$zero -/* f10fb8c: 0fc354fe */ jal savefileGetInteger +/* f10fb8c: 0fc354fe */ jal savebufferGetInteger /* f10fb90: 24050005 */ addiu $a1,$zero,0x5 /* f10fb94: 3c03800a */ lui $v1,%hi(g_SoloSaveFile) /* f10fb98: 24632200 */ addiu $v1,$v1,%lo(g_SoloSaveFile) @@ -977,12 +977,12 @@ glabel func0f10fac8 /* f10fba8: 314bff07 */ andi $t3,$t2,0xff07 /* f10fbac: 012b6025 */ or $t4,$t1,$t3 /* f10fbb0: a06c000b */ sb $t4,0xb($v1) -/* f10fbb4: 0fc354fe */ jal savefileGetInteger +/* f10fbb4: 0fc354fe */ jal savebufferGetInteger /* f10fbb8: 24050020 */ addiu $a1,$zero,0x20 /* f10fbbc: 3c01800a */ lui $at,%hi(g_SoloSaveFile+0x10) /* f10fbc0: ac222210 */ sw $v0,%lo(g_SoloSaveFile+0x10)($at) /* f10fbc4: 02802025 */ or $a0,$s4,$zero -/* f10fbc8: 0fc354fe */ jal savefileGetInteger +/* f10fbc8: 0fc354fe */ jal savebufferGetInteger /* f10fbcc: 24050002 */ addiu $a1,$zero,0x2 /* f10fbd0: 3c03800a */ lui $v1,%hi(g_SoloSaveFile) /* f10fbd4: 24632200 */ addiu $v1,$v1,%lo(g_SoloSaveFile) @@ -992,12 +992,12 @@ glabel func0f10fac8 /* f10fbe4: 31f8fff8 */ andi $t8,$t7,0xfff8 /* f10fbe8: 01d8c825 */ or $t9,$t6,$t8 /* f10fbec: a079000b */ sb $t9,0xb($v1) -/* f10fbf0: 0fc354fe */ jal savefileGetInteger +/* f10fbf0: 0fc354fe */ jal savebufferGetInteger /* f10fbf4: 24050005 */ addiu $a1,$zero,0x5 /* f10fbf8: 3c01800a */ lui $at,%hi(g_SoloSaveFile+0xc) /* f10fbfc: a022220c */ sb $v0,%lo(g_SoloSaveFile+0xc)($at) /* f10fc00: 02802025 */ or $a0,$s4,$zero -/* f10fc04: 0fc354fe */ jal savefileGetInteger +/* f10fc04: 0fc354fe */ jal savebufferGetInteger /* f10fc08: 24050006 */ addiu $a1,$zero,0x6 /* f10fc0c: 00022880 */ sll $a1,$v0,0x2 /* f10fc10: 2ca100fc */ sltiu $at,$a1,0xfc @@ -1010,7 +1010,7 @@ glabel func0f10fac8 /* f10fc28: 0c003a87 */ jal sndSetSfxVolume /* f10fc2c: 3104ffff */ andi $a0,$t0,0xffff /* f10fc30: 02802025 */ or $a0,$s4,$zero -/* f10fc34: 0fc354fe */ jal savefileGetInteger +/* f10fc34: 0fc354fe */ jal savebufferGetInteger /* f10fc38: 24050006 */ addiu $a1,$zero,0x6 /* f10fc3c: 00022880 */ sll $a1,$v0,0x2 /* f10fc40: 2ca100fc */ sltiu $at,$a1,0xfc @@ -1023,18 +1023,18 @@ glabel func0f10fac8 /* f10fc58: 0fc54bdc */ jal optionsSetMusicVolume /* f10fc5c: 3124ffff */ andi $a0,$t1,0xffff /* f10fc60: 02802025 */ or $a0,$s4,$zero -/* f10fc64: 0fc354fe */ jal savefileGetInteger +/* f10fc64: 0fc354fe */ jal savebufferGetInteger /* f10fc68: 24050002 */ addiu $a1,$zero,0x2 /* f10fc6c: 0c003ce3 */ jal sndSetSoundMode /* f10fc70: 00402025 */ or $a0,$v0,$zero /* f10fc74: 02802025 */ or $a0,$s4,$zero -/* f10fc78: 0fc354fe */ jal savefileGetInteger +/* f10fc78: 0fc354fe */ jal savebufferGetInteger /* 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 savefileGetInteger +/* f10fc90: 0fc354fe */ jal savebufferGetInteger /* f10fc94: 24050003 */ addiu $a1,$zero,0x3 /* f10fc98: 02402025 */ or $a0,$s2,$zero /* f10fc9c: 0fc549cb */ jal optionsSetControlMode @@ -1045,14 +1045,14 @@ glabel func0f10fac8 /* f10fcb0: 26102200 */ addiu $s0,$s0,%lo(g_SoloSaveFile) .L0f10fcb4: /* f10fcb4: 02802025 */ or $a0,$s4,$zero -/* f10fcb8: 0fc354fe */ jal savefileGetInteger +/* f10fcb8: 0fc354fe */ jal savebufferGetInteger /* 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 savefileGetInteger +/* f10fcd4: 0fc354fe */ jal savebufferGetInteger /* f10fcd8: 24050010 */ addiu $a1,$zero,0x10 /* f10fcdc: 3c01800a */ lui $at,%hi(g_SoloSaveFile+0x1e) /* f10fce0: 3c13800a */ lui $s3,%hi(g_SoloSaveFile) @@ -1064,7 +1064,7 @@ glabel func0f10fac8 /* f10fcf4: 02608825 */ or $s1,$s3,$zero .L0f10fcf8: /* f10fcf8: 02802025 */ or $a0,$s4,$zero -/* f10fcfc: 0fc354fe */ jal savefileGetInteger +/* f10fcfc: 0fc354fe */ jal savebufferGetInteger /* f10fd00: 2405000c */ addiu $a1,$zero,0xc /* f10fd04: 26100001 */ addiu $s0,$s0,0x1 /* f10fd08: 26310002 */ addiu $s1,$s1,0x2 @@ -1082,7 +1082,7 @@ glabel func0f10fac8 .L0f10fd38: /* f10fd38: 02802025 */ or $a0,$s4,$zero .L0f10fd3c: -/* f10fd3c: 0fc354fe */ jal savefileGetInteger +/* f10fd3c: 0fc354fe */ jal savebufferGetInteger /* f10fd40: 24050001 */ addiu $a1,$zero,0x1 /* f10fd44: 02202025 */ or $a0,$s1,$zero /* f10fd48: 02002825 */ or $a1,$s0,$zero @@ -1103,7 +1103,7 @@ glabel func0f10fac8 /* f10fd84: 26102200 */ addiu $s0,$s0,%lo(g_SoloSaveFile) .L0f10fd88: /* f10fd88: 02802025 */ or $a0,$s4,$zero -/* f10fd8c: 0fc354fe */ jal savefileGetInteger +/* f10fd8c: 0fc354fe */ jal savebufferGetInteger /* f10fd90: 24050015 */ addiu $a1,$zero,0x15 /* f10fd94: 26100004 */ addiu $s0,$s0,0x4 /* f10fd98: 0211082b */ sltu $at,$s0,$s1 @@ -1121,7 +1121,7 @@ glabel func0f10fac8 /* f10fdc4: 10000001 */ b .L0f10fdcc /* f10fdc8: 24050002 */ addiu $a1,$zero,0x2 .L0f10fdcc: -/* f10fdcc: 0fc354fe */ jal savefileGetInteger +/* f10fdcc: 0fc354fe */ jal savebufferGetInteger /* f10fdd0: 02802025 */ or $a0,$s4,$zero /* f10fdd4: 26100001 */ addiu $s0,$s0,0x1 /* f10fdd8: 0212082b */ sltu $at,$s0,$s2 @@ -1133,7 +1133,7 @@ glabel func0f10fac8 /* f10fdf0: 26102200 */ addiu $s0,$s0,%lo(g_SoloSaveFile) .L0f10fdf4: /* f10fdf4: 02802025 */ or $a0,$s4,$zero -/* f10fdf8: 0fc354fe */ jal savefileGetInteger +/* f10fdf8: 0fc354fe */ jal savebufferGetInteger /* f10fdfc: 24050008 */ addiu $a1,$zero,0x8 /* f10fe00: 26100001 */ addiu $s0,$s0,0x1 /* f10fe04: 1611fffb */ bne $s0,$s1,.L0f10fdf4 @@ -1240,7 +1240,7 @@ glabel func0f10fac8 /* f10a0b0: 0fc34af3 */ jal func0f0d54e4 /* f10a0b4: 00003025 */ or $a2,$zero,$zero /* f10a0b8: 02602025 */ or $a0,$s3,$zero -/* f10a0bc: 0fc34ab8 */ jal savefileGetInteger +/* f10a0bc: 0fc34ab8 */ jal savebufferGetInteger /* f10a0c0: 24050005 */ addiu $a1,$zero,0x5 /* f10a0c4: 3c03800a */ lui $v1,0x800a /* f10a0c8: 246366f0 */ addiu $v1,$v1,0x66f0 @@ -1250,12 +1250,12 @@ glabel func0f10fac8 /* f10a0d8: 314bff07 */ andi $t3,$t2,0xff07 /* f10a0dc: 012b6025 */ or $t4,$t1,$t3 /* f10a0e0: a06c000b */ sb $t4,0xb($v1) -/* f10a0e4: 0fc34ab8 */ jal savefileGetInteger +/* f10a0e4: 0fc34ab8 */ jal savebufferGetInteger /* f10a0e8: 24050020 */ addiu $a1,$zero,0x20 /* f10a0ec: 3c01800a */ lui $at,0x800a /* f10a0f0: ac226700 */ sw $v0,0x6700($at) /* f10a0f4: 02602025 */ or $a0,$s3,$zero -/* f10a0f8: 0fc34ab8 */ jal savefileGetInteger +/* f10a0f8: 0fc34ab8 */ jal savebufferGetInteger /* f10a0fc: 24050002 */ addiu $a1,$zero,0x2 /* f10a100: 3c03800a */ lui $v1,0x800a /* f10a104: 246366f0 */ addiu $v1,$v1,0x66f0 @@ -1265,12 +1265,12 @@ glabel func0f10fac8 /* f10a114: 31f8fff8 */ andi $t8,$t7,0xfff8 /* f10a118: 01d8c825 */ or $t9,$t6,$t8 /* f10a11c: a079000b */ sb $t9,0xb($v1) -/* f10a120: 0fc34ab8 */ jal savefileGetInteger +/* f10a120: 0fc34ab8 */ jal savebufferGetInteger /* f10a124: 24050005 */ addiu $a1,$zero,0x5 /* f10a128: 3c01800a */ lui $at,0x800a /* f10a12c: a02266fc */ sb $v0,0x66fc($at) /* f10a130: 02602025 */ or $a0,$s3,$zero -/* f10a134: 0fc34ab8 */ jal savefileGetInteger +/* f10a134: 0fc34ab8 */ jal savebufferGetInteger /* f10a138: 24050006 */ addiu $a1,$zero,0x6 /* f10a13c: 00022880 */ sll $a1,$v0,0x2 /* f10a140: 2ca100fc */ sltiu $at,$a1,0xfc @@ -1283,7 +1283,7 @@ glabel func0f10fac8 /* f10a158: 0c003c77 */ jal sndSetSfxVolume /* f10a15c: 3104ffff */ andi $a0,$t0,0xffff /* f10a160: 02602025 */ or $a0,$s3,$zero -/* f10a164: 0fc34ab8 */ jal savefileGetInteger +/* f10a164: 0fc34ab8 */ jal savebufferGetInteger /* f10a168: 24050006 */ addiu $a1,$zero,0x6 /* f10a16c: 00022880 */ sll $a1,$v0,0x2 /* f10a170: 2ca100fc */ sltiu $at,$a1,0xfc @@ -1296,18 +1296,18 @@ glabel func0f10fac8 /* f10a188: 0fc5359a */ jal optionsSetMusicVolume /* f10a18c: 3124ffff */ andi $a0,$t1,0xffff /* f10a190: 02602025 */ or $a0,$s3,$zero -/* f10a194: 0fc34ab8 */ jal savefileGetInteger +/* f10a194: 0fc34ab8 */ jal savebufferGetInteger /* f10a198: 24050002 */ addiu $a1,$zero,0x2 /* f10a19c: 0c003e02 */ jal sndSetSoundMode /* f10a1a0: 00402025 */ or $a0,$v0,$zero /* f10a1a4: 02602025 */ or $a0,$s3,$zero -/* f10a1a8: 0fc34ab8 */ jal savefileGetInteger +/* f10a1a8: 0fc34ab8 */ jal savebufferGetInteger /* f10a1ac: 24050003 */ addiu $a1,$zero,0x3 /* f10a1b0: 02202025 */ or $a0,$s1,$zero /* f10a1b4: 0fc53387 */ jal optionsSetControlMode /* f10a1b8: 00402825 */ or $a1,$v0,$zero /* f10a1bc: 02602025 */ or $a0,$s3,$zero -/* f10a1c0: 0fc34ab8 */ jal savefileGetInteger +/* f10a1c0: 0fc34ab8 */ jal savebufferGetInteger /* f10a1c4: 24050003 */ addiu $a1,$zero,0x3 /* f10a1c8: 02402025 */ or $a0,$s2,$zero /* f10a1cc: 0fc53387 */ jal optionsSetControlMode @@ -1318,14 +1318,14 @@ glabel func0f10fac8 /* f10a1e0: 261066f0 */ addiu $s0,$s0,0x66f0 .NB0f10a1e4: /* f10a1e4: 02602025 */ or $a0,$s3,$zero -/* f10a1e8: 0fc34ab8 */ jal savefileGetInteger +/* f10a1e8: 0fc34ab8 */ jal savebufferGetInteger /* f10a1ec: 24050008 */ addiu $a1,$zero,0x8 /* f10a1f0: 26100001 */ addiu $s0,$s0,0x1 /* f10a1f4: 0211082b */ sltu $at,$s0,$s1 /* f10a1f8: 1420fffa */ bnez $at,.NB0f10a1e4 /* f10a1fc: a2020013 */ sb $v0,0x13($s0) /* f10a200: 02602025 */ or $a0,$s3,$zero -/* f10a204: 0fc34ab8 */ jal savefileGetInteger +/* f10a204: 0fc34ab8 */ jal savebufferGetInteger /* f10a208: 24050010 */ addiu $a1,$zero,0x10 /* f10a20c: 3c01800a */ lui $at,0x800a /* f10a210: 3c14800a */ lui $s4,0x800a @@ -1337,7 +1337,7 @@ glabel func0f10fac8 /* f10a224: 02808825 */ or $s1,$s4,$zero .NB0f10a228: /* f10a228: 02602025 */ or $a0,$s3,$zero -/* f10a22c: 0fc34ab8 */ jal savefileGetInteger +/* f10a22c: 0fc34ab8 */ jal savebufferGetInteger /* f10a230: 2405000c */ addiu $a1,$zero,0xc /* f10a234: 26100001 */ addiu $s0,$s0,0x1 /* f10a238: 26310002 */ addiu $s1,$s1,0x2 @@ -1355,7 +1355,7 @@ glabel func0f10fac8 .NB0f10a268: /* f10a268: 02602025 */ or $a0,$s3,$zero .NB0f10a26c: -/* f10a26c: 0fc34ab8 */ jal savefileGetInteger +/* f10a26c: 0fc34ab8 */ jal savebufferGetInteger /* f10a270: 24050001 */ addiu $a1,$zero,0x1 /* f10a274: 02202025 */ or $a0,$s1,$zero /* f10a278: 02002825 */ or $a1,$s0,$zero @@ -1376,7 +1376,7 @@ glabel func0f10fac8 /* f10a2b4: 261066f0 */ addiu $s0,$s0,0x66f0 .NB0f10a2b8: /* f10a2b8: 02602025 */ or $a0,$s3,$zero -/* f10a2bc: 0fc34ab8 */ jal savefileGetInteger +/* f10a2bc: 0fc34ab8 */ jal savebufferGetInteger /* f10a2c0: 24050015 */ addiu $a1,$zero,0x15 /* f10a2c4: 26100004 */ addiu $s0,$s0,0x4 /* f10a2c8: 0211082b */ sltu $at,$s0,$s1 @@ -1394,7 +1394,7 @@ glabel func0f10fac8 /* f10a2f4: 10000001 */ beqz $zero,.NB0f10a2fc /* f10a2f8: 24050002 */ addiu $a1,$zero,0x2 .NB0f10a2fc: -/* f10a2fc: 0fc34ab8 */ jal savefileGetInteger +/* f10a2fc: 0fc34ab8 */ jal savebufferGetInteger /* f10a300: 02602025 */ or $a0,$s3,$zero /* f10a304: 26100001 */ addiu $s0,$s0,0x1 /* f10a308: 0212082b */ sltu $at,$s0,$s2 @@ -1406,7 +1406,7 @@ glabel func0f10fac8 /* f10a320: 261066f0 */ addiu $s0,$s0,0x66f0 .NB0f10a324: /* f10a324: 02602025 */ or $a0,$s3,$zero -/* f10a328: 0fc34ab8 */ jal savefileGetInteger +/* f10a328: 0fc34ab8 */ jal savebufferGetInteger /* f10a32c: 24050008 */ addiu $a1,$zero,0x8 /* f10a330: 26100001 */ addiu $s0,$s0,0x1 /* f10a334: 1611fffb */ bne $s0,$s1,.NB0f10a324 @@ -2901,18 +2901,18 @@ glabel func0f10feac void savefileGetOverview(char *arg0, char *name, u8 *stage, u8 *difficulty, u32 *time) { - s32 sp18[56]; + struct savebuffer buffer; - func0f0d5484(sp18, arg0, 0xf); - func0f0d54e4(sp18, name, 0); + func0f0d5484(&buffer, arg0, 15); + func0f0d54e4(&buffer, name, 0); - *stage = savefileGetInteger(sp18, 5); + *stage = savebufferGetInteger(&buffer, 5); #if VERSION >= VERSION_NTSC_1_0 - *time = savefileGetInteger(sp18, 0x20); + *time = savebufferGetInteger(&buffer, 0x20); #else - *time = (u16) savefileGetInteger(sp18, 0x20); + *time = (u16) savebufferGetInteger(&buffer, 0x20); #endif - *difficulty = savefileGetInteger(sp18, 2); + *difficulty = savebufferGetInteger(&buffer, 2); } diff --git a/src/game/mplayer/mplayer.c b/src/game/mplayer/mplayer.c index c9e2bdac2..48cafe230 100644 --- a/src/game/mplayer/mplayer.c +++ b/src/game/mplayer/mplayer.c @@ -8580,7 +8580,7 @@ glabel func0f18d1b8 /* f18d1fc: 02002825 */ or $a1,$s0,$zero /* f18d200: 24050008 */ addiu $a1,$zero,0x8 .L0f18d204: -/* f18d204: 0fc354fe */ jal savefileGetInteger +/* f18d204: 0fc354fe */ jal savebufferGetInteger /* f18d208: 02402025 */ or $a0,$s2,$zero /* f18d20c: 2610fff8 */ addiu $s0,$s0,-8 /* f18d210: a2220097 */ sb $v0,0x97($s1) @@ -8657,16 +8657,16 @@ glabel func0f18d2b8 /* f18d304: 0fc35539 */ jal func0f0d54e4 /* f18d308: 24060001 */ addiu $a2,$zero,0x1 /* f18d30c: 02602025 */ or $a0,$s3,$zero -/* f18d310: 0fc354fe */ jal savefileGetInteger +/* f18d310: 0fc354fe */ jal savebufferGetInteger /* 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 savefileGetInteger +/* f18d324: 0fc354fe */ jal savebufferGetInteger /* f18d328: 24050007 */ addiu $a1,$zero,0x7 /* f18d32c: a2a2000f */ sb $v0,0xf($s5) /* f18d330: 02602025 */ or $a0,$s3,$zero -/* f18d334: 0fc354fe */ jal savefileGetInteger +/* f18d334: 0fc354fe */ jal savebufferGetInteger /* f18d338: 24050007 */ addiu $a1,$zero,0x7 /* f18d33c: a2a20010 */ sb $v0,0x10($s5) /* f18d340: 02602025 */ or $a0,$s3,$zero @@ -8718,10 +8718,10 @@ glabel func0f18d2b8 /* f18d3f4: a2a0000f */ sb $zero,0xf($s5) .L0f18d3f8: /* f18d3f8: 02602025 */ or $a0,$s3,$zero -/* f18d3fc: 0fc354fe */ jal savefileGetInteger +/* f18d3fc: 0fc354fe */ jal savebufferGetInteger /* f18d400: 24050007 */ addiu $a1,$zero,0x7 /* f18d404: 02602025 */ or $a0,$s3,$zero -/* f18d408: 0fc354fe */ jal savefileGetInteger +/* f18d408: 0fc354fe */ jal savebufferGetInteger /* f18d40c: 24050007 */ addiu $a1,$zero,0x7 /* f18d410: 02602025 */ or $a0,$s3,$zero /* f18d414: 0fc355e7 */ jal func0f0d579c @@ -8729,75 +8729,75 @@ glabel func0f18d2b8 .L0f18d41c: /* f18d41c: 02602025 */ or $a0,$s3,$zero .L0f18d420: -/* f18d420: 0fc354fe */ jal savefileGetInteger +/* f18d420: 0fc354fe */ jal savebufferGetInteger /* f18d424: 24050008 */ addiu $a1,$zero,0x8 /* f18d428: aea20014 */ sw $v0,0x14($s5) /* f18d42c: 02602025 */ or $a0,$s3,$zero -/* f18d430: 0fc354fe */ jal savefileGetInteger +/* f18d430: 0fc354fe */ jal savebufferGetInteger /* f18d434: 24050014 */ addiu $a1,$zero,0x14 /* f18d438: aea20054 */ sw $v0,0x54($s5) /* f18d43c: 02602025 */ or $a0,$s3,$zero -/* f18d440: 0fc354fe */ jal savefileGetInteger +/* f18d440: 0fc354fe */ jal savebufferGetInteger /* f18d444: 24050014 */ addiu $a1,$zero,0x14 /* f18d448: aea20058 */ sw $v0,0x58($s5) /* f18d44c: 02602025 */ or $a0,$s3,$zero -/* f18d450: 0fc354fe */ jal savefileGetInteger +/* f18d450: 0fc354fe */ jal savebufferGetInteger /* f18d454: 24050013 */ addiu $a1,$zero,0x13 /* f18d458: aea2005c */ sw $v0,0x5c($s5) /* f18d45c: 02602025 */ or $a0,$s3,$zero -/* f18d460: 0fc354fe */ jal savefileGetInteger +/* f18d460: 0fc354fe */ jal savebufferGetInteger /* f18d464: 24050013 */ addiu $a1,$zero,0x13 /* f18d468: aea20060 */ sw $v0,0x60($s5) /* f18d46c: 02602025 */ or $a0,$s3,$zero -/* f18d470: 0fc354fe */ jal savefileGetInteger +/* f18d470: 0fc354fe */ jal savebufferGetInteger /* f18d474: 24050013 */ addiu $a1,$zero,0x13 /* f18d478: aea20064 */ sw $v0,0x64($s5) /* f18d47c: 02602025 */ or $a0,$s3,$zero -/* f18d480: 0fc354fe */ jal savefileGetInteger +/* f18d480: 0fc354fe */ jal savebufferGetInteger /* f18d484: 24050019 */ addiu $a1,$zero,0x19 /* f18d488: aea2006c */ sw $v0,0x6c($s5) /* f18d48c: 02602025 */ or $a0,$s3,$zero -/* f18d490: 0fc354fe */ jal savefileGetInteger +/* f18d490: 0fc354fe */ jal savebufferGetInteger /* f18d494: 2405000a */ addiu $a1,$zero,0xa /* f18d498: aea20070 */ sw $v0,0x70($s5) /* f18d49c: 02602025 */ or $a0,$s3,$zero -/* f18d4a0: 0fc354fe */ jal savefileGetInteger +/* f18d4a0: 0fc354fe */ jal savebufferGetInteger /* f18d4a4: 2405001a */ addiu $a1,$zero,0x1a /* f18d4a8: aea20074 */ sw $v0,0x74($s5) /* f18d4ac: 02602025 */ or $a0,$s3,$zero -/* f18d4b0: 0fc354fe */ jal savefileGetInteger +/* f18d4b0: 0fc354fe */ jal savebufferGetInteger /* f18d4b4: 2405001a */ addiu $a1,$zero,0x1a /* f18d4b8: aea20078 */ sw $v0,0x78($s5) /* f18d4bc: 02602025 */ or $a0,$s3,$zero -/* f18d4c0: 0fc354fe */ jal savefileGetInteger +/* f18d4c0: 0fc354fe */ jal savebufferGetInteger /* f18d4c4: 24050014 */ addiu $a1,$zero,0x14 /* f18d4c8: aea2007c */ sw $v0,0x7c($s5) /* f18d4cc: 02602025 */ or $a0,$s3,$zero -/* f18d4d0: 0fc354fe */ jal savefileGetInteger +/* f18d4d0: 0fc354fe */ jal savebufferGetInteger /* f18d4d4: 2405001e */ addiu $a1,$zero,0x1e /* f18d4d8: aea20080 */ sw $v0,0x80($s5) /* f18d4dc: 02602025 */ or $a0,$s3,$zero -/* f18d4e0: 0fc354fe */ jal savefileGetInteger +/* f18d4e0: 0fc354fe */ jal savebufferGetInteger /* f18d4e4: 24050012 */ addiu $a1,$zero,0x12 /* f18d4e8: aea20084 */ sw $v0,0x84($s5) /* f18d4ec: 02602025 */ or $a0,$s3,$zero -/* f18d4f0: 0fc354fe */ jal savefileGetInteger +/* f18d4f0: 0fc354fe */ jal savebufferGetInteger /* f18d4f4: 24050012 */ addiu $a1,$zero,0x12 /* f18d4f8: aea20088 */ sw $v0,0x88($s5) /* f18d4fc: 02602025 */ or $a0,$s3,$zero -/* f18d500: 0fc354fe */ jal savefileGetInteger +/* f18d500: 0fc354fe */ jal savebufferGetInteger /* f18d504: 24050012 */ addiu $a1,$zero,0x12 /* f18d508: aea2008c */ sw $v0,0x8c($s5) /* f18d50c: 02602025 */ or $a0,$s3,$zero -/* f18d510: 0fc354fe */ jal savefileGetInteger +/* f18d510: 0fc354fe */ jal savebufferGetInteger /* f18d514: 24050010 */ addiu $a1,$zero,0x10 /* f18d518: aea20090 */ sw $v0,0x90($s5) /* f18d51c: 02602025 */ or $a0,$s3,$zero -/* f18d520: 0fc354fe */ jal savefileGetInteger +/* f18d520: 0fc354fe */ jal savebufferGetInteger /* f18d524: 24050002 */ addiu $a1,$zero,0x2 /* f18d528: a2a20044 */ sb $v0,0x44($s5) /* f18d52c: 02602025 */ or $a0,$s3,$zero -/* f18d530: 0fc354fe */ jal savefileGetInteger +/* f18d530: 0fc354fe */ jal savebufferGetInteger /* f18d534: 2405000c */ addiu $a1,$zero,0xc /* f18d538: a6a20048 */ sh $v0,0x48($s5) /* f18d53c: 00008825 */ or $s1,$zero,$zero @@ -8806,7 +8806,7 @@ glabel func0f18d2b8 .L0f18d548: /* f18d548: 02602025 */ or $a0,$s3,$zero .L0f18d54c: -/* f18d54c: 0fc354fe */ jal savefileGetInteger +/* f18d54c: 0fc354fe */ jal savebufferGetInteger /* f18d550: 24050001 */ addiu $a1,$zero,0x1 /* f18d554: 02802025 */ or $a0,$s4,$zero /* f18d558: 02202825 */ or $a1,$s1,$zero @@ -9126,7 +9126,7 @@ glabel func0f18d9a4 /* f18d9d0: 0fc35539 */ jal func0f0d54e4 /* f18d9d4: 00003025 */ or $a2,$zero,$zero /* f18d9d8: 27a40018 */ addiu $a0,$sp,0x18 -/* f18d9dc: 0fc354fe */ jal savefileGetInteger +/* f18d9dc: 0fc354fe */ jal savebufferGetInteger /* f18d9e0: 2405001c */ addiu $a1,$zero,0x1c /* f18d9e4: 8fae0100 */ lw $t6,0x100($sp) /* f18d9e8: adc20000 */ sw $v0,0x0($t6) @@ -9777,21 +9777,21 @@ glabel func0f18df5c /* f18df90: 0fc35539 */ jal func0f0d54e4 /* f18df94: 00003025 */ or $a2,$zero,$zero /* f18df98: 02602025 */ or $a0,$s3,$zero -/* f18df9c: 0fc354fe */ jal savefileGetInteger +/* f18df9c: 0fc354fe */ jal savebufferGetInteger /* f18dfa0: 24050004 */ addiu $a1,$zero,0x4 /* f18dfa4: 02602025 */ or $a0,$s3,$zero -/* f18dfa8: 0fc354fe */ jal savefileGetInteger +/* f18dfa8: 0fc354fe */ jal savebufferGetInteger /* f18dfac: 24050007 */ addiu $a1,$zero,0x7 /* f18dfb0: a2a20011 */ sb $v0,0x11($s5) /* f18dfb4: 02602025 */ or $a0,$s3,$zero -/* f18dfb8: 0fc354fe */ jal savefileGetInteger +/* f18dfb8: 0fc354fe */ jal savebufferGetInteger /* f18dfbc: 24050003 */ addiu $a1,$zero,0x3 /* f18dfc0: 0fc61521 */ jal scenarioInit /* f18dfc4: a2a20010 */ sb $v0,0x10($s5) /* f18dfc8: 0fc614f4 */ jal scenarioCallback40 /* f18dfcc: 02602025 */ or $a0,$s3,$zero /* f18dfd0: 02602025 */ or $a0,$s3,$zero -/* f18dfd4: 0fc354fe */ jal savefileGetInteger +/* f18dfd4: 0fc354fe */ jal savebufferGetInteger /* f18dfd8: 24050015 */ addiu $a1,$zero,0x15 /* f18dfdc: 96ae0016 */ lhu $t6,0x16($s5) /* f18dfe0: 3c11800b */ lui $s1,%hi(g_MpSimulants) @@ -9807,11 +9807,11 @@ glabel func0f18df5c .L0f18e008: /* f18e008: a2200000 */ sb $zero,0x0($s1) /* f18e00c: 02602025 */ or $a0,$s3,$zero -/* f18e010: 0fc354fe */ jal savefileGetInteger +/* f18e010: 0fc354fe */ jal savebufferGetInteger /* f18e014: 24050005 */ addiu $a1,$zero,0x5 /* f18e018: a2220047 */ sb $v0,0x47($s1) /* f18e01c: 02602025 */ or $a0,$s3,$zero -/* f18e020: 0fc354fe */ jal savefileGetInteger +/* f18e020: 0fc354fe */ jal savebufferGetInteger /* f18e024: 24050003 */ addiu $a1,$zero,0x3 /* f18e028: a2220048 */ sb $v0,0x48($s1) /* f18e02c: 00001825 */ or $v1,$zero,$zero @@ -9831,15 +9831,15 @@ glabel func0f18df5c /* f18e060: 03095025 */ or $t2,$t8,$t1 /* f18e064: a6aa0016 */ sh $t2,0x16($s5) .L0f18e068: -/* f18e068: 0fc354fe */ jal savefileGetInteger +/* f18e068: 0fc354fe */ jal savebufferGetInteger /* f18e06c: 24050007 */ addiu $a1,$zero,0x7 /* f18e070: a222000f */ sb $v0,0xf($s1) /* f18e074: 02602025 */ or $a0,$s3,$zero -/* f18e078: 0fc354fe */ jal savefileGetInteger +/* f18e078: 0fc354fe */ jal savebufferGetInteger /* f18e07c: 24050007 */ addiu $a1,$zero,0x7 /* f18e080: a2220010 */ sb $v0,0x10($s1) /* f18e084: 02602025 */ or $a0,$s3,$zero -/* f18e088: 0fc354fe */ jal savefileGetInteger +/* f18e088: 0fc354fe */ jal savebufferGetInteger /* f18e08c: 24050003 */ addiu $a1,$zero,0x3 /* f18e090: 26520001 */ addiu $s2,$s2,0x1 /* f18e094: 2a410008 */ slti $at,$s2,0x8 @@ -9855,7 +9855,7 @@ glabel func0f18df5c /* f18e0bc: 2610cb88 */ addiu $s0,$s0,%lo(g_MpSetup) .L0f18e0c0: /* f18e0c0: 02602025 */ or $a0,$s3,$zero -/* f18e0c4: 0fc354fe */ jal savefileGetInteger +/* f18e0c4: 0fc354fe */ jal savebufferGetInteger /* f18e0c8: 24050007 */ addiu $a1,$zero,0x7 /* f18e0cc: 26100001 */ addiu $s0,$s0,0x1 /* f18e0d0: 0211082b */ sltu $at,$s0,$s1 @@ -9864,15 +9864,15 @@ glabel func0f18df5c /* f18e0dc: 0fc6244f */ jal func0f18913c /* f18e0e0: 00000000 */ nop /* f18e0e4: 02602025 */ or $a0,$s3,$zero -/* f18e0e8: 0fc354fe */ jal savefileGetInteger +/* f18e0e8: 0fc354fe */ jal savebufferGetInteger /* f18e0ec: 24050006 */ addiu $a1,$zero,0x6 /* f18e0f0: a2a20012 */ sb $v0,0x12($s5) /* f18e0f4: 02602025 */ or $a0,$s3,$zero -/* f18e0f8: 0fc354fe */ jal savefileGetInteger +/* f18e0f8: 0fc354fe */ jal savebufferGetInteger /* f18e0fc: 24050007 */ addiu $a1,$zero,0x7 /* f18e100: a2a20013 */ sb $v0,0x13($s5) /* f18e104: 02602025 */ or $a0,$s3,$zero -/* f18e108: 0fc354fe */ jal savefileGetInteger +/* f18e108: 0fc354fe */ jal savebufferGetInteger /* f18e10c: 24050009 */ addiu $a1,$zero,0x9 /* f18e110: 3c10800b */ lui $s0,%hi(g_MpPlayers) /* f18e114: 3c11800b */ lui $s1,%hi(g_MpPlayers+0x280) @@ -9881,7 +9881,7 @@ glabel func0f18df5c /* f18e120: 2610c7b8 */ addiu $s0,$s0,%lo(g_MpPlayers) .L0f18e124: /* f18e124: 02602025 */ or $a0,$s3,$zero -/* f18e128: 0fc354fe */ jal savefileGetInteger +/* f18e128: 0fc354fe */ jal savebufferGetInteger /* f18e12c: 24050003 */ addiu $a1,$zero,0x3 /* f18e130: 261000a0 */ addiu $s0,$s0,0xa0 /* f18e134: 1611fffb */ bne $s0,$s1,.L0f18e124 @@ -10071,17 +10071,17 @@ glabel func0f18e39c /* f18e3cc: 0fc35539 */ jal func0f0d54e4 /* f18e3d0: 00003025 */ or $a2,$zero,$zero /* f18e3d4: 27a40018 */ addiu $a0,$sp,0x18 -/* f18e3d8: 0fc354fe */ jal savefileGetInteger +/* f18e3d8: 0fc354fe */ jal savebufferGetInteger /* 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 savefileGetInteger +/* f18e3ec: 0fc354fe */ jal savebufferGetInteger /* 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 savefileGetInteger +/* f18e400: 0fc354fe */ jal savebufferGetInteger /* f18e404: a5e20000 */ sh $v0,0x0($t7) /* f18e408: 8fb80108 */ lw $t8,0x108($sp) /* f18e40c: a7020000 */ sh $v0,0x0($t8) diff --git a/src/game/mplayer/scenarios.c b/src/game/mplayer/scenarios.c index 297fcf868..69bedf44c 100644 --- a/src/game/mplayer/scenarios.c +++ b/src/game/mplayer/scenarios.c @@ -2569,9 +2569,9 @@ s32 menuhandlerMpHillTime(s32 operation, struct menuitem *item, union handlerdat return 0; } -void scenarioKohCallback40(s32 *arg0) +void scenarioKohCallback40(struct savebuffer *buffer) { - g_Vars.mphilltime = savefileGetInteger(arg0, 8); + g_Vars.mphilltime = savebufferGetInteger(buffer, 8); } void scenarioKohCallback44(s32 *arg0) @@ -8844,12 +8844,12 @@ s32 menuhandlerMpOpenOptions(s32 operation, struct menuitem *item, union handler return 0; } -void scenarioCallback40(s32 *arg0) +void scenarioCallback40(struct savebuffer *buffer) { if (g_MpScenarios[g_MpSetup.scenario].unk40) { - g_MpScenarios[g_MpSetup.scenario].unk40(arg0); + g_MpScenarios[g_MpSetup.scenario].unk40(buffer); } else { - savefileGetInteger(arg0, 8); + savebufferGetInteger(buffer, 8); } } diff --git a/src/include/game/game_0d4690.h b/src/include/game/game_0d4690.h index 7bce61b85..1a15594f7 100644 --- a/src/include/game/game_0d4690.h +++ b/src/include/game/game_0d4690.h @@ -13,11 +13,11 @@ u32 func0f0d4c80(void); u32 func0f0d4d0c(void); void savefileGetSomething(s32 *arg0, s32 arg1, s32 arg2); u32 func0f0d5360(void); -s32 savefileGetInteger(s32 *arg0, s32 arg1); +s32 savebufferGetInteger(struct savebuffer *buffer, s32 offset); u32 func0f0d545c(void); -void func0f0d5484(s32 *arg0, char *arg1, s32 arg2); +void func0f0d5484(struct savebuffer *buffer, u8 *data, u8 len); u32 func0f0d54c4(void); -void func0f0d54e4(s32 *arg0, char *arg1, s32 arg2); +void func0f0d54e4(struct savebuffer *buffer, char *arg1, s32 arg2); u32 func0f0d55a4(void); void func0f0d564c(char *arg0, char *buffer, s32 arg2); void func0f0d5690(void *arg0, char *buffer); diff --git a/src/include/game/mplayer/scenarios.h b/src/include/game/mplayer/scenarios.h index d3681beff..0755b4cb4 100644 --- a/src/include/game/mplayer/scenarios.h +++ b/src/include/game/mplayer/scenarios.h @@ -27,7 +27,7 @@ bool scenarioCtcChooseSpawnLocation(f32 arg0, struct coord *pos, s16 *rooms, str s32 scenarioCtcGetMaxTeams(void); bool scenarioCtcIsRoomHighlighted(s16 room); s32 menuhandlerMpHillTime(s32 operation, struct menuitem *item, union handlerdata *data); -void scenarioKohCallback40(s32 *arg0); +void scenarioKohCallback40(struct savebuffer *buffer); void scenarioKohCallback44(s32 *arg0); void scenarioKohInit(void); void scenarioKohReset(void); @@ -45,20 +45,7 @@ void scenarioPacReset(void); void scenarioPacKill(struct mpchr *mpchr, s32 mpchrnum, s32 *score, s32 *arg3); Gfx *scenarioPacRadar(Gfx *gdl); s32 menuhandlerMpOpenOptions(s32 operation, struct menuitem *item, union handlerdata *data); -void scenarioCallback40(s32 *arg0); -void scenarioCallback44(s32 *arg0); -void scenarioInit(void); -s32 scenarioCallback08(void); -void scenarioReset(void); -void scenarioTick(void); -void scenarioCallback14(struct chrdata *chr); -Gfx *scenarioRadar(Gfx *gdl); -bool scenarioRadar2(Gfx **gdl, struct prop *prop); -f32 scenarioChooseSpawnLocation(f32 arg0, struct coord *pos, s16 *rooms, struct prop *prop); -s32 scenarioGetMaxTeams(void); -void scenarioCallback38(s16 arg0, s32 *arg1, s32 *arg2, s32 *arg3); -s32 menuhandlerMpOpenOptions(s32 operation, struct menuitem *item, union handlerdata *data); -void scenarioCallback40(s32 *arg0); +void scenarioCallback40(struct savebuffer *buffer); void scenarioCallback44(s32 *arg0); void scenarioInit(void); s32 scenarioCallback08(void); diff --git a/src/include/types.h b/src/include/types.h index 6c8204965..f12ff2b9b 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -4611,6 +4611,11 @@ struct savefile_setup { /*0x8d*/ u8 multipletracknums[5]; }; +struct savebuffer { + s32 word; // checksum? + u8 bytes[220]; +}; + struct mpscenario { struct menudialog *optionsdialog; void (*initfunc)(void); @@ -4628,7 +4633,7 @@ struct mpscenario { bool (*isroomhighlightedfunc)(s16 room); void (*unk38)(s16 arg0, s32 *arg1, s32 *arg2, s32 *arg3); void *unk3c; - void (*unk40)(s32 *arg0); + void (*unk40)(struct savebuffer *buffer); void (*unk44)(s32 *arg0); };