diff --git a/src/game/game_013cf0.c b/src/game/game_013cf0.c index 12dae0955..9d2eaa854 100644 --- a/src/game/game_013cf0.c +++ b/src/game/game_013cf0.c @@ -13,54 +13,32 @@ #include "gvars/gvars.h" #include "types.h" -GLOBAL_ASM( -glabel func0f013cf0 -/* f013cf0: 27bdffe8 */ addiu $sp,$sp,-24 -/* f013cf4: afbf0014 */ sw $ra,0x14($sp) -/* f013cf8: 3c04800a */ lui $a0,%hi(g_Vars+0x4b4) -/* f013cfc: 0fc56c8f */ jal func0f15b23c -/* f013d00: 8c84a474 */ lw $a0,%lo(g_Vars+0x4b4)($a0) -/* f013d04: 04410002 */ bgez $v0,.L0f013d10 -/* f013d08: 00401825 */ or $v1,$v0,$zero -/* f013d0c: 00001825 */ or $v1,$zero,$zero -.L0f013d10: -/* f013d10: 000378c0 */ sll $t7,$v1,0x3 -/* f013d14: 01e37823 */ subu $t7,$t7,$v1 -/* f013d18: 000f78c0 */ sll $t7,$t7,0x3 -/* f013d1c: 3c048008 */ lui $a0,%hi(g_Stages+0xa) -/* f013d20: 240e0002 */ addiu $t6,$zero,0x2 -/* f013d24: 3c018006 */ lui $at,%hi(var8005d9a0) -/* f013d28: 008f2021 */ addu $a0,$a0,$t7 -/* f013d2c: a02ed9a0 */ sb $t6,%lo(var8005d9a0)($at) -/* f013d30: 9484fcca */ lhu $a0,%lo(g_Stages+0xa)($a0) -/* f013d34: 0fc59c3f */ jal func0f1670fc -/* f013d38: 24050022 */ addiu $a1,$zero,0x22 -/* f013d3c: 3c04800a */ lui $a0,%hi(var8009a8a0) -/* f013d40: 2484a8a0 */ addiu $a0,$a0,%lo(var8009a8a0) -/* f013d44: ac820000 */ sw $v0,0x0($a0) -/* f013d48: 8c580000 */ lw $t8,0x0($v0) -/* f013d4c: 3c01800a */ lui $at,%hi(var8009a8a4) -/* f013d50: 24590004 */ addiu $t9,$v0,0x4 -/* f013d54: ac38a8a4 */ sw $t8,%lo(var8009a8a4)($at) -/* f013d58: 3c01800a */ lui $at,%hi(var8009a8a8) -/* f013d5c: 0fc04f5d */ jal func0f013d74 -/* f013d60: ac39a8a8 */ sw $t9,%lo(var8009a8a8)($at) -/* f013d64: 8fbf0014 */ lw $ra,0x14($sp) -/* f013d68: 27bd0018 */ addiu $sp,$sp,0x18 -/* f013d6c: 03e00008 */ jr $ra -/* f013d70: 00000000 */ sll $zero,$zero,0x0 -); +void stageLoadTiles(void) +{ + s32 index = func0f15b23c(g_Vars.stagenum); + + if (index < 0) { + index = 0; + } + + var8005d9a0 = 2; + g_TileFileData = func0f1670fc(g_Stages[index].tilefileid, 0x22); + g_TileNumRooms = *g_TileFileData; + g_TileRooms = g_TileFileData + 1; + + func0f013d74(); +} GLOBAL_ASM( glabel func0f013d74 -/* f013d74: 3c03800a */ lui $v1,%hi(var8009a8a8) -/* f013d78: 8c63a8a8 */ lw $v1,%lo(var8009a8a8)($v1) +/* f013d74: 3c03800a */ lui $v1,%hi(g_TileRooms) +/* f013d78: 8c63a8a8 */ lw $v1,%lo(g_TileRooms)($v1) /* f013d7c: 27bdfff8 */ addiu $sp,$sp,-8 -/* f013d80: 3c0f800a */ lui $t7,%hi(var8009a8a4) -/* f013d84: 8defa8a4 */ lw $t7,%lo(var8009a8a4)($t7) +/* f013d80: 3c0f800a */ lui $t7,%hi(g_TileNumRooms) +/* f013d84: 8defa8a4 */ lw $t7,%lo(g_TileNumRooms)($t7) /* f013d88: afb00004 */ sw $s0,0x4($sp) -/* f013d8c: 3c04800a */ lui $a0,%hi(var8009a8a0) -/* f013d90: 8c84a8a0 */ lw $a0,%lo(var8009a8a0)($a0) +/* f013d8c: 3c04800a */ lui $a0,%hi(g_TileFileData) +/* f013d90: 8c84a8a0 */ lw $a0,%lo(g_TileFileData)($a0) /* f013d94: 8c6e0000 */ lw $t6,0x0($v1) /* f013d98: 000fc080 */ sll $t8,$t7,0x2 /* f013d9c: 0078c821 */ addu $t9,$v1,$t8 diff --git a/src/game/game_167ae0.c b/src/game/game_167ae0.c index 0f58a8ce1..26213c2a3 100644 --- a/src/game/game_167ae0.c +++ b/src/game/game_167ae0.c @@ -345,7 +345,7 @@ void func0f167e7c(s32 stagenum) s32 i; s32 j; - func0f013cf0(); + stageLoadTiles(); func0f15b534(g_Vars.stagenum); func0f15b908(g_Vars.stagenum); func0f0147a0(g_Vars.stagenum); diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index ea8c3eb82..a6aebce74 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -12942,9 +12942,9 @@ u32 var8009a890 = 0; u32 var8009a894 = 0; u32 var8009a898 = 0; u32 var8009a89c = 0; -u32 var8009a8a0 = 0; -u32 var8009a8a4 = 0; -u32 var8009a8a8 = 0; +u32 *g_TileFileData = NULL; +u32 g_TileNumRooms = 0; +u32 *g_TileRooms = NULL; u32 var8009a8ac = 0; u32 var8009a8b0 = 0; u32 var8009a8b4 = 0; diff --git a/src/include/game/game_013cf0.h b/src/include/game/game_013cf0.h index 114f0470e..c504adbdb 100644 --- a/src/include/game/game_013cf0.h +++ b/src/include/game/game_013cf0.h @@ -3,7 +3,7 @@ #include #include "types.h" -void func0f013cf0(void); -u32 func0f013d74(void); +void stageLoadTiles(void); +void func0f013d74(void); #endif diff --git a/src/include/game/game_157db0.h b/src/include/game/game_157db0.h index 3c0216c3c..5a37342ca 100644 --- a/src/include/game/game_157db0.h +++ b/src/include/game/game_157db0.h @@ -18,7 +18,7 @@ u32 func0f15a2c4(void); u32 func0f15a6f4(void); u32 func0f15b114(void); u32 func0f15b1c4(void); -u32 func0f15b23c(void); +s32 func0f15b23c(s32 stagenum); u32 func0f15b274(void); u32 func0f15b4c0(void); u32 func0f15b51c(u32 arg); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 67d0b7e00..33375527c 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -485,9 +485,9 @@ extern u32 var8009a88c; extern u32 var8009a890; extern u32 var8009a894; extern u32 var8009a898; -extern u32 var8009a8a0; -extern u32 var8009a8a4; -extern u32 var8009a8a8; +extern u32 *g_TileFileData; +extern u32 g_TileNumRooms; +extern u32 *g_TileRooms; extern struct coord var8009a8b8; extern struct coord var8009a8c8; extern u32 var8009a8e0; diff --git a/src/lib/lib_233c0.c b/src/lib/lib_233c0.c index eef1bdacb..538ce7d3e 100644 --- a/src/lib/lib_233c0.c +++ b/src/lib/lib_233c0.c @@ -4267,12 +4267,12 @@ glabel func00026e7c /* 26efc: 27b5026c */ addiu $s5,$sp,0x26c /* 26f00: 27b40270 */ addiu $s4,$sp,0x270 /* 26f04: 11010021 */ beq $t0,$at,.L00026f8c -/* 26f08: 3c13800a */ lui $s3,%hi(var8009a8a0) -/* 26f0c: 3c12800a */ lui $s2,%hi(var8009a8a8) -/* 26f10: 3c11800a */ lui $s1,%hi(var8009a8a4) -/* 26f14: 2631a8a4 */ addiu $s1,$s1,%lo(var8009a8a4) -/* 26f18: 2652a8a8 */ addiu $s2,$s2,%lo(var8009a8a8) -/* 26f1c: 2673a8a0 */ addiu $s3,$s3,%lo(var8009a8a0) +/* 26f08: 3c13800a */ lui $s3,%hi(g_TileFileData) +/* 26f0c: 3c12800a */ lui $s2,%hi(g_TileRooms) +/* 26f10: 3c11800a */ lui $s1,%hi(g_TileNumRooms) +/* 26f14: 2631a8a4 */ addiu $s1,$s1,%lo(g_TileNumRooms) +/* 26f18: 2652a8a8 */ addiu $s2,$s2,%lo(g_TileRooms) +/* 26f1c: 2673a8a0 */ addiu $s3,$s3,%lo(g_TileFileData) /* 26f20: 8e2f0000 */ lw $t7,0x0($s1) .L00026f24: /* 26f24: 010f082a */ slt $at,$t0,$t7 @@ -5274,12 +5274,12 @@ glabel func00027d1c /* 27d78: 00c08025 */ or $s0,$a2,$zero /* 27d7c: 11010030 */ beq $t0,$at,.L00027e40 /* 27d80: c7b602c4 */ lwc1 $f22,0x2c4($sp) -/* 27d84: 3c14800a */ lui $s4,%hi(var8009a8a0) -/* 27d88: 3c13800a */ lui $s3,%hi(var8009a8a8) -/* 27d8c: 3c11800a */ lui $s1,%hi(var8009a8a4) -/* 27d90: 2631a8a4 */ addiu $s1,$s1,%lo(var8009a8a4) -/* 27d94: 2673a8a8 */ addiu $s3,$s3,%lo(var8009a8a8) -/* 27d98: 2694a8a0 */ addiu $s4,$s4,%lo(var8009a8a0) +/* 27d84: 3c14800a */ lui $s4,%hi(g_TileFileData) +/* 27d88: 3c13800a */ lui $s3,%hi(g_TileRooms) +/* 27d8c: 3c11800a */ lui $s1,%hi(g_TileNumRooms) +/* 27d90: 2631a8a4 */ addiu $s1,$s1,%lo(g_TileNumRooms) +/* 27d94: 2673a8a8 */ addiu $s3,$s3,%lo(g_TileRooms) +/* 27d98: 2694a8a0 */ addiu $s4,$s4,%lo(g_TileFileData) /* 27d9c: c7b402c0 */ lwc1 $f20,0x2c0($sp) /* 27da0: 27b70294 */ addiu $s7,$sp,0x294 /* 27da4: 8fb602bc */ lw $s6,0x2bc($sp) @@ -6444,12 +6444,12 @@ glabel func00028df0 /* 28e4c: 00c08025 */ or $s0,$a2,$zero /* 28e50: 1101002b */ beq $t0,$at,.L00028f00 /* 28e54: c7b602bc */ lwc1 $f22,0x2bc($sp) -/* 28e58: 3c13800a */ lui $s3,%hi(var8009a8a0) -/* 28e5c: 3c12800a */ lui $s2,%hi(var8009a8a8) -/* 28e60: 3c11800a */ lui $s1,%hi(var8009a8a4) -/* 28e64: 2631a8a4 */ addiu $s1,$s1,%lo(var8009a8a4) -/* 28e68: 2652a8a8 */ addiu $s2,$s2,%lo(var8009a8a8) -/* 28e6c: 2673a8a0 */ addiu $s3,$s3,%lo(var8009a8a0) +/* 28e58: 3c13800a */ lui $s3,%hi(g_TileFileData) +/* 28e5c: 3c12800a */ lui $s2,%hi(g_TileRooms) +/* 28e60: 3c11800a */ lui $s1,%hi(g_TileNumRooms) +/* 28e64: 2631a8a4 */ addiu $s1,$s1,%lo(g_TileNumRooms) +/* 28e68: 2652a8a8 */ addiu $s2,$s2,%lo(g_TileRooms) +/* 28e6c: 2673a8a0 */ addiu $s3,$s3,%lo(g_TileFileData) /* 28e70: c7b402b8 */ lwc1 $f20,0x2b8($sp) /* 28e74: 27be028c */ addiu $s8,$sp,0x28c /* 28e78: 8fb702c4 */ lw $s7,0x2c4($sp) @@ -11129,12 +11129,12 @@ glabel func0002d15c /* 2d1e0: 00c08025 */ or $s0,$a2,$zero /* 2d1e4: 1101002e */ beq $t0,$at,.L0002d2a0 /* 2d1e8: c7b602b8 */ lwc1 $f22,0x2b8($sp) -/* 2d1ec: 3c13800a */ lui $s3,%hi(var8009a8a0) -/* 2d1f0: 3c12800a */ lui $s2,%hi(var8009a8a8) -/* 2d1f4: 3c11800a */ lui $s1,%hi(var8009a8a4) -/* 2d1f8: 2631a8a4 */ addiu $s1,$s1,%lo(var8009a8a4) -/* 2d1fc: 2652a8a8 */ addiu $s2,$s2,%lo(var8009a8a8) -/* 2d200: 2673a8a0 */ addiu $s3,$s3,%lo(var8009a8a0) +/* 2d1ec: 3c13800a */ lui $s3,%hi(g_TileFileData) +/* 2d1f0: 3c12800a */ lui $s2,%hi(g_TileRooms) +/* 2d1f4: 3c11800a */ lui $s1,%hi(g_TileNumRooms) +/* 2d1f8: 2631a8a4 */ addiu $s1,$s1,%lo(g_TileNumRooms) +/* 2d1fc: 2652a8a8 */ addiu $s2,$s2,%lo(g_TileRooms) +/* 2d200: 2673a8a0 */ addiu $s3,$s3,%lo(g_TileFileData) /* 2d204: c7b402b4 */ lwc1 $f20,0x2b4($sp) /* 2d208: 8fbe02b0 */ lw $s8,0x2b0($sp) /* 2d20c: 8fb702ac */ lw $s7,0x2ac($sp) @@ -11294,12 +11294,12 @@ glabel func0002d3b0 /* 2d444: 00c08025 */ or $s0,$a2,$zero /* 2d448: 1111003e */ beq $t0,$s1,.L0002d544 /* 2d44c: c7b60300 */ lwc1 $f22,0x300($sp) -/* 2d450: 3c17800a */ lui $s7,%hi(var8009a8a0) -/* 2d454: 3c16800a */ lui $s6,%hi(var8009a8a8) -/* 2d458: 3c15800a */ lui $s5,%hi(var8009a8a4) -/* 2d45c: 26b5a8a4 */ addiu $s5,$s5,%lo(var8009a8a4) -/* 2d460: 26d6a8a8 */ addiu $s6,$s6,%lo(var8009a8a8) -/* 2d464: 26f7a8a0 */ addiu $s7,$s7,%lo(var8009a8a0) +/* 2d450: 3c17800a */ lui $s7,%hi(g_TileFileData) +/* 2d454: 3c16800a */ lui $s6,%hi(g_TileRooms) +/* 2d458: 3c15800a */ lui $s5,%hi(g_TileNumRooms) +/* 2d45c: 26b5a8a4 */ addiu $s5,$s5,%lo(g_TileNumRooms) +/* 2d460: 26d6a8a8 */ addiu $s6,$s6,%lo(g_TileRooms) +/* 2d464: 26f7a8a0 */ addiu $s7,$s7,%lo(g_TileFileData) /* 2d468: c7b402fc */ lwc1 $f20,0x2fc($sp) /* 2d46c: 27b4029c */ addiu $s4,$sp,0x29c /* 2d470: 27b302a8 */ addiu $s3,$sp,0x2a8 @@ -12500,12 +12500,12 @@ glabel func0002e4c4 /* 2e50c: 2415ffff */ addiu $s5,$zero,-1 /* 2e510: 00a08025 */ or $s0,$a1,$zero /* 2e514: 11150021 */ beq $t0,$s5,.L0002e59c -/* 2e518: 3c13800a */ lui $s3,%hi(var8009a8a0) -/* 2e51c: 3c12800a */ lui $s2,%hi(var8009a8a8) -/* 2e520: 3c11800a */ lui $s1,%hi(var8009a8a4) -/* 2e524: 2631a8a4 */ addiu $s1,$s1,%lo(var8009a8a4) -/* 2e528: 2652a8a8 */ addiu $s2,$s2,%lo(var8009a8a8) -/* 2e52c: 2673a8a0 */ addiu $s3,$s3,%lo(var8009a8a0) +/* 2e518: 3c13800a */ lui $s3,%hi(g_TileFileData) +/* 2e51c: 3c12800a */ lui $s2,%hi(g_TileRooms) +/* 2e520: 3c11800a */ lui $s1,%hi(g_TileNumRooms) +/* 2e524: 2631a8a4 */ addiu $s1,$s1,%lo(g_TileNumRooms) +/* 2e528: 2652a8a8 */ addiu $s2,$s2,%lo(g_TileRooms) +/* 2e52c: 2673a8a0 */ addiu $s3,$s3,%lo(g_TileFileData) /* 2e530: 8e2f0000 */ lw $t7,0x0($s1) .L0002e534: /* 2e534: 010f082a */ slt $at,$t0,$t7 @@ -13367,12 +13367,12 @@ glabel func0002f02c /* 2f154: 241effff */ addiu $s8,$zero,-1 /* 2f158: 27b7006c */ addiu $s7,$sp,0x6c /* 2f15c: 111e0022 */ beq $t0,$s8,.L0002f1e8 -/* 2f160: 3c14800a */ lui $s4,%hi(var8009a8a0) -/* 2f164: 3c13800a */ lui $s3,%hi(var8009a8a8) -/* 2f168: 3c11800a */ lui $s1,%hi(var8009a8a4) -/* 2f16c: 2631a8a4 */ addiu $s1,$s1,%lo(var8009a8a4) -/* 2f170: 2673a8a8 */ addiu $s3,$s3,%lo(var8009a8a8) -/* 2f174: 2694a8a0 */ addiu $s4,$s4,%lo(var8009a8a0) +/* 2f160: 3c14800a */ lui $s4,%hi(g_TileFileData) +/* 2f164: 3c13800a */ lui $s3,%hi(g_TileRooms) +/* 2f168: 3c11800a */ lui $s1,%hi(g_TileNumRooms) +/* 2f16c: 2631a8a4 */ addiu $s1,$s1,%lo(g_TileNumRooms) +/* 2f170: 2673a8a8 */ addiu $s3,$s3,%lo(g_TileRooms) +/* 2f174: 2694a8a0 */ addiu $s4,$s4,%lo(g_TileFileData) /* 2f178: 8e2b0000 */ lw $t3,0x0($s1) .L0002f17c: /* 2f17c: 00086880 */ sll $t5,$t0,0x2