mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-29 02:51:41 +00:00
* Experiment with holding hard references to objects being qdeleted in 515 (saves 1.1+ seconds on init times, more on prod) (#72033) ## About The Pull Request Adds `EXPERIMENT_515_QDEL_HARD_REFERENCE`, which will queue to the GC subsystem using hard references rather than `\ref`. This is only possible in 515 because of the new `refcount` proc. `\ref` is very very slow and has some nasty knock on effects, so removing its usages where possible is good. This is an explicit opt in define because I want to give us the ability to test 515 on live while only testing 515 itself, not our experimental changes. We have a few more of these we want to do so I made a separate file for them. They're auto-defined in unit tests so we see them with the alternate test runner. In a perfect world we'd test both on and off, but eh. Closes https://github.com/tgstation/dev-cycles-initiative/issues/10 * Experiment with holding hard references to objects being qdeleted in 515 (saves 1.1+ seconds on init times, more on prod) * fix missed underbarrels * HEV radio * Keeps gc_destroyed from getting updated on every step thru the gc queue. (#72401) Keeps gc_destroyed from getting updated on every step thru the gc queue. Fixes logic that assumed gc_destroyed is the time the object first qdel'ed. it used to get updated on each stage of the garbage controller and there are 3 stages. Added list index defines for the inner gc item list. * test fix * final fix Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: tastyfish <crazychris32@gmail.com> Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
20 lines
472 B
Plaintext
20 lines
472 B
Plaintext
/mob/living/silicon/pai/death(gibbed)
|
|
if(stat == DEAD)
|
|
return
|
|
set_stat(DEAD)
|
|
update_sight()
|
|
clear_fullscreens()
|
|
/**
|
|
* New pAI's get a brand new mind to prevent meta stuff from their previous
|
|
* life. This new mind causes problems down the line if it's not deleted here.
|
|
*/
|
|
ghostize()
|
|
|
|
if (!QDELETED(card) && loc != card)
|
|
card.forceMove(drop_location())
|
|
card.pai = null
|
|
card.emotion_icon = initial(card.emotion_icon)
|
|
card.update_appearance()
|
|
|
|
qdel(src)
|