Saturday, March 21, 2015

FMod - UI Finagling

I continued improving Abiathar for what will be either the v2.4.2 or the v2.5 update, depending on how much more I decide to change.

First, I attacked the issue that caused rendering planes depending on the mouse position to not update when the user moved the view window using the arrows. After adjusting the level view state, Abiathar now raises the mouse move event with a flag forcing the message to be sent to the active tool. There is also a new API command called RefreshMouse() that the tools now use to put the selection rectangle or the paste preview overlay in the right spot when they start. The paste preview overlay no longer waits for the user to move the mouse before putting its overlay in the right spot.

I found that the region defining/selection code would not start a selection in the upper-left corner because it treated the (0, 0) point to mean that the selection had not yet started. I fixed that by changing the null value to (-1, -1), which is never a valid point in the level. On second thought, though, using a Nullable(Of Point) value probably would have been a better idea.

I started working on a new tool, the Essential Manipulator, that will roll together the functionality of the Freeform Tile Placer, Copier, and Paster. It won't have all the special features of those three tools; it's intended to be a one-stop for beginners. I'm also seriously considering removing the Tile Tweaker and renaming the Freeform Tile Placer to just Tile Placer. If that happens, I'll add a config option to choose whether tools will allow dragging.

The tool loading and selection routines were changed to allow for easier access to customized default tools (like the Essential Manipulator may become). Every tool now chooses a hotkey that will call it if it is not the default, but if it is set to be the default, its preferences will be overriden with the simple Escape key. It will show "Esc" as the shortcut key string on its menu item and it will be pushed to the top. Now, both the Tile Tweaker and the Tile Picker report a hotkey of "\" (the backslash), but Abiathar's default configuration (making those the default for levels and tile palettes, respectively) makes their key Escape. Previously, only the Freeform Tile Placer would change hotkeys depending on whether it was default, trading with Tile Tweaker. Everybody gets the special hotkey switch treatment now!

No comments:

Post a Comment