Works pretty well. If it can't GC something, it'll just del() it and be done.
Speed is amazing, holy shit.
New procs you should be aware of:
qdel(atom/movable) - sets up an object for garbage collection. Call this rather than del(atom/movable).
atom/movable/Destroy() - called right before the object is GC'd, so it still has a loc. Also called if the object is del()'d.
new controller - garbage.dm has all the details on this. Basically it nulls all references on GC'd objects and force del() them if necessary.
Generally speaking, objects should use Destroy() for behavior prior to deletion rather than Del(). You should also always call the parent so the object gets the right gc_destroyed var set.
ISSUES:
Tries to GC mobs atm. This actually works for new players, not so much for humans/monkies/simple_animals/anything. I'm guessing it needs to clear out their mind and HUD and maybe other things.
Gibbing is really bugged. It works, but the overlays just sit there for awhile and ugh. I'm very tempted just to del() mob/living and mob/camera and call it a day.
qdel() equipment doesn't unequip the item.
Pipes don't generally GC correctly. Debugging suggests they get referenced in many pipenets and that isn't cleared properly. However some do work fine. Need assistance here.
Bots don't GC, probably in the radio controller.
Lots of other shit doesn't GC but it's hard to find them because of the pipe spam.
I think I'm calling Destroy() twice by accident.
They now appear correctly, and without interfering with other parts of
the game.
Fixes turrets and their turnie offie things so they work.
Still to do: Readd window clue to bomb test area. Somehow it got removed
from the object's description.
Uses the map tools, but edits a lot of paths.
Makes box2550away unsimulated to combat lag
Adds three new unsimulated floors, which are just copies of simulated
ones
Adds four new unsimluated walls, which are just copies of simulated ones
Breaks telescreens as they don't work off the station
Adds the escape shuttle to the map as it has the penultimate HONK clue
paper on it and replaces the shuttle console with a fake
Adds a needed stat check to security camera computers
Gets rid of disposal overlays on box2550away toilets
Replaces box2550away status displays with fakes
Fixes a bug with entertainment monitors where they had no broken icon
due to being in status_display.dmi instead of stationobjs.dmi
Adds a carpet icon ("carpet2") that was present in 2010 and is used in
box2550away back to floors.dmi
Changes disposal related user messages so they refer to the name var of
the disposal object. This makes the messages refer to my disposal
toilets as toilets instead of diposals.
Removes the non-slip flag of SWAT shoes in the armoury.
God I hope I committed all the files I changed.
Moved all main .dmm maps to _maps/map_files
Each main map gets a .dm file in _maps, this is what's ticked, -NOT- the .dmm file.
This allows use of a MAP_NAME define for various purposes, and lays the groundwork for map customization in the future.
Also included a hacky dm.sh script which supports swapping maps.
For example, "./dm.sh tgstation.dme -Mmetastation" would compile with metastation.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>