WinBolo Online Map Editor (WOME) is a stateless cgi-based map editor for making and editing WinBolo maps. Although not a replacement for a desktop based map editor it is rather neat (and a little pointless).
The WOME source code is released under the GNU GPL version 2 and available to download via Google code.
To build on linux type 'make' in the wome/ directory.
You will want to edit the BASE_URL define in main.c as well as in the HTML files and other locations.
Makes use of:
- cgihtml CGI framework (v1.69) by Eric Kim (http://www.eekim.com/software/cgihtml/)
- base64 encoding/decoding example functions from the public domain.
From the Tools on the left select the terrain type or base/pill/start to place. Click on the map to place it there. Use the Up/Down/Left/Right buttons to move the map around or use the goto at the bottom of the page. When finished click the save map button to save your map. You can upload a map by clicking on the upload button.
- Some times the browser places spaces between the map view squares. This is due to images loading at different speeds. Hit refresh in your browser to fix it.
- Mined tiles don't show up. (See todo)
- Netscape 4.7 is really slow to render tables. Try changing browsers.
I wrote this as a twisted form of stress relief inbetween preparing and taking part in a 2 day SPICE assessment. Plus it would give me a reason to do some real cgi and it is rather neat. Historically, it was suggested by Creo on channel #winbolo on the irc network efnet.
How it works
The idea was to create a stateless web based map editor. A couple of years ago I wrote a program called BMAPView which allowed viewing of WinBolo maps in Windows. (It was rather useless back in 1998) The code was written in a quite portable and reuseable fashion. I took the display view function and replaced the window out code with a HTML table out function. A collection of simple modify functions were added to set map cells. It took about 20 hours to write the whole cgi script. To keep it stateless do this the map must be sent to and from the server with each request. Thus sending the webpage to the user the map is compressed and then base64 encoded. Upon doing an update the map is base64 decoded then decompressed. The map update occurs then the result is sent back to the user after compression and encoding.