diff --git a/src/game/data/data_0083d0.c b/src/game/data/data_0083d0.c index be872fb5f..0b1777112 100644 --- a/src/game/data/data_0083d0.c +++ b/src/game/data/data_0083d0.c @@ -126,102 +126,45 @@ u32 var80062af0 = 0x00000007; u32 var80062af4 = 0x00000003; u32 var80062af8 = 0x00000001; u32 var80062afc = 0x00000005; -u32 var80062b00 = 0x00000000; -u32 var80062b04 = 0x00000000; -u32 var80062b08 = 0x00000000; -u32 var80062b0c = 0x00000000; -u32 var80062b10 = 0x00000000; -u32 var80062b14 = 0x00000000; -u32 var80062b18 = 0x00000000; -u32 var80062b1c = 0x00000000; -u32 var80062b20 = 0x00000001; -u32 var80062b24 = 0x00000002; -u32 var80062b28 = 0x00000003; -u32 var80062b2c = 0xffffffff; -u32 var80062b30 = 0xffffffff; -u32 var80062b34 = 0xffffffff; -u32 var80062b38 = 0xffffffff; -u32 var80062b3c = 0xffffffff; -u32 var80062b40 = 0xffffffff; -u32 var80062b44 = 0xffffffff; -u32 var80062b48 = 0xffffffff; -u32 var80062b4c = 0xffffffff; -u32 var80062b50 = 0xffffffff; -u32 var80062b54 = 0xffffffff; -u32 var80062b58 = 0xffffffff; -u32 var80062b5c = 0xffffffff; -u32 var80062b60 = 0xffffffff; -u32 var80062b64 = 0xffffffff; -u32 var80062b68 = 0x00000018; -u32 var80062b6c = 0x00000013; -u32 var80062b70 = 0x00000016; -u32 var80062b74 = 0x00000011; -u32 var80062b78 = 0x00000006; -u32 var80062b7c = 0x00000014; -u32 var80062b80 = 0x00000012; -u32 var80062b84 = 0x0000001b; -u32 var80062b88 = 0x0000001c; -u32 var80062b8c = 0x0000001a; -u32 var80062b90 = 0x0000003b; -u32 var80062b94 = 0x00000037; -u32 var80062b98 = 0x00000042; -u32 var80062b9c = 0x00000043; -u32 var80062ba0 = 0x00000048; -u32 var80062ba4 = 0x00000054; -u32 var80062ba8 = 0x0000000b; -u32 var80062bac = 0x0000002a; -u32 var80062bb0 = 0x0000001e; -u32 var80062bb4 = 0x0000001f; -u32 var80062bb8 = 0x00000022; -u32 var80062bbc = 0x00000023; -u32 var80062bc0 = 0x00000025; -u32 var80062bc4 = 0x00000026; -u32 var80062bc8 = 0x00000027; -u32 var80062bcc = 0x0000002d; -u32 var80062bd0 = 0x0000002e; -u32 var80062bd4 = 0x00000049; -u32 var80062bd8 = 0x0000004a; -u32 var80062bdc = 0x0000004b; -u32 var80062be0 = 0x0000004c; -u32 var80062be4 = 0x0000004d; -u32 var80062be8 = 0x0000004e; -u32 var80062bec = 0x0000004f; -u32 var80062bf0 = 0x00000050; -u32 var80062bf4 = 0x00000051; -u32 var80062bf8 = 0x00000052; -u32 var80062bfc = 0x00000055; -u32 var80062c00 = 0x0000003f; -u32 var80062c04 = 0x00000040; -u32 var80062c08 = 0x00000041; -u32 var80062c0c = 0x00000044; -u32 var80062c10 = 0xffffffff; -u32 var80062c14 = 0x00000018; -u32 var80062c18 = 0x00000013; -u32 var80062c1c = 0x00000016; -u32 var80062c20 = 0x00000011; -u32 var80062c24 = 0x00000006; -u32 var80062c28 = 0x00000014; -u32 var80062c2c = 0x00000012; -u32 var80062c30 = 0x0000001b; -u32 var80062c34 = 0x0000001c; -u32 var80062c38 = 0x0000001a; -u32 var80062c3c = 0x0000003b; -u32 var80062c40 = 0x00000037; -u32 var80062c44 = 0x00000042; -u32 var80062c48 = 0x00000043; -u32 var80062c4c = 0x00000048; -u32 var80062c50 = 0x00000054; -u32 var80062c54 = 0xffffffff; -u32 var80062c58 = 0x00000021; -u32 var80062c5c = 0x00000020; -u32 var80062c60 = 0x00000024; -u32 var80062c64 = 0x0000002c; -u32 var80062c68 = 0xffffffff; -u32 var80062c6c = 0x00000021; -u32 var80062c70 = 0x00000020; -u32 var80062c74 = 0x00000024; -u32 var80062c78 = 0x0000002c; -u32 var80062c7c = 0xffffffff; + +s32 var80062b00 = 0; +s32 var80062b04 = 0; +s32 var80062b08 = 0; +s32 var80062b0c = 0; +s32 var80062b10 = 0; +u32 var80062b14 = 0; +u32 var80062b18 = 0; + +// These arrays are head/body numbers +s32 var80062b1c[] = { + 0x00, 0x01, 0x02, 0x03, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, +}; + +s32 var80062b68[] = { + 0x18, 0x13, 0x16, 0x11, 0x06, 0x14, 0x12, 0x1b, + 0x1c, 0x1a, 0x3b, 0x37, 0x42, 0x43, 0x48, 0x54, + 0x0b, 0x2a, 0x1e, 0x1f, 0x22, 0x23, 0x25, 0x26, + 0x27, 0x2d, 0x2e, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, + 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x55, 0x3f, 0x40, + 0x41, 0x44, -1, +}; + +s32 var80062c14[] = { + 0x18, 0x13, 0x16, 0x11, 0x06, 0x14, 0x12, 0x1b, + 0x1c, 0x1a, 0x3b, 0x37, 0x42, 0x43, 0x48, 0x54, + -1, +}; + +s32 var80062c58[] = { + 0x21, 0x20, 0x24, 0x2c, -1, +}; + +s32 var80062c6c[] = { + 0x21, 0x20, 0x24, 0x2c, -1, +}; + u32 var80062c80 = 0x00000000; u32 g_HeadsAIndex = 0x00000000; u32 g_HeadsBIndex = 0x00000000; diff --git a/src/game/game_000130.c b/src/game/game_000130.c index af92f5394..45ff3f8ae 100644 --- a/src/game/game_000130.c +++ b/src/game/game_000130.c @@ -18,111 +18,38 @@ const u32 var7f1a78c4[] = {0x38c907a9}; const u32 var7f1a78c8[] = {0x3dccccce}; const u32 var7f1a78cc[] = {0x00000000}; -GLOBAL_ASM( -glabel func0f000130 -/* f000130: 3c048006 */ lui $a0,%hi(var80062b1c) -/* f000134: 24842b1c */ addiu $a0,$a0,%lo(var80062b1c) -/* f000138: 00007080 */ sll $t6,$zero,0x2 -/* f00013c: 008e7821 */ addu $t7,$a0,$t6 -/* f000140: 8df80000 */ lw $t8,0x0($t7) -/* f000144: 3c038006 */ lui $v1,%hi(var80062b00) -/* f000148: 24632b00 */ addiu $v1,$v1,%lo(var80062b00) -/* f00014c: ac600000 */ sw $zero,0x0($v1) -/* f000150: 07000009 */ bltz $t8,.L0f000178 -/* f000154: 00001025 */ or $v0,$zero,$zero -/* f000158: 24590001 */ addiu $t9,$v0,0x1 -.L0f00015c: -/* f00015c: 00194080 */ sll $t0,$t9,0x2 -/* f000160: 00884821 */ addu $t1,$a0,$t0 -/* f000164: 8d2a0000 */ lw $t2,0x0($t1) -/* f000168: ac790000 */ sw $t9,0x0($v1) -/* f00016c: 03201025 */ or $v0,$t9,$zero -/* f000170: 0543fffa */ bgezl $t2,.L0f00015c -/* f000174: 24590001 */ addiu $t9,$v0,0x1 -.L0f000178: -/* f000178: 3c048006 */ lui $a0,%hi(var80062c14) -/* f00017c: 24842c14 */ addiu $a0,$a0,%lo(var80062c14) -/* f000180: 00005880 */ sll $t3,$zero,0x2 -/* f000184: 008b6021 */ addu $t4,$a0,$t3 -/* f000188: 8d8d0000 */ lw $t5,0x0($t4) -/* f00018c: 3c038006 */ lui $v1,%hi(var80062b0c) -/* f000190: 24632b0c */ addiu $v1,$v1,%lo(var80062b0c) -/* f000194: ac600000 */ sw $zero,0x0($v1) -/* f000198: 05a00009 */ bltz $t5,.L0f0001c0 -/* f00019c: 00001025 */ or $v0,$zero,$zero -/* f0001a0: 244e0001 */ addiu $t6,$v0,0x1 -.L0f0001a4: -/* f0001a4: 000e7880 */ sll $t7,$t6,0x2 -/* f0001a8: 008fc021 */ addu $t8,$a0,$t7 -/* f0001ac: 8f190000 */ lw $t9,0x0($t8) -/* f0001b0: ac6e0000 */ sw $t6,0x0($v1) -/* f0001b4: 01c01025 */ or $v0,$t6,$zero -/* f0001b8: 0723fffa */ bgezl $t9,.L0f0001a4 -/* f0001bc: 244e0001 */ addiu $t6,$v0,0x1 -.L0f0001c0: -/* f0001c0: 3c048006 */ lui $a0,%hi(var80062c6c) -/* f0001c4: 24842c6c */ addiu $a0,$a0,%lo(var80062c6c) -/* f0001c8: 00004080 */ sll $t0,$zero,0x2 -/* f0001cc: 00884821 */ addu $t1,$a0,$t0 -/* f0001d0: 8d2a0000 */ lw $t2,0x0($t1) -/* f0001d4: 3c038006 */ lui $v1,%hi(var80062b10) -/* f0001d8: 24632b10 */ addiu $v1,$v1,%lo(var80062b10) -/* f0001dc: ac600000 */ sw $zero,0x0($v1) -/* f0001e0: 05400009 */ bltz $t2,.L0f000208 -/* f0001e4: 00001025 */ or $v0,$zero,$zero -/* f0001e8: 244b0001 */ addiu $t3,$v0,0x1 -.L0f0001ec: -/* f0001ec: 000b6080 */ sll $t4,$t3,0x2 -/* f0001f0: 008c6821 */ addu $t5,$a0,$t4 -/* f0001f4: 8dae0000 */ lw $t6,0x0($t5) -/* f0001f8: ac6b0000 */ sw $t3,0x0($v1) -/* f0001fc: 01601025 */ or $v0,$t3,$zero -/* f000200: 05c3fffa */ bgezl $t6,.L0f0001ec -/* f000204: 244b0001 */ addiu $t3,$v0,0x1 -.L0f000208: -/* f000208: 3c048006 */ lui $a0,%hi(var80062b68) -/* f00020c: 24842b68 */ addiu $a0,$a0,%lo(var80062b68) -/* f000210: 00007880 */ sll $t7,$zero,0x2 -/* f000214: 008fc021 */ addu $t8,$a0,$t7 -/* f000218: 8f190000 */ lw $t9,0x0($t8) -/* f00021c: 3c038006 */ lui $v1,%hi(var80062b04) -/* f000220: 24632b04 */ addiu $v1,$v1,%lo(var80062b04) -/* f000224: ac600000 */ sw $zero,0x0($v1) -/* f000228: 07200009 */ bltz $t9,.L0f000250 -/* f00022c: 00001025 */ or $v0,$zero,$zero -/* f000230: 24480001 */ addiu $t0,$v0,0x1 -.L0f000234: -/* f000234: 00084880 */ sll $t1,$t0,0x2 -/* f000238: 00895021 */ addu $t2,$a0,$t1 -/* f00023c: 8d4b0000 */ lw $t3,0x0($t2) -/* f000240: ac680000 */ sw $t0,0x0($v1) -/* f000244: 01001025 */ or $v0,$t0,$zero -/* f000248: 0563fffa */ bgezl $t3,.L0f000234 -/* f00024c: 24480001 */ addiu $t0,$v0,0x1 -.L0f000250: -/* f000250: 3c048006 */ lui $a0,%hi(var80062c58) -/* f000254: 24842c58 */ addiu $a0,$a0,%lo(var80062c58) -/* f000258: 00006080 */ sll $t4,$zero,0x2 -/* f00025c: 008c6821 */ addu $t5,$a0,$t4 -/* f000260: 8dae0000 */ lw $t6,0x0($t5) -/* f000264: 3c038006 */ lui $v1,%hi(var80062b08) -/* f000268: 24632b08 */ addiu $v1,$v1,%lo(var80062b08) -/* f00026c: ac600000 */ sw $zero,0x0($v1) -/* f000270: 05c00009 */ bltz $t6,.L0f000298 -/* f000274: 00001025 */ or $v0,$zero,$zero -/* f000278: 244f0001 */ addiu $t7,$v0,0x1 -.L0f00027c: -/* f00027c: 000fc080 */ sll $t8,$t7,0x2 -/* f000280: 0098c821 */ addu $t9,$a0,$t8 -/* f000284: 8f280000 */ lw $t0,0x0($t9) -/* f000288: ac6f0000 */ sw $t7,0x0($v1) -/* f00028c: 01e01025 */ or $v0,$t7,$zero -/* f000290: 0503fffa */ bgezl $t0,.L0f00027c -/* f000294: 244f0001 */ addiu $t7,$v0,0x1 -.L0f000298: -/* f000298: 03e00008 */ jr $ra -/* f00029c: 00000000 */ nop -); +void func0f000130(void) +{ + var80062b00 = 0; + + while (var80062b1c[var80062b00] >= 0) { + var80062b00++; + } + + var80062b0c = 0; + + while (var80062c14[var80062b0c] >= 0) { + var80062b0c++; + } + + var80062b10 = 0; + + while (var80062c6c[var80062b10] >= 0) { + var80062b10++; + } + + var80062b04 = 0; + + while (var80062b68[var80062b04] >= 0) { + var80062b04++; + } + + var80062b08 = 0; + + while (var80062c58[var80062b08] >= 0) { + var80062b08++; + } +} GLOBAL_ASM( glabel func0f0002a0 diff --git a/src/include/game/data/data_0083d0.h b/src/include/game/data/data_0083d0.h index d383bca52..2b14edb7f 100644 --- a/src/include/game/data/data_0083d0.h +++ b/src/include/game/data/data_0083d0.h @@ -109,17 +109,17 @@ extern struct var80062a8c *var80062a8c; // pointer to array extern s32 var80062a90; // true if var80062a8c has anything in its array extern u32 var80062a94; extern u32 var80062aa0; -extern u32 var80062b00; -extern u32 var80062b04; -extern u32 var80062b08; -extern u32 var80062b0c; -extern u32 var80062b10; +extern s32 var80062b00; +extern s32 var80062b04; +extern s32 var80062b08; +extern s32 var80062b0c; +extern s32 var80062b10; extern u32 var80062b14; -extern u32 var80062b1c; -extern u32 var80062b68; -extern u32 var80062c14; -extern u32 var80062c58; -extern u32 var80062c6c; +extern s32 var80062b1c[]; +extern s32 var80062b68[]; +extern s32 var80062c14[]; +extern s32 var80062c58[]; +extern s32 var80062c6c[]; extern u32 g_HeadsAIndex; extern u32 g_HeadsBIndex; extern u32 g_FemaleHeads[3];