mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
match func_80058F44
This commit is contained in:
@@ -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
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user