Only got the actual map view and block selector working so far, although that was the tricky bit. Absolute nightmare getting the scrolling and so on working but all fine now. It only draws the visible blocks so doesn't require a memory bitmap the size of the whole level or anything silly like that. I've tested on a 1000x1000 blocks level and performance is acceptable.
I'm trying to write it as generically as possible so I can use it for any future 2D tile-based games as well but while the map bit is easy to write like that, I'm scratching my head a bit to figure out how to add non-map items via this editor, since their parameters vary from game to game.
At the moment it loads its settings from a scheme.txt file, a bit like:
size 48 48
block 00 "blank" rgb 0 0 0
block 99 "crate" img "C:\Graphics\Crate.bmp"
block 32 "blue" img "C:\Graphics\BlueBlock.bmp"
I suppose I need to specify the attributes of the various object types in the scheme file along with the blocks, then write a sort of dynamic property editor that can allow me to set up the objects.
I know it seems a bit daft spending this long on a level editor but as I say I'm hoping that I can use the result on future projects as well. I've had a look at mappy and some other tile editors on the net but they don't seem to be quite able to provide what I need.
I really should learn Windows Forms at some point, although I still don't think you can beat Builder for quickly developing tools for personal use. C# scares me a bit.