useful for transparency and layering effects, used for things like the first-person-view. Without this, the first tile gets plastered on top of the view after the screen clears, blocking the user from seeing anything.
This adds a prototype 'model' element for working with tables/table elements. If you're working with data in a known format, it provides an easier way to navigate through the data. Should be useful for scripts.
When a pointer run is replaced with a non-pointer run programatically, also clear that pointer from whatever destination the source was supposedly pointing to.
battle scripts are almost identical to pokescripts in how they work. Each command has a single-byte code, followed by some number of arguments, each of which are 1 to 4 bytes.
Because of these similarities, we can reuse the same engine code and just load the engine from another file. So the code tool can have a 4th mode and basically just work for free. Runs for battle scripts can be as simple as XSE runs: just a single byte, don't bothe decoding, show decoding only in the tool.
Still to add: how to know which battle script commands are ending commands, or which ones point to other battle scripts, or which ones point to strings. How to view battle scripts in the editor? Etc.
It's now possible, via a manual toggle, to get a build to specify that it's a preview release versus an unstable build. This is useful if people are building out of github, or if I give people one-off builds.
The script tip may seem less out-of-place if the code being tipped has some sort of visual cue, like a color change.
This implementation shows a proof-of-concept of how that might look by drawing a TextBlock directly over the existing text. But because of how text is rendered, it looks... terrible. A better thing to do would be to not draw the under-text, and draw the caret over both layers. This requires a more specialized control and could also be used for general syntax-highlighting. Revisit later.
When pasting a table stream that contains pointers to other streams, the length-tokens might get set AFTER the pointer tokens. In this case, we want to recognize the format of the data we point to and not do arbitrary repoints.
* When exporting an image, also export the original palette.
* When importing an image, if that palette is included, use it. Otherwise, use whatever the current loaded palette is as a comparison point.