* Configured the macroes.
* Added comments to the macros.
They seem all jumbled up.
* Added corresponding cmds. for trainerbattle 0−8.
Testing needs to be done to make sure they work atm.
* Updated trainerbattle 09 & 0C.
though trainerbattle 09 will need another change.
* Added trainerbattle 09 types based on a bit field.
Right-most bit: Whether or not the player can lose
Second-right-most bit: Tutorial battle w/ Professor Oak
Based on the combinations of bits, I added more variants to FRLG's `trainerbattle 09` command.
* LocalIDs are correctly filled in as 1/2-words now.
My bad
---------
Co-authored-by: haven1433 <haven1433@gmail.com>
* Added a macro for multichoice's allowCancel field.
0 = the game does not ignore B presses (OK to cancel out)
1 = the game ignores B presses (forbid canceling out)
* Clarified by adding "Cancel" to each option.
* Added "movenpc" command.
The exact things will be subj to change.
* Fixed "move.npc" and added "move.player."
I'll need to test these soon.
* Switched the order of 2 command macroes.
Switched the order of move.player and move.npc.
* Fixed the move.player command macro.
I can't specify base-10 numbers to hard code, apparently.
* Added the "move.camera" macro.
* Each new movement macro has 2 lines of flavor text
* fadescreen should use screenfades list
* map object graphics should use overworld sprites enum (allows finding events from the overworld sprites table)
* change field name from 'unused' to 'padding' for final part of object event data
* Correctly fixed the domains of script commands.
According to the 3 decomps' "script_cmd_table.inc" file, Ruby/Sapphire's last command is at index C5 while FireRed/LeafGreen's last command is at index D4. Thus, I updated the file so that valid commands would only show up if you're editing a game with which said commands would be valid.
ex. preparemsg3 no longer shows up as a valid command in FR/LG.
* Found out the parameter for fadescreen3.
Thank you decomps!
I'm not sure if the "mode.screenfades" parameter is the same for the "fadescreen" command.
* Updated "trainerbattle" & other scripts' comments.
Added some comments to clarify some unknowns in commands 5E, 5F, and 65.
I also fixed some comments and unknown pointers in the trainer battle commands.
* More minor comment fixes.
I mean the word "not" in the comments for commands 4D & 4E. The commands are technically not "nop"s in the code, but the edit to 0x800D is commented out.
* Clarified warp descriptions & other commands.
- Warp commands have more descriptive comments.
- Changed FRLG's description for "nop2C."
- Added another way to fill in the "condition" parameter for "gotostdif" and "callstdif" to make it more in line with "if1" and "if2."
I primarily focused on D2 setcatchlocation so that its location parameter allowed the user to type in map names. I found more commands that needed similar treatments.
* Another scriptReference edit
Updated some incorrect/missing commands in script reference, adjusted the Address width, and implemented the directions macro for the spriteface command.
* Marked lines 270 and 273 as [BPEE].
* replace cleartrainerflag/settrainerflag with defeatedtrainer/readytrainer
* update `if` macros to include both goto and call forms, and both positive checks and negative checks for trainers/flags
* add anchor for misc animations
* flags should be seen as hex in the script editor
* various table updates
* update text in empty block selection case
add enum types for fanfare / bufferitem
allow script constants to contain underscores
allow autocomplete for constants that are the last argument
allow 'find usages -> scripts' to find usages from macros (and fix crash)
instead of the script line itself knowing that it points to something,
pull it down to the argument level, so that each argument knows
if it points to something.
This will allow a single script line to point to multiple things (like trainers pointing to multiple text or scripts)
The 'showmoney' and 'updatemoney' commands are different from game to game. It has 2 parameters in R/S, but 3 parameters in FR/LG/E.
Update the scriptReference to specify that these commands have different versions for the different games.
Update ScriptParser to be able to read this new addition to the script reference format.
Add tests to show that the new commands are read correctly between games.