diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm
index df63da64f2b..ef824609519 100644
--- a/code/game/machinery/doors/airlock_electronics.dm
+++ b/code/game/machinery/doors/airlock_electronics.dm
@@ -11,6 +11,8 @@
var/list/conf_access = null
var/one_access = 0 //if set to 1, door would receive req_one_access instead of req_access
var/const/max_brain_damage = 60 // Maximum brain damage a mob can have until it can't use the electronics
+ var/unres_sides = 0
+ var/unres_direction = null
/obj/item/airlock_electronics/attack_self(mob/user)
if(!ishuman(user) && !isrobot(user))
@@ -23,14 +25,22 @@
return
var/t1 = text("Access control
\n")
+ t1 += "
"
+ t1 += " Unrestricted Access Settings
"
+ var/list/Directions = list("North","South",,"East",,,,"West")
+ for(var/direction in cardinal)
+ if (unres_direction && unres_direction == direction)
+ t1 += "[Directions[direction]]
"
+ else
+ t1 += "[Directions[direction]]
"
+
+ t1 += "
"
t1 += "Access requirement is set to "
t1 += one_access ? "ONE
" : "ALL
"
t1 += conf_access == null ? "All
" : "All
"
- t1 += "
"
-
var/list/accesses = get_all_accesses()
for(var/acc in accesses)
var/aname = get_access_desc(acc)
@@ -64,6 +74,10 @@
if(href_list["access"])
toggle_access(href_list["access"])
+
+ if(href_list["unres_direction"])
+ unres_direction = text2num(href_list["unres_direction"])
+ unres_sides = unres_direction
attack_self(usr)
diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm
index eca9d524730..b21754cae96 100644
--- a/code/game/objects/structures/door_assembly.dm
+++ b/code/game/objects/structures/door_assembly.dm
@@ -226,6 +226,7 @@
door = new airlock_type(loc)
door.setDir(dir)
door.electronics = electronics
+ door.unres_sides = electronics.unres_sides
door.heat_proof = heat_proof_finished
if(electronics.one_access)
door.req_access = null