mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
match func_80058B84
This commit is contained in:
@@ -1,123 +0,0 @@
|
||||
glabel func_80058B84
|
||||
/* 059784 80058B84 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 059788 80058B88 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 05978C 80058B8C 3C108012 */ lui $s0, %hi(gCameraObject) # $s0, 0x8012
|
||||
/* 059790 80058B90 2610D508 */ addiu $s0, %lo(gCameraObject) # addiu $s0, $s0, -0x2af8
|
||||
/* 059794 80058B94 8E020000 */ lw $v0, ($s0)
|
||||
/* 059798 80058B98 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 05979C 80058B9C E7AC0030 */ swc1 $f12, 0x30($sp)
|
||||
/* 0597A0 80058BA0 AFA60038 */ sw $a2, 0x38($sp)
|
||||
/* 0597A4 80058BA4 844E0000 */ lh $t6, ($v0)
|
||||
/* 0597A8 80058BA8 24180400 */ li $t8, 1024
|
||||
/* 0597AC 80058BAC 25CF0200 */ addiu $t7, $t6, 0x200
|
||||
/* 0597B0 80058BB0 A44F0000 */ sh $t7, ($v0)
|
||||
/* 0597B4 80058BB4 8E190000 */ lw $t9, ($s0)
|
||||
/* 0597B8 80058BB8 3C014316 */ li $at, 0x43160000 # 150.000000
|
||||
/* 0597BC 80058BBC A7380002 */ sh $t8, 2($t9)
|
||||
/* 0597C0 80058BC0 8E080000 */ lw $t0, ($s0)
|
||||
/* 0597C4 80058BC4 44812000 */ mtc1 $at, $f4
|
||||
/* 0597C8 80058BC8 A5000004 */ sh $zero, 4($t0)
|
||||
/* 0597CC 80058BCC 8E090000 */ lw $t1, ($s0)
|
||||
/* 0597D0 80058BD0 340C8000 */ li $t4, 32768
|
||||
/* 0597D4 80058BD4 E524001C */ swc1 $f4, 0x1c($t1)
|
||||
/* 0597D8 80058BD8 8E0A0000 */ lw $t2, ($s0)
|
||||
/* 0597DC 80058BDC 00000000 */ nop
|
||||
/* 0597E0 80058BE0 854B0000 */ lh $t3, ($t2)
|
||||
/* 0597E4 80058BE4 AFA50034 */ sw $a1, 0x34($sp)
|
||||
/* 0597E8 80058BE8 018B2023 */ subu $a0, $t4, $t3
|
||||
/* 0597EC 80058BEC 00046C00 */ sll $t5, $a0, 0x10
|
||||
/* 0597F0 80058BF0 0C01C1F1 */ jal func_800707C4
|
||||
/* 0597F4 80058BF4 000D2403 */ sra $a0, $t5, 0x10
|
||||
/* 0597F8 80058BF8 8E020000 */ lw $v0, ($s0)
|
||||
/* 0597FC 80058BFC 34188000 */ li $t8, 32768
|
||||
/* 059800 80058C00 C446001C */ lwc1 $f6, 0x1c($v0)
|
||||
/* 059804 80058C04 00000000 */ nop
|
||||
/* 059808 80058C08 46060202 */ mul.s $f8, $f0, $f6
|
||||
/* 05980C 80058C0C E7A80020 */ swc1 $f8, 0x20($sp)
|
||||
/* 059810 80058C10 844F0000 */ lh $t7, ($v0)
|
||||
/* 059814 80058C14 00000000 */ nop
|
||||
/* 059818 80058C18 030F2023 */ subu $a0, $t8, $t7
|
||||
/* 05981C 80058C1C 0004CC00 */ sll $t9, $a0, 0x10
|
||||
/* 059820 80058C20 0C01C1FE */ jal func_800707F8
|
||||
/* 059824 80058C24 00192403 */ sra $a0, $t9, 0x10
|
||||
/* 059828 80058C28 8FA50034 */ lw $a1, 0x34($sp)
|
||||
/* 05982C 80058C2C C7A60020 */ lwc1 $f6, 0x20($sp)
|
||||
/* 059830 80058C30 C4A4000C */ lwc1 $f4, 0xc($a1)
|
||||
/* 059834 80058C34 8E020000 */ lw $v0, ($s0)
|
||||
/* 059838 80058C38 46062200 */ add.s $f8, $f4, $f6
|
||||
/* 05983C 80058C3C C44A001C */ lwc1 $f10, 0x1c($v0)
|
||||
/* 059840 80058C40 E448000C */ swc1 $f8, 0xc($v0)
|
||||
/* 059844 80058C44 460A0402 */ mul.s $f16, $f0, $f10
|
||||
/* 059848 80058C48 3C014234 */ li $at, 0x42340000 # 45.000000
|
||||
/* 05984C 80058C4C 44819000 */ mtc1 $at, $f18
|
||||
/* 059850 80058C50 8E020000 */ lw $v0, ($s0)
|
||||
/* 059854 80058C54 C4AA0010 */ lwc1 $f10, 0x10($a1)
|
||||
/* 059858 80058C58 C44E0010 */ lwc1 $f14, 0x10($v0)
|
||||
/* 05985C 80058C5C 46125100 */ add.s $f4, $f10, $f18
|
||||
/* 059860 80058C60 3C013FD0 */ li $at, 0x3FD00000 # 1.625000
|
||||
/* 059864 80058C64 46047181 */ sub.s $f6, $f14, $f4
|
||||
/* 059868 80058C68 44815800 */ mtc1 $at, $f11
|
||||
/* 05986C 80058C6C 44805000 */ mtc1 $zero, $f10
|
||||
/* 059870 80058C70 46003221 */ cvt.d.s $f8, $f6
|
||||
/* 059874 80058C74 462A4102 */ mul.d $f4, $f8, $f10
|
||||
/* 059878 80058C78 3C01C000 */ li $at, 0xC0000000 # -2.000000
|
||||
/* 05987C 80058C7C 44813800 */ mtc1 $at, $f7
|
||||
/* 059880 80058C80 44803000 */ mtc1 $zero, $f6
|
||||
/* 059884 80058C84 3C014000 */ li $at, 0x40000000 # 2.000000
|
||||
/* 059888 80058C88 46202320 */ cvt.s.d $f12, $f4
|
||||
/* 05988C 80058C8C 460060A1 */ cvt.d.s $f2, $f12
|
||||
/* 059890 80058C90 4626103C */ c.lt.d $f2, $f6
|
||||
/* 059894 80058C94 00000000 */ nop
|
||||
/* 059898 80058C98 4500000A */ bc1f .L80058CC4
|
||||
/* 05989C 80058C9C 00000000 */ nop
|
||||
/* 0598A0 80058CA0 44815800 */ mtc1 $at, $f11
|
||||
/* 0598A4 80058CA4 44805000 */ mtc1 $zero, $f10
|
||||
/* 0598A8 80058CA8 46007221 */ cvt.d.s $f8, $f14
|
||||
/* 0598AC 80058CAC 462A1100 */ add.d $f4, $f2, $f10
|
||||
/* 0598B0 80058CB0 46244181 */ sub.d $f6, $f8, $f4
|
||||
/* 0598B4 80058CB4 462032A0 */ cvt.s.d $f10, $f6
|
||||
/* 0598B8 80058CB8 E44A0010 */ swc1 $f10, 0x10($v0)
|
||||
/* 0598BC 80058CBC 8E020000 */ lw $v0, ($s0)
|
||||
/* 0598C0 80058CC0 00000000 */ nop
|
||||
.L80058CC4:
|
||||
/* 0598C4 80058CC4 44804000 */ mtc1 $zero, $f8
|
||||
/* 0598C8 80058CC8 00000000 */ nop
|
||||
/* 0598CC 80058CCC 460C403C */ c.lt.s $f8, $f12
|
||||
/* 0598D0 80058CD0 00000000 */ nop
|
||||
/* 0598D4 80058CD4 45000007 */ bc1f .L80058CF4
|
||||
/* 0598D8 80058CD8 00000000 */ nop
|
||||
/* 0598DC 80058CDC C4A40010 */ lwc1 $f4, 0x10($a1)
|
||||
/* 0598E0 80058CE0 00000000 */ nop
|
||||
/* 0598E4 80058CE4 46122180 */ add.s $f6, $f4, $f18
|
||||
/* 0598E8 80058CE8 E4460010 */ swc1 $f6, 0x10($v0)
|
||||
/* 0598EC 80058CEC 8E020000 */ lw $v0, ($s0)
|
||||
/* 0598F0 80058CF0 00000000 */ nop
|
||||
.L80058CF4:
|
||||
/* 0598F4 80058CF4 C4AA0014 */ lwc1 $f10, 0x14($a1)
|
||||
/* 0598F8 80058CF8 00000000 */ nop
|
||||
/* 0598FC 80058CFC 46105200 */ add.s $f8, $f10, $f16
|
||||
/* 059900 80058D00 E4480014 */ swc1 $f8, 0x14($v0)
|
||||
/* 059904 80058D04 8E020000 */ lw $v0, ($s0)
|
||||
/* 059908 80058D08 00000000 */ nop
|
||||
/* 05990C 80058D0C C44C000C */ lwc1 $f12, 0xc($v0)
|
||||
/* 059910 80058D10 C44E0010 */ lwc1 $f14, 0x10($v0)
|
||||
/* 059914 80058D14 8C460014 */ lw $a2, 0x14($v0)
|
||||
/* 059918 80058D18 0C00A7C6 */ jal get_level_segment_index_from_position
|
||||
/* 05991C 80058D1C 00000000 */ nop
|
||||
/* 059920 80058D20 2401FFFF */ li $at, -1
|
||||
/* 059924 80058D24 10410004 */ beq $v0, $at, .L80058D38
|
||||
/* 059928 80058D28 00000000 */ nop
|
||||
/* 05992C 80058D2C 8E090000 */ lw $t1, ($s0)
|
||||
/* 059930 80058D30 00000000 */ nop
|
||||
/* 059934 80058D34 A5220034 */ sh $v0, 0x34($t1)
|
||||
.L80058D38:
|
||||
/* 059938 80058D38 8E0A0000 */ lw $t2, ($s0)
|
||||
/* 05993C 80058D3C 8FAB0038 */ lw $t3, 0x38($sp)
|
||||
/* 059940 80058D40 854C0000 */ lh $t4, ($t2)
|
||||
/* 059944 80058D44 00000000 */ nop
|
||||
/* 059948 80058D48 A56C0196 */ sh $t4, 0x196($t3)
|
||||
/* 05994C 80058D4C 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 059950 80058D50 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 059954 80058D54 03E00008 */ jr $ra
|
||||
/* 059958 80058D58 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
|
||||
+31
-1
@@ -19,6 +19,7 @@
|
||||
#include "printf.h"
|
||||
#include "math_util.h"
|
||||
#include "unknown_0255E0.h"
|
||||
#include "weather.h"
|
||||
|
||||
#define MAX_NUMBER_OF_GHOST_NODES 360
|
||||
|
||||
@@ -1075,7 +1076,36 @@ void func_800580B4(Object *obj, Object_Racer *obj64, s32 arg2, f32 arg3) {
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/racer/func_800581E8.s")
|
||||
GLOBAL_ASM("asm/non_matchings/racer/func_80058B84.s")
|
||||
|
||||
void func_80058B84(f32 arg0, Object* obj, Object_Racer* arg2) {
|
||||
s32 levelSeg;
|
||||
f32 temp_f12;
|
||||
f32 zOffset;
|
||||
f32 xOffset;
|
||||
|
||||
gCameraObject->trans.y_rotation += 0x200;
|
||||
if (1);
|
||||
gCameraObject->trans.x_rotation = 0x400;
|
||||
gCameraObject->trans.z_rotation = 0;
|
||||
gCameraObject->unk1C = 150.0f;
|
||||
xOffset = func_800707C4(0x8000 - gCameraObject->trans.y_rotation) * gCameraObject->unk1C;
|
||||
zOffset = func_800707F8(0x8000 - gCameraObject->trans.y_rotation) * gCameraObject->unk1C;
|
||||
gCameraObject->trans.x_position = obj->segment.trans.x_position + xOffset;
|
||||
temp_f12 = (gCameraObject->trans.y_position - (obj->segment.trans.y_position + 45.0f)) * 0.25;
|
||||
if (temp_f12 < -2.0) {
|
||||
gCameraObject->trans.y_position = (gCameraObject->trans.y_position - (temp_f12 + 2.0));
|
||||
}
|
||||
if (temp_f12 > 0.0f) {
|
||||
gCameraObject->trans.y_position = obj->segment.trans.y_position + 45.0f;
|
||||
}
|
||||
gCameraObject->trans.z_position = obj->segment.trans.z_position + zOffset;
|
||||
levelSeg = get_level_segment_index_from_position(gCameraObject->trans.x_position, gCameraObject->trans.y_position, gCameraObject->trans.z_position);
|
||||
if (levelSeg != -1) {
|
||||
gCameraObject->unk34 = levelSeg;
|
||||
}
|
||||
arg2->unk196 = gCameraObject->trans.y_rotation;
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/racer/func_80058D5C.s")
|
||||
|
||||
void func_80058F44(f32 arg0, struct Object *arg1, struct Object *arg2)
|
||||
|
||||
Reference in New Issue
Block a user