mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
I trust this
This commit is contained in:
+4
-1
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user