cleaning camera, kart_dma, menu, math_util (#436)

* cleaning camera.h

* cleaning math_utils.h and remove space

* cleaning kart_dma

* cleaning menu.h
This commit is contained in:
coco875 2023-09-23 06:00:30 +02:00 committed by GitHub
parent 3a4b8c5a34
commit 2f583fdb42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
28 changed files with 287 additions and 325 deletions

View File

@ -6,21 +6,11 @@
#include "common_structs.h"
extern s8 gCharacterIdByGPOverallRank[8]; // D_8018D9D0
extern s8 gCharacterGridSelections[4]; // D_8018EDE4
extern s8 gCharacterSelections[4]; // D_800E86A8
extern s8 gControllerPakMenuSelection; // D_8018EDF0
extern s8 gControllerPakSelectedTableRow; // D_800E86C0
extern f32 gCourseCompletionPercentByPlayerId[8]; // D_801644D0
extern f32 gCourseCompletionPercentByRank[8]; // D_80162FD8
extern s8 gCourseRecordsMenuSelection; // D_8018EDF8
extern const s16 gCupCourseOrder[NUM_CUPS][NUM_COURSES_PER_CUP]; // D_800F2BB4
extern s8 gCupCourseSelection; // D_8018EE0B
extern char *gCupNames[]; // D_800E7500
extern s8 gCupSelection; // D_8018EE09
extern s16 gCurrentCourseId; // D_800DC5A0
extern s8 gDebugMenuSelection; // D_8018EDEF
extern s8 gGPPointsByCharacterId[8]; // D_8018D9C8
extern s16 gGPCurrentRacePlayerIdByRank[8]; // D_80164360
@ -31,22 +21,15 @@ extern s32 gIsMirrorMode; // D_800DC604
extern f32 gLapCompletionPercentByPlayerId[8]; // D_801644A8
extern s32 gLapCountByPlayerId[8]; // D_80164390
extern s32 gMenuTimingCounter; // D_8018EE00
extern s32 gMenuSelection; // D_800E86A0
// Indicates the ID of the next title screen demo that will be played
extern s8 gNextDemoId; // D_800E86BC
// Maps course IDs (as defined in the COURSES enum) to an index in a given cup's track order
extern const u8 gPerCupIndexByCourseId[]; // D_800EFD50
extern s32 gPlayerIsThrottleActive[]; // D_801653E0
extern s32 gGPCurrentRaceRankByPlayerId[]; // D_801643B8
extern u8 gSoundMode; // D_8018EDF2
extern char *gSoundModeNames[NUM_SOUND_MODES]; // D_800E7710
extern s8 gTimeTrialDataCourseIndex; // D_8018EDF7
extern struct_8018CA70_entry D_8018CA70[];
extern Mtx D_80183D60[];
@ -120,6 +103,4 @@ extern s8 D_801658FE;
extern s32 gMatrixHudCount;
extern s32 D_8018D900[];
extern s8 D_8018EDEC;
#endif

View File

@ -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 {

View File

@ -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

View File

@ -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[];

View File

@ -23,7 +23,7 @@
#include "common_textures.h"
#include "common_structs.h"
#include "main.h"
#include "menus.h"
extern UnkCommonTextureStruct0 *D_800DC720[];

View File

@ -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[];

View File

@ -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

View File

@ -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;

View File

@ -14,6 +14,7 @@
#include "audio/external.h"
#include "courses/all_course_data.h"
#include "main.h"
#include "menus.h"
void func_8006E9C0(void) {

View File

@ -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;

View File

@ -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[] = {

View File

@ -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

View File

@ -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;

View File

@ -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 */

View File

@ -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 */

View File

@ -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

View File

@ -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;

View File

@ -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);

View File

@ -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 *gKartPalettes[];
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 *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 *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

View File

@ -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
);
}

View File

@ -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 */

View File

@ -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

View File

@ -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).
*/

View File

@ -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;

View File

@ -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;

View File

@ -18,6 +18,7 @@
#include "render_courses.h"
#include "math_util.h"
#include "main.h"
#include "menus.h"
Vp D_802B8880[] = {

View File

@ -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;

View File

@ -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) {