Tuesday, November 29, 2005

Tuesday 29th

First on today's agenda was the Animation menu, which involved implementing all of the various commands from the actual Animation Tabber - this is often just a case of shoehorning the code into a function, then calling this function from both the menu and the panel code.

Also took the opportunity to finish off the Grab menu, which I'd neglected to do a couple of weeks ago (and for obvious reasons - it's a fairly tedious task).

Made a couple of tweaks to the Map Resize code, too - currently, the map resizing is done at a very specific point in the code loop; it dawned on me that this isn't actually necessary due to the modular way in which the code works, so a couple of tweaks and the whole shebang was working more efficiently (but, as is often the case, it looks exactly the same to the end user!).

Wanted to finish up by adding the Animation toggle button's functionality to the Toolbar code, until I noticed that the Toolbar wasn't working properly. As is the case with the previous two Blitz updates, the Toolbar always seems to break. After a quick visit to the Blitz+ forum, however, it was a relatively simple fix - my favourite kind :).

Next up came a few tweaks to the Grab code to prevent tiles being manipulated when there is no Tileset loaded into the current 'slot' - the error checking for this is relatively simple, but permeates into many different areas of the code (so much so, I'm certain I've probably missed a couple along the way - let's hope my Beta Testers are paying attention).

The final task of the day involved making a start on the Project I/O, which also goes hand-in-hand with the 'New' function. On close inspection, the New function is quite extensive, and needs to reset literally dozens of variables, data banks, and arrays (thankfully, this routine will be used twice, once by the New function and once by the Load function).

I also took the opportunity to add proper error handling to each I/O routine, to ensure that loads and saves are handled properly should the user jab the cancel button or enter an inappropriate filename.