From 88b80732e727cb5792c7f5c39f629f7dacb4a934 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Tue, 2 Jun 2015 13:05:58 +0200 Subject: [PATCH] Generalizes access definitions. Access description, type, and area/region (medical, security, etc.) is now defined in a datum, ensuring the id modification consoles will (should) never be missing entries. --- baystation12.dme | 2 + code/game/antagonist/outsider/commando.dm | 2 +- code/game/antagonist/outsider/deathsquad.dm | 2 +- code/game/antagonist/station/highlander.dm | 2 +- code/game/jobs/_access_defs.dm | 15 + code/game/jobs/access.dm | 354 +++---------- code/game/jobs/access_datum.dm | 475 ++++++++++++++++++ code/game/jobs/departments.dm | 1 - code/game/jobs/job/captain.dm | 2 +- code/game/machinery/computer/card.dm | 2 +- .../machinery/doors/airlock_electronics.dm | 2 +- code/game/objects/items/weapons/cards_ids.dm | 4 +- .../closets/secure/secure_closets.dm | 2 +- .../structures/crates_lockers/crates.dm | 2 +- code/modules/admin/verbs/debug.dm | 20 +- 15 files changed, 584 insertions(+), 303 deletions(-) create mode 100644 code/game/jobs/_access_defs.dm create mode 100644 code/game/jobs/access_datum.dm delete mode 100644 code/game/jobs/departments.dm diff --git a/baystation12.dme b/baystation12.dme index fca5b332b0..a62dd0f80b 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -308,7 +308,9 @@ #include "code\game\gamemodes\revolution\revolution.dm" #include "code\game\gamemodes\traitor\traitor.dm" #include "code\game\gamemodes\wizard\wizard.dm" +#include "code\game\jobs\_access_defs.dm" #include "code\game\jobs\access.dm" +#include "code\game\jobs\access_datum.dm" #include "code\game\jobs\job_controller.dm" #include "code\game\jobs\jobprocs.dm" #include "code\game\jobs\jobs.dm" diff --git a/code/game/antagonist/outsider/commando.dm b/code/game/antagonist/outsider/commando.dm index 0d3de6cc07..50d8ac5361 100644 --- a/code/game/antagonist/outsider/commando.dm +++ b/code/game/antagonist/outsider/commando.dm @@ -25,6 +25,6 @@ var/datum/antagonist/deathsquad/mercenary/commandos player.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse_rifle(player), slot_r_hand) var/obj/item/weapon/card/id/id = create_id("Commando", player) - id.access |= get_all_accesses() + id.access |= get_all_station_access() id.icon_state = "centcom" create_radio(SYND_FREQ, player) \ No newline at end of file diff --git a/code/game/antagonist/outsider/deathsquad.dm b/code/game/antagonist/outsider/deathsquad.dm index 73c2c7fd78..d03f5c3d8a 100644 --- a/code/game/antagonist/outsider/deathsquad.dm +++ b/code/game/antagonist/outsider/deathsquad.dm @@ -45,7 +45,7 @@ var/datum/antagonist/deathsquad/deathsquad var/obj/item/weapon/card/id/id = create_id("Asset Protection", player) if(id) - id.access |= get_all_accesses() + id.access |= get_all_station_access() id.icon_state = "centcom" create_radio(DTH_FREQ, player) diff --git a/code/game/antagonist/station/highlander.dm b/code/game/antagonist/station/highlander.dm index 3ee73f4a95..c8fbca7b9a 100644 --- a/code/game/antagonist/station/highlander.dm +++ b/code/game/antagonist/station/highlander.dm @@ -44,7 +44,7 @@ var/datum/antagonist/highlander/highlanders var/obj/item/weapon/card/id/W = new(player) W.name = "[player.real_name]'s ID Card" W.icon_state = "centcom" - W.access = get_all_accesses() + W.access = get_all_station_access() W.access += get_all_centcom_access() W.assignment = "Highlander" W.registered_name = player.real_name diff --git a/code/game/jobs/_access_defs.dm b/code/game/jobs/_access_defs.dm new file mode 100644 index 0000000000..eb77c73cfa --- /dev/null +++ b/code/game/jobs/_access_defs.dm @@ -0,0 +1,15 @@ +#define ACCESS_REGION_NONE -1 +#define ACCESS_REGION_ALL 0 +#define ACCESS_REGION_SECURITY 1 +#define ACCESS_REGION_MEDBAY 2 +#define ACCESS_REGION_RESEARCH 3 +#define ACCESS_REGION_ENGINEERING 4 +#define ACCESS_REGION_COMMAND 5 +#define ACCESS_REGION_GENERAL 6 +#define ACCESS_REGION_SUPPLY 7 + +#define ACCESS_TYPE_NONE 0 +#define ACCESS_TYPE_STATION 1 +#define ACCESS_TYPE_CENTCOM 2 +#define ACCESS_TYPE_SYNDICATE 4 +#define ACCESS_TYPE_ALL 7 diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 449e5f68ba..09fc65bf41 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -1,91 +1,5 @@ //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 //engineering hallways -/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 -/var/const/access_psychiatrist = 64 // Psychiatrist's office -/var/const/access_xenoarch = 65 -/var/const/access_medical_equip = 66 - - //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 = list() /obj/var/list/req_one_access = list() @@ -107,7 +21,7 @@ /obj/item/proc/GetAccess() return list() -/obj/item/proc/GetID() +/obj/proc/GetID() return null /obj/proc/check_access(obj/item/I) @@ -149,217 +63,98 @@ if("Supreme Commander") return get_all_centcom_access() +/var/list/datum/access/priv_all_access_datums +/proc/get_all_access_datums() + if(!priv_all_access_datums) + priv_all_access_datums = init_subtypes(/datum/access) + + return priv_all_access_datums + +/var/list/datum/access/priv_all_access_datums_assoc +/proc/get_all_access_datums_assoc() + if(!priv_all_access_datums_assoc) + priv_all_access_datums_assoc = list() + for(var/datum/access/A in get_all_access_datums()) + priv_all_access_datums_assoc["[A.id]"] = A + + return priv_all_access_datums_assoc + +/proc/get_access_ids(var/access_types = ACCESS_TYPE_ALL) + var/list/L = new() + for(var/datum/access/A in get_all_access_datums()) + if(A.access_type & access_types) + L += A.id + return L + +/var/list/priv_all_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_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_construction, - access_hydroponics, access_library, access_lawyer, access_virology, access_psychiatrist, access_cmo, access_qm, access_clown, access_mime, access_surgery, - access_theatre, access_research, access_mining, access_mailsorting, - access_heads_vault, access_mining_station, access_xenobiology, access_ce, access_hop, access_hos, access_RC_announce, - access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_medical_equip) + if(!priv_all_access) + priv_all_access = get_access_ids() + return priv_all_access + +/var/list/priv_station_access +/proc/get_all_station_access() + if(!priv_station_access) + priv_station_access = get_access_ids(ACCESS_TYPE_STATION) + + return priv_station_access + +/var/list/priv_centcom_access /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) + if(!priv_centcom_access) + priv_centcom_access = get_access_ids(ACCESS_TYPE_CENTCOM) + return priv_centcom_access + +/var/list/priv_syndicate_access /proc/get_all_syndicate_access() - return list(access_syndicate) + if(!priv_syndicate_access) + priv_syndicate_access = get_access_ids(ACCESS_TYPE_SYNDICATE) + return priv_syndicate_access + +/var/list/priv_region_access /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_medical_equip, access_genetics, access_morgue, access_chemistry, access_psychiatrist, access_virology, access_surgery, access_cmo) - if(3) //research - return list(access_research, access_tox, access_tox_storage, access_robotics, access_xenobiology, access_xenoarch, access_rd) - if(4) //engineering and maintenance - return list(access_construction, access_maint_tunnels, access_engine, access_engine_equip, access_external_airlocks, access_tech_storage, access_atmospherics, access_ce) - if(5) //command - return list(access_heads, access_RC_announce, access_keycard_auth, access_change_ids, access_ai_upload, access_teleporter, access_eva, access_tcomsat, access_gateway, access_all_personal_lockers, access_heads_vault, 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_mailsorting, access_mining, access_mining_station, access_cargo, access_qm) + if(code == ACCESS_REGION_ALL) + return get_all_station_access() + + if(!priv_region_access) + priv_region_access = list() + for(var/datum/access/A in get_all_access_datums()) + if(!priv_region_access["[A.region]"]) + priv_region_access["[A.region]"] = list() + priv_region_access["[A.region]"] += A.id + + return priv_region_access["[code]"] /proc/get_region_accesses_name(var/code) switch(code) - if(0) + if(ACCESS_REGION_ALL) return "All" - if(1) //security + if(ACCESS_REGION_SECURITY) //security return "Security" - if(2) //medbay + if(ACCESS_REGION_MEDBAY) //medbay return "Medbay" - if(3) //research + if(ACCESS_REGION_RESEARCH) //research return "Research" - if(4) //engineering and maintenance + if(ACCESS_REGION_ENGINEERING) //engineering and maintenance return "Engineering" - if(5) //command + if(ACCESS_REGION_COMMAND) //command return "Command" - if(6) //station general + if(ACCESS_REGION_GENERAL) //station general return "Station General" - if(7) //supply + if(ACCESS_REGION_SUPPLY) //supply return "Supply" +/proc/get_access_desc(id) + var/list/AS = get_all_access_datums_assoc() + var/datum/access/A = AS["[id]"] -/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 Equipment" - if(access_brig) - return "Holding Cells" - if(access_court) - return "Courtroom" - if(access_forensics_lockers) - return "Forensics" - if(access_medical) - return "Medical" - if(access_genetics) - return "Genetics Lab" - if(access_morgue) - return "Morgue" - if(access_tox) - return "R&D Lab" - if(access_tox_storage) - return "Toxins Lab" - if(access_chemistry) - return "Chemistry Lab" - if(access_rd) - return "Research Director" - if(access_bar) - return "Bar" - if(access_janitor) - return "Custodial Closet" - if(access_engine) - return "Engineering" - if(access_engine_equip) - return "Power Equipment" - 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" - 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_psychiatrist) - return "Psychiatrist's Office" - if(access_cmo) - return "Chief Medical Officer" - if(access_qm) - return "Quartermaster" -/* 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 "Cargo 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 EVA" - if(access_xenobiology) - return "Xenobiology Lab" - if(access_xenoarch) - return "Xenoarchaeology" - if(access_hop) - return "Head of Personnel" - if(access_hos) - return "Head of Security" - if(access_ce) - return "Chief Engineer" - 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 "Security" + return A ? A.desc : "" /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" + return get_access_desc(A) /proc/get_all_jobs() var/list/all_jobs = list() @@ -403,12 +198,7 @@ proc/get_all_job_icons() //For all existing HUD icons return joblist + list("Prisoner") /obj/proc/GetJobName() //Used in secHUD icon generation - var/obj/item/weapon/card/id/I - if(istype(src, /obj/item/device/pda)) - var/obj/item/device/pda/P = src - I = P.id - else if(istype(src, /obj/item/weapon/card/id)) - I = src + var/obj/item/weapon/card/id/I = GetID() if(I) var/job_icons = get_all_job_icons() diff --git a/code/game/jobs/access_datum.dm b/code/game/jobs/access_datum.dm new file mode 100644 index 0000000000..d0855e4781 --- /dev/null +++ b/code/game/jobs/access_datum.dm @@ -0,0 +1,475 @@ +/datum/access + var/id = 0 + var/desc = "" + var/region = ACCESS_REGION_NONE + var/access_type = ACCESS_TYPE_STATION + +/***************** +* Station access * +*****************/ +/var/const/access_security = 1 +/datum/access/security + id = access_security + desc = "Security Equipment" + region = ACCESS_REGION_SECURITY + +/var/const/access_brig = 2 // Brig timers and permabrig +/datum/access/security + id = access_brig + desc = "Holding Cells" + region = ACCESS_REGION_SECURITY + +/var/const/access_armory = 3 +/datum/access/armory + id = access_armory + desc = "Armory" + region = ACCESS_REGION_SECURITY + +/var/const/access_forensics_lockers = 4 +/datum/access/forensics_lockers + id = access_forensics_lockers + desc = "Forensics" + region = ACCESS_REGION_SECURITY + +/var/const/access_medical = 5 +/datum/access/medical + id = access_medical + desc = "Medical" + region = ACCESS_REGION_MEDBAY + +/var/const/access_morgue = 6 +/datum/access/morgue + id = access_morgue + desc = "Morgue" + region = ACCESS_REGION_MEDBAY + +/var/const/access_tox = 7 +/datum/access/tox + id = access_tox + desc = "R&D Lab" + region = ACCESS_REGION_RESEARCH + +/var/const/access_tox_storage = 8 +/datum/access/tox_storage + id = access_tox_storage + desc = "Toxins Lab" + region = ACCESS_REGION_RESEARCH + +/var/const/access_genetics = 9 +/datum/access/genetics + id = access_genetics + desc = "Genetics Lab" + region = ACCESS_REGION_MEDBAY + +/var/const/access_engine = 10 +/datum/access/engine + id = access_engine + desc = "Engineering" + region = ACCESS_REGION_ENGINEERING + +/var/const/access_engine_equip = 11 +/datum/access/engine_equip + id = access_engine_equip + desc = "Engine Room" + region = ACCESS_REGION_ENGINEERING + +/var/const/access_maint_tunnels = 12 +/datum/access/maint_tunnels + id = access_maint_tunnels + desc = "Maintenance" + region = ACCESS_REGION_ENGINEERING + +/var/const/access_external_airlocks = 13 +/datum/access/external_airlocks + id = access_external_airlocks + desc = "External Airlocks" + region = ACCESS_REGION_ENGINEERING + +/var/const/access_emergency_storage = 14 +/datum/access/emergency_storage + id = access_emergency_storage + desc = "Emergency Storage" + region = ACCESS_REGION_ENGINEERING + +/var/const/access_change_ids = 15 +/datum/access/change_ids + id = access_change_ids + desc = "ID Computer" + region = ACCESS_REGION_COMMAND + +/var/const/access_ai_upload = 16 +/datum/access/ai_upload + id = access_ai_upload + desc = "AI Upload" + region = ACCESS_REGION_COMMAND + +/var/const/access_teleporter = 17 +/datum/access/teleporter + id = access_teleporter + desc = "Teleporter" + region = ACCESS_REGION_COMMAND + +/var/const/access_eva = 18 +/datum/access/eva + id = access_eva + desc = "EVA" + region = ACCESS_REGION_COMMAND + +/var/const/access_heads = 19 +/datum/access/heads + id = access_heads + desc = "Bridge" + region = ACCESS_REGION_COMMAND + +/var/const/access_captain = 20 +/datum/access/captain + id = access_captain + desc = "Captain" + region = ACCESS_REGION_COMMAND + +/var/const/access_all_personal_lockers = 21 +/datum/access/all_personal_lockers + id = access_all_personal_lockers + desc = "Personal Lockers" + region = ACCESS_REGION_COMMAND + +/var/const/access_chapel_office = 22 +/datum/access/chapel_office + id = access_chapel_office + desc = "Chapel Office" + region = ACCESS_REGION_GENERAL + +/var/const/access_tech_storage = 23 +/datum/access/tech_storage + id = access_tech_storage + desc = "Technical Storage" + region = ACCESS_REGION_ENGINEERING + +/var/const/access_atmospherics = 24 +/datum/access/atmospherics + id = access_atmospherics + desc = "Atmospherics" + region = ACCESS_REGION_ENGINEERING + +/var/const/access_bar = 25 +/datum/access/bar + id = access_bar + desc = "Bar" + region = ACCESS_REGION_GENERAL + +/var/const/access_janitor = 26 +/datum/access/janitor + id = access_janitor + desc = "Custodial Closet" + region = ACCESS_REGION_GENERAL + +/var/const/access_crematorium = 27 +/datum/access/crematorium + id = access_crematorium + desc = "Crematorium" + region = ACCESS_REGION_GENERAL + +/var/const/access_kitchen = 28 +/datum/access/kitchen + id = access_kitchen + desc = "Kitchen" + region = ACCESS_REGION_GENERAL + +/var/const/access_robotics = 29 +/datum/access/robotics + id = access_robotics + desc = "Robotics" + region = ACCESS_REGION_RESEARCH + +/var/const/access_rd = 30 +/datum/access/rd + id = access_rd + desc = "Research Director" + region = ACCESS_REGION_RESEARCH + +/var/const/access_cargo = 31 +/datum/access/cargo + id = access_cargo + desc = "Cargo Bay" + region = ACCESS_REGION_SUPPLY + +/var/const/access_construction = 32 +/datum/access/construction + id = access_construction + desc = "Construction Areas" + region = ACCESS_REGION_ENGINEERING + +/var/const/access_chemistry = 33 +/datum/access/chemistry + id = access_chemistry + desc = "Chemistry Lab" + region = ACCESS_REGION_MEDBAY + +/var/const/access_cargo_bot = 34 +/datum/access/cargo_bot + id = access_cargo_bot + desc = "Cargo Bot Delivery" + region = ACCESS_REGION_SUPPLY + +/var/const/access_hydroponics = 35 +/datum/access/hydroponics + id = access_hydroponics + desc = "Hydroponics" + region = ACCESS_REGION_GENERAL + +/var/const/access_manufacturing = 36 +/datum/access/manufacturing + id = access_manufacturing + desc = "Manufacturing" + access_type = ACCESS_TYPE_NONE + +/var/const/access_library = 37 +/datum/access/library + id = access_library + desc = "Library" + region = ACCESS_REGION_GENERAL + +/var/const/access_lawyer = 38 +/datum/access/lawyer + id = access_lawyer + desc = "Law Office" + region = ACCESS_REGION_GENERAL + +/var/const/access_virology = 39 +/datum/access/virology + id = access_virology + desc = "Virology" + region = ACCESS_REGION_MEDBAY + +/var/const/access_cmo = 40 +/datum/access/cmo + id = access_cmo + desc = "Chief Medical Officer" + region = ACCESS_REGION_COMMAND + +/var/const/access_qm = 41 +/datum/access/qm + id = access_qm + desc = "Quartermaster" + region = ACCESS_REGION_SUPPLY + +/var/const/access_court = 42 +/datum/access/court + id = access_court + desc = "Courtroom" + region = ACCESS_REGION_SECURITY + +/var/const/access_clown = 43 +/datum/access/clown + id = access_clown + desc = "HONK! Access" + +/var/const/access_mime = 44 +/datum/access/mime + id = access_mime + desc = "Silent Access" + +/var/const/access_surgery = 45 +/datum/access/surgery + id = access_surgery + desc = "Surgery" + region = ACCESS_REGION_MEDBAY + +/var/const/access_theatre = 46 +/datum/access/theatre + id = access_theatre + desc = "Theatre" + region = ACCESS_REGION_GENERAL + +/var/const/access_research = 47 +/datum/access/research + id = access_research + desc = "Science" + region = ACCESS_REGION_RESEARCH + +/var/const/access_mining = 48 +/datum/access/mining + id = access_mining + desc = "Mining" + region = ACCESS_REGION_SUPPLY + +/var/const/access_mining_office = 49 +/datum/access/mining_office + id = access_mining_office + desc = "Mining Office" + access_type = ACCESS_TYPE_NONE + +/var/const/access_mailsorting = 50 +/datum/access/mailsorting + id = access_mailsorting + desc = "Cargo Office" + region = ACCESS_REGION_SUPPLY + +/var/const/access_mint = 51 +/datum/access/mint + id = access_mint + desc = "Mint" + region = ACCESS_REGION_SUPPLY + +/var/const/access_mint_vault = 52 +/datum/access/mint_vault + id = access_mint_vault + desc = "Mint Vault" + access_type = ACCESS_TYPE_NONE + +/var/const/access_heads_vault = 53 +/datum/access/heads_vault + id = access_heads_vault + desc = "Main Vault" + region = ACCESS_REGION_COMMAND + +/var/const/access_mining_station = 54 +/datum/access/mining_station + id = access_mining_station + desc = "Mining EVA" + region = ACCESS_REGION_SUPPLY + +/var/const/access_xenobiology = 55 +/datum/access/xenobiology + id = access_xenobiology + desc = "Xenobiology Lab" + region = ACCESS_REGION_RESEARCH + +/var/const/access_ce = 56 +/datum/access/ce + id = access_ce + desc = "Chief Engineer" + region = ACCESS_REGION_ENGINEERING + +/var/const/access_hop = 57 +/datum/access/hop + id = access_hop + desc = "Head of Personnel" + region = ACCESS_REGION_COMMAND + +/var/const/access_hos = 58 +/datum/access/hos + id = access_hos + desc = "Head of Security" + region = ACCESS_REGION_SECURITY + +/var/const/access_RC_announce = 59 //Request console announcements +/datum/access/RC_announce + id = access_RC_announce + desc = "RC Announcements" + region = ACCESS_REGION_COMMAND + +/var/const/access_keycard_auth = 60 //Used for events which require at least two people to confirm them +/datum/access/keycard_auth + id = access_keycard_auth + desc = "Keycode Auth. Device" + region = ACCESS_REGION_COMMAND + +/var/const/access_tcomsat = 61 // has access to the entire telecomms satellite / machinery +/datum/access/tcomsat + id = access_tcomsat + desc = "Telecommunications" + region = ACCESS_REGION_COMMAND + +/var/const/access_gateway = 62 +/datum/access/gateway + id = access_gateway + desc = "Gateway" + region = ACCESS_REGION_COMMAND + +/var/const/access_sec_doors = 63 // Security front doors +/datum/access/sec_doors + id = access_sec_doors + desc = "Security" + region = ACCESS_REGION_SECURITY + +/var/const/access_psychiatrist = 64 // Psychiatrist's office +/datum/access/psychiatrist + id = access_psychiatrist + desc = "Psychiatrist's Office" + region = ACCESS_REGION_MEDBAY + +/var/const/access_xenoarch = 65 +/datum/access/xenoarch + id = access_xenoarch + desc = "Xenoarchaeology" + region = ACCESS_REGION_RESEARCH + +/var/const/access_medical_equip = 66 +/datum/access/medical_equip + id = access_medical_equip + desc = "Medical Equipment" + region = ACCESS_REGION_MEDBAY + +/****************** +* Central Command * +******************/ +/var/const/access_cent_general = 101//General facilities. +/datum/access/cent_general + id = access_cent_general + desc = "Code Grey" + access_type = ACCESS_TYPE_CENTCOM + +/var/const/access_cent_thunder = 102//Thunderdome. +/datum/access/cent_thunder + id = access_cent_thunder + desc = "Code Yellow" + access_type = ACCESS_TYPE_CENTCOM + +/var/const/access_cent_specops = 103//Special Ops. +/datum/access/cent_specops + id = access_cent_specops + desc = "Code Black" + access_type = ACCESS_TYPE_CENTCOM + +/var/const/access_cent_medical = 104//Medical/Research +/datum/access/cent_medical + id = access_cent_medical + desc = "Code White" + access_type = ACCESS_TYPE_CENTCOM + +/var/const/access_cent_living = 105//Living quarters. +/datum/access/cent_living + id = access_cent_living + desc = "Code Green" + access_type = ACCESS_TYPE_CENTCOM + +/var/const/access_cent_storage = 106//Generic storage areas. +/datum/access/cent_storage + id = access_cent_storage + desc = "Code Orange" + access_type = ACCESS_TYPE_CENTCOM + +/var/const/access_cent_teleporter = 107//Teleporter. +/datum/access/cent_teleporter + id = access_cent_teleporter + desc = "Code Blue" + access_type = ACCESS_TYPE_CENTCOM + +/var/const/access_cent_creed = 108//Creed's office. +/datum/access/cent_creed + id = access_cent_creed + desc = "Code Silver" + access_type = ACCESS_TYPE_CENTCOM + +/var/const/access_cent_captain = 109//Captain's office/ID comp/AI. +/datum/access/cent_captain + id = access_cent_captain + desc = "Code Gold" + access_type = ACCESS_TYPE_CENTCOM + +/*************** +* Antag access * +***************/ +/var/const/access_syndicate = 150//General Syndicate Access +/datum/access/syndicate + id = access_syndicate + access_type = ACCESS_TYPE_SYNDICATE + +/******* +* Misc * +*******/ +/var/const/access_crate_cash = 200 +/datum/access/crate_cash + id = access_crate_cash + access_type = ACCESS_TYPE_NONE diff --git a/code/game/jobs/departments.dm b/code/game/jobs/departments.dm deleted file mode 100644 index f424d03a1a..0000000000 --- a/code/game/jobs/departments.dm +++ /dev/null @@ -1 +0,0 @@ -var/list/departments = list("Command", "Medical", "Engineering", "Security", "Civilian", "Cargo") \ No newline at end of file diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 4b9d72ff51..f76ef8edb4 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -42,7 +42,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1) return 1 get_access() - return get_all_accesses() + return get_all_station_access() diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 9879e34565..d817ced1d6 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -183,7 +183,7 @@ if(is_authenticated()) var/access_type = text2num(href_list["access_target"]) var/access_allowed = text2num(href_list["allowed"]) - if(access_type in (is_centcom() ? get_all_centcom_access() : get_all_accesses())) + if(access_type in (is_centcom() ? get_all_centcom_access() : get_all_station_access())) modify.access -= access_type if(!access_allowed) modify.access += access_type diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 80b36d30f9..e69f750a5f 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -42,7 +42,7 @@ t1 += "
" - var/list/accesses = get_all_accesses() + var/list/accesses = get_all_station_access() for (var/acc in accesses) var/aname = get_access_desc(acc) diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index b1448f7516..2a9191440e 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -270,7 +270,7 @@ registered_name = "Captain" assignment = "Captain" New() - access = get_all_accesses() + access = get_all_station_access() ..() /obj/item/weapon/card/id/centcom @@ -289,4 +289,4 @@ /obj/item/weapon/card/id/centcom/ERT/New() ..() - access += get_all_accesses() + access += get_all_station_access() diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index df2985c42e..55cd3b51ca 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -41,7 +41,7 @@ open() else src.req_access = list() - src.req_access += pick(get_all_accesses()) + src.req_access += pick(get_all_station_access()) ..() /obj/structure/closet/secure_closet/proc/togglelock(mob/user as mob) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 96bdae2336..ad28bb4019 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -222,7 +222,7 @@ open() else src.req_access = list() - src.req_access += pick(get_all_accesses()) + src.req_access += pick(get_all_station_access()) ..() /obj/structure/closet/crate/plastic diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 9ab952de64..ec90235a2a 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -387,11 +387,11 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that var/obj/item/device/pda/pda = H.wear_id id = pda.id id.icon_state = "gold" - id:access = get_all_accesses()+get_all_centcom_access()+get_all_syndicate_access() + id.access = get_all_accesses() else var/obj/item/weapon/card/id/id = new/obj/item/weapon/card/id(M); id.icon_state = "gold" - id:access = get_all_accesses()+get_all_centcom_access()+get_all_syndicate_access() + id.access = get_all_accesses() id.registered_name = H.real_name id.assignment = "Captain" id.name = "[id.registered_name]'s ID Card ([id.assignment])" @@ -682,7 +682,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that var/obj/item/weapon/card/id/W = new(M) W.name = "[M.real_name]'s ID Card" - W.access = get_all_accesses() + W.access = get_all_station_access() W.assignment = "Tunnel Clown!" W.registered_name = M.real_name M.equip_to_slot_or_del(W, slot_wear_id) @@ -739,7 +739,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that var/obj/item/weapon/card/id/syndicate/W = new(M) W.name = "[M.real_name]'s ID Card" - W.access = get_all_accesses() + W.access = get_all_station_access() W.assignment = "Reaper" W.registered_name = M.real_name M.equip_to_slot_or_del(W, slot_wear_id) @@ -769,7 +769,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that W.name = "[M.real_name]'s ID Card" W.icon_state = "centcom" W.item_state = "id_inv" - W.access = get_all_accesses() + W.access = get_all_station_access() W.access += list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer") W.assignment = "NanoTrasen Navy Representative" W.registered_name = M.real_name @@ -793,7 +793,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that var/obj/item/weapon/card/id/centcom/W = new(M) W.name = "[M.real_name]'s ID Card" - W.access = get_all_accesses() + W.access = get_all_station_access() W.access += get_all_centcom_access() W.assignment = "NanoTrasen Navy Officer" W.registered_name = M.real_name @@ -818,7 +818,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that var/obj/item/weapon/card/id/centcom/W = new(M) W.name = "[M.real_name]'s ID Card" - W.access = get_all_accesses() + W.access = get_all_station_access() W.access += get_all_centcom_access() W.assignment = "NanoTrasen Navy Captain" W.registered_name = M.real_name @@ -836,7 +836,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that var/obj/item/weapon/card/id/W = new(M) W.name = "[M.real_name]'s ID Card" W.icon_state = "centcom" - W.access = get_all_accesses() + W.access = get_all_station_access() W.access += get_all_centcom_access() W.assignment = "Emergency Response Team" W.registered_name = M.real_name @@ -858,7 +858,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that var/obj/item/weapon/card/id/W = new(M) W.name = "[M.real_name]'s ID Card" W.icon_state = "centcom" - W.access = get_all_accesses() + W.access = get_all_station_access() W.access += get_all_centcom_access() W.assignment = "Special Operations Officer" W.registered_name = M.real_name @@ -912,7 +912,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that var/obj/item/weapon/card/id/W = new(M) W.name = "[M.real_name]'s ID Card" W.icon_state = "centcom" - W.access = get_all_accesses() + W.access = get_all_station_access() W.access += get_all_centcom_access() W.assignment = "Admiral" W.registered_name = M.real_name