From af1ac5b9eee487ce7b52051db46bd22cdc9fea5c Mon Sep 17 00:00:00 2001 From: Jacquerel Date: Mon, 25 Sep 2023 18:39:48 +0100 Subject: [PATCH] Removes debug species from magic mirror (#78541) ## About The Pull Request Tallboys strike again Fixes #78538 Removes "Tall Boys" from the magic mirror, again. Also gives the two fucked up monkey species names and removes _them_ from the magic mirror. When the magic mirror was looping through available species it was finding these monkey subtypes with fucked up limbs, noting that they were not forbidden, then adding them to the assoc list. Because all of them were called "monkey" it would overwrite "monkey" with "monkey who has human arms and torso" which is... not what you wanted to turn into. Additionally I made external organ feature name fall back to the species default if not provided because I kept getting a runtime on monkey tail insertion (nobody has a monkey tail feature in their prefs or DNA) which I originally thought was the cause of this bug, until I fixed it and learned that actually it was something much stupider. --- .../mob/living/carbon/human/species_types/abominations.dm | 5 +++++ code/modules/surgery/organs/external/_external_organ.dm | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/abominations.dm b/code/modules/mob/living/carbon/human/species_types/abominations.dm index b7be74565ac..43ca71311c2 100644 --- a/code/modules/mob/living/carbon/human/species_types/abominations.dm +++ b/code/modules/mob/living/carbon/human/species_types/abominations.dm @@ -3,6 +3,7 @@ name = "\improper Tall Boy" id = SPECIES_TALLBOY examine_limb_id = SPECIES_HUMAN + changesource_flags = MIRROR_BADMIN | WABBAJACK bodypart_overrides = list( BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left, BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right, @@ -13,8 +14,10 @@ ) /datum/species/monkey/human_legged + name = "human-legged monkey" id = SPECIES_MONKEY_HUMAN_LEGGED examine_limb_id = SPECIES_MONKEY + changesource_flags = MIRROR_BADMIN | WABBAJACK bodypart_overrides = list( BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/monkey, BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/monkey, @@ -25,8 +28,10 @@ ) /datum/species/monkey/monkey_freak + name = "human-armed monkey" id = SPECIES_MONKEY_FREAK examine_limb_id = SPECIES_MONKEY + changesource_flags = MIRROR_BADMIN | WABBAJACK bodypart_overrides = list( BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left, BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right, diff --git a/code/modules/surgery/organs/external/_external_organ.dm b/code/modules/surgery/organs/external/_external_organ.dm index 152ca92f1ac..db0d2535640 100644 --- a/code/modules/surgery/organs/external/_external_organ.dm +++ b/code/modules/surgery/organs/external/_external_organ.dm @@ -78,8 +78,10 @@ return if(bodypart_overlay.imprint_on_next_insertion) //We only want this set *once* - - bodypart_overlay.set_appearance_from_name(receiver.dna.features[bodypart_overlay.feature_key]) + var/feature_name = receiver.dna.features[bodypart_overlay.feature_key] + if (isnull(feature_name)) + feature_name = receiver.dna.species.external_organs[type] + bodypart_overlay.set_appearance_from_name(feature_name) bodypart_overlay.imprint_on_next_insertion = FALSE ownerlimb = limb