Upstream - Organ insert/remove fixes

Temp fixes another race condition inside NIF code
This commit is contained in:
Majkl-J
2025-03-05 13:22:16 +01:00
committed by Waterpig
parent 90a4473d3f
commit 892dfe468f
6 changed files with 10 additions and 5 deletions
+4
View File
@@ -102,5 +102,9 @@ GLOBAL_LIST_INIT(prototype_organs, typecacheof(list(
/obj/item/organ/ears/dullahan,
/obj/item/organ/tongue/dullahan,
/obj/item/organ/eyes/dullahan,
// BUBBER EDIT START
/obj/item/organ/borer_body, // Borer bodies are an abstract base for borers to live in
/obj/item/organ/genital, // Base type which shouldn't appear ingame
// BUBBER EDIT END
), only_root_path = TRUE))
@@ -46,8 +46,6 @@ GLOBAL_LIST_EMPTY(cortical_borers)
/obj/item/organ/borer_body/on_mob_insert(mob/living/carbon/carbon_target, special, movement_flags)
. = ..()
if(isnull(borer))
return // BUBBER TODO: Refactor this mess
for(var/datum/borer_focus/body_focus as anything in borer.body_focuses)
body_focus.on_add()
carbon_target.apply_status_effect(/datum/status_effect/grouped/screwy_hud/fake_healthy, type)
@@ -1,6 +1,6 @@
/obj/item/organ/genital
color = "#fcccb3"
organ_flags = ORGAN_ORGANIC | ORGAN_UNREMOVABLE
organ_flags = ORGAN_ORGANIC | ORGAN_UNREMOVABLE | ORGAN_EXTERNAL
///Size value of the genital, needs to be translated to proper lengths/diameters/cups
var/genital_size = 1
///Sprite name of the genital, it's what shows up on character creation
@@ -23,4 +23,4 @@
return draw_color
/datum/bodypart_overlay/mutant/head_accessory/get_global_feature_list()
return SSaccessories.sprite_accessories["head_accessory"]
return SSaccessories.sprite_accessories["head_acc"]
@@ -23,4 +23,4 @@
return draw_color
/datum/bodypart_overlay/mutant/neck_accessory/get_global_feature_list()
return SSaccessories.sprite_accessories["neck_accessory"]
return SSaccessories.sprite_accessories["neck_acc"]
@@ -165,11 +165,14 @@
if(linked_mob)
UnregisterSignal(linked_mob, COMSIG_LIVING_DEATH, PROC_REF(damage_on_death))
linked_mob = null
QDEL_LIST(loaded_nifsofts)
///Installs preinstalled NIFSofts
/obj/item/organ/cyberimp/brain/nif/proc/install_preinstalled_nifsofts()
if(isnull(linked_mob)) // BUBBER TODO: Fix the race condition here
return FALSE
if(!preinstalled_nifsofts)
return FALSE