From abc0daaa4b1e23088b5187e1faa5abbd31dec9b4 Mon Sep 17 00:00:00 2001 From: Roxy <75404941+TealSeer@users.noreply.github.com> Date: Wed, 15 Oct 2025 19:45:01 -0400 Subject: [PATCH] Fixes for 6ba755cb44dd82589e6b5857f50465925d588c14 --- .../mutant_bodypart_overlay.dm | 4 ++-- .../mob/living/carbon/human/_species.dm | 21 ------------------- code/modules/unit_tests/organs.dm | 4 ++++ .../code/modules/mob/living/human/species.dm | 7 ++----- .../new_player/sprite_accessories/snout.dm | 1 - .../modules/surgery/organs/cap.dm | 1 - .../modules/surgery/organs/fluff.dm | 2 -- .../modules/surgery/organs/frills.dm | 1 - .../modules/surgery/organs/head_accessory.dm | 2 -- .../modules/surgery/organs/horns.dm | 1 - .../modules/surgery/organs/moth_markings.dm | 2 -- .../modules/surgery/organs/neck_accessory.dm | 2 -- .../modules/surgery/organs/skrell_hair.dm | 1 - .../modules/surgery/organs/synth_antenna.dm | 1 - .../modules/surgery/organs/synth_screen.dm | 2 -- .../modules/surgery/organs/xenodorsal.dm | 2 -- .../modules/surgery/organs/xenohead.dm | 1 - .../modules/taur_mechanics/taur_body.dm | 1 - 18 files changed, 8 insertions(+), 48 deletions(-) diff --git a/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm b/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm index b875da42ce2..85c938749f0 100644 --- a/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm @@ -33,7 +33,7 @@ stack_trace("adding a [parent.type] to a [receiver.type] when it shouldn't be!") if(imprint_on_next_insertion) //We only want this set *once* - var/feature_name = receiver.dna.features[feature_key] || receiver.dna.species.mutant_organs[parent.type] + var/feature_name = receiver.dna.features[feature_key] // BUBBER EDIT CHANGE - Original: var/feature_name = receiver.dna.features[feature_key] || receiver.dna.species.mutant_organs[parent.type] if (isnull(feature_name)) /* SKYRAT EDIT - Customization - ORIGINAL: stack_trace("[type] has no default feature name for organ [parent.type]!") @@ -41,7 +41,7 @@ set_appearance_from_name(feature_name) */ // SKYRAT EDIT START if(!set_appearance_from_dna(receiver.dna)) - set_appearance_from_name(receiver.dna.species.mutant_organs[parent.type] || pick(get_global_feature_list())) + set_appearance_from_name(receiver.dna.species.mutant_organs[parent.type] || get_consistent_feature_entry(get_global_feature_list())) else set_appearance_from_name(feature_name) // SKYRAT EDIT END diff --git a/code/modules/mob/living/carbon/human/_species.dm b/code/modules/mob/living/carbon/human/_species.dm index b7bc0c0fa72..64a21366e35 100644 --- a/code/modules/mob/living/carbon/human/_species.dm +++ b/code/modules/mob/living/carbon/human/_species.dm @@ -1590,27 +1590,6 @@ GLOBAL_LIST_EMPTY(features_by_species) /datum/species/proc/get_types_to_preload() return get_organs(FALSE) -/* -/datum/species/proc/get_mut_organs(include_brain = TRUE) - var/list/mut_organs = list() - mut_organs += mutant_organs - if (include_brain) - mut_organs += mutantbrain - mut_organs += mutantheart - mut_organs += mutantlungs - mut_organs += mutanteyes - mut_organs += mutantears - mut_organs += mutanttongue - mut_organs += mutantliver - mut_organs += mutantstomach - mut_organs += mutantappendix - list_clear_nulls(mut_organs) - return mut_organs - - -/datum/species/proc/get_types_to_preload() - return get_mut_organs(FALSE) -*/ // BUBBER EDIT - OR END /** * Owner login diff --git a/code/modules/unit_tests/organs.dm b/code/modules/unit_tests/organs.dm index 816447bdb52..f2866ead190 100644 --- a/code/modules/unit_tests/organs.dm +++ b/code/modules/unit_tests/organs.dm @@ -125,6 +125,8 @@ brain.forceMove(dummy.loc) allocated += brain +// BUBBER EDIT REMOVAL BEGIN - This test is non-functional with our mutant bodyparts system +/* /datum/unit_test/felinid_ears /datum/unit_test/felinid_ears/Run() @@ -137,3 +139,5 @@ var/mob/living/carbon/human/anime_dummy = allocate(/mob/living/carbon/human/consistent) anime_dummy.set_species(/datum/species/human/felinid, pref_load = TRUE) TEST_ASSERT(istype(anime_dummy.get_organ_slot(ORGAN_SLOT_EARS), /obj/item/organ/ears/cat), "Felinid with default ears set did not have cat ears on species gain.") +*/ +// BUBBER EDIT REMOVAL END diff --git a/modular_skyrat/master_files/code/modules/mob/living/human/species.dm b/modular_skyrat/master_files/code/modules/mob/living/human/species.dm index bbc2570ed15..f9324affff9 100644 --- a/modular_skyrat/master_files/code/modules/mob/living/human/species.dm +++ b/modular_skyrat/master_files/code/modules/mob/living/human/species.dm @@ -12,6 +12,7 @@ return cached_features var/list/features = list() + var/list/mut_organs = get_organs() for (var/preference_type in GLOB.preference_entries) var/datum/preference/preference = GLOB.preference_entries[preference_type] @@ -20,14 +21,10 @@ (preference.relevant_mutant_bodypart in GLOB.default_mutant_bodyparts[name]) \ || (preference.relevant_inherent_trait in inherent_traits) \ || (preference.relevant_head_flag && check_head_flags(preference.relevant_head_flag)) \ + || (preference.relevant_organ in mut_organs) \ ) features += preference.savefile_key - for (var/obj/item/organ/organ_type as anything in mutant_organs) - var/preference = initial(organ_type.preference) - if (!isnull(preference)) - features += preference - GLOB.features_by_species[type] = features return features diff --git a/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.dm b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.dm index 03a9ef339d2..006ee9cf3fb 100644 --- a/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.dm +++ b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.dm @@ -16,7 +16,6 @@ mutantpart_key = "snout" mutantpart_info = list(MUTANT_INDEX_NAME = "None", MUTANT_INDEX_COLOR_LIST = list("#FFFFFF", "#FFFFFF", "#FFFFFF")) external_bodyshapes = NONE // We don't actually want this to have by default, since some of them don't apply that. - preference = "feature_snout" /datum/bodypart_overlay/mutant/snout color_source = ORGAN_COLOR_OVERRIDE diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/cap.dm b/modular_skyrat/modules/customization/modules/surgery/organs/cap.dm index 7de60b47d60..d43c27b4ae7 100644 --- a/modular_skyrat/modules/customization/modules/surgery/organs/cap.dm +++ b/modular_skyrat/modules/customization/modules/surgery/organs/cap.dm @@ -4,7 +4,6 @@ mutantpart_key = "caps" mutantpart_info = list(MUTANT_INDEX_NAME = "Round", MUTANT_INDEX_COLOR_LIST = list("#FF4B19")) slot = ORGAN_SLOT_EXTERNAL_CAP - preference = "feature_caps" organ_flags = ORGAN_EXTERNAL /obj/item/organ/mushroom_cap/Initialize(mapload) diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/fluff.dm b/modular_skyrat/modules/customization/modules/surgery/organs/fluff.dm index d63e83117aa..578ee0f7f82 100644 --- a/modular_skyrat/modules/customization/modules/surgery/organs/fluff.dm +++ b/modular_skyrat/modules/customization/modules/surgery/organs/fluff.dm @@ -10,8 +10,6 @@ slot = ORGAN_SLOT_EXTERNAL_FLUFF organ_flags = ORGAN_UNREMOVABLE - preference = "feature_fluff" - bodypart_overlay = /datum/bodypart_overlay/mutant/fluff /datum/bodypart_overlay/mutant/fluff diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/frills.dm b/modular_skyrat/modules/customization/modules/surgery/organs/frills.dm index b3dbc1d481b..c98921180e8 100644 --- a/modular_skyrat/modules/customization/modules/surgery/organs/frills.dm +++ b/modular_skyrat/modules/customization/modules/surgery/organs/frills.dm @@ -1,5 +1,4 @@ /obj/item/organ/frills - preference = "feature_frills" mutantpart_key = "frills" mutantpart_info = list(MUTANT_INDEX_NAME = "Divinity", MUTANT_INDEX_COLOR_LIST = list("#FFFFFF")) organ_flags = ORGAN_EXTERNAL diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/head_accessory.dm b/modular_skyrat/modules/customization/modules/surgery/organs/head_accessory.dm index 99d804f2a44..804c332200f 100644 --- a/modular_skyrat/modules/customization/modules/surgery/organs/head_accessory.dm +++ b/modular_skyrat/modules/customization/modules/surgery/organs/head_accessory.dm @@ -10,8 +10,6 @@ slot = ORGAN_SLOT_EXTERNAL_HEAD_ACCESSORY organ_flags = ORGAN_UNREMOVABLE - preference = "feature_head_accessory" - bodypart_overlay = /datum/bodypart_overlay/mutant/head_accessory /datum/bodypart_overlay/mutant/head_accessory diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/horns.dm b/modular_skyrat/modules/customization/modules/surgery/organs/horns.dm index 239545451e5..e084c6a6226 100644 --- a/modular_skyrat/modules/customization/modules/surgery/organs/horns.dm +++ b/modular_skyrat/modules/customization/modules/surgery/organs/horns.dm @@ -1,6 +1,5 @@ /obj/item/organ/horns desc = "Why do some people even have horns? Well, this one obviously doesn't." - preference = "feature_horns" mutantpart_key = "horns" mutantpart_info = list(MUTANT_INDEX_NAME = "Simple", MUTANT_INDEX_COLOR_LIST = list("#FFFFFF")) organ_flags = ORGAN_EXTERNAL diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/moth_markings.dm b/modular_skyrat/modules/customization/modules/surgery/organs/moth_markings.dm index aa10a2e02ca..c23da1f945f 100644 --- a/modular_skyrat/modules/customization/modules/surgery/organs/moth_markings.dm +++ b/modular_skyrat/modules/customization/modules/surgery/organs/moth_markings.dm @@ -10,8 +10,6 @@ slot = ORGAN_SLOT_EXTERNAL_MOTH_MARKINGS organ_flags = ORGAN_UNREMOVABLE - preference = "feature_moth_markings" - bodypart_overlay = /datum/bodypart_overlay/mutant/moth_markings /datum/bodypart_overlay/mutant/moth_markings diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/neck_accessory.dm b/modular_skyrat/modules/customization/modules/surgery/organs/neck_accessory.dm index 59d9d04220f..d7518d9c114 100644 --- a/modular_skyrat/modules/customization/modules/surgery/organs/neck_accessory.dm +++ b/modular_skyrat/modules/customization/modules/surgery/organs/neck_accessory.dm @@ -10,8 +10,6 @@ slot = ORGAN_SLOT_EXTERNAL_NECK_ACCESSORY organ_flags = ORGAN_UNREMOVABLE - preference = "feature_neck_accessory" - bodypart_overlay = /datum/bodypart_overlay/mutant/neck_accessory /datum/bodypart_overlay/mutant/neck_accessory diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/skrell_hair.dm b/modular_skyrat/modules/customization/modules/surgery/organs/skrell_hair.dm index 630117d5fd4..673d48c839f 100644 --- a/modular_skyrat/modules/customization/modules/surgery/organs/skrell_hair.dm +++ b/modular_skyrat/modules/customization/modules/surgery/organs/skrell_hair.dm @@ -9,7 +9,6 @@ zone = BODY_ZONE_HEAD slot = ORGAN_SLOT_EXTERNAL_SKRELL_HAIR organ_flags = ORGAN_EXTERNAL - preference = "feature_skrell_hair" bodypart_overlay = /datum/bodypart_overlay/mutant/skrell_hair use_mob_sprite_as_obj_sprite = TRUE diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/synth_antenna.dm b/modular_skyrat/modules/customization/modules/surgery/organs/synth_antenna.dm index 65566212855..d8c0c8134e8 100644 --- a/modular_skyrat/modules/customization/modules/surgery/organs/synth_antenna.dm +++ b/modular_skyrat/modules/customization/modules/surgery/organs/synth_antenna.dm @@ -9,7 +9,6 @@ zone = BODY_ZONE_HEAD slot = ORGAN_SLOT_EXTERNAL_SYNTH_ANTENNA organ_flags = ORGAN_UNREMOVABLE - preference = "feature_ipc_antenna" bodypart_overlay = /datum/bodypart_overlay/mutant/synth_antenna use_mob_sprite_as_obj_sprite = TRUE diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/synth_screen.dm b/modular_skyrat/modules/customization/modules/surgery/organs/synth_screen.dm index 780a59f32c4..c457e276231 100644 --- a/modular_skyrat/modules/customization/modules/surgery/organs/synth_screen.dm +++ b/modular_skyrat/modules/customization/modules/surgery/organs/synth_screen.dm @@ -10,8 +10,6 @@ slot = ORGAN_SLOT_EXTERNAL_SYNTH_SCREEN organ_flags = ORGAN_EXTERNAL - preference = "feature_ipc_screen" - bodypart_overlay = /datum/bodypart_overlay/mutant/synth_screen use_mob_sprite_as_obj_sprite = TRUE diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/xenodorsal.dm b/modular_skyrat/modules/customization/modules/surgery/organs/xenodorsal.dm index 4be0cc74632..fefebd88e1c 100644 --- a/modular_skyrat/modules/customization/modules/surgery/organs/xenodorsal.dm +++ b/modular_skyrat/modules/customization/modules/surgery/organs/xenodorsal.dm @@ -10,8 +10,6 @@ slot = ORGAN_SLOT_EXTERNAL_XENODORSAL organ_flags = ORGAN_EXTERNAL - preference = "feature_xenodorsal" - bodypart_overlay = /datum/bodypart_overlay/mutant/xenodorsal /datum/bodypart_overlay/mutant/xenodorsal diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/xenohead.dm b/modular_skyrat/modules/customization/modules/surgery/organs/xenohead.dm index e2ab2354573..a5fc9225f14 100644 --- a/modular_skyrat/modules/customization/modules/surgery/organs/xenohead.dm +++ b/modular_skyrat/modules/customization/modules/surgery/organs/xenohead.dm @@ -9,7 +9,6 @@ zone = BODY_ZONE_HEAD slot = ORGAN_SLOT_EXTERNAL_XENOHEAD - preference = "feature_xenohead" organ_flags = ORGAN_UNREMOVABLE bodypart_overlay = /datum/bodypart_overlay/mutant/xenohead diff --git a/modular_zubbers/modules/taur_mechanics/taur_body.dm b/modular_zubbers/modules/taur_mechanics/taur_body.dm index 808f277ffee..22462bbdddf 100644 --- a/modular_zubbers/modules/taur_mechanics/taur_body.dm +++ b/modular_zubbers/modules/taur_mechanics/taur_body.dm @@ -7,7 +7,6 @@ external_bodyshapes = BODYSHAPE_TAUR use_mob_sprite_as_obj_sprite = TRUE - preference = "feature_taur" mutantpart_key = "taur" mutantpart_info = list(MUTANT_INDEX_NAME = "None", MUTANT_INDEX_COLOR_LIST = list("#FFFFFF", "#FFFFFF", "#FFFFFF")) bodypart_overlay = /datum/bodypart_overlay/mutant/taur_body