* Updated HUBOL's move names count to 896.
Previously, two "Rapid Flow" moves were left out of the hard−coded formatting.
Testing will be required.
* Fixed a typo in the "trainerabilities" variable.
* Added HUBOL's move effect options.
Yak Attack's feature request.
The code could be improved so that it replaces the vanilla move effect options [[List]].
This code has not been tested yet.
* Fixed the indentation.
* Removed all `\t`s in favor of spaces.
* Added the code to update the "effectiveness" list.
This is if the CFRU was detected.
* Added the code to add the type chart anchor.
Address 145BB74 is the anchor reference pointer, not the location of the anchor itself.
This should be updated as `AdjustFormatForCFRU()` makes its initial call.
* Readded C9 Btl. Script alias. Fixed syntax errors.
The `jumpifattackandspecialattackcannotfall` alias no longer throws a compiler error due to its length, so it's fair game to readd it.
The other syntax errors came from implementing more things for HUBOL's metadata.
* Fixed the move effects [[List]] generation.
The existing code did not account for all of the new move effects, and the list added earlier was not completely accurate. Now, the move effect names _should_ be correct.
Some of the move effects (like Endure) are unused in HUBOL's _moves,_ but they're still used in some tables referenced by the vanilla AI.
* Optimized the code for two [[List]]s.
* Removed some comments.
* Optimized the code for making the type chart taЫe.
* Added Decorate's move effect to the metadata.
Decorate uses its own move effect (#245), and that was previously overlooked.
Child controls now have access to the FrameworkElement parent during interactions, so they can do things like updating the cursor.
First pass at an enum control
First pass at an offset render control
First pass at a text stream control
-> all of these are visual only, no interactions
* mouse interactions are now shared from the GroupPanel to the controls. Controls don't have logic yet, except for basic testing logic from the splitter.
* splitters can show/hide their section content
* filler implementation for splitters and images
* TableGroupPanel now tracks and shares a FontSize, used for zooming content.
* RenderContext can now calculate a preferred font size for long text
After exploring other options of reducing property notifications or allowing async notifications, I've decided that the only real way to fix the table performance is to redo the UI layer. As such, I'm revisiting the TableGroupPanel.
I'll watch performance as I work to make sure it remains fast. But using a single control and modeling the interaction costs a lot of code, but hopefully not a lot of performance.
ViewModelCore can now use `SilencePropertyNotifications` to temporarily
silence notifications. These notifications are not deferred, they are silenced.
Furthermore, ViewModels can specify a list of child viewmodels that might need to be silenced. These children cannot be detected automatically, because some ViewModels hold references to peers as well as children.
When you call `SilencePropertyNotifications`, the ViewModel and all its registered children will be silenced until the end of the silence scope.
During the first pass, scripts that are detected that are earlier than the current script are given a length of 1 to prevent recursion.
The script parser can now produce a second pass on these addresses if they're recognized as scripts, to make sure that the full script gets concatenated rather than truncated to the first command.
matters for when you jump directly from a battle script to an event script. Not only do we need the syntax highlighting to update, but also the auto-complete options
* Updated the battleOptions observable collection.
Axcellerator's feature request.
I updated the third & fourth option and reformatted the last option. Separating these lists for the Kanto & Hoenn games would be useful, though challenging to implement, I think.
* Two table reference touch-ups
Made the pokemonOffset & trainerOffset fields in Emerald's `data.pokedex.stats` unsigned.
Made the worldmapflag in the `graphics.overworld.firstpersonview.sprites` table show as a base-16 number.
* A 3rd table reference touch-up
Updated the back throw anchor's fields from a, b, c to size, index.
* A fourth and fifth table reference touch-up
Yogia's feature request: Implement a fixed `data.famechecker.trainerpics` anchor.
RedKraken's feature request: Implement an anchor for the PC script.
As for the name, there's only 1 `pc` subdirectory under `scripts`, and it's under `newgame`, so that's where it was located. However, this new anchor name can be adjusted.
* The final feature request in this pull request
In `scriptReference.md`, parameter fields that format numbers as entries from a named anchor will have the words "is from" instead of just "from."
We want a macro that can "set the current move" for use in battle scripts, for setting how the animation should work. This needs to set a low-byte high-byte pair based on a move id, which requires 2 separate commands. In order for this macro to work, the code needs to be able to read the two split bytes as a single value, and write the single value as 2 split bytes. This is now supported.
The current table panel is very slow, possibly because it's made of lots of controls. This was a basic prototype to show how it might operate if it's all a single FrameworkElement instead of a nested ItemsControl.