diff --git a/include/overlay097/ov97_02236380.h b/include/overlay097/ov97_02236380.h index 22fa0d2d1a..99b6e378ce 100644 --- a/include/overlay097/ov97_02236380.h +++ b/include/overlay097/ov97_02236380.h @@ -5,7 +5,7 @@ u32 GetGBABoxMonData(BoxPokemonGBA *boxMon, int field, u8 *data); void SetGBABoxMonData(BoxPokemonGBA *boxMon, int field, const u8 *dataArg); -int ov97_02236DD0(int param0); +int ConvertGBASpeciesToDS(int species); u32 ov97_02236E00(BoxPokemonGBA *param0); #endif // POKEPLATINUM_OV97_02236380_H diff --git a/src/overlay097/ov97_02233B18.c b/src/overlay097/ov97_02233B18.c index 4db915a911..bea8b39fe1 100644 --- a/src/overlay097/ov97_02233B18.c +++ b/src/overlay097/ov97_02233B18.c @@ -635,7 +635,7 @@ static void ov97_02234278(int param0, int param1, u32 param2, int param3, int pa u8 v1; NNSG2dCharacterData *v2; - param0 = ov97_02236DD0(param0); + param0 = ConvertGBASpeciesToDS(param0); v1 = GBASpeciesToDSFormId(param0, param2, param3); v0 = ov97_022341B4(19, PokeIconSpriteIndex(param0, param1, v1), &v2, 78); @@ -647,27 +647,28 @@ static void ov97_02234278(int param0, int param1, u32 param2, int param3, int pa Heap_FreeToHeap(v0); } -static void ov97_022342E4(int param0, int param1, int param2, int param3, Sprite *param4, void *param5, NARC *param6) +// speciesGBA is reused to store NDS species +static void ov97_022342E4(int speciesGBA, int param1, int param2, int param3, Sprite *param4, void *param5, NARC *param6) { u32 v0; NNSG2dCharacterData *v1; UnkStruct_ov97_0223F434 *v2 = Unk_ov97_0223F434 + param3; if (param4) { - if (IsGBASpeciesInvalid(param0) == 0) { - param0 = ov97_02236DD0(param0); + if (IsGBASpeciesInvalid(speciesGBA) == FALSE) { + speciesGBA = ConvertGBASpeciesToDS(speciesGBA); } else { - param0 = 0; + speciesGBA = SPECIES_NONE; } - v0 = PokeIconSpriteIndex(param0, param1, param2); + v0 = PokeIconSpriteIndex(speciesGBA, param1, param2); ov97_022341EC(v0, &v1, param5, param6); MI_CpuCopyFast(v1->pRawData, v2->unk_0C, ((4 * 4) * 0x20)); v2->unk_00 = (0x64 + param3 * (4 * 4)) * 0x20; v2->unk_08 = param4; - v2->unk_04 = PokeIconPaletteIndex(param0, param2, param1) + 8; + v2->unk_04 = PokeIconPaletteIndex(speciesGBA, param2, param1) + 8; } else { v2->unk_08 = NULL; } @@ -703,7 +704,7 @@ static void ov97_022343A8(UnkStruct_ov97_02234A2C *param0) v2 = ov97_02234148(param0, param0->unk_E8E4, v0); v5 = ov97_0223416C(param0, param0->unk_E8E4, v0); v3 = gSystem.gbaCartridgeVersion; - v4 = GBASpeciesToDSFormId(ov97_02236DD0(v1), v5, v3); + v4 = GBASpeciesToDSFormId(ConvertGBASpeciesToDS(v1), v5, v3); ov97_022342E4(v1, v2, v4, v0, param0->unk_20C[v0].unk_00, v6, v7); Sprite_SetDrawFlag(param0->unk_20C[v0].unk_00, 1); @@ -1209,7 +1210,7 @@ static void ov97_02234B0C(UnkStruct_ov97_02234A2C *param0, BoxPokemonGBA *param1 v8 = Strbuf_Init(64, 78); v5 = MessageLoader_Init(1, 26, 412, 78); - v0 = ov97_02236DD0(GetGBABoxMonData(param1, 11, NULL)); + v0 = ConvertGBASpeciesToDS(GetGBABoxMonData(param1, 11, NULL)); MessageLoader_GetStrbuf(v5, v0, v8); diff --git a/src/overlay097/ov97_02236380.c b/src/overlay097/ov97_02236380.c index 681943439f..dfc5a3dcfc 100644 --- a/src/overlay097/ov97_02236380.c +++ b/src/overlay097/ov97_02236380.c @@ -15,155 +15,155 @@ #include "system.h" typedef struct { - u16 unk_00; - u16 unk_02; -} UnkStruct_ov97_0223ED5C; + u16 gbaSpecies; + u16 ndsSpecies; +} GBAToDSSpeciesStruct; -UnkStruct_ov97_0223ED5C Unk_ov97_0223ED5C[] = { - { 0x115, 0xFC }, - { 0x116, 0xFD }, - { 0x117, 0xFE }, - { 0x118, 0xFF }, - { 0x119, 0x100 }, - { 0x11A, 0x101 }, - { 0x11B, 0x102 }, - { 0x11C, 0x103 }, - { 0x11D, 0x104 }, - { 0x11E, 0x105 }, - { 0x11F, 0x106 }, - { 0x120, 0x107 }, - { 0x121, 0x108 }, - { 0x122, 0x109 }, - { 0x123, 0x10A }, - { 0x124, 0x10B }, - { 0x125, 0x10C }, - { 0x126, 0x10D }, - { 0x127, 0x10E }, - { 0x128, 0x10F }, - { 0x129, 0x110 }, - { 0x12A, 0x111 }, - { 0x12B, 0x112 }, - { 0x12C, 0x113 }, - { 0x12D, 0x122 }, - { 0x12E, 0x123 }, - { 0x12F, 0x124 }, - { 0x130, 0x114 }, - { 0x131, 0x115 }, - { 0x132, 0x11D }, - { 0x133, 0x11E }, - { 0x134, 0x147 }, - { 0x135, 0x116 }, - { 0x136, 0x117 }, - { 0x137, 0x11B }, - { 0x138, 0x11C }, - { 0x139, 0x140 }, - { 0x13A, 0x141 }, - { 0x13B, 0x12C }, - { 0x13C, 0x12D }, - { 0x13D, 0x160 }, - { 0x13E, 0x157 }, - { 0x13F, 0x158 }, - { 0x140, 0x12B }, - { 0x141, 0x144 }, - { 0x142, 0x12E }, - { 0x143, 0x153 }, - { 0x144, 0x154 }, - { 0x145, 0x172 }, - { 0x146, 0x155 }, - { 0x147, 0x156 }, - { 0x148, 0x15D }, - { 0x149, 0x15E }, - { 0x14A, 0x13E }, - { 0x14B, 0x13F }, - { 0x14C, 0x148 }, - { 0x14D, 0x149 }, - { 0x14E, 0x14A }, - { 0x14F, 0x128 }, - { 0x150, 0x129 }, - { 0x151, 0x135 }, - { 0x152, 0x136 }, - { 0x153, 0x142 }, - { 0x154, 0x143 }, - { 0x155, 0x16B }, - { 0x156, 0x16C }, - { 0x157, 0x16D }, - { 0x158, 0x14B }, - { 0x159, 0x14C }, - { 0x15A, 0x169 }, - { 0x15B, 0x16A }, - { 0x15C, 0x151 }, - { 0x15D, 0x152 }, - { 0x15E, 0x12A }, - { 0x15F, 0x145 }, - { 0x160, 0x146 }, - { 0x161, 0x137 }, - { 0x162, 0x138 }, - { 0x163, 0x12F }, - { 0x164, 0x133 }, - { 0x165, 0x134 }, - { 0x166, 0x14D }, - { 0x167, 0x14E }, - { 0x168, 0x168 }, - { 0x169, 0x163 }, - { 0x16A, 0x164 }, - { 0x16B, 0x13B }, - { 0x16C, 0x11F }, - { 0x16D, 0x120 }, - { 0x16E, 0x121 }, - { 0x16F, 0x13C }, - { 0x170, 0x13D }, - { 0x171, 0x165 }, - { 0x172, 0x125 }, - { 0x173, 0x126 }, - { 0x174, 0x127 }, - { 0x175, 0x16E }, - { 0x176, 0x16F }, - { 0x177, 0x170 }, - { 0x178, 0x167 }, - { 0x179, 0x161 }, - { 0x17A, 0x162 }, - { 0x17B, 0x150 }, - { 0x17C, 0x14F }, - { 0x17D, 0x171 }, - { 0x17E, 0x130 }, - { 0x17F, 0x131 }, - { 0x180, 0x132 }, - { 0x181, 0x15F }, - { 0x182, 0x139 }, - { 0x183, 0x13A }, - { 0x184, 0x159 }, - { 0x185, 0x15A }, - { 0x186, 0x15B }, - { 0x187, 0x15C }, - { 0x188, 0x118 }, - { 0x189, 0x119 }, - { 0x18A, 0x11A }, - { 0x18B, 0x173 }, - { 0x18C, 0x174 }, - { 0x18D, 0x175 }, - { 0x18E, 0x176 }, - { 0x18F, 0x177 }, - { 0x190, 0x178 }, - { 0x191, 0x179 }, - { 0x192, 0x17A }, - { 0x193, 0x17B }, - { 0x194, 0x17E }, - { 0x195, 0x17F }, - { 0x196, 0x180 }, - { 0x197, 0x17C }, - { 0x198, 0x17D }, - { 0x199, 0x181 }, - { 0x19A, 0x182 }, - { 0x19B, 0x166 }, - { 0x19C, 0x19C }, - { 0x19D, 0x19D }, - { 0x19E, 0x19E }, - { 0x19F, 0x19F }, - { 0x1A0, 0x1A0 }, - { 0x1A1, 0x1A1 }, - { 0x1A2, 0x1A2 }, - { 0x1A3, 0x1A3 }, - { 0x1A4, 0x1A4 } +GBAToDSSpeciesStruct sGBAToDSSpecies[] = { + { GBA_SPECIES_TREECKO, SPECIES_TREECKO }, + { GBA_SPECIES_GROVYLE, SPECIES_GROVYLE }, + { GBA_SPECIES_SCEPTILE, SPECIES_SCEPTILE }, + { GBA_SPECIES_TORCHIC, SPECIES_TORCHIC }, + { GBA_SPECIES_COMBUSKEN, SPECIES_COMBUSKEN }, + { GBA_SPECIES_BLAZIKEN, SPECIES_BLAZIKEN }, + { GBA_SPECIES_MUDKIP, SPECIES_MUDKIP }, + { GBA_SPECIES_MARSHTOMP, SPECIES_MARSHTOMP }, + { GBA_SPECIES_SWAMPERT, SPECIES_SWAMPERT }, + { GBA_SPECIES_POOCHYENA, SPECIES_POOCHYENA }, + { GBA_SPECIES_MIGHTYENA, SPECIES_MIGHTYENA }, + { GBA_SPECIES_ZIGZAGOON, SPECIES_ZIGZAGOON }, + { GBA_SPECIES_LINOONE, SPECIES_LINOONE }, + { GBA_SPECIES_WURMPLE, SPECIES_WURMPLE }, + { GBA_SPECIES_SILCOON, SPECIES_SILCOON }, + { GBA_SPECIES_BEAUTIFLY, SPECIES_BEAUTIFLY }, + { GBA_SPECIES_CASCOON, SPECIES_CASCOON }, + { GBA_SPECIES_DUSTOX, SPECIES_DUSTOX }, + { GBA_SPECIES_LOTAD, SPECIES_LOTAD }, + { GBA_SPECIES_LOMBRE, SPECIES_LOMBRE }, + { GBA_SPECIES_LUDICOLO, SPECIES_LUDICOLO }, + { GBA_SPECIES_SEEDOT, SPECIES_SEEDOT }, + { GBA_SPECIES_NUZLEAF, SPECIES_NUZLEAF }, + { GBA_SPECIES_SHIFTRY, SPECIES_SHIFTRY }, + { GBA_SPECIES_NINCADA, SPECIES_NINCADA }, + { GBA_SPECIES_NINJASK, SPECIES_NINJASK }, + { GBA_SPECIES_SHEDINJA, SPECIES_SHEDINJA }, + { GBA_SPECIES_TAILLOW, SPECIES_TAILLOW }, + { GBA_SPECIES_SWELLOW, SPECIES_SWELLOW }, + { GBA_SPECIES_SHROOMISH, SPECIES_SHROOMISH }, + { GBA_SPECIES_BRELOOM, SPECIES_BRELOOM }, + { GBA_SPECIES_SPINDA, SPECIES_SPINDA }, + { GBA_SPECIES_WINGULL, SPECIES_WINGULL }, + { GBA_SPECIES_PELIPPER, SPECIES_PELIPPER }, + { GBA_SPECIES_SURSKIT, SPECIES_SURSKIT }, + { GBA_SPECIES_MASQUERAIN, SPECIES_MASQUERAIN }, + { GBA_SPECIES_WAILMER, SPECIES_WAILMER }, + { GBA_SPECIES_WAILORD, SPECIES_WAILORD }, + { GBA_SPECIES_SKITTY, SPECIES_SKITTY }, + { GBA_SPECIES_DELCATTY, SPECIES_DELCATTY }, + { GBA_SPECIES_KECLEON, SPECIES_KECLEON }, + { GBA_SPECIES_BALTOY, SPECIES_BALTOY }, + { GBA_SPECIES_CLAYDOL, SPECIES_CLAYDOL }, + { GBA_SPECIES_NOSEPASS, SPECIES_NOSEPASS }, + { GBA_SPECIES_TORKOAL, SPECIES_TORKOAL }, + { GBA_SPECIES_SABLEYE, SPECIES_SABLEYE }, + { GBA_SPECIES_BARBOACH, SPECIES_BARBOACH }, + { GBA_SPECIES_WHISCASH, SPECIES_WHISCASH }, + { GBA_SPECIES_LUVDISC, SPECIES_LUVDISC }, + { GBA_SPECIES_CORPHISH, SPECIES_CORPHISH }, + { GBA_SPECIES_CRAWDAUNT, SPECIES_CRAWDAUNT }, + { GBA_SPECIES_FEEBAS, SPECIES_FEEBAS }, + { GBA_SPECIES_MILOTIC, SPECIES_MILOTIC }, + { GBA_SPECIES_CARVANHA, SPECIES_CARVANHA }, + { GBA_SPECIES_SHARPEDO, SPECIES_SHARPEDO }, + { GBA_SPECIES_TRAPINCH, SPECIES_TRAPINCH }, + { GBA_SPECIES_VIBRAVA, SPECIES_VIBRAVA }, + { GBA_SPECIES_FLYGON, SPECIES_FLYGON }, + { GBA_SPECIES_MAKUHITA, SPECIES_MAKUHITA }, + { GBA_SPECIES_HARIYAMA, SPECIES_HARIYAMA }, + { GBA_SPECIES_ELECTRIKE, SPECIES_ELECTRIKE }, + { GBA_SPECIES_MANECTRIC, SPECIES_MANECTRIC }, + { GBA_SPECIES_NUMEL, SPECIES_NUMEL }, + { GBA_SPECIES_CAMERUPT, SPECIES_CAMERUPT }, + { GBA_SPECIES_SPHEAL, SPECIES_SPHEAL }, + { GBA_SPECIES_SEALEO, SPECIES_SEALEO }, + { GBA_SPECIES_WALREIN, SPECIES_WALREIN }, + { GBA_SPECIES_CACNEA, SPECIES_CACNEA }, + { GBA_SPECIES_CACTURNE, SPECIES_CACTURNE }, + { GBA_SPECIES_SNORUNT, SPECIES_SNORUNT }, + { GBA_SPECIES_GLALIE, SPECIES_GLALIE }, + { GBA_SPECIES_LUNATONE, SPECIES_LUNATONE }, + { GBA_SPECIES_SOLROCK, SPECIES_SOLROCK }, + { GBA_SPECIES_AZURILL, SPECIES_AZURILL }, + { GBA_SPECIES_SPOINK, SPECIES_SPOINK }, + { GBA_SPECIES_GRUMPIG, SPECIES_GRUMPIG }, + { GBA_SPECIES_PLUSLE, SPECIES_PLUSLE }, + { GBA_SPECIES_MINUN, SPECIES_MINUN }, + { GBA_SPECIES_MAWILE, SPECIES_MAWILE }, + { GBA_SPECIES_MEDITITE, SPECIES_MEDITITE }, + { GBA_SPECIES_MEDICHAM, SPECIES_MEDICHAM }, + { GBA_SPECIES_SWABLU, SPECIES_SWABLU }, + { GBA_SPECIES_ALTARIA, SPECIES_ALTARIA }, + { GBA_SPECIES_WYNAUT, SPECIES_WYNAUT }, + { GBA_SPECIES_DUSKULL, SPECIES_DUSKULL }, + { GBA_SPECIES_DUSCLOPS, SPECIES_DUSCLOPS }, + { GBA_SPECIES_ROSELIA, SPECIES_ROSELIA }, + { GBA_SPECIES_SLAKOTH, SPECIES_SLAKOTH }, + { GBA_SPECIES_VIGOROTH, SPECIES_VIGOROTH }, + { GBA_SPECIES_SLAKING, SPECIES_SLAKING }, + { GBA_SPECIES_GULPIN, SPECIES_GULPIN }, + { GBA_SPECIES_SWALOT, SPECIES_SWALOT }, + { GBA_SPECIES_TROPIUS, SPECIES_TROPIUS }, + { GBA_SPECIES_WHISMUR, SPECIES_WHISMUR }, + { GBA_SPECIES_LOUDRED, SPECIES_LOUDRED }, + { GBA_SPECIES_EXPLOUD, SPECIES_EXPLOUD }, + { GBA_SPECIES_CLAMPERL, SPECIES_CLAMPERL }, + { GBA_SPECIES_HUNTAIL, SPECIES_HUNTAIL }, + { GBA_SPECIES_GOREBYSS, SPECIES_GOREBYSS }, + { GBA_SPECIES_ABSOL, SPECIES_ABSOL }, + { GBA_SPECIES_SHUPPET, SPECIES_SHUPPET }, + { GBA_SPECIES_BANETTE, SPECIES_BANETTE }, + { GBA_SPECIES_SEVIPER, SPECIES_SEVIPER }, + { GBA_SPECIES_ZANGOOSE, SPECIES_ZANGOOSE }, + { GBA_SPECIES_RELICANTH, SPECIES_RELICANTH }, + { GBA_SPECIES_ARON, SPECIES_ARON }, + { GBA_SPECIES_LAIRON, SPECIES_LAIRON }, + { GBA_SPECIES_AGGRON, SPECIES_AGGRON }, + { GBA_SPECIES_CASTFORM, SPECIES_CASTFORM }, + { GBA_SPECIES_VOLBEAT, SPECIES_VOLBEAT }, + { GBA_SPECIES_ILLUMISE, SPECIES_ILLUMISE }, + { GBA_SPECIES_LILEEP, SPECIES_LILEEP }, + { GBA_SPECIES_CRADILY, SPECIES_CRADILY }, + { GBA_SPECIES_ANORITH, SPECIES_ANORITH }, + { GBA_SPECIES_ARMALDO, SPECIES_ARMALDO }, + { GBA_SPECIES_RALTS, SPECIES_RALTS }, + { GBA_SPECIES_KIRLIA, SPECIES_KIRLIA }, + { GBA_SPECIES_GARDEVOIR, SPECIES_GARDEVOIR }, + { GBA_SPECIES_BAGON, SPECIES_BAGON }, + { GBA_SPECIES_SHELGON, SPECIES_SHELGON }, + { GBA_SPECIES_SALAMENCE, SPECIES_SALAMENCE }, + { GBA_SPECIES_BELDUM, SPECIES_BELDUM }, + { GBA_SPECIES_METANG, SPECIES_METANG }, + { GBA_SPECIES_METAGROSS, SPECIES_METAGROSS }, + { GBA_SPECIES_REGIROCK, SPECIES_REGIROCK }, + { GBA_SPECIES_REGICE, SPECIES_REGICE }, + { GBA_SPECIES_REGISTEEL, SPECIES_REGISTEEL }, + { GBA_SPECIES_KYOGRE, SPECIES_KYOGRE }, + { GBA_SPECIES_GROUDON, SPECIES_GROUDON }, + { GBA_SPECIES_RAYQUAZA, SPECIES_RAYQUAZA }, + { GBA_SPECIES_LATIAS, SPECIES_LATIAS }, + { GBA_SPECIES_LATIOS, SPECIES_LATIOS }, + { GBA_SPECIES_JIRACHI, SPECIES_JIRACHI }, + { GBA_SPECIES_DEOXYS, SPECIES_DEOXYS }, + { GBA_SPECIES_CHIMECHO, SPECIES_CHIMECHO }, + { GBA_SPECIES_EGG, 0x19C }, + { 0x19D, 0x19D }, + { 0x19E, 0x19E }, + { 0x19F, 0x19F }, + { 0x1A0, 0x1A0 }, + { 0x1A1, 0x1A1 }, + { 0x1A2, 0x1A2 }, + { 0x1A3, 0x1A3 }, + { 0x1A4, 0x1A4 } }; typedef struct { @@ -1292,21 +1292,21 @@ void SetGBABoxMonData(BoxPokemonGBA *boxMon, int field, const u8 *dataArg) } } -int ov97_02236DD0(int param0) +int ConvertGBASpeciesToDS(int species) { - int v0; + int i; - if (param0 < 277) { - return param0; + if (species < GBA_SPECIES_TREECKO) { + return species; } - for (v0 = 0; v0 < sizeof(Unk_ov97_0223ED5C) / sizeof(UnkStruct_ov97_0223ED5C); v0++) { - if (Unk_ov97_0223ED5C[v0].unk_00 == param0) { - return Unk_ov97_0223ED5C[v0].unk_02; + for (i = 0; i < sizeof(sGBAToDSSpecies) / sizeof(GBAToDSSpeciesStruct); i++) { + if (sGBAToDSSpecies[i].gbaSpecies == species) { + return sGBAToDSSpecies[i].ndsSpecies; } } - return param0; + return species; } u32 ov97_02236E00(BoxPokemonGBA *param0) @@ -1314,7 +1314,7 @@ u32 ov97_02236E00(BoxPokemonGBA *param0) int v0; u32 v1; - v0 = ov97_02236DD0(GetGBABoxMonData(param0, 11, 0)); + v0 = ConvertGBASpeciesToDS(GetGBABoxMonData(param0, 11, 0)); v1 = GetGBABoxMonData(param0, 25, 0); return Pokemon_GetSpeciesLevelAt(v0, v1); @@ -1366,7 +1366,7 @@ void BoxMonGBAToBoxMon(BoxPokemonGBA *param0, BoxPokemon *param1) BoxPokemon_SetValue(param1, MON_DATA_PERSONALITY, (u8 *)&v1); v1 = GetGBABoxMonData(param0, 11, NULL); - v1 = ov97_02236DD0(v1); + v1 = ConvertGBASpeciesToDS(v1); BoxPokemon_SetValue(param1, MON_DATA_SPECIES, (u8 *)&v1);