From 56523d09411ff6d48a5bf7de1c73b8195d2595c6 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Fri, 21 Aug 2015 14:45:45 +0200 Subject: [PATCH] Cleans out (mostly) unused access definitions and makes access lists sorted. --- baystation12.dme | 1 - code/datums/supplypacks.dm | 4 +- code/game/jobs/_access_defs.dm | 6 +- code/game/jobs/access.dm | 26 +++- code/game/jobs/access_datum.dm | 31 ++--- code/game/jobs/job/captain.dm | 12 +- code/game/jobs/job/civilian.dm | 4 +- code/game/jobs/job/security.dm | 16 +-- code/game/machinery/portable_tag_turret.dm | 124 ------------------ code/game/machinery/portable_turret.dm | 19 ++- .../crates_lockers/closets/secure/security.dm | 2 +- code/modules/mob/living/bot/secbot.dm | 2 +- 12 files changed, 62 insertions(+), 185 deletions(-) delete mode 100644 code/game/machinery/portable_tag_turret.dm diff --git a/baystation12.dme b/baystation12.dme index a5e9158b33b..803c6cb0e55 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -388,7 +388,6 @@ #include "code\game\machinery\nuclear_bomb.dm" #include "code\game\machinery\OpTable.dm" #include "code\game\machinery\overview.dm" -#include "code\game\machinery\portable_tag_turret.dm" #include "code\game\machinery\portable_turret.dm" #include "code\game\machinery\recharger.dm" #include "code\game\machinery\rechargestation.dm" diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 0d34c1a7fc8..fb33002ea06 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -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" diff --git a/code/game/jobs/_access_defs.dm b/code/game/jobs/_access_defs.dm index eb77c73cfac..e371ff83673 100644 --- a/code/game/jobs/_access_defs.dm +++ b/code/game/jobs/_access_defs.dm @@ -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) diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 09fc65bf417..fbc92f4bc49 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -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 : "" diff --git a/code/game/jobs/access_datum.dm b/code/game/jobs/access_datum.dm index 9cf27f6dbcd..5e1cb90f1f2 100644 --- a/code/game/jobs/access_datum.dm +++ b/code/game/jobs/access_datum.dm @@ -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 diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 665016a1cf2..dd088474f1c 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -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) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index f45af97286a..a64f35f25f9 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -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) diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 8a9461302db..9e3f51596bc 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -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 diff --git a/code/game/machinery/portable_tag_turret.dm b/code/game/machinery/portable_tag_turret.dm deleted file mode 100644 index f3939e89dcd..00000000000 --- a/code/game/machinery/portable_tag_turret.dm +++ /dev/null @@ -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 \ No newline at end of file diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index c2e7cbace79..5d184f0b07c 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -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 << "You add [I] to the turret." - - 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 diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 061798be0bc..130d060ebc4 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -308,7 +308,7 @@ /obj/structure/closet/secure_closet/courtroom name = "courtroom locker" - req_access = list(access_court) + req_access = list(access_lawyer) New() ..() diff --git a/code/modules/mob/living/bot/secbot.dm b/code/modules/mob/living/bot/secbot.dm index 547361f4005..ca233881f26 100644 --- a/code/modules/mob/living/bot/secbot.dm +++ b/code/modules/mob/living/bot/secbot.dm @@ -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