Kicked off by removing the New and Delete buttons from the Anim panel. After careful thought, rather than allow the user to have as many animations as they want (which is where the buttons in question come into use), I'd have 256 animations already in memory at startup, one for each tile. Should the animation contain more than one frame, it is processed by the animation routine.
The main reason for this approach is partly due to time (I can't waste time perfecting an ideal animation system just for the Editor), and partly due to the fact that deleting and reordering a vast sequence of Types has huge potential for bugs and suchlike. The New and Delete buttons are now Copy and Paste respectively, which is much more useful in my opinion. :)
I also removed the 'Destination' selector from the Anim panel. Essentially, the User would have been able to generate up to 256 animation sequences; the Destination indicator was used to decide which tile on the map would trigger that sequence. While this is ultimately more flexible, again the time factor and bug potential far outweighs the usability; with the new system, the data will be much more regimented and easier for other programmers to strip out what they need.
Next came the addition of the Grab menu, which will compliment the Grab panel (along with the addition of extra commands to Save and Load Buffers and Buffer sets). In order to save memory (and effort!), the various Grab panel functions will be bundled into their own separate routines which my button checks and menu checks will call.
Though making your code portable and modular is something of a prerequisite, more often than not, I tend not to make certain pieces of code modular mainly because it takes so long to set up and call a function, whereas running the code directly within an If...Endif loop is much faster.
The final task of the day involved creating the Copy Range / Paste Range functions for the Tile menu. This was a fairly straightforward task, largely due to the amount of tile copying and manipulation code I've written recently, and once in place turned out to be a rather handy little function.
