diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm
index f54d8d6b18..c921e27104 100644
--- a/code/_helpers/global_lists_vr.dm
+++ b/code/_helpers/global_lists_vr.dm
@@ -11,6 +11,8 @@ var/global/list/positive_traits = list() // Positive custom species traits, inde
var/global/list/traits_costs = list() // Just path = cost list, saves time in char setup
var/global/list/all_traits = list() // All of 'em at once (same instances)
+var/global/list/custom_species_bases = list() // Species that can be used for a Custom Species icon base
+
//stores numeric player size options indexed by name
var/global/list/player_sizes_list = list(
"Macro" = RESIZE_HUGE,
@@ -195,4 +197,14 @@ var/global/list/edible_trash = list(/obj/item/trash,
if(0.1 to INFINITY)
positive_traits[path] = instance
- return 1 // Hooks must return 1
\ No newline at end of file
+ // Custom species icon bases
+ var/list/blacklisted_icons = list("Custom Species","Promethean") //Just ones that won't work well.
+ for(var/species_name in playable_species)
+ if(species_name in blacklisted_icons)
+ continue
+ var/datum/species/S = all_species[species_name]
+ if(S.spawn_flags & SPECIES_IS_WHITELISTED)
+ continue
+ custom_species_bases += species_name
+
+ return 1 // Hooks must return 1
diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm
index c6b8f32e1e..4ffe1d37c7 100644
--- a/code/modules/client/preference_setup/vore/07_traits.dm
+++ b/code/modules/client/preference_setup/vore/07_traits.dm
@@ -98,16 +98,11 @@
. += "Custom Species "
. += "[pref.custom_species ? pref.custom_species : "-Input Name-"]
"
- if(pref.species == "Custom Species")
+ if(pref.species == "Custom Species" || pref.species == "Xenochimera")
. += "Icon Base: "
. += "[pref.custom_base ? pref.custom_base : "Human"]
"
- if(pref.species == "Xenochimera")
- . += "Icon Base: "
- . += "[pref.custom_base ? pref.custom_base : "Human"]
"
-
if(pref.species == "Custom Species")
-
var/points_left = pref.starting_trait_points
var/traits_left = pref.max_traits
for(var/T in pref.pos_traits + pref.neg_traits)
@@ -161,13 +156,7 @@
return TOPIC_REFRESH
else if(href_list["custom_base"])
- var/text_choice = input("Pick an icon set for your species:","Icon Base") in playable_species - whitelisted_species - "Custom Species" - "Promethean"
- if(text_choice in playable_species)
- pref.custom_base = text_choice
- return TOPIC_REFRESH_UPDATE_PREVIEW
-
- else if(href_list["custom_base_xenochimera"])
- var/text_choice = input("Pick an icon set for your species:","Icon Base") in playable_species - whitelisted_species - "Custom Species" - "Promethean" + "Xenochimera"
+ var/text_choice = input("Pick an icon set for your species:","Icon Base") in custom_species_bases
if(text_choice in playable_species)
pref.custom_base = text_choice
return TOPIC_REFRESH_UPDATE_PREVIEW