Merge pull request #10786 from PsiOmegaDelta/150821-SortedAccess

Cleans out unused access definitions and sorts access lists.
This commit is contained in:
Zuhayr
2015-08-22 01:34:08 +09:30
12 changed files with 62 additions and 185 deletions

View File

@@ -1091,9 +1091,8 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/obj/item/clothing/under/kilt)
name = "Costumes crate"
cost = 10
containertype = /obj/structure/closet/crate/secure
containertype = /obj/structure/closet/crate
containername = "Actor Costumes"
access = access_theatre
group = "Miscellaneous"
/datum/supply_packs/formal_wear
@@ -1419,7 +1418,6 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee
/obj/item/clothing/head/helmet/gladiator,
/obj/item/clothing/head/ushanka)
group = "Miscellaneous"
access = access_theatre
/datum/supply_packs/randomised/webbing
name = "Webbing crate"

View File

@@ -9,7 +9,7 @@
#define ACCESS_REGION_SUPPLY 7
#define ACCESS_TYPE_NONE 0
#define ACCESS_TYPE_STATION 1
#define ACCESS_TYPE_CENTCOM 2
#define ACCESS_TYPE_CENTCOM 1
#define ACCESS_TYPE_STATION 2
#define ACCESS_TYPE_SYNDICATE 4
#define ACCESS_TYPE_ALL 7
#define ACCESS_TYPE_ALL (ACCESS_TYPE_CENTCOM|ACCESS_TYPE_STATION|ACCESS_TYPE_SYNDICATE)

View File

@@ -67,17 +67,29 @@
/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_assoc
/proc/get_all_access_datums_assoc()
if(!priv_all_access_datums_assoc)
priv_all_access_datums_assoc = list()
/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_assoc["[A.id]"] = A
priv_all_access_datums_id["[A.id]"] = A
return priv_all_access_datums_assoc
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()
@@ -148,7 +160,7 @@
return "Supply"
/proc/get_access_desc(id)
var/list/AS = get_all_access_datums_assoc()
var/list/AS = get_all_access_datums_by_id()
var/datum/access/A = AS["[id]"]
return A ? A.desc : ""

View File

@@ -4,6 +4,9 @@
var/region = ACCESS_REGION_NONE
var/access_type = ACCESS_TYPE_STATION
/datum/access/dd_SortValue()
return "[access_type][desc]"
/*****************
* Station access *
*****************/
@@ -232,8 +235,8 @@
/var/const/access_lawyer = 38
/datum/access/lawyer
id = access_lawyer
desc = "Law Office"
region = ACCESS_REGION_GENERAL
desc = "Internal Affairs"
region = ACCESS_REGION_COMMAND
/var/const/access_virology = 39
/datum/access/virology
@@ -253,21 +256,9 @@
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/free_access_id = 43
// /var/const/free_access_id = 43
// /var/const/free_access_id = 44
/var/const/access_surgery = 45
/datum/access/surgery
@@ -275,11 +266,7 @@
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/free_access_id = 46
/var/const/access_research = 47
/datum/access/research

View File

@@ -62,18 +62,18 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
req_admin_notify = 1
minimal_player_age = 10
economic_modifier = 10
access = list(access_security, access_sec_doors, access_brig, access_court, access_forensics_lockers,
access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers,
access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads,
access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue,
access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer,
access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station,
access_clown, access_mime, access_hop, access_RC_announce, access_keycard_auth, access_gateway)
minimal_access = list(access_security, access_sec_doors, access_brig, access_court, access_forensics_lockers,
access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station,
access_hop, access_RC_announce, access_keycard_auth, access_gateway)
minimal_access = list(access_security, access_sec_doors, access_brig, access_forensics_lockers,
access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads,
access_all_personal_lockers, access_maint_tunnels, access_bar, access_janitor, access_construction, access_morgue,
access_crematorium, access_kitchen, access_cargo, access_cargo_bot, access_mailsorting, access_qm, access_hydroponics, access_lawyer,
access_theatre, access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station,
access_clown, access_mime, access_hop, access_RC_announce, access_keycard_auth, access_gateway)
access_chapel_office, access_library, access_research, access_mining, access_heads_vault, access_mining_station,
access_hop, access_RC_announce, access_keycard_auth, access_gateway)
equip(var/mob/living/carbon/human/H)

View File

