When adding a pokémon to a save with a full party, the behaviour is completely broken.
Not only did we add a pokémon to every box, but it also would be a completely different one or even crash the game when trying to access the box.
Fixes:
- Stop after adding a pokemon to a box. Don't add it to all.
- In commit 77d5d15 I added a ::setPokemon function and reworked the Gen1Box::add() function to use it. That's where it went wrong:
in the add() function, we would modify the number_of_pokemon counter of the box, but not manipulate the species list and write it.
Then in the setPokemon() function, we would read the box metadata and correct it because the number did not match the species list. This is what went wrong.
To fix it, I just had to modify the species list in the add() function as well again.
Make it possible for Gen1PlayerPokemonStorages' Gen1Party and Gen1Box to
avoid the performance hit in ::getPokemon caused by the recalculation of
the pokemons' level. This recalculation would read the pokemon stats
datastructure, which could be slow on the N64 transfer pak.