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:
Fazana
2023-04-25 10:49:29 +01:00
committed by GitHub
parent 3c97d5ea99
commit d54031c3a6
25 changed files with 447 additions and 409 deletions
+27 -27
View File
@@ -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:
&emsp;&emsp;&emsp;&emsp;Decomp progress: 51.01%
&emsp;&emsp;&emsp;&emsp;Decomp progress: 51.18%
&emsp;&emsp;&emsp;&emsp;Documentation progress: 23.43%
&emsp;&emsp;&emsp;&emsp;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 -->
+1 -1
View File
@@ -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)
+3 -3
View File
@@ -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
+4 -4
View File
@@ -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
+2 -2
View File
@@ -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
+3 -3
View File
@@ -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
+12 -12
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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);
-1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff
+6
View File
@@ -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
View File
@@ -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