Added typedefs: mapsec_t, metloc_t, and variants for MAPSEC and METLOC values. There are some rough edges that could do with smoothing out, but for now, this gets us close to ideal with a ROM that compares equal.
Per feedback, all typedefs to mention the underlying type within the typedef name. The documentation comments reflect and explain the naming convention.
Updated comments to reflect the fact that we're no longer using SET8 for a Pokemon's met locations, in favor of a new macro (added by this PR) that adjusts to match the width of whatever is being set.
mid2agb has been modified to allow more than just numbers when naming voicegroups and voicegroups have been renamed to match. A "voice_group" macro has been set up with a optional parameter for the starting note will shift the offset by the specified amount * 0xC which is the length of 1 voice in a voicegroup. All drumset voicegroups have a "starting_note" of 36.
`RLUnComp`, like `LZ77UnComp`, expects the source data to be word-aligned.
So, to mirror how lz-compressed data is defined as `u32[]` to enforce
word-alignment, this changes rl-compressed data to be defined as `u32[]`
to enforce word-alignment.
I want to avoid the word "message" since PRET has already chosen "battle message" as the term for predefined strings usable in the battle scripts and UI.
I was considering the term "battle link packet" instead, but the library for wireless communications already uses the word "packet" even though GBATEK does not. I'm going with "battle link communication type" instead. For this particular context, I don't think we need a compound noun ("X type"); the singular noun "type" is fine enough.
Created "exposition" macros to describe operations performed on gBattleControllerExecFlags. Updated the battle engine internals to use them, to more clearly document how battle link communications actually work.
Replaced the BUFFER_A and BUFFER_B constants with the BATTLELINKMSGTYPE enum, which also identifies the "controller becoming idle" message type.
Named the task data for the link send task and the link receive task. Added macros to functions related to those tasks, for legibility.