This commit first and foremost ports the -tg- atom pooling system, and
removes the old experimental system entirely.
Secondly, this PR modifies the qdel system to use a -tg- lookalike
"destroy hint" system, which means that individual objects can tell qdel
what to do with them beyond taking care of things they need to delete.
This ties into the atom pooling system via a new hint define,
QDEL_HINT_PUTINPOOL, which will place the atom in the pool instead of
deleting it as per standard.
Emitter beams are now fully pooled.
Qdel now has semi-compatibility with all datum types, however it is not
the same as -tg-'s "Queue everything!" system. It simply passes it through
the GC immediately and adds it to the "hard del" lists. This means that
reagents can be qdel'ed, but there is no purpose as of yet, as it is more
or less the same as just deleting them, with the added effect of adding
logs of them being deleted to the garbage collector.
pAIs inherited UnarmedAttack from /mob/living, which caused them to
attempt to attack_animal() things they clicked, which would generally
runtime on account of not having the variables expected from a
simple_animal.
Instead of a snowflake check in adjacent.dm, doors now actually properly
use their nice open_layer and close_layer when opening and closing, thus
removing the need for a snowflake check to open firelocks that would
appear on the same layer as doors.
This commit makes the ventcrawling system operate independant of
ventcrawling verbs. Every type of /mob/living now has a ventcrawling
variable, which allows them to interact with the ventcrawling system if
set to 1 or 2. The AltClickOn() defines for each ventcrawling mob have
been removed, and replaced with a single AltClick() define on ventcrawl
machinery.
This commit updates the previous commit with the latest changes from the
CB:GI git.
Primary Changes:
- Dancing! Passively grab someone, they passively grab you, looks like
dancing/wrestling. You get the image, I'm sure.
- Clarifications and possible runtime nipping.
This commit adds the following to the grab system:
- Knifing (Attack with edge weapon while neckgrabbing)
- Pressing eyes (Harm intent, neck grab, eye zone)
- Jointlocking (Grab intent, neck grab, almost any limb)
- Headbutting (Harm intent, neck grab, target chest or groin)
- Pin (Disarm intent, pins affecting to the ground until you move or let
go with help intent)
Ventcrawling mobs now no longer get a teleportation menu, instead, they
are put inside the vents, the client gets an overlay of the pipes in the
pipe network, and it is up to them to navigate.