mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
c: func_80031018
This commit is contained in:
@@ -1,72 +0,0 @@
|
||||
glabel func_80031018
|
||||
/* 031C18 80031018 27BDFF70 */ addiu $sp, $sp, -0x90
|
||||
/* 031C1C 8003101C 44800000 */ mtc1 $zero, $f0
|
||||
/* 031C20 80031020 3C01C780 */ li $at, 0xC7800000 # -65536.000000
|
||||
/* 031C24 80031024 44812000 */ mtc1 $at, $f4
|
||||
/* 031C28 80031028 3C028012 */ lui $v0, %hi(D_8011B0B0) # $v0, 0x8012
|
||||
/* 031C2C 8003102C 8C42B0B0 */ lw $v0, %lo(D_8011B0B0)($v0)
|
||||
/* 031C30 80031030 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 031C34 80031034 E7A00034 */ swc1 $f0, 0x34($sp)
|
||||
/* 031C38 80031038 E7A00030 */ swc1 $f0, 0x30($sp)
|
||||
/* 031C3C 8003103C E7A4002C */ swc1 $f4, 0x2c($sp)
|
||||
/* 031C40 80031040 844E0004 */ lh $t6, 4($v0)
|
||||
/* 031C44 80031044 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
||||
/* 031C48 80031048 A7AE003C */ sh $t6, 0x3c($sp)
|
||||
/* 031C4C 8003104C 844F0002 */ lh $t7, 2($v0)
|
||||
/* 031C50 80031050 44813000 */ mtc1 $at, $f6
|
||||
/* 031C54 80031054 A7AF003A */ sh $t7, 0x3a($sp)
|
||||
/* 031C58 80031058 84580000 */ lh $t8, ($v0)
|
||||
/* 031C5C 8003105C 27A40050 */ addiu $a0, $sp, 0x50
|
||||
/* 031C60 80031060 27A50038 */ addiu $a1, $sp, 0x38
|
||||
/* 031C64 80031064 E7A00044 */ swc1 $f0, 0x44($sp)
|
||||
/* 031C68 80031068 E7A00048 */ swc1 $f0, 0x48($sp)
|
||||
/* 031C6C 8003106C E7A0004C */ swc1 $f0, 0x4c($sp)
|
||||
/* 031C70 80031070 E7A60040 */ swc1 $f6, 0x40($sp)
|
||||
/* 031C74 80031074 0C01BF0C */ jal func_8006FC30
|
||||
/* 031C78 80031078 A7B80038 */ sh $t8, 0x38($sp)
|
||||
/* 031C7C 8003107C 8FA50034 */ lw $a1, 0x34($sp)
|
||||
/* 031C80 80031080 8FA60030 */ lw $a2, 0x30($sp)
|
||||
/* 031C84 80031084 8FA7002C */ lw $a3, 0x2c($sp)
|
||||
/* 031C88 80031088 27B90034 */ addiu $t9, $sp, 0x34
|
||||
/* 031C8C 8003108C 27A80030 */ addiu $t0, $sp, 0x30
|
||||
/* 031C90 80031090 27A9002C */ addiu $t1, $sp, 0x2c
|
||||
/* 031C94 80031094 AFA90018 */ sw $t1, 0x18($sp)
|
||||
/* 031C98 80031098 AFA80014 */ sw $t0, 0x14($sp)
|
||||
/* 031C9C 8003109C AFB90010 */ sw $t9, 0x10($sp)
|
||||
/* 031CA0 800310A0 0C01BD93 */ jal func_8006F64C
|
||||
/* 031CA4 800310A4 27A40050 */ addiu $a0, $sp, 0x50
|
||||
/* 031CA8 800310A8 444AF800 */ cfc1 $t2, $31
|
||||
/* 031CAC 800310AC C7A80034 */ lwc1 $f8, 0x34($sp)
|
||||
/* 031CB0 800310B0 35410003 */ ori $at, $t2, 3
|
||||
/* 031CB4 800310B4 38210002 */ xori $at, $at, 2
|
||||
/* 031CB8 800310B8 44C1F800 */ ctc1 $at, $31
|
||||
/* 031CBC 800310BC C7B00030 */ lwc1 $f16, 0x30($sp)
|
||||
/* 031CC0 800310C0 460042A4 */ cvt.w.s $f10, $f8
|
||||
/* 031CC4 800310C4 C7A4002C */ lwc1 $f4, 0x2c($sp)
|
||||
/* 031CC8 800310C8 44CAF800 */ ctc1 $t2, $31
|
||||
/* 031CCC 800310CC 3C028012 */ lui $v0, %hi(D_8011D468) # $v0, 0x8012
|
||||
/* 031CD0 800310D0 440B5000 */ mfc1 $t3, $f10
|
||||
/* 031CD4 800310D4 444CF800 */ cfc1 $t4, $31
|
||||
/* 031CD8 800310D8 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 031CDC 800310DC 35810003 */ ori $at, $t4, 3
|
||||
/* 031CE0 800310E0 38210002 */ xori $at, $at, 2
|
||||
/* 031CE4 800310E4 44C1F800 */ ctc1 $at, $31
|
||||
/* 031CE8 800310E8 2442D468 */ addiu $v0, %lo(D_8011D468) # addiu $v0, $v0, -0x2b98
|
||||
/* 031CEC 800310EC 460084A4 */ cvt.w.s $f18, $f16
|
||||
/* 031CF0 800310F0 27BD0090 */ addiu $sp, $sp, 0x90
|
||||
/* 031CF4 800310F4 44CCF800 */ ctc1 $t4, $31
|
||||
/* 031CF8 800310F8 440D9000 */ mfc1 $t5, $f18
|
||||
/* 031CFC 800310FC AC4B0000 */ sw $t3, ($v0)
|
||||
/* 031D00 80031100 444EF800 */ cfc1 $t6, $31
|
||||
/* 031D04 80031104 AC4D0004 */ sw $t5, 4($v0)
|
||||
/* 031D08 80031108 35C10003 */ ori $at, $t6, 3
|
||||
/* 031D0C 8003110C 38210002 */ xori $at, $at, 2
|
||||
/* 031D10 80031110 44C1F800 */ ctc1 $at, $31
|
||||
/* 031D14 80031114 00000000 */ nop
|
||||
/* 031D18 80031118 460021A4 */ cvt.w.s $f6, $f4
|
||||
/* 031D1C 8003111C 440F3000 */ mfc1 $t7, $f6
|
||||
/* 031D20 80031120 44CEF800 */ ctc1 $t6, $31
|
||||
/* 031D24 80031124 03E00008 */ jr $ra
|
||||
/* 031D28 80031128 AC4F0008 */ sw $t7, 8($v0)
|
||||
|
||||
/* 031D2C 8003112C 00000000 */ nop
|
||||
+12
-2
@@ -173,9 +173,19 @@ typedef struct LevelHeader {
|
||||
|
||||
/* 0xB0 */ u8 padB0[0x3];
|
||||
/* 0xB3 */ u8 unkB3;
|
||||
/* 0xB4 */ u8 padB4[0x6];
|
||||
/* 0xB3 */ u8 unkB4;
|
||||
/* 0xB3 */ u8 unkB5;
|
||||
/* 0xB3 */ u8 unkB6;
|
||||
/* 0xB3 */ u8 unkB7;
|
||||
/* 0xB4 */ u8 padB8[0x2];
|
||||
/* 0xBA */ s16 unkBA;
|
||||
/* 0xBE */ u8 padBE[0xA];
|
||||
/* 0xBE */ u8 unkBE;
|
||||
/* 0xBE */ u8 unkBF;
|
||||
/* 0xBE */ u8 unkC0;
|
||||
/* 0xC1 */ u8 unkC1;
|
||||
/* 0xC2 */ u8 unkC2;
|
||||
/* 0xC3 */ u8 unkC3;
|
||||
/* 0xC4 */ u8 padC4[0x4];
|
||||
} LevelHeader;
|
||||
|
||||
/* Size: 0x50 bytes */
|
||||
|
||||
+189
-16
@@ -5,11 +5,6 @@
|
||||
#include "macros.h"
|
||||
#include "structs.h"
|
||||
|
||||
typedef struct{
|
||||
u8 pad00[0x49];
|
||||
s8 unk49;
|
||||
} unk800DC91C;
|
||||
|
||||
/* Size: 0x44 bytes */
|
||||
typedef struct unk80120AC0 {
|
||||
s16 unk0;
|
||||
@@ -34,7 +29,7 @@ typedef struct unk80120AC0 {
|
||||
u8 pad3C[8];
|
||||
} unk80120AC0;
|
||||
|
||||
extern unk800DC91C* D_800DC91C;
|
||||
extern LevelHeader *D_800DC91C;
|
||||
extern s32 D_800DC924;
|
||||
extern s32 D_8011D37C;
|
||||
extern s32 D_8011D474;
|
||||
@@ -82,17 +77,19 @@ typedef struct{
|
||||
unk800DC918_04_0C* unk0C;
|
||||
u8 pad0C[0x10];
|
||||
s16 unk20;
|
||||
u8 pad24[0x20];
|
||||
u8 pad22[0x09];
|
||||
s8 unk2B;
|
||||
u8 pad2C[0x18];
|
||||
} unk800DC918_04;
|
||||
|
||||
typedef struct{
|
||||
s16 unk00;
|
||||
s16 unk02;
|
||||
s16 unk04;
|
||||
s16 unk06;
|
||||
s16 unk08;
|
||||
s16 unk0A;
|
||||
} unk800DC918_08;
|
||||
s16 unk00; //sx
|
||||
s16 unk02; //sy
|
||||
s16 unk04; //sz
|
||||
s16 unk06; //lx
|
||||
s16 unk08; //ly
|
||||
s16 unk0A; //lz
|
||||
} unk800DC918_08; //bounding box
|
||||
|
||||
typedef struct{
|
||||
unk800DC918_00 *unk00;
|
||||
@@ -104,12 +101,129 @@ typedef struct{
|
||||
|
||||
extern unk800DC918* D_800DC918;
|
||||
|
||||
typedef struct{
|
||||
s16 unk00;
|
||||
s16 unk02;
|
||||
s16 unk04;
|
||||
}unk8011B0B0;
|
||||
|
||||
unk8011B0B0 *D_8011B0B0;
|
||||
|
||||
typedef struct{
|
||||
s32 unk00;
|
||||
s32 unk04;
|
||||
s32 unk08;
|
||||
}unk8011D468;
|
||||
|
||||
unk8011D468 D_8011D468;
|
||||
extern void func_8006F64C(void*, f32, f32, f32, f32*, f32*, f32*);
|
||||
|
||||
|
||||
|
||||
s32 func_800249E0(s32 arg0) {
|
||||
D_8011D37C = arg0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if 1
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_800249F0.s")
|
||||
#else
|
||||
extern u32 D_800DC874;
|
||||
extern u32 D_800DC87C;
|
||||
extern u32 D_8011B0C8;
|
||||
extern u8 D_8011B0E1;
|
||||
extern u8 D_8011B0E2;
|
||||
extern u8 D_8011B0E3;
|
||||
extern u32 D_8011B0F8;
|
||||
extern u32 D_8011B100;
|
||||
extern u32 D_8011B104;
|
||||
extern u32 D_8011B108;
|
||||
extern u32 D_8011B10C;
|
||||
extern u32 D_8011B110;
|
||||
extern u32 D_8011B114;
|
||||
extern u32 D_8011D320[4];
|
||||
extern u32 D_8011D338[4];
|
||||
extern u32 D_8011D348;
|
||||
extern u32 D_8011D350[4];
|
||||
|
||||
extern u32 D_8011D384;
|
||||
|
||||
|
||||
void func_800249F0(u32 arg0, u32 arg1, s32 arg2, u32 arg3, u32 arg4, u32 arg5, u32 arg6){
|
||||
s32 i;
|
||||
s32 tmp_a2;
|
||||
|
||||
D_800DC91C = func_8006BDB0();
|
||||
D_8011B0F8 = 0;
|
||||
D_8011B100 = 0;
|
||||
D_8011B104 = 0;
|
||||
D_8011B108 = 0;
|
||||
D_8011B10C = 0;
|
||||
if(D_800DC91C->race_type == 6 || D_800DC91C->race_type == 7){
|
||||
D_8011B0F8 = 1;
|
||||
}
|
||||
func_8002C0C4(arg0);
|
||||
|
||||
if(arg2 < 2){
|
||||
D_8011D384 = 0;
|
||||
for(i = 0; i < D_800DC918->count; i++){
|
||||
if(D_800DC918->unk04[i].unk2B != 0){
|
||||
D_8011D384++;
|
||||
D_800DC918->unk04[i].unk2B = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(is_in_two_player_adventure() && (D_800DC91C->race_type == 0 || D_800DC91C->race_type & 0x40)){
|
||||
tmp_a2 = 2;
|
||||
}else{
|
||||
tmp_a2 = arg2;
|
||||
tmp_a2++;
|
||||
}
|
||||
if(D_8011D384){
|
||||
func_800B82B4(D_800DC918, D_800DC91C, tmp_a2);
|
||||
}
|
||||
func_8006652C(arg2);
|
||||
func_80027FC4(arg1);
|
||||
D_8011B110 = 0;
|
||||
D_8011B114 = 0x10000;
|
||||
func_80011390();
|
||||
func_8000C8F8(arg6,0);
|
||||
func_8000C8F8(arg5,1);
|
||||
D_8011D37C = arg2;
|
||||
func_8000CC7C(arg3, arg4, arg2);
|
||||
func_8000B020(72, 64);
|
||||
if(arg0 == 0 && arg4 == 0){
|
||||
func_800C01D8(&D_800DC87C);
|
||||
}
|
||||
else{
|
||||
func_800C01D8(&D_800DC874);
|
||||
}
|
||||
func_8006652C(D_8011D37C);
|
||||
D_8011B0FC = 0;
|
||||
i = 0;
|
||||
do{
|
||||
D_8011D350[i] = func_80070C9C(3200, 0xFFFF00FF);
|
||||
D_8011D320[i] = func_80070C9C(12800, 0xFFFF00FF);
|
||||
D_8011D338[i] = func_80070C9C(20000, 0xFFFF00FF);
|
||||
}while(&D_8011D338[++i] != &D_8011D348);
|
||||
|
||||
D_8011B0C8 = 0;
|
||||
func_8002D8DC(1,1,0);
|
||||
func_8002D8DC(2,2,0);
|
||||
D_8011B0C8 = 1;
|
||||
func_8002D8DC(1,1,0);
|
||||
func_8002D8DC(2,2,0);
|
||||
D_8011B0C8 = 0;
|
||||
if(D_800DC91C->unkB7){
|
||||
D_8011B0E1 = D_800DC91C->unkB4;
|
||||
D_8011B0E2 = D_800DC91C->unkB5;
|
||||
D_8011B0E3 = D_800DC91C->unkB6;
|
||||
func_80025510(arg2 + 1);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/D_80024D54.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80025510.s")
|
||||
|
||||
@@ -157,7 +271,23 @@ void func_80028044(s32 arg0) {
|
||||
}
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80028050.s")
|
||||
|
||||
#if 1
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_800289B8.s")
|
||||
#else
|
||||
void func_800289B8(void){
|
||||
u8 sp_2f = D_800DC91C->unkC1;
|
||||
u8 sp_2e = D_800DC91C->unkC2;
|
||||
u8 sp_2d = D_800DC91C->unkC3;
|
||||
u8 sp_2c = D_800DC91C->unkBE;
|
||||
u8 sp_2b = D_800DC91C->unkBF;
|
||||
u8 sp_2a = D_800DC91C->unkC0;
|
||||
u32 sp_24 = D_8011B0A8;
|
||||
func_8007B3D0(&D_8011B0A0);
|
||||
func_8007B4C8(&D_8011B0A0, 0, 8);
|
||||
D_8011B0A0 += 8;
|
||||
}
|
||||
#endif
|
||||
|
||||
void func_80028C10(void){
|
||||
unk80120AC0 * v0_some_struct;
|
||||
@@ -191,7 +321,15 @@ GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80028FAC.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80029658.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80029AF8.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80029D14.s")
|
||||
|
||||
#if 1
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80029F18.s")
|
||||
#else
|
||||
func_80029F18(){
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
s32 func_8002A05C(s32 arg0, s32 arg1, s32* arg2){
|
||||
s32 i;
|
||||
@@ -218,7 +356,7 @@ s32 func_8002A134(s32* arg0, unk800DC918_08 arg1){
|
||||
unk800DC918_08 * a0;
|
||||
s32 cnt = 0;
|
||||
unk800DC918_08 bnd;
|
||||
|
||||
|
||||
//BAD variable assignments;
|
||||
bnd.unk00 = arg1.unk00 - 4;
|
||||
bnd.unk02 = arg1.unk02 - 4;
|
||||
@@ -309,4 +447,39 @@ GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80030838.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8003093C.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80030A74.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80030DE0.s")
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80031018.s")
|
||||
|
||||
|
||||
void func_80031018(void){
|
||||
struct {
|
||||
u8 pad00[0x40];
|
||||
} sp_50; //same as unk80535C4_3
|
||||
|
||||
struct {
|
||||
s16 unk00; //sp_38
|
||||
s16 unk02; //sp_3A
|
||||
s16 unk04; //sp_3C
|
||||
u8 pad06[0x02];
|
||||
f32 unk08; //sp40;
|
||||
f32 unk0C; //sp44;
|
||||
f32 unk10; //sp48;
|
||||
f32 unk14; //sp4C;
|
||||
} sp_38;
|
||||
|
||||
f32 sp_34 = 0.0f;
|
||||
f32 sp_30 = 0.0f;
|
||||
f32 sp_2C = -65536.0f;
|
||||
|
||||
sp_38.unk04 = D_8011B0B0->unk04;
|
||||
sp_38.unk02 = D_8011B0B0->unk02;
|
||||
sp_38.unk00 = D_8011B0B0->unk00;
|
||||
sp_38.unk0C = 0.0f;
|
||||
sp_38.unk10 = 0.0f;
|
||||
sp_38.unk14 = 0.0f;
|
||||
sp_38.unk08 = 1.0f;
|
||||
|
||||
func_8006FC30(&sp_50, &sp_38);
|
||||
func_8006F64C(&sp_50, sp_34, sp_30, sp_2C, &sp_34, &sp_30, &sp_2C);
|
||||
D_8011D468.unk00 = sp_34;
|
||||
D_8011D468.unk04 = sp_30;
|
||||
D_8011D468.unk08 = sp_2C;
|
||||
}
|
||||
@@ -131,6 +131,7 @@ D_800DC768 = 0x800DC768;
|
||||
D_800DC848 = 0x800DC848;
|
||||
D_800DC858 = 0x800DC858;
|
||||
D_800DC860 = 0x800DC860;
|
||||
D_800DC874 = 0x800DC874;
|
||||
D_800DC87C = 0x800DC87C;
|
||||
D_800DC884 = 0x800DC884;
|
||||
D_800DC8AC = 0x800DC8AC;
|
||||
|
||||
Reference in New Issue
Block a user