diff --git a/gen_compile_commands.py b/gen_compile_commands.py index 7076833e37..d5d1f51ed6 100644 --- a/gen_compile_commands.py +++ b/gen_compile_commands.py @@ -42,7 +42,7 @@ arm9_c_flags = [ "-DSDK_TS", "-DPOKEPLATINUM_GENERATED_ENUM", "-DPM_KEEP_ASSERTS", - "-DGAME_VERSION=PLATINUM", + "-DGAME_VERSION=VERSION_PLATINUM", "-DGAME_LANGUAGE=ENGLISH", ] diff --git a/include/global/pm_version.h b/include/global/pm_version.h index 87eb3641a8..30a231866f 100644 --- a/include/global/pm_version.h +++ b/include/global/pm_version.h @@ -1,17 +1,18 @@ #ifndef POKEPLATINUM_PM_VERSION_H #define POKEPLATINUM_PM_VERSION_H -#define SAPPHIRE 1 -#define RUBY 2 -#define EMERALD 3 -#define FIRERED 4 -#define LEAFGREEN 5 -#define HEARTGOLD 7 -#define SOULSILVER 8 -#define DIAMOND 10 -#define PEARL 11 -#define PLATINUM 12 -#define COLOSSEUM 15 +#define VERSION_NONE 0 +#define VERSION_SAPPHIRE 1 +#define VERSION_RUBY 2 +#define VERSION_EMERALD 3 +#define VERSION_FIRERED 4 +#define VERSION_LEAFGREEN 5 +#define VERSION_HEARTGOLD 7 +#define VERSION_SOULSILVER 8 +#define VERSION_DIAMOND 10 +#define VERSION_PEARL 11 +#define VERSION_PLATINUM 12 +#define VERSION_GAMECUBE 15 // Both Colosseum and XD use the same ID #define JAPANESE 1 #define ENGLISH 2 diff --git a/include/overlay097/ov97_02235D18.h b/include/overlay097/ov97_02235D18.h index 3ccb985b6e..312621e960 100644 --- a/include/overlay097/ov97_02235D18.h +++ b/include/overlay097/ov97_02235D18.h @@ -6,7 +6,7 @@ int ov97_02235D2C(void *param0); void ov97_02235DA4(void); int ov97_02235DB0(void); -int ov97_02235DBC(void); +int GBACart_GetLanguage(void); int ov97_022360D8(void); BOOL ov97_02236280(void); int ov97_022362C8(void); diff --git a/meson.build b/meson.build index 0b730083b7..41c467b2f1 100644 --- a/meson.build +++ b/meson.build @@ -52,7 +52,7 @@ add_global_arguments(c_args, pokeplatinum_args = [ '-DPM_KEEP_ASSERTS', - '-DGAME_VERSION=PLATINUM', + '-DGAME_VERSION=VERSION_PLATINUM', '-DGAME_LANGUAGE=ENGLISH' ] diff --git a/src/main.c b/src/main.c index b54f84d3d2..ae0e5ff9d0 100644 --- a/src/main.c +++ b/src/main.c @@ -71,7 +71,7 @@ void NitroMain(void) InitVRAM(); InitKeypadAndTouchpad(); - SetGBACartridgeVersion(NULL); + SetGBACartridgeVersion(VERSION_NONE); PM_GetBackLight(&sSavedBacklightState, NULL); sub_0202419C(); InitRTC(); diff --git a/src/map_header.c b/src/map_header.c index c585105230..6ffe2c6c58 100644 --- a/src/map_header.c +++ b/src/map_header.c @@ -31,7 +31,7 @@ const u16 MapHeader_GetMapMatrixID(u32 headerID) headerID = MapHeader_IDBoundsCheck(headerID); u16 mapMatrixID = sMapHeaders[headerID].mapMatrixID; - if (mapMatrixID == 22 && gGameVersion == PEARL) { + if (mapMatrixID == 22 && gGameVersion == VERSION_PEARL) { mapMatrixID = 23; } diff --git a/src/map_header_data.c b/src/map_header_data.c index ac0cdc600a..1c809a1817 100644 --- a/src/map_header_data.c +++ b/src/map_header_data.c @@ -217,7 +217,7 @@ void MapHeaderData_LoadWildEncounters(WildEncounters *data, int headerID) { memset(data, 0, sizeof(WildEncounters)); if (MapHeader_HasWildEncounters(headerID)) { - int narcIndex = (GAME_VERSION == DIAMOND || GAME_VERSION == PLATINUM) + int narcIndex = (GAME_VERSION == VERSION_DIAMOND || GAME_VERSION == VERSION_PLATINUM) ? NARC_INDEX_FIELDDATA__ENCOUNTDATA__PL_ENC_DATA : NARC_INDEX_FIELDDATA__ENCOUNTDATA__P_ENC_DATA; NARC_ReadWholeMemberByIndexPair(data, narcIndex, MapHeader_GetWildEncountersArchiveID(headerID)); diff --git a/src/overlay005/honey_tree.c b/src/overlay005/honey_tree.c index 05f44c74b7..ffdb90bce8 100644 --- a/src/overlay005/honey_tree.c +++ b/src/overlay005/honey_tree.c @@ -456,7 +456,7 @@ int HoneyTree_GetSpecies(FieldSystem *fieldSystem) treeDat = SpecialEncounter_GetPlayerHoneyTreeStates(SaveData_GetSpecialEncounters(fieldSystem->saveData)); tree = SpecialEncounter_GetHoneyTree(treeId, treeDat); - if ((GAME_VERSION == DIAMOND) || (GAME_VERSION == PLATINUM)) { + if ((GAME_VERSION == VERSION_DIAMOND) || (GAME_VERSION == VERSION_PLATINUM)) { narcData = NARC_AllocAtEndAndReadWholeMemberByIndexPair(NARC_INDEX_ARC__ENCDATA_EX, sEncounterTableIndexes_DPt[tree->encounterTableIndex], HEAP_ID_FIELD); } else { narcData = NARC_AllocAtEndAndReadWholeMemberByIndexPair(NARC_INDEX_ARC__ENCDATA_EX, sEncounterTableIndexes_P_Unused[tree->encounterTableIndex], HEAP_ID_FIELD); diff --git a/src/overlay006/dual_slot_encounters.c b/src/overlay006/dual_slot_encounters.c index 617176576f..496da20134 100644 --- a/src/overlay006/dual_slot_encounters.c +++ b/src/overlay006/dual_slot_encounters.c @@ -14,23 +14,23 @@ void WildEncounters_ReplaceDualSlotEncounters(const WildEncounters *encounterDat } switch (gSystem.gbaCartridgeVersion) { - case SAPPHIRE: + case VERSION_SAPPHIRE: (*param2) = encounterData->dualSlotSapphireEncounters[0]; (*param3) = encounterData->dualSlotSapphireEncounters[1]; break; - case RUBY: + case VERSION_RUBY: (*param2) = encounterData->dualSlotRubyEncounters[0]; (*param3) = encounterData->dualSlotRubyEncounters[1]; break; - case EMERALD: + case VERSION_EMERALD: (*param2) = encounterData->dualSlotEmeraldEncouters[0]; (*param3) = encounterData->dualSlotEmeraldEncouters[1]; break; - case FIRERED: + case VERSION_FIRERED: (*param2) = encounterData->dualSlotFireredEncounters[0]; (*param3) = encounterData->dualSlotFireredEncounters[1]; break; - case LEAFGREEN: + case VERSION_LEAFGREEN: (*param2) = encounterData->dualSlotLeafgreenEncounters[0]; (*param3) = encounterData->dualSlotLeafgreenEncounters[1]; break; diff --git a/src/overlay006/ov6_0223E140.c b/src/overlay006/ov6_0223E140.c index f7598e5177..cbcc9397f8 100644 --- a/src/overlay006/ov6_0223E140.c +++ b/src/overlay006/ov6_0223E140.c @@ -877,7 +877,7 @@ static void ov6_0223E830(UnkStruct_ov5_021D1BEC *param0, FieldSystem *fieldSyste VecFx32 v1; CameraAngle v2; -#if (GAME_VERSION == DIAMOND || GAME_VERSION == PLATINUM) +#if (GAME_VERSION == VERSION_DIAMOND || GAME_VERSION == VERSION_PLATINUM) Camera_SetFOV(0x1701, fieldSystem->camera); Camera_SetDistance(0xc8a55, fieldSystem->camera); v1.x = 0x2280ef; @@ -890,7 +890,7 @@ static void ov6_0223E830(UnkStruct_ov5_021D1BEC *param0, FieldSystem *fieldSyste Camera_SetAngleAroundTarget(&v2, fieldSystem->camera); Camera_SetClipping(2 * FX32_ONE, 2000 * FX32_ONE, fieldSystem->camera); -#elif (GAME_VERSION == PEARL) +#elif (GAME_VERSION == VERSION_PEARL) Camera_SetFOV(0x10c1, fieldSystem->camera); Camera_SetDistance(0xD5052, fieldSystem->camera); v1.x = 0x1bffbd; diff --git a/src/overlay073/ov73_021D0D80.c b/src/overlay073/ov73_021D0D80.c index 92ea7b084b..c1f7e1881d 100644 --- a/src/overlay073/ov73_021D0D80.c +++ b/src/overlay073/ov73_021D0D80.c @@ -765,7 +765,7 @@ static BOOL ov73_021D1648(UnkStruct_ov73_021D1058 *param0, int param1, int param case 2: v2 = &Unk_ov72_021D37CC; - if ((gGameVersion == DIAMOND) || (GAME_VERSION == PLATINUM)) { + if ((gGameVersion == VERSION_DIAMOND) || (GAME_VERSION == VERSION_PLATINUM)) { v3 = Unk_ov72_021D3954; v5 = NELEMS(Unk_ov72_021D3954); } else { @@ -907,10 +907,10 @@ static void ov73_021D1930(UnkStruct_ov73_021D1058 *param0) { int v0, v1; - if (gGameVersion == 12) { + if (gGameVersion == VERSION_PLATINUM) { v0 = 3; v1 = 27; - } else if (gGameVersion == 10) { + } else if (gGameVersion == VERSION_DIAMOND) { v0 = 1; v1 = 25; } else { @@ -2102,7 +2102,7 @@ static BOOL ov73_021D2318(UnkStruct_ov73_021D1058 *param0) case 5: { u32 v9; - if ((gGameVersion == DIAMOND) || (GAME_VERSION == PLATINUM)) { + if ((gGameVersion == VERSION_DIAMOND) || (GAME_VERSION == VERSION_PLATINUM)) { v9 = Unk_ov72_021D3954[param0->unk_48 - 1].unk_00; } else { v9 = Unk_ov73_021D1648[param0->unk_48 - 1].unk_00; diff --git a/src/overlay097/gba_migrator.c b/src/overlay097/gba_migrator.c index 4d4823faab..f943002132 100644 --- a/src/overlay097/gba_migrator.c +++ b/src/overlay097/gba_migrator.c @@ -192,29 +192,29 @@ static int sGBAHMMoves[] = { static int sMigrateFromGBAGameMessageIDs[] = { NULL, - [SAPPHIRE] = migrate_from_gba_from_sapphire, - [RUBY] = migrate_from_gba_from_ruby, - [EMERALD] = migrate_from_gba_from_emerald, - [FIRERED] = migrate_from_gba_from_firered, - [LEAFGREEN] = migrate_from_gba_from_leafgreen, + [VERSION_SAPPHIRE] = migrate_from_gba_from_sapphire, + [VERSION_RUBY] = migrate_from_gba_from_ruby, + [VERSION_EMERALD] = migrate_from_gba_from_emerald, + [VERSION_FIRERED] = migrate_from_gba_from_firered, + [VERSION_LEAFGREEN] = migrate_from_gba_from_leafgreen, }; static int sSavingOnGBAGameAndPlatinumMessageIDs[] = { NULL, - [SAPPHIRE] = migrate_from_gba_saving_on_sapphire_and_platinum, - [RUBY] = migrate_from_gba_saving_on_ruby_and_platinum, - [EMERALD] = migrate_from_gba_saving_on_emerald_and_platinum, - [FIRERED] = migrate_from_gba_saving_on_firered_and_platinum, - [LEAFGREEN] = migrate_from_gba_saving_on_leafgreen_and_platinum, + [VERSION_SAPPHIRE] = migrate_from_gba_saving_on_sapphire_and_platinum, + [VERSION_RUBY] = migrate_from_gba_saving_on_ruby_and_platinum, + [VERSION_EMERALD] = migrate_from_gba_saving_on_emerald_and_platinum, + [VERSION_FIRERED] = migrate_from_gba_saving_on_firered_and_platinum, + [VERSION_LEAFGREEN] = migrate_from_gba_saving_on_leafgreen_and_platinum, }; static u8 sGBAGameRectPalettes[] = { 0x0, - [SAPPHIRE] = 0x2, - [RUBY] = 0x1, - [EMERALD] = 0x3, - [FIRERED] = 0x4, - [LEAFGREEN] = 0x5, + [VERSION_SAPPHIRE] = 0x2, + [VERSION_RUBY] = 0x1, + [VERSION_EMERALD] = 0x3, + [VERSION_FIRERED] = 0x4, + [VERSION_LEAFGREEN] = 0x5, }; static int Unk_ov97_0223EAB8[] = { @@ -247,19 +247,19 @@ static void ov97_02233B44(GBAMigrator *migrator) { switch (ov97_02235DB0()) { case 0: - migrator->gbaVersion = RUBY; + migrator->gbaVersion = VERSION_RUBY; break; case 1: - migrator->gbaVersion = SAPPHIRE; + migrator->gbaVersion = VERSION_SAPPHIRE; break; case 2: - migrator->gbaVersion = LEAFGREEN; + migrator->gbaVersion = VERSION_LEAFGREEN; break; case 3: - migrator->gbaVersion = FIRERED; + migrator->gbaVersion = VERSION_FIRERED; break; case 4: - migrator->gbaVersion = EMERALD; + migrator->gbaVersion = VERSION_EMERALD; break; default: migrator->gbaVersion = -1; @@ -627,17 +627,17 @@ static u8 GetSpeciesGBAForm(int speciesNDS, u32 personality, int gbaVersion) case SPECIES_DEOXYS: switch (gbaVersion) { default: - case RUBY: - case SAPPHIRE: + case VERSION_RUBY: + case VERSION_SAPPHIRE: form = 0; break; - case FIRERED: + case VERSION_FIRERED: form = 1; break; - case LEAFGREEN: + case VERSION_LEAFGREEN: form = 2; break; - case EMERALD: + case VERSION_EMERALD: form = 3; break; } @@ -1143,7 +1143,7 @@ static void ov97_02234A2C(GBAMigrator *migrator, int param1) v0.unk_2C = TEXT_COLOR(1, 2, 0); v0.unk_20 = 0xA0; - GBAStringToDSString(migrator->pokemonStorage->boxNames[param1], boxName, GBA_BOX_NAME_LEN + 1, ov97_02235DBC()); + GBAStringToDSString(migrator->pokemonStorage->boxNames[param1], boxName, GBA_BOX_NAME_LEN + 1, GBACart_GetLanguage()); v0.unk_38 = boxName; ov97_02233DD0(migrator, &v0, 0x1); } @@ -1453,7 +1453,7 @@ static void ov97_02234ECC(GBAMigrator *migrator) static void ov97_02234F88(GBAMigrator *migrator) { - int i, v1, v2, v3; + int i, species, isEgg, gbaVersion; u32 personality; AffineSpriteListTemplate v5; @@ -1483,12 +1483,12 @@ static void ov97_02234F88(GBAMigrator *migrator) Sprite_SetExplicitPriority(migrator->unk_478[i], 1); Sprite_SetDrawFlag(migrator->unk_478[i], TRUE); - v1 = GetGBABoxMonSpeciesInBox(migrator, migrator->unk_42C[i].boxId, migrator->unk_42C[i].boxPosition); - v2 = IsGBABoxMonEggInBox(migrator, migrator->unk_42C[i].boxId, migrator->unk_42C[i].boxPosition); + species = GetGBABoxMonSpeciesInBox(migrator, migrator->unk_42C[i].boxId, migrator->unk_42C[i].boxPosition); + isEgg = IsGBABoxMonEggInBox(migrator, migrator->unk_42C[i].boxId, migrator->unk_42C[i].boxPosition); personality = GetGBABoxMonPersonalityInBox(migrator, migrator->unk_42C[i].boxId, migrator->unk_42C[i].boxPosition); - v3 = gSystem.gbaCartridgeVersion; + gbaVersion = gSystem.gbaCartridgeVersion; - ov97_02234278(v1, v2, personality, v3, i, migrator->unk_478[i]); + ov97_02234278(species, isEgg, personality, gbaVersion, i, migrator->unk_478[i]); } Graphics_LoadTilemapToBgLayer(NARC_INDEX_GRAPHIC__MYSTERY, 21, migrator->bgConfig, 2, 0, 32 * 24 * 2, 1, HEAP_ID_MIGRATE_FROM_GBA); @@ -1616,27 +1616,27 @@ static void ov97_02235310(GBAMigrator *migrator) static void ov97_02235344(GBAMigrator *migrator) { UnkStruct_ov97_02233DAC v0; - StringTemplate *v1; - Strbuf *v2; - u16 v3[7 + 1]; + StringTemplate *strTemplate; + Strbuf *strBuf; + u16 playerName[GBA_PLAYER_NAME_LEN + 1]; - GBAStringToDSString(GetGBAPlayerName(), v3, GBA_PLAYER_NAME_LEN + 1, ov97_02235DBC()); + GBAStringToDSString(GetGBAPlayerName(), playerName, GBA_PLAYER_NAME_LEN + 1, GBACart_GetLanguage()); - v1 = StringTemplate_Default(HEAP_ID_MIGRATE_FROM_GBA); - v2 = Strbuf_Init(GBA_PLAYER_NAME_LEN + 1, HEAP_ID_MIGRATE_FROM_GBA); + strTemplate = StringTemplate_Default(HEAP_ID_MIGRATE_FROM_GBA); + strBuf = Strbuf_Init(GBA_PLAYER_NAME_LEN + 1, HEAP_ID_MIGRATE_FROM_GBA); - Strbuf_CopyChars(v2, v3); - StringTemplate_SetStrbuf(v1, 1, v2, 0, 1, GAME_LANGUAGE); + Strbuf_CopyChars(strBuf, playerName); + StringTemplate_SetStrbuf(strTemplate, 1, strBuf, 0, 1, GAME_LANGUAGE); ov97_02234ECC(migrator); migrator->unk_490.messageEntryID = sMigrateFromGBAGameMessageIDs[migrator->gbaVersion]; - migrator->unk_490.unk_40 = v1; + migrator->unk_490.unk_40 = strTemplate; ov97_02233DD0(migrator, &migrator->unk_490, 0x8 | 0x10); - Strbuf_Free(v2); - StringTemplate_Free(v1); + Strbuf_Free(strBuf); + StringTemplate_Free(strTemplate); ov97_02235310(migrator); } diff --git a/src/overlay097/ov97_0222AE60.c b/src/overlay097/ov97_0222AE60.c index 1b081921fb..c0d6eb7b96 100644 --- a/src/overlay097/ov97_0222AE60.c +++ b/src/overlay097/ov97_0222AE60.c @@ -203,7 +203,7 @@ static BOOL ov97_0222AE64(UnkStruct_0222AE60 *param0) static void ov97_0222AF1C(UnkStruct_0222AE60 *param0) { - int v0; + int gbaVersion; int v1 = ov97_02235D2C(NULL); param0->unk_24 = 0; @@ -212,33 +212,33 @@ static void ov97_0222AF1C(UnkStruct_0222AE60 *param0) return; } - v0 = 0; + gbaVersion = VERSION_NONE; switch (ov97_02235DB0()) { case 0: - v0 = 2; + gbaVersion = VERSION_RUBY; break; case 1: - v0 = 1; + gbaVersion = VERSION_SAPPHIRE; break; case 2: - v0 = 5; + gbaVersion = VERSION_LEAFGREEN; break; case 3: - v0 = 4; + gbaVersion = VERSION_FIRERED; break; case 4: - v0 = 3; + gbaVersion = VERSION_EMERALD; break; } - SetGBACartridgeVersion(v0); + SetGBACartridgeVersion(gbaVersion); if (Pokedex_IsNationalDexObtained(param0->unk_08) == FALSE) { return; } - if (ov97_02235DBC() != gGameLanguage) { + if (GBACart_GetLanguage() != gGameLanguage) { return; } diff --git a/src/overlay097/ov97_0222D30C.c b/src/overlay097/ov97_0222D30C.c index e3f4267190..447af91a2e 100644 --- a/src/overlay097/ov97_0222D30C.c +++ b/src/overlay097/ov97_0222D30C.c @@ -2444,7 +2444,7 @@ static int ov97_022301BC(OverlayManager *param0, int *param1) Heap_Destroy(HEAP_ID_86); if (v0->unk_1638 == 2) { - SetGBACartridgeVersion(NULL); + SetGBACartridgeVersion(VERSION_NONE); } ov97_02238400(0); diff --git a/src/overlay097/ov97_02235D18.c b/src/overlay097/ov97_02235D18.c index 2141904d79..e72dcbaa06 100644 --- a/src/overlay097/ov97_02235D18.c +++ b/src/overlay097/ov97_02235D18.c @@ -29,7 +29,7 @@ static UnkStruct_ov97_0223F450 Unk_ov97_0223F450; static UnkStruct_ov97_0223F450 Unk_ov97_0223F450; static const GBAPokemonCartInfo sGBAPokemonCartInfo[30]; static u8 Unk_ov97_0223EC04[0xa0 - 4]; -static const GBAPokemonCartInfo *Unk_ov97_0223EBFC = NULL; +static const GBAPokemonCartInfo *sLoadedGBACartInfo = NULL; static int Unk_ov97_0223F438; static u32 Unk_ov97_0223F448; GBASaveSlot *sGBASaveSlot; @@ -49,7 +49,7 @@ int ov97_02235D2C(void *param0) { sGBASaveSlot = (GBASaveSlot *)param0; - if (Unk_ov97_0223EBFC != NULL) { + if (sLoadedGBACartInfo != NULL) { return 12; } @@ -61,7 +61,7 @@ int ov97_02235D2C(void *param0) } } - if (Unk_ov97_0223EBFC->unk_04 == 0) { + if (sLoadedGBACartInfo->unk_04 == 0) { Unk_ov97_0223F450.unk_88 = 2192; Unk_ov97_0223F450.unk_8C = 15040; Unk_ov97_0223F450.unk_50 = 4640; @@ -81,41 +81,41 @@ int ov97_02235D2C(void *param0) void ov97_02235DA4(void) { - Unk_ov97_0223EBFC = NULL; + sLoadedGBACartInfo = NULL; } int ov97_02235DB0() { - return Unk_ov97_0223EBFC->unk_05; + return sLoadedGBACartInfo->unk_05; } -int ov97_02235DBC() +int GBACart_GetLanguage() { - return Unk_ov97_0223EBFC->language; + return sLoadedGBACartInfo->language; } static int ov97_02235DC8(const GBAPokemonCartInfo *cartInfo, int param1) { - u32 v0; + u32 agbGameCode; - Unk_ov97_0223EBFC = NULL; + sLoadedGBACartInfo = NULL; if (!CTRDG_IsAgbCartridge()) { return 1; } - v0 = CTRDG_GetAgbGameCode(); + agbGameCode = CTRDG_GetAgbGameCode(); { int i; for (i = 0; i < param1; i++) { - if (cartInfo[i].agbGameCode == v0) { - Unk_ov97_0223EBFC = cartInfo + i; + if (cartInfo[i].agbGameCode == agbGameCode) { + sLoadedGBACartInfo = cartInfo + i; break; } } - if (Unk_ov97_0223EBFC == NULL) { + if (sLoadedGBACartInfo == NULL) { return 2; } } diff --git a/src/overlay097/ov97_02236380.c b/src/overlay097/ov97_02236380.c index 21d0ddf982..7924866a84 100644 --- a/src/overlay097/ov97_02236380.c +++ b/src/overlay097/ov97_02236380.c @@ -993,17 +993,17 @@ void BoxMonGBAToBoxMon(BoxPokemonGBA *boxMonGBA, BoxPokemon *boxMon) if (BoxPokemon_GetValue(boxMon, MON_DATA_SPECIES, NULL) == SPECIES_DEOXYS) { switch (gSystem.gbaCartridgeVersion) { default: - case RUBY: - case SAPPHIRE: + case VERSION_RUBY: + case VERSION_SAPPHIRE: value = 0; break; - case FIRERED: + case VERSION_FIRERED: value = 1; break; - case LEAFGREEN: + case VERSION_LEAFGREEN: value = 2; break; - case EMERALD: + case VERSION_EMERALD: value = 3; break; } diff --git a/src/overlay097/ov97_022392E4.c b/src/overlay097/ov97_022392E4.c index da47255705..11e51c20f6 100644 --- a/src/overlay097/ov97_022392E4.c +++ b/src/overlay097/ov97_022392E4.c @@ -3,9 +3,11 @@ #include #include -// Char conversion table? -static const u16 Unk_ov97_0223DAE8[][2] = { - { 0x1, 0x1 }, +#include "constants/charcode.h" + +// Japanese, International +static const u16 sGBACharToDSChars[][2] = { + { CHAR_WIDE_SPACE, CHAR_WIDE_SPACE }, { 0x3, 0x3 }, { 0x5, 0x5 }, { 0x7, 0x7 }, @@ -166,173 +168,173 @@ static const u16 Unk_ov97_0223DAE8[][2] = { { 0x8B, 0x8B }, { 0x8E, 0x8E }, { 0x74, 0x74 }, - { 0xA2, 0x121 }, - { 0xA3, 0x122 }, - { 0xA4, 0x123 }, - { 0xA5, 0x124 }, - { 0xA6, 0x125 }, - { 0xA7, 0x126 }, - { 0xA8, 0x127 }, - { 0xA9, 0x128 }, - { 0xAA, 0x129 }, - { 0xAB, 0x12A }, - { 0xE1, 0x1AB }, - { 0xE2, 0x1AC }, - { 0xE4, 0x1AE }, - { 0xf1, 0x1BE }, - { 0xE6, 0x1B0 }, - { 0xE5, 0x1af }, - { 0xEA, 0xEA }, - { 0xEB, 0xEB }, - { 0xE8, 0x1B2 }, - { 0xE9, 0x1B3 }, - { 0xEE, 0x1BB }, - { 0xef, 0x1BC }, - { 0x112, 0x112 }, - { 0xE3, 0x1AD }, - { 0xf2, 0x176 }, - { 0xE7, 0x1B1 }, - { 0xAC, 0x12B }, - { 0xAD, 0x12C }, - { 0xAE, 0x12D }, - { 0xaf, 0x12E }, - { 0xB0, 0x12f }, - { 0xB1, 0x130 }, - { 0xB2, 0x131 }, - { 0xB3, 0x132 }, - { 0xB4, 0x133 }, - { 0xB5, 0x134 }, - { 0xB6, 0x135 }, - { 0xB7, 0x136 }, - { 0xB8, 0x137 }, - { 0xB9, 0x138 }, - { 0xBA, 0x139 }, - { 0xBB, 0x13A }, - { 0xBC, 0x13B }, - { 0xBD, 0x13C }, - { 0xBE, 0x13D }, - { 0xbf, 0x13E }, - { 0xC0, 0x13f }, - { 0xC1, 0x140 }, - { 0xC2, 0x141 }, - { 0xC3, 0x142 }, - { 0xC4, 0x143 }, - { 0xC5, 0x144 }, - { 0xC6, 0x145 }, - { 0xC7, 0x146 }, - { 0xC8, 0x147 }, - { 0xC9, 0x148 }, - { 0xCA, 0x149 }, - { 0xCB, 0x14A }, - { 0xCC, 0x14B }, - { 0xCD, 0x14C }, - { 0xCE, 0x14D }, - { 0xcf, 0x14E }, - { 0xD0, 0x14f }, - { 0xD1, 0x150 }, - { 0xD2, 0x151 }, - { 0xD3, 0x152 }, - { 0xD4, 0x153 }, - { 0xD5, 0x154 }, - { 0xD6, 0x155 }, - { 0xD7, 0x156 }, - { 0xD8, 0x157 }, - { 0xD9, 0x158 }, - { 0xDA, 0x159 }, - { 0xDB, 0x15A }, - { 0xDC, 0x15B }, - { 0xDD, 0x15C }, - { 0xDE, 0x15D }, - { 0xdf, 0x15E }, - { 0x11f, 0x11f }, - { 0xf6, 0x1C4 }, - { 0x163, 0x163 }, - { 0x175, 0x175 }, - { 0x17B, 0x17B }, - { 0x183, 0x183 }, - { 0x195, 0x195 }, - { 0x19B, 0x19B } + { CHAR_WIDE_0, CHAR_0 }, + { CHAR_WIDE_1, CHAR_1 }, + { CHAR_WIDE_2, CHAR_2 }, + { CHAR_WIDE_3, CHAR_3 }, + { CHAR_WIDE_4, CHAR_4 }, + { CHAR_WIDE_5, CHAR_5 }, + { CHAR_WIDE_6, CHAR_6 }, + { CHAR_WIDE_7, CHAR_7 }, + { CHAR_WIDE_8, CHAR_8 }, + { CHAR_WIDE_9, CHAR_9 }, + { CHAR_WIDE_EXCLAMATION, CHAR_EXCLAMATION }, + { CHAR_WIDE_QUESTION, CHAR_QUESTION }, + { CHAR_JP_PERIOD, CHAR_PERIOD }, + { CHAR_WIDE_MINUS, CHAR_MINUS }, + { CHAR_JP_DOT, CHAR_DOT }, + { CHAR_JP_ELLIPSIS, CHAR_ELLPSIS }, + { CHAR_JP_DOUBLE_QUOTE_OPEN, CHAR_JP_DOUBLE_QUOTE_OPEN }, + { CHAR_JP_DOUBLE_QUOTE_CLOSE, CHAR_JP_DOUBLE_QUOTE_CLOSE }, + { CHAR_JP_SINGLE_QUOTE_OPEN, CHAR_SINGLE_QUOTE_OPEN }, + { CHAR_JP_SINGLE_QUOTE_CLOSE, CHAR_SINGLE_QUOTE_CLOSE }, + { CHAR_WIDE_MALE, CHAR_MALE }, + { CHAR_WIDE_FEMALE, CHAR_FEMALE }, + { CHAR_YEN, CHAR_YEN }, + { CHAR_JP_COMMA, CHAR_COMMA }, + { CHAR_WIDE_MULTIPLY, CHAR_MULTIPLY }, + { CHAR_WIDE_SLASH, CHAR_SLASH }, + { CHAR_WIDE_A, CHAR_A }, + { CHAR_WIDE_B, CHAR_B }, + { CHAR_WIDE_C, CHAR_C }, + { CHAR_WIDE_D, CHAR_D }, + { CHAR_WIDE_E, CHAR_E }, + { CHAR_WIDE_F, CHAR_F }, + { CHAR_WIDE_G, CHAR_G }, + { CHAR_WIDE_H, CHAR_H }, + { CHAR_WIDE_I, CHAR_I }, + { CHAR_WIDE_J, CHAR_J }, + { CHAR_WIDE_K, CHAR_K }, + { CHAR_WIDE_L, CHAR_L }, + { CHAR_WIDE_M, CHAR_M }, + { CHAR_WIDE_N, CHAR_N }, + { CHAR_WIDE_O, CHAR_O }, + { CHAR_WIDE_P, CHAR_P }, + { CHAR_WIDE_Q, CHAR_Q }, + { CHAR_WIDE_R, CHAR_R }, + { CHAR_WIDE_S, CHAR_S }, + { CHAR_WIDE_T, CHAR_T }, + { CHAR_WIDE_U, CHAR_U }, + { CHAR_WIDE_V, CHAR_V }, + { CHAR_WIDE_W, CHAR_W }, + { CHAR_WIDE_X, CHAR_X }, + { CHAR_WIDE_Y, CHAR_Y }, + { CHAR_WIDE_Z, CHAR_Z }, + { CHAR_WIDE_a, CHAR_a }, + { CHAR_WIDE_b, CHAR_b }, + { CHAR_WIDE_c, CHAR_c }, + { CHAR_WIDE_d, CHAR_d }, + { CHAR_WIDE_e, CHAR_e }, + { CHAR_WIDE_f, CHAR_f }, + { CHAR_WIDE_g, CHAR_g }, + { CHAR_WIDE_h, CHAR_h }, + { CHAR_WIDE_i, CHAR_i }, + { CHAR_WIDE_j, CHAR_j }, + { CHAR_WIDE_k, CHAR_k }, + { CHAR_WIDE_l, CHAR_l }, + { CHAR_WIDE_m, CHAR_m }, + { CHAR_WIDE_n, CHAR_n }, + { CHAR_WIDE_o, CHAR_o }, + { CHAR_WIDE_p, CHAR_p }, + { CHAR_WIDE_q, CHAR_q }, + { CHAR_WIDE_r, CHAR_r }, + { CHAR_WIDE_s, CHAR_s }, + { CHAR_WIDE_t, CHAR_t }, + { CHAR_WIDE_u, CHAR_u }, + { CHAR_WIDE_v, CHAR_v }, + { CHAR_WIDE_w, CHAR_w }, + { CHAR_WIDE_x, CHAR_x }, + { CHAR_WIDE_y, CHAR_y }, + { CHAR_WIDE_z, CHAR_z }, + { CHAR_ARROW_MENU, CHAR_ARROW_MENU }, + { CHAR_WIDE_COLON, CHAR_COLON }, + { CHAR_A_DIERESIS, CHAR_A_DIERESIS }, + { CHAR_O_DIERSIS, CHAR_O_DIERSIS }, + { CHAR_U_DIERESIS, CHAR_U_DIERESIS }, + { CHAR_a_DIERESIS, CHAR_a_DIERESIS }, + { CHAR_o_DIERSIS, CHAR_o_DIERSIS }, + { CHAR_u_DIERESIS, CHAR_u_DIERESIS } }; -static u16 ov97_022392E4(u32 language) +static u16 GetSpaceChar(u32 language) { - return (language == JAPANESE) ? 0x1 : 0x1de; + return (language == JAPANESE) ? CHAR_WIDE_SPACE : CHAR_SPACE; } -static u16 ov97_022392F8(u32 language) +static u16 GetDoubleQuoteOpenChar(u32 language) { switch (language) { case JAPANESE: default: - return 0xea; + return CHAR_JP_DOUBLE_QUOTE_OPEN; case ENGLISH: case ITALIAN: case SPANISH: - return 0x1b4; + return CHAR_DOUBLE_QUOTE_OPEN; case FRENCH: - return 0x1b7; + return CHAR_DOUBLE_PAREN_OPEN; case GERMAN: - return 0x1b6; + return CHAR_DOUBLE_QUOTE_CLOSE_INVERTED; } } -static u16 ov97_02239334(u32 language) +static u16 GetDoubleQuoteCloseChar(u32 language) { switch (language) { case JAPANESE: default: - return 0xeb; + return CHAR_JP_DOUBLE_QUOTE_CLOSE; case ENGLISH: case ITALIAN: case SPANISH: - return 0x1b5; + return CHAR_DOUBLE_QUOTE_CLOSE; case FRENCH: - return 0x1b8; + return CHAR_DOUBLE_PAREN_CLOSE; case GERMAN: - return 0x1b4; + return CHAR_DOUBLE_QUOTE_OPEN; } } BOOL GBAStringToDSString(const u8 *src, u16 *dst, u32 length, u32 language) { - u32 i, v1; + u32 i, nonJap; - v1 = (language != JAPANESE); + nonJap = (language != JAPANESE); for (i = 0; i < (length - 1); i++) { if (src[i] == 0xff) { break; } - if (src[i] >= NELEMS(Unk_ov97_0223DAE8)) { - int v2, v3; + if (src[i] >= NELEMS(sGBACharToDSChars)) { + int j, v3; v3 = ((length - 1) < 10) ? (length - 1) : 10; - for (v2 = 0; v2 < v3; v2++) { - dst[v2] = 0x1ac; + for (j = 0; j < v3; j++) { + dst[j] = CHAR_QUESTION; } - dst[v2] = 0xffff; - return 0; + dst[j] = CHAR_EOS; + return FALSE; } - switch (Unk_ov97_0223DAE8[src[i]][v1]) { - case 0x1: - dst[i] = ov97_022392E4(language); + switch (sGBACharToDSChars[src[i]][nonJap]) { + case CHAR_WIDE_SPACE: + dst[i] = GetSpaceChar(language); break; - case 0xea: - dst[i] = ov97_022392F8(language); + case CHAR_JP_DOUBLE_QUOTE_OPEN: + dst[i] = GetDoubleQuoteOpenChar(language); break; - case 0xeb: - dst[i] = ov97_02239334(language); + case CHAR_JP_DOUBLE_QUOTE_CLOSE: + dst[i] = GetDoubleQuoteCloseChar(language); break; default: - dst[i] = Unk_ov97_0223DAE8[src[i]][v1]; + dst[i] = sGBACharToDSChars[src[i]][nonJap]; break; } } - dst[i] = 0xffff; - return 1; + dst[i] = CHAR_EOS; + return TRUE; } diff --git a/src/unk_02092494.c b/src/unk_02092494.c index 380c845db9..e7738a7d0c 100644 --- a/src/unk_02092494.c +++ b/src/unk_02092494.c @@ -362,25 +362,25 @@ static void InitializeAlternateMetInfoStrBuf(PokemonInfoDisplayStruct *param0, i default: StringTemplate_SetMetLocationName(param0->unk_08, 4, (SpecialMetLoc_GetId(1, 7))); break; - case FIRERED: - case LEAFGREEN: + case VERSION_FIRERED: + case VERSION_LEAFGREEN: StringTemplate_SetMetLocationName(param0->unk_08, 4, (SpecialMetLoc_GetId(1, 3))); break; - case HEARTGOLD: - case SOULSILVER: + case VERSION_HEARTGOLD: + case VERSION_SOULSILVER: StringTemplate_SetMetLocationName(param0->unk_08, 4, (SpecialMetLoc_GetId(1, 4))); break; - case RUBY: - case SAPPHIRE: - case EMERALD: + case VERSION_RUBY: + case VERSION_SAPPHIRE: + case VERSION_EMERALD: StringTemplate_SetMetLocationName(param0->unk_08, 4, (SpecialMetLoc_GetId(1, 5))); break; - case COLOSSEUM: + case VERSION_GAMECUBE: StringTemplate_SetMetLocationName(param0->unk_08, 4, (SpecialMetLoc_GetId(1, 8))); break; - case DIAMOND: - case PEARL: - case PLATINUM: + case VERSION_DIAMOND: + case VERSION_PEARL: + case VERSION_PLATINUM: StringTemplate_SetMetLocationName(param0->unk_08, 4, (SpecialMetLoc_GetId(1, 7))); break; } diff --git a/tools/m2ctx/m2ctx.sh b/tools/m2ctx/m2ctx.sh index 0ed255e40e..55815dba5d 100755 --- a/tools/m2ctx/m2ctx.sh +++ b/tools/m2ctx/m2ctx.sh @@ -5,7 +5,7 @@ OUT_FILE=ctx.c GCC=gcc FLAGS="-E -P -dD -undef" INCLUDES="-Itools/cw/include -Isubprojects/NitroSDK-4.2.30001/include -Ibuild/subprojects/NitroSDK-4.2.30001/gen -Isubprojects/NitroSystem-071126.1/include -Isubprojects/NitroWiFi-2.1.30003/include -Isubprojects/NitroDWC-2.2.30008/include -Isubprojects/libvct-1.3.1/include -Isubprojects/libcrypto/include -Isubprojects/ppwlobby/include -Iinclude -Iasm -Ires -Ilib/gds/include -Ilib/spl/include -Ibuild -Ibuild/res/text -include pch/global_pch.h" -DEFINES="-DGAME_VERSION=PLATINUM -DGAME_LANGUAGE=ENGLISH -DPM_KEEP_ASSERTS -D_NITRO -DLINK_PPWLOBBY -DNNS_FINALROM -DSDK_4M -DSDK_ARM9 -DSDK_CODE_ARM -DSDK_CW -DSDK_CW_FORCE_EXPORT_SUPPORT -DSDK_FINALROM -DSDK_TS" +DEFINES="-DGAME_VERSION=VERSION_PLATINUM -DGAME_LANGUAGE=ENGLISH -DPM_KEEP_ASSERTS -D_NITRO -DLINK_PPWLOBBY -DNNS_FINALROM -DSDK_4M -DSDK_ARM9 -DSDK_CODE_ARM -DSDK_CW -DSDK_CW_FORCE_EXPORT_SUPPORT -DSDK_FINALROM -DSDK_TS" generate-ctx () { # Remove any line containing a predefined macro. If not removed, mwccarm