auto-length should be limited to the number of elements previously in the table, if a specific number is already known.
Note that this means that when a user updates from an older version with a shorter table to a newer version with a longer table, the additional elements table will only be found if the length is specified manually. Hence the change to `graphics.battle.background.sprites`.,
Change the names based on a suggestion from Egg Lemon Soup, and fix the fact that the Ruby constants were mislabeled. Add the trainer-battle exp boost (pokemon get more exp from trainer battles compared to wild battles.
Research shows that the addresses and dimensions graphics.menu.boxes.picker.tilemap _are_ correct. However, HMA is unable to display the tilemap corrrectly, because the tilemap assumes that the tileset in question starts at tile 0x100 instead of tile 0x00. This is similar to how palettes can start at page 3 or 4 instead of having to start at page 0, and should probably be handled in a similar fashion, with the tileset being aware of its own offset.
HMA cannot handle this right now, so the tilemap is commented and untested.
Current test process:
* Run utility
* Increase pokemon by 10.
* Increase pokedex.stats by 10.
* sound.pokemon.cry.growl and sound.pokemon.cry.normal -> expand by 10
* update pokemon name, import a sprite, change catch rate to 255, set a new pokedex description
* reorder pokedex and change wild/87 to see new wild pokemon
* expand one of the habitats (example, data.pokedex.habitat.pages/"Grassland POKéMON"/data/2/pokemon)
-> check data.pokemon.count and data.pokedex.count -> are they updated automatically?
-> test:
-> can catch the pokemon, shows right entry on capture.
-> shows up right in the dex
This still doesn't work right, but this changes all of my current notes into code, as well as adding some more TODOs about things I need to care about.
The behavior of the += version of `add` is undefined if both registers are low registers. In this case, we need to patch the instruction to replace it with the more traditional 3 register version: a = a + b.
base-16 values can be entered by prefixing with 0x or $.
base-16 values will be output by the script parser if the argument is suffixed with |h
All other values will now naturally decompile to base-10.
Notification previously worked when changing via the main view or when changing via an element in the table tool. But notification didn't work right for stream deserialization, since the stream wasn't aware of what was changing.
Now, all write-data-to-model methods return a flag expressing whether or not they actually wrote any data. This makes it possible for streams to know which elements of the stream were changed, which means notification now works correctly.
Note that we are not notifying for compressed data changes or whenever a new stream is created from scratch.