match func_800570B8

This commit is contained in:
Fazana
2022-05-03 19:26:32 +01:00
parent 862ef369df
commit 03c54b030b
2 changed files with 17 additions and 124 deletions
-99
View File
@@ -1,99 +0,0 @@
glabel func_800570B8
/* 057CB8 800570B8 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 057CBC 800570BC AFBF002C */ sw $ra, 0x2c($sp)
/* 057CC0 800570C0 AFB30028 */ sw $s3, 0x28($sp)
/* 057CC4 800570C4 AFB20024 */ sw $s2, 0x24($sp)
/* 057CC8 800570C8 AFB10020 */ sw $s1, 0x20($sp)
/* 057CCC 800570CC AFB0001C */ sw $s0, 0x1c($sp)
/* 057CD0 800570D0 AFA40038 */ sw $a0, 0x38($sp)
/* 057CD4 800570D4 AFA60040 */ sw $a2, 0x40($sp)
/* 057CD8 800570D8 8C920064 */ lw $s2, 0x64($a0)
/* 057CDC 800570DC 00E08025 */ move $s0, $a3
/* 057CE0 800570E0 8E4F0108 */ lw $t7, 0x108($s2)
/* 057CE4 800570E4 00A09825 */ move $s3, $a1
/* 057CE8 800570E8 15E00046 */ bnez $t7, .L80057204
/* 057CEC 800570EC 30F80080 */ andi $t8, $a3, 0x80
/* 057CF0 800570F0 13000004 */ beqz $t8, .L80057104
/* 057CF4 800570F4 3C198012 */ lui $t9, %hi(D_8011D55C) # $t9, 0x8012
/* 057CF8 800570F8 8F39D55C */ lw $t9, %lo(D_8011D55C)($t9)
/* 057CFC 800570FC 2401FFFF */ li $at, -1
/* 057D00 80057100 13210040 */ beq $t9, $at, .L80057204
.L80057104:
/* 057D04 80057104 24010002 */ li $at, 2
/* 057D08 80057108 1601000C */ bne $s0, $at, .L8005713C
/* 057D0C 8005710C 00000000 */ nop
/* 057D10 80057110 8E440024 */ lw $a0, 0x24($s2)
/* 057D14 80057114 00000000 */ nop
/* 057D18 80057118 10800008 */ beqz $a0, .L8005713C
/* 057D1C 8005711C 00000000 */ nop
/* 057D20 80057120 9649002A */ lhu $t1, 0x2a($s2)
/* 057D24 80057124 00000000 */ nop
/* 057D28 80057128 12690004 */ beq $s3, $t1, .L8005713C
/* 057D2C 8005712C 00000000 */ nop
/* 057D30 80057130 0C0025BE */ jal func_800096F8
/* 057D34 80057134 00000000 */ nop
/* 057D38 80057138 AE400024 */ sw $zero, 0x24($s2)
.L8005713C:
/* 057D3C 8005713C 8E4A0024 */ lw $t2, 0x24($s2)
/* 057D40 80057140 24010003 */ li $at, 3
/* 057D44 80057144 15400030 */ bnez $t2, .L80057208
/* 057D48 80057148 8FBF002C */ lw $ra, 0x2c($sp)
/* 057D4C 8005714C 16010005 */ bne $s0, $at, .L80057164
/* 057D50 80057150 00002025 */ move $a0, $zero
/* 057D54 80057154 0C01BE53 */ jal get_random_number_from_range
/* 057D58 80057158 24050001 */ li $a1, 1
/* 057D5C 8005715C 1040002A */ beqz $v0, .L80057208
/* 057D60 80057160 8FBF002C */ lw $ra, 0x2c($sp)
.L80057164:
/* 057D64 80057164 A653002A */ sh $s3, 0x2a($s2)
/* 057D68 80057168 8FB10040 */ lw $s1, 0x40($sp)
/* 057D6C 8005716C 824B0003 */ lb $t3, 3($s2)
/* 057D70 80057170 2631FFFF */ addiu $s1, $s1, -1
/* 057D74 80057174 02202825 */ move $a1, $s1
/* 057D78 80057178 00002025 */ move $a0, $zero
/* 057D7C 8005717C 0C01BE53 */ jal get_random_number_from_range
/* 057D80 80057180 026B9821 */ addu $s3, $s3, $t3
/* 057D84 80057184 2410000C */ li $s0, 12
/* 057D88 80057188 00500019 */ multu $v0, $s0
/* 057D8C 8005718C 00006012 */ mflo $t4
/* 057D90 80057190 01931821 */ addu $v1, $t4, $s3
/* 057D94 80057194 1A20000D */ blez $s1, .L800571CC
/* 057D98 80057198 00604025 */ move $t0, $v1
/* 057D9C 8005719C 964D0028 */ lhu $t5, 0x28($s2)
/* 057DA0 800571A0 00000000 */ nop
/* 057DA4 800571A4 146D0009 */ bne $v1, $t5, .L800571CC
/* 057DA8 800571A8 00002025 */ move $a0, $zero
.L800571AC:
/* 057DAC 800571AC 0C01BE53 */ jal get_random_number_from_range
/* 057DB0 800571B0 02202825 */ move $a1, $s1
/* 057DB4 800571B4 00500019 */ multu $v0, $s0
/* 057DB8 800571B8 964F0028 */ lhu $t7, 0x28($s2)
/* 057DBC 800571BC 00007012 */ mflo $t6
/* 057DC0 800571C0 01D34021 */ addu $t0, $t6, $s3
/* 057DC4 800571C4 110FFFF9 */ beq $t0, $t7, .L800571AC
/* 057DC8 800571C8 00002025 */ move $a0, $zero
.L800571CC:
/* 057DCC 800571CC 8FB80038 */ lw $t8, 0x38($sp)
/* 057DD0 800571D0 24190004 */ li $t9, 4
/* 057DD4 800571D4 8F05000C */ lw $a1, 0xc($t8)
/* 057DD8 800571D8 8F060010 */ lw $a2, 0x10($t8)
/* 057DDC 800571DC 8F070014 */ lw $a3, 0x14($t8)
/* 057DE0 800571E0 26490024 */ addiu $t1, $s2, 0x24
/* 057DE4 800571E4 AFA90014 */ sw $t1, 0x14($sp)
/* 057DE8 800571E8 AFA80034 */ sw $t0, 0x34($sp)
/* 057DEC 800571EC AFB90010 */ sw $t9, 0x10($sp)
/* 057DF0 800571F0 0C002556 */ jal func_80009558
/* 057DF4 800571F4 3104FFFF */ andi $a0, $t0, 0xffff
/* 057DF8 800571F8 8FA80034 */ lw $t0, 0x34($sp)
/* 057DFC 800571FC 00000000 */ nop
/* 057E00 80057200 A6480028 */ sh $t0, 0x28($s2)
.L80057204:
/* 057E04 80057204 8FBF002C */ lw $ra, 0x2c($sp)
.L80057208:
/* 057E08 80057208 8FB0001C */ lw $s0, 0x1c($sp)
/* 057E0C 8005720C 8FB10020 */ lw $s1, 0x20($sp)
/* 057E10 80057210 8FB20024 */ lw $s2, 0x24($sp)
/* 057E14 80057214 8FB30028 */ lw $s3, 0x28($sp)
/* 057E18 80057218 03E00008 */ jr $ra
/* 057E1C 8005721C 27BD0038 */ addiu $sp, $sp, 0x38
+17 -25
View File
@@ -988,40 +988,32 @@ void func_800570A4(Object *obj, s32 arg1, s32 arg2) {
temp->unk210 = arg2;
}
#ifdef NON_EQUIVALENT
void func_800570B8(Object *obj, s32 arg1, s32 arg2, s32 arg3) {
s32 phi_t0;
Object_Racer *obj64;
void func_800570B8(Object* obj, s32 arg1, s32 arg2, s32 arg3) {
s32 temp_v1;
Object_64* temp_s2;
obj64 = &obj->unk64->racer;
if ((obj64->unk108 == 0) && ((!(arg3 & 0x80)) || (D_8011D55C != -1))) {
temp_s2 = obj->unk64;
if ((temp_s2->racer.unk108 == 0) && ((!(arg3 & 0x80)) || (D_8011D55C != -1))) {
if (arg3 == 2) {
if ((obj64->unk24 != 0) && (arg1 != obj64->unk2A)) {
func_800096F8(obj64->unk24);
obj64->unk24 = 0;
if ((temp_s2->racer.unk24 != 0) && (arg1 != temp_s2->racer.unk2A)) {
func_800096F8(temp_s2->racer.unk24);
temp_s2->racer.unk24 = 0;
}
}
if (obj64->unk24 == 0) {
if (arg3 != 3 || get_random_number_from_range(0, 1) != 0) {
obj64->unk2A = arg1;
arg1 += obj64->characterId;
arg2--;
phi_t0 = (get_random_number_from_range(0, arg2) * 12) + arg1;
if (arg2 > 0) {
while (phi_t0 == obj64->unk28) {
phi_t0 = (get_random_number_from_range(0, arg2) * 12) + arg1;
}
if ((temp_s2->racer.unk24 == 0) && ((arg3 != 3) || (get_random_number_from_range(0, 1) != 0))) {
temp_s2->racer.unk2A = arg1;
arg1 += temp_s2->racer.characterId;
temp_v1 = (get_random_number_from_range(0, arg2 - 1) * 12) + arg1;
if (arg2 - 1 > 0) {
while (temp_v1 == temp_s2->racer.unk28) {
temp_v1 = (get_random_number_from_range(0, arg2 - 1) * 12) + arg1;
}
//sp34 = phi_t0;
func_80009558(phi_t0, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, 4, &obj64->unk24);
obj64->unk28 = phi_t0;
}
func_80009558(temp_v1, obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, 4, &temp_s2->racer.unk24);
temp_s2->racer.unk28 = temp_v1;
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/racer/func_800570B8.s")
#endif
GLOBAL_ASM("asm/non_matchings/racer/func_80057220.s")