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.
This commit overhauls mass drivers.
Every component of mass drivers are now buildable.
This means:
- Mass Drivers
- Mass Driver Control Computers
- Mass Driver Buttons
Mass driver control computers now support multiple mass drivers.
You can link mass-drivers to buttons via multitool.
Buttons have a range of 7 for their mass driver link.
Computers have infinite range.
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 does the following;
- Repairs mob breathing by adding a new ticker process, mob_master, as
air_master is an unreliable ticker with it's customizable speed
- Restore firedoor attack_hand access
- You can now open and close firedoors by using no item, provided you
have access to them and they aren't locked.
This commit fixes the bug encountered wherein airlocks were not checked
before gas was allowed to move onto their tile- but only if opened and
closed. The problem was that they did not issue the correct atmos updating
command when they closed, but they did when they opened, and when they are
created.
The runtime was seemingly random, but the small sanity check will prevent
it from happening again.
This commit updates the firedoor sprite to the -tg- glass firedoors. It
also changes the fire overlay back to a firey overlay instead of the
greyscaled version. The door Move() has been changed to help any possible
unforseen scenarios.
This commit ports the base system of LINDA from TG. This version of linda
is the original version, with none of -tg-'s fixes, rewrites, or other
such improvements attached.
The mob ignite system has been 100% removed, as LINDA does not support
this normally. It may be added back in when the improvements and refactors
to LINDA have been ported.