>>50120012Literally does not matter, anyone who's had more than a high school level object oriented programming class can do it. For example lets say Home's pokemon structure stores the held item as an unsigned int (an integer that can only be positive) that corresponds with the index number for the item in the game's files, while bdsp's pokemon structure stores the held item as a string (basically an array of characters) containing the item's name. All you'd have to do is iterate through the list of items to find the name of the correct item and take the index number you found it at and store it in the new home pokemon to convert it from bdsp to home, or store the name to convert from home to bdsp.
for (int i=0; i<ItemList.size();i++)
{ if ItemList[i:lit].GetName() == bdspPokemon.GetHeldItem()
{ homePokemon.SetItem(i);
break;}
}
Do something similar for every piece of information you need to store a pokemon, have default or roll random values for things that don't exist in one format but do in another (like converting gen 1 and 2 pokemon from vc to gen 5+ via bank needs to generate IVs and abilities, etc.) and save the new pokemon wherever it needs to go. It's no more difficult than converting a png to a jpg or gif.