From a0866a9449b05d160149fcb5080c13b3cc344675 Mon Sep 17 00:00:00 2001 From: David Benepe Date: Sun, 15 Aug 2021 22:47:51 -0500 Subject: [PATCH] Decompiled 8 functions in unknown_0255E0 --- asm/non_matchings/camera/func_80069A40.s | 4 +- asm/non_matchings/particles/func_800B22FC.s | 4 +- .../unknown_005740/func_80009B7C.s | 2 +- .../unknown_00BC20/func_8000EA54.s | 2 +- .../unknown_00BC20/func_80011570.s | 4 +- .../unknown_00BC20/func_80022948.s | 2 +- .../unknown_00BC20/func_800230D0.s | 2 +- .../unknown_0255E0/func_800249F0.s | 12 +- .../unknown_0255E0/func_80024D54.s | 4 +- .../unknown_0255E0/func_8002581C.s | 8 +- .../unknown_0255E0/func_80026070.s | 8 +- .../unknown_0255E0/func_800278E8.s | 2 +- .../unknown_0255E0/func_80027E24.s | 8 +- .../unknown_0255E0/func_80027FC4.s | 36 -- .../unknown_0255E0/func_80028CD0.s | 4 +- .../unknown_0255E0/func_80029AF8.s | 4 +- .../unknown_0255E0/func_80029D14.s | 8 +- .../unknown_0255E0/func_8002A134.s | 94 ----- .../unknown_0255E0/func_8002A900.s | 4 +- .../unknown_0255E0/func_8002B0F4.s | 12 +- .../unknown_0255E0/func_8002B9BC.s | 68 ---- .../unknown_0255E0/func_8002BAB0.s | 4 +- .../unknown_0255E0/func_8002C0C4.s | 4 +- .../unknown_0255E0/func_8002C71C.s | 48 --- .../unknown_0255E0/func_8002C7D4.s | 4 +- .../unknown_0255E0/func_8002DE30.s | 4 +- .../unknown_0255E0/func_8002E234.s | 4 +- .../unknown_0255E0/func_80030750.s | 29 -- .../unknown_0255E0/func_800307BC.s | 33 -- .../unknown_0255E0/func_80030838.s | 71 ---- .../unknown_0255E0/func_8003093C.s | 84 ----- ...> get_level_segment_index_from_position.s} | 6 +- .../render_level_geometry_and_objects.s | 12 +- .../unknown_0255E0/render_level_segment.s | 8 +- .../unknown_032760/func_80039330.s | 2 +- .../unknown_043920/func_80048E64.s | 2 +- .../unknown_043920/func_8004C2B0.s | 2 +- .../unknown_043920/func_8004D590.s | 2 +- .../unknown_043920/func_800581E8.s | 2 +- .../unknown_043920/func_80058B84.s | 2 +- .../unknown_043920/func_80058D5C.s | 2 +- .../unknown_043920/func_80058F44.s | 2 +- .../set_ghost_position_and_rotation.s | 2 +- .../unknown_09F8F0/func_800AD658.s | 2 +- asm/unknown_031D30/func_80031130.s | 8 +- include/structs.h | 18 +- src/camera.c | 4 +- src/unknown_0255E0.c | 347 ++++++++++++++---- src/unknown_0255E0.h | 2 +- src/unknown_0348C0.c | 4 +- src/unknown_043920.c | 4 +- src/unknown_06B2B0.c | 2 +- 52 files changed, 379 insertions(+), 633 deletions(-) delete mode 100644 asm/non_matchings/unknown_0255E0/func_80027FC4.s delete mode 100644 asm/non_matchings/unknown_0255E0/func_8002A134.s delete mode 100644 asm/non_matchings/unknown_0255E0/func_8002B9BC.s delete mode 100644 asm/non_matchings/unknown_0255E0/func_8002C71C.s delete mode 100644 asm/non_matchings/unknown_0255E0/func_80030750.s delete mode 100644 asm/non_matchings/unknown_0255E0/func_800307BC.s delete mode 100644 asm/non_matchings/unknown_0255E0/func_80030838.s delete mode 100644 asm/non_matchings/unknown_0255E0/func_8003093C.s rename asm/non_matchings/unknown_0255E0/{func_80029F18.s => get_level_segment_index_from_position.s} (95%) diff --git a/asm/non_matchings/camera/func_80069A40.s b/asm/non_matchings/camera/func_80069A40.s index 8b94d8fa..14f77133 100644 --- a/asm/non_matchings/camera/func_80069A40.s +++ b/asm/non_matchings/camera/func_80069A40.s @@ -65,7 +65,7 @@ glabel func_80069A40 /* 06A730 80069B30 8C460014 */ lw $a2, 0x14($v0) /* 06A734 80069B34 C44E0010 */ lwc1 $f14, 0x10($v0) /* 06A738 80069B38 C44C000C */ lwc1 $f12, 0xc($v0) -/* 06A73C 80069B3C 0C00A7C6 */ jal func_80029F18 +/* 06A73C 80069B3C 0C00A7C6 */ jal get_level_segment_index_from_position /* 06A740 80069B40 00000000 */ nop /* 06A744 80069B44 3C198012 */ lui $t9, %hi(D_80120CE4) # $t9, 0x8012 /* 06A748 80069B48 8F390CE4 */ lw $t9, %lo(D_80120CE4)($t9) @@ -145,7 +145,7 @@ glabel func_80069A40 /* 06A86C 80069C6C C60E0010 */ lwc1 $f14, 0x10($s0) /* 06A870 80069C70 E6080014 */ swc1 $f8, 0x14($s0) /* 06A874 80069C74 8E060014 */ lw $a2, 0x14($s0) -/* 06A878 80069C78 0C00A7C6 */ jal func_80029F18 +/* 06A878 80069C78 0C00A7C6 */ jal get_level_segment_index_from_position /* 06A87C 80069C7C 00000000 */ nop /* 06A880 80069C80 8E4F0000 */ lw $t7, ($s2) /* 06A884 80069C84 00000000 */ nop diff --git a/asm/non_matchings/particles/func_800B22FC.s b/asm/non_matchings/particles/func_800B22FC.s index 9c913543..abba804b 100644 --- a/asm/non_matchings/particles/func_800B22FC.s +++ b/asm/non_matchings/particles/func_800B22FC.s @@ -145,7 +145,7 @@ glabel func_800B22FC .L800B250C: /* 0B310C 800B250C C60E0010 */ lwc1 $f14, 0x10($s0) /* 0B3110 800B2510 8E060014 */ lw $a2, 0x14($s0) -/* 0B3114 800B2514 0C00A7C6 */ jal func_80029F18 +/* 0B3114 800B2514 0C00A7C6 */ jal get_level_segment_index_from_position /* 0B3118 800B2518 00000000 */ nop /* 0B311C 800B251C 10000007 */ b .L800B253C /* 0B3120 800B2520 A602002E */ sh $v0, 0x2e($s0) @@ -153,7 +153,7 @@ glabel func_800B22FC /* 0B3124 800B2524 C60C000C */ lwc1 $f12, 0xc($s0) /* 0B3128 800B2528 C60E0010 */ lwc1 $f14, 0x10($s0) /* 0B312C 800B252C 8E060014 */ lw $a2, 0x14($s0) -/* 0B3130 800B2530 0C00A7C6 */ jal func_80029F18 +/* 0B3130 800B2530 0C00A7C6 */ jal get_level_segment_index_from_position /* 0B3134 800B2534 00000000 */ nop /* 0B3138 800B2538 A602002E */ sh $v0, 0x2e($s0) .L800B253C: diff --git a/asm/non_matchings/unknown_005740/func_80009B7C.s b/asm/non_matchings/unknown_005740/func_80009B7C.s index 053ae281..eafb1078 100644 --- a/asm/non_matchings/unknown_005740/func_80009B7C.s +++ b/asm/non_matchings/unknown_005740/func_80009B7C.s @@ -22,7 +22,7 @@ glabel func_80009B7C /* 00A7CC 80009BCC E7B50028 */ swc1 $f21, 0x28($sp) /* 00A7D0 80009BD0 AFA400D8 */ sw $a0, 0xd8($sp) /* 00A7D4 80009BD4 4600A386 */ mov.s $f14, $f20 -/* 00A7D8 80009BD8 0C00A7C6 */ jal func_80029F18 +/* 00A7D8 80009BD8 0C00A7C6 */ jal get_level_segment_index_from_position /* 00A7DC 80009BDC 4600B306 */ mov.s $f12, $f22 /* 00A7E0 80009BE0 3C178012 */ lui $s7, %hi(D_8011A6D8) # $s7, 0x8012 /* 00A7E4 80009BE4 AFA200B0 */ sw $v0, 0xb0($sp) diff --git a/asm/non_matchings/unknown_00BC20/func_8000EA54.s b/asm/non_matchings/unknown_00BC20/func_8000EA54.s index 834ead32..d116c61e 100644 --- a/asm/non_matchings/unknown_00BC20/func_8000EA54.s +++ b/asm/non_matchings/unknown_00BC20/func_8000EA54.s @@ -115,7 +115,7 @@ glabel func_8000EA54 /* 00F7E8 8000EBE8 468084A0 */ cvt.s.w $f18, $f16 /* 00F7EC 8000EBEC E6520014 */ swc1 $f18, 0x14($s2) /* 00F7F0 8000EBF0 8E460014 */ lw $a2, 0x14($s2) -/* 00F7F4 8000EBF4 0C00A7C6 */ jal func_80029F18 +/* 00F7F4 8000EBF4 0C00A7C6 */ jal get_level_segment_index_from_position /* 00F7F8 8000EBF8 00000000 */ nop /* 00F7FC 8000EBFC A642002E */ sh $v0, 0x2e($s2) /* 00F800 8000EC00 87A8004E */ lh $t0, 0x4e($sp) diff --git a/asm/non_matchings/unknown_00BC20/func_80011570.s b/asm/non_matchings/unknown_00BC20/func_80011570.s index 88ba53fd..a52a3caf 100644 --- a/asm/non_matchings/unknown_00BC20/func_80011570.s +++ b/asm/non_matchings/unknown_00BC20/func_80011570.s @@ -187,7 +187,7 @@ glabel func_80011570 /* 01240C 8001180C 00000000 */ nop /* 012410 80011810 46802120 */ cvt.s.w $f4, $f4 /* 012414 80011814 44062000 */ mfc1 $a2, $f4 -/* 012418 80011818 0C00A7C6 */ jal func_80029F18 +/* 012418 80011818 0C00A7C6 */ jal get_level_segment_index_from_position /* 01241C 8001181C 00000000 */ nop /* 012420 80011820 8FA70040 */ lw $a3, 0x40($sp) /* 012424 80011824 00000000 */ nop @@ -264,7 +264,7 @@ glabel func_80011570 /* 012524 80011924 AFA70040 */ sw $a3, 0x40($sp) /* 012528 80011928 44064000 */ mfc1 $a2, $f8 /* 01252C 8001192C 46802320 */ cvt.s.w $f12, $f4 -/* 012530 80011930 0C00A7C6 */ jal func_80029F18 +/* 012530 80011930 0C00A7C6 */ jal get_level_segment_index_from_position /* 012534 80011934 468033A0 */ cvt.s.w $f14, $f6 /* 012538 80011938 8FA70040 */ lw $a3, 0x40($sp) /* 01253C 8001193C 2401FFFF */ li $at, -1 diff --git a/asm/non_matchings/unknown_00BC20/func_80022948.s b/asm/non_matchings/unknown_00BC20/func_80022948.s index 2b9444e7..1c49e0ac 100644 --- a/asm/non_matchings/unknown_00BC20/func_80022948.s +++ b/asm/non_matchings/unknown_00BC20/func_80022948.s @@ -111,7 +111,7 @@ glabel func_80022948 /* 0236F8 80022AF8 C50E0014 */ lwc1 $f14, 0x14($t0) /* 0236FC 80022AFC AFA8007C */ sw $t0, 0x7c($sp) /* 023700 80022B00 44063000 */ mfc1 $a2, $f6 -/* 023704 80022B04 0C00A7C6 */ jal func_80029F18 +/* 023704 80022B04 0C00A7C6 */ jal get_level_segment_index_from_position /* 023708 80022B08 46808320 */ cvt.s.w $f12, $f16 /* 02370C 80022B0C 87AA005A */ lh $t2, 0x5a($sp) /* 023710 80022B10 87AB005E */ lh $t3, 0x5e($sp) diff --git a/asm/non_matchings/unknown_00BC20/func_800230D0.s b/asm/non_matchings/unknown_00BC20/func_800230D0.s index 124160d8..c004f8d9 100644 --- a/asm/non_matchings/unknown_00BC20/func_800230D0.s +++ b/asm/non_matchings/unknown_00BC20/func_800230D0.s @@ -86,7 +86,7 @@ glabel func_800230D0 /* 023E0C 8002320C 460A4480 */ add.s $f18, $f8, $f10 /* 023E10 80023210 E6120014 */ swc1 $f18, 0x14($s0) /* 023E14 80023214 8E060014 */ lw $a2, 0x14($s0) -/* 023E18 80023218 0C00A7C6 */ jal func_80029F18 +/* 023E18 80023218 0C00A7C6 */ jal get_level_segment_index_from_position /* 023E1C 8002321C AFA8005C */ sw $t0, 0x5c($sp) /* 023E20 80023220 8FA8005C */ lw $t0, 0x5c($sp) /* 023E24 80023224 A602002E */ sh $v0, 0x2e($s0) diff --git a/asm/non_matchings/unknown_0255E0/func_800249F0.s b/asm/non_matchings/unknown_0255E0/func_800249F0.s index 61e7962f..adc29b9c 100644 --- a/asm/non_matchings/unknown_0255E0/func_800249F0.s +++ b/asm/non_matchings/unknown_0255E0/func_800249F0.s @@ -43,8 +43,8 @@ glabel func_800249F0 /* 02568C 80024A8C 2B010002 */ slti $at, $t8, 2 /* 025690 80024A90 1020001E */ beqz $at, .L80024B0C /* 025694 80024A94 AE000000 */ sw $zero, ($s0) -/* 025698 80024A98 3C02800E */ lui $v0, %hi(D_800DC918) # $v0, 0x800e -/* 02569C 80024A9C 8C42C918 */ lw $v0, %lo(D_800DC918)($v0) +/* 025698 80024A98 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e +/* 02569C 80024A9C 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0) /* 0256A0 80024AA0 00003025 */ move $a2, $zero /* 0256A4 80024AA4 8444001A */ lh $a0, 0x1a($v0) /* 0256A8 80024AA8 00001825 */ move $v1, $zero @@ -63,10 +63,10 @@ glabel func_800249F0 /* 0256D8 80024AD8 254B0001 */ addiu $t3, $t2, 1 /* 0256DC 80024ADC AE0B0000 */ sw $t3, ($s0) /* 0256E0 80024AE0 8C4C0004 */ lw $t4, 4($v0) -/* 0256E4 80024AE4 3C02800E */ lui $v0, %hi(D_800DC918) # $v0, 0x800e +/* 0256E4 80024AE4 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e /* 0256E8 80024AE8 01836821 */ addu $t5, $t4, $v1 /* 0256EC 80024AEC A1A5002B */ sb $a1, 0x2b($t5) -/* 0256F0 80024AF0 8C42C918 */ lw $v0, %lo(D_800DC918)($v0) +/* 0256F0 80024AF0 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0) /* 0256F4 80024AF4 00000000 */ nop /* 0256F8 80024AF8 8444001A */ lh $a0, 0x1a($v0) /* 0256FC 80024AFC 00000000 */ nop @@ -99,10 +99,10 @@ glabel func_800249F0 /* 025750 80024B50 8E180000 */ lw $t8, ($s0) /* 025754 80024B54 00000000 */ nop /* 025758 80024B58 13000006 */ beqz $t8, .L80024B74 -/* 02575C 80024B5C 3C04800E */ lui $a0, %hi(D_800DC918) # $a0, 0x800e +/* 02575C 80024B5C 3C04800E */ lui $a0, %hi(gCurrentLevelModel) # $a0, 0x800e /* 025760 80024B60 3C05800E */ lui $a1, %hi(D_800DC91C) # $a1, 0x800e /* 025764 80024B64 8CA5C91C */ lw $a1, %lo(D_800DC91C)($a1) -/* 025768 80024B68 8C84C918 */ lw $a0, %lo(D_800DC918)($a0) +/* 025768 80024B68 8C84C918 */ lw $a0, %lo(gCurrentLevelModel)($a0) /* 02576C 80024B6C 0C02E0AD */ jal func_800B82B4 /* 025770 80024B70 00000000 */ nop .L80024B74: diff --git a/asm/non_matchings/unknown_0255E0/func_80024D54.s b/asm/non_matchings/unknown_0255E0/func_80024D54.s index c568b3d4..b063d87f 100644 --- a/asm/non_matchings/unknown_0255E0/func_80024D54.s +++ b/asm/non_matchings/unknown_0255E0/func_80024D54.s @@ -213,8 +213,8 @@ glabel func_80024D54 /* 025C70 80025070 8FA40084 */ lw $a0, 0x84($sp) /* 025C74 80025074 0C02BD01 */ jal func_800AF404 /* 025C78 80025078 00000000 */ nop -/* 025C7C 8002507C 3C0D800E */ lui $t5, %hi(D_800DC918) # $t5, 0x800e -/* 025C80 80025080 8DADC918 */ lw $t5, %lo(D_800DC918)($t5) +/* 025C7C 8002507C 3C0D800E */ lui $t5, %hi(gCurrentLevelModel) # $t5, 0x800e +/* 025C80 80025080 8DADC918 */ lw $t5, %lo(gCurrentLevelModel)($t5) /* 025C84 80025084 8FA40084 */ lw $a0, 0x84($sp) /* 025C88 80025088 85AE001E */ lh $t6, 0x1e($t5) /* 025C8C 8002508C 00000000 */ nop diff --git a/asm/non_matchings/unknown_0255E0/func_8002581C.s b/asm/non_matchings/unknown_0255E0/func_8002581C.s index 04ca0f70..b8b7dba0 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002581C.s +++ b/asm/non_matchings/unknown_0255E0/func_8002581C.s @@ -103,13 +103,13 @@ glabel func_8002581C /* 02659C 8002599C 8FAA00C4 */ lw $t2, 0xc4($sp) /* 0265A0 800259A0 3C018012 */ lui $at, %hi(D_8011D4A8) # $at, 0x8012 /* 0265A4 800259A4 46062580 */ add.s $f22, $f4, $f6 -/* 0265A8 800259A8 3C14800E */ lui $s4, %hi(D_800DC918) # $s4, 0x800e +/* 0265A8 800259A8 3C14800E */ lui $s4, %hi(gCurrentLevelModel) # $s4, 0x800e /* 0265AC 800259AC 460C9102 */ mul.s $f4, $f18, $f12 /* 0265B0 800259B0 46000606 */ mov.s $f24, $f0 /* 0265B4 800259B4 4600B587 */ neg.s $f22, $f22 /* 0265B8 800259B8 00009025 */ move $s2, $zero /* 0265BC 800259BC 46048180 */ add.s $f6, $f16, $f4 -/* 0265C0 800259C0 2694C918 */ addiu $s4, %lo(D_800DC918) # addiu $s4, $s4, -0x36e8 +/* 0265C0 800259C0 2694C918 */ addiu $s4, %lo(gCurrentLevelModel) # addiu $s4, $s4, -0x36e8 /* 0265C4 800259C4 46003207 */ neg.s $f8, $f6 /* 0265C8 800259C8 19400069 */ blez $t2, .L80025B70 /* 0265CC 800259CC E428D4A8 */ swc1 $f8, %lo(D_8011D4A8)($at) @@ -224,8 +224,8 @@ glabel func_8002581C /* 026768 80025B68 1420FF9D */ bnez $at, .L800259E0 /* 02676C 80025B6C 8FAB00C0 */ lw $t3, 0xc0($sp) .L80025B70: -/* 026770 80025B70 3C14800E */ lui $s4, %hi(D_800DC918) # $s4, 0x800e -/* 026774 80025B74 2694C918 */ addiu $s4, %lo(D_800DC918) # addiu $s4, $s4, -0x36e8 +/* 026770 80025B70 3C14800E */ lui $s4, %hi(gCurrentLevelModel) # $s4, 0x800e +/* 026774 80025B74 2694C918 */ addiu $s4, %lo(gCurrentLevelModel) # addiu $s4, $s4, -0x36e8 /* 026778 80025B78 8E990000 */ lw $t9, ($s4) /* 02677C 80025B7C 2404012C */ li $a0, 300 /* 026780 80025B80 87250040 */ lh $a1, 0x40($t9) diff --git a/asm/non_matchings/unknown_0255E0/func_80026070.s b/asm/non_matchings/unknown_0255E0/func_80026070.s index c5646d1b..b88b4158 100644 --- a/asm/non_matchings/unknown_0255E0/func_80026070.s +++ b/asm/non_matchings/unknown_0255E0/func_80026070.s @@ -198,7 +198,7 @@ glabel func_80026070 /* 026F4C 8002634C 4622703C */ c.lt.d $f14, $f2 /* 026F50 80026350 E7B00060 */ swc1 $f16, 0x60($sp) /* 026F54 80026354 45010031 */ bc1t .L8002641C -/* 026F58 80026358 3C18800E */ lui $t8, %hi(D_800DC918) # $t8, 0x800e +/* 026F58 80026358 3C18800E */ lui $t8, %hi(gCurrentLevelModel) # $t8, 0x800e /* 026F5C 8002635C 462C103C */ c.lt.d $f2, $f12 /* 026F60 80026360 3C01C396 */ li $at, 0xC3960000 # -300.000000 /* 026F64 80026364 45000004 */ bc1f .L80026378 @@ -220,7 +220,7 @@ glabel func_80026070 /* 026F9C 8002639C 35C10003 */ ori $at, $t6, 3 /* 026FA0 800263A0 38210002 */ xori $at, $at, 2 /* 026FA4 800263A4 44C1F800 */ ctc1 $at, $31 -/* 026FA8 800263A8 8F18C918 */ lw $t8, %lo(D_800DC918)($t8) +/* 026FA8 800263A8 8F18C918 */ lw $t8, %lo(gCurrentLevelModel)($t8) /* 026FAC 800263AC 46005224 */ cvt.w.s $f8, $f10 /* 026FB0 800263B0 87050040 */ lh $a1, 0x40($t8) /* 026FB4 800263B4 44044000 */ mfc1 $a0, $f8 @@ -236,8 +236,8 @@ glabel func_80026070 /* 026FDC 800263DC 37210003 */ ori $at, $t9, 3 /* 026FE0 800263E0 38210002 */ xori $at, $at, 2 /* 026FE4 800263E4 44C1F800 */ ctc1 $at, $31 -/* 026FE8 800263E8 3C0F800E */ lui $t7, %hi(D_800DC918) # $t7, 0x800e -/* 026FEC 800263EC 8DEFC918 */ lw $t7, %lo(D_800DC918)($t7) +/* 026FE8 800263E8 3C0F800E */ lui $t7, %hi(gCurrentLevelModel) # $t7, 0x800e +/* 026FEC 800263EC 8DEFC918 */ lw $t7, %lo(gCurrentLevelModel)($t7) /* 026FF0 800263F0 460021A4 */ cvt.w.s $f6, $f4 /* 026FF4 800263F4 85E50040 */ lh $a1, 0x40($t7) /* 026FF8 800263F8 44043000 */ mfc1 $a0, $f6 diff --git a/asm/non_matchings/unknown_0255E0/func_800278E8.s b/asm/non_matchings/unknown_0255E0/func_800278E8.s index bb876d07..96a37d13 100644 --- a/asm/non_matchings/unknown_0255E0/func_800278E8.s +++ b/asm/non_matchings/unknown_0255E0/func_800278E8.s @@ -335,7 +335,7 @@ glabel func_800278E8 /* 0289E4 80027DE4 C62E003C */ lwc1 $f14, 0x3c($s1) /* 0289E8 80027DE8 C46C000C */ lwc1 $f12, 0xc($v1) /* 0289EC 80027DEC 8C660014 */ lw $a2, 0x14($v1) -/* 0289F0 80027DF0 0C00A7C6 */ jal func_80029F18 +/* 0289F0 80027DF0 0C00A7C6 */ jal get_level_segment_index_from_position /* 0289F4 80027DF4 AFA30058 */ sw $v1, 0x58($sp) /* 0289F8 80027DF8 8FA30058 */ lw $v1, 0x58($sp) /* 0289FC 80027DFC 3C018012 */ lui $at, %hi(D_8011B104) # $at, 0x8012 diff --git a/asm/non_matchings/unknown_0255E0/func_80027E24.s b/asm/non_matchings/unknown_0255E0/func_80027E24.s index 70417692..fa0a6ab2 100644 --- a/asm/non_matchings/unknown_0255E0/func_80027E24.s +++ b/asm/non_matchings/unknown_0255E0/func_80027E24.s @@ -1,7 +1,7 @@ glabel func_80027E24 /* 028A24 80027E24 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 028A28 80027E28 3C05800E */ lui $a1, %hi(D_800DC918) # $a1, 0x800e -/* 028A2C 80027E2C 8CA5C918 */ lw $a1, %lo(D_800DC918)($a1) +/* 028A28 80027E28 3C05800E */ lui $a1, %hi(gCurrentLevelModel) # $a1, 0x800e +/* 028A2C 80027E2C 8CA5C918 */ lw $a1, %lo(gCurrentLevelModel)($a1) /* 028A30 80027E30 AFBF003C */ sw $ra, 0x3c($sp) /* 028A34 80027E34 AFBE0038 */ sw $fp, 0x38($sp) /* 028A38 80027E38 AFB70034 */ sw $s7, 0x34($sp) @@ -76,11 +76,11 @@ glabel func_80027E24 /* 028B40 80027F40 02603825 */ move $a3, $s3 .L80027F44: /* 028B44 80027F44 8FAA0058 */ lw $t2, 0x58($sp) -/* 028B48 80027F48 3C05800E */ lui $a1, %hi(D_800DC918) # $a1, 0x800e +/* 028B48 80027F48 3C05800E */ lui $a1, %hi(gCurrentLevelModel) # $a1, 0x800e /* 028B4C 80027F4C 000A6183 */ sra $t4, $t2, 6 /* 028B50 80027F50 A20C0007 */ sb $t4, 7($s0) /* 028B54 80027F54 86C30020 */ lh $v1, 0x20($s6) -/* 028B58 80027F58 8CA5C918 */ lw $a1, %lo(D_800DC918)($a1) +/* 028B58 80027F58 8CA5C918 */ lw $a1, %lo(gCurrentLevelModel)($a1) /* 028B5C 80027F5C 00000000 */ nop .L80027F60: /* 028B60 80027F60 26310001 */ addiu $s1, $s1, 1 diff --git a/asm/non_matchings/unknown_0255E0/func_80027FC4.s b/asm/non_matchings/unknown_0255E0/func_80027FC4.s deleted file mode 100644 index 8f7c2e66..00000000 --- a/asm/non_matchings/unknown_0255E0/func_80027FC4.s +++ /dev/null @@ -1,36 +0,0 @@ -glabel func_80027FC4 -/* 028BC4 80027FC4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 028BC8 80027FC8 AFBF0014 */ sw $ra, 0x14($sp) -/* 028BCC 80027FCC 0C0168F4 */ jal func_8005A3D0 -/* 028BD0 80027FD0 AFA40028 */ sw $a0, 0x28($sp) -/* 028BD4 80027FD4 8FA20028 */ lw $v0, 0x28($sp) -/* 028BD8 80027FD8 2401FFFF */ li $at, -1 -/* 028BDC 80027FDC 14410004 */ bne $v0, $at, .L80027FF0 -/* 028BE0 80027FE0 3C048012 */ lui $a0, %hi(D_8011B0B8) # $a0, 0x8012 -/* 028BE4 80027FE4 2484B0B8 */ addiu $a0, %lo(D_8011B0B8) # addiu $a0, $a0, -0x4f48 -/* 028BE8 80027FE8 10000012 */ b .L80028034 -/* 028BEC 80027FEC AC800000 */ sw $zero, ($a0) -.L80027FF0: -/* 028BF0 80027FF0 240E0008 */ li $t6, 8 -/* 028BF4 80027FF4 A7A00022 */ sh $zero, 0x22($sp) -/* 028BF8 80027FF8 A7A00024 */ sh $zero, 0x24($sp) -/* 028BFC 80027FFC A7A00026 */ sh $zero, 0x26($sp) -/* 028C00 80028000 A3AE0021 */ sb $t6, 0x21($sp) -/* 028C04 80028004 A3A20020 */ sb $v0, 0x20($sp) -/* 028C08 80028008 27A40020 */ addiu $a0, $sp, 0x20 -/* 028C0C 8002800C 0C003A95 */ jal func_8000EA54 -/* 028C10 80028010 24050002 */ li $a1, 2 -/* 028C14 80028014 3C048012 */ lui $a0, %hi(D_8011B0B8) # $a0, 0x8012 -/* 028C18 80028018 2484B0B8 */ addiu $a0, %lo(D_8011B0B8) # addiu $a0, $a0, -0x4f48 -/* 028C1C 8002801C 10400005 */ beqz $v0, .L80028034 -/* 028C20 80028020 AC820000 */ sw $v0, ($a0) -/* 028C24 80028024 AC40003C */ sw $zero, 0x3c($v0) -/* 028C28 80028028 8C980000 */ lw $t8, ($a0) -/* 028C2C 8002802C 240FFFFF */ li $t7, -1 -/* 028C30 80028030 A70F004A */ sh $t7, 0x4a($t8) -.L80028034: -/* 028C34 80028034 8FBF0014 */ lw $ra, 0x14($sp) -/* 028C38 80028038 27BD0028 */ addiu $sp, $sp, 0x28 -/* 028C3C 8002803C 03E00008 */ jr $ra -/* 028C40 80028040 00000000 */ nop - diff --git a/asm/non_matchings/unknown_0255E0/func_80028CD0.s b/asm/non_matchings/unknown_0255E0/func_80028CD0.s index 39e7f19d..70c9e3e9 100644 --- a/asm/non_matchings/unknown_0255E0/func_80028CD0.s +++ b/asm/non_matchings/unknown_0255E0/func_80028CD0.s @@ -31,10 +31,10 @@ glabel func_80028CD0 /* 029944 80028D44 8C63B0B0 */ lw $v1, %lo(D_8011B0B0)($v1) /* 029948 80028D48 8FA7003C */ lw $a3, 0x3c($sp) /* 02994C 80028D4C 84620034 */ lh $v0, 0x34($v1) -/* 029950 80028D50 3C04800E */ lui $a0, %hi(D_800DC918) # $a0, 0x800e +/* 029950 80028D50 3C04800E */ lui $a0, %hi(gCurrentLevelModel) # $a0, 0x800e /* 029954 80028D54 0440000E */ bltz $v0, .L80028D90 /* 029958 80028D58 3C0E8012 */ lui $t6, %hi(D_8011D384) # $t6, 0x8012 -/* 02995C 80028D5C 8C84C918 */ lw $a0, %lo(D_800DC918)($a0) +/* 02995C 80028D5C 8C84C918 */ lw $a0, %lo(gCurrentLevelModel)($a0) /* 029960 80028D60 00025100 */ sll $t2, $v0, 4 /* 029964 80028D64 8499001A */ lh $t9, 0x1a($a0) /* 029968 80028D68 01425021 */ addu $t2, $t2, $v0 diff --git a/asm/non_matchings/unknown_0255E0/func_80029AF8.s b/asm/non_matchings/unknown_0255E0/func_80029AF8.s index f015d8f6..ae80797d 100644 --- a/asm/non_matchings/unknown_0255E0/func_80029AF8.s +++ b/asm/non_matchings/unknown_0255E0/func_80029AF8.s @@ -4,7 +4,7 @@ glabel func_80029AF8 /* 02A700 80029B00 AFB7003C */ sw $s7, 0x3c($sp) /* 02A704 80029B04 AFB3002C */ sw $s3, 0x2c($sp) /* 02A708 80029B08 3C178012 */ lui $s7, %hi(D_8011B0B0) # $s7, 0x8012 -/* 02A70C 80029B0C 3C1E800E */ lui $fp, %hi(D_800DC918) # $fp, 0x800e +/* 02A70C 80029B0C 3C1E800E */ lui $fp, %hi(gCurrentLevelModel) # $fp, 0x800e /* 02A710 80029B10 AFB60038 */ sw $s6, 0x38($sp) /* 02A714 80029B14 AFB50034 */ sw $s5, 0x34($sp) /* 02A718 80029B18 AFB40030 */ sw $s4, 0x30($sp) @@ -16,7 +16,7 @@ glabel func_80029AF8 /* 02A730 80029B30 00A0A025 */ move $s4, $a1 /* 02A734 80029B34 00C0A825 */ move $s5, $a2 /* 02A738 80029B38 2416FFFF */ li $s6, -1 -/* 02A73C 80029B3C 27DEC918 */ addiu $fp, %lo(D_800DC918) # addiu $fp, $fp, -0x36e8 +/* 02A73C 80029B3C 27DEC918 */ addiu $fp, %lo(gCurrentLevelModel) # addiu $fp, $fp, -0x36e8 /* 02A740 80029B40 26F7B0B0 */ addiu $s7, %lo(D_8011B0B0) # addiu $s7, $s7, -0x4f50 /* 02A744 80029B44 AFBF0044 */ sw $ra, 0x44($sp) /* 02A748 80029B48 AFB00020 */ sw $s0, 0x20($sp) diff --git a/asm/non_matchings/unknown_0255E0/func_80029D14.s b/asm/non_matchings/unknown_0255E0/func_80029D14.s index fd0e158b..01a2501f 100644 --- a/asm/non_matchings/unknown_0255E0/func_80029D14.s +++ b/asm/non_matchings/unknown_0255E0/func_80029D14.s @@ -1,7 +1,7 @@ glabel func_80029D14 /* 02A914 80029D14 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 02A918 80029D18 3C08800E */ lui $t0, %hi(D_800DC918) # $t0, 0x800e -/* 02A91C 80029D1C 8D08C918 */ lw $t0, %lo(D_800DC918)($t0) +/* 02A918 80029D18 3C08800E */ lui $t0, %hi(gCurrentLevelModel) # $t0, 0x800e +/* 02A91C 80029D1C 8D08C918 */ lw $t0, %lo(gCurrentLevelModel)($t0) /* 02A920 80029D20 AFBF0014 */ sw $ra, 0x14($sp) /* 02A924 80029D24 AFA60020 */ sw $a2, 0x20($sp) /* 02A928 80029D28 850E001A */ lh $t6, 0x1a($t0) @@ -54,8 +54,8 @@ glabel func_80029D14 /* 02A9D8 80029DD8 03E00008 */ jr $ra /* 02A9DC 80029DDC 00000000 */ nop -/* 02A9E0 80029DE0 3C02800E */ lui $v0, %hi(D_800DC918) # $v0, 0x800e -/* 02A9E4 80029DE4 8C42C918 */ lw $v0, %lo(D_800DC918)($v0) +/* 02A9E0 80029DE0 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e +/* 02A9E4 80029DE4 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0) /* 02A9E8 80029DE8 00803025 */ move $a2, $a0 /* 02A9EC 80029DEC 844E001A */ lh $t6, 0x1a($v0) /* 02A9F0 80029DF0 00000000 */ nop diff --git a/asm/non_matchings/unknown_0255E0/func_8002A134.s b/asm/non_matchings/unknown_0255E0/func_8002A134.s deleted file mode 100644 index aa7be802..00000000 --- a/asm/non_matchings/unknown_0255E0/func_8002A134.s +++ /dev/null @@ -1,94 +0,0 @@ -glabel func_8002A134 -/* 02AD34 8002A134 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 02AD38 8002A138 AFB20010 */ sw $s2, 0x10($sp) -/* 02AD3C 8002A13C AFB1000C */ sw $s1, 0xc($sp) -/* 02AD40 8002A140 AFB00008 */ sw $s0, 8($sp) -/* 02AD44 8002A144 3C08800E */ lui $t0, %hi(D_800DC918) # $t0, 0x800e -/* 02AD48 8002A148 87B0002A */ lh $s0, 0x2a($sp) -/* 02AD4C 8002A14C 87B1002E */ lh $s1, 0x2e($sp) -/* 02AD50 8002A150 87B20032 */ lh $s2, 0x32($sp) -/* 02AD54 8002A154 8D08C918 */ lw $t0, %lo(D_800DC918)($t0) -/* 02AD58 8002A158 AFA5001C */ sw $a1, 0x1c($sp) -/* 02AD5C 8002A15C AFA60020 */ sw $a2, 0x20($sp) -/* 02AD60 8002A160 AFA70024 */ sw $a3, 0x24($sp) -/* 02AD64 8002A164 00A07825 */ move $t7, $a1 -/* 02AD68 8002A168 00C0C825 */ move $t9, $a2 -/* 02AD6C 8002A16C 00E06025 */ move $t4, $a3 -/* 02AD70 8002A170 AFB30014 */ sw $s3, 0x14($sp) -/* 02AD74 8002A174 25E5FFFC */ addiu $a1, $t7, -4 -/* 02AD78 8002A178 2726FFFC */ addiu $a2, $t9, -4 -/* 02AD7C 8002A17C 2587FFFC */ addiu $a3, $t4, -4 -/* 02AD80 8002A180 8509001A */ lh $t1, 0x1a($t0) -/* 02AD84 8002A184 26100004 */ addiu $s0, $s0, 4 -/* 02AD88 8002A188 26310004 */ addiu $s1, $s1, 4 -/* 02AD8C 8002A18C 26520004 */ addiu $s2, $s2, 4 -/* 02AD90 8002A190 00056C00 */ sll $t5, $a1, 0x10 -/* 02AD94 8002A194 00067C00 */ sll $t7, $a2, 0x10 -/* 02AD98 8002A198 0007CC00 */ sll $t9, $a3, 0x10 -/* 02AD9C 8002A19C 00106400 */ sll $t4, $s0, 0x10 -/* 02ADA0 8002A1A0 00117400 */ sll $t6, $s1, 0x10 -/* 02ADA4 8002A1A4 0012C400 */ sll $t8, $s2, 0x10 -/* 02ADA8 8002A1A8 00809825 */ move $s3, $a0 -/* 02ADAC 8002A1AC 000D2C03 */ sra $a1, $t5, 0x10 -/* 02ADB0 8002A1B0 000F3403 */ sra $a2, $t7, 0x10 -/* 02ADB4 8002A1B4 00193C03 */ sra $a3, $t9, 0x10 -/* 02ADB8 8002A1B8 000C8403 */ sra $s0, $t4, 0x10 -/* 02ADBC 8002A1BC 000E8C03 */ sra $s1, $t6, 0x10 -/* 02ADC0 8002A1C0 00189403 */ sra $s2, $t8, 0x10 -/* 02ADC4 8002A1C4 00001025 */ move $v0, $zero -/* 02ADC8 8002A1C8 1920002D */ blez $t1, .L8002A280 -/* 02ADCC 8002A1CC 00001825 */ move $v1, $zero -/* 02ADD0 8002A1D0 00005025 */ move $t2, $zero -.L8002A1D4: -/* 02ADD4 8002A1D4 8D0B0008 */ lw $t3, 8($t0) -/* 02ADD8 8002A1D8 00000000 */ nop -/* 02ADDC 8002A1DC 016A2021 */ addu $a0, $t3, $t2 -/* 02ADE0 8002A1E0 848C0006 */ lh $t4, 6($a0) -/* 02ADE4 8002A1E4 00000000 */ nop -/* 02ADE8 8002A1E8 0185082A */ slt $at, $t4, $a1 -/* 02ADEC 8002A1EC 14200020 */ bnez $at, .L8002A270 -/* 02ADF0 8002A1F0 00000000 */ nop -/* 02ADF4 8002A1F4 848D0000 */ lh $t5, ($a0) -/* 02ADF8 8002A1F8 00000000 */ nop -/* 02ADFC 8002A1FC 020D082A */ slt $at, $s0, $t5 -/* 02AE00 8002A200 1420001B */ bnez $at, .L8002A270 -/* 02AE04 8002A204 00000000 */ nop -/* 02AE08 8002A208 848E000A */ lh $t6, 0xa($a0) -/* 02AE0C 8002A20C 00000000 */ nop -/* 02AE10 8002A210 01C7082A */ slt $at, $t6, $a3 -/* 02AE14 8002A214 14200016 */ bnez $at, .L8002A270 -/* 02AE18 8002A218 00000000 */ nop -/* 02AE1C 8002A21C 848F0004 */ lh $t7, 4($a0) -/* 02AE20 8002A220 00000000 */ nop -/* 02AE24 8002A224 024F082A */ slt $at, $s2, $t7 -/* 02AE28 8002A228 14200011 */ bnez $at, .L8002A270 -/* 02AE2C 8002A22C 00000000 */ nop -/* 02AE30 8002A230 84980008 */ lh $t8, 8($a0) -/* 02AE34 8002A234 00000000 */ nop -/* 02AE38 8002A238 0306082A */ slt $at, $t8, $a2 -/* 02AE3C 8002A23C 1420000C */ bnez $at, .L8002A270 -/* 02AE40 8002A240 00000000 */ nop -/* 02AE44 8002A244 84990002 */ lh $t9, 2($a0) -/* 02AE48 8002A248 00000000 */ nop -/* 02AE4C 8002A24C 0239082A */ slt $at, $s1, $t9 -/* 02AE50 8002A250 14200007 */ bnez $at, .L8002A270 -/* 02AE54 8002A254 00000000 */ nop -/* 02AE58 8002A258 AE620000 */ sw $v0, ($s3) -/* 02AE5C 8002A25C 3C08800E */ lui $t0, %hi(D_800DC918) # $t0, 0x800e -/* 02AE60 8002A260 8D08C918 */ lw $t0, %lo(D_800DC918)($t0) -/* 02AE64 8002A264 24630001 */ addiu $v1, $v1, 1 -/* 02AE68 8002A268 8509001A */ lh $t1, 0x1a($t0) -/* 02AE6C 8002A26C 26730004 */ addiu $s3, $s3, 4 -.L8002A270: -/* 02AE70 8002A270 24420001 */ addiu $v0, $v0, 1 -/* 02AE74 8002A274 0049082A */ slt $at, $v0, $t1 -/* 02AE78 8002A278 1420FFD6 */ bnez $at, .L8002A1D4 -/* 02AE7C 8002A27C 254A000C */ addiu $t2, $t2, 0xc -.L8002A280: -/* 02AE80 8002A280 8FB00008 */ lw $s0, 8($sp) -/* 02AE84 8002A284 8FB1000C */ lw $s1, 0xc($sp) -/* 02AE88 8002A288 8FB20010 */ lw $s2, 0x10($sp) -/* 02AE8C 8002A28C 8FB30014 */ lw $s3, 0x14($sp) -/* 02AE90 8002A290 27BD0018 */ addiu $sp, $sp, 0x18 -/* 02AE94 8002A294 03E00008 */ jr $ra -/* 02AE98 8002A298 00601025 */ move $v0, $v1 diff --git a/asm/non_matchings/unknown_0255E0/func_8002A900.s b/asm/non_matchings/unknown_0255E0/func_8002A900.s index b090a238..557c68a6 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002A900.s +++ b/asm/non_matchings/unknown_0255E0/func_8002A900.s @@ -215,8 +215,8 @@ glabel L8002AB58 /* 02B7F8 8002ABF8 03E00008 */ jr $ra /* 02B7FC 8002ABFC 27BD0058 */ addiu $sp, $sp, 0x58 -/* 02B800 8002AC00 3C02800E */ lui $v0, %hi(D_800DC918) # $v0, 0x800e -/* 02B804 8002AC04 8C42C918 */ lw $v0, %lo(D_800DC918)($v0) +/* 02B800 8002AC00 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e +/* 02B804 8002AC04 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0) /* 02B808 8002AC08 00000000 */ nop /* 02B80C 8002AC0C 8443001A */ lh $v1, 0x1a($v0) /* 02B810 8002AC10 00000000 */ nop diff --git a/asm/non_matchings/unknown_0255E0/func_8002B0F4.s b/asm/non_matchings/unknown_0255E0/func_8002B0F4.s index 72d558be..6534fb3e 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002B0F4.s +++ b/asm/non_matchings/unknown_0255E0/func_8002B0F4.s @@ -58,8 +58,8 @@ glabel func_8002B0F4 .L8002B1CC: /* 02BDCC 8002B1CC 03B94821 */ addu $t1, $sp, $t9 /* 02BDD0 8002B1D0 8D2900B0 */ lw $t1, 0xb0($t1) -/* 02BDD4 8002B1D4 3C0B800E */ lui $t3, %hi(D_800DC918) # $t3, 0x800e -/* 02BDD8 8002B1D8 8D6BC918 */ lw $t3, %lo(D_800DC918)($t3) +/* 02BDD4 8002B1D4 3C0B800E */ lui $t3, %hi(gCurrentLevelModel) # $t3, 0x800e +/* 02BDD8 8002B1D8 8D6BC918 */ lw $t3, %lo(gCurrentLevelModel)($t3) /* 02BDDC 8002B1DC 0009C080 */ sll $t8, $t1, 2 /* 02BDE0 8002B1E0 8D790008 */ lw $t9, 8($t3) /* 02BDE4 8002B1E4 00097100 */ sll $t6, $t1, 4 @@ -215,8 +215,8 @@ glabel func_8002B0F4 /* 02C014 8002B414 8FF9000C */ lw $t9, 0xc($ra) /* 02C018 8002B418 01D77023 */ subu $t6, $t6, $s7 /* 02C01C 8002B41C 000E7080 */ sll $t6, $t6, 2 -/* 02C020 8002B420 3C0F800E */ lui $t7, %hi(D_800DC918) # $t7, 0x800e -/* 02C024 8002B424 8DEFC918 */ lw $t7, %lo(D_800DC918)($t7) +/* 02C020 8002B420 3C0F800E */ lui $t7, %hi(gCurrentLevelModel) # $t7, 0x800e +/* 02C024 8002B424 8DEFC918 */ lw $t7, %lo(gCurrentLevelModel)($t7) /* 02C028 8002B428 032E1821 */ addu $v1, $t9, $t6 /* 02C02C 8002B42C 90790000 */ lbu $t9, ($v1) /* 02C030 8002B430 8DF80000 */ lw $t8, ($t7) @@ -377,8 +377,8 @@ glabel func_8002B0F4 /* 02C284 8002B684 00000000 */ nop .L8002B688: /* 02C288 8002B688 0600002C */ bltz $s0, .L8002B73C -/* 02C28C 8002B68C 3C0B800E */ lui $t3, %hi(D_800DC918) # $t3, 0x800e -/* 02C290 8002B690 8D6BC918 */ lw $t3, %lo(D_800DC918)($t3) +/* 02C28C 8002B68C 3C0B800E */ lui $t3, %hi(gCurrentLevelModel) # $t3, 0x800e +/* 02C290 8002B690 8D6BC918 */ lw $t3, %lo(gCurrentLevelModel)($t3) /* 02C294 8002B694 3C088012 */ lui $t0, %hi(D_8011D128) # $t0, 0x8012 /* 02C298 8002B698 8579001A */ lh $t9, 0x1a($t3) /* 02C29C 8002B69C 2508D128 */ addiu $t0, %lo(D_8011D128) # addiu $t0, $t0, -0x2ed8 diff --git a/asm/non_matchings/unknown_0255E0/func_8002B9BC.s b/asm/non_matchings/unknown_0255E0/func_8002B9BC.s deleted file mode 100644 index 054e2b2b..00000000 --- a/asm/non_matchings/unknown_0255E0/func_8002B9BC.s +++ /dev/null @@ -1,68 +0,0 @@ -glabel func_8002B9BC -/* 02C5BC 8002B9BC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 02C5C0 8002B9C0 AFB00018 */ sw $s0, 0x18($sp) -/* 02C5C4 8002B9C4 00C08025 */ move $s0, $a2 -/* 02C5C8 8002B9C8 AFBF001C */ sw $ra, 0x1c($sp) -/* 02C5CC 8002B9CC AFA40020 */ sw $a0, 0x20($sp) -/* 02C5D0 8002B9D0 10C00007 */ beqz $a2, .L8002B9F0 -/* 02C5D4 8002B9D4 AFA50024 */ sw $a1, 0x24($sp) -/* 02C5D8 8002B9D8 44800000 */ mtc1 $zero, $f0 -/* 02C5DC 8002B9DC 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 02C5E0 8002B9E0 44812000 */ mtc1 $at, $f4 -/* 02C5E4 8002B9E4 E4C00000 */ swc1 $f0, ($a2) -/* 02C5E8 8002B9E8 E4C00008 */ swc1 $f0, 8($a2) -/* 02C5EC 8002B9EC E4C40004 */ swc1 $f4, 4($a2) -.L8002B9F0: -/* 02C5F0 8002B9F0 8FAE0020 */ lw $t6, 0x20($sp) -/* 02C5F4 8002B9F4 3C02800E */ lui $v0, %hi(D_800DC918) # $v0, 0x800e -/* 02C5F8 8002B9F8 85C4002E */ lh $a0, 0x2e($t6) -/* 02C5FC 8002B9FC 00000000 */ nop -/* 02C600 8002BA00 04800008 */ bltz $a0, .L8002BA24 -/* 02C604 8002BA04 00000000 */ nop -/* 02C608 8002BA08 8C42C918 */ lw $v0, %lo(D_800DC918)($v0) -/* 02C60C 8002BA0C 0004C900 */ sll $t9, $a0, 4 -/* 02C610 8002BA10 844F001A */ lh $t7, 0x1a($v0) -/* 02C614 8002BA14 0324C821 */ addu $t9, $t9, $a0 -/* 02C618 8002BA18 008F082A */ slt $at, $a0, $t7 -/* 02C61C 8002BA1C 14200003 */ bnez $at, .L8002BA2C -/* 02C620 8002BA20 00000000 */ nop -.L8002BA24: -/* 02C624 8002BA24 1000001E */ b .L8002BAA0 -/* 02C628 8002BA28 00001025 */ move $v0, $zero -.L8002BA2C: -/* 02C62C 8002BA2C 8C580004 */ lw $t8, 4($v0) -/* 02C630 8002BA30 0019C880 */ sll $t9, $t9, 2 -/* 02C634 8002BA34 03191821 */ addu $v1, $t8, $t9 -/* 02C638 8002BA38 8068002B */ lb $t0, 0x2b($v1) -/* 02C63C 8002BA3C 3C098012 */ lui $t1, %hi(D_8011D384) # $t1, 0x8012 -/* 02C640 8002BA40 11000011 */ beqz $t0, .L8002BA88 -/* 02C644 8002BA44 00000000 */ nop -/* 02C648 8002BA48 8D29D384 */ lw $t1, %lo(D_8011D384)($t1) -/* 02C64C 8002BA4C 24010001 */ li $at, 1 -/* 02C650 8002BA50 1120000D */ beqz $t1, .L8002BA88 -/* 02C654 8002BA54 00000000 */ nop -/* 02C658 8002BA58 14E1000B */ bne $a3, $at, .L8002BA88 -/* 02C65C 8002BA5C 00000000 */ nop -/* 02C660 8002BA60 8FAA0020 */ lw $t2, 0x20($sp) -/* 02C664 8002BA64 02003825 */ move $a3, $s0 -/* 02C668 8002BA68 8D45000C */ lw $a1, 0xc($t2) -/* 02C66C 8002BA6C 8D460014 */ lw $a2, 0x14($t2) -/* 02C670 8002BA70 0C02ECBD */ jal func_800BB2F4 -/* 02C674 8002BA74 00000000 */ nop -/* 02C678 8002BA78 8FAB0024 */ lw $t3, 0x24($sp) -/* 02C67C 8002BA7C 24020001 */ li $v0, 1 -/* 02C680 8002BA80 10000007 */ b .L8002BAA0 -/* 02C684 8002BA84 E5600000 */ swc1 $f0, ($t3) -.L8002BA88: -/* 02C688 8002BA88 846C0038 */ lh $t4, 0x38($v1) -/* 02C68C 8002BA8C 8FAD0024 */ lw $t5, 0x24($sp) -/* 02C690 8002BA90 448C3000 */ mtc1 $t4, $f6 -/* 02C694 8002BA94 24020001 */ li $v0, 1 -/* 02C698 8002BA98 46803220 */ cvt.s.w $f8, $f6 -/* 02C69C 8002BA9C E5A80000 */ swc1 $f8, ($t5) -.L8002BAA0: -/* 02C6A0 8002BAA0 8FBF001C */ lw $ra, 0x1c($sp) -/* 02C6A4 8002BAA4 8FB00018 */ lw $s0, 0x18($sp) -/* 02C6A8 8002BAA8 03E00008 */ jr $ra -/* 02C6AC 8002BAAC 27BD0020 */ addiu $sp, $sp, 0x20 - diff --git a/asm/non_matchings/unknown_0255E0/func_8002BAB0.s b/asm/non_matchings/unknown_0255E0/func_8002BAB0.s index a691f825..ab5667c8 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002BAB0.s +++ b/asm/non_matchings/unknown_0255E0/func_8002BAB0.s @@ -16,8 +16,8 @@ glabel func_8002BAB0 /* 02C6E8 8002BAE8 E7B50008 */ swc1 $f21, 8($sp) /* 02C6EC 8002BAEC 04800009 */ bltz $a0, .L8002BB14 /* 02C6F0 8002BAF0 E7B4000C */ swc1 $f20, 0xc($sp) -/* 02C6F4 8002BAF4 3C02800E */ lui $v0, %hi(D_800DC918) # $v0, 0x800e -/* 02C6F8 8002BAF8 8C42C918 */ lw $v0, %lo(D_800DC918)($v0) +/* 02C6F4 8002BAF4 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e +/* 02C6F8 8002BAF8 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0) /* 02C6FC 8002BAFC 0004C100 */ sll $t8, $a0, 4 /* 02C700 8002BB00 844E001A */ lh $t6, 0x1a($v0) /* 02C704 8002BB04 0304C021 */ addu $t8, $t8, $a0 diff --git a/asm/non_matchings/unknown_0255E0/func_8002C0C4.s b/asm/non_matchings/unknown_0255E0/func_8002C0C4.s index c92c8e8c..ee713ce8 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002C0C4.s +++ b/asm/non_matchings/unknown_0255E0/func_8002C0C4.s @@ -24,8 +24,8 @@ glabel func_8002C0C4 /* 02CD04 8002C104 0C01C327 */ jal allocate_from_main_pool_safe /* 02CD08 8002C108 02A02025 */ move $a0, $s5 /* 02CD0C 8002C10C 3C038012 */ lui $v1, %hi(D_8011D30C) # $v1, 0x8012 -/* 02CD10 8002C110 3C11800E */ lui $s1, %hi(D_800DC918) # $s1, 0x800e -/* 02CD14 8002C114 2631C918 */ addiu $s1, %lo(D_800DC918) # addiu $s1, $s1, -0x36e8 +/* 02CD10 8002C110 3C11800E */ lui $s1, %hi(gCurrentLevelModel) # $s1, 0x800e +/* 02CD14 8002C114 2631C918 */ addiu $s1, %lo(gCurrentLevelModel) # addiu $s1, $s1, -0x36e8 /* 02CD18 8002C118 2463D30C */ addiu $v1, %lo(D_8011D30C) # addiu $v1, $v1, -0x2cf4 /* 02CD1C 8002C11C 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff /* 02CD20 8002C120 AC620000 */ sw $v0, ($v1) diff --git a/asm/non_matchings/unknown_0255E0/func_8002C71C.s b/asm/non_matchings/unknown_0255E0/func_8002C71C.s deleted file mode 100644 index 7d0c3456..00000000 --- a/asm/non_matchings/unknown_0255E0/func_8002C71C.s +++ /dev/null @@ -1,48 +0,0 @@ -glabel func_8002C71C -/* 02D31C 8002C71C 848E0020 */ lh $t6, 0x20($a0) -/* 02D320 8002C720 2408D8F0 */ li $t0, -10000 -/* 02D324 8002C724 A4880038 */ sh $t0, 0x38($a0) -/* 02D328 8002C728 00001025 */ move $v0, $zero -/* 02D32C 8002C72C 19C00023 */ blez $t6, .L8002C7BC -/* 02D330 8002C730 00001825 */ move $v1, $zero -/* 02D334 8002C734 00002825 */ move $a1, $zero -/* 02D338 8002C738 2409000A */ li $t1, 10 -.L8002C73C: -/* 02D33C 8002C73C 8C8F000C */ lw $t7, 0xc($a0) -/* 02D340 8002C740 00000000 */ nop -/* 02D344 8002C744 01E5C021 */ addu $t8, $t7, $a1 -/* 02D348 8002C748 8F190008 */ lw $t9, 8($t8) -/* 02D34C 8002C74C 00000000 */ nop -/* 02D350 8002C750 332A2000 */ andi $t2, $t9, 0x2000 -/* 02D354 8002C754 11400014 */ beqz $t2, .L8002C7A8 -/* 02D358 8002C758 00000000 */ nop -/* 02D35C 8002C75C 8C8B0034 */ lw $t3, 0x34($a0) -/* 02D360 8002C760 00026040 */ sll $t4, $v0, 1 -/* 02D364 8002C764 016C6821 */ addu $t5, $t3, $t4 -/* 02D368 8002C768 A5A30000 */ sh $v1, ($t5) -/* 02D36C 8002C76C 8C8F000C */ lw $t7, 0xc($a0) -/* 02D370 8002C770 8C8E0000 */ lw $t6, ($a0) -/* 02D374 8002C774 01E5C021 */ addu $t8, $t7, $a1 -/* 02D378 8002C778 87190002 */ lh $t9, 2($t8) -/* 02D37C 8002C77C 84870038 */ lh $a3, 0x38($a0) -/* 02D380 8002C780 03290019 */ multu $t9, $t1 -/* 02D384 8002C784 24420001 */ addiu $v0, $v0, 1 -/* 02D388 8002C788 00005012 */ mflo $t2 -/* 02D38C 8002C78C 01CA5821 */ addu $t3, $t6, $t2 -/* 02D390 8002C790 85660002 */ lh $a2, 2($t3) -/* 02D394 8002C794 11070003 */ beq $t0, $a3, .L8002C7A4 -/* 02D398 8002C798 00E6082A */ slt $at, $a3, $a2 -/* 02D39C 8002C79C 10200002 */ beqz $at, .L8002C7A8 -/* 02D3A0 8002C7A0 00000000 */ nop -.L8002C7A4: -/* 02D3A4 8002C7A4 A4860038 */ sh $a2, 0x38($a0) -.L8002C7A8: -/* 02D3A8 8002C7A8 848C0020 */ lh $t4, 0x20($a0) -/* 02D3AC 8002C7AC 24630001 */ addiu $v1, $v1, 1 -/* 02D3B0 8002C7B0 006C082A */ slt $at, $v1, $t4 -/* 02D3B4 8002C7B4 1420FFE1 */ bnez $at, .L8002C73C -/* 02D3B8 8002C7B8 24A5000C */ addiu $a1, $a1, 0xc -.L8002C7BC: -/* 02D3BC 8002C7BC 03E00008 */ jr $ra -/* 02D3C0 8002C7C0 A4820032 */ sh $v0, 0x32($a0) - diff --git a/asm/non_matchings/unknown_0255E0/func_8002C7D4.s b/asm/non_matchings/unknown_0255E0/func_8002C7D4.s index 55a7a8bc..692864e6 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002C7D4.s +++ b/asm/non_matchings/unknown_0255E0/func_8002C7D4.s @@ -15,8 +15,8 @@ glabel func_8002C7D4 /* 02D408 8002C808 0C02DF48 */ jal func_800B7D20 /* 02D40C 8002C80C 00000000 */ nop .L8002C810: -/* 02D410 8002C810 3C14800E */ lui $s4, %hi(D_800DC918) # $s4, 0x800e -/* 02D414 8002C814 2694C918 */ addiu $s4, %lo(D_800DC918) # addiu $s4, $s4, -0x36e8 +/* 02D410 8002C810 3C14800E */ lui $s4, %hi(gCurrentLevelModel) # $s4, 0x800e +/* 02D414 8002C814 2694C918 */ addiu $s4, %lo(gCurrentLevelModel) # addiu $s4, $s4, -0x36e8 /* 02D418 8002C818 8E910000 */ lw $s1, ($s4) /* 02D41C 8002C81C 00008025 */ move $s0, $zero /* 02D420 8002C820 862F0018 */ lh $t7, 0x18($s1) diff --git a/asm/non_matchings/unknown_0255E0/func_8002DE30.s b/asm/non_matchings/unknown_0255E0/func_8002DE30.s index 810d1f7d..7b4289e0 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002DE30.s +++ b/asm/non_matchings/unknown_0255E0/func_8002DE30.s @@ -44,9 +44,9 @@ glabel func_8002DE30 /* 02EAC4 8002DEC4 C6C0000C */ lwc1 $f0, 0xc($s6) /* 02EAC8 8002DEC8 C6C20014 */ lwc1 $f2, 0x14($s6) /* 02EACC 8002DECC 460C0201 */ sub.s $f8, $f0, $f12 -/* 02EAD0 8002DED0 3C10800E */ lui $s0, %hi(D_800DC918) # $s0, 0x800e +/* 02EAD0 8002DED0 3C10800E */ lui $s0, %hi(gCurrentLevelModel) # $s0, 0x800e /* 02EAD4 8002DED4 4458F800 */ cfc1 $t8, $31 -/* 02EAD8 8002DED8 2610C918 */ addiu $s0, %lo(D_800DC918) # addiu $s0, $s0, -0x36e8 +/* 02EAD8 8002DED8 2610C918 */ addiu $s0, %lo(gCurrentLevelModel) # addiu $s0, $s0, -0x36e8 /* 02EADC 8002DEDC 37010003 */ ori $at, $t8, 3 /* 02EAE0 8002DEE0 38210002 */ xori $at, $at, 2 /* 02EAE4 8002DEE4 44C1F800 */ ctc1 $at, $31 diff --git a/asm/non_matchings/unknown_0255E0/func_8002E234.s b/asm/non_matchings/unknown_0255E0/func_8002E234.s index ade10c62..5e16a5b9 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002E234.s +++ b/asm/non_matchings/unknown_0255E0/func_8002E234.s @@ -325,8 +325,8 @@ glabel func_8002E234 /* 02F2E8 8002E6E8 AC23D0EC */ sw $v1, %lo(D_8011D0EC)($at) /* 02F2EC 8002E6EC 1840005C */ blez $v0, .L8002E860 /* 02F2F0 8002E6F0 00009025 */ move $s2, $zero -/* 02F2F4 8002E6F4 3C13800E */ lui $s3, %hi(D_800DC918) # $s3, 0x800e -/* 02F2F8 8002E6F8 2673C918 */ addiu $s3, %lo(D_800DC918) # addiu $s3, $s3, -0x36e8 +/* 02F2F4 8002E6F4 3C13800E */ lui $s3, %hi(gCurrentLevelModel) # $s3, 0x800e +/* 02F2F8 8002E6F8 2673C918 */ addiu $s3, %lo(gCurrentLevelModel) # addiu $s3, $s3, -0x36e8 /* 02F2FC 8002E6FC 27B10078 */ addiu $s1, $sp, 0x78 /* 02F300 8002E700 24140044 */ li $s4, 68 .L8002E704: diff --git a/asm/non_matchings/unknown_0255E0/func_80030750.s b/asm/non_matchings/unknown_0255E0/func_80030750.s deleted file mode 100644 index 3a899f74..00000000 --- a/asm/non_matchings/unknown_0255E0/func_80030750.s +++ /dev/null @@ -1,29 +0,0 @@ -glabel func_80030750 -/* 031350 80030750 000470C0 */ sll $t6, $a0, 3 -/* 031354 80030754 01C47023 */ subu $t6, $t6, $a0 -/* 031358 80030758 3C0F8012 */ lui $t7, %hi(D_8011D388) # $t7, 0x8012 -/* 03135C 8003075C 25EFD388 */ addiu $t7, %lo(D_8011D388) # addiu $t7, $t7, -0x2c78 -/* 031360 80030760 000E70C0 */ sll $t6, $t6, 3 -/* 031364 80030764 01CF1021 */ addu $v0, $t6, $t7 -/* 031368 80030768 8C58000C */ lw $t8, 0xc($v0) -/* 03136C 8003076C 00000000 */ nop -/* 031370 80030770 0018CC03 */ sra $t9, $t8, 0x10 -/* 031374 80030774 A4B90000 */ sh $t9, ($a1) -/* 031378 80030778 8C480010 */ lw $t0, 0x10($v0) -/* 03137C 8003077C 00000000 */ nop -/* 031380 80030780 00084C03 */ sra $t1, $t0, 0x10 -/* 031384 80030784 A4C90000 */ sh $t1, ($a2) -/* 031388 80030788 8C4A0000 */ lw $t2, ($v0) -/* 03138C 8003078C 00000000 */ nop -/* 031390 80030790 000A5C03 */ sra $t3, $t2, 0x10 -/* 031394 80030794 A0EB0000 */ sb $t3, ($a3) -/* 031398 80030798 8C4C0004 */ lw $t4, 4($v0) -/* 03139C 8003079C 8FAE0010 */ lw $t6, 0x10($sp) -/* 0313A0 800307A0 000C6C03 */ sra $t5, $t4, 0x10 -/* 0313A4 800307A4 A1CD0000 */ sb $t5, ($t6) -/* 0313A8 800307A8 8C4F0008 */ lw $t7, 8($v0) -/* 0313AC 800307AC 8FB90014 */ lw $t9, 0x14($sp) -/* 0313B0 800307B0 000FC403 */ sra $t8, $t7, 0x10 -/* 0313B4 800307B4 03E00008 */ jr $ra -/* 0313B8 800307B8 A3380000 */ sb $t8, ($t9) - diff --git a/asm/non_matchings/unknown_0255E0/func_800307BC.s b/asm/non_matchings/unknown_0255E0/func_800307BC.s deleted file mode 100644 index ab32c316..00000000 --- a/asm/non_matchings/unknown_0255E0/func_800307BC.s +++ /dev/null @@ -1,33 +0,0 @@ -glabel func_800307BC -/* 0313BC 800307BC 000470C0 */ sll $t6, $a0, 3 -/* 0313C0 800307C0 01C47023 */ subu $t6, $t6, $a0 -/* 0313C4 800307C4 3C0F8012 */ lui $t7, %hi(D_8011D388) # $t7, 0x8012 -/* 0313C8 800307C8 25EFD388 */ addiu $t7, %lo(D_8011D388) # addiu $t7, $t7, -0x2c78 -/* 0313CC 800307CC 000E70C0 */ sll $t6, $t6, 3 -/* 0313D0 800307D0 01CF1021 */ addu $v0, $t6, $t7 -/* 0313D4 800307D4 8C480000 */ lw $t0, ($v0) -/* 0313D8 800307D8 8C4A0004 */ lw $t2, 4($v0) -/* 0313DC 800307DC 8C4C0008 */ lw $t4, 8($v0) -/* 0313E0 800307E0 3C1803FA */ lui $t8, 0x3fa -/* 0313E4 800307E4 3C1903FF */ lui $t9, 0x3ff -/* 0313E8 800307E8 240E03FA */ li $t6, 1018 -/* 0313EC 800307EC 240F03FF */ li $t7, 1023 -/* 0313F0 800307F0 00084C03 */ sra $t1, $t0, 0x10 -/* 0313F4 800307F4 000A5C03 */ sra $t3, $t2, 0x10 -/* 0313F8 800307F8 000C6C03 */ sra $t5, $t4, 0x10 -/* 0313FC 800307FC AC400020 */ sw $zero, 0x20($v0) -/* 031400 80030800 AC400024 */ sw $zero, 0x24($v0) -/* 031404 80030804 AC400014 */ sw $zero, 0x14($v0) -/* 031408 80030808 AC400018 */ sw $zero, 0x18($v0) -/* 03140C 8003080C AC40001C */ sw $zero, 0x1c($v0) -/* 031410 80030810 AC58000C */ sw $t8, 0xc($v0) -/* 031414 80030814 AC590010 */ sw $t9, 0x10($v0) -/* 031418 80030818 A0490028 */ sb $t1, 0x28($v0) -/* 03141C 8003081C A04B0029 */ sb $t3, 0x29($v0) -/* 031420 80030820 A04D002A */ sb $t5, 0x2a($v0) -/* 031424 80030824 A44E002C */ sh $t6, 0x2c($v0) -/* 031428 80030828 A44F002E */ sh $t7, 0x2e($v0) -/* 03142C 8003082C AC400030 */ sw $zero, 0x30($v0) -/* 031430 80030830 03E00008 */ jr $ra -/* 031434 80030834 AC400034 */ sw $zero, 0x34($v0) - diff --git a/asm/non_matchings/unknown_0255E0/func_80030838.s b/asm/non_matchings/unknown_0255E0/func_80030838.s deleted file mode 100644 index 895b5764..00000000 --- a/asm/non_matchings/unknown_0255E0/func_80030838.s +++ /dev/null @@ -1,71 +0,0 @@ -glabel func_80030838 -/* 031438 80030838 00A03025 */ move $a2, $a1 -/* 03143C 8003083C 1880003D */ blez $a0, .L80030934 -/* 031440 80030840 00001025 */ move $v0, $zero -/* 031444 80030844 3C038012 */ lui $v1, %hi(D_8011D388) # $v1, 0x8012 -/* 031448 80030848 2463D388 */ addiu $v1, %lo(D_8011D388) # addiu $v1, $v1, -0x2c78 -.L8003084C: -/* 03144C 8003084C 8C650030 */ lw $a1, 0x30($v1) -/* 031450 80030850 24420001 */ addiu $v0, $v0, 1 -/* 031454 80030854 18A00035 */ blez $a1, .L8003092C -/* 031458 80030858 00C5082A */ slt $at, $a2, $a1 -/* 03145C 8003085C 10200023 */ beqz $at, .L800308EC -/* 031460 80030860 00000000 */ nop -/* 031464 80030864 8C6F0014 */ lw $t7, 0x14($v1) -/* 031468 80030868 8C690018 */ lw $t1, 0x18($v1) -/* 03146C 8003086C 01E60019 */ multu $t7, $a2 -/* 031470 80030870 8C6D001C */ lw $t5, 0x1c($v1) -/* 031474 80030874 8C6E0000 */ lw $t6, ($v1) -/* 031478 80030878 8C680004 */ lw $t0, 4($v1) -/* 03147C 8003087C 8C6C0008 */ lw $t4, 8($v1) -/* 031480 80030880 0000C012 */ mflo $t8 -/* 031484 80030884 01D8C821 */ addu $t9, $t6, $t8 -/* 031488 80030888 AC790000 */ sw $t9, ($v1) -/* 03148C 8003088C 01260019 */ multu $t1, $a2 -/* 031490 80030890 8C790020 */ lw $t9, 0x20($v1) -/* 031494 80030894 8C78000C */ lw $t8, 0xc($v1) -/* 031498 80030898 00005012 */ mflo $t2 -/* 03149C 8003089C 010A5821 */ addu $t3, $t0, $t2 -/* 0314A0 800308A0 AC6B0004 */ sw $t3, 4($v1) -/* 0314A4 800308A4 01A60019 */ multu $t5, $a2 -/* 0314A8 800308A8 8C6B0024 */ lw $t3, 0x24($v1) -/* 0314AC 800308AC 8C6A0010 */ lw $t2, 0x10($v1) -/* 0314B0 800308B0 00007812 */ mflo $t7 -/* 0314B4 800308B4 018F7021 */ addu $t6, $t4, $t7 -/* 0314B8 800308B8 8C6F0030 */ lw $t7, 0x30($v1) -/* 0314BC 800308BC 03260019 */ multu $t9, $a2 -/* 0314C0 800308C0 AC6E0008 */ sw $t6, 8($v1) -/* 0314C4 800308C4 01E67023 */ subu $t6, $t7, $a2 -/* 0314C8 800308C8 AC6E0030 */ sw $t6, 0x30($v1) -/* 0314CC 800308CC 00004812 */ mflo $t1 -/* 0314D0 800308D0 03094021 */ addu $t0, $t8, $t1 -/* 0314D4 800308D4 AC68000C */ sw $t0, 0xc($v1) -/* 0314D8 800308D8 01660019 */ multu $t3, $a2 -/* 0314DC 800308DC 00006812 */ mflo $t5 -/* 0314E0 800308E0 014D6021 */ addu $t4, $t2, $t5 -/* 0314E4 800308E4 10000011 */ b .L8003092C -/* 0314E8 800308E8 AC6C0010 */ sw $t4, 0x10($v1) -.L800308EC: -/* 0314EC 800308EC 90790028 */ lbu $t9, 0x28($v1) -/* 0314F0 800308F0 90690029 */ lbu $t1, 0x29($v1) -/* 0314F4 800308F4 906B002A */ lbu $t3, 0x2a($v1) -/* 0314F8 800308F8 846D002C */ lh $t5, 0x2c($v1) -/* 0314FC 800308FC 846F002E */ lh $t7, 0x2e($v1) -/* 031500 80030900 0019C400 */ sll $t8, $t9, 0x10 -/* 031504 80030904 00094400 */ sll $t0, $t1, 0x10 -/* 031508 80030908 000B5400 */ sll $t2, $t3, 0x10 -/* 03150C 8003090C 000D6400 */ sll $t4, $t5, 0x10 -/* 031510 80030910 000F7400 */ sll $t6, $t7, 0x10 -/* 031514 80030914 AC780000 */ sw $t8, ($v1) -/* 031518 80030918 AC680004 */ sw $t0, 4($v1) -/* 03151C 8003091C AC6A0008 */ sw $t2, 8($v1) -/* 031520 80030920 AC6C000C */ sw $t4, 0xc($v1) -/* 031524 80030924 AC6E0010 */ sw $t6, 0x10($v1) -/* 031528 80030928 AC600030 */ sw $zero, 0x30($v1) -.L8003092C: -/* 03152C 8003092C 1444FFC7 */ bne $v0, $a0, .L8003084C -/* 031530 80030930 24630038 */ addiu $v1, $v1, 0x38 -.L80030934: -/* 031534 80030934 03E00008 */ jr $ra -/* 031538 80030938 00000000 */ nop - diff --git a/asm/non_matchings/unknown_0255E0/func_8003093C.s b/asm/non_matchings/unknown_0255E0/func_8003093C.s deleted file mode 100644 index b3e96f78..00000000 --- a/asm/non_matchings/unknown_0255E0/func_8003093C.s +++ /dev/null @@ -1,84 +0,0 @@ -glabel func_8003093C -/* 03153C 8003093C 3C098012 */ lui $t1, %hi(D_8011B0A0) # $t1, 0x8012 -/* 031540 80030940 2529B0A0 */ addiu $t1, %lo(D_8011B0A0) # addiu $t1, $t1, -0x4f60 -/* 031544 80030944 8D230000 */ lw $v1, ($t1) -/* 031548 80030948 0004C0C0 */ sll $t8, $a0, 3 -/* 03154C 8003094C 0304C023 */ subu $t8, $t8, $a0 -/* 031550 80030950 3C198012 */ lui $t9, %hi(D_8011D388) # $t9, 0x8012 -/* 031554 80030954 246E0008 */ addiu $t6, $v1, 8 -/* 031558 80030958 AD2E0000 */ sw $t6, ($t1) -/* 03155C 8003095C 2739D388 */ addiu $t9, %lo(D_8011D388) # addiu $t9, $t9, -0x2c78 -/* 031560 80030960 0018C0C0 */ sll $t8, $t8, 3 -/* 031564 80030964 3C0FF800 */ lui $t7, 0xf800 -/* 031568 80030968 03192821 */ addu $a1, $t8, $t9 -/* 03156C 8003096C AC6F0000 */ sw $t7, ($v1) -/* 031570 80030970 8CAA0008 */ lw $t2, 8($a1) -/* 031574 80030974 8CAE0000 */ lw $t6, ($a1) -/* 031578 80030978 000A5C03 */ sra $t3, $t2, 0x10 -/* 03157C 8003097C 316C00FF */ andi $t4, $t3, 0xff -/* 031580 80030980 8CAB0004 */ lw $t3, 4($a1) -/* 031584 80030984 000C6A00 */ sll $t5, $t4, 8 -/* 031588 80030988 000EC403 */ sra $t8, $t6, 0x10 -/* 03158C 8003098C 000B6403 */ sra $t4, $t3, 0x10 -/* 031590 80030990 318E00FF */ andi $t6, $t4, 0xff -/* 031594 80030994 0018CE00 */ sll $t9, $t8, 0x18 -/* 031598 80030998 01B95025 */ or $t2, $t5, $t9 -/* 03159C 8003099C 000E7C00 */ sll $t7, $t6, 0x10 -/* 0315A0 800309A0 014FC025 */ or $t8, $t2, $t7 -/* 0315A4 800309A4 370D00FF */ ori $t5, $t8, 0xff -/* 0315A8 800309A8 AC6D0004 */ sw $t5, 4($v1) -/* 0315AC 800309AC 00601025 */ move $v0, $v1 -/* 0315B0 800309B0 8D230000 */ lw $v1, ($t1) -/* 0315B4 800309B4 3C0BBC00 */ lui $t3, (0xBC000008 >> 16) # lui $t3, 0xbc00 -/* 0315B8 800309B8 24790008 */ addiu $t9, $v1, 8 -/* 0315BC 800309BC AD390000 */ sw $t9, ($t1) -/* 0315C0 800309C0 356B0008 */ ori $t3, (0xBC000008 & 0xFFFF) # ori $t3, $t3, 8 -/* 0315C4 800309C4 AC6B0000 */ sw $t3, ($v1) -/* 0315C8 800309C8 8CA7000C */ lw $a3, 0xc($a1) -/* 0315CC 800309CC 8CAE0010 */ lw $t6, 0x10($a1) -/* 0315D0 800309D0 00076403 */ sra $t4, $a3, 0x10 -/* 0315D4 800309D4 000C7823 */ negu $t7, $t4 -/* 0315D8 800309D8 3C010001 */ lui $at, (0x0001F400 >> 16) # lui $at, 1 -/* 0315DC 800309DC 3421F400 */ ori $at, (0x0001F400 & 0xFFFF) # ori $at, $at, 0xf400 -/* 0315E0 800309E0 000FC200 */ sll $t8, $t7, 8 -/* 0315E4 800309E4 000E5403 */ sra $t2, $t6, 0x10 -/* 0315E8 800309E8 014C4023 */ subu $t0, $t2, $t4 -/* 0315EC 800309EC 03016821 */ addu $t5, $t8, $at -/* 0315F0 800309F0 01A8001A */ div $zero, $t5, $t0 -/* 0315F4 800309F4 01803825 */ move $a3, $t4 -/* 0315F8 800309F8 3C0C0001 */ lui $t4, (0x0001F400 >> 16) # lui $t4, 1 -/* 0315FC 800309FC 358CF400 */ ori $t4, (0x0001F400 & 0xFFFF) # ori $t4, $t4, 0xf400 -/* 031600 80030A00 00603025 */ move $a2, $v1 -/* 031604 80030A04 15000002 */ bnez $t0, .L80030A10 -/* 031608 80030A08 00000000 */ nop -/* 03160C 80030A0C 0007000D */ break 7 -.L80030A10: -/* 031610 80030A10 2401FFFF */ li $at, -1 -/* 031614 80030A14 15010004 */ bne $t0, $at, .L80030A28 -/* 031618 80030A18 3C018000 */ lui $at, 0x8000 -/* 03161C 80030A1C 15A10002 */ bne $t5, $at, .L80030A28 -/* 031620 80030A20 00000000 */ nop -/* 031624 80030A24 0006000D */ break 6 -.L80030A28: -/* 031628 80030A28 0000C812 */ mflo $t9 -/* 03162C 80030A2C 332BFFFF */ andi $t3, $t9, 0xffff -/* 031630 80030A30 00000000 */ nop -/* 031634 80030A34 0188001A */ div $zero, $t4, $t0 -/* 031638 80030A38 15000002 */ bnez $t0, .L80030A44 -/* 03163C 80030A3C 00000000 */ nop -/* 031640 80030A40 0007000D */ break 7 -.L80030A44: -/* 031644 80030A44 2401FFFF */ li $at, -1 -/* 031648 80030A48 15010004 */ bne $t0, $at, .L80030A5C -/* 03164C 80030A4C 3C018000 */ lui $at, 0x8000 -/* 031650 80030A50 15810002 */ bne $t4, $at, .L80030A5C -/* 031654 80030A54 00000000 */ nop -/* 031658 80030A58 0006000D */ break 6 -.L80030A5C: -/* 03165C 80030A5C 00007012 */ mflo $t6 -/* 031660 80030A60 31CAFFFF */ andi $t2, $t6, 0xffff -/* 031664 80030A64 000A7C00 */ sll $t7, $t2, 0x10 -/* 031668 80030A68 016FC025 */ or $t8, $t3, $t7 -/* 03166C 80030A6C 03E00008 */ jr $ra -/* 031670 80030A70 ACD80004 */ sw $t8, 4($a2) - diff --git a/asm/non_matchings/unknown_0255E0/func_80029F18.s b/asm/non_matchings/unknown_0255E0/get_level_segment_index_from_position.s similarity index 95% rename from asm/non_matchings/unknown_0255E0/func_80029F18.s rename to asm/non_matchings/unknown_0255E0/get_level_segment_index_from_position.s index eebb1c7c..d12cd246 100644 --- a/asm/non_matchings/unknown_0255E0/func_80029F18.s +++ b/asm/non_matchings/unknown_0255E0/get_level_segment_index_from_position.s @@ -1,7 +1,7 @@ -glabel func_80029F18 +glabel get_level_segment_index_from_position /* 02AB18 80029F18 27BDFFF0 */ addiu $sp, $sp, -0x10 -/* 02AB1C 80029F1C 3C02800E */ lui $v0, %hi(D_800DC918) # $v0, 0x800e -/* 02AB20 80029F20 8C42C918 */ lw $v0, %lo(D_800DC918)($v0) +/* 02AB1C 80029F1C 3C02800E */ lui $v0, %hi(gCurrentLevelModel) # $v0, 0x800e +/* 02AB20 80029F20 8C42C918 */ lw $v0, %lo(gCurrentLevelModel)($v0) /* 02AB24 80029F24 E7B4000C */ swc1 $f20, 0xc($sp) /* 02AB28 80029F28 4486A000 */ mtc1 $a2, $f20 /* 02AB2C 80029F2C 14400003 */ bnez $v0, .L80029F3C diff --git a/asm/non_matchings/unknown_0255E0/render_level_geometry_and_objects.s b/asm/non_matchings/unknown_0255E0/render_level_geometry_and_objects.s index 0ac5d3f0..ff4688bf 100644 --- a/asm/non_matchings/unknown_0255E0/render_level_geometry_and_objects.s +++ b/asm/non_matchings/unknown_0255E0/render_level_geometry_and_objects.s @@ -25,8 +25,8 @@ glabel render_level_geometry_and_objects .L80028FF4: /* 029BF4 80028FF4 0C005205 */ jal func_80014814 /* 029BF8 80028FF8 27A4016C */ addiu $a0, $sp, 0x16c -/* 029BFC 80028FFC 3C10800E */ lui $s0, %hi(D_800DC918) # $s0, 0x800e -/* 029C00 80029000 8E10C918 */ lw $s0, %lo(D_800DC918)($s0) +/* 029BFC 80028FFC 3C10800E */ lui $s0, %hi(gCurrentLevelModel) # $s0, 0x800e +/* 029C00 80029000 8E10C918 */ lw $s0, %lo(gCurrentLevelModel)($s0) /* 029C04 80029004 AFA20160 */ sw $v0, 0x160($sp) /* 029C08 80029008 8618001A */ lh $t8, 0x1a($s0) /* 029C0C 8002900C 00000000 */ nop @@ -42,8 +42,8 @@ glabel render_level_geometry_and_objects /* 029C34 80029034 27A700D8 */ addiu $a3, $sp, 0xd8 /* 029C38 80029038 0C00A6BE */ jal func_80029AF8 /* 029C3C 8002903C 24C6FFFF */ addiu $a2, $a2, -1 -/* 029C40 80029040 3C10800E */ lui $s0, %hi(D_800DC918) # $s0, 0x800e -/* 029C44 80029044 8E10C918 */ lw $s0, %lo(D_800DC918)($s0) +/* 029C40 80029040 3C10800E */ lui $s0, %hi(gCurrentLevelModel) # $s0, 0x800e +/* 029C44 80029044 8E10C918 */ lw $s0, %lo(gCurrentLevelModel)($s0) /* 029C48 80029048 10000005 */ b .L80029060 /* 029C4C 8002904C 8609001A */ lh $t1, 0x1a($s0) /* 029C50 80029050 24080001 */ li $t0, 1 @@ -87,8 +87,8 @@ glabel render_level_geometry_and_objects /* 029CD4 800290D4 0258082A */ slt $at, $s2, $t8 /* 029CD8 800290D8 1420FFF5 */ bnez $at, .L800290B0 /* 029CDC 800290DC 00000000 */ nop -/* 029CE0 800290E0 3C10800E */ lui $s0, %hi(D_800DC918) # $s0, 0x800e -/* 029CE4 800290E4 8E10C918 */ lw $s0, %lo(D_800DC918)($s0) +/* 029CE0 800290E0 3C10800E */ lui $s0, %hi(gCurrentLevelModel) # $s0, 0x800e +/* 029CE4 800290E4 8E10C918 */ lw $s0, %lo(gCurrentLevelModel)($s0) /* 029CE8 800290E8 00000000 */ nop .L800290EC: /* 029CEC 800290EC 8619001A */ lh $t9, 0x1a($s0) diff --git a/asm/non_matchings/unknown_0255E0/render_level_segment.s b/asm/non_matchings/unknown_0255E0/render_level_segment.s index 2f4632d1..2ddbf7d6 100644 --- a/asm/non_matchings/unknown_0255E0/render_level_segment.s +++ b/asm/non_matchings/unknown_0255E0/render_level_segment.s @@ -1,7 +1,7 @@ glabel render_level_segment /* 02A258 80029658 27BDFF50 */ addiu $sp, $sp, -0xb0 -/* 02A25C 8002965C 3C0E800E */ lui $t6, %hi(D_800DC918) # $t6, 0x800e -/* 02A260 80029660 8DCEC918 */ lw $t6, %lo(D_800DC918)($t6) +/* 02A25C 8002965C 3C0E800E */ lui $t6, %hi(gCurrentLevelModel) # $t6, 0x800e +/* 02A260 80029660 8DCEC918 */ lw $t6, %lo(gCurrentLevelModel)($t6) /* 02A264 80029664 AFBF003C */ sw $ra, 0x3c($sp) /* 02A268 80029668 AFBE0038 */ sw $fp, 0x38($sp) /* 02A26C 8002966C AFB70034 */ sw $s7, 0x34($sp) @@ -74,8 +74,8 @@ glabel render_level_segment /* 02A364 80029764 1000000B */ b .L80029794 /* 02A368 80029768 0000A825 */ move $s5, $zero .L8002976C: -/* 02A36C 8002976C 3C0E800E */ lui $t6, %hi(D_800DC918) # $t6, 0x800e -/* 02A370 80029770 8DCEC918 */ lw $t6, %lo(D_800DC918)($t6) +/* 02A36C 8002976C 3C0E800E */ lui $t6, %hi(gCurrentLevelModel) # $t6, 0x800e +/* 02A370 80029770 8DCEC918 */ lw $t6, %lo(gCurrentLevelModel)($t6) /* 02A374 80029774 0002C0C0 */ sll $t8, $v0, 3 /* 02A378 80029778 8DCF0000 */ lw $t7, ($t6) /* 02A37C 8002977C 00000000 */ nop diff --git a/asm/non_matchings/unknown_032760/func_80039330.s b/asm/non_matchings/unknown_032760/func_80039330.s index 8139b4b4..04e52851 100644 --- a/asm/non_matchings/unknown_032760/func_80039330.s +++ b/asm/non_matchings/unknown_032760/func_80039330.s @@ -1025,7 +1025,7 @@ glabel L8003A0CC /* 03ADB0 8003A1B0 46045481 */ sub.s $f18, $f10, $f4 /* 03ADB4 8003A1B4 E6120014 */ swc1 $f18, 0x14($s0) /* 03ADB8 8003A1B8 8E060014 */ lw $a2, 0x14($s0) -/* 03ADBC 8003A1BC 0C00A7C6 */ jal func_80029F18 +/* 03ADBC 8003A1BC 0C00A7C6 */ jal get_level_segment_index_from_position /* 03ADC0 8003A1C0 00000000 */ nop /* 03ADC4 8003A1C4 A602002E */ sh $v0, 0x2e($s0) /* 03ADC8 8003A1C8 8FB90090 */ lw $t9, 0x90($sp) diff --git a/asm/non_matchings/unknown_043920/func_80048E64.s b/asm/non_matchings/unknown_043920/func_80048E64.s index c03b2404..21837dd5 100644 --- a/asm/non_matchings/unknown_043920/func_80048E64.s +++ b/asm/non_matchings/unknown_043920/func_80048E64.s @@ -430,7 +430,7 @@ glabel func_80048E64 /* 04A0A4 800494A4 C4AC000C */ lwc1 $f12, 0xc($a1) /* 04A0A8 800494A8 C4AE0010 */ lwc1 $f14, 0x10($a1) /* 04A0AC 800494AC 8CA60014 */ lw $a2, 0x14($a1) -/* 04A0B0 800494B0 0C00A7C6 */ jal func_80029F18 +/* 04A0B0 800494B0 0C00A7C6 */ jal get_level_segment_index_from_position /* 04A0B4 800494B4 00000000 */ nop /* 04A0B8 800494B8 2401FFFF */ li $at, -1 /* 04A0BC 800494BC 10410005 */ beq $v0, $at, .L800494D4 diff --git a/asm/non_matchings/unknown_043920/func_8004C2B0.s b/asm/non_matchings/unknown_043920/func_8004C2B0.s index 9c575566..c353dfeb 100644 --- a/asm/non_matchings/unknown_043920/func_8004C2B0.s +++ b/asm/non_matchings/unknown_043920/func_8004C2B0.s @@ -650,7 +650,7 @@ glabel func_8004C2B0 /* 04D7C8 8004CBC8 C4AC000C */ lwc1 $f12, 0xc($a1) /* 04D7CC 8004CBCC C4AE0010 */ lwc1 $f14, 0x10($a1) /* 04D7D0 8004CBD0 8CA60014 */ lw $a2, 0x14($a1) -/* 04D7D4 8004CBD4 0C00A7C6 */ jal func_80029F18 +/* 04D7D4 8004CBD4 0C00A7C6 */ jal get_level_segment_index_from_position /* 04D7D8 8004CBD8 AFA70058 */ sw $a3, 0x58($sp) /* 04D7DC 8004CBDC 8FA70058 */ lw $a3, 0x58($sp) /* 04D7E0 8004CBE0 3C088012 */ lui $t0, %hi(gCameraObject) # $t0, 0x8012 diff --git a/asm/non_matchings/unknown_043920/func_8004D590.s b/asm/non_matchings/unknown_043920/func_8004D590.s index af36ee8d..e84d08e6 100644 --- a/asm/non_matchings/unknown_043920/func_8004D590.s +++ b/asm/non_matchings/unknown_043920/func_8004D590.s @@ -212,7 +212,7 @@ glabel func_8004D590 /* 04E4B8 8004D8B8 C44C000C */ lwc1 $f12, 0xc($v0) /* 04E4BC 8004D8BC C44E0010 */ lwc1 $f14, 0x10($v0) /* 04E4C0 8004D8C0 8C460014 */ lw $a2, 0x14($v0) -/* 04E4C4 8004D8C4 0C00A7C6 */ jal func_80029F18 +/* 04E4C4 8004D8C4 0C00A7C6 */ jal get_level_segment_index_from_position /* 04E4C8 8004D8C8 00000000 */ nop /* 04E4CC 8004D8CC 2401FFFF */ li $at, -1 /* 04E4D0 8004D8D0 10410004 */ beq $v0, $at, .L8004D8E4 diff --git a/asm/non_matchings/unknown_043920/func_800581E8.s b/asm/non_matchings/unknown_043920/func_800581E8.s index 5c0b064b..f6d7d3d9 100644 --- a/asm/non_matchings/unknown_043920/func_800581E8.s +++ b/asm/non_matchings/unknown_043920/func_800581E8.s @@ -644,7 +644,7 @@ glabel func_800581E8 /* 05972C 80058B2C C4AC000C */ lwc1 $f12, 0xc($a1) /* 059730 80058B30 C4AE0010 */ lwc1 $f14, 0x10($a1) /* 059734 80058B34 8CA60014 */ lw $a2, 0x14($a1) -/* 059738 80058B38 0C00A7C6 */ jal func_80029F18 +/* 059738 80058B38 0C00A7C6 */ jal get_level_segment_index_from_position /* 05973C 80058B3C 00000000 */ nop /* 059740 80058B40 8FA70070 */ lw $a3, 0x70($sp) /* 059744 80058B44 3C088012 */ lui $t0, %hi(gCameraObject) # $t0, 0x8012 diff --git a/asm/non_matchings/unknown_043920/func_80058B84.s b/asm/non_matchings/unknown_043920/func_80058B84.s index 67405833..0fd51b1f 100644 --- a/asm/non_matchings/unknown_043920/func_80058B84.s +++ b/asm/non_matchings/unknown_043920/func_80058B84.s @@ -102,7 +102,7 @@ glabel func_80058B84 /* 05990C 80058D0C C44C000C */ lwc1 $f12, 0xc($v0) /* 059910 80058D10 C44E0010 */ lwc1 $f14, 0x10($v0) /* 059914 80058D14 8C460014 */ lw $a2, 0x14($v0) -/* 059918 80058D18 0C00A7C6 */ jal func_80029F18 +/* 059918 80058D18 0C00A7C6 */ jal get_level_segment_index_from_position /* 05991C 80058D1C 00000000 */ nop /* 059920 80058D20 2401FFFF */ li $at, -1 /* 059924 80058D24 10410004 */ beq $v0, $at, .L80058D38 diff --git a/asm/non_matchings/unknown_043920/func_80058D5C.s b/asm/non_matchings/unknown_043920/func_80058D5C.s index 660569ab..e3986778 100644 --- a/asm/non_matchings/unknown_043920/func_80058D5C.s +++ b/asm/non_matchings/unknown_043920/func_80058D5C.s @@ -113,7 +113,7 @@ glabel func_80058D5C /* 059B14 80058F14 C46C000C */ lwc1 $f12, 0xc($v1) /* 059B18 80058F18 8C660014 */ lw $a2, 0x14($v1) /* 059B1C 80058F1C C58E003C */ lwc1 $f14, 0x3c($t4) -/* 059B20 80058F20 0C00A7C6 */ jal func_80029F18 +/* 059B20 80058F20 0C00A7C6 */ jal get_level_segment_index_from_position /* 059B24 80058F24 00000000 */ nop /* 059B28 80058F28 8E0D0000 */ lw $t5, ($s0) /* 059B2C 80058F2C 00000000 */ nop diff --git a/asm/non_matchings/unknown_043920/func_80058F44.s b/asm/non_matchings/unknown_043920/func_80058F44.s index 284b7869..8f7a0d44 100644 --- a/asm/non_matchings/unknown_043920/func_80058F44.s +++ b/asm/non_matchings/unknown_043920/func_80058F44.s @@ -67,7 +67,7 @@ glabel func_80058F44 /* 059C48 80059048 C46C000C */ lwc1 $f12, 0xc($v1) /* 059C4C 8005904C 8C660014 */ lw $a2, 0x14($v1) /* 059C50 80059050 C72E003C */ lwc1 $f14, 0x3c($t9) -/* 059C54 80059054 0C00A7C6 */ jal func_80029F18 +/* 059C54 80059054 0C00A7C6 */ jal get_level_segment_index_from_position /* 059C58 80059058 00000000 */ nop /* 059C5C 8005905C 3C078012 */ lui $a3, %hi(gCameraObject) # $a3, 0x8012 /* 059C60 80059060 24E7D508 */ addiu $a3, %lo(gCameraObject) # addiu $a3, $a3, -0x2af8 diff --git a/asm/non_matchings/unknown_043920/set_ghost_position_and_rotation.s b/asm/non_matchings/unknown_043920/set_ghost_position_and_rotation.s index f59d6a1f..8b29d10f 100644 --- a/asm/non_matchings/unknown_043920/set_ghost_position_and_rotation.s +++ b/asm/non_matchings/unknown_043920/set_ghost_position_and_rotation.s @@ -304,7 +304,7 @@ glabel set_ghost_position_and_rotation /* 05AEA4 8005A2A4 00987021 */ addu $t6, $a0, $t8 /* 05AEA8 8005A2A8 A60E0004 */ sh $t6, 4($s0) /* 05AEAC 8005A2AC E7A20094 */ swc1 $f2, 0x94($sp) -/* 05AEB0 8005A2B0 0C00A7C6 */ jal func_80029F18 +/* 05AEB0 8005A2B0 0C00A7C6 */ jal get_level_segment_index_from_position /* 05AEB4 8005A2B4 AFAD004C */ sw $t5, 0x4c($sp) /* 05AEB8 8005A2B8 8FAD004C */ lw $t5, 0x4c($sp) /* 05AEBC 8005A2BC C7A20094 */ lwc1 $f2, 0x94($sp) diff --git a/asm/non_matchings/unknown_09F8F0/func_800AD658.s b/asm/non_matchings/unknown_09F8F0/func_800AD658.s index 67fb4ee8..898937b0 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800AD658.s +++ b/asm/non_matchings/unknown_09F8F0/func_800AD658.s @@ -93,7 +93,7 @@ glabel func_800AD658 /* 0AE3B8 800AD7B8 C44E0010 */ lwc1 $f14, 0x10($v0) /* 0AE3BC 800AD7BC 46083080 */ add.s $f2, $f6, $f8 /* 0AE3C0 800AD7C0 44061000 */ mfc1 $a2, $f2 -/* 0AE3C4 800AD7C4 0C00A7C6 */ jal func_80029F18 +/* 0AE3C4 800AD7C4 0C00A7C6 */ jal get_level_segment_index_from_position /* 0AE3C8 800AD7C8 E7A20054 */ swc1 $f2, 0x54($sp) /* 0AE3CC 800AD7CC 8FA50058 */ lw $a1, 0x58($sp) /* 0AE3D0 800AD7D0 8FA60054 */ lw $a2, 0x54($sp) diff --git a/asm/unknown_031D30/func_80031130.s b/asm/unknown_031D30/func_80031130.s index 16215e95..c303fd62 100644 --- a/asm/unknown_031D30/func_80031130.s +++ b/asm/unknown_031D30/func_80031130.s @@ -97,8 +97,8 @@ glabel func_80031130 /* 031E80 80031280 02409825 */ move $s3, $s2 /* 031E84 80031284 01009025 */ move $s2, $t0 .L80031288: -/* 031E88 80031288 3C08800E */ lui $t0, %hi(D_800DC918) # $t0, 0x800e -/* 031E8C 8003128C 8D08C918 */ lw $t0, %lo(D_800DC918)($t0) +/* 031E88 80031288 3C08800E */ lui $t0, %hi(gCurrentLevelModel) # $t0, 0x800e +/* 031E8C 8003128C 8D08C918 */ lw $t0, %lo(gCurrentLevelModel)($t0) /* 031E90 80031290 23B10034 */ addi $s1, $sp, 0x34 /* 031E94 80031294 23B00048 */ addi $s0, $sp, 0x48 /* 031E98 80031298 850F001A */ lh $t7, 0x1a($t0) @@ -146,8 +146,8 @@ glabel func_80031130 .L80031334: /* 031F34 80031334 1300005C */ beqz $t8, .L800314A8 /* 031F38 80031338 00009825 */ move $s3, $zero -/* 031F3C 8003133C 3C04800E */ lui $a0, %hi(D_800DC918) # $a0, 0x800e -/* 031F40 80031340 8C84C918 */ lw $a0, %lo(D_800DC918)($a0) +/* 031F3C 8003133C 3C04800E */ lui $a0, %hi(gCurrentLevelModel) # $a0, 0x800e +/* 031F40 80031340 8C84C918 */ lw $a0, %lo(gCurrentLevelModel)($a0) /* 031F44 80031344 3C128012 */ lui $s2, %hi(D_8011D370) # $s2, 0x8012 /* 031F48 80031348 3C198012 */ lui $t9, %hi(D_8011D374) # $t9, 0x8012 /* 031F4C 8003134C 23B10034 */ addi $s1, $sp, 0x34 diff --git a/include/structs.h b/include/structs.h index 1a322084..db8f5e5b 100644 --- a/include/structs.h +++ b/include/structs.h @@ -374,18 +374,22 @@ typedef struct LevelModelSegment { /* 0x20 */ s16 numberOfBatches; u8 pad22[0x09]; /* 0x2B */ s8 unk2B; - u8 pad2C[0x14]; + u8 pad2C[6]; +/* 0x32 */ s16 unk32; + s16 *unk34; +/* 0x38 */ s16 unk38; + u8 pad3A[6]; /* 0x40 */ u8 unk40; u8 pad41[0x3]; } LevelModelSegment; typedef struct LevelModelSegmentBoundingBox { - s16 unk00; - s16 unk02; - s16 unk04; - s16 unk06; - s16 unk08; - s16 unk0A; + s16 unk0; + s16 unk2; + s16 unk4; + s16 unk6; + s16 unk8; + s16 unkA; } LevelModelSegmentBoundingBox; typedef struct LevelModel { diff --git a/src/camera.c b/src/camera.c index bdca1fca..eb7ff9d5 100644 --- a/src/camera.c +++ b/src/camera.c @@ -177,7 +177,7 @@ s32 func_8006A624(s8 arg0); void guMtxXFMF(s32*, f32, f32, f32, f32*, f32*, f32*); void guPerspectiveF(s32*, s32*, f32, f32, f32, f32, f32); void func_8006F870(s32*, s32*); -s16 func_80029F18(f32, f32, f32); +s16 get_level_segment_index_from_position(f32, f32, f32); void func_8006A50C(void); void func_800665E8(s32 arg0); void load_level_2(s32 arg0, s32 arg1, s32 arg2, s32 arg3); @@ -359,7 +359,7 @@ void func_80066488(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s16 arg5, s D_80120AC0[arg0].unk0 = arg4; D_80120AC0[arg0].unk2 = arg5; D_80120AC0[arg0].unk4 = arg6; - D_80120AC0[arg0].unk34 = func_80029F18(arg1, arg2, arg3); + D_80120AC0[arg0].unk34 = get_level_segment_index_from_position(arg1, arg2, arg3); D_80120D14 = 1; } diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index 15a8f13e..ba35c2ff 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -6,6 +6,7 @@ #include "types.h" #include "macros.h" #include "structs.h" +#include "f3ddkr.h" /* Size: 0x44 bytes */ typedef struct unk80120AC0 { @@ -52,7 +53,7 @@ f32 D_800DC8AC[27] = { -130.0f, 60.0f, -68.0f }; -LevelModel* D_800DC918 = NULL; +LevelModel* gCurrentLevelModel = NULL; LevelHeader *D_800DC91C = NULL; s32 D_800DC920 = -1; @@ -78,7 +79,7 @@ const char D_800E5E10[] = "TrackGetHeight() - Overflow!!!\n"; /************ .bss ************/ -s32 D_8011B0A0; +Gfx *D_8011B0A0; s32 D_8011B0A4; s32 D_8011B0A8; s32 D_8011B0AC; @@ -170,7 +171,28 @@ s32 D_8011D378; s32 D_8011D37C; s32 D_8011D380; s32 D_8011D384; -s32 D_8011D388[56]; + +/* Size: 0x38 bytes */ +typedef struct unk8011D388 { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; + s32 unk24; + u8 unk28; + u8 unk29; + u8 unk2A; + s16 unk2C; + s16 unk2E; + s32 unk30; + s32 unk34; +} unk8011D388; +unk8011D388 D_8011D388[4]; typedef struct{ s32 unk00; @@ -203,7 +225,7 @@ s32 D_8011D4BC; /******************************/ extern void guMtxXFMF(void*, f32, f32, f32, f32*, f32*, f32*); - +f32 func_800BB2F4(s32, f32, f32, f32*); s32 func_800249E0(s32 arg0) { @@ -252,10 +274,10 @@ void func_800249F0(u32 arg0, u32 arg1, s32 arg2, u32 arg3, u32 arg4, u32 arg5, u if(arg2 < 2){ D_8011D384 = 0; - for(i = 0; i < D_800DC918->numberOfSegments; i++){ - if(D_800DC918->segments[i].unk2B != 0){ + for(i = 0; i < gCurrentLevelModel->numberOfSegments; i++){ + if(gCurrentLevelModel->segments[i].unk2B != 0){ D_8011D384++; - D_800DC918->segments[i].unk2B = 1; + gCurrentLevelModel->segments[i].unk2B = 1; } } } @@ -266,7 +288,7 @@ void func_800249F0(u32 arg0, u32 arg1, s32 arg2, u32 arg3, u32 arg4, u32 arg5, u tmp_a2++; } if(D_8011D384){ - func_800B82B4(D_800DC918, D_800DC91C, tmp_a2); + func_800B82B4(gCurrentLevelModel, D_800DC91C, tmp_a2); } func_8006652C(arg2); func_80027FC4(arg1); @@ -331,7 +353,36 @@ GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80027568.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_800278E8.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80027E24.s") -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80027FC4.s") +typedef struct unk80027FC4 { + u8 unk0; + u8 unk1; + s16 unk2; + s16 unk4; + s16 unk6; +} unk80027FC4; + +void func_8005A3D0(void); +Object * func_8000EA54(unk80027FC4*, s32); + +void func_80027FC4(s32 arg0) { + unk80027FC4 sp20; + + func_8005A3D0(); + if (arg0 == -1) { + D_8011B0B8 = NULL; + return; + } + sp20.unk2 = 0; + sp20.unk4 = 0; + sp20.unk6 = 0; + sp20.unk1 = 8; + sp20.unk0 = arg0; + D_8011B0B8 = func_8000EA54(&sp20, 2); + if (D_8011B0B8 != 0) { + D_8011B0B8->unk3C = 0; + D_8011B0B8->unk4A = -1; + } +} void func_80028044(s32 arg0) { D_8011B0DC = arg0; @@ -390,12 +441,42 @@ GLOBAL_ASM("asm/non_matchings/unknown_0255E0/render_level_segment.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80029AF8.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80029D14.s") -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80029F18.s") -#else -func_80029F18(){ +#ifdef NON_MATCHING + +// Has regalloc issues. +s32 get_level_segment_index_from_position(f32 xPos, f32 yPos, f32 zPos) { + LevelModelSegmentBoundingBox *bb; + s32 i; + s32 minVal; + s32 result; + s32 heightDiff; + + if (gCurrentLevelModel == NULL) { + return -1; + } + minVal = 1000000; + result = -1; + + for(i = 0; i < gCurrentLevelModel->numberOfSegments; i++) { + bb = &gCurrentLevelModel->segmentsBoundingBoxes[i]; + if (((s32)xPos < bb->unk6) && (bb->unk0 < (s32)xPos) && ((s32)zPos < bb->unkA) && (bb->unk4 < (s32)zPos)) { + heightDiff = (s32)yPos - ((bb->unk8 + bb->unk2) >> 1); + if (heightDiff < 0) { + heightDiff = -heightDiff; + } + if (heightDiff < minVal) { + result = i; + minVal = heightDiff; + } + } + } + + return result; } + +#else +GLOBAL_ASM("asm/non_matchings/unknown_0255E0/get_level_segment_index_from_position.s") #endif @@ -403,10 +484,10 @@ s32 func_8002A05C(s32 arg0, s32 arg1, s32* arg2){ s32 i; s32 cnt = 0; LevelModelSegmentBoundingBox * a0; - for(i = 0; i < D_800DC918->numberOfSegments; i++){ - a0 = D_800DC918->segmentsBoundingBoxes + i; - if(arg0 < a0->unk06 + 4 && a0->unk00 - 4 < arg0 - && arg1 < a0->unk0A + 4 && a0->unk04 - 4 < arg1 + for(i = 0; i < gCurrentLevelModel->numberOfSegments; i++){ + a0 = gCurrentLevelModel->segmentsBoundingBoxes + i; + if(arg0 < a0->unk6 + 4 && a0->unk0 - 4 < arg0 + && arg1 < a0->unkA + 4 && a0->unk4 - 4 < arg1 ){ *arg2 = i; cnt++; @@ -416,51 +497,47 @@ s32 func_8002A05C(s32 arg0, s32 arg1, s32* arg2){ return cnt; } -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002A134.s") -#else -s32 func_8002A134(s32* arg0, LevelModelSegmentBoundingBox arg1){ +s32 func_8002A134(s32 *arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, s16 arg6) { + s32 phi_v1; s32 i; - LevelModelSegmentBoundingBox * a0; - s32 cnt = 0; - LevelModelSegmentBoundingBox bnd; - - //BAD variable assignments; - bnd.unk00 = arg1.unk00 - 4; - bnd.unk02 = arg1.unk02 - 4; - bnd.unk04 = arg1.unk04 - 4; - bnd.unk06 = arg1.unk06 + 4; - bnd.unk08 = arg1.unk08 + 4; - bnd.unk0A = arg1.unk0A + 4; - - - for(i = 0; i < D_800DC918->numberOfSegments; i++){ - a0 = D_800DC918->segmentsBoundingBoxes + i; - if( a0->unk06 >= bnd.unk00 && bnd.unk06 >= a0->unk00 - && a0->unk0A >= bnd.unk04 && bnd.unk0A >= a0->unk04 - && a0->unk08 >= bnd.unk02 && bnd.unk08 >= a0->unk02 - ){ - *arg0 = i; - cnt++; - arg0++; + LevelModelSegmentBoundingBox *bb; + + arg1 -= 4; + arg2 -= 4; + arg3 -= 4; + arg4 += 4; + arg5 += 4; + arg6 += 4; + + i = 0; + phi_v1 = 0; + + while(i < gCurrentLevelModel->numberOfSegments) { + bb = &gCurrentLevelModel->segmentsBoundingBoxes[i]; + if ((bb->unk6 >= arg1) && (arg4 >= bb->unk0) && + (bb->unkA >= arg3) && (arg6 >= bb->unk4) && + (bb->unk8 >= arg2) && (arg5 >= bb->unk2)) { + phi_v1++; + *arg0++ = i; } + i++; } - return cnt; + + return phi_v1; } -#endif LevelModelSegment *func_8002A2C8(s32 arg0){ - if(arg0 < 0 || D_800DC918->numberOfSegments < arg0) + if(arg0 < 0 || gCurrentLevelModel->numberOfSegments < arg0) return NULL; - return D_800DC918->segments + arg0; + return gCurrentLevelModel->segments + arg0; } LevelModelSegmentBoundingBox *func_8002A2DC(s32 arg0){ - if(arg0 < 0 || D_800DC918->numberOfSegments < arg0) + if(arg0 < 0 || gCurrentLevelModel->numberOfSegments < arg0) return NULL; - return D_800DC918->segmentsBoundingBoxes + arg0; + return gCurrentLevelModel->segmentsBoundingBoxes + arg0; } GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002A31C.s") @@ -480,44 +557,83 @@ s32 func_8002ACD4(f32* arg0, f32* arg1, f32* arg2) { GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002AD08.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002B0F4.s") -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002B9BC.s") + +s32 func_8002B9BC(Object *obj, f32 *arg1, f32 *arg2, s32 arg3) { + LevelModelSegment *seg; + + if (arg2 != NULL) { + arg2[0] = 0.0f; + arg2[2] = 0.0f; + arg2[1] = 1.0f; + } + if ((obj->unk2E < 0) || (obj->unk2E >= gCurrentLevelModel->numberOfSegments)) { + return FALSE; + } + seg = &gCurrentLevelModel->segments[obj->unk2E]; + if ((seg->unk2B != 0) && (D_8011D384 != 0) && (arg3 == 1)) { + *arg1 = func_800BB2F4(obj->unk2E, obj->x_position, obj->z_position, arg2); + return TRUE; + } else { + *arg1 = seg->unk38; + return TRUE; + } +} + GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002BAB0.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002C0C4.s") -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002C71C.s") + +void func_8002C71C(LevelModelSegment *segment) { + s32 curVertY; + s32 numVerts; + s32 i; + + segment->unk38 = -10000; + numVerts = 0; + for(i = 0; i < segment->numberOfBatches; i++) { + if (segment->batches[i].flags & 0x2000) { + segment->unk34[numVerts++] = i; + curVertY = segment->vertices[segment->batches[i].verticesOffset].y; + if (segment->unk38 == -10000 || segment->unk38 < curVertY) { + segment->unk38 = curVertY; + } + } + } + segment->unk32 = numVerts; +} LevelModel* func_8002C7C4(void) { - return D_800DC918; + return gCurrentLevelModel; } GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002C7D4.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002C954.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002CC30.s") -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002D30C.s") -#else +#ifdef NON_MATCHING -typedef struct{ +typedef struct unk8002D30C_a0{ u8 pad00[0x04]; - u32 unk04; - u32 unk08; + struct unk8002D30C_a0* unk04; + struct unk8002D30C_a0* unk08; }unk8002D30C_a0; -void func_8002D30C(unk8002D30C_a0* arg0, u32 arg1){ - unk8002D30C_a0* s0 = arg0; - while(s0 != NULL){ - if(s0->unk04){ - s0->unk04 += arg1; +void func_8002D30C(unk8002D30C_a0* arg0, s32 arg1) { + // Weird issue here with the ra register. + while(arg0 != NULL) { + if(arg0->unk04) { + arg0->unk04 = (unk8002D30C_a0*)((s32)arg0->unk04 + arg1); } - if(s0->unk08){ - s0->unk08 += arg1; + if(arg0->unk08){ + arg0->unk08 = (unk8002D30C_a0*)((s32)arg0->unk08 + arg1); } - func_8002D30C(s0->unk04, arg1); - s0 = s0->unk08; + func_8002D30C(arg0->unk04, arg1); + arg0 = arg0->unk08; } } +#else +GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002D30C.s") #endif GLOBAL_ASM("asm/non_matchings/unknown_0255E0/render_floor_decal.s") @@ -533,11 +649,100 @@ GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002FA64.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002FD74.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002FF6C.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_800304C8.s") + +#ifdef NON_MATCHING + +// Should be functionally equivalent. +void func_80030664(s32 arg0, s16 arg1, s16 arg2, u8 arg3, u8 arg4, u8 arg5) { + s32 max, min; + + max = arg2; + min = arg1; + if (arg2 < arg1) { + max = arg1; + min = arg2; + } + if (max >= 0x400) { + max = 0x3FF; + } + if (min >= max - 5) { + min = max - 5; + } + D_8011D388[arg0].unk20 = 0; + D_8011D388[arg0].unk24 = 0; + D_8011D388[arg0].unk14 = 0; + D_8011D388[arg0].unk18 = 0; + D_8011D388[arg0].unk1C = 0; + D_8011D388[arg0].unk0 = arg3 << 0x10; + D_8011D388[arg0].unk4 = arg4 << 0x10; + D_8011D388[arg0].unk8 = arg5 << 0x10; + D_8011D388[arg0].unkC = min << 0x10; + D_8011D388[arg0].unk10 = max << 0x10; + D_8011D388[arg0].unk28 = arg3; + D_8011D388[arg0].unk2C = min; + D_8011D388[arg0].unk2E = max; + D_8011D388[arg0].unk30 = 0; + D_8011D388[arg0].unk34 = 0; + D_8011D388[arg0].unk29 = arg4; + D_8011D388[arg0].unk2A = arg5; +} + +#else GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80030664.s") -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80030750.s") -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_800307BC.s") -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80030838.s") -GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8003093C.s") +#endif + +void func_80030750(s32 arg0, s16 *arg1, s16 *arg2, s8 *arg3, s8 *arg4, s8 *arg5) { + *arg1 = D_8011D388[arg0].unkC >> 0x10; + *arg2 = D_8011D388[arg0].unk10 >> 0x10; + *arg3 = D_8011D388[arg0].unk0 >> 0x10; + *arg4 = D_8011D388[arg0].unk4 >> 0x10; + *arg5 = D_8011D388[arg0].unk8 >> 0x10; +} + +void func_800307BC(s32 arg0) { + D_8011D388[arg0].unk20 = 0; + D_8011D388[arg0].unk24 = 0; + D_8011D388[arg0].unk14 = 0; + D_8011D388[arg0].unk18 = 0; + D_8011D388[arg0].unk1C = 0; + D_8011D388[arg0].unkC = 0x03FA0000; + D_8011D388[arg0].unk10 = 0x03FF0000; + D_8011D388[arg0].unk28 = D_8011D388[arg0].unk0 >> 0x10; + D_8011D388[arg0].unk29 = D_8011D388[arg0].unk4 >> 0x10; + D_8011D388[arg0].unk2A = D_8011D388[arg0].unk8 >> 0x10; + D_8011D388[arg0].unk2C = 0x03FA; + D_8011D388[arg0].unk2E = 0x03FF; + D_8011D388[arg0].unk30 = 0; + D_8011D388[arg0].unk34 = 0; +} + +void func_80030838(s32 arg0, s32 arg1) { + s32 i; + for(i = 0; i < arg0; i++) { + if (D_8011D388[i].unk30 > 0) { + if (arg1 < D_8011D388[i].unk30) { + D_8011D388[i].unk0 += D_8011D388[i].unk14 * arg1; + D_8011D388[i].unk4 += D_8011D388[i].unk18 * arg1; + D_8011D388[i].unk8 += D_8011D388[i].unk1C * arg1; + D_8011D388[i].unkC += D_8011D388[i].unk20 * arg1; + D_8011D388[i].unk10 += D_8011D388[i].unk24 * arg1; + D_8011D388[i].unk30 -= arg1; + } else { + D_8011D388[i].unk0 = D_8011D388[i].unk28 << 0x10; + D_8011D388[i].unk4 = D_8011D388[i].unk29 << 0x10; + D_8011D388[i].unk8 = D_8011D388[i].unk2A << 0x10; + D_8011D388[i].unkC = D_8011D388[i].unk2C << 0x10; + D_8011D388[i].unk10 = D_8011D388[i].unk2E << 0x10; + D_8011D388[i].unk30 = 0; + } + } + } +} + +void func_8003093C(s32 arg0) { + gDPSetFogColor(D_8011B0A0++, D_8011D388[arg0].unk0 >> 0x10, D_8011D388[arg0].unk4 >> 0x10, D_8011D388[arg0].unk8 >> 0x10, 0xFF) + gSPFogPosition(D_8011B0A0++, D_8011D388[arg0].unkC >> 0x10, D_8011D388[arg0].unk10 >> 0x10) +} GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80030A74.s") GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80030DE0.s") diff --git a/src/unknown_0255E0.h b/src/unknown_0255E0.h index 54887e73..67c43a01 100644 --- a/src/unknown_0255E0.h +++ b/src/unknown_0255E0.h @@ -22,7 +22,7 @@ extern f32 D_800DC884[10]; extern f32 D_800DC8AC[27]; -extern LevelModel* D_800DC918; +extern LevelModel* gCurrentLevelModel; extern LevelHeader *D_800DC91C; extern s32 D_800DC920; diff --git a/src/unknown_0348C0.c b/src/unknown_0348C0.c index 62d97790..d6b3463f 100644 --- a/src/unknown_0348C0.c +++ b/src/unknown_0348C0.c @@ -582,7 +582,7 @@ typedef struct Object_64_800376E0 { s16 unkA; } Object_64_800376E0; -s16 func_80029F18(f32, f32, f32); +s16 get_level_segment_index_from_position(f32, f32, f32); void func_800376E0(Object *arg0, LevelObjectEntry800376E0 *arg1, s32 arg2) { Object_64_800376E0 *obj64; @@ -594,7 +594,7 @@ void func_800376E0(Object *arg0, LevelObjectEntry800376E0 *arg1, s32 arg2) { obj64->unk2 = arg1->unk8; obj64->unk4 = arg1->unk9; obj64->unk6 = arg1->unkA; - obj64->segmentId = func_80029F18(arg0->x_position, arg0->y_position, arg0->z_position); + obj64->segmentId = get_level_segment_index_from_position(arg0->x_position, arg0->y_position, arg0->z_position); if (arg2 == 0) { obj64->unk8 = 0; obj64->unkA = 0; diff --git a/src/unknown_043920.c b/src/unknown_043920.c index 7690422c..48fb4298 100644 --- a/src/unknown_043920.c +++ b/src/unknown_043920.c @@ -901,7 +901,7 @@ GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80058D5C.s") #ifdef NON_MATCHING s32 func_8007066C(s32, s32); -s16 func_80029F18(f32, f32, f32); +s16 get_level_segment_index_from_position(f32, f32, f32); void func_80058F44(f32 arg0, Object *arg1, Object *arg2) { s32 temp0, temp1; @@ -909,7 +909,7 @@ void func_80058F44(f32 arg0, Object *arg1, Object *arg2) { temp1 = func_8007066C(gCameraObject->x_position - arg1->x_position, gCameraObject->z_position - arg1->z_position); gCameraObject->y_rotation += (((-temp1 - gCameraObject->y_rotation) + 0x8000) * temp0) >> 4; gCameraObject->z_rotation -= (gCameraObject->z_rotation * temp0) >> 4; - gCameraObject->unk34 = func_80029F18(gCameraObject->x_position, arg2->unk3C_f, gCameraObject->z_position); + gCameraObject->unk34 = get_level_segment_index_from_position(gCameraObject->x_position, arg2->unk3C_f, gCameraObject->z_position); } #else diff --git a/src/unknown_06B2B0.c b/src/unknown_06B2B0.c index 5a8ea0fb..18c37033 100644 --- a/src/unknown_06B2B0.c +++ b/src/unknown_06B2B0.c @@ -186,7 +186,7 @@ s32 func_8006A624(s8 arg0); void guMtxXFMF(s32*, f32, f32, f32, f32*, f32*, f32*); void guPerspectiveF(s32*, s32*, f32, f32, f32, f32, f32); void func_8006F870(s32*, s32*); -s16 func_80029F18(f32, f32, f32); +s16 get_level_segment_index_from_position(f32, f32, f32); void func_8006A50C(void); void func_800665E8(s32 arg0); void load_level_2(s32 arg0, s32 arg1, s32 arg2, s32 arg3);