match func_80050754

makes you feel dumb when the permuter matches on literally the first try

and also when I realise I could've saved time from seeing this func was already a wip
This commit is contained in:
Fazana
2022-05-03 17:50:44 +01:00
parent 298195bf92
commit a8d3c29c8b
2 changed files with 20 additions and 91 deletions
-65
View File
@@ -1,65 +0,0 @@
glabel func_80050754
/* 051354 80050754 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 051358 80050758 AFBF001C */ sw $ra, 0x1c($sp)
/* 05135C 8005075C AFB00018 */ sw $s0, 0x18($sp)
/* 051360 80050760 240E0028 */ li $t6, 40
/* 051364 80050764 A080003B */ sb $zero, 0x3b($a0)
/* 051368 80050768 A48E0018 */ sh $t6, 0x18($a0)
/* 05136C 8005076C 8CA20148 */ lw $v0, 0x148($a1)
/* 051370 80050770 C486000C */ lwc1 $f6, 0xc($a0)
/* 051374 80050774 C444000C */ lwc1 $f4, 0xc($v0)
/* 051378 80050778 C48A0010 */ lwc1 $f10, 0x10($a0)
/* 05137C 8005077C 46062001 */ sub.s $f0, $f4, $f6
/* 051380 80050780 C4840014 */ lwc1 $f4, 0x14($a0)
/* 051384 80050784 C4480010 */ lwc1 $f8, 0x10($v0)
/* 051388 80050788 C4520014 */ lwc1 $f18, 0x14($v0)
/* 05138C 8005078C 44867000 */ mtc1 $a2, $f14
/* 051390 80050790 460A4081 */ sub.s $f2, $f8, $f10
/* 051394 80050794 00A08025 */ move $s0, $a1
/* 051398 80050798 46049301 */ sub.s $f12, $f18, $f4
/* 05139C 8005079C 44050000 */ mfc1 $a1, $f0
/* 0513A0 800507A0 44076000 */ mfc1 $a3, $f12
/* 0513A4 800507A4 44061000 */ mfc1 $a2, $f2
/* 0513A8 800507A8 E7AC0024 */ swc1 $f12, 0x24($sp)
/* 0513AC 800507AC E7A20028 */ swc1 $f2, 0x28($sp)
/* 0513B0 800507B0 E7A0002C */ swc1 $f0, 0x2c($sp)
/* 0513B4 800507B4 AFA40030 */ sw $a0, 0x30($sp)
/* 0513B8 800507B8 0C00455C */ jal func_80011570
/* 0513BC 800507BC E7AE0038 */ swc1 $f14, 0x38($sp)
/* 0513C0 800507C0 8E0F0148 */ lw $t7, 0x148($s0)
/* 0513C4 800507C4 8FA40030 */ lw $a0, 0x30($sp)
/* 0513C8 800507C8 85F80000 */ lh $t8, ($t7)
/* 0513CC 800507CC C7A0002C */ lwc1 $f0, 0x2c($sp)
/* 0513D0 800507D0 C7A20028 */ lwc1 $f2, 0x28($sp)
/* 0513D4 800507D4 C7AC0024 */ lwc1 $f12, 0x24($sp)
/* 0513D8 800507D8 C7AE0038 */ lwc1 $f14, 0x38($sp)
/* 0513DC 800507DC A4980000 */ sh $t8, ($a0)
/* 0513E0 800507E0 8E190148 */ lw $t9, 0x148($s0)
/* 0513E4 800507E4 460E0183 */ div.s $f6, $f0, $f14
/* 0513E8 800507E8 87280002 */ lh $t0, 2($t9)
/* 0513EC 800507EC 44808000 */ mtc1 $zero, $f16
/* 0513F0 800507F0 A4880002 */ sh $t0, 2($a0)
/* 0513F4 800507F4 8E090148 */ lw $t1, 0x148($s0)
/* 0513F8 800507F8 00000000 */ nop
/* 0513FC 800507FC 852A0004 */ lh $t2, 4($t1)
/* 051400 80050800 00000000 */ nop
/* 051404 80050804 A48A0004 */ sh $t2, 4($a0)
/* 051408 80050808 848B0004 */ lh $t3, 4($a0)
/* 05140C 8005080C 00000000 */ nop
/* 051410 80050810 A60B01A4 */ sh $t3, 0x1a4($s0)
/* 051414 80050814 460E1203 */ div.s $f8, $f2, $f14
/* 051418 80050818 848C0000 */ lh $t4, ($a0)
/* 05141C 8005081C 00000000 */ nop
/* 051420 80050820 A60C01A0 */ sh $t4, 0x1a0($s0)
/* 051424 80050824 E486001C */ swc1 $f6, 0x1c($a0)
/* 051428 80050828 460E6283 */ div.s $f10, $f12, $f14
/* 05142C 8005082C E4880020 */ swc1 $f8, 0x20($a0)
/* 051430 80050830 E48A0024 */ swc1 $f10, 0x24($a0)
/* 051434 80050834 A20001F2 */ sb $zero, 0x1f2($s0)
/* 051438 80050838 E610002C */ swc1 $f16, 0x2c($s0)
/* 05143C 8005083C E6100030 */ swc1 $f16, 0x30($s0)
/* 051440 80050840 8FBF001C */ lw $ra, 0x1c($sp)
/* 051444 80050844 8FB00018 */ lw $s0, 0x18($sp)
/* 051448 80050848 03E00008 */ jr $ra
/* 05144C 8005084C 27BD0030 */ addiu $sp, $sp, 0x30
+20 -26
View File
@@ -642,35 +642,29 @@ void func_8004F77C(unk8004F77C *arg0) {
GLOBAL_ASM("asm/non_matchings/racer/func_8004F7F4.s")
#ifdef NON_EQUIVALENT
// Mainly has regalloc issues.
void func_80050754(Object *obj, Object_Racer *obj64, f32 arg2) {
f32 xDiff, yDiff, zDiff;
Object *someObj;
void func_80050754(Object *obj, Object_Racer *racer, f32 arg2) {
f32 diffX;
f32 diffY;
f32 diffZ;
obj->segment.unk3B = 0;
obj->segment.unk18 = 0x28;
someObj = obj64->unk148;
xDiff = someObj->segment.trans.x_position - obj->segment.trans.x_position;
yDiff = someObj->segment.trans.y_position - obj->segment.trans.y_position;
zDiff = someObj->segment.trans.z_position - obj->segment.trans.z_position;
func_80011570(obj, xDiff, yDiff, zDiff);
obj->segment.trans.y_rotation = obj64->unk148->segment.trans.y_rotation;
obj->segment.trans.x_rotation = obj64->unk148->segment.trans.x_rotation;
obj->segment.trans.z_rotation = obj64->unk148->segment.trans.z_rotation;
obj64->unk1A4 = obj->segment.trans.z_rotation;
obj64->unk1A0 = obj->segment.trans.y_rotation;
obj->segment.x_velocity = xDiff / arg2;
obj->segment.y_velocity = yDiff / arg2;
obj->segment.z_velocity = zDiff / arg2;
obj64->unk1F2 = 0;
obj64->velocity = 0.0f;
obj64->lateral_velocity = 0.0f;
obj->segment.unk18 = 40;
diffX = racer->unk148->segment.trans.x_position - obj->segment.trans.x_position;
diffY = racer->unk148->segment.trans.y_position - obj->segment.trans.y_position;
diffZ = racer->unk148->segment.trans.z_position - obj->segment.trans.z_position;
func_80011570(obj, diffX, diffY, diffZ);
obj->segment.trans.y_rotation = racer->unk148->segment.trans.y_rotation;
obj->segment.trans.x_rotation = racer->unk148->segment.trans.x_rotation;
obj->segment.trans.z_rotation = racer->unk148->segment.trans.z_rotation;
racer->unk1A4 = obj->segment.trans.z_rotation;
racer->unk1A0 = obj->segment.trans.y_rotation;
obj->segment.x_velocity = diffX / arg2;
obj->segment.y_velocity = diffY / arg2;
obj->segment.z_velocity = diffZ / arg2;
racer->velocity = 0.0f;
racer->unk1F2 = 0;
racer->lateral_velocity = 0.0f;
}
#else
GLOBAL_ASM("asm/non_matchings/racer/func_80050754.s")
#endif
/**
* Applies visual rotational offets to vehicles.
* Examples include planes when on the ground, or when crashing, or hovercraft when braking.