After another sizeable delay in the proceedings, I started tinkering with the Editor again; following a discussion with another programmer at the weekend, it seems clear that the Editor - affectionately labelled FishEd - is suitable for their current project too, so I now have the motivation I need to get the program to Beta stage before the end of February.
I have a huge number of tasks on my To Do list, which also includes a number of tweaks and bug fixes; the problem with a project such as this is that ideas rapidly spawn other ideas, but shooting off at tangents often results in code seeming finished, but not actually being so.
However, such tasks are useful in a way, as I can always use them to get acquainted with the editor again, limber up at the start of a coding session, or tackle something quickly when I want to code but don't have much time.
A good example of this is the Left/Right button functionality: in Pen mode, the user can assign a tile to the Left and Right mouse buttons, allowing them to paint using two different tiles without constantly having to move back to the Tile Selector. However, the Left/Right functionality had only been implemented in Pen mode, so this morning's job involved applying this functionality to all of the other drawing tools.
A huge chunk of time was spent sorting out the menu code again (specifically, getting the program to perform an appropriate action for each menu item). It's not the most enthralling work, but all of the menus - with the exception of routines that have yet to be written - now work properly. This, in turn, inspired a couple of ideas for Layer functionality, so those have been added to the To Do List.
The final task for the day way to add masking functionality to Brush mode. Currently, the user can set up a mask (like the Stencil in Dpaint) in order to prevent certain tiles from being drawn over. This had been implemented in every drawing mode except Brush mode, and though this wasn't a huge oversight, it a) wasn't very consistent, and b) seemed like a valuable addition to the toolset.
After a little bit of tinkering, the masking code was in and working, with masked tiles now displayed over the current brush as the user moves it around (this makes it easier to see what the end result will look like when the brush is plotted to the map).
