For those that don't know, or haven't noticed. The DLL included with the map editor is a COM DLL with the TypeLibrary embedded in it. In other words, it's really easy to use the backend from any language that supports COM, like VB. To use the library, just add a reference to the TypeLibrary (or DLL with an embedded TypeLibrary). You can do this from the menu Project->References. Either find it in the list if the DLL is already registered, or browse for the DLL (VB will register it for you). You can use the object browser in VB (hit F2) to view what classes are included and what methods/parameters those classes have. It also contains some basic help strings for the things in there.
Here is an attached VB project I used just to quickly test the interface and make sure the idea would work. It demonstrates really basic useage of the backend. It's basically just a map viewer. Sorry, the map it views was hardcoded into the project since this was just an interface test, not an attempt to make a useful project. Anyways, it'll handle loading/saving of maps and tile sets. It also has some basic VOL and CLM file processing (which is why V2 of the editor can load stuff right from the VOL files). Yes, the viewer does have some really basic/sick/cheap hack scrolling implemented in it. Again, just an interface test, so I didn't care if it wasn't very good. I just needed to test the drawing code. (You have to hold left mouse button down AND move the mouse continuously. I stuck the code in the MouseMove event, so it only fires when the mouse is moving. :blush: Move the mouse to the corners of the view area to control the direction of the scroll.)
Please note that the backend was never finished (and hasn't been worked on in a few months either
). Some things are incomplete, or are going to change. When I do change the interfaces, I'll change all the GUIDs so their shouldn't be any problems. Don't expect me to support a library that is compatible with this one. It is incomplete, so it's kinda silly to stay compatibile with it. The changes should be fairly minor though so it should be easy to fix up any code you write to work with a new library. So yeah, if you find something that doesn't work right or crashes, it probably wasn't finished. (I know the CLM stuff was never finished, and something else important that I'm forgetting about now).
So, if anyone wants to play around with VB, you could try making a decent map viewer that doesn't have a hardcoded map name. (Easy, with basic programming knowledge). And maybe even have some better scrolling.
Oh, and in case you were wondering, this is that secret project I've been working on for months but was all hush hush about. I've spent countless hours reading assembly to make sure I got the file formats just right, and figured out what most of the fields mean. It shouldn't have any problems in that area I hope. It was written in C++ and has grown to over 7000 lines of code. (Over 10000 lines if you count the autogenerated lines for the COM stuff). It took a few months to write, and probably a few more to complete once I get back to it. (If it can ever really be finished, or will just keep experienceing scope creep :blink: ).
Well, enjoy.