Interesting idea Jeff.
As Matt and Quadko point out, what we think of as "The Map Data" is
split into two parts. The static map data I think provides the tiles
that define the shape of the world - where cities, roads, water, forests
etc are. I have never worked with that data but Merle has decoded it and
the details are on his website linked by Matt. I think some work has
been done on creating editors for this data but I am not quite sure
exactly what there is.
The data that my tools work with is the second half of the equation: the
list of map locations (cities, villages, caves, mines etc) that is
stored inside a saved game. My character editor already does much of
what you describe (assuming I understand you correctly, and I haven't
had my second coffee yet today so I may be misreading your post!). On
the world tab you can see the whole world and toggle which locations are
displayed, as well as view (and change the party location). You can't
zoom, but resizing the window does resize the map. Once you select a
location you can change any location into any thing else by changing the
"Menu (preset)" and "Icon" properties in the right hand property grid.
That seems pretty close to the "toggles for cities, villages, mines,
dragon lairs, etc" that you mentioned. The downside is that editing a
location through this tool requires some understanding of what all those
different values mean. Maybe all that is required are some preset groups
of settings that will change all the appropriate location values in the
one go, along with a method of defining those presets in a text file
that is loaded up by the tool. So rather than having to remember all the
values required to change a location into something else, you could just
pick "Angry village" from a list. I do have this sort of ability in the
lua system but that doesn't help anyone but me. And that system has no
GUI, it is entirely run from the command line.
The Menu value determines what menu screen appears when you first enter
that location, essentially determining what the location is.
The Icon value determines what image is used for that location on the
world travel map in the game. The Icon and Menu settings don't have to
match.
Note that changing a location to something else may break active quests
that relate to that location.
I have C# and C++ code that parses the location data (and almost
everything else) from the savegame files which I can make available if
it would help. The C++ version builds to a dll that exports all the
functions and types required for working with the save game data. With a
bit of a tidy I could make the C++ source code and dll available on the
files section. The dll could then be used in many other tools from any
language that can import windows dll's. It is what I use as the backend
for the Lua scripting interface that I also need to tidy up and release.
The Lua module would be another path towards the tool you describe by
using one of the Lua GUI packages (such as WxLua) to produce the GUI
front end, and my lua module as the back end to handle reading and
writing the save game data.
By far the simplest approach if you only want to work with the world
locations data would be to use and/or extend the C# Character editor tool.
cheers,
DC