It previously had to iterate over EVERY task in its list every time. With lots of queued tasks that is slow.
Instead we sort it by schedule time. That means when iterating thru list, if we get to a single task that is in the future, so are all remaining.
* Makes slightly smaller objects capable of bashing open busted APCs
Because I've realized that engineers have enough --- to deal with without having to hunt down a fire extinguisher to bash open an APC
* Grammaring the best
EVA suit no longer stores toolboxes because those use a volume inventory.
CE's suit no longer holds pickaxes and ore satchels, but can now hold inflatables.
Adjusted get_breath_from_internal() proc to disable rig internals if the helmet is retracted and no suitable mask is in place.
Adjusted the internals button to ignore offline rigs.
* Supply Drop POI
* Ration Cache
* BlastMine1
* Supply Drop 2
* Tweaks, package bomb detonators can be re-used
* Changelog
* Missed some spots while cherry-picking
* Merge branch master (I hope this works)
* Appeases travis
* Missed a spot
* Added "Display Initialize() Log" admin debug command so you can see it mid-round.
* Ported the core of the overlays management subsystem from /tg
- Added SSoverlays subsystem for compiling overlay lists and applying them to atoms in a controlled anti-lag subsystem.
- Added vars and procs to atom which should eventually replace all direct interaction with BYOND's /atom/overlays var outside the subsystem.
- Added OVERLAY_QUEUED flag to var/atom/flags bitfield.
- Added small framework for subsystem performance tracking. So far used only by SSoverlays
- Added admin debug command "Display overlay Log" to see performance stats mid-round.
* Fix runtime on universal pipe adaptor update_icons
* Workaround for appearance_bro not initialized
Unfortuantely BYOND's initialization order is strange, and the appearance_bro var is only half initialized when map starts to load, causing errors. We temporarily fix by moving it to be a global-scoped global.
* Convert fire alarms to use add_overlay() A good first test.
* Convert turfs to use add_overlays(), eliminating the turf_overlay_holder!
- Converted as much as I could find about turf overlays to use add_overlay().
- This should be enough to stop BYOND from crashing, so we can eliminate the turf_overlay_holder hack.
- This also lets us remove the anti-corruption hacks from walls and open space.
- ZAS gas overlays can use priority overlays, so this also fixes the gas-goes-away-when-crowbarring-plating issue.
- Stuff like that
* Convert turf overlay interactions to use add_overlay.
Note: This is a plain and simple conversion of existing code to use SSoverlays. However I look at the line changed, and note that that line likely never fully worked as intended, as it has no way of re-applying itself.
I would make it use a priority overlay, but there is no code present for *removing* said overlay from neighbors when it is no longer required. That code should be implemented by original author.