Fix for the runtime Mloc sent me.

This commit is contained in:
SkyMarshal
2012-08-03 10:40:54 -07:00
parent 6268a9c160
commit e4c4f77de2

View File

@@ -191,49 +191,50 @@ connection
proc/CheckPassSanity() proc/CheckPassSanity()
Cleanup() Cleanup()
if(A.ZAirPass(B)) if(A.zone && B.zone)
var/door_pass = A.CanPass(null,B,1.5,1) if(A.ZAirPass(B))
if(door_pass || A.CanPass(null,B,0,0)) var/door_pass = A.CanPass(null,B,1.5,1)
if(indirect == CONNECTION_CLOSED) if(door_pass || A.CanPass(null,B,0,0))
//ADJUST FOR CAN CONNECT if(indirect == CONNECTION_CLOSED)
if(!A.zone.connected_zones) //ADJUST FOR CAN CONNECT
A.zone.connected_zones = list() if(!A.zone.connected_zones)
if(B.zone in A.zone.connected_zones) A.zone.connected_zones = list()
A.zone.connected_zones[B.zone]++ if(B.zone in A.zone.connected_zones)
else A.zone.connected_zones[B.zone]++
A.zone.connected_zones += B.zone else
A.zone.connected_zones[B.zone] = 1 A.zone.connected_zones += B.zone
A.zone.connected_zones[B.zone] = 1
if(!B.zone.connected_zones) if(!B.zone.connected_zones)
B.zone.connected_zones = list() B.zone.connected_zones = list()
if(A.zone in B.zone.connected_zones) if(A.zone in B.zone.connected_zones)
B.zone.connected_zones[A.zone]++ B.zone.connected_zones[A.zone]++
else else
B.zone.connected_zones += A.zone B.zone.connected_zones += A.zone
B.zone.connected_zones[A.zone] = 1 B.zone.connected_zones[A.zone] = 1
if(door_pass) if(door_pass)
indirect = CONNECTION_DIRECT indirect = CONNECTION_DIRECT
else if(!door_pass) else if(!door_pass)
indirect = CONNECTION_INDIRECT indirect = CONNECTION_INDIRECT
else if(indirect > CONNECTION_CLOSED) else if(indirect > CONNECTION_CLOSED)
indirect = CONNECTION_CLOSED indirect = CONNECTION_CLOSED
//ADJUST FOR CANNOT CONNECT //ADJUST FOR CANNOT CONNECT
if(A.zone.connected_zones) if(A.zone.connected_zones)
if(A.zone.connected_zones[B.zone] > 1) if(A.zone.connected_zones[B.zone] > 1)
A.zone.connected_zones[B.zone]-- A.zone.connected_zones[B.zone]--
else else
A.zone.connected_zones.Remove(B.zone) A.zone.connected_zones.Remove(B.zone)
if(A.zone.connected_zones && !A.zone.connected_zones.len) if(A.zone.connected_zones && !A.zone.connected_zones.len)
A.zone.connected_zones = null A.zone.connected_zones = null
if(B.zone.connected_zones) if(B.zone.connected_zones)
if(B.zone.connected_zones[A.zone] > 1) if(B.zone.connected_zones[A.zone] > 1)
B.zone.connected_zones[A.zone]-- B.zone.connected_zones[A.zone]--
else else
B.zone.connected_zones.Remove(A.zone) B.zone.connected_zones.Remove(A.zone)
if(B.zone.connected_zones && !B.zone.connected_zones.len) if(B.zone.connected_zones && !B.zone.connected_zones.len)
B.zone.connected_zones = null B.zone.connected_zones = null
else //If I can no longer pass air, better delete else //If I can no longer pass air, better delete
del src del src
proc/Sanitize() proc/Sanitize()
//If the zones change on connected turfs, update it. //If the zones change on connected turfs, update it.