@@ -314,8 +314,8 @@
supervisors = "Nanotrasen officials and Corporate Regulations"
selection_color = "#dddddd"
economic_modifier = 7
access = list(access_lawyer, access_court, access_sec_doors, access_maint_tunnels, access_heads)
minimal_access = list(access_lawyer, access_court, access_sec_doors, access_heads)
access = list(access_lawyer, access_sec_doors, access_maint_tunnels, access_heads)
minimal_access = list(access_lawyer, access_sec_doors, access_heads)
equip(var/mob/living/carbon/human/H)

View File

@@ -12,11 +12,11 @@
idtype = /obj/item/weapon/card/id/silver
req_admin_notify = 1
economic_modifier = 10
access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_court,
access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory,
access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers,
access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting,
access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks)
minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_court,
minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory,
access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers,
access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting,
access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_external_airlocks)
@@ -56,8 +56,8 @@
supervisors = "the head of security"
selection_color = "#ffeeee"
economic_modifier = 5
access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue, access_external_airlocks)
minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_external_airlocks)
access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_morgue, access_external_airlocks)
minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_maint_tunnels, access_external_airlocks)
minimal_player_age = 5
equip(var/mob/living/carbon/human/H)
@@ -94,8 +94,8 @@
selection_color = "#ffeeee"
alt_titles = list("Forensic Technician")
economic_modifier = 5
access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court)
minimal_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court)
access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels)
minimal_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels)
alt_titles = list("Forensic Technician")
minimal_player_age = 3
equip(var/mob/living/carbon/human/H)
@@ -136,8 +136,8 @@
supervisors = "the head of security"
selection_color = "#ffeeee"
economic_modifier = 4
access = list(access_security, access_eva, access_sec_doors, access_brig, access_court, access_maint_tunnels, access_morgue, access_external_airlocks)
minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_court, access_maint_tunnels, access_external_airlocks)
access = list(access_security, access_eva, access_sec_doors, access_brig, access_maint_tunnels, access_morgue, access_external_airlocks)
minimal_access = list(access_security, access_eva, access_sec_doors, access_brig, access_maint_tunnels, access_external_airlocks)
minimal_player_age = 3
equip(var/mob/living/carbon/human/H)
if(!H) return 0

View File

@@ -1,124 +0,0 @@
#define TURRET_PRIORITY_TARGET 2
#define TURRET_SECONDARY_TARGET 1
#define TURRET_NOT_TARGET 0
/obj/machinery/porta_turret/tag
// Reasonable defaults, in case someone manually spawns us
var/lasercolor = "r" //Something to do with lasertag turrets, blame Sieve for not adding a comment.
installation = /obj/item/weapon/gun/energy/lasertag/red
/obj/machinery/porta_turret/tag/red
/obj/machinery/porta_turret/tag/blue
lasercolor = "b"
installation = /obj/item/weapon/gun/energy/lasertag/blue
/obj/machinery/porta_turret/tag/New()
..()
icon_state = "[lasercolor]grey_target_prism"
/obj/machinery/porta_turret/tag/weapon_setup(var/obj/item/weapon/gun/energy/E)
switch(E.type)
if(/obj/item/weapon/gun/energy/lasertag/blue)
eprojectile = /obj/item/weapon/gun/energy/lasertag/blue
lasercolor = "b"
req_access = list(access_maint_tunnels, access_theatre)
check_arrest = 0
check_records = 0
check_weapons = 1
check_access = 0
check_anomalies = 0
shot_delay = 30
if(/obj/item/weapon/gun/energy/lasertag/red)
eprojectile = /obj/item/weapon/gun/energy/lasertag/red
lasercolor = "r"
req_access = list(access_maint_tunnels, access_theatre)
check_arrest = 0
check_records = 0
check_weapons = 1
check_access = 0
check_anomalies = 0
shot_delay = 30
iconholder = 1
/obj/machinery/porta_turret/tag/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
var/data[0]
data["access"] = !isLocked(user)
data["locked"] = locked
data["enabled"] = enabled
data["is_lethal"] = 0
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui)
ui = new(user, src, ui_key, "turret_control.tmpl", "Turret Controls", 500, 300)
ui.set_initial_data(data)
ui.open()
ui.set_auto_update(1)
/obj/machinery/porta_turret/tag/update_icon()
if(!anchored)
icon_state = "turretCover"
return
if(stat & BROKEN)
icon_state = "[lasercolor]destroyed_target_prism"
else
if(powered())
if(enabled)
if(iconholder)
//lasers have a orange icon
icon_state = "[lasercolor]orange_target_prism"
else
//almost everything has a blue icon
icon_state = "[lasercolor]target_prism"
else
icon_state = "[lasercolor]grey_target_prism"
else
icon_state = "[lasercolor]grey_target_prism"
/obj/machinery/porta_turret/tag/bullet_act(obj/item/projectile/Proj)
..()
if(lasercolor == "b" && disabled == 0)
if(istype(Proj, /obj/item/weapon/gun/energy/lasertag/red))
disabled = 1
qdel(Proj)
sleep(100)
disabled = 0
if(lasercolor == "r" && disabled == 0)
if(istype(Proj, /obj/item/weapon/gun/energy/lasertag/blue))
disabled = 1
qdel(Proj)
sleep(100)
disabled = 0
/obj/machinery/porta_turret/tag/assess_living(var/mob/living/L)
if(!L)
return TURRET_NOT_TARGET
if(L.lying)
return TURRET_NOT_TARGET
var/target_suit
var/target_weapon
switch(lasercolor)
if("b")
target_suit = /obj/item/clothing/suit/redtag
target_weapon = /obj/item/weapon/gun/energy/lasertag/red
if("r")
target_suit = /obj/item/clothing/suit/bluetag
target_weapon = /obj/item/weapon/gun/energy/lasertag/blue
if(target_suit)//Lasertag turrets target the opposing team, how great is that? -Sieve
if((istype(L.r_hand, target_weapon)) || (istype(L.l_hand, target_weapon)))
return TURRET_PRIORITY_TARGET
if(istype(L, /mob/living/carbon/human))
var/mob/living/carbon/human/H = L
if(istype(H.wear_suit, target_suit))
return TURRET_PRIORITY_TARGET
if(istype(H.belt, target_weapon))
return TURRET_SECONDARY_TARGET
return TURRET_NOT_TARGET

