I assume these were all lazy copy-pasting. We're changing computer icons to another set in a file we'll keep separate, and these completely pointless references are annoying. They should inherit this from the `/computer/` level, which they do. Has no effect on Polaris, but cleans up code that shouldn't exist.
Controller with deferrals and SCHECKs to be specific. Won't lag while updating the sun, weather, or temperature.
Also moved some vars around. Namely the planet walls are stored on the planet, not in the weather_holder.
Planets now have their own turfs, the controller 'gives' them to the planets each cycle if there are any unallocated turfs in the global lists, to avoid iterating over other planets' turfs if you have more than one, then cuts the lists if you were crazy and some turf added some invalid type. This saves us type-checking in the for() loops later to make them crunch faster. The former operation should only happen once at the start of the game (and maybe very rarely when turfs are added/removed from a map during the game).
With regards to the temperature updates, rebuilding the zone entirely is an intensive operation. Instead we can use this new cheaty proc to do it from over here. ZAS code outside ZAS oh noooo. Well, the option is to snowflake this case into ZAS which is maybe worse?
Only downside to all this is that if you manually set weather and time it might take between 1-60 seconds for the controller to get around to checking if you wanted to update it. That's not that big a deal. If you really want you can now debug that controller and call doWork on it.
* Adds system for turfs to have "footstep sounds" that play when someone walks over them.
* Adds system for floor types (the kind of turfs where you can put tiles on them) to support the footstep sounds.
* Adds sounds to plating, tiles, wood, and carpet floor types.
* Footstep sound system is configurable in game_options.txt, it can be turned off completely or the volume adjusted.
* 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.
* 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.
* 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.