diff --git a/code/game/jobs/_access_defs.dm b/code/__defines/_access_defs.dm similarity index 100% rename from code/game/jobs/_access_defs.dm rename to code/__defines/_access_defs.dm diff --git a/code/controllers/subsystems/access.dm b/code/controllers/subsystems/access.dm new file mode 100644 index 0000000000..7e6a1333c4 --- /dev/null +++ b/code/controllers/subsystems/access.dm @@ -0,0 +1,126 @@ +SUBSYSTEM_DEF(access) + name = "Access" + flags = SS_NO_FIRE + + VAR_PRIVATE/list/datum/access/priv_all_access_datums + VAR_PRIVATE/list/datum/access/priv_all_access + VAR_PRIVATE/list/datum/access/priv_station_access + VAR_PRIVATE/list/datum/access/priv_centcom_access + VAR_PRIVATE/list/datum/access/priv_syndicate_access + VAR_PRIVATE/list/datum/access/priv_private_access + + VAR_PRIVATE/list/datum/access/priv_all_access_datums_id = list() + VAR_PRIVATE/list/datum/access/priv_all_access_datums_region = list() + VAR_PRIVATE/list/datum/access/priv_region_access = list() + +/datum/controller/subsystem/access/Initialize() + priv_all_access_datums = init_subtypes(/datum/access) + priv_all_access_datums = dd_sortedObjectList(priv_all_access_datums) + + for(var/datum/access/A in get_all_access_datums()) + priv_all_access_datums_id["[A.id]"] = A + LAZYADD(priv_all_access_datums_region["[A.region]"], A) + LAZYADD(priv_region_access["[A.region]"], A.id) + + priv_all_access = get_access_ids() + priv_station_access = get_access_ids(ACCESS_TYPE_STATION) + priv_centcom_access = get_access_ids(ACCESS_TYPE_CENTCOM) + priv_syndicate_access = get_access_ids(ACCESS_TYPE_SYNDICATE) + priv_private_access = get_access_ids(ACCESS_TYPE_PRIVATE) + + return SS_INIT_SUCCESS + +/datum/controller/subsystem/access/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() + +/datum/controller/subsystem/access/proc/get_all_access_datums() + return priv_all_access_datums + +/datum/controller/subsystem/access/proc/get_all_access_datums_by_id() + return priv_all_access_datums_id + +/datum/controller/subsystem/access/proc/get_all_access_datums_by_region() + return priv_all_access_datums_region + +/datum/controller/subsystem/access/proc/get_access_ids(access_types = ACCESS_TYPE_ALL) + var/list/L = list() + for(var/datum/access/A in get_all_access_datums()) + if(A.access_type & access_types) + L += A.id + return L + +/datum/controller/subsystem/access/proc/get_all_accesses() + RETURN_TYPE(/list) + return priv_all_access + +/datum/controller/subsystem/access/proc/get_all_station_access() + RETURN_TYPE(/list) + return priv_station_access + +/datum/controller/subsystem/access/proc/get_all_centcom_access() + RETURN_TYPE(/list) + return priv_centcom_access + +/datum/controller/subsystem/access/proc/get_all_syndicate_access() + RETURN_TYPE(/list) + return priv_syndicate_access + +/datum/controller/subsystem/access/proc/get_all_private_access() + RETURN_TYPE(/list) + return priv_private_access + +/datum/controller/subsystem/access/proc/get_region_accesses(var/code) + if(code == ACCESS_REGION_ALL) + return get_all_station_access() + + return priv_region_access["[code]"] + +/datum/controller/subsystem/access/proc/get_region_accesses_name(var/code) + switch(code) + if(ACCESS_REGION_ALL) + return "All" + if(ACCESS_REGION_SECURITY) //security + return "Security" + if(ACCESS_REGION_MEDBAY) //medbay + return "Medbay" + if(ACCESS_REGION_RESEARCH) //research + return "Research" + if(ACCESS_REGION_ENGINEERING) //engineering and maintenance + return "Engineering" + if(ACCESS_REGION_COMMAND) //command + return "Command" + if(ACCESS_REGION_GENERAL) //station general + return "Station General" + if(ACCESS_REGION_SUPPLY) //supply + return "Supply" + +/datum/controller/subsystem/access/proc/get_access_desc(id) + var/list/access_list = get_all_access_datums_by_id() + var/datum/access/access_datum = access_list["[id]"] + + return access_datum ? access_datum.desc : "" + +/datum/controller/subsystem/access/proc/get_centcom_access_desc(A) + return get_access_desc(A) + +/datum/controller/subsystem/access/proc/get_access_by_id(id) + var/list/access_list = get_all_access_datums_by_id() + return access_list["[id]"] diff --git a/code/datums/outfits/outfit_vr.dm b/code/datums/outfits/outfit_vr.dm index e9e7b87d8c..5e2101524a 100644 --- a/code/datums/outfits/outfit_vr.dm +++ b/code/datums/outfits/outfit_vr.dm @@ -22,8 +22,8 @@ var/obj/item/card/id/C = ..() C.name = "[H.real_name]'s military ID Card" C.icon_state = "lifetime" - C.access = get_all_station_access() - C.access += get_all_centcom_access() + C.access = SSaccess.get_all_station_access() + C.access += SSaccess.get_all_centcom_access() C.assignment = "USDF" C.registered_name = H.real_name return C @@ -48,8 +48,8 @@ var/obj/item/card/id/C = ..() C.name = "[H.real_name]'s military ID Card" C.icon_state = "lifetime" - C.access = get_all_station_access() - C.access += get_all_centcom_access() + C.access = SSaccess.get_all_station_access() + C.access += SSaccess.get_all_centcom_access() C.assignment = "USDF" C.registered_name = H.real_name return C @@ -72,8 +72,8 @@ var/obj/item/card/id/C = ..() C.name = "[H.real_name]'s SolGov ID Card" //YW EDIT: SolGov C.icon_state = "lifetime" - C.access = get_all_station_access() - C.access += get_all_centcom_access() + C.access = SSaccess.get_all_station_access() + C.access += SSaccess.get_all_centcom_access() C.assignment = "SolGov Representative" //YW EDIT: SolGov C.registered_name = H.real_name return C diff --git a/code/game/antagonist/outsider/deathsquad.dm b/code/game/antagonist/outsider/deathsquad.dm index 94bacd3113..d3cb4f0f21 100644 --- a/code/game/antagonist/outsider/deathsquad.dm +++ b/code/game/antagonist/outsider/deathsquad.dm @@ -54,7 +54,7 @@ GLOBAL_DATUM(deathsquad, /datum/antagonist/deathsquad) var/obj/item/card/id/id = create_id("Asset Protection", player) if(id) - id.access |= get_all_station_access() + id.access |= SSaccess.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 f70deed292..0479af7e83 100644 --- a/code/game/antagonist/station/highlander.dm +++ b/code/game/antagonist/station/highlander.dm @@ -53,7 +53,7 @@ GLOBAL_DATUM(highlanders, /datum/antagonist/highlander) var/obj/item/card/id/id = create_id("Highlander", player) if(id) - id.access |= get_all_station_access() + id.access |= SSaccess.get_all_station_access() id.icon_state = "centcom" create_radio(DTH_FREQ, player) diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 933252b436..158cdf50e5 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -44,149 +44,6 @@ return TRUE -/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() - -/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) - priv_all_access_datums = dd_sortedObjectList(priv_all_access_datums) - - return priv_all_access_datums - -/var/list/datum/access/priv_all_access_datums_id -/proc/get_all_access_datums_by_id() - if(!priv_all_access_datums_id) - priv_all_access_datums_id = list() - for(var/datum/access/A in get_all_access_datums()) - priv_all_access_datums_id["[A.id]"] = A - - return priv_all_access_datums_id - -/var/list/datum/access/priv_all_access_datums_region -/proc/get_all_access_datums_by_region() - if(!priv_all_access_datums_region) - priv_all_access_datums_region = list() - for(var/datum/access/A in get_all_access_datums()) - if(!priv_all_access_datums_region[A.region]) - priv_all_access_datums_region[A.region] = list() - priv_all_access_datums_region[A.region] += A - - return priv_all_access_datums_region - -/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_TYPE(/list) - if(!priv_all_access) - priv_all_access = get_access_ids() - - return priv_all_access.Copy() - -/var/list/priv_station_access -/proc/get_all_station_access() - RETURN_TYPE(/list) - if(!priv_station_access) - priv_station_access = get_access_ids(ACCESS_TYPE_STATION) - - return priv_station_access.Copy() - -/var/list/priv_centcom_access -/proc/get_all_centcom_access() - RETURN_TYPE(/list) - if(!priv_centcom_access) - priv_centcom_access = get_access_ids(ACCESS_TYPE_CENTCOM) - - return priv_centcom_access.Copy() - -/var/list/priv_syndicate_access -/proc/get_all_syndicate_access() - RETURN_TYPE(/list) - if(!priv_syndicate_access) - priv_syndicate_access = get_access_ids(ACCESS_TYPE_SYNDICATE) - - return priv_syndicate_access.Copy() - -/var/list/priv_private_access -/proc/get_all_private_access() - RETURN_TYPE(/list) - if(!priv_private_access) - priv_private_access = get_access_ids(ACCESS_TYPE_PRIVATE) - - return priv_syndicate_access.Copy() - -/var/list/priv_region_access -/proc/get_region_accesses(var/code) - 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 - - var/list/L = priv_region_access["[code]"] - return L.Copy() - -/proc/get_region_accesses_name(var/code) - switch(code) - if(ACCESS_REGION_ALL) - return "All" - if(ACCESS_REGION_SECURITY) //security - return "Security" - if(ACCESS_REGION_MEDBAY) //medbay - return "Medbay" - if(ACCESS_REGION_RESEARCH) //research - return "Research" - if(ACCESS_REGION_ENGINEERING) //engineering and maintenance - return "Engineering" - if(ACCESS_REGION_COMMAND) //command - return "Command" - if(ACCESS_REGION_GENERAL) //station general - return "Station General" - if(ACCESS_REGION_SUPPLY) //supply - return "Supply" - -/proc/get_access_desc(id) - var/list/AS = get_all_access_datums_by_id() - var/datum/access/A = AS["[id]"] - - return A ? A.desc : "" - -/proc/get_centcom_access_desc(A) - return get_access_desc(A) - -/proc/get_access_by_id(id) - var/list/AS = get_all_access_datums_by_id() - return AS["[id]"] - /proc/get_all_jobs() var/list/all_jobs = list() var/list/all_datums = typesof(/datum/job) diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index e242d7cc3c..e3552012d6 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -48,7 +48,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca */ /datum/job/captain/get_access() - return get_all_station_access().Copy() + return SSaccess.get_all_station_access().Copy() /datum/job/captain/get_request_reasons() return list("Training crew", "Assembling expedition team") diff --git a/code/game/jobs/job/special.dm b/code/game/jobs/job/special.dm index c00f5935d7..5a6e0ffb87 100644 --- a/code/game/jobs/job/special.dm +++ b/code/game/jobs/job/special.dm @@ -22,7 +22,7 @@ pto_type = PTO_CIVILIAN /datum/job/centcom_officer/get_access() - return get_all_accesses().Copy() + return SSaccess.get_all_accesses().Copy() //YW UNCOMMENTINGSTART: INSTATE LOYALTY IMPLANT /datum/job/centcom_officer/equip(var/mob/living/carbon/human/H) @@ -97,7 +97,7 @@ pto_type = PTO_CIVILIAN /datum/job/emergency_responder/get_access() - return get_all_accesses().Copy() + return SSaccess.get_all_accesses().Copy() /* CHOMPEDIT: Removing Clown/Mime job from being initialized at all (These are alt titles of Entertainer on our codebase) /datum/job/clown title = JOB_CLOWN diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm index 7bc72ead75..1732523e2d 100644 --- a/code/game/machinery/computer/card.dm +++ b/code/game/machinery/computer/card.dm @@ -125,23 +125,23 @@ var/list/all_centcom_access = list() var/list/regions = list() if(modify && is_centcom()) - for(var/access in get_all_centcom_access()) + for(var/access in SSaccess.get_all_centcom_access()) all_centcom_access.Add(list(list( - "desc" = replacetext(get_centcom_access_desc(access), " ", " "), + "desc" = replacetext(SSaccess.get_centcom_access_desc(access), " ", " "), "ref" = access, "allowed" = (access in modify.GetAccess()) ? 1 : 0))) else if(modify) for(var/i in ACCESS_REGION_SECURITY to ACCESS_REGION_SUPPLY) var/list/accesses = list() - for(var/access in get_region_accesses(i)) - if (get_access_desc(access)) + for(var/access in SSaccess.get_region_accesses(i)) + if (SSaccess.get_access_desc(access)) accesses.Add(list(list( - "desc" = replacetext(get_access_desc(access), " ", " "), + "desc" = replacetext(SSaccess.get_access_desc(access), " ", " "), "ref" = access, "allowed" = (access in modify.GetAccess()) ? 1 : 0))) regions.Add(list(list( - "name" = get_region_accesses_name(i), + "name" = SSaccess.get_region_accesses_name(i), "accesses" = accesses))) data["regions"] = regions @@ -195,7 +195,7 @@ if(is_authenticated()) var/access_type = text2num(params["access_target"]) var/access_allowed = text2num(params["allowed"]) - if(access_type in (is_centcom() ? get_all_centcom_access() : get_all_station_access())) + if(access_type in (is_centcom() ? SSaccess.get_all_centcom_access() : SSaccess.get_all_station_access())) modify.access -= access_type if(!access_allowed) modify.access += access_type @@ -212,7 +212,7 @@ else var/list/access = list() if(is_centcom()) - access = get_centcom_access(t1) + access = SSaccess.get_centcom_access(t1) else var/datum/job/jobdatum = SSjob.get_job(t1) if(!jobdatum) @@ -273,7 +273,7 @@ "} for(var/A in modify.access) - P.info += " [get_access_desc(A)]" + P.info += " [SSaccess.get_access_desc(A)]" . = TRUE if("terminate") diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm index 798674f6f0..0a0085cc72 100644 --- a/code/game/machinery/computer/guestpass.dm +++ b/code/game/machinery/computer/guestpass.dm @@ -40,7 +40,7 @@ to_chat(usr, span_notice("It grants access to following areas:")) for (var/A in temp_access) - to_chat(usr, span_notice("[get_access_desc(A)].")) + to_chat(usr, span_notice("[SSaccess.get_access_desc(A)].")) to_chat(usr, span_notice("Issuing reason: [reason].")) return @@ -177,9 +177,9 @@ data["access"] = giver.GetAccess() for (var/A in giver.GetAccess()) if(A in accesses) - area_list.Add(list(list("area" = A, "area_name" = get_access_desc(A), "on" = 1))) + area_list.Add(list(list("area" = A, "area_name" = SSaccess.get_access_desc(A), "on" = 1))) else - area_list.Add(list(list("area" = A, "area_name" = get_access_desc(A), "on" = null))) + area_list.Add(list(list("area" = A, "area_name" = SSaccess.get_access_desc(A), "on" = null))) data["area"] = area_list data["giver"] = giver @@ -258,7 +258,7 @@ for (var/i=1 to accesses.len) var/A = accesses[i] if(A) - var/area = get_access_desc(A) + var/area = SSaccess.get_access_desc(A) entry += "[i > 1 ? ", [area]" : "[area]"]" entry += ". Expires at [worldtime2stationtime(world.time + duration*10*60)]." internal_log.Add(entry) diff --git a/code/game/machinery/computer/supply.dm b/code/game/machinery/computer/supply.dm index f31aebf14c..4d086feb17 100644 --- a/code/game/machinery/computer/supply.dm +++ b/code/game/machinery/computer/supply.dm @@ -255,7 +255,7 @@ reqform.info += "RANK: [idrank]
" reqform.info += "REASON: [reason]
" reqform.info += "SUPPLY CRATE TYPE: [S.name]
" - reqform.info += "ACCESS RESTRICTION: [get_access_desc(S.access)]
" + reqform.info += "ACCESS RESTRICTION: [SSaccess.get_access_desc(S.access)]
" reqform.info += "AMOUNT: [amount]
" reqform.info += "CONTENTS:
" reqform.info += S.get_html_manifest() @@ -308,7 +308,7 @@ reqform.info += "RANK: [idrank]
" reqform.info += "REASON: [reason]
" reqform.info += "SUPPLY CRATE TYPE: [S.name]
" - reqform.info += "ACCESS RESTRICTION: [get_access_desc(S.access)]
" + reqform.info += "ACCESS RESTRICTION: [SSaccess.get_access_desc(S.access)]
" reqform.info += "CONTENTS:
" reqform.info += S.get_html_manifest() reqform.info += "
" diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 41ae04a9dc..1efdf7ede4 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -48,7 +48,7 @@ var/list/accesses = get_available_accesses(user) for (var/acc in accesses) - var/aname = get_access_desc(acc) + var/aname = SSaccess.get_access_desc(acc) if (!conf_access || !conf_access.len || !(acc in conf_access)) t1 += "[aname]
" @@ -139,7 +139,7 @@ // Has engineer access, can put any access else if(has_access(null, apply_any_access, id.GetAccess())) - return get_all_station_access() + return SSaccess.get_all_station_access() // Not an engineer, can only pick your own accesses to program else diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 2aa7b2ce40..635fc02001 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -2398,11 +2398,11 @@

