* Revert "Revert "Huge Sprite Rework"" * Compilation of all feedback fixes This commit contains all the suggested fixes so far and the changes we came up with through discussion about the code. For example, genitals **may** now use alternate icons for aroused states, but does not have to, this is decided by a boolean variable in the sprite accessory itself, defaulting to not using alternate icons. Genital icon_state names now follow a new format to match these new options in a modular way for all kinds of genitals. * Conflict solving reformats all the taurs to use the TAUR layer instead of the BODY_FRONT layer. Same for the new Eevee sprites. * Committing the old, unfixed file. This will cause errors if used, but at least it won't cause conflicts. * Contains fixed sprite names The shepherd taur body should STILL have a hole in the body due to a pixel error. I have forgotten which pixes these are, so.... **le shrug** * Anger commit Commiting this in anger. I WILL make it work damnit! * Proper name fixes. Also renames the taur cow to no longer have an incorrectly duplicate icon_state. * Shepherd taur pixel fix Fixes the missing pixels from the taur body that caused a hole to appear when viewed from the sides. * Conflict resolution This PR will cause some sprite-breaking overlay errors. But it's the only way to handle the conflicting .dmi. So I'll make a separate PR to fix the sprites later. * Fixes global lists Now they use whatever weird new system we got for them.
112 lines
5.4 KiB
Plaintext
112 lines
5.4 KiB
Plaintext
//////////////////////////
|
|
/////Initial Building/////
|
|
//////////////////////////
|
|
|
|
/proc/make_datum_references_lists()
|
|
//hair
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/hair, GLOB.hair_styles_list, GLOB.hair_styles_male_list, GLOB.hair_styles_female_list)
|
|
//facial hair
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/facial_hair, GLOB.facial_hair_styles_list, GLOB.facial_hair_styles_male_list, GLOB.facial_hair_styles_female_list)
|
|
//underwear
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear, GLOB.underwear_list, GLOB.underwear_m, GLOB.underwear_f)
|
|
//undershirt
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, GLOB.undershirt_list, GLOB.undershirt_m, GLOB.undershirt_f)
|
|
//socks
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, GLOB.socks_list)
|
|
//lizard bodyparts (blizzard intensifies)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, GLOB.body_markings_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, GLOB.tails_list_lizard)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/lizard, GLOB.animated_tails_list_lizard)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/human, GLOB.animated_tails_list_human)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, GLOB.snouts_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/horns,GLOB.horns_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, GLOB.ears_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.wings_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings_open, GLOB.wings_open_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, GLOB.frills_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, GLOB.spines_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/spines_animated, GLOB.animated_spines_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/legs, GLOB.legs_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.r_wings_list,roundstart = TRUE)
|
|
|
|
//citadel code
|
|
//mammal bodyparts (fucking furries)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, GLOB.mam_body_markings_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, GLOB.mam_tails_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_ears, GLOB.mam_ears_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails_animated, GLOB.mam_tails_animated_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/taur, GLOB.taur_list)
|
|
//avian bodyparts (i swear this isn't starbound)
|
|
// init_sprite_accessory_subtypes(/datum/sprite_accessory/beaks/avian, GLOB.avian_beaks_list)
|
|
// init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/avian, GLOB.avian_tails_list)
|
|
// init_sprite_accessory_subtypes(/datum/sprite_accessory/avian_wings, GLOB.avian_wings_list)
|
|
// init_sprite_accessory_subtypes(/datum/sprite_accessory/avian_open_wings, GLOB.avian_open_wings_list)
|
|
//xeno parts (hiss?)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_head, GLOB.xeno_head_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_tail, GLOB.xeno_tail_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_dorsal, GLOB.xeno_dorsal_list)
|
|
//genitals
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
|
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
|
|
GLOB.breasts_size_list = list("a","b","c","d","e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
|
|
|
|
//Species
|
|
for(var/spath in subtypesof(/datum/species))
|
|
var/datum/species/S = new spath()
|
|
if(S.roundstart)
|
|
GLOB.roundstart_species[S.id] = S.type
|
|
GLOB.species_list[S.id] = S.type
|
|
|
|
//Surgeries
|
|
for(var/path in subtypesof(/datum/surgery))
|
|
GLOB.surgeries_list += new path()
|
|
|
|
//Materials
|
|
for(var/path in subtypesof(/datum/material))
|
|
var/datum/material/D = new path()
|
|
GLOB.materials_list[D.id] = D
|
|
|
|
//Techs
|
|
for(var/path in subtypesof(/datum/tech))
|
|
var/datum/tech/D = new path()
|
|
GLOB.tech_list[D.id] = D
|
|
|
|
//Emotes
|
|
for(var/path in subtypesof(/datum/emote))
|
|
var/datum/emote/E = new path()
|
|
E.emote_list[E.key] = E
|
|
|
|
init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes)
|
|
|
|
/* // Uncomment to debug chemical reaction list.
|
|
/client/verb/debug_chemical_list()
|
|
|
|
for (var/reaction in chemical_reactions_list)
|
|
. += "chemical_reactions_list\[\"[reaction]\"\] = \"[chemical_reactions_list[reaction]]\"\n"
|
|
if(islist(chemical_reactions_list[reaction]))
|
|
var/list/L = chemical_reactions_list[reaction]
|
|
for(var/t in L)
|
|
. += " has: [t]\n"
|
|
to_chat(world, .)
|
|
*/
|
|
|
|
//creates every subtype of prototype (excluding prototype) and adds it to list L.
|
|
//if no list/L is provided, one is created.
|
|
/proc/init_subtypes(prototype, list/L)
|
|
if(!istype(L))
|
|
L = list()
|
|
for(var/path in subtypesof(prototype))
|
|
L += new path()
|
|
return L
|
|
|
|
//returns a list of paths to every subtype of prototype (excluding prototype)
|
|
//if no list/L is provided, one is created.
|
|
/proc/init_paths(prototype, list/L)
|
|
if(!istype(L))
|
|
L = list()
|
|
for(var/path in subtypesof(prototype))
|
|
L+= path
|
|
return L
|