I would only continue working on mine, though it is still barely functional.
If I ever finish it, it could be useful, but for now it still doesn't support objects with more than one modified variable, and only supports numeric types.
So
"aa" = (/item/dummy{layer = 203},/turf/something)
would work, assuming /item/dummy and /turf/something existed, but neither
"aa" = (/item/dummy{name = "aabc"},/turf/something)
or
"aa" = (/item/dummy{layer = 203;name = "aabc"},/turf/something)
would.
The difficulty is how should it interpret
"aa" = (/item/dummy{name = "a,a;bc\"}/"},/turf/something)
where it must distinguish between quoted and non-quoted characters that could otherwise easily be used to split the contents by a simple search.
After a test(SS13 itself, though the old map), it took ~2 minutes to load the full map, and gave countless messages of being unable to find turfs.
Second attempt, I copied the durf defs from the old SS13 as well, and I'll see how it turns out...
Update:
Attempt 2:
Still had over a minute of "errors" (Non-fatal, just my code saying that nothing with that path exists) scrolling, mostly areas.
I timed it with the system clock rather than counting, and it seems to have "only" taken a minute and a half.
(The Not type: lines are when it can't find the type, the #, #: lines are just printing any object def with {}s in it)
Will try again with some text output removed and areas copied form SS13 as well.
Update:
Turned off DM's debugging (prints extra data like line number when it encounters a script error. Since the errors I get are custom, friendly, world << text errors, it is utterly worthless)
Also added an area source file, though it is stil missing alot of area defs.
Took 40 seconds to generate the map, and an additional 20 seconds of error scrolling.
With custom maps that exclude the upper Z-levels and let them default to preset ones, it may run faster. Alternatively, putting a sleep() in the loader and having Z-1 be a general waiting area for the pre-map setup, so that the map loads silently in the background while the clients join/set up.
I could have it add an extra Z level that is blank above the rest, and load the map two levels up, with general stuff below, in a base map.
Alternatively, have a 1-Z waiting room map compiled in, on Z-2 load a randomly selected AI sat map, on Z-3 and 4, load the station and external stations(centCom, prision station), and leave Z-5 and Z-6 blank and generated by byond.
Use Z-1 as the "in transit" layer for shuttles, Z-2, Z-5, and Z-6 be the layers to visit when spaced.
I should really stop testing and get back to coding, so that it can load slightly more advanced /object/path{custom variation} things than just a single numeric setting per object.
But, it will have to wait to see what happens if I track down and add the rest of the /area/*s
Edit:
Success!
35 second load, 5 seconds of errors.
(The something = number (same thing) is when it actually gets to parse a {} because it is a single numeric setting. The var = number in the ()s is the one it was passed, theo ther is the one it reconstructed from the var name and value. If they *don't* match, something is wrong)