Removed the "feature" to have something log in an atom's vv attack log, but not the file attack log. all attack log items will go to the file as well as vv.
Replaced all hard coded src.name/name for attack log's object argument with an actual object (src) except where it made more sense not to.
All attack logging *should* happen AFTER damage is applied now.
Removed the confusing attack entry for when a changeling stings another changeling.
Tweaked how punch attack logs worked
Trying to place a C4 on an object will currently move the object onto your tile, and produce a runtime. This was because the code was trying to drop the target rather than the C4.
Moves shuttle turfs to paths under /turf/simulated/floor and /turf/simulated/wall
Players can now safely build on top of shuttle turfs
Fixes#1711
Adds several but not all paths for the different types of floor turfs, most of them in plasteel_floor.dm
The turf pathings are still in need of a deeper organization, but this is at least a start
Sprites by Ausop, which he posted in his sprite thread.
The gravity generator is very sturdy, as it is almost indestructible, but explosions can break it and it will need repairs.
Changed C4 to stop del()'ing and instead will only use ex_act().
Added an interact_offline variable for machines that will allow you to interact with them even if they are depowered. The gravity generator only uses this at the moment.
Removed the stun that people get when gravity changes.
Shuttles have gravity still.
Added a gravity generator room to the west of Engineering. It is very secure, with a foyer and requiring CE or Captain access. There are instructions on the table for repairing and enabling/disabling the machine.
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.
Explosion game log now has epicenter coords
Powersink placement and explosion notifications
C4 notifications and logs
Logging singulo munchies and death
All SMES interactions now logged, because any of them can mess stuff up
Telesci logs what was teleported