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