* Instead of open spaces simply showing a static image of the turf below, it shows the turf, all objects, and even moving mobs.
* Controller updates the view to floor below fairly quickly; mobs update in real time.
* Open space can be examined to see how deep it is.
* Mobs are examinable even when on floor below, using a special "zshadow" mob.
* Changes from Eris: Heavily re-written to handle layering, special cases, rewrote controller etc. Shadow mobs don't break entering turfs, etc.
* Update to properly layer the objects from multiple "below" floors in the case of tripple-stacked or more z levels.
* Added constant defines for the planes in use.
* Added open_space.dmi with blank_open icon state for open space's darkening overlay.
* Now they won't try and bump you up to the next z on the "lower" step of the stairway. They also don't directly set `loc` Therefore pulling objects up/down actually works.
* Sets their layer so they won't appear above actual objects and mobs.
* Railings are an ON_BORDER object that looks like a railing; you can throw and reach across it, but it stops you from falling into holes or whatever.
* Mobs can climb over them (or throw other mobs over them!)
* They are construtable/deconstructable.
* Smoothly auto-joining sprites to look like a railing.
* Changes from Eris: Converted << to to_chat(), Desnowflaked some code, Fixed being able to climb over when windows are in the way.
* Catwalks are an upgrade to lattice; instead of just a framework of wires its a mostly solid grid walkway.
* They are semi-transparent so you can see wires/pipes below them a bit.
* Smoothly auto-joining sprites to look proper.
* Constructed by upgrading lattice; like lattice it will stop you falling if build over an open space.
* Changes from Eris: Converted << to to_chat(), fix redraw on Destroy(), Fix color macros in text.
As in, the heavy scrubber controller computer. This adds a 'tag' version as well, that allows you to map in specific tagged ("scrubber_tag") computers so you can more accurately control what scrubber goes where. For example, if you had a map that was mostly phoron airlocks!!!
* Adds a verb for debugging any of the running process controllers. Unlike the old debug controller verb, this one is not hard coded, so any present and future processes will be included. Requires R_DEBUG (and R_ADMIN if in paranoid mode)
* Adds a verb for debugging the process scheduler itself. This is hidden by default until debug verbs are shown. Requires R_DEBUG (and R_ADMIN if in paranoid mode)
* Port of https://github.com/Baystation12/Baystation12/pull/16942
* Actually tell turfs when a thrown object hits them, and let them decide what to do about it!
* We do this by calling hitby(), which is how it already works for obj and mob, so this makes behavior consistent.
* This allows us to cleanly solve the problem of a thrown object landing on open space without falling.
Port of https://github.com/Baystation12/Baystation12/pull/16941
* Turbolift auto-mapping code assumed that all lift's first floor would be on z=1. Fixed so it picks the first floor instead of the zth floor from the floor list.
* Global procs should start with /proc
* Use to_chat() macro
* Added utility to find all z-levels are connected (transitively adjacent) and utility to test if two levels are connected.
* When water returned null from return_air_for_internal_lifeform() the life code treats that as vacuum. Instead we must return a mixture containing at least some gas.
* It will attempt to use the exhale type for the species, or fall back to carbon_dioxide if it can't find that info.
* Mining turfs generated during random mapgen get their opacity changed
without a call to recalc_atom_opacity() becuase the game ticker has not
started. Make sure we call it even before that point.
Makes the spawner object itself block air and prevent active edges before the game starts, so you can actually use these in maps now without creating tons of active edge warnings and making ZAS zones merge everywhere. Should save a loooot of time for mappers picking those window directions.