Hopefully nothing went wrong but you never know.
Conflicts:
code/FEA/FEA_fire.dm
code/controllers/supply_shuttle.dm
code/game/gamemodes/changeling/changeling_powers.dm
code/game/machinery/autolathe.dm
code/game/machinery/drying_rack.dm
code/modules/hydroponics/hydroponics.dm
code/modules/projectiles/projectile/magic.dm
code/modules/reagents/Chemistry-Recipes.dm
code/modules/reagents/reagent_dispenser.dm
Adding mining GPS so miners can find each other more easily on the asteroid
Ore Redemption machine usability improved, also now only processes 10 ore per tick due to possible issues with mass processing of ores
Labor mineral rates edited to fall in line with the rest of the minerals, Labor stacker points increased to compensate
Treasure rooms should now spawn properly and start unlit, treasure items tweaked
Cargo points per plasma sheet significantly increased due to increased rarity
PACMAN generator made significantly more efficient to compensate for increased rarity of plasma, amount of plasma in engineering reduced as a result
Slight tweaks here and there of mining mobs in general
Change the GC's loops to for() loops instead of while() loops. Also fixed a really stupid mistake where it would cut random shit out of the destroyed list instead of what was just processed.
Made it use world.time instead of world.timeofday to get rid of stupid midnight rollover errors.
Also there's a split between caps on var clearing and deletion checks
Moved the invisibility = 101 bit out of the GC and into atom/Destroy()
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.
Made the wiki books use the config's wikiurl.
Updated some information in the non-wiki manuals.
You can now specificy a book's window size, the wiki books will be given a value since they are not automatically set the window size.
If it's on on the server revision screen below the preexisting information there will be a readout showing the raw chance of each round type occuring. This doesn't tell anyone what the current round type is, it just shows what the odds are.
It defaults to off
Testing has revealed that it reduces the sluggishness of the game, though it will spike from lag when the singularity is loose. Thanks to ChuckTheSheep for suggesting it.
Server owners who want to keep set background enabled can do so by changing the define.
-mining rooms will be generated before the air controller is created
-changed the total of moles of the NO2 turfs from 2000 to 6000 to compensate the replacement of the canister that spawns like 36000 moles on top of it for a normal canister. I'm talking about the NO2 canister inside of the chamber in atmos. (I will replace the canister in another pull request)
Adds a dedicated lighting subarea for space turfs, and forces all space turfs to use it. This evens out irregularities in lighting space turfs ("this empty space is slightly brighter than that empty space") and removes fire and party alarms from space tiles.
For now I have also made space lighting subareas unpowered. I guess this operates on the theory that the tiles mysteriously teleport power between themselves (along with flashing red lights and party strobes) but it does not work on empty space.