diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm
index 5c5d6e119aa..b212cd33a7a 100644
--- a/code/game/machinery/doors/brigdoors.dm
+++ b/code/game/machinery/doors/brigdoors.dm
@@ -23,6 +23,7 @@
density = 0 // can walk through it.
var/id = null // id of door it controls.
var/releasetime = 0 // when world.time reaches it - release the prisoneer
+ var/timelength = 0 // the length of time this door will be set for
var/timing = 1 // boolean, true/1 timer is on, false/0 means it's not timing
var/picture_state // icon_state of alert picture, if not displaying text/numbers
var/list/obj/machinery/targets = list()
@@ -61,10 +62,11 @@
// update the door_timer window and the icon
process()
if(stat & (NOPOWER|BROKEN)) return
- if(src.timing)
+ if(timing)
if(world.time > src.releasetime)
src.timer_end() // open doors, reset timer, clear status screen
- src.timing = 0
+ timing = 0
+ timeset(0)
src.updateUsrDialog()
src.update_icon()
else
@@ -115,16 +117,18 @@
proc/timeleft()
- . = (releasetime-world.time)/10
+ . = (timing ? (releasetime-world.time) : timelength)/10
if(. < 0)
. = 0
proc/timeset(var/seconds)
- releasetime=world.time+seconds*10
+ if(timing)
+ releasetime=world.time+seconds*10
+ else
+ timelength=seconds*10
return
-
//Allows AIs to use door_timer, see human attack_hand function below
attack_ai(var/mob/user as mob)
return src.attack_hand(user)
@@ -143,7 +147,7 @@
var/dat = "
"
dat += "
Timer System:"
dat += "Door [src.id] controls
"
- if (src.timing)
+ if (timing)
dat += "Stop Timer and open door
"
else
dat += "Activate Timer and close door
"
@@ -177,24 +181,26 @@
return
usr.set_machine(src)
- if(href_list["timing"])
- src.timing = text2num(href_list["timing"])
- else
- if(href_list["tp"]) //adjust timer, close door if not already closed
- var/tp = text2num(href_list["tp"])
- var/timeleft = timeleft()
- timeleft += tp
- timeleft = min(max(round(timeleft), 0), 600)
- timeset(timeleft)
- //src.timing = 1
- //src.closedoor()
- if(href_list["fc"])
- for(var/obj/machinery/flasher/F in targets)
- F.flash()
+ if(href_list["timing"]) //switch between timing and not timing
+ var/timeleft = timeleft()
+ timeleft = min(max(round(timeleft), 0), 600)
+ timing = text2num(href_list["timing"])
+ timeset(timeleft)
+ else if(href_list["tp"]) //adjust timer
+ var/timeleft = timeleft()
+ var/tp = text2num(href_list["tp"])
+ timeleft += tp
+ timeleft = min(max(round(timeleft), 0), 600)
+ timeset(timeleft)
+ //src.timing = 1
+ //src.closedoor()
+ else if(href_list["fc"])
+ for(var/obj/machinery/flasher/F in targets)
+ F.flash()
src.add_fingerprint(usr)
src.updateUsrDialog()
src.update_icon()
- if(src.timing)
+ if(timing)
src.timer_start()
else
src.timer_end()
@@ -212,7 +218,7 @@
if(stat & (BROKEN))
set_picture("ai_bsod")
return
- if(src.timing)
+ if(timing)
var/disp1 = id
var/timeleft = timeleft()
var/disp2 = "[add_zero(num2text((timeleft / 60) % 60),2)]~[add_zero(num2text(timeleft % 60), 2)]"
@@ -284,4 +290,4 @@
#undef FONT_SIZE
#undef FONT_COLOR
#undef FONT_STYLE
-#undef CHARS_PER_LINE
\ No newline at end of file
+#undef CHARS_PER_LINE