URW map editor
BlackEye
2/27/2005

Disclaimer:
All the usual disclaimer stuff applies.  Remember that this is an untested program, probably contains bugs, and may crash your computer causing loss of data.  Use it at your own risk.  And make sure to make a backup of your maps before you edit them.

Requirements:
Windows OS (Everything from 98 on should work.  95 probably does as well)
DirectX	(Whatever version Allegro needs.)
Video card capable of 1000x700 windowed resolution in 16,24,or 32 bits. (Windowed mode because the common dialog control doesn't like full screen DirectX, and 1000x700 because I want some space to add features in the future.  800x600 was just too snug a fit)

Use:
Fairly straight forward.  Just run the executable.  Load the map you wish to view or edit.  Click on the map tiles on the bottom to select them.  Click on a tile of map at the top to replace the tile with the one you selected.  Click on save to save your changes.
To delete a teleport, click the "-" sign next to it.
To add a teleport, click the "+" sign and select the destination map for the teleport.  When this is done, click on the map to place the teleport.  Clicking on another button outside the map will cancel the teleport placement.
To exit the program, press the escape key.
Clicking on the "View World Map" button will show the world map for the currently loaded map.  Clicking on the world map will load the regional map that is under the mouse.  Clicking on any of the tile buttons at the bottom will go back to the previously loaded map.
Clicking the middle mouse button on a wilderness map will load the local map under the cursor, unless the location contains a teleport.  If the map is any type of map and a teleport exists at the mouse location, the teleport destination will be opened.
The "Place Feature", "Generate Current Map", and "Generate World Map" will load and run an angelscript script.  Anyone familiar with c or c++ should not have any problem creating a custom script.  Please see http://www.angelcode.com/angelscript for documentation on this scripting language.  There are 5 functions currently exported for use in the scripts.  They are:
int rand();					// returns random number
int gettile(int x, int y);			// gets a tile from local or world map
void settile(int x, int y, int tile);		// sets a tile on local or world map
void getpos(int &x, int &y);			// lets user click on map and sets x and y to tile position that was clicked
void message(string text);			// shows a message box with text specified
There are sample scripts included that show how to use these functions.

Issues:
There are several tiles that have 2 or more duplicates.  While they all might display the same within the game, I would only try to use the "official" tile for that terrian type.  Use a map created by the game to figure out which tiles are the correct ones (and please let me know so I can put a blank bitmap in place of the others!)

Thanks to:
Sami			- for the excellent game
Spuzzum			- for figuring out and documenting the map file format (this saved me lots of time)
Allegro			- for the excellent library
Dosbox			- for the ability to run URW and easily capture those map tiles

You can contact me at:
blackeye1@gmail.com