diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index 075f5342603..e8aab954059 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -17,10 +17,10 @@ switch(signal.data["command"]) if("open") - open(1) + open(TRUE) if("close") - close(1) + close(TRUE) if("unlock") locked = FALSE @@ -35,14 +35,14 @@ update_appearance() sleep(2) - open(1) + open(TRUE) locked = TRUE update_appearance() if("secure_close") locked = FALSE - close(1) + close(TRUE) locked = TRUE sleep(2) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index ef988433fa7..dfd66804eb0 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -177,40 +177,6 @@ return INITIALIZE_HINT_LATELOAD -/obj/machinery/door/airlock/LateInitialize() - . = ..() - if (cyclelinkeddir) - cyclelinkairlock() - if(closeOtherId) - update_other_id() - if(abandoned) - var/outcome = rand(1,100) - switch(outcome) - if(1 to 9) - var/turf/here = get_turf(src) - for(var/turf/closed/T in range(2, src)) - here.PlaceOnTop(T.type) - qdel(src) - return - here.PlaceOnTop(/turf/closed/wall) - qdel(src) - return - if(9 to 11) - lights = FALSE - locked = TRUE - if(12 to 15) - locked = TRUE - if(16 to 23) - welded = TRUE - if(24 to 30) - panel_open = TRUE - if(cutAiWire) - wires.cut(WIRE_AI) - if(autoname) - name = get_area_name(src, TRUE) - update_appearance() - - /obj/machinery/door/airlock/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock) if(id_tag) id_tag = "[port.id]_[id_tag]" diff --git a/code/modules/mapping/access_helpers.dm b/code/modules/mapping/access_helpers.dm index 661871d685f..30b96bf28b5 100644 --- a/code/modules/mapping/access_helpers.dm +++ b/code/modules/mapping/access_helpers.dm @@ -1,11 +1,11 @@ /obj/effect/mapping_helpers/airlock/access layer = DOOR_HELPER_LAYER icon_state = "access_helper" - var/list/access_list = list() // These are mutually exclusive; can't have req_any and req_all /obj/effect/mapping_helpers/airlock/access/any/payload(obj/machinery/door/airlock/airlock) if(airlock.req_access_txt == "0") + var/list/access_list = get_access() // Overwrite if there is no access set, otherwise add onto existing access if(airlock.req_one_access_txt == "0") airlock.req_one_access_txt = access_list.Join(";") @@ -16,6 +16,7 @@ /obj/effect/mapping_helpers/airlock/access/all/payload(obj/machinery/door/airlock/airlock) if(airlock.req_one_access_txt == "0") + var/list/access_list = get_access() if(airlock.req_access_txt == "0") airlock.req_access_txt = access_list.Join(";") else @@ -23,524 +24,644 @@ else log_mapping("[src] at [AREACOORD(src)] tried to set req_access, but req_one_access was already set!") +/obj/effect/mapping_helpers/airlock/access/proc/get_access() + var/list/access = list() + return access + // -------------------- Req Any (Only requires ONE of the given accesses to open) // -------------------- Command access helpers /obj/effect/mapping_helpers/airlock/access/any/command icon_state = "access_helper_com" -/obj/effect/mapping_helpers/airlock/access/any/command/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/command/general/get_access() + var/list/access_list = ..() access_list += ACCESS_HEADS + return access_list -/obj/effect/mapping_helpers/airlock/access/any/command/ai_upload/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/command/ai_upload/get_access() + var/list/access_list = ..() access_list += ACCESS_AI_UPLOAD + return access_list -/obj/effect/mapping_helpers/airlock/access/any/command/teleporter/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/command/teleporter/get_access() + var/list/access_list = ..() access_list += ACCESS_TELEPORTER + return access_list -/obj/effect/mapping_helpers/airlock/access/any/command/eva/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/command/eva/get_access() + var/list/access_list = ..() access_list += ACCESS_EVA + return access_list -/obj/effect/mapping_helpers/airlock/access/any/command/gateway/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/command/gateway/get_access() + var/list/access_list = ..() access_list += ACCESS_GATEWAY + return access_list -/obj/effect/mapping_helpers/airlock/access/any/command/hop/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/command/hop/get_access() + var/list/access_list = ..() access_list += ACCESS_HOP + return access_list -/obj/effect/mapping_helpers/airlock/access/any/command/captain/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/command/captain/get_access() + var/list/access_list = ..() access_list += ACCESS_CAPTAIN + return access_list // -------------------- Engineering access helpers /obj/effect/mapping_helpers/airlock/access/any/engineering icon_state = "access_helper_eng" -/obj/effect/mapping_helpers/airlock/access/any/engineering/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/engineering/general/get_access() + var/list/access_list = ..() access_list += ACCESS_ENGINE + return access_list -/obj/effect/mapping_helpers/airlock/access/any/engineering/construction/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/engineering/construction/get_access() + var/list/access_list = ..() access_list += ACCESS_CONSTRUCTION + return access_list -/obj/effect/mapping_helpers/airlock/access/any/engineering/aux_base/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/engineering/aux_base/get_access() + var/list/access_list = ..() access_list += ACCESS_AUX_BASE + return access_list -/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance/get_access() + var/list/access_list = ..() access_list += ACCESS_MAINT_TUNNELS + return access_list -/obj/effect/mapping_helpers/airlock/access/any/engineering/external/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/engineering/external/get_access() + var/list/access_list = ..() access_list += ACCESS_EXTERNAL_AIRLOCKS + return access_list -/obj/effect/mapping_helpers/airlock/access/any/engineering/tech_storage/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/engineering/tech_storage/get_access() + var/list/access_list = ..() access_list += ACCESS_TECH_STORAGE + return access_list -/obj/effect/mapping_helpers/airlock/access/any/engineering/atmos/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/engineering/atmos/get_access() + var/list/access_list = ..() access_list += ACCESS_ATMOSPHERICS + return access_list -/obj/effect/mapping_helpers/airlock/access/any/engineering/tcoms/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/engineering/tcoms/get_access() + var/list/access_list = ..() access_list += ACCESS_TCOMSAT + return access_list -/obj/effect/mapping_helpers/airlock/access/any/engineering/ce/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/engineering/ce/get_access() + var/list/access_list = ..() access_list += ACCESS_CE + return access_list // -------------------- Medical access helpers /obj/effect/mapping_helpers/airlock/access/any/medical icon_state = "access_helper_med" -/obj/effect/mapping_helpers/airlock/access/any/medical/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/medical/general/get_access() + var/list/access_list = ..() access_list += ACCESS_MEDICAL + return access_list -/obj/effect/mapping_helpers/airlock/access/any/medical/morgue/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/medical/morgue/get_access() + var/list/access_list = ..() access_list += ACCESS_MORGUE + return access_list -/obj/effect/mapping_helpers/airlock/access/any/medical/chemistry/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/medical/chemistry/get_access() + var/list/access_list = ..() access_list += ACCESS_CHEMISTRY + return access_list -/obj/effect/mapping_helpers/airlock/access/any/medical/virology/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/medical/virology/get_access() + var/list/access_list = ..() access_list += ACCESS_VIROLOGY + return access_list -/obj/effect/mapping_helpers/airlock/access/any/medical/surgery/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/medical/surgery/get_access() + var/list/access_list = ..() access_list += ACCESS_SURGERY + return access_list -/obj/effect/mapping_helpers/airlock/access/any/medical/cmo/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/medical/cmo/get_access() + var/list/access_list = ..() access_list += ACCESS_CMO + return access_list -/obj/effect/mapping_helpers/airlock/access/any/medical/pharmacy/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/medical/pharmacy/get_access() + var/list/access_list = ..() access_list += ACCESS_PHARMACY + return access_list -/obj/effect/mapping_helpers/airlock/access/any/medical/psychology/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/medical/psychology/get_access() + var/list/access_list = ..() access_list += ACCESS_PSYCHOLOGY + return access_list // -------------------- Science access helpers /obj/effect/mapping_helpers/airlock/access/any/science icon_state = "access_helper_sci" -/obj/effect/mapping_helpers/airlock/access/any/science/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/science/general/get_access() + var/list/access_list = ..() access_list += ACCESS_RND + return access_list -/obj/effect/mapping_helpers/airlock/access/any/science/research/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/science/research/get_access() + var/list/access_list = ..() access_list += ACCESS_RESEARCH + return access_list -/obj/effect/mapping_helpers/airlock/access/any/science/ordnance/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/science/ordnance/get_access() + var/list/access_list = ..() access_list += ACCESS_ORDNANCE + return access_list -/obj/effect/mapping_helpers/airlock/access/any/science/ordnance_storage/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/science/ordnance_storage/get_access() + var/list/access_list = ..() access_list += ACCESS_ORDNANCE_STORAGE + return access_list -/obj/effect/mapping_helpers/airlock/access/any/science/genetics/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/science/genetics/get_access() + var/list/access_list = ..() access_list += ACCESS_GENETICS + return access_list -/obj/effect/mapping_helpers/airlock/access/any/science/robotics/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/science/robotics/get_access() + var/list/access_list = ..() access_list += ACCESS_ROBOTICS + return access_list -/obj/effect/mapping_helpers/airlock/access/any/science/xenobio/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/science/xenobio/get_access() + var/list/access_list = ..() access_list += ACCESS_XENOBIOLOGY + return access_list -/obj/effect/mapping_helpers/airlock/access/any/science/minisat/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/science/minisat/get_access() + var/list/access_list = ..() access_list += ACCESS_MINISAT + return access_list -/obj/effect/mapping_helpers/airlock/access/any/science/rd/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/science/rd/get_access() + var/list/access_list = ..() access_list += ACCESS_RD + return access_list // -------------------- Security access helpers /obj/effect/mapping_helpers/airlock/access/any/security icon_state = "access_helper_sec" -/obj/effect/mapping_helpers/airlock/access/any/security/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/security/general/get_access() + var/list/access_list = ..() access_list += ACCESS_SECURITY + return access_list -/obj/effect/mapping_helpers/airlock/access/any/security/entrance/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/security/entrance/get_access() + var/list/access_list = ..() access_list += ACCESS_BRIG_ENTRANCE + return access_list -/obj/effect/mapping_helpers/airlock/access/any/security/brig/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/security/brig/get_access() + var/list/access_list = ..() access_list += ACCESS_BRIG + return access_list -/obj/effect/mapping_helpers/airlock/access/any/security/armory/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/security/armory/get_access() + var/list/access_list = ..() access_list += ACCESS_ARMORY + return access_list -/obj/effect/mapping_helpers/airlock/access/any/security/detective/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/security/detective/get_access() + var/list/access_list = ..() access_list += ACCESS_FORENSICS + return access_list -/obj/effect/mapping_helpers/airlock/access/any/security/court/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/security/court/get_access() + var/list/access_list = ..() access_list += ACCESS_COURT + return access_list -/obj/effect/mapping_helpers/airlock/access/any/security/hos/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/security/hos/get_access() + var/list/access_list = ..() access_list += ACCESS_HOS + return access_list // -------------------- Service access helpers /obj/effect/mapping_helpers/airlock/access/any/service icon_state = "access_helper_serv" -/obj/effect/mapping_helpers/airlock/access/any/service/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/service/general/get_access() + var/list/access_list = ..() access_list += ACCESS_SERVICE + return access_list -/obj/effect/mapping_helpers/airlock/access/any/service/kitchen/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/service/kitchen/get_access() + var/list/access_list = ..() access_list += ACCESS_KITCHEN + return access_list -/obj/effect/mapping_helpers/airlock/access/any/service/bar/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/service/bar/get_access() + var/list/access_list = ..() access_list += ACCESS_BAR + return access_list -/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/service/hydroponics/get_access() + var/list/access_list = ..() access_list += ACCESS_HYDROPONICS + return access_list -/obj/effect/mapping_helpers/airlock/access/any/service/janitor/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/service/janitor/get_access() + var/list/access_list = ..() access_list += ACCESS_JANITOR + return access_list -/obj/effect/mapping_helpers/airlock/access/any/service/chapel_office/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/service/chapel_office/get_access() + var/list/access_list = ..() access_list += ACCESS_CHAPEL_OFFICE + return access_list -/obj/effect/mapping_helpers/airlock/access/any/service/crematorium/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/service/crematorium/get_access() + var/list/access_list = ..() access_list += ACCESS_CREMATORIUM + return access_list -/obj/effect/mapping_helpers/airlock/access/any/service/crematorium/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/service/crematorium/get_access() + var/list/access_list = ..() access_list += ACCESS_CREMATORIUM + return access_list -/obj/effect/mapping_helpers/airlock/access/any/service/library/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/service/library/get_access() + var/list/access_list = ..() access_list += ACCESS_LIBRARY + return access_list -/obj/effect/mapping_helpers/airlock/access/any/service/library/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/service/library/get_access() + var/list/access_list = ..() access_list += ACCESS_THEATRE + return access_list -/obj/effect/mapping_helpers/airlock/access/any/service/lawyer/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/service/lawyer/get_access() + var/list/access_list = ..() access_list += ACCESS_LAWYER + return access_list // -------------------- Supply access helpers /obj/effect/mapping_helpers/airlock/access/any/supply icon_state = "access_helper_sup" -/obj/effect/mapping_helpers/airlock/access/any/supply/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/supply/general/get_access() + var/list/access_list = ..() access_list += ACCESS_CARGO + return access_list -/obj/effect/mapping_helpers/airlock/access/any/supply/mail_sorting/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/supply/mail_sorting/get_access() + var/list/access_list = ..() access_list += ACCESS_MAILSORTING + return access_list -/obj/effect/mapping_helpers/airlock/access/any/supply/mining/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/supply/mining/get_access() + var/list/access_list = ..() access_list += ACCESS_MINING + return access_list -/obj/effect/mapping_helpers/airlock/access/any/supply/mining_station/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/supply/mining_station/get_access() + var/list/access_list = ..() access_list += ACCESS_MINING_STATION + return access_list -/obj/effect/mapping_helpers/airlock/access/any/supply/mineral_storage/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/supply/mineral_storage/get_access() + var/list/access_list = ..() access_list += ACCESS_MINERAL_STOREROOM + return access_list -/obj/effect/mapping_helpers/airlock/access/any/supply/qm/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/supply/qm/get_access() + var/list/access_list = ..() access_list += ACCESS_QM + return access_list -/obj/effect/mapping_helpers/airlock/access/any/supply/vault/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/any/supply/vault/get_access() + var/list/access_list = ..() access_list += ACCESS_VAULT + return access_list // -------------------- Req All (Requires ALL of the given accesses to open) // -------------------- Command access helpers /obj/effect/mapping_helpers/airlock/access/all/command icon_state = "access_helper_com" -/obj/effect/mapping_helpers/airlock/access/all/command/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/command/general/get_access() + var/list/access_list = ..() access_list += ACCESS_HEADS + return access_list -/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/command/ai_upload/get_access() + var/list/access_list = ..() access_list += ACCESS_AI_UPLOAD + return access_list -/obj/effect/mapping_helpers/airlock/access/all/command/teleporter/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/command/teleporter/get_access() + var/list/access_list = ..() access_list += ACCESS_TELEPORTER + return access_list -/obj/effect/mapping_helpers/airlock/access/all/command/eva/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/command/eva/get_access() + var/list/access_list = ..() access_list += ACCESS_EVA + return access_list -/obj/effect/mapping_helpers/airlock/access/all/command/gateway/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/command/gateway/get_access() + var/list/access_list = ..() access_list += ACCESS_GATEWAY + return access_list -/obj/effect/mapping_helpers/airlock/access/all/command/hop/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/command/hop/get_access() + var/list/access_list = ..() access_list += ACCESS_HOP + return access_list -/obj/effect/mapping_helpers/airlock/access/all/command/captain/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/command/captain/get_access() + var/list/access_list = ..() access_list += ACCESS_CAPTAIN + return access_list // -------------------- Engineering access helpers /obj/effect/mapping_helpers/airlock/access/all/engineering icon_state = "access_helper_eng" -/obj/effect/mapping_helpers/airlock/access/all/engineering/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/engineering/general/get_access() + var/list/access_list = ..() access_list += ACCESS_ENGINE + return access_list -/obj/effect/mapping_helpers/airlock/access/all/engineering/construction/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/engineering/construction/get_access() + var/list/access_list = ..() access_list += ACCESS_CONSTRUCTION + return access_list -/obj/effect/mapping_helpers/airlock/access/all/engineering/aux_base/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/engineering/aux_base/get_access() + var/list/access_list = ..() access_list += ACCESS_AUX_BASE + return access_list -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance/get_access() + var/list/access_list = ..() access_list += ACCESS_MAINT_TUNNELS + return access_list -/obj/effect/mapping_helpers/airlock/access/all/engineering/external/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/engineering/external/get_access() + var/list/access_list = ..() access_list += ACCESS_EXTERNAL_AIRLOCKS + return access_list -/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage/get_access() + var/list/access_list = ..() access_list += ACCESS_TECH_STORAGE + return access_list -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos/get_access() + var/list/access_list = ..() access_list += ACCESS_ATMOSPHERICS + return access_list -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms/get_access() + var/list/access_list = ..() access_list += ACCESS_TCOMSAT + return access_list -/obj/effect/mapping_helpers/airlock/access/all/engineering/ce/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/engineering/ce/get_access() + var/list/access_list = ..() access_list += ACCESS_CE + return access_list // -------------------- Medical access helpers /obj/effect/mapping_helpers/airlock/access/all/medical icon_state = "access_helper_med" -/obj/effect/mapping_helpers/airlock/access/all/medical/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/medical/general/get_access() + var/list/access_list = ..() access_list += ACCESS_MEDICAL + return access_list -/obj/effect/mapping_helpers/airlock/access/all/medical/morgue/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/medical/morgue/get_access() + var/list/access_list = ..() access_list += ACCESS_MORGUE + return access_list -/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry/get_access() + var/list/access_list = ..() access_list += ACCESS_CHEMISTRY + return access_list -/obj/effect/mapping_helpers/airlock/access/all/medical/virology/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/medical/virology/get_access() + var/list/access_list = ..() access_list += ACCESS_VIROLOGY + return access_list -/obj/effect/mapping_helpers/airlock/access/all/medical/surgery/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/medical/surgery/get_access() + var/list/access_list = ..() access_list += ACCESS_SURGERY + return access_list -/obj/effect/mapping_helpers/airlock/access/all/medical/cmo/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/medical/cmo/get_access() + var/list/access_list = ..() access_list += ACCESS_CMO + return access_list -/obj/effect/mapping_helpers/airlock/access/all/medical/pharmacy/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/medical/pharmacy/get_access() + var/list/access_list = ..() access_list += ACCESS_PHARMACY + return access_list -/obj/effect/mapping_helpers/airlock/access/all/medical/psychology/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/medical/psychology/get_access() + var/list/access_list = ..() access_list += ACCESS_PSYCHOLOGY + return access_list // -------------------- Science access helpers /obj/effect/mapping_helpers/airlock/access/all/science icon_state = "access_helper_sci" -/obj/effect/mapping_helpers/airlock/access/all/science/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/science/general/get_access() + var/list/access_list = ..() access_list += ACCESS_RND + return access_list -/obj/effect/mapping_helpers/airlock/access/all/science/research/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/science/research/get_access() + var/list/access_list = ..() access_list += ACCESS_RESEARCH + return access_list -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance/get_access() + var/list/access_list = ..() access_list += ACCESS_ORDNANCE + return access_list -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance_storage/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/science/ordnance_storage/get_access() + var/list/access_list = ..() access_list += ACCESS_ORDNANCE_STORAGE + return access_list -/obj/effect/mapping_helpers/airlock/access/all/science/genetics/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/science/genetics/get_access() + var/list/access_list = ..() access_list += ACCESS_GENETICS + return access_list -/obj/effect/mapping_helpers/airlock/access/all/science/robotics/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/science/robotics/get_access() + var/list/access_list = ..() access_list += ACCESS_ROBOTICS + return access_list -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio/get_access() + var/list/access_list = ..() access_list += ACCESS_XENOBIOLOGY + return access_list -/obj/effect/mapping_helpers/airlock/access/all/science/minisat/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/science/minisat/get_access() + var/list/access_list = ..() access_list += ACCESS_MINISAT + return access_list -/obj/effect/mapping_helpers/airlock/access/all/science/rd/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/science/rd/get_access() + var/list/access_list = ..() access_list += ACCESS_RD + return access_list // -------------------- Security access helpers /obj/effect/mapping_helpers/airlock/access/all/security icon_state = "access_helper_sec" -/obj/effect/mapping_helpers/airlock/access/all/security/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/security/general/get_access() + var/list/access_list = ..() access_list += ACCESS_SECURITY + return access_list -/obj/effect/mapping_helpers/airlock/access/all/security/entrance/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/security/entrance/get_access() + var/list/access_list = ..() access_list += ACCESS_BRIG_ENTRANCE + return access_list -/obj/effect/mapping_helpers/airlock/access/all/security/brig/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/security/brig/get_access() + var/list/access_list = ..() access_list += ACCESS_BRIG + return access_list -/obj/effect/mapping_helpers/airlock/access/all/security/armory/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/security/armory/get_access() + var/list/access_list = ..() access_list += ACCESS_ARMORY + return access_list -/obj/effect/mapping_helpers/airlock/access/all/security/detective/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/security/detective/get_access() + var/list/access_list = ..() access_list += ACCESS_FORENSICS + return access_list -/obj/effect/mapping_helpers/airlock/access/all/security/court/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/security/court/get_access() + var/list/access_list = ..() access_list += ACCESS_COURT + return access_list -/obj/effect/mapping_helpers/airlock/access/all/security/hos/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/security/hos/get_access() + var/list/access_list = ..() access_list += ACCESS_HOS + return access_list // -------------------- Service access helpers /obj/effect/mapping_helpers/airlock/access/all/service icon_state = "access_helper_serv" -/obj/effect/mapping_helpers/airlock/access/all/service/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/service/general/get_access() + var/list/access_list = ..() access_list += ACCESS_SERVICE + return access_list -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen/get_access() + var/list/access_list = ..() access_list += ACCESS_KITCHEN + return access_list -/obj/effect/mapping_helpers/airlock/access/all/service/bar/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/service/bar/get_access() + var/list/access_list = ..() access_list += ACCESS_BAR + return access_list -/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/service/hydroponics/get_access() + var/list/access_list = ..() access_list += ACCESS_HYDROPONICS + return access_list -/obj/effect/mapping_helpers/airlock/access/all/service/janitor/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/service/janitor/get_access() + var/list/access_list = ..() access_list += ACCESS_JANITOR + return access_list -/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/service/chapel_office/get_access() + var/list/access_list = ..() access_list += ACCESS_CHAPEL_OFFICE + return access_list -/obj/effect/mapping_helpers/airlock/access/all/service/crematorium/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/service/crematorium/get_access() + var/list/access_list = ..() access_list += ACCESS_CREMATORIUM + return access_list -/obj/effect/mapping_helpers/airlock/access/all/service/crematorium/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/service/crematorium/get_access() + var/list/access_list = ..() access_list += ACCESS_CREMATORIUM + return access_list -/obj/effect/mapping_helpers/airlock/access/all/service/library/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/service/library/get_access() + var/list/access_list = ..() access_list += ACCESS_LIBRARY + return access_list -/obj/effect/mapping_helpers/airlock/access/all/service/library/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/service/library/get_access() + var/list/access_list = ..() access_list += ACCESS_THEATRE + return access_list -/obj/effect/mapping_helpers/airlock/access/all/service/lawyer/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/service/lawyer/get_access() + var/list/access_list = ..() access_list += ACCESS_LAWYER + return access_list // -------------------- Supply access helpers /obj/effect/mapping_helpers/airlock/access/all/supply icon_state = "access_helper_sup" -/obj/effect/mapping_helpers/airlock/access/all/supply/general/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/supply/general/get_access() + var/list/access_list = ..() access_list += ACCESS_CARGO + return access_list -/obj/effect/mapping_helpers/airlock/access/all/supply/mail_sorting/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/supply/mail_sorting/get_access() + var/list/access_list = ..() access_list += ACCESS_MAILSORTING + return access_list -/obj/effect/mapping_helpers/airlock/access/all/supply/mining/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/supply/mining/get_access() + var/list/access_list = ..() access_list += ACCESS_MINING + return access_list -/obj/effect/mapping_helpers/airlock/access/all/supply/mining_station/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/supply/mining_station/get_access() + var/list/access_list = ..() access_list += ACCESS_MINING_STATION + return access_list -/obj/effect/mapping_helpers/airlock/access/all/supply/mineral_storage/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/supply/mineral_storage/get_access() + var/list/access_list = ..() access_list += ACCESS_MINERAL_STOREROOM + return access_list -/obj/effect/mapping_helpers/airlock/access/all/supply/qm/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/supply/qm/get_access() + var/list/access_list = ..() access_list += ACCESS_QM + return access_list -/obj/effect/mapping_helpers/airlock/access/all/supply/vault/Initialize() - . = ..() +/obj/effect/mapping_helpers/airlock/access/all/supply/vault/get_access() + var/list/access_list = ..() access_list += ACCESS_VAULT + return access_list diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index d865b15834b..3556319f852 100644 --- a/code/modules/mapping/mapping_helpers.dm +++ b/code/modules/mapping/mapping_helpers.dm @@ -107,15 +107,50 @@ . = ..() if(!mapload) log_mapping("[src] spawned outside of mapload!") - return INITIALIZE_HINT_QDEL + return -/obj/effect/mapping_helpers/airlock/LateInitialize() - . = ..() var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in loc if(!airlock) log_mapping("[src] failed to find an airlock at [AREACOORD(src)]") else payload(airlock) + +/obj/effect/mapping_helpers/airlock/LateInitialize() + . = ..() + var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in loc + if(!airlock) + qdel(src) + return + if(airlock.cyclelinkeddir) + airlock.cyclelinkairlock() + if(airlock.closeOtherId) + airlock.update_other_id() + if(airlock.abandoned) + var/outcome = rand(1,100) + switch(outcome) + if(1 to 9) + var/turf/here = get_turf(src) + for(var/turf/closed/T in range(2, src)) + here.PlaceOnTop(T.type) + qdel(src) + return + here.PlaceOnTop(/turf/closed/wall) + qdel(src) + return + if(9 to 11) + airlock.lights = FALSE + airlock.locked = TRUE + if(12 to 15) + airlock.locked = TRUE + if(16 to 23) + airlock.welded = TRUE + if(24 to 30) + airlock.panel_open = TRUE + if(airlock.cutAiWire) + wires.cut(WIRE_AI) + if(airlock.autoname) + name = get_area_name(src, TRUE) + update_appearance() qdel(src) /obj/effect/mapping_helpers/airlock/proc/payload(obj/machinery/door/airlock/payload)