View File

@@ -3,6 +3,10 @@
This code is slightly more documented than normal, as requested by XSI on IRC.
*/
#define TURRET_PRIORITY_TARGET 2
#define TURRET_SECONDARY_TARGET 1
#define TURRET_NOT_TARGET 0
/obj/machinery/porta_turret
name = "turret"
icon = 'icons/obj/turrets.dmi'
@@ -343,7 +347,7 @@ var/list/turret_icons
sleep(60)
attacked = 0
..()
/obj/machinery/porta_turret/emag_act(var/remaining_charges, var/mob/user)
if(!emagged)
//Emagging the turret makes it go bonkers and stun everyone. It also makes
@@ -503,7 +507,7 @@ var/list/turret_icons
if(isanimal(L) || issmall(L)) // Animals are not so dangerous
return check_anomalies ? TURRET_SECONDARY_TARGET : TURRET_NOT_TARGET
if(isxenomorph(L) || isalien(L)) // Xenos are dangerous
return check_anomalies ? TURRET_PRIORITY_TARGET : TURRET_NOT_TARGET
@@ -759,11 +763,7 @@ var/list/turret_icons
installation = I.type //installation becomes I.type
gun_charge = E.power_supply.charge //the gun's charge is stored in gun_charge
user << "<span class='notice'>You add [I] to the turret.</span>"
if(istype(installation, /obj/item/weapon/gun/energy/lasertag/blue) || istype(installation, /obj/item/weapon/gun/energy/lasertag/red))
target_type = /obj/machinery/porta_turret/tag
else
target_type = /obj/machinery/porta_turret
target_type = /obj/machinery/porta_turret
build_step = 4
qdel(I) //delete the gun :(
@@ -880,3 +880,8 @@ var/list/turret_icons
/atom/movable/porta_turret_cover
icon = 'icons/obj/turrets.dmi'
#undef TURRET_PRIORITY_TARGET
#undef TURRET_SECONDARY_TARGET
#undef TURRET_NOT_TARGET

View File

@@ -308,7 +308,7 @@
/obj/structure/closet/secure_closet/courtroom
name = "courtroom locker"
req_access = list(access_court)
req_access = list(access_lawyer)
New()
..()

View File

@@ -5,7 +5,7 @@
maxHealth = 50
health = 50
req_one_access = list(access_security, access_forensics_lockers)
botcard_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court)
botcard_access = list(access_security, access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels)
var/mob/target