Following keycodes are present in this system:

"} for(var/a in operation_req_access) - output += "[get_access_desc(a)] - Delete
" + output += "[SSaccess.get_access_desc(a)] - Delete
" output += "

Following keycodes were detected on portable device:

" for(var/a in id_card.GetAccess()) if(a in operation_req_access) continue - var/a_name = get_access_desc(a) + var/a_name = SSaccess.get_access_desc(a) if(!a_name) continue //there's some strange access without a name output += "[a_name] - Add
" output += "
Finish " + span_red("(Warning! The ID upload panel will be locked. It can be unlocked only through Exosuit Interface.)") diff --git a/code/game/objects/items/weapons/id cards/station_ids.dm b/code/game/objects/items/weapons/id cards/station_ids.dm index df0ceb7e08..e230d21b19 100644 --- a/code/game/objects/items/weapons/id cards/station_ids.dm +++ b/code/game/objects/items/weapons/id cards/station_ids.dm @@ -181,7 +181,7 @@ /obj/item/card/id/synthetic/Initialize(mapload) . = ..() - access = get_all_station_access().Copy() + ACCESS_SYNTH + access = SSaccess.get_all_station_access().Copy() + ACCESS_SYNTH /obj/item/card/id/lost name = "\improper Unknown ID" @@ -214,11 +214,11 @@ /obj/item/card/id/centcom/Initialize(mapload) . = ..() - access = get_all_centcom_access().Copy() + access = SSaccess.get_all_centcom_access().Copy() /obj/item/card/id/centcom/station/Initialize(mapload) . = ..() - access |= get_all_station_access() + access |= SSaccess.get_all_station_access() /obj/item/card/id/centcom/ert name = "\improper " + JOB_EMERGENCY_RESPONSE_TEAM + "ID" @@ -228,7 +228,7 @@ /obj/item/card/id/centcom/ert/Initialize(mapload) . = ..() - access |= get_all_station_access() + access |= SSaccess.get_all_station_access() // Department-flavor IDs /obj/item/card/id/medical diff --git a/code/game/objects/items/weapons/id cards/syndicate_ids.dm b/code/game/objects/items/weapons/id cards/syndicate_ids.dm index 6ae08b4061..ea0d214773 100644 --- a/code/game/objects/items/weapons/id cards/syndicate_ids.dm +++ b/code/game/objects/items/weapons/id cards/syndicate_ids.dm @@ -15,7 +15,7 @@ /obj/item/card/id/syndicate/station_access/Initialize(mapload) . = ..() // Same as the normal Syndicate id, only already has all station access - access |= get_all_station_access() + access |= SSaccess.get_all_station_access() /obj/item/card/id/syndicate/Destroy() QDEL_NULL(agentcard_module) 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 3ddf1cc052..142422c8b3 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 @@ -29,7 +29,7 @@ open() else req_access = list() - req_access += pick(get_all_station_access()) + req_access += pick(SSaccess.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 690d8a458a..1872fb2229 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -235,7 +235,7 @@ open() else req_access = list() - req_access += pick(get_all_station_access()) + req_access += pick(SSaccess.get_all_station_access()) update_icon() ..() diff --git a/code/modules/admin/modify_robot.dm b/code/modules/admin/modify_robot.dm index 84387d8234..b03eeae0af 100644 --- a/code/modules/admin/modify_robot.dm +++ b/code/modules/admin/modify_robot.dm @@ -113,7 +113,7 @@ .["id_icon"] = icon2html(target.idcard, user, sourceonly=TRUE) var/list/active_access = list() for(var/access in target.idcard?.GetAccess()) - active_access += list(list("id" = access, "name" = get_access_desc(access))) + active_access += list(list("id" = access, "name" = SSaccess.get_access_desc(access))) .["target"]["active_access"] = active_access var/list/access_options = list() for(var/datum/access/acc) @@ -485,17 +485,17 @@ target.idcard.access -= text2num(params["access"]) return TRUE if("add_centcom") - target.idcard.access |= get_all_centcom_access() + target.idcard.access |= SSaccess.get_all_centcom_access() return TRUE if("rem_centcom") - target.idcard.access -= get_all_centcom_access() + target.idcard.access -= SSaccess.get_all_centcom_access() return TRUE if("add_station") - target.idcard.access |= get_all_station_access() + target.idcard.access |= SSaccess.get_all_station_access() target.idcard.access |= ACCESS_SYNTH return TRUE if("rem_station") - target.idcard.access -= get_all_station_access() + target.idcard.access -= SSaccess.get_all_station_access() target.idcard.access -= ACCESS_SYNTH return TRUE if("law_channel") diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 8e78a3e087..14b83c7cc0 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -227,11 +227,11 @@ ADMIN_VERB(cmd_admin_grantfullaccess, (R_ADMIN|R_EVENT), "Grant Full Access", "G var/obj/item/pda/pda = H.wear_id id = pda.id id.icon_state = "gold" - id.access = get_all_accesses().Copy() + id.access = SSaccess.get_all_accesses().Copy() else var/obj/item/card/id/id = new/obj/item/card/id(H); id.icon_state = "gold" - id.access = get_all_accesses().Copy() + id.access = SSaccess.get_all_accesses().Copy() id.registered_name = H.real_name id.assignment = JOB_SITE_MANAGER id.name = "[id.registered_name]'s ID Card ([id.assignment])" diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm index e59ec37c4a..b8fb54011d 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm @@ -791,7 +791,7 @@ . = ..() mob_radio = new /obj/item/radio/headset/mob_headset(src) mob_radio.frequency = DTH_FREQ //Can't tell if bugged, deathsquad freq in general seems broken - myid.access |= get_all_station_access() + myid.access |= SSaccess.get_all_station_access() //Syndicate catslug /mob/living/simple_mob/vore/alienanimals/catslug/custom/spaceslug/syndislug @@ -836,7 +836,7 @@ mob_radio.ks2type = /obj/item/encryptionkey/syndicate mob_radio.keyslot2 = new /obj/item/encryptionkey/syndicate(mob_radio) mob_radio.recalculateChannels(TRUE) - myid.access |= get_all_station_access() + myid.access |= SSaccess.get_all_station_access() //ERT catslug /mob/living/simple_mob/vore/alienanimals/catslug/custom/spaceslug/responseslug @@ -880,7 +880,7 @@ mob_radio.ks2type = /obj/item/encryptionkey/ert mob_radio.keyslot2 = new /obj/item/encryptionkey/ert(mob_radio) mob_radio.recalculateChannels(TRUE) - myid.access |= get_all_station_access() + myid.access |= SSaccess.get_all_station_access() //Pilot Catslug diff --git a/code/modules/modular_computers/file_system/programs/antagonist/access_decrypter.dm b/code/modules/modular_computers/file_system/programs/antagonist/access_decrypter.dm index 5aff199141..eb699eb5d6 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/access_decrypter.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/access_decrypter.dm @@ -71,7 +71,7 @@ message = "RFID card is not present in the device. Operation aborted." return running = TRUE - target_access = get_access_by_id("[params["access_target"]]") + target_access = SSaccess.get_access_by_id("[params["access_target"]]") if(GLOB.ntnet_global.intrusion_detection_enabled) GLOB.ntnet_global.add_log("IDS WARNING - Unauthorised access attempt to primary keycode database from device: [computer.network_card.get_network_tag()]") GLOB.ntnet_global.intrusion_detection_alarm = TRUE @@ -95,16 +95,16 @@ var/obj/item/card/id/id_card = computer.card_slot.stored_card for(var/i = 1; i <= 7; i++) var/list/accesses = list() - for(var/access in get_region_accesses(i)) - if(get_access_desc(access) && !(access in restricted_access_codes)) + for(var/access in SSaccess.get_region_accesses(i)) + if(SSaccess.get_access_desc(access) && !(access in restricted_access_codes)) accesses.Add(list(list( - "desc" = replacetext(get_access_desc(access), " ", " "), + "desc" = replacetext(SSaccess.get_access_desc(access), " ", " "), "ref" = access, "allowed" = (access in id_card.GetAccess()) ? 1 : 0 ))) regions.Add(list(list( - "name" = get_region_accesses_name(i), + "name" = SSaccess.get_region_accesses_name(i), "accesses" = accesses ))) data["regions"] = regions diff --git a/code/modules/tgui/modules/ntos-only/cardmod.dm b/code/modules/tgui/modules/ntos-only/cardmod.dm index 842fa9e8ec..d1d65610c6 100644 --- a/code/modules/tgui/modules/ntos-only/cardmod.dm +++ b/code/modules/tgui/modules/ntos-only/cardmod.dm @@ -66,24 +66,24 @@ if(program.computer.card_slot && program.computer.card_slot.stored_card) var/obj/item/card/id/id_card = program.computer.card_slot.stored_card if(is_centcom) - for(var/access in get_all_centcom_access()) + for(var/access in SSaccess.get_all_centcom_access()) all_centcom_access.Add(list(list( - "desc" = replacetext(get_centcom_access_desc(access), " ", " "), + "desc" = replacetext(SSaccess.get_centcom_access_desc(access), " ", " "), "ref" = access, "allowed" = (access in id_card.GetAccess()) ? 1 : 0))) data["all_centcom_access"] = all_centcom_access else for(var/i in ACCESS_REGION_SECURITY to ACCESS_REGION_SUPPLY) var/list/accesses = list() - for(var/access in get_region_accesses(i)) - if(get_access_desc(access)) + for(var/access in SSaccess.get_region_accesses(i)) + if(SSaccess.get_access_desc(access)) accesses.Add(list(list( - "desc" = replacetext(get_access_desc(access), " ", " "), + "desc" = replacetext(SSaccess.get_access_desc(access), " ", " "), "ref" = access, "allowed" = (access in id_card.GetAccess()) ? 1 : 0))) regions.Add(list(list( - "name" = get_region_accesses_name(i), + "name" = SSaccess.get_region_accesses_name(i), "accesses" = accesses))) data["regions"] = regions @@ -142,10 +142,10 @@ Access:
"} - var/known_access_rights = get_access_ids(ACCESS_TYPE_STATION|ACCESS_TYPE_CENTCOM) + var/known_access_rights = SSaccess.get_access_ids(ACCESS_TYPE_STATION|ACCESS_TYPE_CENTCOM) for(var/A in id_card.GetAccess()) if(A in known_access_rights) - contents += " [get_access_desc(A)]" + contents += " [SSaccess.get_access_desc(A)]" if(!computer.nano_printer.print_text(contents,"access report")) to_chat(ui.user, span_notice("Hardware error: Printer was unable to print the file. It may be out of paper.")) @@ -199,7 +199,7 @@ else var/list/access = list() if(is_centcom) - access = get_centcom_access(t1) + access = SSaccess.get_centcom_access(t1) else var/datum/job/jobdatum for(var/jobtype in typesof(/datum/job)) @@ -223,7 +223,7 @@ if(computer && program.can_run(ui.user, 1)) var/access_type = text2num(params["access_target"]) var/access_allowed = text2num(params["allowed"]) - if(access_type in get_access_ids(ACCESS_TYPE_STATION|ACCESS_TYPE_CENTCOM)) + if(access_type in SSaccess.get_access_ids(ACCESS_TYPE_STATION|ACCESS_TYPE_CENTCOM)) id_card.access -= access_type if(!access_allowed) id_card.access += access_type diff --git a/modular_chomp/code/game/objects/items/weapons/RCD.dm b/modular_chomp/code/game/objects/items/weapons/RCD.dm index 6572878dee..1da98002d7 100644 --- a/modular_chomp/code/game/objects/items/weapons/RCD.dm +++ b/modular_chomp/code/game/objects/items/weapons/RCD.dm @@ -389,15 +389,15 @@ rborosilicate = 12 accesses += "" accesses += "" for(var/i = 1; i <= 7; i++) - accesses += "" + accesses += "" accesses += "" for(var/i = 1; i <= 7; i++) accesses += "" accesses += "
" + span_bold("[get_region_accesses_name(i)]:") + "" + span_bold("[SSaccess.get_region_accesses_name(i)]:") + "
" - for(var/A in get_region_accesses(i)) + for(var/A in SSaccess.get_region_accesses(i)) if(A in conf_access) - accesses += "" + span_red("[replacetext(get_access_desc(A), " ", " ")]") + " " + accesses += "" + span_red("[replacetext(SSaccess.get_access_desc(A), " ", " ")]") + " " else - accesses += "[replacetext(get_access_desc(A), " ", " ")] " + accesses += "[replacetext(SSaccess.get_access_desc(A), " ", " ")] " accesses += "
" accesses += "
" diff --git a/vorestation.dme b/vorestation.dme index a9ab482702..14231d8653 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -26,6 +26,7 @@ #include "code\coalesce.dm" #include "code\world.dm" #include "code\__defines\__globals.dm" +#include "code\__defines\_access_defs.dm" #include "code\__defines\_ast.dm" #include "code\__defines\_atoms.dm" #include "code\__defines\_bitfields.dm" @@ -572,6 +573,7 @@ #include "code\controllers\configuration\entries\resources.dm" #include "code\controllers\configuration\entries\vorestation.dm" #include "code\controllers\observer_listener\atom\observer.dm" +#include "code\controllers\subsystems\access.dm" #include "code\controllers\subsystems\admin_verbs.dm" #include "code\controllers\subsystems\ai.dm" #include "code\controllers\subsystems\aifast.dm" @@ -1256,7 +1258,6 @@ #include "code\game\gamemodes\technomancer\spells\summon\summon_ward.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"