Match 2 non-matchings in unknown_0348C0

- Matches func_80037594 and func_800380F8
This commit is contained in:
Faschz
2021-12-04 10:20:23 -06:00
parent 1294ec977d
commit bdebebbd0b
3 changed files with 5 additions and 104 deletions
@@ -1,40 +0,0 @@
glabel func_80037594
/* 038194 80037594 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 038198 80037598 AFBF0014 */ sw $ra, 0x14($sp)
/* 03819C 8003759C 8C820078 */ lw $v0, 0x78($a0)
/* 0381A0 800375A0 00803025 */ move $a2, $a0
/* 0381A4 800375A4 18400007 */ blez $v0, .L800375C4
/* 0381A8 800375A8 00055080 */ sll $t2, $a1, 2
/* 0381AC 800375AC 848F0006 */ lh $t7, 6($a0)
/* 0381B0 800375B0 00457023 */ subu $t6, $v0, $a1
/* 0381B4 800375B4 35F84000 */ ori $t8, $t7, 0x4000
/* 0381B8 800375B8 AC8E0078 */ sw $t6, 0x78($a0)
/* 0381BC 800375BC 10000015 */ b .L80037614
/* 0381C0 800375C0 A4980006 */ sh $t8, 6($a0)
.L800375C4:
/* 0381C4 800375C4 84C90018 */ lh $t1, 0x18($a2)
/* 0381C8 800375C8 84D90006 */ lh $t9, 6($a2)
/* 0381CC 800375CC 012A5821 */ addu $t3, $t1, $t2
/* 0381D0 800375D0 A4CB0018 */ sh $t3, 0x18($a2)
/* 0381D4 800375D4 84CC0018 */ lh $t4, 0x18($a2)
/* 0381D8 800375D8 3328BFFF */ andi $t0, $t9, 0xbfff
/* 0381DC 800375DC 29810100 */ slti $at, $t4, 0x100
/* 0381E0 800375E0 1420000C */ bnez $at, .L80037614
/* 0381E4 800375E4 A4C80006 */ sh $t0, 6($a2)
/* 0381E8 800375E8 A4C00018 */ sh $zero, 0x18($a2)
/* 0381EC 800375EC AFA60018 */ sw $a2, 0x18($sp)
/* 0381F0 800375F0 00002025 */ move $a0, $zero
/* 0381F4 800375F4 0C01BE53 */ jal get_random_number_from_range
/* 0381F8 800375F8 2405001E */ li $a1, 30
/* 0381FC 800375FC 8FA60018 */ lw $a2, 0x18($sp)
/* 038200 80037600 00000000 */ nop
/* 038204 80037604 8CCD007C */ lw $t5, 0x7c($a2)
/* 038208 80037608 00000000 */ nop
/* 03820C 8003760C 004D7021 */ addu $t6, $v0, $t5
/* 038210 80037610 ACCE0078 */ sw $t6, 0x78($a2)
.L80037614:
/* 038214 80037614 8FBF0014 */ lw $ra, 0x14($sp)
/* 038218 80037618 27BD0018 */ addiu $sp, $sp, 0x18
/* 03821C 8003761C 03E00008 */ jr $ra
/* 038220 80037620 00000000 */ nop
@@ -1,43 +0,0 @@
glabel func_800380F8
/* 038CF8 800380F8 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 038CFC 800380FC AFBF0014 */ sw $ra, 0x14($sp)
/* 038D00 80038100 AFA40018 */ sw $a0, 0x18($sp)
/* 038D04 80038104 0C007D18 */ jal func_8001F460
/* 038D08 80038108 00803025 */ move $a2, $a0
/* 038D0C 8003810C 8FA40018 */ lw $a0, 0x18($sp)
/* 038D10 80038110 00000000 */ nop
/* 038D14 80038114 8C830060 */ lw $v1, 0x60($a0)
/* 038D18 80038118 00000000 */ nop
/* 038D1C 8003811C 10600018 */ beqz $v1, .L80038180
/* 038D20 80038120 8FBF0014 */ lw $ra, 0x14($sp)
/* 038D24 80038124 8C620000 */ lw $v0, ($v1)
/* 038D28 80038128 24010003 */ li $at, 3
/* 038D2C 8003812C 18400013 */ blez $v0, .L8003817C
/* 038D30 80038130 240E4000 */ li $t6, 16384
/* 038D34 80038134 14410004 */ bne $v0, $at, .L80038148
/* 038D38 80038138 00000000 */ nop
/* 038D3C 8003813C 8C62000C */ lw $v0, 0xc($v1)
/* 038D40 80038140 10000004 */ b .L80038154
/* 038D44 80038144 804F003A */ lb $t7, 0x3a($v0)
.L80038148:
/* 038D48 80038148 8C620004 */ lw $v0, 4($v1)
/* 038D4C 8003814C 00000000 */ nop
/* 038D50 80038150 804F003A */ lb $t7, 0x3a($v0)
.L80038154:
/* 038D54 80038154 8C590040 */ lw $t9, 0x40($v0)
/* 038D58 80038158 25F80001 */ addiu $t8, $t7, 1
/* 038D5C 8003815C A058003A */ sb $t8, 0x3a($v0)
/* 038D60 80038160 A44E0000 */ sh $t6, ($v0)
/* 038D64 80038164 8049003A */ lb $t1, 0x3a($v0)
/* 038D68 80038168 83280055 */ lb $t0, 0x55($t9)
/* 038D6C 8003816C 00000000 */ nop
/* 038D70 80038170 15090003 */ bne $t0, $t1, .L80038180
/* 038D74 80038174 8FBF0014 */ lw $ra, 0x14($sp)
/* 038D78 80038178 A040003A */ sb $zero, 0x3a($v0)
.L8003817C:
/* 038D7C 8003817C 8FBF0014 */ lw $ra, 0x14($sp)
.L80038180:
/* 038D80 80038180 27BD0018 */ addiu $sp, $sp, 0x18
/* 038D84 80038184 03E00008 */ jr $ra
/* 038D88 80038188 00000000 */ nop
+5 -21
View File
@@ -440,24 +440,19 @@ void func_80037578(unk80037578 *arg0, u8 *arg1) {
arg0->unk7C = arg1[8];
}
#ifdef NON_MATCHING
// Regalloc issues
void func_80037594(Object *obj, s32 arg1) {
if (obj->unk78 > 0) {
obj->unk78 -= arg1;
obj->unk6 |= 0x4000;
} else {
obj->unk6 &= ~0x4000;
obj->unk18 += arg1 * 4;
obj->unk6 &= 0xBFFF;
if (obj->unk18 >= 256) {
obj->unk18 = 0;
obj->unk78 = get_random_number_from_range(0, 30) + obj->unk7C.word;
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80037594.s")
#endif
void func_80037624(unk80037624 *arg0, s32 arg1) {
arg0->unk6 |= 0x4000;
@@ -523,8 +518,6 @@ void func_80037D6C(s32 arg0, s32 arg1) {
GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80037D78.s")
#ifdef NON_MATCHING
// Regalloc issues
void func_800380F8(Object *obj, s32 arg1) {
Object_60_800380F8 *obj60;
Object *someObj;
@@ -533,22 +526,15 @@ void func_800380F8(Object *obj, s32 arg1) {
obj60 = obj->unk60;
if (obj60 != NULL) {
if (obj60->unk0 > 0) {
if (obj60->unk0 == 3) {
someObj = obj60->unkC;
} else {
someObj = obj60->unk4;
}
someObj->unk3A++;
someObj = obj60->unk0 == 3 ? obj60->unkC : obj60->unk4;
someObj->y_rotation = 0x4000;
if (someObj->descriptor_ptr->unk55 == someObj->unk3A) {
someObj->unk3A++;
if (someObj->unk3A == someObj->descriptor_ptr->unk55) {
someObj->unk3A = 0;
}
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800380F8.s")
#endif
void func_8003818C(Object *arg0, s32 arg1) {
arg0->unk4C->unk14 = 0x81;
@@ -806,8 +792,6 @@ void func_80038E3C(Object *obj, LevelObjectEntry80038E3C *arg1) {
obj->unk4C->unk12 = 0;
}
//GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80038E3C.s")
GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80038F58.s")
void func_80039160(unk80039160 *arg0, s8 *arg1) {
@@ -1333,7 +1317,7 @@ void func_8003FEF4(Object *arg0, LevelObjectEntry8003FEF4 *arg1) {
obj64->unkF = arg1->unk10;
obj64->unk12 = arg1->unk13;
func_800098A4(obj64->unk0, obj64->unk2, arg1->common.x, arg1->common.y, arg1->common.z,
obj64->unkF, obj64->unkE, obj64->unk10, obj64->unk12, obj64->unk4, obj64->unk11,
obj64->unkF, obj64->unkE, obj64->unk10, obj64->unk12, obj64->unk4, obj64->unk11,
obj64->unkC, obj64->unkD);
gParticlePtrList_addObject(arg0);
}