diff --git a/src/game/camdraw.c b/src/game/camdraw.c index 414e0edac..c4b3c0c65 100644 --- a/src/game/camdraw.c +++ b/src/game/camdraw.c @@ -1972,81 +1972,45 @@ void func0f14bd34(s32 index) } } -GLOBAL_ASM( -glabel func0f14bdbc -/* f14bdbc: 3c088008 */ lui $t0,%hi(var8007f8dc) -/* f14bdc0: 2508f8dc */ addiu $t0,$t0,%lo(var8007f8dc) -/* f14bdc4: 8d0f0000 */ lw $t7,0x0($t0) -/* f14bdc8: 00047180 */ sll $t6,$a0,0x6 -/* f14bdcc: 27bdffe0 */ addiu $sp,$sp,-32 -/* f14bdd0: 01c47021 */ addu $t6,$t6,$a0 -/* f14bdd4: 000e3880 */ sll $a3,$t6,0x2 -/* f14bdd8: afbf0014 */ sw $ra,0x14($sp) -/* f14bddc: afa40020 */ sw $a0,0x20($sp) -/* f14bde0: 00001025 */ or $v0,$zero,$zero -/* f14bde4: 00ef3021 */ addu $a2,$a3,$t7 -.L0f14bde8: -/* f14bde8: 8cd800dc */ lw $t8,0xdc($a2) -/* f14bdec: 0302c821 */ addu $t9,$t8,$v0 -/* f14bdf0: 24420004 */ addiu $v0,$v0,0x4 -/* f14bdf4: 28410078 */ slti $at,$v0,0x78 -/* f14bdf8: 1420fffb */ bnez $at,.L0f14bde8 -/* f14bdfc: af200000 */ sw $zero,0x0($t9) -/* f14be00: acc00094 */ sw $zero,0x94($a2) -/* f14be04: 00002825 */ or $a1,$zero,$zero -/* f14be08: 00c01025 */ or $v0,$a2,$zero -/* f14be0c: 2404001e */ addiu $a0,$zero,0x1e -/* f14be10: 240300ff */ addiu $v1,$zero,0xff -.L0f14be14: -/* f14be14: 24a50001 */ addiu $a1,$a1,0x1 -/* f14be18: 24420001 */ addiu $v0,$v0,0x1 -/* f14be1c: a0430097 */ sb $v1,0x97($v0) -/* f14be20: 14a4fffc */ bne $a1,$a0,.L0f14be14 -/* f14be24: a04300b5 */ sb $v1,0xb5($v0) -/* f14be28: 8d090000 */ lw $t1,0x0($t0) -/* f14be2c: 24010004 */ addiu $at,$zero,0x4 -/* f14be30: 240b0006 */ addiu $t3,$zero,0x6 -/* f14be34: 01275021 */ addu $t2,$t1,$a3 -/* f14be38: 8d4200f4 */ lw $v0,0xf4($t2) -/* f14be3c: 2404ffff */ addiu $a0,$zero,-1 -/* f14be40: 00002825 */ or $a1,$zero,$zero -/* f14be44: 10410003 */ beq $v0,$at,.L0f14be54 -/* f14be48: 24010005 */ addiu $at,$zero,0x5 -/* f14be4c: 14410012 */ bne $v0,$at,.L0f14be98 -/* f14be50: 00000000 */ nop -.L0f14be54: -/* f14be54: accb00f4 */ sw $t3,0xf4($a2) -/* f14be58: 8fac0020 */ lw $t4,0x20($sp) -/* f14be5c: 3c018007 */ lui $at,%hi(g_MpPlayerNum) -/* f14be60: 0fc3c328 */ jal func0f0f0ca0 -/* f14be64: ac2c1448 */ sw $t4,%lo(g_MpPlayerNum)($at) -/* f14be68: 0fc5281b */ jal func0f14a06c -/* f14be6c: 2404ffff */ addiu $a0,$zero,-1 -/* f14be70: 904d03f4 */ lbu $t5,0x3f4($v0) -/* f14be74: 3c018007 */ lui $at,%hi(g_MpPlayerNum) -/* f14be78: 31aeff7f */ andi $t6,$t5,0xff7f -/* f14be7c: a04e03f4 */ sb $t6,0x3f4($v0) -/* f14be80: 8faf0020 */ lw $t7,0x20($sp) -/* f14be84: 0fc3cdb7 */ jal menuPopDialog -/* f14be88: ac2f1448 */ sw $t7,%lo(g_MpPlayerNum)($at) -/* f14be8c: 3c018007 */ lui $at,%hi(g_MpPlayerNum) -/* f14be90: 10000009 */ b .L0f14beb8 -/* f14be94: ac201448 */ sw $zero,%lo(g_MpPlayerNum)($at) -.L0f14be98: -/* f14be98: 0fc52969 */ jal func0f14a5a4 -/* f14be9c: afa6001c */ sw $a2,0x1c($sp) -/* f14bea0: 00022600 */ sll $a0,$v0,0x18 -/* f14bea4: 0004c603 */ sra $t8,$a0,0x18 -/* f14bea8: 0fc478ef */ jal pak0f11e3bc -/* f14beac: 03002025 */ or $a0,$t8,$zero -/* f14beb0: 8fa6001c */ lw $a2,0x1c($sp) -/* f14beb4: acc000f4 */ sw $zero,0xf4($a2) -.L0f14beb8: -/* f14beb8: 8fbf0014 */ lw $ra,0x14($sp) -/* f14bebc: 27bd0020 */ addiu $sp,$sp,0x20 -/* f14bec0: 03e00008 */ jr $ra -/* f14bec4: 00000000 */ nop -); +void func0f14bdbc(s32 index) +{ + struct var8007f8dc *thing = &var8007f8dc[index]; + struct var8007f8e0 *thing2; + s32 i; + s32 value; + + for (i = 0; i < 30; i++) { + thing->unk0dc[i] = 0; + } + + thing->unk094 = 0; + + for (i = 0; i < 30; i++) { + thing->unk098[i] = 0xff; + thing->unk0b6[i] = 0xff; + } + + value = var8007f8dc[index].unk0f4; + + if (value == 4 || value == 5) { + thing->unk0f4 = 6; + g_MpPlayerNum = index; + func0f0f0ca0(-1, false); + + thing2 = func0f14a06c(-1); + thing2->unk3f4_00 = false; + + g_MpPlayerNum = index; + + menuPopDialog(); + + g_MpPlayerNum = 0; + } else { + pak0f11e3bc(func0f14a5a4()); + + thing->unk0f4 = 0; + } +} GLOBAL_ASM( glabel func0f14bec8 diff --git a/src/include/game/camdraw.h b/src/include/game/camdraw.h index 77d9054c8..0d5d5dfcf 100644 --- a/src/include/game/camdraw.h +++ b/src/include/game/camdraw.h @@ -41,7 +41,7 @@ void func0f14b394(struct var8007f8e0 *arg0); void func0f14b484(u32 arg0); void func0f14bc04(void); void func0f14bd34(s32 index); -u32 func0f14bdbc(void); +void func0f14bdbc(s32 index); u32 func0f14bec8(void); u32 func0f14c1cc(void); void func0f14c50c(struct var8007f8e0 *arg0, struct var8007f8e0 *arg1, u32 line, char *file); diff --git a/src/include/types.h b/src/include/types.h index f2e04680a..616398f4a 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -7505,29 +7505,15 @@ struct var8007f8dc { /*0x08c*/ u32 unk08c; /*0x090*/ u32 unk090; /*0x094*/ u32 unk094; - /*0x098*/ u32 unk098; - /*0x09c*/ u32 unk09c; - /*0x0a0*/ u32 unk0a0; - /*0x0a4*/ u32 unk0a4; - /*0x0a8*/ u32 unk0a8; - /*0x0ac*/ u32 unk0ac; - /*0x0b0*/ u32 unk0b0; - /*0x0b4*/ u16 unk0b4; - /*0x0b6*/ u8 unk0b6[1]; - /*0x0b8*/ u32 unk0b8; - /*0x0bc*/ u32 unk0bc; - /*0x0c0*/ u32 unk0c0; - /*0x0c4*/ u32 unk0c4; - /*0x0c8*/ u32 unk0c8; - /*0x0cc*/ u32 unk0cc; - /*0x0d0*/ u32 unk0d0; + /*0x098*/ u8 unk098[30]; + /*0x0b6*/ u8 unk0b6[30]; /*0x0d4*/ u8 unk0d4_00 : 1; /*0x0d4*/ u8 unk0d4_01 : 1; /*0x0d4*/ u8 unk0d4_02 : 1; /*0x0d4*/ u8 unk0d4_03 : 1; /*0x0d4*/ u8 unk0d4_04 : 1; /*0x0d8*/ u32 unk0d8; - /*0x0dc*/ u32 unk0dc; + /*0x0dc*/ u32 *unk0dc; /*0x0e0*/ u32 unk0e0; /*0x0e4*/ u32 unk0e4; /*0x0e8*/ u32 unk0e8;