Add ymls for Torch code generator (#497)

* Add torch

* update jenkinsfile
This commit is contained in:
MegaMech
2024-04-09 21:29:57 -06:00
committed by GitHub
parent 2b66867af1
commit 3da5a4f343
95 changed files with 4794 additions and 9877 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
#include <actors.h>
#include <PR/gbi.h>
#include <main.h>
#include "common_textures.h"
#include <assets/common_data.h>
/**
* @brief Renders the green shell actor.
+1 -1
View File
@@ -1,7 +1,7 @@
#include <actors.h>
#include <PR/gbi.h>
#include <main.h>
#include <common_textures.h>
#include <assets/common_data.h>
#include "courses/all_course_data.h"
/**
+16 -16
View File
@@ -20,7 +20,7 @@
#include "code_80057C60.h"
#include "bomb_kart.h"
#include "courses/all_course_data.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "common_structs.h"
#include "main.h"
#include "menus.h"
@@ -29,7 +29,7 @@
#include "ending/podium_ceremony_actors.h"
#include "spawn_players.h"
#include "sounds.h"
#include "data/path_spawn_data.h"
#include "data/path_spawn_metadata.h"
s32 unk_code_80005FD0_pad[24];
Collision D_80162E70;
@@ -1683,7 +1683,7 @@ void func_80009B60(s32 playerId) {
f32 athing = 1.5f;
player = &gPlayers[playerId];
if ((s32) gKartAICourseMaximumWaypointSeparation[gCurrentCourseId] >= 0) {
if ((s32) gKartAICourseMaximumSeparation[gCurrentCourseId] >= 0) {
D_80163100[playerId] += 1;
if (playerId == 0) {
D_80163378++;
@@ -1955,7 +1955,7 @@ void func_80009B60(s32 playerId) {
if (var_a2 < (s16) temp_f6) {
var_a2 = temp_f6;
}
var_v1 = D_800DCA20[gCurrentCourseId];
var_v1 = gKartAISteeringSensitivity[gCurrentCourseId];
switch (D_801631D8[playerId]) { /* switch 4; irregular */
case 2: /* switch 4 */
if (D_80163068[playerId] > (0.5f * 1.0f)) {
@@ -2194,7 +2194,7 @@ f32 func_8000B874(f32 posX, f32 posZ, u16 waypointIndex, s32 pathIndex) {
void func_8000B95C(s32 playerId, u16 waypointIndex, s32 pathIndex) {
UNUSED Vec3f pad;
D_80163068[playerId] = 0.0f;
if ((s32) gKartAICourseMaximumWaypointSeparation[gCurrentCourseId] >= 0) {
if ((s32) gKartAICourseMaximumSeparation[gCurrentCourseId] >= 0) {
if ((gPlayers[playerId].type & 0x8000) != 0) {
D_80163068[playerId] = func_8000B874(gPlayers[playerId].pos[0], gPlayers[playerId].pos[2], waypointIndex, pathIndex);
}
@@ -2947,7 +2947,7 @@ void set_bomb_kart_spawn_positions(void) {
BombKartSpawn *temp_s1;
for (var_s3 = 0; var_s3 < NUM_BOMB_KARTS_VERSUS; var_s3++) {
temp_s1 = &D_800DCC08[gCurrentCourseId][var_s3];
temp_s1 = &gBombKartSpawns[gCurrentCourseId][var_s3];
switch (gCurrentCourseId) {
case COURSE_YOSHI_VALLEY:
startingXPos = temp_s1->startingXPos;
@@ -3432,7 +3432,7 @@ void func_8000F2BC(TrackWaypoint *arg0, size_t size) {
// Appears to allocate memory for each course.
void func_8000F2DC(void) {
struct _struct_D_800DD9D0_0x10 *ptr = &D_800DD9D0[gCurrentCourseId];
struct _struct_gCoursePathSizes_0x10 *ptr = &gCoursePathSizes[gCurrentCourseId];
s32 temp;
s32 i;
@@ -3553,7 +3553,7 @@ void func_8000F628(void) {
D_80163068[i] = 0.0f;
D_80163090[i] = 0.0f;
var_s5 = &D_801634F8[i];
var_s5->unkC = gKartAICourseMinimumWaypointSeparation[gCurrentCourseId] * (f32) (((i + 1) % 3) - 1);
var_s5->unkC = gKartAICourseMinimumSeparation[gCurrentCourseId] * (f32) (((i + 1) % 3) - 1);
var_s5->unk4 = var_s5->unkC;
var_s5->unk0 = 0.0f;
var_s5->unk8 = 0.015f;
@@ -3678,11 +3678,11 @@ void func_800100F0(s32 pathIndex) {
s32 i;
// cast required
if ((s32)gKartAICourseMaximumWaypointSeparation[gCurrentCourseId] >= 0) {
if ((s32)gKartAICourseMaximumSeparation[gCurrentCourseId] >= 0) {
pathDest = D_80164550[pathIndex];
bInvalidPath = 1;
if (gCurrentCourseId != COURSE_AWARD_CEREMONY) {
var_v0 = process_path_data(pathDest, segmented_to_virtual_dupe_2(D_800DC8D0[gCurrentCourseId][pathIndex]));
var_v0 = process_path_data(pathDest, segmented_to_virtual_dupe_2(gCoursePathTable2[gCurrentCourseId][pathIndex]));
gWaypointCountByPathIndex[pathIndex] = (u16) var_v0;
} else {
// Course path included in course_data which has already been loaded into memory.
@@ -3729,8 +3729,8 @@ void func_80010218(s32 pathIndex) {
TrackWaypoint *var_s1;
TrackWaypoint *var_s2;
if (((s32) gKartAICourseMaximumWaypointSeparation[gCurrentCourseId]) >= 0) {
waypointWidth = gKartAICourseMaximumWaypointSeparation[gCurrentCourseId];
if (((s32) gKartAICourseMaximumSeparation[gCurrentCourseId]) >= 0) {
waypointWidth = gKartAICourseMaximumSeparation[gCurrentCourseId];
waypoint = &D_80164550[pathIndex][0];
var_s1 = &D_80164560[pathIndex][0];
var_s2 = &D_80164570[pathIndex][0];
@@ -3779,7 +3779,7 @@ f32 func_80010480(s32 pathIndex, u16 waypointIndex) {
f32 root2;
f32 root1;
if ((s32) gKartAICourseMaximumWaypointSeparation[gCurrentCourseId] < 0) {
if ((s32) gKartAICourseMaximumSeparation[gCurrentCourseId] < 0) {
return 0.0f;
}
waypointCount = gWaypointCountByPathIndex[pathIndex];
@@ -3821,7 +3821,7 @@ void func_800107C4(s32 pathIndex) {
s32 var_a3;
s16 *wut;
if ((s32) gKartAICourseMaximumWaypointSeparation[gCurrentCourseId] >= 0) {
if ((s32) gKartAICourseMaximumSeparation[gCurrentCourseId] >= 0) {
var_a3 = gWaypointCountByPathIndex[pathIndex];
var_t4 = &D_80164580[pathIndex][0];
for(var_s0 = 0; var_s0 < var_a3; var_s0++, var_t4++) {
@@ -3889,7 +3889,7 @@ void func_80010DBC(s32 pathIndex) {
s32 waypointIndex;
u16 *angle;
if ((s32) gKartAICourseMaximumWaypointSeparation[gCurrentCourseId] >= 0) {
if ((s32) gKartAICourseMaximumSeparation[gCurrentCourseId] >= 0) {
for (angle = &D_80164590[pathIndex][0], waypointIndex = 0; waypointIndex < gWaypointCountByPathIndex[pathIndex]; waypointIndex++, angle++) {
*angle = func_80010CB0(pathIndex, waypointIndex);
}
@@ -4168,7 +4168,7 @@ s32 func_8001168C(PathNoY *pathDest, TrackWaypoint *pathSrc, s32 numWaypoints) {
void copy_courses_kart_ai_behaviour(void) {
s32 i;
for (i = 0; i < NUM_COURSES-1; i++) {
for (i = 0; i < NUM_COURSES - 1; i++) {
gCoursesKartAIBehaviour[i] = segmented_to_virtual_dupe_2(gKartAIBehaviourLUT[i]);
}
}
+1 -1
View File
@@ -4,7 +4,7 @@
#include "vehicles.h"
#include "camera.h"
#include "waypoints.h"
#include "common_textures.h"
#include <assets/common_data.h>
struct struct_801642D8 {
/* 0x0 */ u16 unk0;
+2 -2
View File
@@ -23,9 +23,9 @@
#include "update_objects.h"
#include "code_80086E70.h"
#include "effects.h"
#include "src/data/data_800E8700.h"
#include <assets/data_800E8700.h>
#include "skybox_and_splitscreen.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "audio/external.h"
#include "objects.h"
#include "bomb_kart.h"
+1 -1
View File
@@ -12,7 +12,7 @@
#include "objects.h"
#include "bomb_kart.h"
#include "save.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include <sounds.h>
#include <decode.h>
#include "audio/external.h"
+34 -134
View File
@@ -20,13 +20,13 @@
#include "audio/external.h"
#include "render_objects.h"
#include "staff_ghosts.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "textures.h"
#include "math_util.h"
#include "save_data.h"
#include "podium_ceremony_actors.h"
#include "skybox_and_splitscreen.h"
#include "src/data/startup_logo.h"
#include <assets/startup_logo.h>
#include "buffers.h"
#include "racing/race_logic.h"
#include "ending/code_80281C40.h"
@@ -393,115 +393,34 @@ char *gCupNames[] = {
"special cup",
};
char *D_800E7524[] = {
"mario raceway",
"choco mountain",
"bowser's castle",
"banshee boardwalk",
"yoshi valley",
"frappe snowland",
"koopa troopa beach",
"royal raceway",
"luigi raceway",
"moo moo farm",
"toad's turnpike",
"kalimari desert",
"sherbet land",
"rainbow road",
"wario stadium",
"block fort",
"skyscraper",
"double deck",
"d.k.'s jungle parkway",
"big donut",
// Displays at beginning of course
char *gCourseNames[] = {
#include "assets/course_metadata/gCourseNames.inc.c"
};
char *D_800E7574[] = {
"mario raceway",
"choco mountain",
"bowser's castle",
"banshee boardwalk",
"yoshi valley",
"frappe snowland",
"koopa troopa beach",
"royal raceway",
"luigi raceway",
"moo moo farm",
"toad's turnpike",
"kalimari desert",
"sherbet land",
"rainbow road",
"wario stadium",
"block fort",
"skyscraper",
"double deck",
"d.k.'s jungle parkway",
"big donut",
char *gCourseNamesDup[] = {
#include "assets/course_metadata/gCourseNames.inc.c"
};
char *D_800E75C4[] = {
"mario raceway",
"choco mountain",
"bowser's castle",
"banshee boardwalk",
"yoshi valley",
"frappe snowland",
"koopa troopa beach",
"royal raceway",
"luigi raceway",
"moo moo farm",
"toad's turnpike",
"kalimari desert",
"sherbet land",
"rainbow road",
"wario stadium",
"block fort",
"skyscraper",
"double deck",
"d.k.'s jungle parkway",
"big donut",
char *gCourseNamesDup2[] = {
#include "assets/course_metadata/gCourseNames.inc.c"
};
// Used in debug menu at splash screen
char *gDebugCourseNames[] = {
"m circuit",
"mountain",
"castle",
"ghost",
"maze",
"snow",
"beach",
"p circuit",
"l circuit",
"farm",
"highway",
"desert",
"sherbet",
"rainbow",
"stadium",
"block",
"skyscraper",
"deck",
"jungle",
"doughnut",
#include "assets/course_metadata/gCourseDebugNames.inc.c"
};
const s8 gPerCupIndexByCourseId[] = {
3, 2, 3, 2,
1, 1, 2, 2,
0, 1, 0, 3,
1, 3, 0, 1,
3, 2, 0, 0,
#include "assets/course_metadata/gPerCupIndexByCourseId.inc.c"
};
// @todo Increase this array for more than eight players
const s8 D_800EFD64[] = { 0, 1, 4, 3, 5, 6, 2, 7 };
// Maps course IDs (as defined in the COURSES enum) to the cup they belong to
s8 gCupSelectionByCourseId[] = {
FLOWER_CUP, FLOWER_CUP, STAR_CUP, SPECIAL_CUP,
SPECIAL_CUP, FLOWER_CUP, MUSHROOM_CUP, STAR_CUP,
MUSHROOM_CUP, MUSHROOM_CUP, FLOWER_CUP, MUSHROOM_CUP,
STAR_CUP, SPECIAL_CUP, STAR_CUP, BATTLE_CUP,
BATTLE_CUP, BATTLE_CUP, SPECIAL_CUP, BATTLE_CUP,
#include "assets/course_metadata/gCupSelectionByCourseId.inc.c"
};
char *D_800E7678[] = {
@@ -636,27 +555,8 @@ char D_800E77B4[] = "a BUTTON*SEE DATA B BUTTON*EXIT";
// This is plain data, it should not end up in rodata
char D_800E77D8[] = "distance";
char *D_800E77E4[] = {
"567m",
"687m",
"777m",
"747m",
"772m",
"734m",
"691m",
"1025m",
"717m",
"527m",
"1036m",
"753m",
"756m",
"2000m",
"1591m",
"",
"",
"",
"893m",
"",
char *sCourseLengths[] = {
#include "assets/course_metadata/sCourseLengths.inc.c"
};
char *D_800E7834[] = {
@@ -2815,7 +2715,7 @@ void func_80095574(void) {
} else {
debug_print_str2(0x000000AA, 0x00000064, "off");
}
if ((gCurrentCourseId >= 0x14) || (gCurrentCourseId < 0)) {
if ((gCurrentCourseId >= (NUM_COURSES - 1)) || (gCurrentCourseId < 0)) {
gCurrentCourseId = 0;
}
print_str_num(0x00000050, 0x0000006E, "map_number", gCurrentCourseId);
@@ -6616,10 +6516,10 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) {
}
break;
case 0x5: /* switch 6 */
var_t0 = (s32) ((f32) (get_string_width(D_800E7574[0]) + 5) * 0.9f) / 2;
var_t0 = (s32) ((f32) (get_string_width(gCourseNamesDup[0]) + 5) * 0.9f) / 2;
gDisplayListHead = draw_box(gDisplayListHead, 0xA0 - var_t0, 0x0000007B, var_t0 + 0xA0, 0x000000A4, 0, 0, 0, 0x00000096);
set_text_color(1);
draw_text(0x0000009B, 0x0000008C, D_800E7574[0], 0, 0.9f, 0.9f);
draw_text(0x0000009B, 0x0000008C, gCourseNamesDup[0], 0, 0.9f, 0.9f);
temp_v1 = func_800B4EB4(0, 7) & 0xFFFFF;
if (temp_v1 < 0x1EAA) {
set_text_color((s32) gGlobalTimer % 2);
@@ -6886,7 +6786,7 @@ void func_8009F5E0(struct_8018D9E0_entry *arg0) {
break;
case 0x97: /* switch 6 */
set_text_color(5);
func_80093324(arg0->column, arg0->row, D_800E7524[gCurrentCourseId], arg0->unk1C, arg0->unk24, 1.0f);
func_80093324(arg0->column, arg0->row, gCourseNames[gCurrentCourseId], arg0->unk1C, arg0->unk24, 1.0f);
break;
case 0x98: /* switch 6 */
func_800A2D1C(arg0);
@@ -7368,10 +7268,10 @@ void func_800A1A20(struct_8018D9E0_entry *arg0) {
courseId = gCupCourseOrder[gTimeTrialDataCourseIndex / 4][gTimeTrialDataCourseIndex % 4];
arg0->column = 0x14;
set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1);
draw_text(0x69, arg0->row + 0x19, D_800E7574[courseId], 0, 0.75f, 0.75f);
draw_text(0x69, arg0->row + 0x19, gCourseNamesDup[courseId], 0, 0.75f, 0.75f);
set_text_color(TEXT_RED);
func_80093324(0x2D, arg0->row + 0x28, (char *)&D_800E77D8, 0, 0.75f, 0.75f);
func_800936B8(0xA5, arg0->row + 0x28, D_800E77E4[courseId], 1, 0.75f, 0.75f);
func_800936B8(0xA5, arg0->row + 0x28, sCourseLengths[courseId], 1, 0.75f, 0.75f);
set_text_color(TEXT_YELLOW);
func_80093324(0xA0, arg0->row + 0x86, D_800E7728[0], 0, 0.75f, 0.75f);
// Print the 3 Lap Time Trial records
@@ -7621,7 +7521,7 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
if (var_v1->ghostDataSaved == 0) {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f);
} else {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E75C4[gCupCourseOrder[var_v1->courseIndex / 4][var_v1->courseIndex % 4]], 0, 0.5f, 0.5f);
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), gCourseNamesDup2[gCupCourseOrder[var_v1->courseIndex / 4][var_v1->courseIndex % 4]], 0, 0.5f, 0.5f);
}
}
}
@@ -7657,7 +7557,7 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
if (var_v1->ghostDataSaved == 0) {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f);
} else {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E75C4[gCupCourseOrder[var_v1->courseIndex / 4][var_v1->courseIndex % 4]], 0, 0.5f, 0.5f);
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), gCourseNamesDup2[gCupCourseOrder[var_v1->courseIndex / 4][var_v1->courseIndex % 4]], 0, 0.5f, 0.5f);
}
}
}
@@ -7705,7 +7605,7 @@ void func_800A1FB0(struct_8018D9E0_entry *arg0) {
if (var_v1->ghostDataSaved == 0) {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E7A44, 0, 0.5f, 0.5f);
} else {
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), D_800E75C4[gCupCourseOrder[var_v1->courseIndex / 4][var_v1->courseIndex % 4]], 0, 0.5f, 0.5f);
func_80093324(0x2A + (var_s1 * 0x89), 0x96 + (0x1E * var_s2), gCourseNamesDup2[gCupCourseOrder[var_v1->courseIndex / 4][var_v1->courseIndex % 4]], 0, 0.5f, 0.5f);
}
}
}
@@ -7984,7 +7884,7 @@ void func_800A3C84(struct_8018D9E0_entry *arg0) {
s32 rowOffset;
set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1);
draw_text(arg0->column + 0x43, arg0->row + 0x19, D_800E7574[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 0.6f, 0.6f);
draw_text(arg0->column + 0x43, arg0->row + 0x19, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 0.6f, 0.6f);
set_text_color(TEXT_YELLOW);
draw_text(arg0->column + 0x46, arg0->row + 0x28, D_800E7730, 0, 0.75f, 0.75f);
for(recordType = 0, rowOffset = 0; recordType < TIME_TRIAL_3LAP_RECORD_5; recordType += 1, rowOffset += 0xF) {
@@ -8019,7 +7919,7 @@ void func_800A3E60(struct_8018D9E0_entry *arg0) {
if (var_v0 == 0x0000001F) return;
set_text_color(4);
draw_text(arg0->column + 0x55, 0x19 - arg0->row, D_800E7574[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 0.6f, 0.6f);
draw_text(arg0->column + 0x55, 0x19 - arg0->row, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 0.6f, 0.6f);
set_text_color(3);
draw_text(arg0->column + 0x55, 0x28 - arg0->row, D_800E7730, 0, 0.75f, 0.75f);
for (var_s1 = 0; var_s1 < 4; var_s1++) {
@@ -8083,7 +7983,7 @@ void func_800A3E60(struct_8018D9E0_entry *arg0) {
if (D_8018EE10[var_s1].ghostDataSaved == 0) {
func_80093324(0xBB - arg0->column, 0xAA + (0x1E * var_s1), D_800E7A44, 0, 0.45f, 0.45f);
} else {
func_80093324(0xBB - arg0->column, 0xAA + (0x1E * var_s1), D_800E75C4[gCupCourseOrder[D_8018EE10[var_s1].courseIndex / 4][D_8018EE10[var_s1].courseIndex % 4]], 0, 0.45f, 0.45f);
func_80093324(0xBB - arg0->column, 0xAA + (0x1E * var_s1), gCourseNamesDup2[gCupCourseOrder[D_8018EE10[var_s1].courseIndex / 4][D_8018EE10[var_s1].courseIndex % 4]], 0, 0.45f, 0.45f);
}
}
break;
@@ -8306,7 +8206,7 @@ void render_pause_menu_time_trials(struct_8018D9E0_entry *arg0) {
gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, 0x0000008C);
set_text_color(TEXT_YELLOW);
draw_text(0x000000A0, 0x00000050, D_800E7574[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f, 1.0f);
draw_text(0x000000A0, 0x00000050, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f, 1.0f);
set_text_color(TEXT_RED);
draw_text(0x0000009D, 0x00000060, D_800E7728[0], 0, 0.8f, 0.8f);
temp_a0 = func_800B4E24(TIME_TRIAL_3LAP_RECORD_1);
@@ -8390,7 +8290,7 @@ void render_pause_grand_prix(struct_8018D9E0_entry *arg0) {
set_text_color(TEXT_YELLOW);
draw_text(160 + temp_s0, temp_s3->row - 50, D_800E76CC[gCCSelection], 0, 1.0f, 1.0f);
set_text_color(TEXT_YELLOW);
draw_text(160, temp_s3->row - 30, D_800E7574[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f, 1.0f);
draw_text(160, temp_s3->row - 30, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f, 1.0f);
for (var_s0 = 0; var_s0 < 2; var_s0++) {
text_rainbow_effect(arg0->cursor - 31, var_s0, TEXT_YELLOW);
func_80093324(temp_s3->column, temp_s3->row + (var_s0 * 13), gTextPauseButton[var_s0 * 4], 0, 0.75f, 0.75f);
@@ -8499,7 +8399,7 @@ void func_800A5738(struct_8018D9E0_entry *arg0) {
gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x0000013F, 0x000000EF, 0, 0, 0, var_s1);
gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, var_s2);
set_text_color(3);
func_80093754(0x000000A0, 0x00000050, D_800E7574[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f, 1.0f);
func_80093754(0x000000A0, 0x00000050, gCourseNamesDup[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, 1.0f, 1.0f);
switch (arg0->cursor) { /* switch 1 */
case 1: /* switch 1 */
case 11: /* switch 1 */
@@ -8561,7 +8461,7 @@ void func_800A5738(struct_8018D9E0_entry *arg0) {
if (D_8018EE10[var_s1].ghostDataSaved == 0) {
func_80093324(0x69 - arg0->column, (0x96 + (0x14 * var_s1)), D_800E7A44, 0, 0.75f, 0.75f);
} else {
func_80093324(0x69 - arg0->column, (0x96 + (0x14 * var_s1)), D_800E75C4[gCupCourseOrder[D_8018EE10[var_s1].courseIndex / 4][D_8018EE10[var_s1].courseIndex % 4]], 0, 0.75f, 0.75f);
func_80093324(0x69 - arg0->column, (0x96 + (0x14 * var_s1)), gCourseNamesDup2[gCupCourseOrder[D_8018EE10[var_s1].courseIndex / 4][D_8018EE10[var_s1].courseIndex % 4]], 0, 0.75f, 0.75f);
}
}
break;
@@ -8630,7 +8530,7 @@ void func_800A6034(struct_8018D9E0_entry *arg0) {
text = gCupNames[D_800DC540];
set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_2);
func_80093754(arg0->column + 0x41, arg0->row + 0xA0, text, 0, 0.85f, 1.0f);
text = D_800E7524[gCurrentCourseId];
text = gCourseNames[gCurrentCourseId];
set_text_color((s32) gCurrentCourseId % 4);
func_80093754(arg0->column + 0x41, arg0->row + 0xC3, text, 0, 0.65f, 0.85f);
}
@@ -11263,7 +11163,7 @@ void func_800ABF68(struct_8018D9E0_entry *arg0) {
case 0:
arg0->column = 0x140;
arg0->cursor = 1;
arg0->unk20 = 0xA0 - (get_string_width(D_800E7524[gCurrentCourseId]) / 2);
arg0->unk20 = 0xA0 - (get_string_width(gCourseNames[gCurrentCourseId]) / 2);
/* fallthrough */
case 1:
func_800A9208(arg0, arg0->unk20);
+4 -4
View File
@@ -492,9 +492,9 @@ extern RGBA16 D_800E74D0[];
extern RGBA16 D_800E74E8[];
extern const s16 gGlyphDisplayWidth[];
extern char *gCupNames[];
extern char *D_800E7524[];
extern char *D_800E7574[];
extern char *D_800E75C4[];
extern char *gCourseNames[];
extern char *gCourseNamesDup[];
extern char *gCourseNamesDup2[];
extern char *gDebugCourseNames[];
// Maps course IDs (as defined in the COURSES enum) to an index in a given cup's track order
extern const s8 gPerCupIndexByCourseId[]; // D_800EFD50
@@ -520,7 +520,7 @@ extern char *D_800E77A0[];
extern char *D_800E77A8[];
extern char D_800E77B4[];
extern char D_800E77D8[];
extern char *D_800E77E4[];
extern char *sCourseLengths[];
extern char *D_800E7834[];
extern char *D_800E7840[];
extern char *D_800E7848[];
-390
View File
@@ -1,390 +0,0 @@
#ifndef COMMON_TEXTURES_H
#define COMMON_TEXTURES_H
#include <types.h>
#include <PR/gbi.h>
typedef struct {
/* 0x0 */ s16 waypointStart;
/* 0x2 */ s16 waypointEnd;
/* 0x4 */ s32 type;
} KartAIBehaviour; // size = 0x8
enum {
BEHAVIOUR_NONE = 0,
BEHAVIOUR_1,
BEHAVIOUR_HOP,
BEHAVIOUR_3,
BEHAVIOUR_4,
BEHAVIOUR_5,
BEHAVIOUR_NORMAL_SPEED,
BEHAVIOUR_FAST_SPEED,
BEHAVIOUR_SLOW_SPEED,
BEHAVIOUR_9,
BEHAVIOUR_10,
BEHAVIOUR_MAX_SPEED
};
/** @cond */
extern u8 common_tlut_finish_line_banner[];
extern u8 common_texture_particle_fire[];
extern Vtx D_0D001200[];
extern Vtx D_0D001210[];
extern Vtx D_0D001240[];
extern Vtx D_0D001270[];
extern Vtx D_0D0012A0[];
extern Vtx D_0D0012D0[];
extern Vtx D_0D001300[];
extern Vtx D_0D001330[];
extern Vtx D_0D001360[];
extern Vtx D_0D001390[];
extern Vtx common_vertex_finish_post[];
extern Vtx D_0D001710[];
extern Gfx D_0D001750[];
extern Gfx D_0D001780[];
extern Gfx D_0D001798[];
extern Gfx D_0D0017B0[];
extern Gfx D_0D0017C8[];
extern Gfx D_0D0017E0[];
extern Gfx D_0D0017F8[];
extern Gfx D_0D001810[];
extern Gfx D_0D001828[];
extern Gfx D_0D001840[];
extern Gfx common_model_finish_post[];
extern Gfx D_0D001B68[];
extern Gfx D_0D001B90[];
extern Gfx D_0D001BD8[];
extern Gfx D_0D001C20[];
extern Gfx D_0D001C88[];
extern Vtx D_0D001CE8[];
extern Vtx common_vtx_itembox_question_mark[];
extern Vtx D_0D001D68[];
extern Vtx D_0D001D98[];
extern Vtx D_0D001DC8[];
extern Vtx D_0D001DF8[];
extern Vtx D_0D001E28[];
extern Vtx D_0D001E58[];
extern Vtx D_0D001E88[];
extern Vtx D_0D001EB8[];
extern u8 common_texture_item_box_question_mark[];
extern Gfx D_0D002EE8[];
extern Vtx common_fake_item_box_question_mark_vertices[];
extern Gfx common_model_fake_itembox[];
extern Gfx itemBoxQuestionMarkModel[];
extern Gfx D_0D003090[];
extern Gfx D_0D0030F8[];
extern Gfx D_0D003128[];
extern Gfx D_0D003158[];
extern Gfx D_0D003188[];
extern Gfx D_0D0031B8[];
extern Gfx D_0D0031E8[];
extern Gfx D_0D003218[];
extern Gfx D_0D003248[];
extern Gfx D_0D003278[];
extern Gfx D_0D003288[];
extern Vtx common_vtx_banana[];
extern Vtx common_vtx_flat_banana[];
extern u8 common_texture_banana[];
extern u8 common_texture_flat_banana[];
extern Gfx common_model_banana[];
extern Gfx common_model_flat_banana[];
extern u8 common_tlut_trees_import[];
extern u8 common_tlut_green_shell[];
extern u8 common_tlut_blue_shell[];
extern Vtx D_0D005238[];
extern Vtx D_0D005278[];
extern Gfx D_0D0052B8[];
extern Gfx D_0D005308[];
extern Gfx D_0D005338[];
extern Gfx D_0D005368[];
extern Gfx D_toads_turnpike_0D005398[];
extern Gfx D_toads_turnpike_0D0053B0[];
extern Gfx D_toads_turnpike_0D0053C8[];
extern Gfx D_toads_turnpike_0D0053F0[];
extern Gfx D_toads_turnpike_0D005418[];
extern Vtx D_0D005430[];
extern Vtx common_vtx_player_minimap_icon[];
extern Vtx D_0D0054B0[];
extern Vtx common_vtx_rectangle[];
extern Vtx D_0D0057B0[];
extern Vtx D_0D0057F0[];
extern Vtx D_0D0058E0[];
extern Vtx D_0D005920[];
extern Vtx D_0D005AA0[];
extern Vtx D_0D005AE0[];
extern Vtx D_0D005B20[];
extern Vtx D_0D005B60[];
extern Vtx D_0D005BA0[];
extern Vtx D_0D005BD0[];
extern Vtx D_0D005C00[];
extern Vtx D_0D005C30[];
extern Vtx D_0D005E80[];
extern Vtx D_0D005EB0[];
extern Vtx D_0D005F00[];
extern Vtx D_0D005F30[];
extern Vtx D_0D005F80[];
extern Vtx D_0D005FB0;
extern Vtx D_0D005FC0[];
extern Vtx D_0D005FF0;
extern Vtx D_0D006000[];
extern Vtx D_0D006030[];
extern Vtx D_0D006080[];
extern Vtx D_0D0060B0[];
extern Vtx D_0D006100[];
extern Vtx D_0D006130[];
extern Vtx D_0D006180[];
extern Vtx D_0D0061B0[];
extern Vtx D_0D006280[];
extern Vtx D_0D0062B0[];
extern Vtx D_0D006480[];
extern Vtx D_0D0064B0[];
extern Vtx D_0D006700[];
extern Vtx D_0D006730[];
extern Vtx D_0D0068C0[];
extern Vtx D_0D0068F0[];
extern Gfx D_0D006930[];
extern Gfx common_rectangle_display[];
extern Gfx D_0D006950[];
extern Gfx D_0D006968[];
extern Gfx D_0D006980[];
extern Gfx D_0D006998[];
extern Gfx D_0D0069B0[];
extern Gfx D_0D0069C8[];
extern Gfx D_0D0069E0[];
extern Gfx D_0D0069F8[];
extern Gfx D_0D006A10[];
extern Gfx D_0D006A28[];
extern Gfx D_0D006A40[];
extern u8 D_0D006A58[];
extern u8 D_0D006AD8[];
extern u8 common_tlut_debug_font[];
extern u8 common_texture_debug_font[];
extern Gfx D_0D0076F8[];
extern Gfx D_0D007780[];
extern Gfx D_0D0077A0[];
extern Gfx D_0D0077D0[];
extern Gfx D_0D0077F8[];
extern Gfx D_0D007828[];
extern Gfx D_0D007850[];
extern Gfx D_0D007878[];
extern Gfx D_0D0078A0[];
extern Gfx D_0D0078D0[];
extern Gfx D_0D0078F8[];
extern Gfx D_0D007928[];
extern Gfx D_0D007948[];
extern Gfx D_0D007968[];
extern Gfx D_0D007988[];
extern Gfx D_0D0079A8[];
extern Gfx D_0D0079C8[];
extern Gfx D_0D0079E8[];
extern Gfx D_0D007A08[];
extern Gfx D_0D007A40[];
extern Gfx D_0D007A60[];
extern Gfx D_0D007A80[];
extern Gfx D_0D007AA0[];
extern Gfx D_0D007AC0[];
extern Gfx D_0D007AE0[];
extern Gfx D_0D007B00[];
extern Gfx D_0D007B20[];
extern Gfx D_0D007B98[];
extern Gfx D_0D007C10[];
extern Gfx D_0D007C88[];
extern Gfx D_0D007CB8[];
extern Gfx D_0D007CD8[];
extern Gfx D_0D007CF8[];
extern Gfx D_0D007D18[];
extern Gfx D_0D007D38[];
extern Gfx D_0D007D58[];
extern Gfx D_0D007D78[];
extern Gfx D_0D007D98[];
extern Gfx D_0D007DB8[];
extern Gfx D_0D007DD8[];
extern Gfx D_0D007DF8[];
extern Gfx D_0D007E18[];
extern Gfx D_0D007E38[];
extern Gfx D_0D007E58[];
extern Gfx D_0D007E78[];
extern Gfx D_0D007E98[];
extern Gfx D_0D007EB8[];
extern Gfx D_0D007ED8[];
extern Gfx D_0D007EF8[];
extern Gfx D_0D007F18[];
extern Gfx D_0D007F38[];
extern Gfx D_0D007F58[];
extern Gfx D_0D007F78[];
extern Gfx D_0D007F98[];
extern Gfx D_0D007FB8[];
extern Gfx D_0D007FE0[];
extern Gfx D_0D008000[];
extern Gfx D_0D008020[];
extern Gfx D_0D008040[];
extern Gfx D_0D008060[];
extern Gfx D_0D008080[];
extern Gfx D_0D008108[];
extern Gfx D_0D008120[];
extern Gfx D_0D008138[];
extern u8 common_grand_prix_human_item_curve[][100];
extern u8 common_grand_prix_kart_ai_item_curve[][100];
extern u8 common_versus_2_player_item_curve[][100];
extern u8 common_versus_3_player_item_curve[][100];
extern u8 common_versus_4_player_item_curve[][100];
extern u8 common_battle_item_curve[][100];
extern Vtx D_0D008B78[];
extern Vtx D_0D008BB8[];
extern Vtx D_0D008BF8[];
extern Vtx D_0D008C38[];
extern Gfx common_square_plain_render[];
extern Gfx D_0D008C90[];
extern Gfx common_setting_render_character[];
extern Gfx D_0D008D10[];
extern Gfx D_0D008D58[];
extern Gfx D_0D008DA0[];
extern Gfx D_0D008DB8[];
extern Gfx D_0D008DF8[];
extern Gfx D_0D008E20[];
extern Gfx D_0D008E48[];
extern Gfx D_0D008E70[];
extern Mtx D_0D008E98;
extern Vtx D_0D008ED8[];
extern KartAIBehaviour common_kart_ai_behaviour_battle_courses[];
extern KartAIBehaviour common_kart_ai_behaviour_mario_raceway[];
extern KartAIBehaviour common_kart_ai_behaviour_choco_mountain[];
extern KartAIBehaviour common_kart_ai_behaviour_bowser_castle[];
extern KartAIBehaviour common_kart_ai_behaviour_banshee_boardwalk[];
extern KartAIBehaviour common_kart_ai_behaviour_yoshi_valley[];
extern KartAIBehaviour common_kart_ai_behaviour_frappe_snowland[];
extern KartAIBehaviour common_kart_ai_behaviour_koopa_beach[];
extern KartAIBehaviour common_kart_ai_behaviour_royal_raceway[];
extern KartAIBehaviour common_kart_ai_behaviour_luigi_raceway[];
extern KartAIBehaviour common_kart_ai_behaviour_moo_moo_farm[];
extern KartAIBehaviour common_kart_ai_behaviour_toad_turnpike[];
extern KartAIBehaviour common_kart_ai_behaviour_kalamari_desert[];
extern KartAIBehaviour common_kart_ai_behaviour_sherbet_land[];
extern KartAIBehaviour common_kart_ai_behaviour_rainbow_road[];
extern KartAIBehaviour common_kart_ai_behaviour_wario_stadium[];
extern KartAIBehaviour common_kart_ai_behaviour_dk_jungle[];
extern f32 D_0D009418[][4];
extern f32 D_0D009568[][4];
extern f32 D_0D0096B8[][4];
extern f32 D_0D009808[][4];
extern s32 unkPad;
extern u8 common_texture_speedometer[];
extern u8 common_texture_speedometer_needle[];
extern u8 common_texture_hud_lap[];
extern u8 common_texture_hud_123[];
extern u8 common_texture_hud_lap_time[];
extern u8 common_texture_hud_lap_1_on_3[];
extern u8 common_texture_hud_lap_2_on_3[];
extern u8 common_texture_hud_lap_3_on_3[];
extern u8 common_texture_hud_total_time[];
extern u8 common_texture_hud_time[];
extern u8 common_texture_hud_normal_digit[];
extern u8 common_texture_hud_place[][4096];
extern u8 D_0D00E258[];
extern u8 D_0D00F258[];
extern u8 D_0D010258[];
extern u8 D_0D011258[];
extern u8 D_0D012258[];
extern u8 D_0D013258[];
extern u8 D_0D014258[];
extern u8 D_0D015258[][2048];
extern u8 D_0D015A58[];
extern u8 D_0D016258[];
extern u8 D_0D016A58[];
extern u8 common_tlut_player_emblem[];
extern s16 tlutPad[];
extern u8 common_texture_player_emblem[][2048];
extern u8 common_tlut_hud_type_C_rank_font[];
extern u8 common_texture_hud_type_C_rank_font[][256];
extern u8 common_tlut_hud_type_C_rank_tiny_font[];
extern u8 common_texture_hud_type_C_rank_tiny_font[][64];
extern u8 common_texture_character_portrait_border[];
extern u8 common_tlut_portrait_mario[];
extern u8 common_tlut_portrait_luigi[];
extern u8 common_tlut_portrait_peach[];
extern u8 common_tlut_portrait_toad[];
extern u8 common_tlut_portrait_yoshi[];
extern u8 common_tlut_portrait_donkey_kong[];
extern u8 common_tlut_portrait_wario[];
extern u8 common_tlut_portrait_bowser[];
extern u8 common_tlut_portrait_bomb_kart_and_question_mark[];
extern u8 common_texture_portrait_mario[];
extern u8 common_texture_portrait_luigi[];
extern u8 common_texture_portrait_peach[];
extern u8 common_texture_portrait_toad[];
extern u8 common_texture_portrait_yoshi[];
extern u8 common_texture_portrait_donkey_kong[];
extern u8 common_texture_portrait_wario[];
extern u8 common_texture_portrait_bowser[];
extern u8 common_texture_portrait_bomb_kart[];
extern u8 common_texture_portrait_question_mark[];
extern u8 common_tlut_item_window_none[];
extern u8 common_tlut_item_window_banana[];
extern u8 common_tlut_item_window_banana_bunch[];
extern u8 common_tlut_item_window_mushroom[];
extern u8 common_tlut_item_window_double_mushroom[];
extern u8 common_tlut_item_window_triple_mushroom[];
extern u8 common_tlut_item_window_super_mushroom[];
extern u8 common_tlut_item_window_blue_shell[];
extern u8 common_tlut_item_window_boo[];
extern u8 common_tlut_item_window_green_shell[];
extern u8 common_tlut_item_window_triple_green_shell[];
extern u8 common_tlut_item_window_red_shell[];
extern u8 common_tlut_item_window_triple_red_shell[];
extern u8 common_tlut_item_window_star[];
extern u8 common_tlut_item_window_thunder_bolt[];
extern u8 common_tlut_item_window_fake_item_box[];
extern u8 common_texture_item_window_none[];
extern u8 common_texture_item_window_banana[];
extern u8 common_texture_item_window_banana_bunch[];
extern u8 common_texture_item_window_mushroom[];
extern u8 common_texture_item_window_double_mushroom[];
extern u8 common_texture_item_window_triple_mushroom[];
extern u8 common_texture_item_window_super_mushroom[];
extern u8 common_texture_item_window_blue_shell[];
extern u8 common_texture_item_window_boo[];
extern u8 common_texture_item_window_green_shell[];
extern u8 common_texture_item_window_triple_green_shell[];
extern u8 common_texture_item_window_red_shell[];
extern u8 common_texture_item_window_triple_red_shell[];
extern u8 common_texture_item_window_star[];
extern u8 common_texture_item_window_thunder_bolt[];
extern u8 common_texture_item_window_fake_item_box[];
extern u8 common_tlut_lakitu_countdown[][512];
extern u8 common_tlut_lakitu_checkered_flag[];
extern u8 common_tlut_lakitu_second_lap[];
extern u8 common_tlut_lakitu_final_lap[];
extern u8 common_tlut_lakitu_reverse[];
extern u8 common_tlut_lakitu_fishing[];
extern u8 common_texture_particle_leaf[];
extern u8 common_tlut_traffic_light[];
extern u8 common_texture_traffic_light_01[];
extern u8 common_texture_traffic_light_02[];
extern u8 common_texture_traffic_light_03[];
extern u8 common_texture_traffic_light_04[];
extern u8 common_texture_traffic_light_05[];
extern u8 common_texture_traffic_light_06[];
extern u8 common_texture_traffic_light_07[];
extern u8 common_texture_traffic_light_08[];
extern u8 common_texture_traffic_light_09[];
extern u8 common_texture_traffic_light_10[];
extern u8 common_texture_unused_particle_leaf[];
extern u8 D_0D0293D8[];
extern u8 D_0D029458[];
extern u8 common_texture_bomb[][1024];
extern u8 D_0D029C58[];
extern u8 D_0D02A058[];
extern u8 D_0D02A458[];
extern u8 common_tlut_bomb[];
extern u8 D_0D02AA58[];
extern u8 common_texture_particle_spark[][1024];
extern u8 common_texture_particle_smoke[][1024];
extern u8 common_texture_minimap_finish_line[];
extern u8 common_texture_minimap_kart_character[][128];
extern u8 common_texture_minimap_progress_dot[];
/** @endcond */
#endif
File diff suppressed because it is too large Load Diff
-73
View File
@@ -1,73 +0,0 @@
#include "data_800E45C0.h"
Lights1 D_800E45C0[] = {
gdSPDefLights1(
0x64, 0x00, 0x00,
0x64, 0x00, 0x00, 0x00, 0x88, 0x00
),
gdSPDefLights1(
0x64, 0x64, 0x00,
0xff, 0xff, 0x00, 0x00, 0x88, 0x00
),
gdSPDefLights1(
0x64, 0x64, 0x64,
0xff, 0xff, 0xff, 0x00, 0x88, 0x00
),
gdSPDefLights1(
0x64, 0x00, 0x00,
0x64, 0x00, 0x00, 0x00, 0x88, 0x00
),
};
Lights1 D_800E4620 = gdSPDefLights1(
0x96, 0xb4, 0xfa,
0xff, 0xff, 0xff, 0x00, 0x00, 0x00
);
Lights1 D_800E4638 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0x00, 0x88, 0x00
);
Lights1 D_800E4650 = gdSPDefLights1(
0x55, 0x55, 0x00,
0xff, 0xff, 0x00, 0x00, 0x78, 0x00
);
Lights1 D_800E4668 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0xbe, 0x52, 0xc9
);
Lights1 D_800E4680 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0x00, 0x00, 0x78
);
Lights1 D_800E4698 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0x00, 0x00, 0x78
);
Lights1 D_800E46B0 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0x00, 0x00, 0x78
);
Lights1 D_800E46C8 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0x00, 0x00, 0x78
);
Lights1 D_800E46E0 = gdSPDefLights1(
0x55, 0x55, 0x55,
0xff, 0xff, 0xff, 0x00, 0x00, 0x78
);
Vec3u32 D_800E46F8[] = {
{0x000000ff, 0x000000ff, 0x000000ff},
{0x000000ff, 0x000000ff, 0x00000000},
{0x000000ff, 0x00000000, 0x00000000},
};
u8 D_800E471C[] = { 0x00, 0x01, 0x02, 0x03, 0x02, 0x01, 0x00 };
-24
View File
@@ -1,24 +0,0 @@
#ifndef DATA_800E45C0_H
#define DATA_800E45C0_H
#include <ultra64.h>
typedef u32 Vec3u32[3];
extern Lights1 D_800E45C0[];
extern Lights1 D_800E45D8;
extern Lights1 D_800E45F0;
extern Lights1 D_800E4608;
extern Lights1 D_800E4620;
extern Lights1 D_800E4638;
extern Lights1 D_800E4650;
extern Lights1 D_800E4668;
extern Lights1 D_800E4680;
extern Lights1 D_800E4698;
extern Lights1 D_800E46B0;
extern Lights1 D_800E46C8;
extern Lights1 D_800E46E0;
extern Vec3u32 D_800E46F8[];
extern u8 D_800E471C[];
#endif
-215
View File
@@ -1,215 +0,0 @@
#include <ultra64.h>
#include "data_800E8700.h"
Vtx D_800E8700[] = {
{{{ 8, 8, 0}, 0, {960, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 8, -8, 0}, 0, {960, 960}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -8, -8, 0}, 0, {0, 960}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -8, 8, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8740[] = {
{{{ 1, 2, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 2, -2, 0}, 0, {0, 960}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, -2, 0}, 0, {960, 960}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -1, 2, 0}, 0, {960, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8780[] = {
{{{ 2, 4, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 2, 0, 0}, 0, {4032, 4032}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 4, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E87C0[] = {
{{{ 2, 2, 0}, 0, {1984, 0}, {0x00, 0x00, 0x7F, 0xFF}}},
{{{ 2, -2, 0}, 0, {1984, 1984}, {0x00, 0x00, 0x7F, 0xFF}}},
{{{ -2, -2, 0}, 0, {0, 1984}, {0x00, 0x00, 0x7F, 0xFF}}},
{{{ -2, 2, 0}, 0, {0, 0}, {0x00, 0x00, 0x7F, 0xFF}}},
};
Vtx D_800E8800[] = {
{{{ 0, 4, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 0, 0, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -4, 0, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -4, 4, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8840[] = {
{{{ 4, 4, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 4, 0, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 0, 0, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 0, 4, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8880[] = {
{{{ 2, 2, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 2, 0, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 0, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 2, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E88C0[] = {
{{{ 2, 0, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 2, -2, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, -2, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 0, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8900[][4] = {
{
{{{ 2, 4, 0}, 0, {0, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ 2, 0, 0}, 0, {0, 4032}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ 0, 0, 0}, 0, {1984, 4032}, {0xFF, 0xFF, 0x00, 0x70}}},
{{{ 0, 4, 0}, 0, {1984, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
},
{
{{{ 0, 4, 0}, 0, {0, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ 0, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0x00, 0x70}}},
{{{ -2, 0, 0}, 0, {1984, 4032}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ -2, 4, 0}, 0, {1984, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
},
{
{{{ 2, 4, 0}, 0, {1984, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ 2, 0, 0}, 0, {1984, 4032}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ 0, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0x00, 0x70}}},
{{{ 0, 4, 0}, 0, {0, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
},
{
{{{ 0, 4, 0}, 0, {1984, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ 0, 0, 0}, 0, {1984, 4032}, {0xFF, 0xFF, 0x00, 0x70}}},
{{{ -2, 0, 0}, 0, {0, 4032}, {0x00, 0xFF, 0xFF, 0x70}}},
{{{ -2, 4, 0}, 0, {0, 0}, {0x00, 0xFF, 0xFF, 0x70}}},
},
};
Vtx D_800E8A00[] = {
{{{ 2, 4, 0}, 0, {0, 0}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ 2, 0, 0}, 0, {0, 4032}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ 0, 0, 0}, 0, {1984, 4032}, {0xFF, 0xFF, 0x14, 0x60}}},
{{{ 0, 4, 0}, 0, {1984, 0}, {0xF0, 0x00, 0x00, 0x60}}},
};
Vtx D_800E8A40[] = {
{{{ 0, 4, 0}, 0, {0, 0}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ 0, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0x14, 0x60}}},
{{{ -2, 0, 0}, 0, {1984, 4032}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ -2, 4, 0}, 0, {1984, 0}, {0xF0, 0x00, 0x00, 0x60}}},
};
Vtx D_800E8A80[] = {
{{{ 2, 4, 0}, 0, {1984, 0}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ 2, 0, 0}, 0, {1984, 4032}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ 0, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0x14, 0x60}}},
{{{ 0, 4, 0}, 0, {0, 0}, {0xF0, 0x00, 0x00, 0x60}}},
};
Vtx D_800E8AC0[] = {
{{{ 0, 4, 0}, 0, {1984, 0}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ 0, 0, 0}, 0, {1984, 4032}, {0xFF, 0xFF, 0x14, 0x60}}},
{{{ -2, 0, 0}, 0, {0, 4032}, {0xF0, 0x00, 0x00, 0x60}}},
{{{ -2, 4, 0}, 0, {0, 0}, {0xF0, 0x00, 0x00, 0x60}}},
};
Vtx D_800E8B00[] = {
{{{ 1, 12, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xF0}}},
{{{ 2, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0xFF, 0xF0}}},
{{{ -2, 0, 0}, 0, {1984, 4032}, {0xFF, 0xFF, 0xFF, 0xF0}}},
{{{ -1, 12, 0}, 0, {1984, 0}, {0xFF, 0xFF, 0xFF, 0xF0}}},
};
Vtx D_800E8B40[] = {
{{{ 2, 1, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 2, -1, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, -1, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 1, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8B80[] = {
{{{ 4, 1, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 4, -1, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 0, -1, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 0, 1, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8BC0[] = {
{{{ 0, 1, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 0, -1, 0}, 0, {0, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -4, -1, 0}, 0, {4032, 1984}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -4, 1, 0}, 0, {4032, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8C00[] = {
{{{ 2, 4, 0}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ 2, 0, 0}, 0, {0, 4032}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 0, 0}, 0, {1984, 4032}, {0xFF, 0xFF, 0xFF, 0xFF}}},
{{{ -2, 4, 0}, 0, {1984, 0}, {0xFF, 0xFF, 0xFF, 0xFF}}},
};
Vtx D_800E8C40[] = {
{{{ 9, 18, -9}, 0, {0, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
{{{ 9, 0, -9}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 0, -9}, 0, {990, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 18, -9}, 0, {990, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
{{{ 9, 18, 9}, 0, {0, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
{{{ 9, 0, 9}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 0, 9}, 0, {990, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 18, 9}, 0, {990, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
};
Vtx D_800E8CC0[] = {
{{{ 9, 70, -9}, 0, {0, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
{{{ 9, 0, -9}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 0, -9}, 0, {990, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 70, -9}, 0, {990, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
{{{ 9, 70, 9}, 0, {0, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
{{{ 9, 0, 9}, 0, {0, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 0, 9}, 0, {990, 0}, {0xFF, 0xFF, 0xFF, 0x9B}}},
{{{ -9, 70, 9}, 0, {990, 990}, {0xFF, 0xFF, 0xFF, 0x37}}},
};
Gfx D_800E8D40[] = {
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetAlphaCompare(G_AC_NONE),
gsDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPVertex(D_800E8C40, 8, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(4, 7, 6, 0),
gsSP1Triangle(4, 6, 5, 0),
gsSP1Triangle(0, 4, 5, 0),
gsSP1Triangle(0, 5, 1, 0),
gsSP1Triangle(3, 7, 4, 0),
gsSP1Triangle(0, 3, 4, 0),
gsSP1Triangle(7, 3, 6, 0),
gsSP1Triangle(3, 2, 6, 0),
gsSP1Triangle(1, 5, 6, 0),
gsSP1Triangle(2, 1, 6, 0),
gsSPEndDisplayList(),
};
Gfx D_800E8DD0[] = {
gsSPClearGeometryMode(G_LIGHTING),
gsDPSetAlphaCompare(G_AC_NONE),
gsDPSetRenderMode(G_RM_AA_ZB_XLU_SURF, G_RM_AA_ZB_XLU_SURF2),
gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE),
gsSPVertex(D_800E8CC0, 8, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(4, 7, 6, 0),
gsSP1Triangle(4, 6, 5, 0),
gsSP1Triangle(0, 4, 5, 0),
gsSP1Triangle(0, 5, 1, 0),
gsSP1Triangle(3, 7, 4, 0),
gsSP1Triangle(0, 3, 4, 0),
gsSP1Triangle(7, 3, 6, 0),
gsSP1Triangle(3, 2, 6, 0),
gsSP1Triangle(1, 5, 6, 0),
gsSP1Triangle(2, 1, 6, 0),
gsSPEndDisplayList(),
};
-29
View File
@@ -1,29 +0,0 @@
#ifndef DATA_800E8700_H
#define DATA_800E8700_H
#include <ultra64.h>
extern Vtx D_800E8700[];
extern Vtx D_800E8740[];
extern Vtx D_800E8780[];
extern Vtx D_800E87C0[];
extern Vtx D_800E8800[];
extern Vtx D_800E8840[];
extern Vtx D_800E8880[];
extern Vtx D_800E88C0[];
extern Vtx D_800E8900[][4];
extern Vtx D_800E8A00[];
extern Vtx D_800E8A40[];
extern Vtx D_800E8A80[];
extern Vtx D_800E8AC0[];
extern Vtx D_800E8B00[];
extern Vtx D_800E8B40[];
extern Vtx D_800E8B80[];
extern Vtx D_800E8BC0[];
extern Vtx D_800E8C00[];
extern Vtx D_800E8C40[];
extern Vtx D_800E8CC0[];
extern Gfx D_800E8D40[];
extern Gfx D_800E8DD0[];
#endif
+1 -1
View File
@@ -3,7 +3,7 @@
#include <PR/ultratypes.h>
#include <PR/gbi.h>
#include "data_segment2.h"
#include "src/data/startup_logo.h"
#include <assets/startup_logo.h>"
Gfx D_02007650[] = {
gsDPPipeSync(),
-393
View File
@@ -1,393 +0,0 @@
#include "data/path_spawn_data.h"
#include "courses/all_course_data.h"
#include "ending/ceremony_data.h"
KartAIBehaviour *gKartAIBehaviourLUT[NUM_COURSES+1] = {
common_kart_ai_behaviour_mario_raceway,
common_kart_ai_behaviour_choco_mountain,
common_kart_ai_behaviour_bowser_castle,
common_kart_ai_behaviour_banshee_boardwalk,
common_kart_ai_behaviour_yoshi_valley,
common_kart_ai_behaviour_frappe_snowland,
common_kart_ai_behaviour_koopa_beach,
common_kart_ai_behaviour_royal_raceway,
common_kart_ai_behaviour_luigi_raceway,
common_kart_ai_behaviour_moo_moo_farm,
common_kart_ai_behaviour_toad_turnpike,
common_kart_ai_behaviour_kalamari_desert,
common_kart_ai_behaviour_sherbet_land,
common_kart_ai_behaviour_rainbow_road,
common_kart_ai_behaviour_wario_stadium,
common_kart_ai_behaviour_battle_courses, /* COURSE_BLOCK_FORT */
common_kart_ai_behaviour_battle_courses, /* COURSE_SKYSCRAPER */
common_kart_ai_behaviour_battle_courses, /* COURSE_DOUBLE_DECK */
common_kart_ai_behaviour_dk_jungle,
common_kart_ai_behaviour_battle_courses, /* COURSE_BIG_DONUT */
common_kart_ai_behaviour_battle_courses, /* COURSE_AWARD_CEREMONY */
NULL, /* NUM_COURSES */
};
TrackWaypoint nullPath = { 0x8000, 0x0000, 0x0000, 0x0000 };
TrackWaypoint *gCoursePathTable[][4] = {
{ d_course_mario_raceway_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_choco_mountain_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_bowsers_castle_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_banshee_boardwalk_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_yoshi_valley_unknown_waypoints0, d_course_yoshi_valley_unknown_waypoints1, d_course_yoshi_valley_unknown_waypoints2, d_course_yoshi_valley_unknown_waypoints3 },
{ d_course_frappe_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_koopa_troopa_beach_unknown_waypoints0, &nullPath, &nullPath, &nullPath },
{ d_course_royal_raceway_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_luigi_raceway_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_moo_moo_farm_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_toads_turnpike_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_kalimari_desert_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_sherbet_land_uknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_rainbow_road_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_wario_stadium_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ d_course_dks_jungle_parkway_unknown_waypoints, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ ending_sequence, ending_sequence2, ending_sequence3, ending_sequence4 },
};
TrackWaypoint *D_800DC8D0[][4] = {
{ d_course_mario_raceway_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_choco_mountain_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_bowsers_castle_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_banshee_boardwalk_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_yoshi_valley_track_waypoints0, d_course_yoshi_valley_track_waypoints1, d_course_yoshi_valley_track_waypoints2, d_course_yoshi_valley_track_waypoints3 },
{ d_course_frappe_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_koopa_troopa_beach_track_waypoints0, d_course_koopa_troopa_beach_track_waypoints1, &nullPath, &nullPath },
{ d_course_royal_raceway_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_luigi_raceway_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_moo_moo_farm_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_toads_turnpike_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_kalimari_desert_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_sherbet_land_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_rainbow_road_track_waypoints, &nullPath, &nullPath, &nullPath },
{ d_course_wario_staduim_track_waypoints, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ d_course_dks_jungle_parkway_track_waypoints, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
{ &nullPath, &nullPath, &nullPath, &nullPath },
};
s16 D_800DCA20[] = {
0x0030, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035, 0x0035,
0x0030, 0x0030, 0x0028, 0x0035, 0x0035, 0x0026, 0x0035, 0x0035,
0x0035, 0x0035, 0x0035, 0x0028, 0x0035, 0x0000,
};
f32 gKartAICourseMaximumWaypointSeparation[] = {
50.0, 35.0, 35.0, 40.0,
35.0, 50.0, 50.0, 50.0,
50.0, 50.0, 50.0, 50.0,
50.0, 50.0, 50.0, -1.0,
-1.0, -1.0, 40.0, -1.0,
40.0,
};
f32 gKartAICourseMinimumWaypointSeparation[] = {
0.3, 0.3, 0.2, 0.4,
0.0, 0.3, 0.5, 0.4,
0.7, 0.5, 0.5, 0.3,
0.3, 0.4, 0.6, 0.1,
0.5, 0.5, 0.1, 0.5,
0.5,
};
// I think the types for D_800DCAF4, D_800DCB34, and D_800DCBB4 are all
// wrong in some way based on their usage in func_800088D8
// But I cannot be bothered to figure it out
s16 D_800DCAF4[] = {
0x0014, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023,
0x001e, 0x0019, 0x0032, 0x004b, 0x0064, 0x007d, 0x0096, 0x00af,
0x0028, 0x001e, 0x003c, 0x005a, 0x0078, 0x0096, 0x00b4, 0x00d2,
0x0032, 0x0028, 0x0050, 0x0078, 0x00a0, 0x00c8, 0x00f0, 0x0118,
};
s16 D_800DCB34[] = {
0x0014, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023,
0x001e, 0x0019, 0x002d, 0x0041, 0x005a, 0x0073, 0x008c, 0x00a5,
0x0028, 0x0003, 0x0006, 0x0010, 0x002e, 0x0031, 0x003b, 0x0059,
0x0032, 0x001e, 0x003c, 0x003f, 0x0049, 0x004e, 0x006c, 0x008a,
0x000a, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023,
0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
};
s16 *D_800DCBB4[] = {
D_800DCB34, D_800DCAF4, D_800DCAF4, D_800DCAF4,
D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4,
D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4,
D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4,
D_800DCAF4, D_800DCAF4, D_800DCAF4, D_800DCAF4,
D_800DCAF4,
};
BombKartSpawn D_800DCC08[][NUM_BOMB_KARTS_MAX] = {
{
// Mario Raceway Bomb Kart spawns
{ 0x0028, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0109, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x011d, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01a4, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Choco Mountain Bomb Kart spawns
{ 0x008c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00a5, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x014a, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0226, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0253, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Bowser Castle Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0104, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01b3, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Banshee Boardwalk Bomb Kart spawns
{ 0x006e, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00be, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01db, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0262, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Yoshi Valley Bomb Kart spawns
{ 0x0000, 0x0000, 0.8333333, -1533.0, -682.0, -103.0, 0.0 },
{ 0x000a, 0x0000, 0.8333333, -1565.0, -619.0, -109.0, 0.0 },
{ 0x0014, 0x0000, 0.8333333, -1529.0, -579.0, -109.0, 0.0 },
{ 0x001e, 0x0000, 0.8333333, -1588.0, -534.0, -106.0, 0.0 },
{ 0x0028, 0x0000, 0.8333333, -1598.0, -207.0, -105.0, 0.0 },
{ 0x0032, 0x0000, 0.8333333, -1646.0, -147.0, -93.0, 0.0 },
{ 0x003c, 0x0000, 0.8333333, -2532.0, -445.0, -90.0, 0.0 },
},
{
// Frappe Snowland Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0122, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x015e, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Koopa Troopa Beach Bomb Kart spawns
{ 0x003c, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0078, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0118, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01b3, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Royal Raceway Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0128, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0190, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x02ea, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Luigi Raceway Bomb Kart spawns
{ 0x0032, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0131, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01b8, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0203, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Moo Moo Farm Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x008c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00e1, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x013c, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01b2, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Toads Turnpike Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Kalamari Desert Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x008a, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0118, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0194, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x01fe, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Sherbet Land Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Rainbow Road Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Wario Stadium Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00c8, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Block Fort Bomb Kart spawns
{ 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
},
{
// Skyscraper Bomb Kart spawns
{ 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
},
{
// Double Deck Bomb Kart spawns
{ 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
},
{
// DK Jungle Bomb Kart spawns
{ 0x0032, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0096, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00be, 0x0001, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x00fa, 0x0003, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
{ 0x0000, 0x0000, 0.8333333, 0.0, 0.0, 0.0, 0.0 },
},
{
// Big Donut Bomb Kart spawns
{ 0x0014, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
},
{
// Award Ceremony Bomb Kart spawns
{ 0x0003, 0x0005, 1.250000, 0.0, 0.0, 0.0, 0.0 },
{ 0x0028, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x003c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0050, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0064, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x0078, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
{ 0x008c, 0x0000, 1.0, 0.0, 0.0, 0.0, 0.0 },
},
};
struct _struct_D_800DD9D0_0x10 D_800DD9D0[] = {
{ 0x0258, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02bc, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x030c, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02ee, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02b2, 0x02a8, 0x02b2, 0x0320, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02ee, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02bc, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x03e8, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02da, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x0230, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x03e8, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x02bc, 0x0001, 0x0001, 0x0001, 0x0226, { 0x0000, 0x0000, 0x0000}},
{ 0x02bc, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x076c, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x0640, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x0370, 0x0001, 0x0001, 0x0001, 0x01f4, { 0x0000, 0x0000, 0x0000}},
{ 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, { 0x0000, 0x0000, 0x0000}},
{ 0x01f4, 0x01f4, 0x01f4, 0x01f4, 0x0001, { 0x0000, 0x0000, 0x0000}},
};
s32 D_800DDB20 = 0x00000000;
s32 D_800DDB24 = 0x00000001;
-33
View File
@@ -1,33 +0,0 @@
#ifndef PATH_SPAWN_DATA_H
#define PATH_SPAWN_DATA_H
#include "waypoints.h"
#include "common_structs.h"
#include "common_textures.h"
#include "include/bomb_kart.h"
struct _struct_D_800DD9D0_0x10 {
/* 0x00 */ u16 unk0;
/* 0x02 */ u16 unk2;
/* 0x04 */ u16 unk4;
/* 0x06 */ u16 unk6;
/* 0x08 */ u16 unk8;
/* 0x0A */ char padA[6];
}; // size 0x10
extern KartAIBehaviour *gKartAIBehaviourLUT[NUM_COURSES+1];
extern TrackWaypoint nullPath;
extern TrackWaypoint *gCoursePathTable[][4];
extern TrackWaypoint *D_800DC8D0[][4];
extern s16 D_800DCA20[];
extern f32 gKartAICourseMaximumWaypointSeparation[];
extern f32 gKartAICourseMinimumWaypointSeparation[];
extern s16 D_800DCAF4[];
extern s16 D_800DCB34[];
extern s16 *D_800DCBB4[];
extern BombKartSpawn D_800DCC08[][NUM_BOMB_KARTS_MAX];
extern struct _struct_D_800DD9D0_0x10 D_800DD9D0[];
extern s32 D_800DDB20;
extern s32 D_800DDB24;
#endif
+73
View File
@@ -0,0 +1,73 @@
#include "data/path_spawn_metadata.h"
#include "courses/all_course_data.h"
#include <assets/ceremony_data.h>
// @warning Array contains an extra zero element at the end.
KartAIBehaviour *gKartAIBehaviourLUT[] = {
#include "assets/course_metadata/gKartAIBehaviourLUT.inc.c"
};
TrackWaypoint nullPath = { 0x8000, 0x0000, 0x0000, 0x0000 };
TrackWaypoint *gCoursePathTable[][4] = {
#include "assets/course_metadata/gCoursePathTableUnknown.inc.c"
};
TrackWaypoint *gCoursePathTable2[][4] = {
#include "assets/course_metadata/gCoursePathTable.inc.c"
};
// @warning Array contains an extra zero element at the end.
s16 gKartAISteeringSensitivity[] = {
#include "assets/course_metadata/gCPUSteeringSensitivity.inc.c"
};
// Possibly maximum cpu separation
f32 gKartAICourseMaximumSeparation[] = {
#include "assets/course_metadata/gKartAICourseMaximumSeparation.inc.c"
};
// Possibly minimum cpu separation
f32 gKartAICourseMinimumSeparation[] = {
#include "assets/course_metadata/gKartAICourseMinimumSeparation.inc.c"
};
// I think the types for D_800DCAF4, D_800DCB34, and D_800DCBB4 are all
// wrong in some way based on their usage in func_800088D8
// But I cannot be bothered to figure it out
// Used as a ptr in D_800DCBB4
s16 D_800DCAF4[] = {
0x0014, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023,
0x001e, 0x0019, 0x0032, 0x004b, 0x0064, 0x007d, 0x0096, 0x00af,
0x0028, 0x001e, 0x003c, 0x005a, 0x0078, 0x0096, 0x00b4, 0x00d2,
0x0032, 0x0028, 0x0050, 0x0078, 0x00a0, 0x00c8, 0x00f0, 0x0118,
};
// Used as a ptr in D_800DCBB4
s16 D_800DCB34[] = {
0x0014, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023,
0x001e, 0x0019, 0x002d, 0x0041, 0x005a, 0x0073, 0x008c, 0x00a5,
0x0028, 0x0003, 0x0006, 0x0010, 0x002e, 0x0031, 0x003b, 0x0059,
0x0032, 0x001e, 0x003c, 0x003f, 0x0049, 0x004e, 0x006c, 0x008a,
0x000a, 0x0005, 0x000a, 0x000f, 0x0014, 0x0019, 0x001e, 0x0023,
0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
0x000a, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005,
};
s16 *D_800DCBB4[] = {
#include "assets/course_metadata/D_800DCBB4.inc.c"
};
BombKartSpawn gBombKartSpawns[][NUM_BOMB_KARTS_MAX] = {
#include "assets/course_metadata/gBombKartSpawns.inc.c"
};
struct _struct_gCoursePathSizes_0x10 gCoursePathSizes[] = {
#include "assets/course_metadata/gCoursePathSizes.inc.c"
};
s32 D_800DDB20 = 0x00000000;
s32 D_800DDB24 = 0x00000001;
+33
View File
@@ -0,0 +1,33 @@
#ifndef PATH_SPAWN_METADATA_H
#define PATH_SPAWN_METADATA_H
#include "waypoints.h"
#include "common_structs.h"
#include <assets/common_data.h>
#include "include/bomb_kart.h"
struct _struct_gCoursePathSizes_0x10 {
/* 0x00 */ u16 unk0;
/* 0x02 */ u16 unk2;
/* 0x04 */ u16 unk4;
/* 0x06 */ u16 unk6;
/* 0x08 */ u16 unk8;
/* 0x0A */ char padA[6];
}; // size 0x10
extern KartAIBehaviour *gKartAIBehaviourLUT[];
extern TrackWaypoint nullPath;
extern TrackWaypoint *gCoursePathTable[][4];
extern TrackWaypoint *gCoursePathTable2[][4];
extern s16 gKartAISteeringSensitivity[];
extern f32 gKartAICourseMaximumSeparation[];
extern f32 gKartAICourseMinimumSeparation[];
extern s16 D_800DCAF4[];
extern s16 D_800DCB34[];
extern s16 *D_800DCBB4[];
extern BombKartSpawn gBombKartSpawns[][NUM_BOMB_KARTS_MAX];
extern struct _struct_gCoursePathSizes_0x10 gCoursePathSizes[];
extern s32 D_800DDB20;
extern s32 D_800DDB24;
#endif
File diff suppressed because it is too large Load Diff
-33
View File
@@ -1,33 +0,0 @@
#ifndef STARTUP_LOGO_H
#define STARTUP_LOGO_H
extern Vtx startup_logo[];
extern Gfx startup_logo_dl[];
extern Gfx startup_logo_dl2[];
extern Gfx startup_logo_dl3[];
extern Gfx startup_logo_dl4[];
extern Gfx startup_logo_dl5[];
extern Gfx startup_logo_dl6[];
extern Gfx startup_logo_dl7[];
extern Gfx startup_logo_dl8[];
extern Vtx startup_logo2[];
extern Gfx startup_logo_dl9[];
extern Gfx startup_logo_dl10[];
extern Gfx startup_logo_dl11[];
extern Gfx startup_logo_dl12[];
extern Gfx startup_logo_dl13[];
extern Gfx startup_logo_dl14[];
extern Gfx startup_logo_dl15[];
extern Gfx startup_logo_dl16[];
extern Gfx startup_logo_dl17[];
extern Gfx startup_logo_dl18[];
extern Gfx startup_logo_dl19[];
extern Gfx startup_logo_dl20[];
extern u8 reflection_map_gold[2048];
extern Gfx startup_texture_dl1[];
extern Lights1 lights;
extern Gfx startup_texture_dl2[];
extern Gfx startup_texture_dl3[];
extern Gfx startup_texture_dl4[];
#endif
+1 -1
View File
@@ -30,7 +30,7 @@
#include <code_80281780.h>
#include <code_80281C40.h>
#include <collision.h>
#include <common_textures.h>
#include <assets/common_data.h>
#include <credits.h>
#include <data_segment2.h>
#include <buffers.h>
File diff suppressed because it is too large Load Diff
-56
View File
@@ -1,56 +0,0 @@
#ifndef CEREMONY_DATA_H
#define CEREMONY_DATA_H
#include <types.h>
#include "waypoints.h"
extern Vtx silver_trophy_model[];
extern Gfx silver_trophy_dl[];
extern Gfx silver_trophy_dl2[];
extern Gfx silver_trophy_dl3[];
extern Gfx silver_trophy_dl4[];
extern Gfx silver_trophy_dl5[];
extern Gfx silver_trophy_dl6[];
extern Vtx gold_trophy_model[];
extern u8 reflection_map_brass[];
extern u8 reflection_map_silver[];
extern u8 reflection_map_gold[];
extern Gfx gold_trophy_dl[];
extern Gfx gold_trophy_dl2[];
extern Gfx gold_trophy_dl3[];
extern Gfx gold_trophy_dl4[];
extern Gfx gold_trophy_dl5[];
extern Gfx gold_trophy_dl6[];
extern Gfx gold_trophy_dl7[];
extern Gfx gold_trophy_dl8[];
extern Gfx gold_trophy_dl9[];
extern Gfx gold_trophy_dl10[];
extern Gfx gold_trophy_dl11[];
extern Gfx gold_trophy_dl12[];
extern Gfx gold_trophy_dl13[];
extern Gfx gold_trophy_dl14[];
extern Gfx gold_trophy_dl15[];
extern Lights1 light1;
extern u8 texture_podium1[];
extern Vtx tall_podium_model[];
extern Gfx podium_dl[];
extern Gfx podium_dl2[];
extern Gfx podium_dl3[];
extern Vtx short_podium_model[];
extern Lights1 light2;
extern u8 texture_podium2[];
extern Gfx podium2_dl[];
extern Gfx podium2_dl2[];
extern Gfx podium2_dl3[];
extern Lights1 light3;
extern u8 texture_podium3[];
extern Vtx short_podium_model2[];
extern Gfx podium3_dl[];
extern Gfx podium3_dl2[];
extern Gfx podium3_dl3[];
extern TrackWaypoint ending_sequence[];
extern TrackWaypoint ending_sequence2[];
extern TrackWaypoint ending_sequence3[];
extern TrackWaypoint ending_sequence4[];
#endif
+1 -1
View File
@@ -7,7 +7,7 @@
#include <common_structs.h>
#include "main.h"
#include "memory.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "render_player.h"
#include "render_objects.h"
#include "podium_ceremony_actors.h"
+2 -2
View File
@@ -1047,7 +1047,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
{
if (btnAndStick & R_JPAD) {
play_sound2(SOUND_MENU_CURSOR_MOVE);
if (gCurrentCourseId < 0x13) {
if (gCurrentCourseId < (NUM_COURSES - 2)) {
gCurrentCourseId += 1;
} else {
gCurrentCourseId = 0;
@@ -1058,7 +1058,7 @@ void splash_menu_act(struct Controller *controller, u16 arg1) {
if (gCurrentCourseId > 0) {
gCurrentCourseId -= 1;
} else {
gCurrentCourseId = 0x13;
gCurrentCourseId = (NUM_COURSES - 2);
}
}
if (btnAndStick & U_JPAD) {
+1 -1
View File
@@ -21,7 +21,7 @@
#include "effects.h"
#include "collision.h"
#include "audio/external.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "courses/all_course_data.h"
#include "main.h"
#include "data/other_textures.h"
+1
View File
@@ -16,6 +16,7 @@
// Here to appease the pragma gods
double fabs(double x);
void func_802B5794(Mat4, Vec3f, Vec3f);
s32 func_802B4F60(s32, Vec3f, s32, f32, f32);
s32 render_set_position(Mat4, s32);
f32 func_802B51E8(Vec3f, Vec3f);
+50 -57
View File
@@ -9,7 +9,7 @@
#include <common_structs.h>
#include "memory.h"
#include "camera.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "render_player.h"
#include "code_80057C60.h"
#include "code_80091750.h"
@@ -318,52 +318,37 @@ s32 D_802B8A90[] = {
0xba001402, 0x00000000, 0xb8000000, 0x00000000,
};
struct Skybox sSkyColors[21] = {
{128, 4280, 6136, 216, 7144, 32248},
{255, 255, 255, 255, 255, 255},
{48, 1544, 49528, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{113, 70, 255, 255, 184, 99},
{28, 11, 90, 0, 99, 164},
{48, 1688, 54136, 216, 7144, 32248},
{238, 144, 255, 255, 224, 240},
{128, 4280, 6136, 216, 7144, 32248},
{0, 18, 255, 197, 211, 255},
{0, 2, 94, 209, 65, 23},
{195, 231, 255, 255, 0xc0, 0},
{128, 4280, 6136, 216, 7144, 32248},
{0, 0, 0, 0, 0, 0},
{20, 30, 56, 40, 60, 110},
{128, 4280, 6136, 216, 7144, 32248},
{0, 0, 0, 0, 0, 0},
{113, 70, 255, 255, 184, 99},
{255, 174, 0, 255, 229, 124},
{0, 0, 0, 0, 0, 0},
{238, 144, 255, 255, 224, 240},
struct Skybox sSkyColors[] = {
#include "assets/course_metadata/sSkyColors.inc.c"
};
struct Skybox D_802B8BCC[21] = {
{0, 0, 0, 0, 0, 0},
{255, 255, 255, 255, 255, 255},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{95, 40, 15, 0, 0, 0},
{0, 99, 164, 0, 0, 0},
{48, 1688, 54136, 0, 0, 0},
{255, 224, 240, 0, 0, 0},
{216, 7144, 32248, 0, 0, 0},
{255, 184, 99, 0, 0, 0},
{209, 65, 23, 0, 0, 0},
{255, 192, 0, 0, 0, 0},
{216, 7144, 32248, 128, 4280, 6136},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{216, 7144, 32248, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{255, 224, 240, 0, 0, 0},
{22, 145, 22, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{255, 224, 240, 0, 0, 0},
// struct Skybox sSkyColors[] = {
// {128, 4280, 6136, 216, 7144, 32248},
// {255, 255, 255, 255, 255, 255},
// {48, 1544, 49528, 0, 0, 0},
// {0, 0, 0, 0, 0, 0},
// {113, 70, 255, 255, 184, 99},
// {28, 11, 90, 0, 99, 164},
// {48, 1688, 54136, 216, 7144, 32248},
// {238, 144, 255, 255, 224, 240},
// {128, 4280, 6136, 216, 7144, 32248},
// {0, 18, 255, 197, 211, 255},
// {0, 2, 94, 209, 65, 23},
// {195, 231, 255, 255, 0xc0, 0},
// {128, 4280, 6136, 216, 7144, 32248},
// {0, 0, 0, 0, 0, 0},
// {20, 30, 56, 40, 60, 110},
// {128, 4280, 6136, 216, 7144, 32248},
// {0, 0, 0, 0, 0, 0},
// {113, 70, 255, 255, 184, 99},
// {255, 174, 0, 255, 229, 124},
// {0, 0, 0, 0, 0, 0},
// {238, 144, 255, 255, 224, 240},
// };
struct Skybox sSkyColors2[] = {
#include "assets/course_metadata/sSkyColors2.inc.c"
};
void func_802A450C(Vtx *skybox) {
@@ -415,18 +400,18 @@ void func_802A450C(Vtx *skybox) {
skybox[3].v.cn[0] = sSkyColors[gCurrentCourseId].unk0;
skybox[3].v.cn[1] = sSkyColors[gCurrentCourseId].unk2;
skybox[3].v.cn[2] = sSkyColors[gCurrentCourseId].unk4;
skybox[4].v.cn[0] = D_802B8BCC[gCurrentCourseId].unk0;
skybox[4].v.cn[1] = D_802B8BCC[gCurrentCourseId].unk2;
skybox[4].v.cn[2] = D_802B8BCC[gCurrentCourseId].unk4;
skybox[5].v.cn[0] = D_802B8BCC[gCurrentCourseId].unk6;
skybox[5].v.cn[1] = D_802B8BCC[gCurrentCourseId].unk8;
skybox[5].v.cn[2] = D_802B8BCC[gCurrentCourseId].unkA;
skybox[6].v.cn[0] = D_802B8BCC[gCurrentCourseId].unk6;
skybox[6].v.cn[1] = D_802B8BCC[gCurrentCourseId].unk8;
skybox[6].v.cn[2] = D_802B8BCC[gCurrentCourseId].unkA;
skybox[7].v.cn[0] = D_802B8BCC[gCurrentCourseId].unk0;
skybox[7].v.cn[1] = D_802B8BCC[gCurrentCourseId].unk2;
skybox[7].v.cn[2] = D_802B8BCC[gCurrentCourseId].unk4;
skybox[4].v.cn[0] = sSkyColors2[gCurrentCourseId].unk0;
skybox[4].v.cn[1] = sSkyColors2[gCurrentCourseId].unk2;
skybox[4].v.cn[2] = sSkyColors2[gCurrentCourseId].unk4;
skybox[5].v.cn[0] = sSkyColors2[gCurrentCourseId].unk6;
skybox[5].v.cn[1] = sSkyColors2[gCurrentCourseId].unk8;
skybox[5].v.cn[2] = sSkyColors2[gCurrentCourseId].unkA;
skybox[6].v.cn[0] = sSkyColors2[gCurrentCourseId].unk6;
skybox[6].v.cn[1] = sSkyColors2[gCurrentCourseId].unk8;
skybox[6].v.cn[2] = sSkyColors2[gCurrentCourseId].unkA;
skybox[7].v.cn[0] = sSkyColors2[gCurrentCourseId].unk0;
skybox[7].v.cn[1] = sSkyColors2[gCurrentCourseId].unk2;
skybox[7].v.cn[2] = sSkyColors2[gCurrentCourseId].unk4;
}
void func_802A487C(Vtx *arg0, UNUSED struct UnkStruct_800DC5EC *arg1, UNUSED s32 arg2, UNUSED s32 arg3, UNUSED f32 *arg4) {
@@ -831,7 +816,11 @@ void render_player_one_2p_screen_vertical(void) {
UNUSED s32 pad[2];
u16 perspNorm;
Mat4 matrix;
#ifdef VERSION_EU
f32 sp9C;
#else
UNUSED f32 sp9C;
#endif
func_802A50EC();
#ifdef VERSION_EU
@@ -888,7 +877,11 @@ void render_player_two_2p_screen_vertical(void) {
UNUSED s32 pad[2];
u16 perspNorm;
Mat4 matrix;
#ifdef VERSION_EU
f32 sp9C;
#else
UNUSED f32 sp9C;
#endif
func_802A5004();
init_rdp();
+2 -2
View File
@@ -16,7 +16,7 @@
#include "objects.h"
#include "waypoints.h"
#include "bomb_kart.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "render_player.h"
#include "code_80004740.h"
#include "code_80005FD0.h"
@@ -30,7 +30,7 @@
#include "menus.h"
#include "code_80086E70.h"
#include "code_800029B0.h"
#include "src/data/data_800E45C0.h"
#include <assets/data_800E45C0.h>
#include "courses/all_course_data.h"
#include <vehicles.h>
#include "data/some_data.h"
+60 -37
View File
@@ -17,7 +17,7 @@
#include "waypoints.h"
#include "player_controller.h"
#include "render_objects.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "skybox_and_splitscreen.h"
#include "spawn_players.h"
@@ -705,44 +705,67 @@ void mtxf_scale2(Mat4 arg0, f32 scale) {
arg0[2][2] *= scale;
}
UNUSED void func_80021FF8(Mtx *arg0, Mat4 arg1) {
f32 someMultiplier = 65536.0f;
arg0->m[0][0] = arg1[0][0] * someMultiplier;
arg0->m[0][1] = arg1[0][1] * someMultiplier;
arg0->m[0][2] = arg1[0][2] * someMultiplier;
arg0->m[0][3] = arg1[0][3] * someMultiplier;
arg0->m[1][0] = arg1[1][0] * someMultiplier;
arg0->m[1][1] = arg1[1][1] * someMultiplier;
arg0->m[1][2] = arg1[1][2] * someMultiplier;
arg0->m[1][3] = arg1[1][3] * someMultiplier;
arg0->m[2][0] = arg1[2][0] * someMultiplier;
arg0->m[2][1] = arg1[2][1] * someMultiplier;
arg0->m[2][2] = arg1[2][2] * someMultiplier;
arg0->m[2][3] = arg1[2][3] * someMultiplier;
arg0->m[3][0] = arg1[3][0] * someMultiplier;
arg0->m[3][1] = arg1[3][1] * someMultiplier;
arg0->m[3][2] = arg1[3][2] * someMultiplier;
arg0->m[3][3] = arg1[3][3] * someMultiplier;
/**
* This function writes a fixed-point value to each Mtx entry. This is not how the Mtx struct works.
* The first half of Mtx only holds s16 whole numbers and the second half holds the s16 decimal (fractional) parts.
* See convert_to_fixed_point_matrix() for correct calculations. Note that each Mtx entry is the size of s32.
* This means each Mtx entry holds two s16 values.
* The first sixteen entries contain only the integer parts and the second sixteen entries hold only the decimal (fractional) parts.
*/
UNUSED void failed_fixed_point_matrix_conversion(Mtx *dest, Mat4 src) {
f32 toFixed = 65536.0f;
dest->m[0][0] = src[0][0] * toFixed;
dest->m[0][1] = src[0][1] * toFixed;
dest->m[0][2] = src[0][2] * toFixed;
dest->m[0][3] = src[0][3] * toFixed;
dest->m[1][0] = src[1][0] * toFixed;
dest->m[1][1] = src[1][1] * toFixed;
dest->m[1][2] = src[1][2] * toFixed;
dest->m[1][3] = src[1][3] * toFixed;
dest->m[2][0] = src[2][0] * toFixed;
dest->m[2][1] = src[2][1] * toFixed;
dest->m[2][2] = src[2][2] * toFixed;
dest->m[2][3] = src[2][3] * toFixed;
dest->m[3][0] = src[3][0] * toFixed;
dest->m[3][1] = src[3][1] * toFixed;
dest->m[3][2] = src[3][2] * toFixed;
dest->m[3][3] = src[3][3] * toFixed;
}
void convert_to_fixed_point_matrix(Mtx *fixedPointMatrix, Mat4 arg1) {
f32 someMultiplier = 65536.0f;
fixedPointMatrix->m[0][0] = ((s32) (arg1[0][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[0][1] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[0][1] = ((s32) (arg1[0][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[0][3] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[0][2] = ((s32) (arg1[1][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[1][1] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[0][3] = ((s32) (arg1[1][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[1][3] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[1][0] = ((s32) (arg1[2][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[2][1] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[1][1] = ((s32) (arg1[2][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[2][3] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[1][2] = ((s32) (arg1[3][0] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[3][1] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[1][3] = ((s32) (arg1[3][2] * someMultiplier) & 0xFFFF0000) | (((s32) (arg1[3][3] * someMultiplier) >> 0x10) & 0xFFFF);
fixedPointMatrix->m[2][0] = ((s32) (arg1[0][0] * someMultiplier) << 0x10) | ((s32) (arg1[0][1] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[2][1] = ((s32) (arg1[0][2] * someMultiplier) << 0x10) | ((s32) (arg1[0][3] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[2][2] = ((s32) (arg1[1][0] * someMultiplier) << 0x10) | ((s32) (arg1[1][1] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[2][3] = ((s32) (arg1[1][2] * someMultiplier) << 0x10) | ((s32) (arg1[1][3] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[3][0] = ((s32) (arg1[2][0] * someMultiplier) << 0x10) | ((s32) (arg1[2][1] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[3][1] = ((s32) (arg1[2][2] * someMultiplier) << 0x10) | ((s32) (arg1[2][3] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[3][2] = ((s32) (arg1[3][0] * someMultiplier) << 0x10) | ((s32) (arg1[3][1] * someMultiplier) & 0xFFFF);
fixedPointMatrix->m[3][3] = ((s32) (arg1[3][2] * someMultiplier) << 0x10) | ((s32) (arg1[3][3] * someMultiplier) & 0xFFFF);
/**
* Takes a floating-point matrix and converts it to an s15.16 internal matrix.
* Each Mtx entry is a size of s32 that holds two values.
* The first 16 entries hold only the integer values and the second 16 entries hold only the decimal (fractional) parts.
* In simpler words, the integer and decimal gets split up and stored in their own section.
* Mtx is setup this way due to hardware restrictions of the n64 or as an optimization.
*
* @param Mtx A new internal fixed-point matrix.
* @param Mat4 An array of f32
* Mat4 to Mtx explanation: https://blarg.ca/2020/10/11/fixed-point-math.
*/
void convert_to_fixed_point_matrix(Mtx *dest, Mat4 src) {
#ifdef AVOID_UB
// Use os function guMtxF2L instead. This helps little-endian systems.
guMtxF2L(src, dest);
#else
f32 toFixed = 65536.0f; // 2 ^ 16
dest->m[0][0] = ((s32) (src[0][0] * toFixed) & 0xFFFF0000) | (((s32) (src[0][1] * toFixed) >> 0x10) & 0xFFFF);
dest->m[0][1] = ((s32) (src[0][2] * toFixed) & 0xFFFF0000) | (((s32) (src[0][3] * toFixed) >> 0x10) & 0xFFFF);
dest->m[0][2] = ((s32) (src[1][0] * toFixed) & 0xFFFF0000) | (((s32) (src[1][1] * toFixed) >> 0x10) & 0xFFFF);
dest->m[0][3] = ((s32) (src[1][2] * toFixed) & 0xFFFF0000) | (((s32) (src[1][3] * toFixed) >> 0x10) & 0xFFFF);
dest->m[1][0] = ((s32) (src[2][0] * toFixed) & 0xFFFF0000) | (((s32) (src[2][1] * toFixed) >> 0x10) & 0xFFFF);
dest->m[1][1] = ((s32) (src[2][2] * toFixed) & 0xFFFF0000) | (((s32) (src[2][3] * toFixed) >> 0x10) & 0xFFFF);
dest->m[1][2] = ((s32) (src[3][0] * toFixed) & 0xFFFF0000) | (((s32) (src[3][1] * toFixed) >> 0x10) & 0xFFFF);
dest->m[1][3] = ((s32) (src[3][2] * toFixed) & 0xFFFF0000) | (((s32) (src[3][3] * toFixed) >> 0x10) & 0xFFFF);
dest->m[2][0] = ((s32) (src[0][0] * toFixed) << 0x10) | ((s32) (src[0][1] * toFixed) & 0xFFFF);
dest->m[2][1] = ((s32) (src[0][2] * toFixed) << 0x10) | ((s32) (src[0][3] * toFixed) & 0xFFFF);
dest->m[2][2] = ((s32) (src[1][0] * toFixed) << 0x10) | ((s32) (src[1][1] * toFixed) & 0xFFFF);
dest->m[2][3] = ((s32) (src[1][2] * toFixed) << 0x10) | ((s32) (src[1][3] * toFixed) & 0xFFFF);
dest->m[3][0] = ((s32) (src[2][0] * toFixed) << 0x10) | ((s32) (src[2][1] * toFixed) & 0xFFFF);
dest->m[3][1] = ((s32) (src[2][2] * toFixed) << 0x10) | ((s32) (src[2][3] * toFixed) & 0xFFFF);
dest->m[3][2] = ((s32) (src[3][0] * toFixed) << 0x10) | ((s32) (src[3][1] * toFixed) & 0xFFFF);
dest->m[3][3] = ((s32) (src[3][2] * toFixed) << 0x10) | ((s32) (src[3][3] * toFixed) & 0xFFFF);
#endif
}
bool adjust_angle(s16 *angle, s16 targetAngle, s16 step) {
+1 -1
View File
@@ -30,7 +30,7 @@ void func_80021DA8(void);
void mtxf_translate_rotate(Mat4, Vec3f, Vec3s);
void func_80021F50(Mat4, Vec3f);
void mtxf_scale2(Mat4, f32);
void func_80021FF8(Mtx*, Mat4);
void failed_fixed_point_matrix_conversion(Mtx*, Mat4);
void convert_to_fixed_point_matrix(Mtx*, Mat4);
s32 adjust_angle(s16*, s16, s16);
void move_s32_towards(s32*, s32, f32);
+2 -2
View File
@@ -17,7 +17,7 @@
#include "code_80057C60.h"
#include "code_8006E9C0.h"
#include "code_80086E70.h"
#include "common_textures.h"
#include <assets/common_data.h>
#include "audio/external.h"
#include "sounds.h"
#include <actors.h>
@@ -28,7 +28,7 @@
#include "code_80091750.h"
#include "podium_ceremony_actors.h"
#include "courses/all_course_data.h"
#include "src/ending/ceremony_data.h"
#include <assets/ceremony_data.h>
#include "src/ending/ceremony_and_credits.h"
#include "menus.h"
#include "data/other_textures.h"