More progress today! :)
-> Tileset per map. Sounds simple, but it was far from it. This was a new attribute to be added to both the Map type in the game, but also had to be configured into the map editor as well. Since Delphi (what the map editor is written in) and BlitzMax use different internal string formats, this caused quite a headache. 2 hours worth, to be approximate. ;) But now I have two maps transitioning seamlessly, each with their own unique tileset. Can't express how glad I am that that's out of the way!
Debugging the tileset issue ended up giving me fun playing fields like this:
-> Map caching. Now when you leave a map and enter another, the current map -- which includes its floor/object/overlay/ID/collision data, as well as its scripts and switches -- is cached into memory for future use. Now data won't need to be reloaded into disk each time. This also voids the use of the 'SaveSwitch' function I made before, since scripts and their accompanying switches (switches are boolean variables used in the scripting, BTW) are frozen in their last state before the map changed and stored. Right now it's only to memory, but it should be fairly trivial to save it to disk in the future.
-> Script system fixes/additions. Thanks to a gentle nudge by Ragzouken, I broke down and finally added support (tolerance? :P) for indentation in the script files. As you'll see in v0.03, if you read the scripts that is, the code is much easier to read. Also added was the ChangeTile(LAYER,X,Y,VALUE) function to the scripting system, which lets you change the map dynamically during execution. I'll try to include a usage of this in the next iteration of Test Town; it can be used for things like having a switch turn a line of water tiles into a solid bridge, for example. Additionally a bug was quelled where the player was able to step off a tile before the onEnter event of a script was called, previously causing a lot of foul crashes involving map transitions.
-> New IDE! Not really a code addition, but I've just migrated the project over to a new BlitzMax IDE, BLIde. It feels a lot like Code::Blocks or Visual Studio .NET, and I'm loving it way more than the MaxIDE that comes with BlitzMax. For fun, have a look at Star of Shadows' code in its new splendorific glory:
And for anyone interested in the nitty-gritty details, you can look at the v0.03 Roadmap to see how close I am to completion of this version. We're getting there! :)
Future in Computer Science
Finally went through the booklet on Universities in Ontario, and narrowed it down to the 4 that I'm most interested in: Brock, Waterloo, Windsor, and University of Toronto. I'm (unsurprisingly) planning on taking Computer Science (with Co-Op ideally) for a Bachelor of Science degree. Also checked out each of their respective websites -- each seems to offer some really interesting stuff. Too bad my application only lets me choose 3. ;) January 11th is the deadline, so I'd better get cracking!
Advice from those professionally in the field of CS is especially welcomed. *prod*