(ValidateOTTrademon and Function102bdc have `cp MAX_LEVEL + 1` operations that would still fail with such a correction, so there isn't perfect support.)
engine/routines/ stores isolated out-of-context routines as individual files. It might be preferable later to append them to their related engine/ files in unique little SECTIONs, relying on the linkerscript to place them appropriately; or some other organization method. In the meantime, they're now easily findable apart from main.asm's other content.
Rename MORN/DAY/NITE to MORN_F/DAY_F/NITE_F; use MORN/DAY/NITE for shifted values (cleaner for person_events)
Prefix FLOOR to the `elevfloor` constants
It's pretty clear what it's used for.
PartyMenuActionText is used for two things:
1) Storing what kind of action we're going to do (<$10)
2) Storing the text for some kind of healing stuff I'm not entirely sure (>=$f0)
In the former case, if GetPartyMenuTilemapPointers is ran, it will be
used to pick a sequence of actions that should be done, specified in the
table, and it'll print the corresponding string using the
PartyMenuStrings table. The items in the sequence of actions that should
be done are in WritePartyMenuTilemap.
Strangely enough, one possible value is left completely unused:
PARTYMENUACTION_GIVE_MON_FEMALE. It works in the exact same way as it's
male counterpart, and as such I don't believe it was used in the
japanese version either, since it doesn't matter which gender your 'mon
is when you put 'em in the daycare.
Changed this function's name, because it confusingly only calls
DetermineLinkBattleResult when linked through mobile.
It does absolutely nothing with determining the battle result in a
regular link battle, and is only responsible for displaying the battle
result and counting stats.
Just keeping things consistent. Nobody's going to write SELF_DESTRUCT.
Kind of subjective, and we could do it the other way around, if anybody
really cares.
There were a lot of unused labels in there, and a few confusing
misnomers around move_effects_pointers.asm. They now match up exactly
with the names in battle_constants.asm.
Also renamed a few effects, to make their purpose clearer, and to match
up with their respective event script commands:
EFFECT_EXPLOSION -> EFFECT_SELFDESCTRUCT
EFFECT_HAZE -> EFFECT_RESET_STATS
EFFECT_WHIRLWIND -> EFFECT_FORCE_SWITCH
EFFECT_BIND -> EFFECT_TRAP_TARGET
EFFECT_TWINEEDLE -> EFFECT_POISON_MULTI_HIT
EFFECT_STEEL_WING -> EFFECT_DEFENSE_UP_HIT
EFFECT_METAL_CLAW -> EFFECT_ATTACK_UP_HIT
EFFECT_ANCIENTPOWER -> EFFECT_ALL_UP_HIT
The former is arguably misleading (as you don’t access the memory location in hl to retrieve the jump location), and is consequently deprecated in newer versions of rgbds.
This fix silences these deprecation warnings.