diff --git a/asm/non_matchings/unknown_09F8F0/func_800ACF98.s b/asm/non_matchings/unknown_09F8F0/func_800ACF98.s deleted file mode 100644 index 969677c1..00000000 --- a/asm/non_matchings/unknown_09F8F0/func_800ACF98.s +++ /dev/null @@ -1,45 +0,0 @@ -glabel func_800ACF98 -/* 0ADB98 800ACF98 3C07800E */ lui $a3, %hi(D_800E2A88) # $a3, 0x800e -/* 0ADB9C 800ACF9C 24E72A88 */ addiu $a3, %lo(D_800E2A88) # addiu $a3, $a3, 0x2a88 -/* 0ADBA0 800ACFA0 8CE50000 */ lw $a1, ($a3) -/* 0ADBA4 800ACFA4 00001025 */ move $v0, $zero -/* 0ADBA8 800ACFA8 18A0000E */ blez $a1, .L800ACFE4 -/* 0ADBAC 800ACFAC 00001825 */ move $v1, $zero -/* 0ADBB0 800ACFB0 3C0F8012 */ lui $t7, %hi(D_80127C40) # $t7, 0x8012 -/* 0ADBB4 800ACFB4 25EF7C40 */ addiu $t7, %lo(D_80127C40) # addiu $t7, $t7, 0x7c40 -/* 0ADBB8 800ACFB8 00007080 */ sll $t6, $zero, 2 -/* 0ADBBC 800ACFBC 01CF3021 */ addu $a2, $t6, $t7 -.L800ACFC0: -/* 0ADBC0 800ACFC0 8CD80000 */ lw $t8, ($a2) -/* 0ADBC4 800ACFC4 24630001 */ addiu $v1, $v1, 1 -/* 0ADBC8 800ACFC8 14980002 */ bne $a0, $t8, .L800ACFD4 -/* 0ADBCC 800ACFCC 0065082A */ slt $at, $v1, $a1 -/* 0ADBD0 800ACFD0 24020001 */ li $v0, 1 -.L800ACFD4: -/* 0ADBD4 800ACFD4 10200003 */ beqz $at, .L800ACFE4 -/* 0ADBD8 800ACFD8 24C60004 */ addiu $a2, $a2, 4 -/* 0ADBDC 800ACFDC 1040FFF8 */ beqz $v0, .L800ACFC0 -/* 0ADBE0 800ACFE0 00000000 */ nop -.L800ACFE4: -/* 0ADBE4 800ACFE4 10400010 */ beqz $v0, .L800AD028 -/* 0ADBE8 800ACFE8 24B9FFFF */ addiu $t9, $a1, -1 -/* 0ADBEC 800ACFEC 2463FFFF */ addiu $v1, $v1, -1 -/* 0ADBF0 800ACFF0 0079082A */ slt $at, $v1, $t9 -/* 0ADBF4 800ACFF4 1020000C */ beqz $at, .L800AD028 -/* 0ADBF8 800ACFF8 ACF90000 */ sw $t9, ($a3) -/* 0ADBFC 800ACFFC 3C098012 */ lui $t1, %hi(D_80127C40) # $t1, 0x8012 -/* 0ADC00 800AD000 25297C40 */ addiu $t1, %lo(D_80127C40) # addiu $t1, $t1, 0x7c40 -/* 0ADC04 800AD004 00034080 */ sll $t0, $v1, 2 -/* 0ADC08 800AD008 00195080 */ sll $t2, $t9, 2 -/* 0ADC0C 800AD00C 01491021 */ addu $v0, $t2, $t1 -/* 0ADC10 800AD010 01093021 */ addu $a2, $t0, $t1 -.L800AD014: -/* 0ADC14 800AD014 8CCB0004 */ lw $t3, 4($a2) -/* 0ADC18 800AD018 24C60004 */ addiu $a2, $a2, 4 -/* 0ADC1C 800AD01C 00C2082B */ sltu $at, $a2, $v0 -/* 0ADC20 800AD020 1420FFFC */ bnez $at, .L800AD014 -/* 0ADC24 800AD024 ACCBFFFC */ sw $t3, -4($a2) -.L800AD028: -/* 0ADC28 800AD028 03E00008 */ jr $ra -/* 0ADC2C 800AD02C 00000000 */ nop - diff --git a/src/unknown_0ABDF0.c b/src/unknown_0ABDF0.c index 75b71fae..4bd848a8 100644 --- a/src/unknown_0ABDF0.c +++ b/src/unknown_0ABDF0.c @@ -87,15 +87,15 @@ f32 D_800E2AA4 = -200.0f; f32 D_800E2AA8 = -200.0f; s16 D_800E2AAC[80] = { - 0, 0, 0, -1, -1, 0, 0, 0, - -1, -1, 0, 0, 0, -1, -1, 0, - 0, 0, -1, -1, 0, 0, 0, -1, - -1, 0, 0, 0, -1, -1, 0, 0, - 0, -1, -1, 0, 0, 0, -1, -1, - 0, 0, 0, -1, -1, 0, 0, 0, - -1, -1, 0, 0, 0, -1, -1, 0, - 0, 0, -1, -1, 0, 0, 0, -1, - -1, 0, 0, 0, -1, -1, 0, 0, + 0, 0, 0, -1, -1, 0, 0, 0, + -1, -1, 0, 0, 0, -1, -1, 0, + 0, 0, -1, -1, 0, 0, 0, -1, + -1, 0, 0, 0, -1, -1, 0, 0, + 0, -1, -1, 0, 0, 0, -1, -1, + 0, 0, 0, -1, -1, 0, 0, 0, + -1, -1, 0, 0, 0, -1, -1, 0, + 0, 0, -1, -1, 0, 0, 0, -1, + -1, 0, 0, 0, -1, -1, 0, 0, 0, -1, -1, 0, 0, 0, -1, -1 }; @@ -199,7 +199,26 @@ void func_800ACF60(Object *arg0) { } } -GLOBAL_ASM("asm/non_matchings/unknown_09F8F0/func_800ACF98.s") +void func_800ACF98(Object* arg0) { + s32 i; + s32 isFound = FALSE; + + for (i = 0; i < D_800E2A88 && !isFound; i++) { + if (D_80127C40[i] == arg0) { + isFound = TRUE; + } + } + + if (isFound) { + D_800E2A88--; + i--; + for (; i < D_800E2A88; i++) { + D_80127C40[i] = D_80127C40[i + 1]; + } + } + +} + GLOBAL_ASM("asm/non_matchings/unknown_09F8F0/func_800AD030.s") GLOBAL_ASM("asm/non_matchings/unknown_09F8F0/func_800AD144.s")