diff --git a/src/game/game_00b200.c b/src/game/game_00b200.c index b12b7de1b..8c1d59811 100644 --- a/src/game/game_00b200.c +++ b/src/game/game_00b200.c @@ -110,7 +110,7 @@ glabel func0f00b320 /* f00b340: 24420004 */ addiu $v0,$v0,0x4 /* f00b344: 1443fffe */ bne $v0,$v1,.L0f00b340 /* f00b348: ac40fffc */ sw $zero,-0x4($v0) -/* f00b34c: 0fc5b9bd */ jal func0f16e6f4 +/* f00b34c: 0fc5b9bd */ jal textGetFileId /* f00b350: 24040026 */ addiu $a0,$zero,0x26 /* f00b354: 00402025 */ or $a0,$v0,$zero /* f00b358: 0fc59c3f */ jal func0f1670fc @@ -118,31 +118,31 @@ glabel func0f00b320 /* f00b360: 3c10800b */ lui $s0,%hi(g_TextBanks) /* f00b364: 2610aaa0 */ addiu $s0,$s0,%lo(g_TextBanks) /* f00b368: ae020098 */ sw $v0,0x98($s0) -/* f00b36c: 0fc5b9bd */ jal func0f16e6f4 +/* f00b36c: 0fc5b9bd */ jal textGetFileId /* f00b370: 24040028 */ addiu $a0,$zero,0x28 /* f00b374: 00402025 */ or $a0,$v0,$zero /* f00b378: 0fc59c3f */ jal func0f1670fc /* f00b37c: 24050022 */ addiu $a1,$zero,0x22 /* f00b380: ae0200a0 */ sw $v0,0xa0($s0) -/* f00b384: 0fc5b9bd */ jal func0f16e6f4 +/* f00b384: 0fc5b9bd */ jal textGetFileId /* f00b388: 24040029 */ addiu $a0,$zero,0x29 /* f00b38c: 00402025 */ or $a0,$v0,$zero /* f00b390: 0fc59c3f */ jal func0f1670fc /* f00b394: 24050022 */ addiu $a1,$zero,0x22 /* f00b398: ae0200a4 */ sw $v0,0xa4($s0) -/* f00b39c: 0fc5b9bd */ jal func0f16e6f4 +/* f00b39c: 0fc5b9bd */ jal textGetFileId /* f00b3a0: 2404002a */ addiu $a0,$zero,0x2a /* f00b3a4: 00402025 */ or $a0,$v0,$zero /* f00b3a8: 0fc59c3f */ jal func0f1670fc /* f00b3ac: 24050022 */ addiu $a1,$zero,0x22 /* f00b3b0: ae0200a8 */ sw $v0,0xa8($s0) -/* f00b3b4: 0fc5b9bd */ jal func0f16e6f4 +/* f00b3b4: 0fc5b9bd */ jal textGetFileId /* f00b3b8: 2404002b */ addiu $a0,$zero,0x2b /* f00b3bc: 00402025 */ or $a0,$v0,$zero /* f00b3c0: 0fc59c3f */ jal func0f1670fc /* f00b3c4: 24050022 */ addiu $a1,$zero,0x22 /* f00b3c8: ae0200ac */ sw $v0,0xac($s0) -/* f00b3cc: 0fc5b9bd */ jal func0f16e6f4 +/* f00b3cc: 0fc5b9bd */ jal textGetFileId /* f00b3d0: 2404002c */ addiu $a0,$zero,0x2c /* f00b3d4: 00402025 */ or $a0,$v0,$zero /* f00b3d8: 0fc59c3f */ jal func0f1670fc @@ -152,7 +152,7 @@ glabel func0f00b320 /* f00b3e8: ae0200b0 */ sw $v0,0xb0($s0) /* f00b3ec: 55c10008 */ bnel $t6,$at,.L0f00b410 /* f00b3f0: 8fbf001c */ lw $ra,0x1c($sp) -/* f00b3f4: 0fc5b9bd */ jal func0f16e6f4 +/* f00b3f4: 0fc5b9bd */ jal textGetFileId /* f00b3f8: 24040027 */ addiu $a0,$zero,0x27 /* f00b3fc: 00402025 */ or $a0,$v0,$zero /* f00b400: 0fc59c3f */ jal func0f1670fc diff --git a/src/game/game_16cfa0.c b/src/game/game_16cfa0.c index 026d5127a..79f1f1a3a 100644 --- a/src/game/game_16cfa0.c +++ b/src/game/game_16cfa0.c @@ -1973,33 +1973,21 @@ glabel func0f16e6d4 /* f16e6f0: 00601025 */ or $v0,$v1,$zero ); -GLOBAL_ASM( -glabel func0f16e6f4 -/* f16e6f4: 27bdffe8 */ addiu $sp,$sp,-24 -/* f16e6f8: afbf0014 */ sw $ra,0x14($sp) -/* f16e6fc: 0fc5b9b5 */ jal func0f16e6d4 -/* f16e700: afa40018 */ sw $a0,0x18($sp) -/* f16e704: 8fae0018 */ lw $t6,0x18($sp) -/* f16e708: 3c188008 */ lui $t8,0x8008 -/* f16e70c: 8fbf0014 */ lw $ra,0x14($sp) -/* f16e710: 000e7840 */ sll $t7,$t6,0x1 -/* f16e714: 030fc021 */ addu $t8,$t8,$t7 -/* f16e718: 97184124 */ lhu $t8,0x4124($t8) -/* f16e71c: 27bd0018 */ addiu $sp,$sp,0x18 -/* f16e720: 03e00008 */ jr $ra -/* f16e724: 00581021 */ addu $v0,$v0,$t8 -); +s32 textGetFileId(s32 bank) +{ + return langtable[bank] + func0f16e6d4(); +} void textSetBankSimple(s32 bank) { - void *ptr = func0f16e6f4(bank); - g_TextBanks[bank] = func0f1670fc(ptr, 0x22); + s32 file_id = textGetFileId(bank); + g_TextBanks[bank] = func0f1670fc(file_id, 0x22); } void textSetBank(s32 bank, s32 arg1, s32 arg2) { - void *ptr = func0f16e6f4(bank); - g_TextBanks[bank] = func0f167200(ptr, 0x22, arg1, arg2); + s32 file_id = textGetFileId(bank); + g_TextBanks[bank] = func0f167200(file_id, 0x22, arg1, arg2); } void textClearBank(s32 bank) diff --git a/src/include/game/game_1668e0.h b/src/include/game/game_1668e0.h index 03412e099..298ec0047 100644 --- a/src/include/game/game_1668e0.h +++ b/src/include/game/game_1668e0.h @@ -22,8 +22,8 @@ u32 func0f166eb4(void); u32 func0f166f74(void); u32 func0f166ff0(void); u32 func0f167054(void); -char *func0f1670fc(void *ptr, s32 arg1); -char *func0f167200(void *ptr, s32 arg1, s32 arg2, s32 arg3); +char *func0f1670fc(s32 file_id, s32 arg1); +char *func0f167200(s32 file_id, s32 arg1, s32 arg2, s32 arg3); u32 func0f167280(void); u32 func0f167294(void); u32 func0f1672a8(void); diff --git a/src/include/game/game_16cfa0.h b/src/include/game/game_16cfa0.h index 7e2ecf921..0b0bd9f9a 100644 --- a/src/include/game/game_16cfa0.h +++ b/src/include/game/game_16cfa0.h @@ -43,7 +43,7 @@ u32 func0f16e138(void); u32 func0f16e1e0(s32 arg0); u32 func0f16e3fc(void); u32 func0f16e6d4(void); -void *func0f16e6f4(s32 bank); +s32 textGetFileId(s32 bank); void textSetBankSimple(s32 bank); void textSetBank(s32 bank, s32 arg1, s32 arg2); void textClearBank(s32 bank); diff --git a/src/include/setup/setup_020df0.h b/src/include/setup/setup_020df0.h index 7bb46aff7..7bf843eaa 100644 --- a/src/include/setup/setup_020df0.h +++ b/src/include/setup/setup_020df0.h @@ -204,6 +204,7 @@ extern u32 var80081058; extern struct smallsky smallskies[]; extern u32 var80082050; extern u32 filetable[]; +extern u16 langtable[]; extern u32 var80084008; extern s32 var80084034; extern u32 var80084038;