GLOBAL_LIST_INIT(command_positions, list( "Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer")) GLOBAL_LIST_INIT(engineering_positions, list( "Chief Engineer", "Station Engineer", "Atmospheric Technician")) GLOBAL_LIST_INIT(medical_positions, list( "Chief Medical Officer", "Medical Doctor", "Geneticist", "Virologist", "Chemist")) GLOBAL_LIST_INIT(science_positions, list( "Research Director", "Scientist", "Roboticist")) GLOBAL_LIST_INIT(supply_positions, list( "Head of Personnel", "Quartermaster", "Cargo Technician", "Shaft Miner")) GLOBAL_LIST_INIT(civilian_positions, list( "Bartender", "Botanist", "Cook", "Janitor", "Curator", "Lawyer", "Chaplain", "Clown", "Mime", "Assistant")) GLOBAL_LIST_INIT(security_positions, list( "Head of Security", "Warden", "Detective", "Security Officer")) GLOBAL_LIST_INIT(nonhuman_positions, list( "AI", "Cyborg", "pAI")) /proc/guest_jobbans(job) return ((job in GLOB.command_positions) || (job in GLOB.nonhuman_positions) || (job in GLOB.security_positions)) //this is necessary because antags happen before job datums are handed out, but NOT before they come into existence //so I can't simply use job datum.department_head straight from the mind datum, laaaaame. /proc/get_department_heads(var/job_title) if(!job_title) return list() for(var/datum/job/J in SSjob.occupations) if(J.title == job_title) return J.department_head //this is a list /proc/get_full_job_name(job) var/static/regex/cap_expand = new("cap(?!tain)") var/static/regex/cmo_expand = new("cmo") var/static/regex/hos_expand = new("hos") var/static/regex/hop_expand = new("hop") var/static/regex/rd_expand = new("rd") var/static/regex/ce_expand = new("ce") var/static/regex/qm_expand = new("qm") var/static/regex/sec_expand = new("(?