//Since it didn't really belong in any other category, I'm putting this here //This is for procs to replace all the goddamn 'in world's that are chilling around the code var/global/list/player_list = list() //List of all mobs **with clients attached**. Excludes /mob/new_player var/global/list/mob_list = list() //List of all mobs, including clientless var/global/list/human_mob_list = list() //List of all human mobs and sub-types, including clientless var/global/list/silicon_mob_list = list() //List of all silicon mobs, including clientless var/global/list/ai_list = list() //List of all AIs, including clientless var/global/list/living_mob_list = list() //List of all alive mobs, including clientless. Excludes /mob/new_player var/global/list/dead_mob_list = list() //List of all dead mobs, including clientless. Excludes /mob/new_player var/global/list/listening_objects = list() //List of all objects which care about receiving messages (communicators, radios, etc) var/global/list/cable_list = list() //Index for all cables, so that powernets don't have to look through the entire world all the time var/global/list/landmarks_list = list() //list of all landmarks created var/global/list/surgery_steps = list() //list of all surgery steps |BS12 var/global/list/side_effects = list() //list of all medical sideeffects types by thier names |BS12 var/global/list/mechas_list = list() //list of all mechs. Used by hostile mobs target tracking. var/global/list/joblist = list() //list of all jobstypes, minus borg and AI #define all_genders_define_list list(MALE,FEMALE,PLURAL,NEUTER,HERM) //VOREStaton Edit #define all_genders_text_list list("Male","Female","Plural","Neuter","Herm") //VOREStation Edit var/list/mannequins_ // Times that players are allowed to respawn ("ckey" = world.time) GLOBAL_LIST_EMPTY(respawn_timers) // Closets have magic appearances GLOBAL_LIST_EMPTY(closet_appearances) // Posters var/global/list/poster_designs = list() var/global/list/NT_poster_designs = list() //Preferences stuff //Hairstyles var/global/list/hair_styles_list = list() //stores /datum/sprite_accessory/hair indexed by name var/global/list/hair_styles_male_list = list() var/global/list/hair_styles_female_list = list() var/global/list/facial_hair_styles_list = list() //stores /datum/sprite_accessory/facial_hair indexed by name var/global/list/facial_hair_styles_male_list = list() var/global/list/facial_hair_styles_female_list = list() var/global/list/skin_styles_female_list = list() //unused var/global/list/body_marking_styles_list = list() //stores /datum/sprite_accessory/marking indexed by name //Underwear var/datum/category_collection/underwear/global_underwear = new() //Backpacks var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt", "Messenger Bag") var/global/list/pdachoicelist = list("Default", "Slim", "Old", "Rugged", "Holographic") var/global/list/exclude_jobs = list(/datum/job/ai,/datum/job/cyborg) // Visual nets var/list/datum/visualnet/visual_nets = list() var/datum/visualnet/camera/cameranet = new() var/datum/visualnet/cult/cultnet = new() // Runes var/global/list/rune_list = new() var/global/list/escape_list = list() var/global/list/endgame_exits = list() var/global/list/endgame_safespawns = list() var/global/list/syndicate_access = list(access_maint_tunnels, access_syndicate, access_external_airlocks) // Strings which corraspond to bodypart covering flags, useful for outputting what something covers. var/global/list/string_part_flags = list( "head" = HEAD, "face" = FACE, "eyes" = EYES, "upper body" = UPPER_TORSO, "lower body" = LOWER_TORSO, "legs" = LEGS, "feet" = FEET, "arms" = ARMS, "hands" = HANDS ) // Strings which corraspond to slot flags, useful for outputting what slot something is. var/global/list/string_slot_flags = list( "back" = SLOT_BACK, "face" = SLOT_MASK, "waist" = SLOT_BELT, "ID slot" = SLOT_ID, "ears" = SLOT_EARS, "eyes" = SLOT_EYES, "hands" = SLOT_GLOVES, "head" = SLOT_HEAD, "feet" = SLOT_FEET, "exo slot" = SLOT_OCLOTHING, "body" = SLOT_ICLOTHING, "uniform" = SLOT_TIE, "holster" = SLOT_HOLSTER ) /proc/get_mannequin(var/ckey) if(!mannequins_) mannequins_ = new() . = mannequins_[ckey] if(!.) . = new/mob/living/carbon/human/dummy/mannequin() mannequins_[ckey] = . ////////////////////////// /////Initial Building///// ////////////////////////// /proc/makeDatumRefLists() var/list/paths //Hair - Initialise all /datum/sprite_accessory/hair into an list indexed by hair-style name paths = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair for(var/path in paths) var/datum/sprite_accessory/hair/H = new path() hair_styles_list[H.name] = H switch(H.gender) if(MALE) hair_styles_male_list += H.name if(FEMALE) hair_styles_female_list += H.name else hair_styles_male_list += H.name hair_styles_female_list += H.name //Facial Hair - Initialise all /datum/sprite_accessory/facial_hair into an list indexed by facialhair-style name paths = typesof(/datum/sprite_accessory/facial_hair) - /datum/sprite_accessory/facial_hair for(var/path in paths) var/datum/sprite_accessory/facial_hair/H = new path() facial_hair_styles_list[H.name] = H switch(H.gender) if(MALE) facial_hair_styles_male_list += H.name if(FEMALE) facial_hair_styles_female_list += H.name else facial_hair_styles_male_list += H.name facial_hair_styles_female_list += H.name //Body markings - Initialise all /datum/sprite_accessory/marking into an list indexed by marking name paths = typesof(/datum/sprite_accessory/marking) - /datum/sprite_accessory/marking for(var/path in paths) var/datum/sprite_accessory/marking/M = new path() body_marking_styles_list[M.name] = M //Surgery Steps - Initialize all /datum/surgery_step into a list paths = typesof(/datum/surgery_step)-/datum/surgery_step for(var/T in paths) var/datum/surgery_step/S = new T surgery_steps += S sort_surgeries() //List of job. I can't believe this was calculated multiple times per tick! paths = typesof(/datum/job)-/datum/job paths -= exclude_jobs for(var/T in paths) var/datum/job/J = new T joblist[J.title] = J //Languages paths = typesof(/datum/language)-/datum/language for(var/T in paths) var/datum/language/L = new T if (isnull(GLOB.all_languages[L.name])) GLOB.all_languages[L.name] = L else log_debug("Language name conflict! [T] is named [L.name], but that is taken by [GLOB.all_languages[L.name].type]") if(isnull(GLOB.language_name_conflicts[L.name])) GLOB.language_name_conflicts[L.name] = list(GLOB.all_languages[L.name]) GLOB.language_name_conflicts[L.name] += L for (var/language_name in GLOB.all_languages) var/datum/language/L = GLOB.all_languages[language_name] if(!(L.flags & NONGLOBAL)) if(isnull(GLOB.language_keys[L.key])) GLOB.language_keys[L.key] = L else log_debug("Language key conflict! [L] has key [L.key], but that is taken by [(GLOB.language_keys[L.key])]") if(isnull(GLOB.language_key_conflicts[L.key])) GLOB.language_key_conflicts[L.key] = list(GLOB.language_keys[L.key]) GLOB.language_key_conflicts[L.key] += L //Species var/rkey = 0 paths = typesof(/datum/species) for(var/T in paths) rkey++ var/datum/species/S = T if(!initial(S.name)) continue S = new T S.race_key = rkey //Used in mob icon caching. GLOB.all_species[S.name] = S if(!(S.spawn_flags & SPECIES_IS_RESTRICTED)) GLOB.playable_species += S.name if(S.spawn_flags & SPECIES_IS_WHITELISTED) GLOB.whitelisted_species += S.name //Posters paths = typesof(/datum/poster) - /datum/poster paths -= typesof(/datum/poster/nanotrasen) for(var/T in paths) var/datum/poster/P = new T poster_designs += P paths = typesof(/datum/poster/nanotrasen) for(var/T in paths) var/datum/poster/P = new T NT_poster_designs += P //Closet appearances paths = typesof(/decl/closet_appearance) for(var/T in paths) var/decl/closet_appearance/app = new T() GLOB.closet_appearances[T] = app // VOREStation Add - Vore Modes! paths = typesof(/datum/digest_mode) - /datum/digest_mode/transform for(var/T in paths) var/datum/digest_mode/DM = new T GLOB.digest_modes[DM.id] = DM // VOREStation Add End return 1 /* // 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_world(.) */ //Hexidecimal numbers var/global/list/hexNums = list("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F")