Maps currently work with X,Y,Z coordinates. The X and Y coordinates are points on the map, while the Z coordinate refers to the map you want to use.
The suggestion is to radically alter this. However, older versions should naturally remain backwards compatible.
An additional coordinate would be handy: the "map" coordinate. It can be used in locate() and accepts two possible values:
- A reference to a resource file.
- A reference to an external file.
- Both files must be map files (.dmm) in order to work.
Now this solves one issue that I've read about countless times: being able to separate z-levels from multiple map files.
But this is not all that I'm requesting. Nay, the real request is about layers.
Z-levels should be seen as layers. If you're on z-level 3, and there's a floor tile "missing" (a turf with no icon / (partially) transparent icon), it should be see-through to z-level 2. With this design in mind, it's actually possible to do this.
That's basically my suggestion. To separate multiple map files and z-levels from each other, and to then use the z-levels as layers which are stacked on top of each other in relation to what the player sees. Perhaps there could even be a set src argument of some sort that can be used to access verbs of objects on different layers. I dunno.
Any thoughts on this idea though? I bet it'll take 5.0 to finally have this implemented, but I just wanted to throw this idea out there in case nobody else thought of it this way yet.
I would certainly love to see this implemented, but why would that require a new way to sort/store/reference map levels?
You could do the very same with the current set up as well, "all" you'd have to do is to alter the client (and maybe parts of the client server communication).