mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-09 16:14:13 +00:00
- Applied some changes that happened to jobs since department security was started. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5467 316c924e-a436-60f5-8080-3fe189b3f50e
523 lines
20 KiB
Plaintext
523 lines
20 KiB
Plaintext
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
|
|
|
|
/var/const/access_security = 1 // Security equipment
|
|
/var/const/access_brig = 2 // Brig timers and permabrig
|
|
/var/const/access_armory = 3
|
|
/var/const/access_forensics_lockers= 4
|
|
/var/const/access_medical = 5
|
|
/var/const/access_morgue = 6
|
|
/var/const/access_tox = 7
|
|
/var/const/access_tox_storage = 8
|
|
/var/const/access_genetics = 9
|
|
/var/const/access_engine = 10
|
|
/var/const/access_engine_equip= 11
|
|
/var/const/access_maint_tunnels = 12
|
|
/var/const/access_external_airlocks = 13
|
|
/var/const/access_emergency_storage = 14
|
|
/var/const/access_change_ids = 15
|
|
/var/const/access_ai_upload = 16
|
|
/var/const/access_teleporter = 17
|
|
/var/const/access_eva = 18
|
|
/var/const/access_heads = 19
|
|
/var/const/access_captain = 20
|
|
/var/const/access_all_personal_lockers = 21
|
|
/var/const/access_chapel_office = 22
|
|
/var/const/access_tech_storage = 23
|
|
/var/const/access_atmospherics = 24
|
|
/var/const/access_bar = 25
|
|
/var/const/access_janitor = 26
|
|
/var/const/access_crematorium = 27
|
|
/var/const/access_kitchen = 28
|
|
/var/const/access_robotics = 29
|
|
/var/const/access_rd = 30
|
|
/var/const/access_cargo = 31
|
|
/var/const/access_construction = 32
|
|
/var/const/access_chemistry = 33
|
|
/var/const/access_cargo_bot = 34
|
|
/var/const/access_hydroponics = 35
|
|
/var/const/access_manufacturing = 36
|
|
/var/const/access_library = 37
|
|
/var/const/access_lawyer = 38
|
|
/var/const/access_virology = 39
|
|
/var/const/access_cmo = 40
|
|
/var/const/access_qm = 41
|
|
/var/const/access_court = 42
|
|
/var/const/access_clown = 43
|
|
/var/const/access_mime = 44
|
|
/var/const/access_surgery = 45
|
|
/var/const/access_theatre = 46
|
|
/var/const/access_research = 47
|
|
/var/const/access_mining = 48
|
|
/var/const/access_mining_office = 49 //not in use
|
|
/var/const/access_mailsorting = 50
|
|
/var/const/access_mint = 51
|
|
/var/const/access_mint_vault = 52
|
|
/var/const/access_heads_vault = 53
|
|
/var/const/access_mining_station = 54
|
|
/var/const/access_xenobiology = 55
|
|
/var/const/access_ce = 56
|
|
/var/const/access_hop = 57
|
|
/var/const/access_hos = 58
|
|
/var/const/access_RC_announce = 59 //Request console announcements
|
|
/var/const/access_keycard_auth = 60 //Used for events which require at least two people to confirm them
|
|
/var/const/access_tcomsat = 61 // has access to the entire telecomms satellite / machinery
|
|
/var/const/access_gateway = 62
|
|
/var/const/access_sec_doors = 63 // Security front doors
|
|
|
|
//BEGIN CENTCOM ACCESS
|
|
/*Should leave plenty of room if we need to add more access levels.
|
|
/var/const/Mostly for admin fun times.*/
|
|
/var/const/access_cent_general = 101//General facilities.
|
|
/var/const/access_cent_thunder = 102//Thunderdome.
|
|
/var/const/access_cent_specops = 103//Special Ops.
|
|
/var/const/access_cent_medical = 104//Medical/Research
|
|
/var/const/access_cent_living = 105//Living quarters.
|
|
/var/const/access_cent_storage = 106//Generic storage areas.
|
|
/var/const/access_cent_teleporter = 107//Teleporter.
|
|
/var/const/access_cent_creed = 108//Creed's office.
|
|
/var/const/access_cent_captain = 109//Captain's office/ID comp/AI.
|
|
|
|
//The Syndicate
|
|
/var/const/access_syndicate = 150//General Syndicate Access
|
|
|
|
//MONEY
|
|
/var/const/access_crate_cash = 200
|
|
|
|
/obj/var/list/req_access = null
|
|
/obj/var/req_access_txt = "0"
|
|
/obj/var/list/req_one_access = null
|
|
/obj/var/req_one_access_txt = "0"
|
|
|
|
/obj/New()
|
|
..()
|
|
//NOTE: If a room requires more than one access (IE: Morgue + medbay) set the req_acesss_txt to "5;6" if it requires 5 and 6
|
|
if(src.req_access_txt)
|
|
var/list/req_access_str = text2list(req_access_txt,";")
|
|
if(!req_access)
|
|
req_access = list()
|
|
for(var/x in req_access_str)
|
|
var/n = text2num(x)
|
|
if(n)
|
|
req_access += n
|
|
|
|
if(src.req_one_access_txt)
|
|
var/list/req_one_access_str = text2list(req_one_access_txt,";")
|
|
if(!req_one_access)
|
|
req_one_access = list()
|
|
for(var/x in req_one_access_str)
|
|
var/n = text2num(x)
|
|
if(n)
|
|
req_one_access += n
|
|
|
|
|
|
|
|
//returns 1 if this mob has sufficient access to use this object
|
|
/obj/proc/allowed(mob/M)
|
|
//check if it doesn't require any access at all
|
|
if(src.check_access(null))
|
|
return 1
|
|
if(istype(M, /mob/living/silicon))
|
|
//AI can do whatever he wants
|
|
return 1
|
|
else if(istype(M, /mob/living/carbon/human))
|
|
var/mob/living/carbon/human/H = M
|
|
//if they are holding or wearing a card that has access, that works
|
|
if(src.check_access(H.get_active_hand()) || src.check_access(H.wear_id))
|
|
return 1
|
|
else if(istype(M, /mob/living/carbon/monkey) || istype(M, /mob/living/carbon/alien/humanoid))
|
|
var/mob/living/carbon/george = M
|
|
//they can only hold things :(
|
|
if(george.get_active_hand() && (istype(george.get_active_hand(), /obj/item/weapon/card/id) || istype(george.get_active_hand(), /obj/item/device/pda)) && src.check_access(george.get_active_hand()))
|
|
return 1
|
|
return 0
|
|
|
|
/obj/item/proc/GetAccess()
|
|
return list()
|
|
|
|
/obj/item/proc/GetID()
|
|
return null
|
|
|
|
/obj/proc/check_access(obj/item/weapon/card/id/I)
|
|
|
|
if (istype(I, /obj/item/device/pda))
|
|
var/obj/item/device/pda/pda = I
|
|
I = pda.id
|
|
|
|
if(!src.req_access && !src.req_one_access) //no requirements
|
|
return 1
|
|
if(!istype(src.req_access, /list)) //something's very wrong
|
|
return 1
|
|
|
|
var/list/L = src.req_access
|
|
if(!L.len && (!src.req_one_access || !src.req_one_access.len)) //no requirements
|
|
return 1
|
|
if(!I || !istype(I, /obj/item/weapon/card/id) || !I.access) //not ID or no access
|
|
return 0
|
|
for(var/req in src.req_access)
|
|
if(!(req in I.access)) //doesn't have this access
|
|
return 0
|
|
if(src.req_one_access && src.req_one_access.len)
|
|
for(var/req in src.req_one_access)
|
|
if(req in I.access) //has an access from the single access list
|
|
return 1
|
|
return 0
|
|
return 1
|
|
|
|
|
|
/obj/proc/check_access_list(var/list/L)
|
|
if(!src.req_access && !src.req_one_access) return 1
|
|
if(!istype(src.req_access, /list)) return 1
|
|
if(!src.req_access.len && (!src.req_one_access || !src.req_one_access.len)) return 1
|
|
if(!L) return 0
|
|
if(!istype(L, /list)) return 0
|
|
for(var/req in src.req_access)
|
|
if(!(req in L)) //doesn't have this access
|
|
return 0
|
|
if(src.req_one_access && src.req_one_access.len)
|
|
for(var/req in src.req_one_access)
|
|
if(req in L) //has an access from the single access list
|
|
return 1
|
|
return 0
|
|
return 1
|
|
|
|
|
|
/proc/get_access(job)
|
|
switch(job)
|
|
if("Geneticist")
|
|
return list(access_medical, access_morgue, access_genetics)
|
|
if("Station Engineer")
|
|
return list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction)
|
|
if("Assistant")
|
|
if(config.assistant_maint)
|
|
return list(access_maint_tunnels)
|
|
else
|
|
return list()
|
|
if("Chaplain")
|
|
return list(access_morgue, access_chapel_office, access_crematorium)
|
|
if("Detective")
|
|
return list(access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court)
|
|
if("Medical Doctor")
|
|
return list(access_medical, access_morgue, access_surgery)
|
|
if("Botanist") // -- TLE
|
|
return list(access_hydroponics, access_morgue) // Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS // //Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT //Given Morgue access because they have a viable means of cloning.
|
|
if("Librarian") // -- TLE
|
|
return list(access_library)
|
|
if("Lawyer") //Muskets 160910
|
|
return list(access_lawyer, access_court, access_sec_doors)
|
|
if("Captain")
|
|
return get_all_accesses()
|
|
if("Crew Supervisor")
|
|
return list(access_security, access_sec_doors, access_brig, access_court)
|
|
if("Correctional Advisor")
|
|
return list(access_security, access_sec_doors, access_brig, access_armory, access_court)
|
|
if("Scientist")
|
|
return list(access_tox, access_tox_storage, access_research, access_xenobiology)
|
|
if("Safety Administrator")
|
|
return list(access_medical, access_morgue, access_tox, access_tox_storage, access_chemistry, access_genetics, access_court,
|
|
access_teleporter, access_heads, access_tech_storage, access_security, access_sec_doors, access_brig, access_atmospherics,
|
|
access_maint_tunnels, access_bar, access_janitor, access_kitchen, access_robotics, access_armory, access_hydroponics,
|
|
access_theatre, access_research, access_hos, access_RC_announce, access_forensics_lockers, access_keycard_auth, access_gateway)
|
|
if("Head of Personnel")
|
|
return list(access_security, access_sec_doors, access_brig, access_court, access_forensics_lockers,
|
|
access_tox, access_tox_storage, access_chemistry, access_medical, access_genetics, access_engine,
|
|
access_emergency_storage, access_change_ids, access_ai_upload, access_eva, access_heads,
|
|
access_all_personal_lockers, access_tech_storage, access_maint_tunnels, access_bar, access_janitor,
|
|
access_crematorium, access_kitchen, access_robotics, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer,
|
|
access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station,
|
|
access_clown, access_mime, access_hop, access_RC_announce, access_keycard_auth, access_gateway)
|
|
if("Atmospheric Technician")
|
|
return list(access_atmospherics, access_maint_tunnels, access_emergency_storage, access_construction)
|
|
if("Bartender")
|
|
return list(access_bar)
|
|
if("Chemist")
|
|
return list(access_medical, access_chemistry)
|
|
if("Janitor")
|
|
return list(access_janitor, access_maint_tunnels)
|
|
if("Clown")
|
|
return list(access_clown, access_theatre)
|
|
if("Mime")
|
|
return list(access_mime, access_theatre)
|
|
if("Chef")
|
|
return list(access_kitchen, access_morgue)
|
|
if("Roboticist")
|
|
return list(access_robotics, access_tech_storage, access_morgue) //As a job that handles so many corpses, it makes sense for them to have morgue access.
|
|
if("Cargo Technician")
|
|
return list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting)
|
|
if("Shaft Miner")
|
|
return list(access_mining, access_mint, access_mining_station)
|
|
if("Quartermaster")
|
|
return list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining, access_mining_station)
|
|
if("Chief Engineer")
|
|
return list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
|
|
access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva,
|
|
access_heads, access_ai_upload, access_construction, access_robotics,
|
|
access_mint, access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_sec_doors)
|
|
if("Research Director")
|
|
return list(access_rd, access_heads, access_tox, access_genetics,
|
|
access_tox_storage, access_teleporter,
|
|
access_research, access_robotics, access_xenobiology,
|
|
access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_sec_doors)
|
|
if("Virologist")
|
|
return list(access_medical, access_virology)
|
|
if("Chief Medical Officer")
|
|
return list(access_medical, access_morgue, access_genetics, access_heads,
|
|
access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce,
|
|
access_keycard_auth, access_sec_doors)
|
|
else
|
|
return list()
|
|
|
|
/proc/get_centcom_access(job)
|
|
switch(job)
|
|
if("VIP Guest")
|
|
return list(access_cent_general)
|
|
if("Custodian")
|
|
return list(access_cent_general, access_cent_living, access_cent_storage)
|
|
if("Thunderdome Overseer")
|
|
return list(access_cent_general, access_cent_thunder)
|
|
if("Intel Officer")
|
|
return list(access_cent_general, access_cent_living)
|
|
if("Medical Officer")
|
|
return list(access_cent_general, access_cent_living, access_cent_medical)
|
|
if("Death Commando")
|
|
return list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage)
|
|
if("Research Officer")
|
|
return list(access_cent_general, access_cent_specops, access_cent_medical, access_cent_teleporter, access_cent_storage)
|
|
if("BlackOps Commander")
|
|
return list(access_cent_general, access_cent_thunder, access_cent_specops, access_cent_living, access_cent_storage, access_cent_creed)
|
|
if("Supreme Commander")
|
|
return get_all_centcom_access()
|
|
|
|
/proc/get_all_accesses()
|
|
return list(access_security, access_sec_doors, access_brig, access_armory, access_forensics_lockers, access_court,
|
|
access_medical, access_genetics, access_morgue, access_rd,
|
|
access_tox, access_tox_storage, access_chemistry, access_engine, access_engine_equip, access_maint_tunnels,
|
|
access_external_airlocks, access_emergency_storage, access_change_ids, access_ai_upload,
|
|
access_teleporter, access_eva, access_heads, access_captain, access_all_personal_lockers,
|
|
access_tech_storage, access_chapel_office, access_atmospherics, access_kitchen,
|
|
access_bar, access_janitor, access_crematorium, access_robotics, access_cargo, access_cargo_bot, access_construction,
|
|
access_hydroponics, access_library, access_manufacturing, access_lawyer, access_virology, access_cmo, access_qm, access_clown, access_mime, access_surgery,
|
|
access_theatre, access_research, access_mining, access_mailsorting, access_mint_vault, access_mint,
|
|
access_heads_vault, access_mining_station, access_xenobiology, access_ce, access_hop, access_hos, access_RC_announce,
|
|
access_keycard_auth, access_tcomsat, access_gateway)
|
|
|
|
/proc/get_all_centcom_access()
|
|
return list(access_cent_general, access_cent_thunder, access_cent_specops, access_cent_medical, access_cent_living, access_cent_storage, access_cent_teleporter, access_cent_creed, access_cent_captain)
|
|
|
|
/proc/get_all_syndicate_access()
|
|
return list(access_syndicate)
|
|
|
|
/proc/get_region_accesses(var/code)
|
|
switch(code)
|
|
if(0)
|
|
return get_all_accesses()
|
|
if(1) //security
|
|
return list(access_sec_doors, access_security, access_brig, access_armory, access_forensics_lockers, access_court, access_hos)
|
|
if(2) //medbay
|
|
return list(access_medical, access_genetics, access_morgue, access_chemistry, access_virology, access_surgery, access_cmo)
|
|
if(3) //research
|
|
return list(access_research, access_tox, access_tox_storage, access_xenobiology, access_rd)
|
|
if(4) //engineering and maintenance
|
|
return list(access_maint_tunnels, access_engine, access_engine_equip, access_external_airlocks, access_tech_storage, access_atmospherics, access_construction, access_robotics, access_ce)
|
|
if(5) //command
|
|
return list(access_heads, access_change_ids, access_ai_upload, access_teleporter, access_eva, access_all_personal_lockers, access_heads_vault, access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_hop, access_captain)
|
|
if(6) //station general
|
|
return list(access_kitchen,access_bar, access_hydroponics, access_janitor, access_chapel_office, access_crematorium, access_library, access_theatre, access_lawyer, access_clown, access_mime)
|
|
if(7) //supply
|
|
return list(access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_mining, access_mining_station)
|
|
|
|
/proc/get_region_accesses_name(var/code)
|
|
switch(code)
|
|
if(0)
|
|
return "All"
|
|
if(1) //security
|
|
return "Security"
|
|
if(2) //medbay
|
|
return "Medbay"
|
|
if(3) //research
|
|
return "Research"
|
|
if(4) //engineering and maintenance
|
|
return "Engineering"
|
|
if(5) //command
|
|
return "Command"
|
|
if(6) //station general
|
|
return "Station General"
|
|
if(7) //supply
|
|
return "Supply"
|
|
|
|
|
|
/proc/get_access_desc(A)
|
|
switch(A)
|
|
if(access_cargo)
|
|
return "Cargo Bay"
|
|
if(access_cargo_bot)
|
|
return "Cargo Bot Delivery"
|
|
if(access_security)
|
|
return "Security"
|
|
if(access_brig)
|
|
return "Holding Cells"
|
|
if(access_court)
|
|
return "Courtroom"
|
|
if(access_forensics_lockers)
|
|
return "Detective's Office"
|
|
if(access_medical)
|
|
return "Medical"
|
|
if(access_genetics)
|
|
return "Genetics Lab"
|
|
if(access_morgue)
|
|
return "Morgue"
|
|
if(access_tox)
|
|
return "Research Lab"
|
|
if(access_tox_storage)
|
|
return "Toxins Storage"
|
|
if(access_chemistry)
|
|
return "Chemistry Lab"
|
|
if(access_rd)
|
|
return "RD Private"
|
|
if(access_bar)
|
|
return "Bar"
|
|
if(access_janitor)
|
|
return "Custodial Closet"
|
|
if(access_engine)
|
|
return "Engineering"
|
|
if(access_engine_equip)
|
|
return "APCs"
|
|
if(access_maint_tunnels)
|
|
return "Maintenance"
|
|
if(access_external_airlocks)
|
|
return "External Airlocks"
|
|
if(access_emergency_storage)
|
|
return "Emergency Storage"
|
|
if(access_change_ids)
|
|
return "ID Computer"
|
|
if(access_ai_upload)
|
|
return "AI Upload"
|
|
if(access_teleporter)
|
|
return "Teleporter"
|
|
if(access_eva)
|
|
return "EVA"
|
|
if(access_heads)
|
|
return "Bridge"
|
|
if(access_captain)
|
|
return "Captain Private"
|
|
if(access_all_personal_lockers)
|
|
return "Personal Lockers"
|
|
if(access_chapel_office)
|
|
return "Chapel Office"
|
|
if(access_tech_storage)
|
|
return "Technical Storage"
|
|
if(access_atmospherics)
|
|
return "Atmospherics"
|
|
if(access_crematorium)
|
|
return "Crematorium"
|
|
if(access_armory)
|
|
return "Armory"
|
|
if(access_construction)
|
|
return "Construction Areas"
|
|
if(access_kitchen)
|
|
return "Kitchen"
|
|
if(access_hydroponics)
|
|
return "Hydroponics"
|
|
if(access_library)
|
|
return "Library"
|
|
if(access_lawyer)
|
|
return "Law Office"
|
|
if(access_robotics)
|
|
return "Robotics"
|
|
if(access_virology)
|
|
return "Virology"
|
|
if(access_cmo)
|
|
return "CMO Private"
|
|
if(access_qm)
|
|
return "Quartermaster's Office"
|
|
if(access_clown)
|
|
return "HONK! Access"
|
|
if(access_mime)
|
|
return "Silent Access"
|
|
if(access_surgery)
|
|
return "Surgery"
|
|
if(access_theatre)
|
|
return "Theatre"
|
|
if(access_manufacturing)
|
|
return "Manufacturing"
|
|
if(access_research)
|
|
return "Science"
|
|
if(access_mining)
|
|
return "Mining"
|
|
if(access_mining_office)
|
|
return "Mining Office"
|
|
if(access_mailsorting)
|
|
return "Delivery Office"
|
|
if(access_mint)
|
|
return "Mint"
|
|
if(access_mint_vault)
|
|
return "Mint Vault"
|
|
if(access_heads_vault)
|
|
return "Main Vault"
|
|
if(access_mining_station)
|
|
return "Mining Station EVA"
|
|
if(access_xenobiology)
|
|
return "Xenobiology Lab"
|
|
if(access_hop)
|
|
return "HoP Private"
|
|
if(access_hos)
|
|
return "HoS Private"
|
|
if(access_ce)
|
|
return "CE Private"
|
|
if(access_RC_announce)
|
|
return "RC Announcements"
|
|
if(access_keycard_auth)
|
|
return "Keycode Auth. Device"
|
|
if(access_tcomsat)
|
|
return "Telecommunications"
|
|
if(access_gateway)
|
|
return "Gateway"
|
|
if(access_sec_doors)
|
|
return "Brig"
|
|
|
|
/proc/get_centcom_access_desc(A)
|
|
switch(A)
|
|
if(access_cent_general)
|
|
return "Code Grey"
|
|
if(access_cent_thunder)
|
|
return "Code Yellow"
|
|
if(access_cent_storage)
|
|
return "Code Orange"
|
|
if(access_cent_living)
|
|
return "Code Green"
|
|
if(access_cent_medical)
|
|
return "Code White"
|
|
if(access_cent_teleporter)
|
|
return "Code Blue"
|
|
if(access_cent_specops)
|
|
return "Code Black"
|
|
if(access_cent_creed)
|
|
return "Code Silver"
|
|
if(access_cent_captain)
|
|
return "Code Gold"
|
|
|
|
/proc/get_all_jobs()
|
|
return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Chef", "Botanist", "Quartermaster", "Cargo Technician",
|
|
"Shaft Miner", "Clown", "Mime", "Janitor", "Librarian", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer",
|
|
"Atmospheric Technician", "Roboticist", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist",
|
|
"Research Director", "Scientist", "Head of Security", "Warden", "Detective", "Security Officer")
|
|
|
|
/proc/get_all_centcom_jobs()
|
|
return list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer","BlackOps Commander","Supreme Commander")
|
|
|
|
/obj/proc/GetJobName()
|
|
if (!istype(src, /obj/item/device/pda) && !istype(src,/obj/item/weapon/card/id))
|
|
return
|
|
|
|
var/jobName
|
|
|
|
if(istype(src, /obj/item/device/pda))
|
|
if(src:id)
|
|
jobName = src:id:assignment
|
|
if(istype(src, /obj/item/weapon/card/id))
|
|
jobName = src:assignment
|
|
|
|
if(jobName in get_all_jobs())
|
|
return jobName
|
|
else
|
|
return "Unknown"
|