The first version which I've shared, which I think could actually be considered a "working version". This update:
Allows for the setting of Bi-Directional or Uni-Directional Walls. (Bi-Directional basically says you can't walk in either direction; Uni-Directional basically says you can only walk in one direction. Think of a uni-directional wall as being something similar to a fire exit in a building: You can go out, but you can't come back in. Bi-directional walls are simply walls; you can't walk through them at all.)
Allows us to scratch the current map and start over. (The NEW button now works.)
Allows us to SAVE our maps.
Allows us to LOAD the saved maps.
Updated the map display travel icons. UNI-directional and BI-directional travel areas should now be easily distinguishable. (Black tiles are NO-GO from either direction. RED/GREEN tiles tell you which side are STOP/GO from travel.)
As it is, this is more than enough to create a map that simply works to limit our character's movement on the screen. We can quickly and easily designate which areas they can, and can't, walk/swim/fly across, and then we can save that information and load it easily enough into whatever "game engine" we want to use the map with.
Included is a map I spent about 3 minutes making, called, suitably enough, "Test Map 1.MAP". Feel free to load it and then use the number keys to toggle between which path mode is visible. (2 is to see where we can WALK, 3 for where we can SWIM, 4 is for where we can FLY.)
I pictured the little test map as being something similar to a dragon's lair, with a small stream dividing the lair in half. Since it's a "dungeon" type map, it's underground and there's NO spot where flying would allow a hero to bypass an roadblock. There is, however, the river which requires a hero to be able to swim, before they can get across to the other side...
And all of this information should be rather easily conveyed just by looking at the map and viewing the 3 different travel modes.
Kick it around. Test it out. See what you think of it, and let me know if you find any glitches or issues.
*************************
*************************
To Do:
Expanded Keyboard/Mouse Support.
We need keys for Load/Save/New....
We need mouse buttons for View Modes...
Tile Support.
We need to be able to choose and load a tile set -- even if that's the SCREEN 0 ASCII color set.
We need to be able to assign various tiles to the screen, where we want them.
We need to be able to LAYER tiles (if you look, the TILE variable allows for 3 tiles) so that we can stack them, such as for Background, Creature standing on the background, Weapon in the creature's hand....
Script Support.
We need to be able to specify specific scripts for certain tiles, so that when a hero walks on them, we have certain preset events occur, such as taking damage by walking on a spiked floor...
Test Support.
We need an actual Map Engine which takes all this information, throws a goofy hero-representation on the screen, and then allows us to move it around and have a quick test run of how our game should look/work in actual conditions.
And, after all that, I'd consider this to be a "finished" project; it'd do all that I set out to get it to do, when I started with the idea of making it in my head. :D
***************************
***************************
One caveat:
Wednesday I go to see the surgeon about having my gallbladder removed, and that means the next several days are going to be rather busy... And, depending on when he wants to schedule the surgery (my family doctor assures me they'll want to do it as I have multiple gallstones which he says, "has to go"), I don't know when I'll be able to turn my attention back to this project.
For now, I'm expecting at least a break until the weekend, before I can work on it again -- but that time might be longer, depending on just how things turn out and get scheduled. Feel free to take the time and make Travel Maps for anything you might need them for, and stress-test what we have and see when/where it appears to fail for you. Suggestions for features, bug fixes, usability, and improvements are all welcome; and I'll be happy to see what I can do to accommodate all of them when I get back to the project later. :)