note that some destinations may not have pointer sources (such as other pointers). This is a metadata inconsistency in most cases (unless the pointer is in a table and is pointing to the middle of a pointer, for example), but still shouldn't cause a crash.
if the mask is set wrong, we were asserting before, which is wrong... we shouldn't assert, because we don't know that HMA caused the problem. But we do need to warn the user that something smells wrong about their data. Add a warning textbox.,
* selection position (x, y) in the bottom corner should be based on the hover map coordinates, not the primary map coordinates
* show the border around the primary map after Goto
* selection rect should truncate to the current map, rather than snapping to the current map. This matches the draw behavior.
* All methods that previously converted coordinates based on the primaryMap now instead convert coordinates with reference to a map that you pass in.
also fix possible race condition when refreshing border render while drawing the map
also fix condition where writing script data content formats shouldn't write empty runs if the token doesn't allow changes.
* better for experts because they can more easily parse a handful of section headers compared to random hex addresses
* Better for new users because it helps them learn that they can use whatever names they want for the headers of scripts and for pointers.
doing <??????> auto-included a new {} block, which is cool. But that block needs to not be included when calculating the new cursor position, because the cursor position should remain _before_ the new {}, so it's still on the same line in case you're writing `trainerbattle` or something with multiple pointers in the line.
* Changed which NPC facing option we shouldn't use.
The movement behavior right below "FaceRight" is actually the one that confuses people as it used to be called "Look Down" in AdvanceMap. That one causes weird stuff to happen after a battle while the first movement option is now correctly labeled "No Movement."
* Reverted the CausesGlitches change.
The old algorithm didn't go to maps often enough, but the new algorithm might go to maps too often. More testing is needed.
* allow going to a map if multiple maps match. For example, "pewter city" matches every map in pewter city, but the idea is pretty clear that we should go to at least _one_ of those maps. The first one (the city itself) will do just fine.
* only match a map if the name is specific enough to only match one map name. For example, "viridian" might be "viridian forest" or "viridian city" so that's not good enough. Same with "cave". But "paltown" is good enough to match palette town.
* when jumping to a script from a map, format the script. This gets us things like text/marts immediately, instead of needing to load, then edit, to see runs that the script points to.
* When editing a script, keep better track of the cursor, so it doesn't jump around when the script address changes or a pointer within the script changes.
note that this could be dangerous, since we're writing an end token to an arbitrary address that is still being decided on. A couple things mitigate this problem:
* the user can use <auto> pointers in scripts
* addresses won't be checked/used unless the user has both an open < and a close >.
* 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."