mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
Document fog system, and label some object behaviour (#386)
* identify transition bug * Document fog system * Label fogchanger attributes * and more * anti aliasing * name some object vars * block the racer inputs * Update unknown_0255E0.c * Update README.md * Update src/object_functions.c
This commit is contained in:
@@ -5,11 +5,11 @@ This repo contains a work-in-progress decompilation of Diddy Kong Racing for the
|
||||
Currently, only the US 1.0 version of the game is supported. US 1.1, EU 1.0, EU 1.1, and JP are not supported at this time.
|
||||
|
||||
<!-- README_SCORE_SUMMARY_BEGIN -->
|
||||
As of April 11, 2023, this is our current score:
|
||||
As of April 24, 2023, this is our current score:
|
||||
|
||||
    Decomp progress: 51.01%
|
||||
    Decomp progress: 51.18%
|
||||
|
||||
    Documentation progress: 23.43%
|
||||
    Documentation progress: 24.34%
|
||||
<!-- README_SCORE_SUMMARY_END -->
|
||||
|
||||
---
|
||||
@@ -128,31 +128,31 @@ s32 is_drumstick_unlocked(void) {
|
||||
```
|
||||
|
||||
<!-- README_SCORE_BEGIN -->
|
||||
As of April 11, 2023, this is our current score:
|
||||
As of April 24, 2023, this is our current score:
|
||||
```
|
||||
===================================================================
|
||||
ADVENTURE ONE (ASM -> C Decompilation)
|
||||
------------------------- 51.01% Complete -------------------------
|
||||
# Decompiled functions: 1498
|
||||
# GLOBAL_ASM remaining: 334
|
||||
# NON_MATCHING functions: 12
|
||||
# NON_EQUIVALENT WIP functions: 64
|
||||
--------------------------- Game Status ---------------------------
|
||||
Balloons: 25/47, Keys: 3/4, Trophies: 2/5
|
||||
T.T. Amulets: 2/4, Wizpig Amulets: 2/4
|
||||
-------------------------------------------------------------------
|
||||
We are racing in Treasure Caves. (Lap 3/3)
|
||||
===================================================================
|
||||
ADVENTURE TWO (Cleanup & Documentation)
|
||||
------------------------- 23.43% Complete -------------------------
|
||||
# Documented functions: 449
|
||||
# Undocumented remaining: 1118
|
||||
--------------------------- Game Status ---------------------------
|
||||
Balloons: 12/47, Keys: 1/4, Trophies: 0/5
|
||||
T.T. Amulets: 1/4, Wizpig Amulets: 1/4
|
||||
-------------------------------------------------------------------
|
||||
We are participating in the Trophy Race of Dino Domain. (Round Two)
|
||||
===================================================================
|
||||
=================================================
|
||||
ADVENTURE ONE (ASM -> C Decompilation)
|
||||
---------------- 51.18% Complete ----------------
|
||||
# Decompiled functions: 1501
|
||||
# GLOBAL_ASM remaining: 331
|
||||
# NON_MATCHING functions: 12
|
||||
# NON_EQUIVALENT WIP functions: 64
|
||||
------------------ Game Status ------------------
|
||||
Balloons: 25/47, Keys: 3/4, Trophies: 2/5
|
||||
T.T. Amulets: 2/4, Wizpig Amulets: 2/4
|
||||
-------------------------------------------------
|
||||
We are racing in Treasure Caves. (Lap 3/3)
|
||||
=================================================
|
||||
ADVENTURE TWO (Cleanup & Documentation)
|
||||
---------------- 24.34% Complete ----------------
|
||||
# Documented functions: 485
|
||||
# Undocumented remaining: 1079
|
||||
------------------ Game Status ------------------
|
||||
Balloons: 12/47, Keys: 1/4, Trophies: 1/5
|
||||
T.T. Amulets: 1/4, Wizpig Amulets: 1/4
|
||||
-------------------------------------------------
|
||||
We are racing Taj in the Car Challenge. (Lap 1/3)
|
||||
=================================================
|
||||
```
|
||||
<!-- README_SCORE_END -->
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ glabel func_8000CC7C
|
||||
/* 00D954 8000CD54 00000000 */ nop
|
||||
/* 00D958 8000CD58 17000008 */ bnez $t8, .L8000CD7C
|
||||
/* 00D95C 8000CD5C 00000000 */ nop
|
||||
/* 00D960 8000CD60 0C01A75F */ jal func_80069D7C
|
||||
/* 00D960 8000CD60 0C01A75F */ jal get_cutscene_camera_segment
|
||||
/* 00D964 8000CD64 00000000 */ nop
|
||||
/* 00D968 8000CD68 AFA20074 */ sw $v0, 0x74($sp)
|
||||
/* 00D96C 8000CD6C 9059003B */ lbu $t9, 0x3b($v0)
|
||||
|
||||
@@ -283,7 +283,7 @@ glabel func_8001A8F4
|
||||
/* 01B914 8001AD14 240B0004 */ li $t3, 4
|
||||
/* 01B918 8001AD18 3C018012 */ lui $at, %hi(D_8011AD50) # $at, 0x8012
|
||||
/* 01B91C 8001AD1C A02BAD50 */ sb $t3, %lo(D_8011AD50)($at)
|
||||
/* 01B920 8001AD20 0C00A3E8 */ jal func_80028FA0
|
||||
/* 01B920 8001AD20 0C00A3E8 */ jal set_anti_aliasing
|
||||
/* 01B924 8001AD24 24040001 */ li $a0, 1
|
||||
/* 01B928 8001AD28 3C028012 */ lui $v0, %hi(D_8011AD50) # $v0, 0x8012
|
||||
/* 01B92C 8001AD2C 8042AD50 */ lb $v0, %lo(D_8011AD50)($v0)
|
||||
@@ -292,9 +292,9 @@ glabel func_8001A8F4
|
||||
/* 01B934 8001AD34 24010004 */ li $at, 4
|
||||
/* 01B938 8001AD38 1441003E */ bne $v0, $at, .L8001AE34
|
||||
/* 01B93C 8001AD3C 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 01B940 8001AD40 0C00A3E8 */ jal func_80028FA0
|
||||
/* 01B940 8001AD40 0C00A3E8 */ jal set_anti_aliasing
|
||||
/* 01B944 8001AD44 24040001 */ li $a0, 1
|
||||
/* 01B948 8001AD48 0C0168EC */ jal func_8005A3B0
|
||||
/* 01B948 8001AD48 0C0168EC */ jal disable_racer_input
|
||||
/* 01B94C 8001AD4C 00000000 */ nop
|
||||
/* 01B950 8001AD50 0C01AF66 */ jal get_current_level_race_type
|
||||
/* 01B954 8001AD54 00000000 */ nop
|
||||
|
||||
@@ -1612,7 +1612,7 @@ glabel func_80046524
|
||||
/* 0487E8 80047BE8 46104282 */ mul.s $f10, $f8, $f16
|
||||
/* 0487EC 80047BEC C6280020 */ lwc1 $f8, 0x20($s1)
|
||||
/* 0487F0 80047BF0 3C014000 */ li $at, 0x40000000 # 2.000000
|
||||
/* 0487F4 80047BF4 3C0A8012 */ lui $t2, %hi(D_8011D584) # $t2, 0x8012
|
||||
/* 0487F4 80047BF4 3C0A8012 */ lui $t2, %hi(gRacerInputBlocked) # $t2, 0x8012
|
||||
/* 0487F8 80047BF8 460A3101 */ sub.s $f4, $f6, $f10
|
||||
/* 0487FC 80047BFC 3C0B8012 */ lui $t3, %hi(gCurrentRacerInput) # $t3, 0x8012
|
||||
/* 048800 80047C00 E624001C */ swc1 $f4, 0x1c($s1)
|
||||
@@ -1675,7 +1675,7 @@ glabel func_80046524
|
||||
/* 0488E4 80047CE4 00000000 */ nop
|
||||
/* 0488E8 80047CE8 13200031 */ beqz $t9, .L80047DB0
|
||||
/* 0488EC 80047CEC 00000000 */ nop
|
||||
/* 0488F0 80047CF0 814AD584 */ lb $t2, %lo(D_8011D584)($t2)
|
||||
/* 0488F0 80047CF0 814AD584 */ lb $t2, %lo(gRacerInputBlocked)($t2)
|
||||
/* 0488F4 80047CF4 3C0C8012 */ lui $t4, %hi(gRaceStartTimer) # $t4, 0x8012
|
||||
/* 0488F8 80047CF8 1540002D */ bnez $t2, .L80047DB0
|
||||
/* 0488FC 80047CFC 00000000 */ nop
|
||||
@@ -1834,13 +1834,13 @@ glabel func_80046524
|
||||
/* 048B44 80047F44 C630001C */ lwc1 $f16, 0x1c($s1)
|
||||
/* 048B48 80047F48 C62C0024 */ lwc1 $f12, 0x24($s1)
|
||||
/* 048B4C 80047F4C 13000005 */ beqz $t8, .L80047F64
|
||||
/* 048B50 80047F50 3C0D8012 */ lui $t5, %hi(D_8011D584) # $t5, 0x8012
|
||||
/* 048B50 80047F50 3C0D8012 */ lui $t5, %hi(gRacerInputBlocked) # $t5, 0x8012
|
||||
/* 048B54 80047F54 C60A011C */ lwc1 $f10, 0x11c($s0)
|
||||
/* 048B58 80047F58 C6040120 */ lwc1 $f4, 0x120($s0)
|
||||
/* 048B5C 80047F5C 460A8400 */ add.s $f16, $f16, $f10
|
||||
/* 048B60 80047F60 46046300 */ add.s $f12, $f12, $f4
|
||||
.L80047F64:
|
||||
/* 048B64 80047F64 81ADD584 */ lb $t5, %lo(D_8011D584)($t5)
|
||||
/* 048B64 80047F64 81ADD584 */ lb $t5, %lo(gRacerInputBlocked)($t5)
|
||||
/* 048B68 80047F68 C7A8012C */ lwc1 $f8, 0x12c($sp)
|
||||
/* 048B6C 80047F6C 11A0002E */ beqz $t5, .L80048028
|
||||
/* 048B70 80047F70 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
||||
|
||||
@@ -2363,7 +2363,7 @@ glabel func_80049794
|
||||
/* 04C540 8004B940 C634001C */ lwc1 $f20, 0x1c($s1)
|
||||
/* 04C544 8004B944 C62C0024 */ lwc1 $f12, 0x24($s1)
|
||||
/* 04C548 8004B948 11C00010 */ beqz $t6, .L8004B98C
|
||||
/* 04C54C 8004B94C 3C188012 */ lui $t8, %hi(D_8011D584) # $t8, 0x8012
|
||||
/* 04C54C 8004B94C 3C188012 */ lui $t8, %hi(gRacerInputBlocked) # $t8, 0x8012
|
||||
/* 04C550 8004B950 C604011C */ lwc1 $f4, 0x11c($s0)
|
||||
/* 04C554 8004B954 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
||||
/* 04C558 8004B958 44811800 */ mtc1 $at, $f3
|
||||
@@ -2380,7 +2380,7 @@ glabel func_80049794
|
||||
/* 04C584 8004B984 46282180 */ add.d $f6, $f4, $f8
|
||||
/* 04C588 8004B988 46203320 */ cvt.s.d $f12, $f6
|
||||
.L8004B98C:
|
||||
/* 04C58C 8004B98C 8318D584 */ lb $t8, %lo(D_8011D584)($t8)
|
||||
/* 04C58C 8004B98C 8318D584 */ lb $t8, %lo(gRacerInputBlocked)($t8)
|
||||
/* 04C590 8004B990 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
||||
/* 04C594 8004B994 44811800 */ mtc1 $at, $f3
|
||||
/* 04C598 8004B998 44801000 */ mtc1 $zero, $f2
|
||||
|
||||
@@ -599,7 +599,7 @@ glabel func_8004F7F4
|
||||
/* 050C50 80050050 17000072 */ bnez $t8, .L8005021C
|
||||
/* 050C54 80050054 02202025 */ move $a0, $s1
|
||||
/* 050C58 80050058 C630001C */ lwc1 $f16, 0x1c($s1)
|
||||
/* 050C5C 8005005C 3C088012 */ lui $t0, %hi(D_8011D584) # $t0, 0x8012
|
||||
/* 050C5C 8005005C 3C088012 */ lui $t0, %hi(gRacerInputBlocked) # $t0, 0x8012
|
||||
/* 050C60 80050060 E7B000B8 */ swc1 $f16, 0xb8($sp)
|
||||
/* 050C64 80050064 C6320024 */ lwc1 $f18, 0x24($s1)
|
||||
/* 050C68 80050068 C7A800B8 */ lwc1 $f8, 0xb8($sp)
|
||||
@@ -617,7 +617,7 @@ glabel func_8004F7F4
|
||||
/* 050C98 80050098 46103480 */ add.s $f18, $f6, $f16
|
||||
/* 050C9C 8005009C E7B200B4 */ swc1 $f18, 0xb4($sp)
|
||||
.L800500A0:
|
||||
/* 050CA0 800500A0 8108D584 */ lb $t0, %lo(D_8011D584)($t0)
|
||||
/* 050CA0 800500A0 8108D584 */ lb $t0, %lo(gRacerInputBlocked)($t0)
|
||||
/* 050CA4 800500A4 C7A800B8 */ lwc1 $f8, 0xb8($sp)
|
||||
/* 050CA8 800500A8 1100003C */ beqz $t0, .L8005019C
|
||||
/* 050CAC 800500AC 00000000 */ nop
|
||||
@@ -1057,7 +1057,7 @@ glabel func_8004F7F4
|
||||
/* 051314 80050714 24010025 */ li $at, 37
|
||||
/* 051318 80050718 11A10004 */ beq $t5, $at, .L8005072C
|
||||
/* 05131C 8005071C 83AC0053 */ lb $t4, 0x53($sp)
|
||||
/* 051320 80050720 0C00A3E8 */ jal func_80028FA0
|
||||
/* 051320 80050720 0C00A3E8 */ jal set_anti_aliasing
|
||||
/* 051324 80050724 24040001 */ li $a0, 1
|
||||
/* 051328 80050728 83AC0053 */ lb $t4, 0x53($sp)
|
||||
.L8005072C:
|
||||
|
||||
@@ -30,7 +30,7 @@ glabel func_80008438
|
||||
/* 009094 80008494 AFA0024C */ sw $zero, 0x24c($sp)
|
||||
/* 009098 80008498 0C01994B */ jal set_active_viewports_and_max
|
||||
/* 00909C 8000849C 00402025 */ move $a0, $v0
|
||||
/* 0090A0 800084A0 0C01A75F */ jal func_80069D7C
|
||||
/* 0090A0 800084A0 0C01A75F */ jal get_cutscene_camera_segment
|
||||
/* 0090A4 800084A4 AFA200B0 */ sw $v0, 0xb0($sp)
|
||||
/* 0090A8 800084A8 3C15800E */ lui $s5, %hi(D_800DC6E0) # $s5, 0x800e
|
||||
/* 0090AC 800084AC 26B5C6E0 */ addiu $s5, %lo(D_800DC6E0) # addiu $s5, $s5, -0x3920
|
||||
|
||||
@@ -152,12 +152,12 @@ glabel func_800249F0
|
||||
/* 025818 80024C18 0C01994B */ jal set_active_viewports_and_max
|
||||
/* 02581C 80024C1C 00000000 */ nop
|
||||
/* 025820 80024C20 8E690000 */ lw $t1, ($s3)
|
||||
/* 025824 80024C24 3C018012 */ lui $at, %hi(D_8011B0FC) # $at, 0x8012
|
||||
/* 025824 80024C24 3C018012 */ lui $at, %hi(gAntiAliasing) # $at, 0x8012
|
||||
/* 025828 80024C28 3C13FFFF */ lui $s3, (0xFFFF00FF >> 16) # lui $s3, 0xffff
|
||||
/* 02582C 80024C2C 3C118012 */ lui $s1, %hi(D_8011D350) # $s1, 0x8012
|
||||
/* 025830 80024C30 3C128012 */ lui $s2, %hi(D_8011D320) # $s2, 0x8012
|
||||
/* 025834 80024C34 3C108012 */ lui $s0, %hi(D_8011D338) # $s0, 0x8012
|
||||
/* 025838 80024C38 AC20B0FC */ sw $zero, %lo(D_8011B0FC)($at)
|
||||
/* 025838 80024C38 AC20B0FC */ sw $zero, %lo(gAntiAliasing)($at)
|
||||
/* 02583C 80024C3C 2610D338 */ addiu $s0, %lo(D_8011D338) # addiu $s0, $s0, -0x2cc8
|
||||
/* 025840 80024C40 2652D320 */ addiu $s2, %lo(D_8011D320) # addiu $s2, $s2, -0x2ce0
|
||||
/* 025844 80024C44 2631D350 */ addiu $s1, %lo(D_8011D350) # addiu $s1, $s1, -0x2cb0
|
||||
|
||||
@@ -34,8 +34,8 @@ glabel func_80030664
|
||||
.L800306DC:
|
||||
/* 0312DC 800306DC 93A30013 */ lbu $v1, 0x13($sp)
|
||||
/* 0312E0 800306E0 93A80017 */ lbu $t0, 0x17($sp)
|
||||
/* 0312E4 800306E4 3C0E8012 */ lui $t6, %hi(D_8011D388) # $t6, 0x8012
|
||||
/* 0312E8 800306E8 25CED388 */ addiu $t6, %lo(D_8011D388) # addiu $t6, $t6, -0x2c78
|
||||
/* 0312E4 800306E4 3C0E8012 */ lui $t6, %hi(gFogData) # $t6, 0x8012
|
||||
/* 0312E8 800306E8 25CED388 */ addiu $t6, %lo(gFogData) # addiu $t6, $t6, -0x2c78
|
||||
/* 0312EC 800306EC 000D68C0 */ sll $t5, $t5, 3
|
||||
/* 0312F0 800306F0 01AE1021 */ addu $v0, $t5, $t6
|
||||
/* 0312F4 800306F4 00077C00 */ sll $t7, $a3, 0x10
|
||||
|
||||
@@ -23,8 +23,8 @@ glabel func_80030DE0
|
||||
/* 031A2C 80030E2C 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 031A30 80030E30 00408825 */ move $s1, $v0
|
||||
.L80030E34:
|
||||
/* 031A34 80030E34 3C0F8012 */ lui $t7, %hi(D_8011D388) # $t7, 0x8012
|
||||
/* 031A38 80030E38 25EFD388 */ addiu $t7, %lo(D_8011D388) # addiu $t7, $t7, -0x2c78
|
||||
/* 031A34 80030E34 3C0F8012 */ lui $t7, %hi(gFogData) # $t7, 0x8012
|
||||
/* 031A38 80030E38 25EFD388 */ addiu $t7, %lo(gFogData) # addiu $t7, $t7, -0x2c78
|
||||
/* 031A3C 80030E3C 01CF1021 */ addu $v0, $t6, $t7
|
||||
/* 031A40 80030E40 8C590000 */ lw $t9, ($v0)
|
||||
/* 031A44 80030E44 0005C400 */ sll $t8, $a1, 0x10
|
||||
|
||||
@@ -57,7 +57,7 @@ typedef struct LevelObjectEntry_Exit {
|
||||
/* 0x0A */ s8 overworldSpawnIndex;
|
||||
|
||||
/* 0x0B */ u8 padB[5];
|
||||
/* 0x10 */ u8 unk10;
|
||||
/* 0x10 */ u8 radius; // Activation radius.
|
||||
/* 0x11 */ u8 unk11;
|
||||
/* 0x12 */ u8 pad12[5];
|
||||
|
||||
@@ -119,9 +119,9 @@ typedef struct LevelObjectEntry_Dino_Whale {
|
||||
|
||||
typedef struct LevelObjectEntry_Checkpoint {
|
||||
/* 0x00 */ LevelObjectEntryCommon common;
|
||||
/* 0x08 */ u8 unk8;
|
||||
/* 0x08 */ u8 scale;
|
||||
/* 0x09 */ u8 unk9;
|
||||
/* 0x0A */ u8 unkA;
|
||||
/* 0x0A */ u8 yRotation;
|
||||
/* 0x0B */ s8 unkB;
|
||||
/* 0x0C */ s8 unkC;
|
||||
/* 0x0D */ s8 unkD;
|
||||
@@ -156,13 +156,13 @@ typedef struct LevelObjectEntry_Door {
|
||||
|
||||
typedef struct LevelObjectEntry_FogChanger {
|
||||
/* 0x00 */ LevelObjectEntryCommon common;
|
||||
/* 0x08 */ u8 unk8;
|
||||
/* 0x09 */ u8 unk9;
|
||||
/* 0x0A */ u8 unkA;
|
||||
/* 0x0B */ u8 unkB;
|
||||
/* 0x0C */ s16 unkC;
|
||||
/* 0x0E */ s16 unkE;
|
||||
/* 0x10 */ s16 unk10;
|
||||
/* 0x08 */ u8 distance;
|
||||
/* 0x09 */ u8 r;
|
||||
/* 0x0A */ u8 g;
|
||||
/* 0x0B */ u8 b;
|
||||
/* 0x0C */ s16 near;
|
||||
/* 0x0E */ s16 far;
|
||||
/* 0x10 */ s16 switchTimer;
|
||||
} LevelObjectEntry_FogChanger;
|
||||
|
||||
typedef struct LevelObjectEntry_AiNode {
|
||||
@@ -474,9 +474,9 @@ typedef struct LevelObjectEntry_FlyCoin {
|
||||
|
||||
typedef struct LevelObjectEntry_GoldenBalloon {
|
||||
/* 0x00 */ LevelObjectEntryCommon common;
|
||||
/* 0x08 */ s8 unk8;
|
||||
/* 0x08 */ s8 balloonID;
|
||||
/* 0x09 */ u8 scale;
|
||||
/* 0x0A */ s8 unkA;
|
||||
/* 0x0A */ s8 challengeID;
|
||||
} LevelObjectEntry_GoldenBalloon;
|
||||
|
||||
typedef struct LevelObjectEntry_Laserbolt {
|
||||
|
||||
+14
-26
@@ -1017,12 +1017,12 @@ typedef struct Object_Wizpig2 {
|
||||
} Object_Wizpig2;
|
||||
|
||||
typedef struct Object_Exit {
|
||||
/* 0x00 */ f32 unk0;
|
||||
/* 0x04 */ f32 unk4;
|
||||
/* 0x08 */ f32 unk8;
|
||||
/* 0x0C */ f32 unkC;
|
||||
/* 0x10 */ s32 unk10;
|
||||
/* 0x14 */ s8 unk14;
|
||||
/* 0x00 */ f32 directionX;
|
||||
/* 0x04 */ f32 directionY;
|
||||
/* 0x08 */ f32 directionZ;
|
||||
/* 0x0C */ f32 rotationDiff; // Rotational offset, to test intersection when the exit is rotated.
|
||||
/* 0x10 */ s32 radius; // Activation radius.
|
||||
/* 0x14 */ s8 bossFlag; // Dictates boss level version. 0 is first encounter, 1 is rematch. -1 means no boss.
|
||||
} Object_Exit;
|
||||
|
||||
/* Size: 0x224 - 548 bytes */
|
||||
@@ -1088,7 +1088,7 @@ typedef struct Object_Racer {
|
||||
/* 0x0E4 */ Vec3f unkE4;
|
||||
/* 0x0F0 */ Vec3f unkF0;
|
||||
/* 0x0FC */ Vec3f unkFC;
|
||||
/* 0x108 */ struct Object *unk108;
|
||||
/* 0x108 */ struct Object *exitObj;
|
||||
/* 0x10C */ s32 unk10C;
|
||||
/* 0x110 */ s32 unk110;
|
||||
/* 0x114 */ s32 unk114;
|
||||
@@ -1260,17 +1260,6 @@ typedef struct Object_ModeChange {
|
||||
/* 0x14 */ u8 vehicleID;
|
||||
} Object_ModeChange;
|
||||
|
||||
typedef struct Object_GoldenBalloon {
|
||||
/* 0x00 */ f32 unk0;
|
||||
/* 0x04 */ u8 pad4[0x8];
|
||||
/* 0x0C */ u8 unkC;
|
||||
/* 0x0D */ u8 unkD;
|
||||
/* 0x0E */ u8 unkE;
|
||||
/* 0x0F */ u8 unkF;
|
||||
/* 0x10 */ s8 unk10;
|
||||
/* 0x14 */ f32 unk14;
|
||||
} Object_GoldenBalloon;
|
||||
|
||||
typedef struct Object_Door {
|
||||
/* 0x00 */ f32 unk0;
|
||||
/* 0x04 */ u8 pad4[0x4];
|
||||
@@ -1353,22 +1342,22 @@ typedef struct Object_FogChanger {
|
||||
|
||||
typedef struct Object_NPC {
|
||||
/* 0x00 */ f32 unk0;
|
||||
/* 0x04 */ f32 unk4;
|
||||
/* 0x04 */ f32 animFrameF;
|
||||
/* 0x08 */ s32 unk8;
|
||||
/* 0x0C */ s8 unkC;
|
||||
/* 0x0D */ u8 unkD;
|
||||
/* 0x0E */ u8 unkE;
|
||||
/* 0x0F */ u8 unkF;
|
||||
/* 0x10 */ u8 unk10;
|
||||
/* 0x11 */ u8 unk11;
|
||||
/* 0x12 */ u8 unk12;
|
||||
/* 0x13 */ u8 unk13;
|
||||
/* 0x14 */ f32 unk14;
|
||||
/* 0x11 */ u8 fogR;
|
||||
/* 0x12 */ u8 fogG;
|
||||
/* 0x13 */ u8 fogB;
|
||||
/* 0x14 */ f32 forwardVel;
|
||||
/* 0x18 */ f32 unk18;
|
||||
/* 0x1C */ s16 unk1C;
|
||||
/* 0x1E */ s16 unk1E;
|
||||
/* 0x20 */ s16 unk20;
|
||||
/* 0x22 */ s16 unk22;
|
||||
/* 0x20 */ s16 fogNear;
|
||||
/* 0x22 */ s16 fogFar;
|
||||
/* 0x24 */ s32 unk24;
|
||||
/* 0x28 */ s16 unk28;
|
||||
/* 0x2A */ s16 unk2A;
|
||||
@@ -1474,7 +1463,6 @@ typedef struct Object_64 {
|
||||
Object_Racer racer;
|
||||
Object_Bonus bonus;
|
||||
Object_ModeChange mode_change;
|
||||
Object_GoldenBalloon golden_balloon;
|
||||
Object_Door door;
|
||||
Object_Trigger trigger;
|
||||
Object_Audio audio;
|
||||
|
||||
+6
-2
@@ -1381,11 +1381,15 @@ ObjectSegment *get_active_camera_segment(void) {
|
||||
return &gActiveCameraStack[gActiveCameraID];
|
||||
}
|
||||
|
||||
ObjectSegment *func_80069D7C(void) {
|
||||
/**
|
||||
* Returns the segment data of the active cutscene camera.
|
||||
* If no cutscene is active, return player 1's camera.
|
||||
*/
|
||||
ObjectSegment *get_cutscene_camera_segment(void) {
|
||||
if (gCutsceneCameraActive) {
|
||||
return &gActiveCameraStack[4];
|
||||
}
|
||||
return &gActiveCameraStack[0];
|
||||
return &gActiveCameraStack[PLAYER_ONE];
|
||||
}
|
||||
|
||||
Matrix *func_80069DA4(void) {
|
||||
|
||||
+1
-1
@@ -113,7 +113,7 @@ void func_80068408(Gfx **dlist, MatrixS **mats);
|
||||
void func_80068508(s32 arg0);
|
||||
ObjectSegment *get_active_camera_segment_no_cutscenes(void);
|
||||
ObjectSegment *get_active_camera_segment(void);
|
||||
ObjectSegment *func_80069D7C(void);
|
||||
ObjectSegment *get_cutscene_camera_segment(void);
|
||||
Matrix *func_80069DA4(void);
|
||||
MatrixS *func_80069DB0(void);
|
||||
Matrix *func_80069DBC(void);
|
||||
|
||||
@@ -308,7 +308,6 @@ s32 handle_transitions(s32 updateRate) {
|
||||
if (sTransitionFadeTimer == 0) {
|
||||
sTransitionStatus = TRANSITION_LEVELSWAP;
|
||||
}
|
||||
//!@bug Not yet confirmed as a bug, but sTransitionFlags will not be zero when ingame, leaving stray transitions up.
|
||||
if ((sTransitionFadeTimer == 0) && (sTransitionFlags == 0)) {
|
||||
transition_end();
|
||||
} else {
|
||||
|
||||
+2
-2
@@ -663,7 +663,7 @@ void load_level(s32 levelId, s32 numberOfPlayers, s32 entranceId, Vehicle vehicl
|
||||
func_800249F0(gCurrentLevelHeader->geometry, gCurrentLevelHeader->skybox, numberOfPlayers, vehicleId, entranceId, gCurrentLevelHeader->collectables, gCurrentLevelHeader->unkBA);
|
||||
if (gCurrentLevelHeader->fogNear == 0 && gCurrentLevelHeader->fogFar == 0 && gCurrentLevelHeader->fogR == 0 && gCurrentLevelHeader->fogG == 0 && gCurrentLevelHeader->fogB == 0) {
|
||||
for (var_s0 = 0; var_s0 < 4; var_s0++) {
|
||||
func_800307BC(var_s0);
|
||||
reset_fog(var_s0);
|
||||
}
|
||||
} else {
|
||||
for (var_s0 = 0; var_s0 < 4; var_s0++) {
|
||||
@@ -1198,7 +1198,7 @@ void ingame_logic_loop(s32 updateRate) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
func_80028FA0(1);
|
||||
set_anti_aliasing(TRUE);
|
||||
}
|
||||
D_800DD398 -= updateRate;
|
||||
if (D_800DD398 < 0) {
|
||||
|
||||
+1
-1
@@ -312,7 +312,7 @@ void func_800C3440(s32 arg0) {
|
||||
}
|
||||
func_800C2F1C(arg0);
|
||||
if (D_8012A789 != 0) {
|
||||
func_8005A3B0();
|
||||
disable_racer_input();
|
||||
if (D_8012A786 != 0) {
|
||||
D_8012A785 -= arg0;
|
||||
while (D_8012A785 < 0) {
|
||||
|
||||
+148
-138
File diff suppressed because it is too large
Load Diff
@@ -12,6 +12,12 @@
|
||||
#define TIME_JIFFIES_PER_SECOND 60
|
||||
#define TIME_SECONDS(sec) sec * TIME_JIFFIES_PER_SECOND
|
||||
|
||||
enum BossRaceWarps {
|
||||
WARP_STANDARD = -1,
|
||||
WARP_BOSS_FIRST,
|
||||
WARP_BOSS_REMATCH,
|
||||
};
|
||||
|
||||
enum TajBehaviours {
|
||||
TAJ_MODE_ROAM,
|
||||
TAJ_MODE_APPROACH_PLAYER,
|
||||
|
||||
+1
-1
@@ -2693,8 +2693,8 @@ s32 func_8001C48C(Object *obj) {
|
||||
s32 func_8001C524(f32 diffX, f32 diffY, f32 diffZ, s32 someFlag) {
|
||||
UNUSED f32 pad[6];
|
||||
s32 sp64;
|
||||
f32 x;
|
||||
f32 len;
|
||||
f32 x;
|
||||
f32 z;
|
||||
f32 y;
|
||||
f32 dist;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user