I trust this

This commit is contained in:
Fazana
2022-05-02 12:41:29 +01:00
parent 9ff65880bb
commit 5cf19c00b2
12 changed files with 40 additions and 83 deletions
+4 -1
View File
@@ -6,7 +6,9 @@
typedef enum Vehicle {
VEHICLE_CAR,
VEHICLE_HOVERCRAFT,
VEHICLE_PLANE
VEHICLE_PLANE,
NUMBER_OF_VEHICLE_TYPES
} Vehicle;
typedef enum Language {
@@ -33,6 +35,7 @@ typedef enum RaceType {
RACETYPE_CUTSCENE_1 = 6, // Not sure what the difference between these two are.
RACETYPE_CUTSCENE_2 = 7,
RACETYPE_BOSS = 8,
RACETYPE_CHALLENGE = 64, // For masking
RACETYPE_CHALLENGE_BATTLE = 64,
RACETYPE_CHALLENGE_BANANAS = 65,
RACETYPE_CHALLENGE_EGGS = 66
+1
View File
@@ -4,6 +4,7 @@
/* Note: Structs are not complete, take them with a grain of salt. */
#include "types.h"
#include "enums.h"
/* Size: 0x20 bytes */
typedef struct MenuElement {
-24
View File
@@ -34,30 +34,6 @@ enum DialogueFlags {
DIALOGUE_BOX_UNUSED_02 = 0xFFFE,
};
typedef enum HorizontalAlignmentFlags {
HORZ_ALIGN_LEFT = 0,
HORZ_ALIGN_RIGHT = 1,
HORZ_ALIGN_CENTER = 4,
} HorizontalAlignmentFlags;
typedef enum VerticalAlignmentFlags {
VERT_ALIGN_TOP = 0,
VERT_ALIGN_BOTTOM = 2,
VERT_ALIGN_MIDDLE = 8,
} VerticalAlignmentFlags;
typedef enum AlignmentFlags {
ALIGN_TOP_LEFT = VERT_ALIGN_TOP | HORZ_ALIGN_LEFT,
ALIGN_TOP_CENTER = VERT_ALIGN_TOP | HORZ_ALIGN_CENTER,
ALIGN_TOP_RIGHT = VERT_ALIGN_TOP | HORZ_ALIGN_RIGHT,
ALIGN_MIDDLE_LEFT = VERT_ALIGN_MIDDLE | HORZ_ALIGN_LEFT,
ALIGN_MIDDLE_CENTER = VERT_ALIGN_MIDDLE | HORZ_ALIGN_CENTER,
ALIGN_MIDDLE_RIGHT = VERT_ALIGN_MIDDLE | HORZ_ALIGN_RIGHT,
ALIGN_BOTTOM_LEFT = VERT_ALIGN_BOTTOM | HORZ_ALIGN_LEFT,
ALIGN_BOTTOM_CENTER = VERT_ALIGN_BOTTOM | HORZ_ALIGN_CENTER,
ALIGN_BOTTOM_RIGHT = VERT_ALIGN_BOTTOM | HORZ_ALIGN_RIGHT,
} AlignmentFlags;
/* Size: 0x20 bytes */
typedef struct unk8012A7EC {
u8 unk0;
+3 -3
View File
@@ -643,21 +643,21 @@ u8 *get_level_name(s32 levelId) {
levelName = gLevelNames[levelId];
switch (get_language()) {
case GERMAN:
case LANGUAGE_GERMAN:
while (numberOfNullPointers < 1) {
if (*(levelName++) == 0) {
numberOfNullPointers++;
}
}
break;
case FRENCH:
case LANGUAGE_FRENCH:
while (numberOfNullPointers < 2) {
if (*(levelName++) == 0) {
numberOfNullPointers++;
}
}
break;
case JAPANESE:
case LANGUAGE_JAPANESE:
while (numberOfNullPointers < 3) {
if (*(levelName++) == 0) {
numberOfNullPointers++;
-20
View File
@@ -33,26 +33,6 @@ enum NumberOfPlayers {
FOUR_PLAYERS = 3
};
enum Vehicle {
VEHICLE_CAR,
VEHICLE_HOVERCRAFT,
VEHICLE_PLANE,
NUMBER_OF_VEHICLE_TYPES,
};
enum RaceType {
RACE_TYPE_DEFAULT = 0,
RACE_TYPE_HUB_AREA = 5,
RACE_TYPE_CUTSCENE_1 = 6,
RACE_TYPE_CUTSCENE_2 = 7,
RACE_TYPE_BOSS = 8,
RACE_TYPE_CHALLENGE = 0x40, // For masking
RACE_TYPE_CHALLENGE_BATTLE = 0x40,
RACE_TYPE_CHALLENGE_BANANAS = 0x41,
RACE_TYPE_CHALLENGE_EGGS = 0x42
};
extern s8 *D_800DD310;
extern s8 D_800DD314;
extern u8 D_800DD318;
+14 -14
View File
@@ -1506,13 +1506,13 @@ void load_menu_text(s32 language) {
}
switch (language) {
case JAPANESE:
case LANGUAGE_JAPANESE:
langIndex = 4;
break;
case GERMAN:
case LANGUAGE_GERMAN:
langIndex = 3;
break;
case FRENCH:
case LANGUAGE_FRENCH:
langIndex = 2;
break;
default: // English
@@ -1706,7 +1706,7 @@ void func_80081218(void) {
gCheatsAssetData = get_misc_asset(0x41);
gNumberOfCheats = (s32)(*gCheatsAssetData);
gMenuText = allocate_from_main_pool_safe(1024 * sizeof(char *), COLOUR_TAG_WHITE);
load_menu_text(ENGLISH);
load_menu_text(LANGUAGE_ENGLISH);
for (i = 0; i < 128; i++) {
D_80126550[i] = NULL;
}
@@ -2445,10 +2445,10 @@ s32 menu_options_loop(s32 arg0) {
} else if (D_800DF460 == 0 && analogX != 0) {
// Change language
s32 currentLang = get_language();
if ((currentLang >> 31) == 0 && currentLang == ENGLISH) {
set_language(FRENCH);
if ((currentLang >> 31) == 0 && currentLang == LANGUAGE_ENGLISH) {
set_language(LANGUAGE_FRENCH);
} else {
set_language(ENGLISH);
set_language(LANGUAGE_ENGLISH);
}
func_80001D04(0xEB, 0);
} else if (D_800DF460 == 1 && analogX != 0) {
@@ -6983,16 +6983,16 @@ u64 get_eeprom_settings(void) {
* 0 = English, 1 = German, 2 = French, 3 = Japanese
*/
s32 get_language(void) {
s32 language = ENGLISH;
s32 language = LANGUAGE_ENGLISH;
switch (sEepromSettings & 0xC) {
case 4:
language = GERMAN;
language = LANGUAGE_GERMAN;
break;
case 8:
language = FRENCH;
language = LANGUAGE_FRENCH;
break;
case 12:
language = JAPANESE;
language = LANGUAGE_JAPANESE;
break;
}
return language;
@@ -7007,13 +7007,13 @@ void set_language(s32 language) {
u64 langFlag = 0; // English
switch (language) {
case GERMAN:
case LANGUAGE_GERMAN:
langFlag = 4;
break;
case FRENCH:
case LANGUAGE_FRENCH:
langFlag = 8;
break;
case JAPANESE:
case LANGUAGE_JAPANESE:
langFlag = 12;
break;
}
-7
View File
@@ -94,13 +94,6 @@ typedef enum MENU_ID {
MENU_CAUTION
} MENU_ID;
enum Language {
ENGLISH,
GERMAN,
FRENCH,
JAPANESE
};
/* Size: 0x20 bytes */
// So this is looking to be a struct for menu images.
typedef struct unk800DF510 {
+1 -1
View File
@@ -1620,7 +1620,7 @@ GLOBAL_ASM("asm/non_matchings/objects/func_8002342C.s")
s32 func_80023568(void) {
if (D_8011AD3C != 0) {
return D_8011AD24[1] + 1;
} else if (get_current_level_race_type() == RACE_TYPE_BOSS) {
} else if (get_current_level_race_type() == RACETYPE_BOSS) {
return D_8011AD24[1] + 1;
}
return 0;
+6 -2
View File
@@ -19,11 +19,15 @@ typedef struct unknown800DC6F0 {
/* Size: 0x3C bytes */
typedef struct unknown8011AECC {
u8 unk00[0x10];
f32 unk0;
f32 unk4;
f32 unk8;
f32 unkC;
f32 unk10;
f32 unk14;
f32 unk18;
u8 pad1C[0x1E];
f32 unk1C;
u8 pad20[0x1A];
s8 unk3A;
s8 unk3B;
} unknown8011AECC;
+6 -6
View File
@@ -288,11 +288,11 @@ void func_80044170(Object *arg0, Object_Racer *arg1, s32 arg2) {
raceType = get_current_level_race_type();
switch (raceType) {
case RACE_TYPE_CHALLENGE_BATTLE:
case RACE_TYPE_CHALLENGE_BANANAS:
case RACETYPE_CHALLENGE_BATTLE:
case RACETYPE_CHALLENGE_BANANAS:
func_8004447C(arg0, arg1, arg2);
break;
case RACE_TYPE_CHALLENGE_EGGS:
case RACETYPE_CHALLENGE_EGGS:
func_800452A0(arg0, arg1, arg2);
break;
default:
@@ -316,9 +316,9 @@ void func_80044170(Object *arg0, Object_Racer *arg1, s32 arg2) {
arg1->unk214 = 60;
arg1->unk215 = 120;
if ((raceType & RACE_TYPE_CHALLENGE) == 0) {
if ((raceType & RACETYPE_CHALLENGE) == 0) {
arg1->unk1CA = (arg1->unk1CA + 1) & 3;
} else if (raceType == RACE_TYPE_CHALLENGE_BATTLE || raceType == RACE_TYPE_CHALLENGE_BANANAS) {
} else if (raceType == RACETYPE_CHALLENGE_BATTLE || raceType == RACETYPE_CHALLENGE_BANANAS) {
if (arg1->unk1CE != 0xFF) {
arg1->unk154 = func_8001D214(arg1->unk1CE);
}
@@ -509,7 +509,7 @@ void obj_init_racer(Object *obj, LevelObjectEntry_CharacterFlag *arg1) {
tempObj->unk194 = 0;
tempObj->stretch_height = 1.0f;
tempObj->stretch_height_cap = 1.0f;
// Decide which player ID to assign to this object. Human players get a positive value.
// Decide which player ID to assign to this object. Human players get a value from 0-3.
// Computer players will be -1.
if (player >= PLAYER_NONE && player < PLAYER_FOUR) {
if (func_8000E158()) {
+4 -4
View File
@@ -908,8 +908,8 @@ s32 get_controller_pak_file_list(s32 controllerIndex, s32 maxNumOfFilesToGet, u8
start_reading_controller_data(controllerIndex);
return (controllerIndex << 30) | CONTROLLER_PAK_BAD_DATA;
}
if (get_language() == JAPANESE) {
if (get_language() == LANGUAGE_JAPANESE) {
gameCode = JPN_GAME_CODE;
} else if (osTvType == TV_TYPE_PAL) {
gameCode = PAL_GAME_CODE;
@@ -1099,7 +1099,7 @@ SIDeviceStatus get_file_number(s32 controllerIndex, u8 *fileName, u8 *fileExt, s
string_to_font_codes(fileName, fileNameAsFontCodes, PFS_FILE_NAME_LEN);
string_to_font_codes(fileExt, fileExtAsFontCodes, PFS_FILE_EXT_LEN);
if (get_language() == JAPANESE) {
if (get_language() == LANGUAGE_JAPANESE) {
gameCode = JPN_GAME_CODE;
} else if (osTvType == TV_TYPE_PAL) {
gameCode = PAL_GAME_CODE;
@@ -1176,7 +1176,7 @@ SIDeviceStatus write_controller_pak_file(s32 controllerIndex, s32 fileNumber, u8
string_to_font_codes(fileName, fileNameAsFontCodes, PFS_FILE_NAME_LEN);
string_to_font_codes(fileExt, fileExtAsFontCodes, PFS_FILE_EXT_LEN);
if (get_language() == JAPANESE) {
if (get_language() == LANGUAGE_JAPANESE) {
game_code = JPN_GAME_CODE;
} else if (osTvType == TV_TYPE_PAL) {
game_code = PAL_GAME_CODE;
+1 -1
View File
@@ -35,7 +35,7 @@ void render_borders_for_multiplayer(Gfx **dlist) {
case VIEWPORTS_COUNT_3_PLAYERS:
levelHeader = get_current_level_header();
// Draw black square in the bottom-right corner.
if (func_800A8458() || (levelHeader->race_type & RACE_TYPE_CHALLENGE)) {
if (func_800A8458() || (levelHeader->race_type & RACETYPE_CHALLENGE)) {
gDPFillRectangle((*dlist)++, width >> 1, height >> 1, width, height);
}
// There is no break statement here. This is intentional.