summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcoco875 <59367621+coco875@users.noreply.github.com>2023-09-23 06:00:30 +0200
committerGitHub <noreply@github.com>2023-09-22 22:00:30 -0600
commit2f583fdb42aba5ae8642edec0b832fb0457171cf (patch)
treefc9632061a9c668ff1eac5d13f6666cb8192eaf5 /src
parent3a4b8c5a34529a8605b78871e0aa5f6ebc62a9c1 (diff)
cleaning camera, kart_dma, menu, math_util (#436)
* cleaning camera.h * cleaning math_utils.h and remove space * cleaning kart_dma * cleaning menu.h
Diffstat (limited to 'src')
-rw-r--r--src/camera.c38
-rw-r--r--src/camera.h19
-rw-r--r--src/code_800029B0.c7
-rw-r--r--src/code_80005FD0.c2
-rw-r--r--src/code_80005FD0.h2
-rw-r--r--src/code_80057C60.c1
-rw-r--r--src/code_80057C60.h1
-rw-r--r--src/code_8006E9C0.c1
-rw-r--r--src/code_8006E9C0.h1
-rw-r--r--src/code_80071F00.c1
-rw-r--r--src/code_80071F00.h2
-rw-r--r--src/code_80091750.h10
-rw-r--r--src/code_800AF9B0.h1
-rw-r--r--src/code_800B45E0.h7
-rw-r--r--src/ending/code_80281780.c1
-rw-r--r--src/ending/code_80281780.h3
-rw-r--r--src/kart_dma.c6
-rw-r--r--src/kart_dma.h324
-rw-r--r--src/menus.c54
-rw-r--r--src/menus.h57
-rw-r--r--src/racing/actors.h3
-rw-r--r--src/racing/math_util.c22
-rw-r--r--src/racing/math_util.h22
-rw-r--r--src/racing/race_logic.c4
-rw-r--r--src/racing/skybox_and_splitscreen.c1
-rw-r--r--src/racing/skybox_and_splitscreen.h2
-rw-r--r--src/spawn_players.c1
27 files changed, 287 insertions, 306 deletions
diff --git a/src/camera.c b/src/camera.c
index f3dd6cdf4..eba818797 100644
--- a/src/camera.c
+++ b/src/camera.c
@@ -310,16 +310,16 @@ void func_8001CCEC(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
move_f32_towards(&D_80164A38[index], 20.0f, 0.1f);
move_f32_towards(&D_80164A48[index], 1.5f, 0.1f);
D_80164A78[index] += 0.1;
- if (D_80164A78[index] >= 1)
+ if (D_80164A78[index] >= 1)
D_80164A78[index] = 1;
-
+
} else {
move_f32_towards(&D_80164A38[index], 0, 0.1f);
move_f32_towards(&D_80164A48[index], 0, 0.1f);
D_80164A78[index] -= 0.1;
- if (D_800DDB30[gActiveScreenMode] >= D_80164A78[index])
+ if (D_800DDB30[gActiveScreenMode] >= D_80164A78[index])
D_80164A78[index] = D_800DDB30[gActiveScreenMode];
-
+
}
if ((player->unk_0CA & 0x100) == 0x100) {
switch(gActiveScreenMode) {
@@ -364,7 +364,7 @@ void func_8001CCEC(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
arg2[0] += (x - camera->lookAt[0]) * D_80164A78[index];
arg2[2] += ((z - camera->lookAt[2]) * D_80164A78[index]);
-
+
if ((((player->unk_094 / 18) * 216) <= 5.0f) && ((player->unk_0BC & 2) == 2)) {
arg2[1] += ((y - camera->lookAt[1]) * 0.02);
} else {
@@ -383,7 +383,7 @@ void func_8001CCEC(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
*arg3 = camera->pos[0] + ((x - camera->pos[0]) * D_80164A78[index]);
*arg5 = camera->pos[2] + ((z - camera->pos[2]) * D_80164A78[index]);
-
+
if ((((player->unk_094 / 18) * 216) <= 5.0f) && ((player->unk_0BC & 2) == 2)) {
*arg4 = camera->pos[1] + (((y - camera->pos[1]) * 0.01));
} else {
@@ -541,19 +541,19 @@ void func_8001D944(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
move_f32_towards(&D_80164A38[index], 20.0f, 0.1f);
move_f32_towards(&D_80164A48[index], 1.5f, 0.1f);
D_80164A78[index] += 0.1;
- if (D_80164A78[index] >= 1)
+ if (D_80164A78[index] >= 1)
D_80164A78[index] = 1;
-
+
} else {
move_f32_towards(&D_80164A38[index], 0, 0.1f);
move_f32_towards(&D_80164A48[index], 0, 0.1f);
D_80164A78[index] -= 0.1;
- if (D_800DDB30[gActiveScreenMode] >= D_80164A78[index])
+ if (D_800DDB30[gActiveScreenMode] >= D_80164A78[index])
D_80164A78[index] = D_800DDB30[gActiveScreenMode];
-
+
}
if ((player->unk_0CA & 0x100) == 0x100) {
-
+
move_f32_towards(&D_80164A90[index], 15, 0.02f);
move_f32_towards(&D_80164AA0[index], 20, 0.02f);
} else {
@@ -581,7 +581,7 @@ void func_8001D944(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
arg2[0] += (x - camera->lookAt[0]) * D_80164A78[index];
arg2[2] += ((z - camera->lookAt[2]) * D_80164A78[index]);
-
+
if ((((player->unk_094 / 18) * 216) <= 5.0f) && ((player->unk_0BC & 2) == 2)) {
arg2[1] += ((y - camera->lookAt[1]) * 0.02);
} else {
@@ -600,7 +600,7 @@ void func_8001D944(Player *player, Camera *camera, Vec3f arg2, f32 *arg3, f32 *a
*arg3 = camera->pos[0] + ((x - camera->pos[0]) * D_80164A78[index]);
*arg5 = camera->pos[2] + ((z - camera->pos[2]) * D_80164A78[index]);
-
+
if ((((player->unk_094 / 18) * 216) <= 5.0f) && ((player->unk_0BC & 2) == 2)) {
*arg4 = camera->pos[1] + (((y - camera->pos[1]) * 0.01));
} else {
@@ -733,9 +733,9 @@ void func_8001E45C(Camera *camera, Player *player, s8 arg2) {
var_a3 = (player->unk_078 / 2) + 0xA5;
}
}
- if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40) ||
- ((player->unk_0BC & 0x4000) == 0x4000) || ((player->unk_0BC & 0x80000) == 0x80000) ||
- ((player->unk_0BC & 0x800000) == 0x800000) || (((player->unk_0BC & 0x20) == 0x20) && (player->unk_078 != 0)) ||
+ if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40) ||
+ ((player->unk_0BC & 0x4000) == 0x4000) || ((player->unk_0BC & 0x80000) == 0x80000) ||
+ ((player->unk_0BC & 0x800000) == 0x800000) || (((player->unk_0BC & 0x20) == 0x20) && (player->unk_078 != 0)) ||
(player->unk_110.unk3C[0] <= 0.0f) || (player->unk_110.unk3C[1] <= 0.0f) || ((player->unk_0BC & 0x20000) == 0x20000)) {
func_8001CCEC(player, camera, sp64, &sp84, &sp80, &sp7C, &sp58, (s32) camera->unk_2C, (s32) arg2);
} else {
@@ -862,9 +862,9 @@ void func_8001EA0C(Camera *camera, Player *player, s8 arg2) {
var_a3 = (player->unk_078 / 2) + 0xA5;
}
}
- if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40) ||
- ((player->unk_0BC & 0x4000) == 0x4000) || ((player->unk_0BC & 0x80000) == 0x80000) ||
- ((player->unk_0BC & 0x800000) == 0x800000) || (((player->unk_0BC & 0x20) == 0x20) && (player->unk_078 != 0)) ||
+ if (((player->unk_0BC & 0x80) == 0x80) || ((player->unk_0BC & 0x40) == 0x40) ||
+ ((player->unk_0BC & 0x4000) == 0x4000) || ((player->unk_0BC & 0x80000) == 0x80000) ||
+ ((player->unk_0BC & 0x800000) == 0x800000) || (((player->unk_0BC & 0x20) == 0x20) && (player->unk_078 != 0)) ||
(player->unk_110.unk3C[0] <= 0.0f) || (player->unk_110.unk3C[1] <= 0.0f) || ((player->unk_0BC & 0x20000) == 0x20000)) {
func_8001D944(player, camera, sp64, &sp84, &sp80, &sp7C, &sp58, (s32) camera->unk_2C, (s32) arg2);
} else {
diff --git a/src/camera.h b/src/camera.h
index 7b6e250c7..651148825 100644
--- a/src/camera.h
+++ b/src/camera.h
@@ -68,9 +68,19 @@ void func_8001E0C4(Camera*, Player*, s8);
void func_8001E45C(Camera*, Player*, s8);
void func_8001E8E8(Camera*, Player*, s8);
void func_8001EA0C(Camera*, Player*, s8);
-void func_8001F87C(s32);
void func_8001EE98(Player*, Camera*, s8);
void func_8001F394(Player*, f32*);
+void func_8001F87C(s32);
+
+extern f32 D_800DDB30[];
+
+extern Camera cameras[];
+extern Camera *camera1;
+extern Camera *camera2;
+extern Camera *camera3;
+extern Camera *camera4;
+
+// end of camera.c variables
extern s8 D_80164A89;
@@ -81,12 +91,5 @@ extern f32 D_80164A30;
extern f32 D_80164A90[];
extern f32 D_80164AA0[];
-extern f32 D_800DDB30[];
-
-extern Camera cameras[];
-extern Camera *camera1;
-extern Camera *camera2;
-extern Camera *camera3;
-extern Camera *camera4;
#endif
diff --git a/src/code_800029B0.c b/src/code_800029B0.c
index 76a10557b..cbc1e1cf4 100644
--- a/src/code_800029B0.c
+++ b/src/code_800029B0.c
@@ -21,6 +21,7 @@
#include "render_courses.h"
#include "main.h"
#include "courses/all_course_data.h"
+#include "menus.h"
extern u16 D_800DC5A8;
@@ -29,12 +30,6 @@ extern s16 D_802BA048;
extern s16 gCurrentlyLoadedCourseId;
-extern s8 D_8018EDF3;
-
-extern s8 gCupSelection;
-
-extern Vec3f D_802B91C8;
-
extern struct ActorSpawnData d_course_moo_moo_farm_tree_spawn[];
diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c
index 7d2375b65..96452781b 100644
--- a/src/code_80005FD0.c
+++ b/src/code_80005FD0.c
@@ -23,7 +23,7 @@
#include "common_textures.h"
#include "common_structs.h"
#include "main.h"
-
+#include "menus.h"
extern UnkCommonTextureStruct0 *D_800DC720[];
diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h
index 15f8453d3..d0ea147e4 100644
--- a/src/code_80005FD0.h
+++ b/src/code_80005FD0.h
@@ -152,8 +152,6 @@ void func_8001C42C(void);
/* This is where I'd put my static data, if I had any */
// 0 or 1, only 1 when when in extra (mirror) mode
extern s16 D_8016347A;
-// Might belong in menus.h?
-extern s8 D_8018EDF3;
// Suspected to be the "width" of each wayPoint. See data_0DD0A0_1.s
extern f32 D_800DCA4C[];
diff --git a/src/code_80057C60.c b/src/code_80057C60.c
index ed282f32e..f134a5885 100644
--- a/src/code_80057C60.c
+++ b/src/code_80057C60.c
@@ -23,6 +23,7 @@
#include "audio/external.h"
#include "objects.h"
#include "bomb_kart.h"
+#include "menus.h"
// WARNING: this macro is undef'd at the end of this file
diff --git a/src/code_80057C60.h b/src/code_80057C60.h
index 52371bbe4..e290df449 100644
--- a/src/code_80057C60.h
+++ b/src/code_80057C60.h
@@ -228,7 +228,6 @@ void func_8006E940(Player*, s8, s8);
extern s8 D_801657B2;
extern s8 D_801657C8;
extern s32 D_8018D22C;
-extern s8 D_8018EDF3;
extern s8 D_80165898;
extern Gfx D_0D0076F8[];
extern s8 D_801657E4;
diff --git a/src/code_8006E9C0.c b/src/code_8006E9C0.c
index db7e35990..a2de012b2 100644
--- a/src/code_8006E9C0.c
+++ b/src/code_8006E9C0.c
@@ -14,6 +14,7 @@
#include "audio/external.h"
#include "courses/all_course_data.h"
#include "main.h"
+#include "menus.h"
void func_8006E9C0(void) {
diff --git a/src/code_8006E9C0.h b/src/code_8006E9C0.h
index 1cb7365f1..e6083801c 100644
--- a/src/code_8006E9C0.h
+++ b/src/code_8006E9C0.h
@@ -34,7 +34,6 @@ extern s16 D_80165730;
extern s16 D_80165740;
extern s16 D_80165748;
extern s32 D_80183D5C;
-extern s8 D_8018EDF3;
extern u8 *D_8018D1E0;
extern intptr_t D_8018D9B0;
diff --git a/src/code_80071F00.c b/src/code_80071F00.c
index 9e8c4bf5c..308652749 100644
--- a/src/code_80071F00.c
+++ b/src/code_80071F00.c
@@ -27,6 +27,7 @@
#include "code_80091750.h"
#include "podium_ceremony_actors.h"
#include "courses/all_course_data.h"
+#include "menus.h"
// TODO: unused?
f32 D_800E43B0[] = {
diff --git a/src/code_80071F00.h b/src/code_80071F00.h
index 0bd3d2104..b835617e7 100644
--- a/src/code_80071F00.h
+++ b/src/code_80071F00.h
@@ -371,8 +371,6 @@ void func_80086D80(void);
s32 osPiStartDma(OSIoMesg *mb, s32 priority, s32 direction, uintptr_t devAddr, void *vAddr, size_t nbytes, OSMesgQueue *mq);
s32 osRecvMesg(OSMesgQueue*, OSMesg*, s32);
-extern s8 D_8018EDF3;
-
// from other_textures.s
extern u8 D_0F0D0E50[]; // gTextureGhosts
diff --git a/src/code_80091750.h b/src/code_80091750.h
index 8b24d687c..0fc935208 100644
--- a/src/code_80091750.h
+++ b/src/code_80091750.h
@@ -348,7 +348,6 @@ extern s32 D_800DDB24;
extern s16 D_80164478[];
extern u8 *D_8018D9BC;
-extern s8 D_800E86D0[];
extern s32 D_80165754;
extern intptr_t D_8018D9B0;
extern s8 D_8018D9D8;
@@ -370,15 +369,6 @@ extern s32 D_8018E850[];
extern s32 D_8018E854;
extern s32 D_8018E858[];
extern s32 D_8018E85C;
-extern s32 D_8018EDC0;
-extern f32 D_8018EDC4;
-extern f32 D_8018EDC8;
-extern f32 D_8018EDCC;
-extern f32 D_8018EDD0;
-extern f32 D_8018EDD4;
-extern f32 D_8018EDD8;
-extern f32 D_8018EDDC;
-extern s8 D_8018EE08;
extern s32 D_8018E7B8[];
extern s32 D_8018E7E0;
diff --git a/src/code_800AF9B0.h b/src/code_800AF9B0.h
index 1e801e680..e42d0fe63 100644
--- a/src/code_800AF9B0.h
+++ b/src/code_800AF9B0.h
@@ -12,6 +12,5 @@ void func_800B0004(void);
extern s16 gCurrentCourseId; // D_800DC5A0
extern s32 gIsMirrorMode; // D_800DC5F4
-extern s32 D_800E86A4;
#endif /* CODE_800AF9B0_H */
diff --git a/src/code_800B45E0.h b/src/code_800B45E0.h
index 9ec6ebe32..c920fc789 100644
--- a/src/code_800B45E0.h
+++ b/src/code_800B45E0.h
@@ -92,7 +92,6 @@ extern u32* D_800DC714;
extern u16 gCompanyCode;
extern u32 gGameCode; // osPfs gamecode
extern s8 gControllerPak1State; // Current state of Controller Pak 1
-extern struct_8018EE10_entry D_8018EE10[];
extern struct_8018EE10_entry *D_8018D9C0;
extern s8 sControllerPak2State; // Current state of the Controller Pak 2
@@ -111,12 +110,6 @@ extern s32 gControllerPak1MaxWriteableFiles;
extern s8 D_8018EDE5;
extern s8 D_8018EDE6;
extern s8 D_8018EDE7;
-extern u8 gSoundMode; // D_8018EDF2
-extern s8 gTimeTrialDataCourseIndex; // D_8018EDF7
-extern s8 gCourseRecordsMenuSelection; // D_8018EDF8
-extern s32 gMenuTimingCounter; // D_8018EE00
-extern s8 gCupSelection; // D_8018EE09
-extern s8 gCupCourseSelection; // D_8018EE0B
#endif /* CODE_800B045E0_H */
diff --git a/src/ending/code_80281780.c b/src/ending/code_80281780.c
index b569b4c73..2b3dfe219 100644
--- a/src/ending/code_80281780.c
+++ b/src/ending/code_80281780.c
@@ -17,6 +17,7 @@
#include "code_80281C40.h"
#include "code_800029B0.h"
#include "main.h"
+#include "menus.h"
u8 defaultCharacterIds[] = {
1, 2, 3, 4, 5, 6, 7, 0
diff --git a/src/ending/code_80281780.h b/src/ending/code_80281780.h
index 0d511a922..1b60d225c 100644
--- a/src/ending/code_80281780.h
+++ b/src/ending/code_80281780.h
@@ -34,11 +34,8 @@ extern s32 D_00825800;
extern s32 D_00831DC0;
extern s32 D_00835BA0;
-extern s8 gCharacterSelections[];
-
extern u8 defaultCharacterIds[];
extern s8 gGPOverallRanks[8];
-extern s8 D_8018EDF3;
extern u8 *_data_821D10SegmentRomStart;
extern u8 *_data_825800SegmentRomStart;
diff --git a/src/kart_dma.c b/src/kart_dma.c
index ed26ebc8d..f8cc54993 100644
--- a/src/kart_dma.c
+++ b/src/kart_dma.c
@@ -1684,9 +1684,9 @@ u8 *gKartPalettes[] = {
/**
* @brief Place DMA mio0 compressed character textures in a buffer.
* Later, this data becomes decompressed.
- *
+ *
* The player struct tracks the texture indices to load.
- *
+ *
* @param player
* @param arg1 Appears to be character index; 0-7.
* @param arg2 Rom buffer index appears to always be 0-3. Sometimes subtracted by 2.
@@ -1730,7 +1730,7 @@ void func_80027560(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) {
osInvalDCache(&D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId]);
osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTable0[player->characterId][player->unk_24C[arg2]][player->unk_244[arg2]])], &D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId], &gDmaMesgQueue);
}
- } else if (((temp & 0x400) == 0x400) || ((temp & 0x01000000) == 0x01000000) ||
+ } else if (((temp & 0x400) == 0x400) || ((temp & 0x01000000) == 0x01000000) ||
((temp & 0x02000000) == 0x02000000) || ((temp & 0x10000) == 0x10000))
{
osInvalDCache(&D_802DFB80[arg4][arg3][arg1], 0x780);
diff --git a/src/kart_dma.h b/src/kart_dma.h
index 1cb8b0c91..05ef39da9 100644
--- a/src/kart_dma.h
+++ b/src/kart_dma.h
@@ -16,7 +16,165 @@ void func_80027C74(Player*, s32, void*, u16);
extern u16 D_800DDEB0[];
-extern u8 _kart_texturesSegmentRomStart[];
+extern u8 *gKartMarioGroup0[];
+extern u8 *gKartMarioGroup1[];
+extern u8 *gKartMarioGroup2[];
+extern u8 *gKartMarioGroup3[];
+extern u8 *gKartMarioGroup4[];
+extern u8 *gKartMarioGroup5[];
+extern u8 *gKartMarioGroup6[];
+extern u8 *gKartMarioGroup7[];
+extern u8 *gKartMarioGroup8[];
+
+extern u8 *gKartMarioGroup9[];
+extern u8 *gKartMarioGroup10[];
+extern u8 *gKartMarioGroup11[];
+extern u8 *gKartMarioGroup12[];
+extern u8 *gKartMarioGroup13[];
+extern u8 *gKartMarioGroup14[];
+extern u8 *gKartMarioGroup15[];
+extern u8 *gKartMarioGroup16[];
+extern u8 *gKartMarioGroup17[];
+
+extern u8 *gKartToadGroup0[];
+extern u8 *gKartToadGroup1[];
+extern u8 *gKartToadGroup2[];
+extern u8 *gKartToadGroup3[];
+extern u8 *gKartToadGroup4[];
+extern u8 *gKartToadGroup5[];
+extern u8 *gKartToadGroup6[];
+extern u8 *gKartToadGroup7[];
+extern u8 *gKartToadGroup8[];
+
+extern u8 *gKartToadGroup9[];
+extern u8 *gKartToadGroup10[];
+extern u8 *gKartToadGroup11[];
+extern u8 *gKartToadGroup12[];
+extern u8 *gKartToadGroup13[];
+extern u8 *gKartToadGroup14[];
+extern u8 *gKartToadGroup15[];
+extern u8 *gKartToadGroup16[];
+extern u8 *gKartToadGroup17[];
+
+extern u8 *gKartLuigiGroup0[];
+extern u8 *gKartLuigiGroup1[];
+extern u8 *gKartLuigiGroup2[];
+extern u8 *gKartLuigiGroup3[];
+extern u8 *gKartLuigiGroup4[];
+extern u8 *gKartLuigiGroup5[];
+extern u8 *gKartLuigiGroup6[];
+extern u8 *gKartLuigiGroup7[];
+extern u8 *gKartLuigiGroup8[];
+
+extern u8 *gKartLuigiGroup9[];
+extern u8 *gKartLuigiGroup10[];
+extern u8 *gKartLuigiGroup11[];
+extern u8 *gKartLuigiGroup12[];
+extern u8 *gKartLuigiGroup13[];
+extern u8 *gKartLuigiGroup14[];
+extern u8 *gKartLuigiGroup15[];
+extern u8 *gKartLuigiGroup16[];
+extern u8 *gKartLuigiGroup17[];
+
+extern u8 *gKartYoshiGroup0[];
+extern u8 *gKartYoshiGroup1[];
+extern u8 *gKartYoshiGroup2[];
+extern u8 *gKartYoshiGroup3[];
+extern u8 *gKartYoshiGroup4[];
+extern u8 *gKartYoshiGroup5[];
+extern u8 *gKartYoshiGroup6[];
+extern u8 *gKartYoshiGroup7[];
+extern u8 *gKartYoshiGroup8[];
+
+extern u8 *gKartYoshiGroup9[];
+extern u8 *gKartYoshiGroup10[];
+extern u8 *gKartYoshiGroup11[];
+extern u8 *gKartYoshiGroup12[];
+extern u8 *gKartYoshiGroup13[];
+extern u8 *gKartYoshiGroup14[];
+extern u8 *gKartYoshiGroup15[];
+extern u8 *gKartYoshiGroup16[];
+extern u8 *gKartYoshiGroup17[];
+
+extern u8 *gKartDKGroup0[];
+extern u8 *gKartDKGroup1[];
+extern u8 *gKartDKGroup2[];
+extern u8 *gKartDKGroup3[];
+extern u8 *gKartDKGroup4[];
+extern u8 *gKartDKGroup5[];
+extern u8 *gKartDKGroup6[];
+extern u8 *gKartDKGroup7[];
+extern u8 *gKartDKGroup8[];
+
+extern u8 *gKartDKGroup9[];
+extern u8 *gKartDKGroup10[];
+extern u8 *gKartDKGroup11[];
+extern u8 *gKartDKGroup12[];
+extern u8 *gKartDKGroup13[];
+extern u8 *gKartDKGroup14[];
+extern u8 *gKartDKGroup15[];
+extern u8 *gKartDKGroup16[];
+extern u8 *gKartDKGroup17[];
+
+extern u8 *gKartBowserGroup0[];
+extern u8 *gKartBowserGroup1[];
+extern u8 *gKartBowserGroup2[];
+extern u8 *gKartBowserGroup3[];
+extern u8 *gKartBowserGroup4[];
+extern u8 *gKartBowserGroup5[];
+extern u8 *gKartBowserGroup6[];
+extern u8 *gKartBowserGroup7[];
+extern u8 *gKartBowserGroup8[];
+
+extern u8 *gKartBowserGroup9[];
+extern u8 *gKartBowserGroup10[];
+extern u8 *gKartBowserGroup11[];
+extern u8 *gKartBowserGroup12[];
+extern u8 *gKartBowserGroup13[];
+extern u8 *gKartBowserGroup14[];
+extern u8 *gKartBowserGroup15[];
+extern u8 *gKartBowserGroup16[];
+extern u8 *gKartBowserGroup17[];
+
+extern u8 *gKartPeachGroup0[];
+extern u8 *gKartPeachGroup1[];
+extern u8 *gKartPeachGroup2[];
+extern u8 *gKartPeachGroup3[];
+extern u8 *gKartPeachGroup4[];
+extern u8 *gKartPeachGroup5[];
+extern u8 *gKartPeachGroup6[];
+extern u8 *gKartPeachGroup7[];
+extern u8 *gKartPeachGroup8[];
+
+extern u8 *gKartPeachGroup9[];
+extern u8 *gKartPeachGroup10[];
+extern u8 *gKartPeachGroup11[];
+extern u8 *gKartPeachGroup12[];
+extern u8 *gKartPeachGroup13[];
+extern u8 *gKartPeachGroup14[];
+extern u8 *gKartPeachGroup15[];
+extern u8 *gKartPeachGroup16[];
+extern u8 *gKartPeachGroup17[];
+
+extern u8 *gKartWarioGroup0[];
+extern u8 *gKartWarioGroup1[];
+extern u8 *gKartWarioGroup2[];
+extern u8 *gKartWarioGroup3[];
+extern u8 *gKartWarioGroup4[];
+extern u8 *gKartWarioGroup5[];
+extern u8 *gKartWarioGroup6[];
+extern u8 *gKartWarioGroup7[];
+extern u8 *gKartWarioGroup8[];
+
+extern u8 *gKartWarioGroup9[];
+extern u8 *gKartWarioGroup10[];
+extern u8 *gKartWarioGroup11[];
+extern u8 *gKartWarioGroup12[];
+extern u8 *gKartWarioGroup13[];
+extern u8 *gKartWarioGroup14[];
+extern u8 *gKartWarioGroup15[];
+extern u8 *gKartWarioGroup16[];
+extern u8 *gKartWarioGroup17[];
extern u8 **gKartMarioTable0[];
extern u8 **gKartLuigiTable0[];
@@ -47,7 +205,6 @@ extern u8 gKartYoshiPalette[];
extern u8 gKartDKPalette[];
extern u8 gKartPeachPalette[];
extern u8 gKartWarioPalette[];
-extern u8 *gKartPalettes[];
extern u8 *gKartMarioTumble[];
extern u8 *gKartLuigiTumble[];
@@ -57,167 +214,12 @@ extern u8 *gKartYoshiTumble[];
extern u8 *gKartDKTumble[];
extern u8 *gKartPeachTumble[];
extern u8 *gKartWarioTumble[];
-extern u8 **gKartTextureTumbles[];
-extern u8 *gKartMarioGroup8[];
-extern u8 *gKartMarioGroup7[];
-extern u8 *gKartMarioGroup6[];
-extern u8 *gKartMarioGroup5[];
-extern u8 *gKartMarioGroup4[];
-extern u8 *gKartMarioGroup3[];
-extern u8 *gKartMarioGroup2[];
-extern u8 *gKartMarioGroup1[];
-extern u8 *gKartMarioGroup0[];
-
-extern u8 *gKartLuigiGroup8[];
-extern u8 *gKartLuigiGroup7[];
-extern u8 *gKartLuigiGroup6[];
-extern u8 *gKartLuigiGroup5[];
-extern u8 *gKartLuigiGroup4[];
-extern u8 *gKartLuigiGroup3[];
-extern u8 *gKartLuigiGroup2[];
-extern u8 *gKartLuigiGroup1[];
-extern u8 *gKartLuigiGroup0[];
-
-extern u8 *gKartYoshiGroup8[];
-extern u8 *gKartYoshiGroup7[];
-extern u8 *gKartYoshiGroup6[];
-extern u8 *gKartYoshiGroup5[];
-extern u8 *gKartYoshiGroup4[];
-extern u8 *gKartYoshiGroup3[];
-extern u8 *gKartYoshiGroup2[];
-extern u8 *gKartYoshiGroup1[];
-extern u8 *gKartYoshiGroup0[];
-
-extern u8 *gKartToadGroup8[];
-extern u8 *gKartToadGroup7[];
-extern u8 *gKartToadGroup6[];
-extern u8 *gKartToadGroup5[];
-extern u8 *gKartToadGroup4[];
-extern u8 *gKartToadGroup3[];
-extern u8 *gKartToadGroup2[];
-extern u8 *gKartToadGroup1[];
-extern u8 *gKartToadGroup0[];
-
-extern u8 *gKartDKGroup8[];
-extern u8 *gKartDKGroup7[];
-extern u8 *gKartDKGroup6[];
-extern u8 *gKartDKGroup5[];
-extern u8 *gKartDKGroup4[];
-extern u8 *gKartDKGroup3[];
-extern u8 *gKartDKGroup2[];
-extern u8 *gKartDKGroup1[];
-extern u8 *gKartDKGroup0[];
-
-extern u8 *gKartWarioGroup8[];
-extern u8 *gKartWarioGroup7[];
-extern u8 *gKartWarioGroup6[];
-extern u8 *gKartWarioGroup5[];
-extern u8 *gKartWarioGroup4[];
-extern u8 *gKartWarioGroup3[];
-extern u8 *gKartWarioGroup2[];
-extern u8 *gKartWarioGroup1[];
-extern u8 *gKartWarioGroup0[];
-
-extern u8 *gKartPeachGroup8[];
-extern u8 *gKartPeachGroup7[];
-extern u8 *gKartPeachGroup6[];
-extern u8 *gKartPeachGroup5[];
-extern u8 *gKartPeachGroup4[];
-extern u8 *gKartPeachGroup3[];
-extern u8 *gKartPeachGroup2[];
-extern u8 *gKartPeachGroup1[];
-extern u8 *gKartPeachGroup0[];
-
-extern u8 *gKartBowserGroup8[];
-extern u8 *gKartBowserGroup7[];
-extern u8 *gKartBowserGroup6[];
-extern u8 *gKartBowserGroup5[];
-extern u8 *gKartBowserGroup4[];
-extern u8 *gKartBowserGroup3[];
-extern u8 *gKartBowserGroup2[];
-extern u8 *gKartBowserGroup1[];
-extern u8 *gKartBowserGroup0[];
-
-extern u8 *gKartMarioGroup17[];
-extern u8 *gKartMarioGroup16[];
-extern u8 *gKartMarioGroup15[];
-extern u8 *gKartMarioGroup14[];
-extern u8 *gKartMarioGroup13[];
-extern u8 *gKartMarioGroup12[];
-extern u8 *gKartMarioGroup11[];
-extern u8 *gKartMarioGroup10[];
-extern u8 *gKartMarioGroup9[];
-
-extern u8 *gKartLuigiGroup17[];
-extern u8 *gKartLuigiGroup16[];
-extern u8 *gKartLuigiGroup15[];
-extern u8 *gKartLuigiGroup14[];
-extern u8 *gKartLuigiGroup13[];
-extern u8 *gKartLuigiGroup12[];
-extern u8 *gKartLuigiGroup11[];
-extern u8 *gKartLuigiGroup10[];
-extern u8 *gKartLuigiGroup9[];
-
-extern u8 *gKartYoshiGroup17[];
-extern u8 *gKartYoshiGroup16[];
-extern u8 *gKartYoshiGroup15[];
-extern u8 *gKartYoshiGroup14[];
-extern u8 *gKartYoshiGroup13[];
-extern u8 *gKartYoshiGroup12[];
-extern u8 *gKartYoshiGroup11[];
-extern u8 *gKartYoshiGroup10[];
-extern u8 *gKartYoshiGroup9[];
-
-extern u8 *gKartToadGroup17[];
-extern u8 *gKartToadGroup16[];
-extern u8 *gKartToadGroup15[];
-extern u8 *gKartToadGroup14[];
-extern u8 *gKartToadGroup13[];
-extern u8 *gKartToadGroup12[];
-extern u8 *gKartToadGroup11[];
-extern u8 *gKartToadGroup10[];
-extern u8 *gKartToadGroup9[];
-
-extern u8 *gKartDKGroup17[];
-extern u8 *gKartDKGroup16[];
-extern u8 *gKartDKGroup15[];
-extern u8 *gKartDKGroup14[];
-extern u8 *gKartDKGroup13[];
-extern u8 *gKartDKGroup12[];
-extern u8 *gKartDKGroup11[];
-extern u8 *gKartDKGroup10[];
-extern u8 *gKartDKGroup9[];
-
-extern u8 *gKartWarioGroup17[];
-extern u8 *gKartWarioGroup16[];
-extern u8 *gKartWarioGroup15[];
-extern u8 *gKartWarioGroup14[];
-extern u8 *gKartWarioGroup13[];
-extern u8 *gKartWarioGroup12[];
-extern u8 *gKartWarioGroup11[];
-extern u8 *gKartWarioGroup10[];
-extern u8 *gKartWarioGroup9[];
+extern u8 **gKartTextureTumbles[];
-extern u8 *gKartPeachGroup17[];
-extern u8 *gKartPeachGroup16[];
-extern u8 *gKartPeachGroup15[];
-extern u8 *gKartPeachGroup14[];
-extern u8 *gKartPeachGroup13[];
-extern u8 *gKartPeachGroup12[];
-extern u8 *gKartPeachGroup11[];
-extern u8 *gKartPeachGroup10[];
-extern u8 *gKartPeachGroup9[];
+extern u8 *gKartPalettes[];
-extern u8 *gKartBowserGroup17[];
-extern u8 *gKartBowserGroup16[];
-extern u8 *gKartBowserGroup15[];
-extern u8 *gKartBowserGroup14[];
-extern u8 *gKartBowserGroup13[];
-extern u8 *gKartBowserGroup12[];
-extern u8 *gKartBowserGroup11[];
-extern u8 *gKartBowserGroup10[];
-extern u8 *gKartBowserGroup9[];
+// end of kart_dma.h variables
extern u8 gKartMarioPalette[];
extern u8 gKartLuigiPalette[];
@@ -2804,4 +2806,6 @@ extern u8 gKartDK318[];
extern u8 gKartDK319[];
extern u8 gKartDK320[];
+extern u8 _kart_texturesSegmentRomStart[];
+
#endif
diff --git a/src/menus.c b/src/menus.c
index 4a8ec3f34..0b9c223e2 100644
--- a/src/menus.c
+++ b/src/menus.c
@@ -3,8 +3,8 @@
#include <defines.h>
#include <global.h>
#include <common_structs.h>
-#include "menus.h"
+#include "menus.h"
#include "main.h"
#include "code_800029B0.h"
#include "actors.h"
@@ -118,7 +118,7 @@ const s32 gGameModeFromNumPlayersAndRowSelection[5][3] = {
};
// map from character grid position id to character id
-const s8 D_800F2BAC[] = {
+const s8 D_800F2BAC[] = {
MARIO,
LUIGI,
PEACH,
@@ -126,7 +126,7 @@ const s8 D_800F2BAC[] = {
YOSHI,
DK,
WARIO,
- BOWSER,
+ BOWSER,
};
const s16 gCupCourseOrder[5][4] = {
@@ -144,12 +144,6 @@ const s16 gCupCourseOrder[5][4] = {
const s8 D_800F2BDC[8] = {1, 0, 0, 0, 0, 1, 3, 4};
-// needs to be a union (or array...?) to go into rodata as a const
-// terrible for endianness... Best guess as to what this is for..
-union GameModePack {
- u8 modes[4];
- s32 word;
-};
const union GameModePack D_800F2BE4 = { {0, 1, 2, 3} };
/**************************/
@@ -233,7 +227,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
s32 sp2C; // cursorWasMoved or communicateStoredAction
UNUSED u32 pad;
- btnAndStick = (controller->buttonPressed | controller->stickPressed);
+ btnAndStick = (controller->buttonPressed | controller->stickPressed);
if (!gEnableDebugMode && (btnAndStick & START_BUTTON)) {
btnAndStick |= A_BUTTON;
@@ -247,7 +241,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
case 0x16:
case 0x17:
case 0x18:
- {
+ {
sp2C = FALSE;
if ((btnAndStick & D_JPAD) && (D_8018EDEC < 0x18)) {
D_8018EDEC += 1;
@@ -364,7 +358,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
play_sound2(SOUND_MENU_FILE_NOT_FOUND);
return;
}
- case 0x18:
+ case 0x18:
{
D_8018EDEC = 0x1E;
play_sound2(SOUND_MENU_SELECT);
@@ -377,8 +371,8 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
return;
}
}
- }
- // maybe else return?;
+ }
+ // maybe else return?;
break;
}
case 0x1E:
@@ -484,7 +478,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
sp38->unk24 += 4.0;
}
sp38->unk8 = -1;
- }
+ }
}
if (btnAndStick & B_BUTTON) {
D_8018EDEC = sp38->unk20 + 0x28;
@@ -498,7 +492,7 @@ void options_menu_act(struct Controller *controller, u16 arg1) {
sp38->unk4 = 0;
}
play_sound2(SOUND_MENU_SELECT);
- }
+ }
break;
}
case 0x2A:
@@ -684,7 +678,7 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
CourseTimeTrialRecords *sp24;
s32 res;
- btnAndStick = (controller->buttonPressed | controller->stickPressed);
+ btnAndStick = (controller->buttonPressed | controller->stickPressed);
if (!gEnableDebugMode && (btnAndStick & START_BUTTON)) {
btnAndStick |= A_BUTTON;
@@ -733,7 +727,7 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
if (gCourseRecordsMenuSelection == 1 && sp24->unknownBytes[0] == 0) {
gCourseRecordsMenuSelection += 1;
}
-
+
if (gCourseRecordsMenuSelection == 2 && func_800B639C(gTimeTrialDataCourseIndex) < 0) {
if (sp24->unknownBytes[0] == 0) {
gCourseRecordsMenuSelection = 0;
@@ -748,7 +742,7 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
sp28->unk8 = 1;
}
}
-
+
if (btnAndStick & B_BUTTON) {
func_8009E208();
play_sound2(SOUND_MENU_GO_BACK);
@@ -767,7 +761,7 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
}
break;
}
- case 0x0C:
+ case 0x0C:
{
sp28 = find_8018D9E0_entry_dupe(0xE9);
if ((btnAndStick & U_JPAD) && (D_8018EDF9 > 0)) {
@@ -778,7 +772,7 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
}
sp28->unk8 = -1;
}
-
+
if ((btnAndStick & D_JPAD) && (D_8018EDF9 <= 0)) {
D_8018EDF9 += 1;
play_sound2(SOUND_MENU_CURSOR_MOVE);
@@ -787,7 +781,7 @@ void course_data_menu_act(struct Controller *controller, UNUSED u16 arg1) {
}
sp28->unk8 = 1;
}
-
+
if (btnAndStick & B_BUTTON) {
D_8018EDEC = 0xB;
play_sound2(SOUND_MENU_GO_BACK);
@@ -864,7 +858,7 @@ void logo_intro_menu_act(struct Controller *arg0, UNUSED u16 arg1) {
if ((func_800B4520() == 0) && (anyInput)) {
// Audio related
func_800CA388(0x3C);
-
+
func_8009E1E4();
}
}
@@ -874,7 +868,7 @@ void controller_pak_menu_act(struct Controller* controller, UNUSED u16 arg1) {
OSPfsState* osPfsState;
s32 selectedTableRow;
UNUSED s8 pad;
-
+
buttonAndStickPress = controller->buttonPressed | controller->stickPressed;
if (func_800B4520() == 0) {
switch (gControllerPakMenuSelection) {
@@ -983,8 +977,8 @@ void controller_pak_menu_act(struct Controller* controller, UNUSED u16 arg1) {
selectedTableRow = D_800E86C4[gControllerPakSelectedTableRow + 2] - 1;
osPfsState = &pfsState[selectedTableRow];
- switch (osPfsDeleteFile(&gControllerPak1FileHandle, osPfsState->company_code, osPfsState->game_code, (u8 *)&osPfsState->game_name, (u8 *)&osPfsState->ext_name)) {
- default:
+ switch (osPfsDeleteFile(&gControllerPak1FileHandle, osPfsState->company_code, osPfsState->game_code, (u8 *)&osPfsState->game_name, (u8 *)&osPfsState->ext_name)) {
+ default:
gControllerPakMenuSelection = CONTROLLER_PAK_MENU_ERASE_ERROR_NOT_ERASED;
return;
case 0:
@@ -1208,7 +1202,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
if (controller->button & Z_TRIG) {
if (btnAndStick & A_BUTTON) {
- gDebugGotoScene = DEBUG_GOTO_ENDING_SEQUENCE;
+ gDebugGotoScene = DEBUG_GOTO_ENDING_SEQUENCE;
} else {
gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_CC_EXTRA;
}
@@ -1356,7 +1350,7 @@ void main_menu_act(struct Controller *controller, u16 arg1) {
} else if (btnAndStick & A_BUTTON) {
// L800B2E3C
switch(gGameModeFromNumPlayersAndRowSelection[D_8018EDF3][D_800E86AC[D_8018EDF3 - 1]]) {
- case 0:
+ case 0:
gMainMenuSelectionDepth = GAME_MODE_CC_OR_TIME_TRIALS_OPTIONS_SELECTION;
play_sound2(SOUND_MENU_GP);
break;
@@ -1527,7 +1521,7 @@ void player_select_menu_act(struct Controller *controller, u16 arg1) {
if (!func_800B4520()) {
switch (D_8018EDEE) {
- case 1:
+ case 1:
{
if (gCharacterGridSelections[arg1] == 0) {
if (btnAndStick & B_BUTTON) {
@@ -1550,7 +1544,7 @@ void player_select_menu_act(struct Controller *controller, u16 arg1) {
if ((btnAndStick & A_BUTTON) && !D_8018EDE8[arg1]) {
D_8018EDE8[arg1] = TRUE;
func_800C90F4(
- arg1,
+ arg1,
(((uintptr_t)D_800F2BAC[gCharacterGridSelections[arg1] - 1]) << 4) + 0x2900800EU
);
}
diff --git a/src/menus.h b/src/menus.h
index 79293f7fc..9b3bf569a 100644
--- a/src/menus.h
+++ b/src/menus.h
@@ -11,6 +11,13 @@ enum MenuOptionsCursorPositions {
MENU_OPTIONS_CSRPOS_SOUNDMODE = 0x16
};
+// needs to be a union (or array...?) to go into rodata as a const
+// terrible for endianness... Best guess as to what this is for..
+union GameModePack {
+ u8 modes[4];
+ s32 word;
+};
+
/* functions */
void update_menus(void);
void options_menu_act(struct Controller *, u16);
@@ -28,23 +35,8 @@ void func_800B3F74(s32);
void func_800B44AC(void);
void func_800B44BC(void);
s32 func_800B4520(void);
-void func_800B4560(s32, s32);
/* data */
-extern s32 gMenuSelection;
-extern s32 D_800E86A4;
-extern s8 gCharacterSelections[4];
-extern s8 D_800E86AC[4];
-extern s8 D_800E86B0[4][3];
-extern s8 gNextDemoId;
-extern s8 gControllerPakSelectedTableRow;
-extern s8 D_800E86C4[12];
-extern s8 D_800E86D0[16];
-
-extern const s8 D_800F2B60[5][3];
-extern const s32 gGameModeFromNumPlayersAndRowSelection[5][3];
-extern const s16 gCupCourseOrder[5][4];
-
extern s32 D_8018EDC0;
extern f32 D_8018EDC4;
extern f32 D_8018EDC8;
@@ -54,8 +46,9 @@ extern f32 D_8018EDD4;
extern f32 D_8018EDD8;
extern f32 D_8018EDDC;
extern s32 D_8018EDE0;
-extern s8 gCharacterGridSelections[4];
-extern s8 D_8018EDE8[4];
+
+extern s8 gCharacterGridSelections[];
+extern s8 D_8018EDE8[];
extern s8 D_8018EDEC;
extern s8 gMainMenuSelectionDepth;
extern s8 D_8018EDEE;
@@ -74,10 +67,38 @@ extern s8 gDebugGotoScene;
extern s8 D_8018EDFB;
extern s8 D_8018EDFC;
extern s32 gMenuTimingCounter;
+extern s32 gMenuDelayTimer;
extern s8 D_8018EE08;
extern s8 gCupSelection;
+extern s8 D_8018EE0A;
extern s8 gCupCourseSelection;
extern s8 D_8018EE0C;
-extern struct_8018EE10_entry D_8018EE10[2];
+extern struct_8018EE10_entry D_8018EE10[];
+
+extern s32 gMenuSelection;
+extern s32 D_800E86A4;
+extern s8 gCharacterSelections[];
+
+extern s8 D_800E86AC[];
+extern s8 D_800E86B0[4][3];
+extern s8 gNextDemoId;
+extern s8 gControllerPakSelectedTableRow;
+extern s8 D_800E86C4[];
+extern s8 D_800E86D0[];
+extern s8 unref_800E86E0[];
+extern u32 sVIGammaOffDitherOn;
+
+extern const s8 D_800F2B50[5];
+extern const s8 D_800F2B58[5];
+extern const s8 D_800F2B60[5][3];
+extern const s32 gGameModeFromNumPlayersAndRowSelection[5][3];
+extern const s8 D_800F2BAC[8];
+extern const s16 gCupCourseOrder[NUM_CUPS][NUM_COURSES_PER_CUP];
+
+extern const s8 D_800F2BDC[8];
+
+extern const union GameModePack D_800F2BE4;
+
+// end of menus.c variables
#endif /* MENUS_H */
diff --git a/src/racing/actors.h b/src/racing/actors.h
index 4096d1af0..9591ec27b 100644
--- a/src/racing/actors.h
+++ b/src/racing/actors.h
@@ -122,7 +122,6 @@ extern u16 D_802BA260; // Box Truck sub-type?
extern u16 gNearestWaypointByPlayerId[];
-extern Camera *camera1;
extern s16 gCurrentCourseId;
extern u16 isCrossingTriggeredByIndex[];
extern Lights1 D_800DC610[];
@@ -247,6 +246,4 @@ extern s8 D_802B8864[];
extern u16 D_800DC5BC;
-extern Vec3f D_802B91C8;
-
#endif // ACTORS_H
diff --git a/src/racing/math_util.c b/src/racing/math_util.c
index 8da704551..75c3a6b19 100644
--- a/src/racing/math_util.c
+++ b/src/racing/math_util.c
@@ -72,7 +72,7 @@ f32 func_802B51E8(Vec3f arg0, Vec3f arg1) {
temp_f14 = arg1[2] - arg0[2];
return (temp_f2 * temp_f2) + (temp_f12 * temp_f12) + temp_f14 + temp_f14;
}
-//u32 atan2s(f32, f32); // might be s32
+
u32 get_angle_between_points(Vec3f arg0, Vec3f arg1) {
f32 temp_v1;
f32 temp_v2;
@@ -87,7 +87,7 @@ u32 func_802B5258(Vec3f arg0, Vec3s arg1) {
f32 temp_v2;
temp_v1 = arg1[0] - arg0[0];
temp_v2 = arg1[2] - arg0[2];
-
+
return atan2s(temp_v1, temp_v2);
}
@@ -161,7 +161,7 @@ void mtxf_identity(Mat4 mtx) {
for (k = 0; k < 4; k++) {
mtx[i][k] = (i == k) ? 1.0f : 0.0f;
}
- }
+ }
}
void func_802B5450(Mat4 arg0, Mat4 arg1, Vec3f arg2) {
@@ -606,11 +606,11 @@ void func_802B6540(Mat3 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) {
mtx2[0][0] = cossValue;
mtx2[2][1] = 0;
mtx2[1][2] = 0;
-
+
mtx2[1][1] = 1;
mtx2[2][0] = sinValue;
mtx2[0][2] = -sinValue;
-
+
mtx2[2][2] = cossValue;
mtx2[1][0] = 0;
mtx2[0][1] = 0;
@@ -622,7 +622,7 @@ void func_802B6540(Mat3 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) {
matrix[i][j] = (i == j) ? 1.0f : 0.0f;
}
}
-
+
} else if (arg2 == -1) {
for (i = 0; i < 3; i++) {
@@ -630,16 +630,16 @@ void func_802B6540(Mat3 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4) {
matrix[i][j] = (i == j) ? 1.0f : 0.0f;
}
}
-
+
matrix[1][1] = -1;
-
+
} else {
a = (f32) -(360.0 - ((f64) (func_802B7CE8(arg2) * 180.0f) / 3.141592653589793));
b = -arg3 / sqrtf((arg1 * arg1) + (arg3 * arg3));
c = 0;
d = arg1 / sqrtf((arg1 * arg1) + (arg3 * arg3));
func_802B6A84(matrix, a, b, c, d);
-
+
}
arg0[0][0] = (mtx2[0][0] * matrix[0][0]) + (mtx2[0][1] * matrix[1][0]) + (mtx2[0][2] * matrix[2][0]);
arg0[1][0] = (mtx2[1][0] * matrix[0][0]) + (mtx2[1][1] * matrix[1][0]) + (mtx2[1][2] * matrix[2][0]);
@@ -665,7 +665,7 @@ UNUSED void func_802B68F8(Mat3 matrix, f32 arg1, f32 arg2, f32 arg3) {
if (arg2 == 1) {
for (i = 0; i < 3; i++) {
- for (j = 0; j < 3; j++) {
+ for (j = 0; j < 3; j++) {
matrix[i][j] = (i == j) ? 1.0f : 0.0f;
}
}
@@ -840,7 +840,7 @@ void mtxf_to_mtx(Mtx *dest, Mat4 src) {
/**
* Comment from sm64 unverified. mk64 verison is modified
- *
+ *
* Helper function for atan2s. Does a look up of the arctangent of y/x assuming
* the resulting angle is in range [0, 0x2000] (1/8 of a circle).
*/
diff --git a/src/racing/math_util.h b/src/racing/math_util.h
index 67f4dfcfe..cfb972042 100644
--- a/src/racing/math_util.h
+++ b/src/racing/math_util.h
@@ -16,9 +16,6 @@
// Here to appease the pragma gods
double fabs(double x);
-void func_802B6A84(Mat3, s16, f32, f32, f32);
-void func_802B4FF0(void);
-void func_802B5794(Mat4, Vec3f, Vec3f);
s32 render_set_position(Mat4, s32);
f32 func_802B51E8(Vec3f, Vec3f);
u32 get_angle_between_points(Vec3f, Vec3f);
@@ -27,14 +24,13 @@ void vec3f_set(Vec3f, f32, f32, f32);
void vec3s_set(Vec3s, s16, s16, s16);
void *vec3f_copy(Vec3f, Vec3f);
void vec3s_copy(Vec3s, Vec3s);
-void *sm64_vec3f_set(Vec3f, f32, f32, f32);
void func_802B5350(Mat4, Mat4);
void func_802B5398(s32*, s32*, s32);
void mtxf_identity(Mat4);
void func_802B5450(Mat4, Mat4, Vec3f);
-void func_802B54EC(Mat4, Mat4, Vec3f);
void mtxf_translate(Mat4, Vec3f);
void func_802B5564(Mat4, u16*, f32, f32, f32, f32, f32);
+void func_802B5794(Mat4, Vec3f, Vec3f);
void func_802B59DC(Mat4, s16);
void func_802B5A44(Mat4, s16);
void func_802B5AAC(Mat4, s16);
@@ -43,14 +39,11 @@ void func_802B5D30(s16, s16, s32);
void func_802B5D64(uintptr_t, s16, s16, s32);
void func_802B5F00(Mat4, f32);
void func_802B5F74(Mat4, Vec3f, Vec3s);
-void func_802B60B4(Mat4, Vec3s, Vec3s);
-void func_802B6214(Mat4, Vec3s, Vec3s);
-void func_802B6374(Vec3f);
void func_802B63B8(Vec3f, Mat3);
void func_802B6434(Vec3f, Mat4);
-void func_802B64B0(s32, s32, s32, s32);
void func_802B64C4(Vec3f, s16);
void func_802B6540(Mat3, f32, f32, f32, s16);
+void func_802B6A84(Mat3, s16, f32, f32, f32);
void func_802B6BC0(Mat4, s16, f32, f32, f32);
void func_802B6D58(Mat4, Vec3f, Vec3f);
void func_802B71CC(Mat4, Mat4, Mat4);
@@ -58,14 +51,9 @@ void mtxf_to_mtx(Mtx*, Mat4);
u16 atan2_lookup(f32, f32);
u16 atan2s(f32, f32);
f32 func_802B79B8(f32, f32);
-f32 func_802B79F0(f32, f32);
-u16 func_802B7B50(f32, f32);
-void func_802B7C18(f32);
s16 func_802B7C40(f32);
-void func_802B7C6C(f32);
s16 func_802B7CA8(f32);
f32 func_802B7CE8(f32);
-s16 func_802B7D28(f32);
u16 random_u16(void);
u16 random_int(u16);
s16 func_802B7F34(f32, f32, f32, f32);
@@ -74,7 +62,11 @@ f32 sins(u16);
f32 coss(u16);
s32 is_visible_between_angle(u16, u16, u16);
f32 is_within_render_distance(Vec3f, Vec3f, u16, f32, f32, f32);
-void func_802B8414(uintptr_t, Mat4, s16, s16, s32);
+
+extern s32 D_802B91C0[];
+extern Vec3f D_802B91C8;
+
+// end of math_util.c variables
extern u16 gRandomSeed16;
diff --git a/src/racing/race_logic.c b/src/racing/race_logic.c
index 581b6769e..301461005 100644
--- a/src/racing/race_logic.c
+++ b/src/racing/race_logic.c
@@ -21,12 +21,12 @@
#include "math_util_2.h"
#include "code_8008C1D0.h"
#include "math.h"
+#include "menus.h"
#pragma intrinsic (sqrtf)
extern s16 gPlayerBalloonCount[];
extern s16 D_8016348C;
-extern s8 gCupCourseSelection;
extern s32 gLapCountByPlayerId[];
extern u16 D_802BA048;
@@ -34,9 +34,7 @@ extern u16 D_802BA048;
extern u16 D_800DC5B4;
extern u16 D_800DC5B0;
extern u16 D_800DC5B8;
-extern s32 gMenuSelection;
-extern s8 D_8018EE08;
extern s32 D_8018D2AC;
extern s16 gCurrentCourseId;
extern u32 D_800DC5AC;
diff --git a/src/racing/skybox_and_splitscreen.c b/src/racing/skybox_and_splitscreen.c
index e7523ac17..32d50f904 100644
--- a/src/racing/skybox_and_splitscreen.c
+++ b/src/racing/skybox_and_splitscreen.c
@@ -18,6 +18,7 @@
#include "render_courses.h"
#include "math_util.h"
#include "main.h"
+#include "menus.h"
Vp D_802B8880[] = {
diff --git a/src/racing/skybox_and_splitscreen.h b/src/racing/skybox_and_splitscreen.h
index 499d03ca4..0c4dedf22 100644
--- a/src/racing/skybox_and_splitscreen.h
+++ b/src/racing/skybox_and_splitscreen.h
@@ -59,8 +59,6 @@ extern struct UnkStruct_800DC5EC *D_800DC5F8;
extern u16 D_800DC5B0;
extern u16 gIsInQuitToMenuTransition;
extern u16 gQuitToMenuTransitionCounter;
-extern s32 gMenuSelection;
-extern s32 D_800E86A4;
extern s32 D_800DC5D0;
extern s32 D_800DC5D4;
diff --git a/src/spawn_players.c b/src/spawn_players.c
index f111d9b08..0de730e72 100644
--- a/src/spawn_players.c
+++ b/src/spawn_players.c
@@ -18,6 +18,7 @@
#include "code_80005FD0.h"
#include "podium_ceremony_actors.h"
#include "main.h"
+#include "menus.h"
// arg4 is height? Or something like that?
void spawn_player(Player *player, s8 playerIndex, f32 startingRow, f32 startingColumn, f32 arg4, f32 arg5, u16 characterId, s16 playerType) {