fixed lockdown computer.

Signed-off-by: caelaislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
caelaislinn
2012-05-21 02:11:47 +10:00
parent c7bfd3d699
commit aa67c605dc
4 changed files with 74 additions and 95 deletions

View File

@@ -127,8 +127,8 @@
desc = "Used to control blast doors."
icon_state = "lockdown"
circuit = "/obj/item/weapon/circuitboard/lockdown"
var/connected_doors[0][0]
var/department //each department has a hardcoded list of possible door networks
var/list/connected_doors
var/department //each department has a hardcoded list of possible door networks
/obj/machinery/computer/crew
name = "Crew monitoring computer"

View File

@@ -7,14 +7,12 @@
desc = "Used to control blast doors."
icon_state = "lockdown"
circuit = "/obj/item/weapon/circuitboard/lockdown"
var/connectedDoorIds[0][0]
var/department = ""
var/connected_doors[0][0]
var/connected_doors[0][0]
var/connected_doors
var/department*/
New()
..()
connected_doors = new/list()
//only load blast doors for map-defined departments for the moment
//door networks are hardcoded here.
switch(department)
@@ -47,11 +45,15 @@
connected_doors.Add("Patient Room 2 Shutters")
connected_doors.Add("Patient Room 3 Shutters")
for(var/net in connected_doors)
connected_doors[net] = new/list()
world << "network: [net]"
//loop through the world, grabbing all the relevant doors
spawn(1)
for(var/obj/machinery/door/poddoor/D in world)
if(D.lockdownNetwork in connected_doors)
var/list/L = connected_doors[D.lockdownNetwork]
if(D.id in connected_doors)
var/list/L = connected_doors[D.id]
L.Add(D)
attack_ai(mob/user)
@@ -61,19 +63,46 @@
add_fingerprint(user)
if(stat & (BROKEN|NOPOWER))
return
interact(user)
power_change()
if(stat & BROKEN)
icon_state = "broken"
else
if( powered() )
icon_state = initial(icon_state)
stat &= ~NOPOWER
else
spawn(rand(0, 15))
src.icon_state = "c_unpowered"
stat |= NOPOWER
if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) )
if (!istype(user, /mob/living/silicon))
user.machine = null
user << browse(null, "window=lockdown")
return
var/t = "<B>Lockdown Control</B><BR>"
t += "<A href='?src=\ref[src];close=1'>Close</A><hr>"
t += "<table border=1>"
var/empty = 1
for(var/curNetId in connected_doors)
var/list/L = connected_doors[curNetId]
if(!L || L.len == 0)
continue
empty = 0
t += "<tr>"
t += "<td><b>" + curNetId + "<b></td>"
t += "<td><b><a href='?src=\ref[src];open_net=[curNetId]'>Disable lockdown</a> / <a href='?src=\ref[src];close_net=[curNetId]'>Enable lockdown</a></b></td>"
t += "</tr>"
for(var/obj/machinery/door/poddoor/D in connected_doors[curNetId])
t += "<tr>"
if(istype(D,/obj/machinery/door/poddoor/shutters))
t += "<td> Shutter</td>"
else
t += "<td> Blast door</td>"
if(D.density)
//t += "<td><a href='?src=\ref[D];open=1'>Open</a> - Close</td>"
t += "Closed"
else
//t += "<td>Open - <a href='?src=\ref[D];close=1'>Close</a></td>"
t += "Open"
t += "</tr>"
t += "</table>"
if(empty)
t += "\red No networks connected.<br>"
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
user << browse(t, "window=lockdown;size=500x800")
onclose(user, "lockdown")
Topic(href, href_list)
..()
@@ -82,87 +111,40 @@
usr.machine = null
return
if( href_list["openDoor"] )
var/obj/machinery/door/poddoor/D = href_list["door"]
if(D.density)
D.open()
if( href_list["open_net"] )
var/netTag = href_list["open_net"]
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
if(D.density) //for some reason, there's no var saying whether the door is open or not >.>
spawn(0)
D.open()
src.updateDialog()
return
if( href_list["closeDoor"] )
var/obj/machinery/door/poddoor/D = href_list["door"]
if(!D.density)
D.close()
if( href_list["close_net"] )
var/netTag = href_list["close_net"]
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
if(!D.density)
spawn(0)
D.close()
src.updateDialog()
return
if( href_list["close_all"] )
if(href_list["networkTag"] == "all")
for(var/netTag in connected_doors)
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
if(D.doorTag == href_list["doorTag"])
if(!D.density)
spawn(0)
D.close()
else if(href_list["networkTag"] in connected_doors)
for(var/obj/machinery/door/poddoor/D in connected_doors[href_list["networkTag"]])
if(D.doorTag == href_list["doorTag"])
if(!D.density)
spawn(0)
D.close()
for(var/netTag in connected_doors)
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
if(!D.density)
spawn(0)
D.close()
src.updateDialog()
return
if( href_list["open_all"] )
if(href_list["networkTag"] == "all")
for(var/netTag in connected_doors)
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
if(D.doorTag == href_list["doorTag"])
if(D.density)
spawn(0)
D.open()
else if(href_list["networkTag"] in connected_doors)
for(var/obj/machinery/door/poddoor/D in connected_doors[href_list["networkTag"]])
if(D.doorTag == href_list["doorTag"])
if(D.density)
spawn(0)
D.open()
for(var/netTag in connected_doors)
for(var/obj/machinery/door/poddoor/D in connected_doors[netTag])
if(D.density)
spawn(0)
D.open()
src.updateDialog()
return
if(href_list["update"])
src.updateDialog()
return
proc
interact(mob/user)
if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) )
if (!istype(user, /mob/living/silicon))
user.machine = null
user << browse(null, "window=lockdown")
return
var/t = "<B>Lockdown Control</B><BR>"
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
t += "<table border=1>"
for(var/curNetId in connected_doors)
var/list/L = connected_doors[curNetId]
if(L.len == 0)
continue
t += "<tr>"
t += "<td><b>" + curNetId + "<b></td>"
t += "<td><b><a href='?src=\ref[src];open_all=1;networkTag=[curNetId]'>Open All</a> / <a href='?src=\ref[src];close_all=1;networkTag=[curNetId]'>Close All</a></b></td>"
t += "</tr>"
for(var/obj/machinery/door/poddoor/D in connected_doors[curNetId])
if(D.id == curNetId )
t += "<tr>"
t += "<td> [D.networkTag]</td>"
if(D.density)
t += "<td><a href='?src=\ref[D];open=1'>Open</a> - Close</td>"
else
t += "<td>Open - <a href='?src=\ref[D];close=1'>Close</a></td>"
t += "</tr>"
t += "</table>"
t += "<A href='?src=\ref[src];close=1'>Close</A><BR>"
user << browse(t, "window=lockdown;size=500x800")
onclose(user, "lockdown")
src.updateDialog()

View File

@@ -3,10 +3,7 @@
desc = "A type of powerful blast door."
icon = 'rapid_pdoor.dmi'
icon_state = "pdoor1"
var/lockdownNetwork
var/doorTag
var/id = 1.0
var/networkTag = ""
var/id = ""
/obj/machinery/door/poddoor/Bumped(atom/AM)
if(!density)

View File

@@ -209,7 +209,7 @@
if(src.vent_network == C.comp_id)
compressors.Add(C)
for(var/obj/machinery/door/poddoor/D in world)
if(src.vent_network == D.networkTag)
if(src.vent_network == D.id)
doors.Add(D)
process()