![](http://img261.imageshack.us/img261/5082/test20101118185825.png)
All I did was add on to the classic roof system, with certain invisibility/see_invisibility and layer modifications. That is only a poor illusion, however.
With this mode's support, collisions and other interactions between floors can more easily be handled.
In my project, I was able to simulate these features myself:
-I use multiple Z levels that at runtime all pile onto the ground level(grass; the brown area is a big ditch). This only practically allows for one usable Z level, with all the rest being completely empty.
-Stepping onto a tile with a floor one level above you will disable your ability to see all higher floors. In the image below, I stand in the northeast tower.
![](http://img227.imageshack.us/img227/1861/test20101118190550.png)
This is mainly to avoid not being able to see yourself. I also have verbs(look up, look straight). Looking Up allows for you to see the sides of buildings, while Looking Straight removes the tall buildings that block your view of what's directly north of them.
-Modified Move() to ignore collisions on separate floors.
-Icons are lighter at higher floors. This isn't absolutely necessary, but in my opinion it adds depth. It's not relative to your floor in my project, but it probably should be. (Floors higher than you will look ligher, floors lower will look darker)
-A set floor height: the distance in height between one floor and the next. The pixel_y of the floors are currently calculated floor * LEVEL_HEIGHT
-The floors themselves are all under /obj. This makes checking for stairs a bit tedious.
What I can see in the future with this map mode:
-Opacity relative only to the same floor(currently, the only way to do this would be to use black images)
-Multiple Z levels, if a "floor" variable other than "z" itself can be separately added. For travel between... planets or mystical dimensions.
-In Dream Maker's map editor, another set of arrows to edit separate floors. I see it being like in The Sims, where you can see lower floors in the map editor but only modify tiles on the current floor.
-Interactions between floors can still be considered, using procs similar in essence to block() (maybe interfloor_view_crazy_proc_name()?) instead of view(). The view() proc in this mode would only return tiles on the one floor, as if you were on separate z levels.
-The floors would all be under /turf.
Another thing that came to mind is the isometric view that was added. This PILE_MAP format could simply be ORed together like so:
world/map_format = TOPDOWN_MAP | PILE_MAP
//or
world/map_format = ISOMETRIC_MAP | PILE_MAP
I'm sure it would make better use of isometric mapping if BYOND handled multiple floors.
Basically, this feature only really asks for being able to view multiple Z levels (in this case, those less than or equal to the current Z level, unless you're not under a building), along with better interaction between those visible.