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.
This commit is contained in:
PsiOmegaDelta
2015-06-02 13:05:58 +02:00
committed by PsiOmega
parent 497decba5f
commit 88b80732e7
15 changed files with 584 additions and 303 deletions

View File

@@ -308,7 +308,9 @@
#include "code\game\gamemodes\revolution\revolution.dm" #include "code\game\gamemodes\revolution\revolution.dm"
#include "code\game\gamemodes\traitor\traitor.dm" #include "code\game\gamemodes\traitor\traitor.dm"
#include "code\game\gamemodes\wizard\wizard.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.dm"
#include "code\game\jobs\access_datum.dm"
#include "code\game\jobs\job_controller.dm" #include "code\game\jobs\job_controller.dm"
#include "code\game\jobs\jobprocs.dm" #include "code\game\jobs\jobprocs.dm"
#include "code\game\jobs\jobs.dm" #include "code\game\jobs\jobs.dm"

View File

@@ -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) 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) 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" id.icon_state = "centcom"
create_radio(SYND_FREQ, player) create_radio(SYND_FREQ, player)

View File

@@ -45,7 +45,7 @@ var/datum/antagonist/deathsquad/deathsquad
var/obj/item/weapon/card/id/id = create_id("Asset Protection", player) var/obj/item/weapon/card/id/id = create_id("Asset Protection", player)
if(id) if(id)
id.access |= get_all_accesses() id.access |= get_all_station_access()
id.icon_state = "centcom" id.icon_state = "centcom"
create_radio(DTH_FREQ, player) create_radio(DTH_FREQ, player)

View File

@@ -44,7 +44,7 @@ var/datum/antagonist/highlander/highlanders
var/obj/item/weapon/card/id/W = new(player) var/obj/item/weapon/card/id/W = new(player)
W.name = "[player.real_name]'s ID Card" W.name = "[player.real_name]'s ID Card"
W.icon_state = "centcom" W.icon_state = "centcom"
W.access = get_all_accesses() W.access = get_all_station_access()
W.access += get_all_centcom_access() W.access += get_all_centcom_access()
W.assignment = "Highlander" W.assignment = "Highlander"
W.registered_name = player.real_name W.registered_name = player.real_name

View File

@@ -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

View File

@@ -1,91 +1,5 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 //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_access = list()
/obj/var/list/req_one_access = list() /obj/var/list/req_one_access = list()
@@ -107,7 +21,7 @@
/obj/item/proc/GetAccess() /obj/item/proc/GetAccess()
return list() return list()
/obj/item/proc/GetID() /obj/proc/GetID()
return null return null
/obj/proc/check_access(obj/item/I) /obj/proc/check_access(obj/item/I)
@@ -149,217 +63,98 @@
if("Supreme Commander") if("Supreme Commander")
return get_all_centcom_access() 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() /proc/get_all_accesses()
return list(access_security, access_sec_doors, access_brig, access_armory, access_forensics_lockers, access_court, if(!priv_all_access)
access_medical, access_genetics, access_morgue, access_rd, priv_all_access = get_access_ids()
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)
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() /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() /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) /proc/get_region_accesses(var/code)
switch(code) if(code == ACCESS_REGION_ALL)
if(0) return get_all_station_access()
return get_all_accesses()
if(1) //security if(!priv_region_access)
return list(access_sec_doors, access_security, access_brig, access_armory, access_forensics_lockers, access_court, access_hos) priv_region_access = list()
if(2) //medbay for(var/datum/access/A in get_all_access_datums())
return list(access_medical, access_medical_equip, access_genetics, access_morgue, access_chemistry, access_psychiatrist, access_virology, access_surgery, access_cmo) if(!priv_region_access["[A.region]"])
if(3) //research priv_region_access["[A.region]"] = list()
return list(access_research, access_tox, access_tox_storage, access_robotics, access_xenobiology, access_xenoarch, access_rd) priv_region_access["[A.region]"] += A.id
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) return priv_region_access["[code]"]
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)
/proc/get_region_accesses_name(var/code) /proc/get_region_accesses_name(var/code)
switch(code) switch(code)
if(0) if(ACCESS_REGION_ALL)
return "All" return "All"
if(1) //security if(ACCESS_REGION_SECURITY) //security
return "Security" return "Security"
if(2) //medbay if(ACCESS_REGION_MEDBAY) //medbay
return "Medbay" return "Medbay"
if(3) //research if(ACCESS_REGION_RESEARCH) //research
return "Research" return "Research"
if(4) //engineering and maintenance if(ACCESS_REGION_ENGINEERING) //engineering and maintenance
return "Engineering" return "Engineering"
if(5) //command if(ACCESS_REGION_COMMAND) //command
return "Command" return "Command"
if(6) //station general if(ACCESS_REGION_GENERAL) //station general
return "Station General" return "Station General"
if(7) //supply if(ACCESS_REGION_SUPPLY) //supply
return "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) return A ? A.desc : ""
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"
/proc/get_centcom_access_desc(A) /proc/get_centcom_access_desc(A)
switch(A) return get_access_desc(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() /proc/get_all_jobs()
var/list/all_jobs = list() var/list/all_jobs = list()
@@ -403,12 +198,7 @@ proc/get_all_job_icons() //For all existing HUD icons
return joblist + list("Prisoner") return joblist + list("Prisoner")
/obj/proc/GetJobName() //Used in secHUD icon generation /obj/proc/GetJobName() //Used in secHUD icon generation
var/obj/item/weapon/card/id/I var/obj/item/weapon/card/id/I = GetID()
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
if(I) if(I)
var/job_icons = get_all_job_icons() var/job_icons = get_all_job_icons()

View File

@@ -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

View File

@@ -1 +0,0 @@
var/list/departments = list("Command", "Medical", "Engineering", "Security", "Civilian", "Cargo")

View File

@@ -42,7 +42,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
return 1 return 1
get_access() get_access()
return get_all_accesses() return get_all_station_access()

View File

@@ -183,7 +183,7 @@
if(is_authenticated()) if(is_authenticated())
var/access_type = text2num(href_list["access_target"]) var/access_type = text2num(href_list["access_target"])
var/access_allowed = text2num(href_list["allowed"]) 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 modify.access -= access_type
if(!access_allowed) if(!access_allowed)
modify.access += access_type modify.access += access_type

View File

@@ -42,7 +42,7 @@
t1 += "<br>" t1 += "<br>"
var/list/accesses = get_all_accesses() var/list/accesses = get_all_station_access()
for (var/acc in accesses) for (var/acc in accesses)
var/aname = get_access_desc(acc) var/aname = get_access_desc(acc)

View File

@@ -270,7 +270,7 @@
registered_name = "Captain" registered_name = "Captain"
assignment = "Captain" assignment = "Captain"
New() New()
access = get_all_accesses() access = get_all_station_access()
..() ..()
/obj/item/weapon/card/id/centcom /obj/item/weapon/card/id/centcom
@@ -289,4 +289,4 @@
/obj/item/weapon/card/id/centcom/ERT/New() /obj/item/weapon/card/id/centcom/ERT/New()
..() ..()
access += get_all_accesses() access += get_all_station_access()

View File

@@ -41,7 +41,7 @@
open() open()
else else
src.req_access = list() 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) /obj/structure/closet/secure_closet/proc/togglelock(mob/user as mob)

