match func_80058F44

This commit is contained in:
Fazana
2022-05-03 18:45:09 +01:00
parent a8d3c29c8b
commit 862ef369df
2 changed files with 15 additions and 92 deletions
-81
View File
@@ -1,81 +0,0 @@
glabel func_80058F44
/* 059B44 80058F44 444EF800 */ cfc1 $t6, $31
/* 059B48 80058F48 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 059B4C 80058F4C 35C10003 */ ori $at, $t6, 3
/* 059B50 80058F50 38210002 */ xori $at, $at, 2
/* 059B54 80058F54 44C1F800 */ ctc1 $at, $31
/* 059B58 80058F58 AFBF0014 */ sw $ra, 0x14($sp)
/* 059B5C 80058F5C AFA60028 */ sw $a2, 0x28($sp)
/* 059B60 80058F60 3C038012 */ lui $v1, %hi(gCameraObject) # $v1, 0x8012
/* 059B64 80058F64 8C63D508 */ lw $v1, %lo(gCameraObject)($v1)
/* 059B68 80058F68 46006124 */ cvt.w.s $f4, $f12
/* 059B6C 80058F6C C4A8000C */ lwc1 $f8, 0xc($a1)
/* 059B70 80058F70 44CEF800 */ ctc1 $t6, $31
/* 059B74 80058F74 C4B00014 */ lwc1 $f16, 0x14($a1)
/* 059B78 80058F78 C466000C */ lwc1 $f6, 0xc($v1)
/* 059B7C 80058F7C C46A0014 */ lwc1 $f10, 0x14($v1)
/* 059B80 80058F80 46083001 */ sub.s $f0, $f6, $f8
/* 059B84 80058F84 44082000 */ mfc1 $t0, $f4
/* 059B88 80058F88 46105081 */ sub.s $f2, $f10, $f16
/* 059B8C 80058F8C AFA8001C */ sw $t0, 0x1c($sp)
/* 059B90 80058F90 444FF800 */ cfc1 $t7, $31
/* 059B94 80058F94 00000000 */ nop
/* 059B98 80058F98 35E10003 */ ori $at, $t7, 3
/* 059B9C 80058F9C 38210002 */ xori $at, $at, 2
/* 059BA0 80058FA0 44C1F800 */ ctc1 $at, $31
/* 059BA4 80058FA4 00000000 */ nop
/* 059BA8 80058FA8 460004A4 */ cvt.w.s $f18, $f0
/* 059BAC 80058FAC 44CFF800 */ ctc1 $t7, $31
/* 059BB0 80058FB0 44049000 */ mfc1 $a0, $f18
/* 059BB4 80058FB4 00000000 */ nop
/* 059BB8 80058FB8 4458F800 */ cfc1 $t8, $31
/* 059BBC 80058FBC 00000000 */ nop
/* 059BC0 80058FC0 37010003 */ ori $at, $t8, 3
/* 059BC4 80058FC4 38210002 */ xori $at, $at, 2
/* 059BC8 80058FC8 44C1F800 */ ctc1 $at, $31
/* 059BCC 80058FCC 00000000 */ nop
/* 059BD0 80058FD0 46001124 */ cvt.w.s $f4, $f2
/* 059BD4 80058FD4 44052000 */ mfc1 $a1, $f4
/* 059BD8 80058FD8 44D8F800 */ ctc1 $t8, $31
/* 059BDC 80058FDC 0C01C19B */ jal func_8007066C
/* 059BE0 80058FE0 00000000 */ nop
/* 059BE4 80058FE4 3C078012 */ lui $a3, %hi(gCameraObject) # $a3, 0x8012
/* 059BE8 80058FE8 24E7D508 */ addiu $a3, %lo(gCameraObject) # addiu $a3, $a3, -0x2af8
/* 059BEC 80058FEC 8CE30000 */ lw $v1, ($a3)
/* 059BF0 80058FF0 0002C823 */ negu $t9, $v0
/* 059BF4 80058FF4 84640000 */ lh $a0, ($v1)
/* 059BF8 80058FF8 8FA8001C */ lw $t0, 0x1c($sp)
/* 059BFC 80058FFC 34018000 */ li $at, 32768
/* 059C00 80059000 03244823 */ subu $t1, $t9, $a0
/* 059C04 80059004 01215021 */ addu $t2, $t1, $at
/* 059C08 80059008 01480019 */ multu $t2, $t0
/* 059C0C 8005900C 00005812 */ mflo $t3
/* 059C10 80059010 000B6103 */ sra $t4, $t3, 4
/* 059C14 80059014 008C6821 */ addu $t5, $a0, $t4
/* 059C18 80059018 A46D0000 */ sh $t5, ($v1)
/* 059C1C 8005901C 8CE30000 */ lw $v1, ($a3)
/* 059C20 80059020 00000000 */ nop
/* 059C24 80059024 84650004 */ lh $a1, 4($v1)
/* 059C28 80059028 00000000 */ nop
/* 059C2C 8005902C 00A80019 */ multu $a1, $t0
/* 059C30 80059030 00007012 */ mflo $t6
/* 059C34 80059034 000E7903 */ sra $t7, $t6, 4
/* 059C38 80059038 00AFC023 */ subu $t8, $a1, $t7
/* 059C3C 8005903C A4780004 */ sh $t8, 4($v1)
/* 059C40 80059040 8CE30000 */ lw $v1, ($a3)
/* 059C44 80059044 8FB90028 */ lw $t9, 0x28($sp)
/* 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 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
/* 059C64 80059064 8CE90000 */ lw $t1, ($a3)
/* 059C68 80059068 00000000 */ nop
/* 059C6C 8005906C A5220034 */ sh $v0, 0x34($t1)
/* 059C70 80059070 8FBF0014 */ lw $ra, 0x14($sp)
/* 059C74 80059074 27BD0020 */ addiu $sp, $sp, 0x20
/* 059C78 80059078 03E00008 */ jr $ra
/* 059C7C 8005907C 00000000 */ nop
+15 -11
View File
@@ -18,6 +18,7 @@
#include "game.h"
#include "printf.h"
#include "math_util.h"
#include "unknown_0255E0.h"
#define MAX_NUMBER_OF_GHOST_NODES 360
@@ -665,6 +666,7 @@ void func_80050754(Object *obj, Object_Racer *racer, f32 arg2) {
racer->unk1F2 = 0;
racer->lateral_velocity = 0.0f;
}
/**
* Applies visual rotational offets to vehicles.
* Examples include planes when on the ground, or when crashing, or hovercraft when braking.
@@ -1084,18 +1086,20 @@ GLOBAL_ASM("asm/non_matchings/racer/func_800581E8.s")
GLOBAL_ASM("asm/non_matchings/racer/func_80058B84.s")
GLOBAL_ASM("asm/non_matchings/racer/func_80058D5C.s")
#ifdef NON_EQUIVALENT
void func_80058F44(f32 arg0, Object *arg1, Object *arg2) {
s32 temp0, temp1;
temp0 = (s32)arg0;
temp1 = func_8007066C(gCameraObject->trans.x_position - arg1->segment.trans.x_position, gCameraObject->trans.z_position - arg1->segment.trans.z_position);
gCameraObject->y_rotation += (((-temp1 - gCameraObject->y_rotation) + 0x8000) * temp0) >> 4;
gCameraObject->z_rotation -= (gCameraObject->z_rotation * temp0) >> 4;
gCameraObject->unk34 = get_level_segment_index_from_position(gCameraObject->trans.x_position, arg2->segment.unk3C_a.unk3C_f, gCameraObject->trans.z_position);
void func_80058F44(f32 arg0, struct Object *arg1, struct Object *arg2)
{
s32 temp_f4;
f32 diffX;
f32 diffZ;
temp_f4 = (s32) arg0;
diffX = gCameraObject->trans.x_position - arg1->segment.trans.x_position;
diffZ = gCameraObject->trans.z_position - arg1->segment.trans.z_position;
gCameraObject->trans.y_rotation += ((((-func_8007066C((s32) diffX, (s32) diffZ)) -
gCameraObject->trans.y_rotation) + 0x8000) * temp_f4) >> 4;
gCameraObject->trans.z_rotation -= (((s32) (gCameraObject->trans.z_rotation * temp_f4)) >> 4);
gCameraObject->unk34 = get_level_segment_index_from_position(gCameraObject->trans.x_position,
arg2->segment.unk3C_a.unk3C_f, gCameraObject->trans.z_position);
}
#else
GLOBAL_ASM("asm/non_matchings/racer/func_80058F44.s")
#endif
typedef struct Object_64_80059080 {
u8 pad0[0x10];