* refactor some code from ImageTests into an IntegrationTests base class
* add MapTests class
* add test for adding a connection to Viridian Forest
* Have `ConnectNewMap` call new `GetOrCreateConnections` method instead of just trying to get the connection data that may not exist.
* creating a new map should be considered an autonomous operation for undo purposes
* support connection-objects for FireRed
* crash less when reading invalid map / layout data
* show correct hover square when hovering over neighbor maps with borders
* fix elevation names / map permissions
* don't update tile render info for the block editor if the x/y change is a no-op
*
* Draw a box around the active map (but not the border) to make the separation between maps (and border blocks) more clear
* Change the Primary Map when selecting an event on a non-primary map
* update wild pokemon tooltip during refresh
* reduce visual studdering when dragging a tile around the map
* limit hover and selection to the actual map, not the border block
* say width/height correctly in the tooltips of the map size handles
* less flickering during undo
* include default OW sprite instead of blank (for example, tutorial catch man in viridian city)
* speed up the initial script-check process that looks for default trainer sprites for each OW by not caring about the length of child scripts
* use proper thread locking during block cache invalidation and renewal so that undo doesn't mess up the number of blocks shown in the block panel
* when docompiling, don't include a box that contains a partial script that's already in the main box
* when compiling, require arg counting for getting macro length
* don't include " within the string when getting the value
* use `TryParse` instead of `Write` for converting the enum value from a string, since this is an all-to-one edit, not a pull-from-stream edit.
This can happen if the run fails to generate due to a data conflict, such as in fr omega where a text run overwrites the first byte of a trainer team run
Rename `HeaderRow` to `ColumnHeaderRow` to make it clear that this class represents a row of ColumnHeaders.
Add RowHeader class to represent the header for a single row (text and selection tuple).
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)