View File

@@ -222,7 +222,7 @@
open() open()
else else
src.req_access = list() src.req_access = list()
src.req_access += pick(get_all_accesses()) src.req_access += pick(get_all_station_access())
..() ..()
/obj/structure/closet/crate/plastic /obj/structure/closet/crate/plastic

View File

@@ -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 var/obj/item/device/pda/pda = H.wear_id
id = pda.id id = pda.id
id.icon_state = "gold" id.icon_state = "gold"
id:access = get_all_accesses()+get_all_centcom_access()+get_all_syndicate_access() id.access = get_all_accesses()
else else
var/obj/item/weapon/card/id/id = new/obj/item/weapon/card/id(M); var/obj/item/weapon/card/id/id = new/obj/item/weapon/card/id(M);
id.icon_state = "gold" 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.registered_name = H.real_name
id.assignment = "Captain" id.assignment = "Captain"
id.name = "[id.registered_name]'s ID Card ([id.assignment])" 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) var/obj/item/weapon/card/id/W = new(M)
W.name = "[M.real_name]'s ID Card" W.name = "[M.real_name]'s ID Card"
W.access = get_all_accesses() W.access = get_all_station_access()
W.assignment = "Tunnel Clown!" W.assignment = "Tunnel Clown!"
W.registered_name = M.real_name W.registered_name = M.real_name
M.equip_to_slot_or_del(W, slot_wear_id) 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) var/obj/item/weapon/card/id/syndicate/W = new(M)
W.name = "[M.real_name]'s ID Card" W.name = "[M.real_name]'s ID Card"
W.access = get_all_accesses() W.access = get_all_station_access()
W.assignment = "Reaper" W.assignment = "Reaper"
W.registered_name = M.real_name W.registered_name = M.real_name
M.equip_to_slot_or_del(W, slot_wear_id) 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.name = "[M.real_name]'s ID Card"
W.icon_state = "centcom" W.icon_state = "centcom"
W.item_state = "id_inv" 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.access += list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer")
W.assignment = "NanoTrasen Navy Representative" W.assignment = "NanoTrasen Navy Representative"
W.registered_name = M.real_name 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) var/obj/item/weapon/card/id/centcom/W = new(M)
W.name = "[M.real_name]'s ID Card" 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.access += get_all_centcom_access()
W.assignment = "NanoTrasen Navy Officer" W.assignment = "NanoTrasen Navy Officer"
W.registered_name = M.real_name 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) var/obj/item/weapon/card/id/centcom/W = new(M)
W.name = "[M.real_name]'s ID Card" 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.access += get_all_centcom_access()
W.assignment = "NanoTrasen Navy Captain" W.assignment = "NanoTrasen Navy Captain"
W.registered_name = M.real_name 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) var/obj/item/weapon/card/id/W = new(M)
W.name = "[M.real_name]'s ID Card" W.name = "[M.real_name]'s ID Card"
W.icon_state = "centcom" W.icon_state = "centcom"
W.access = get_all_accesses() W.access = get_all_station_access()
W.access += get_all_centcom_access() W.access += get_all_centcom_access()
W.assignment = "Emergency Response Team" W.assignment = "Emergency Response Team"
W.registered_name = M.real_name 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) var/obj/item/weapon/card/id/W = new(M)
W.name = "[M.real_name]'s ID Card" W.name = "[M.real_name]'s ID Card"
W.icon_state = "centcom" W.icon_state = "centcom"
W.access = get_all_accesses() W.access = get_all_station_access()
W.access += get_all_centcom_access() W.access += get_all_centcom_access()
W.assignment = "Special Operations Officer" W.assignment = "Special Operations Officer"
W.registered_name = M.real_name 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) var/obj/item/weapon/card/id/W = new(M)
W.name = "[M.real_name]'s ID Card" W.name = "[M.real_name]'s ID Card"
W.icon_state = "centcom" W.icon_state = "centcom"
W.access = get_all_accesses() W.access = get_all_station_access()
W.access += get_all_centcom_access() W.access += get_all_centcom_access()
W.assignment = "Admiral" W.assignment = "Admiral"
W.registered_name = M.real_name W.registered_name = M.real_name