Merge pull request #6712 from Mloc/bs12-overflow

fix an issue with ZAS geometry not re-forming
This commit is contained in:
Zuhayr
2014-10-15 03:22:32 +10:30
3 changed files with 13 additions and 10 deletions
+1 -1
View File
@@ -47,7 +47,7 @@ turf/c_airblock(turf/other)
#ifdef ZASDBG
ASSERT(isturf(other))
#endif
if(blocks_air)
if(blocks_air || other.blocks_air)
return BLOCKED
//Z-level handling code. Always block if there isn't an open space.
+9 -6
View File
@@ -76,11 +76,15 @@ Class Procs:
edge.add_connection(src)
/connection/proc/mark_direct()
state |= CONNECTION_DIRECT
if(!direct())
state |= CONNECTION_DIRECT
edge.direct++
//world << "Marked direct."
/connection/proc/mark_indirect()
state &= ~CONNECTION_DIRECT
if(direct())
state &= ~CONNECTION_DIRECT
edge.direct--
//world << "Marked indirect."
/connection/proc/mark_space()
@@ -110,10 +114,9 @@ Class Procs:
erase()
return
else if(block_status & ZONE_BLOCKED)
if(direct())
mark_indirect()
else
mark_direct()
mark_indirect()
else
mark_direct()
var/b_is_space = !istype(B,/turf/simulated)
+3 -3
View File
@@ -61,6 +61,7 @@ Class Procs:
/connection_edge/var/zone/A
/connection_edge/var/list/connecting_turfs = list()
/connection_edge/var/direct = 0
/connection_edge/var/coefficient = 0
@@ -69,6 +70,7 @@ Class Procs:
/connection_edge/proc/add_connection(connection/c)
coefficient++
if(c.direct()) direct++
//world << "Connection added: [type] Coefficient: [coefficient]"
/connection_edge/proc/remove_connection(connection/c)
@@ -76,6 +78,7 @@ Class Procs:
coefficient--
if(coefficient <= 0)
erase()
if(c.direct()) direct--
/connection_edge/proc/contains_zone(zone/Z)
@@ -114,7 +117,6 @@ Class Procs:
/connection_edge/zone/var/zone/B
/connection_edge/zone/var/direct = 0
/connection_edge/zone/New(zone/A, zone/B)
@@ -128,11 +130,9 @@ Class Procs:
/connection_edge/zone/add_connection(connection/c)
. = ..()
connecting_turfs.Add(c.A)
if(c.direct()) direct++
/connection_edge/zone/remove_connection(connection/c)
connecting_turfs.Remove(c.A)
if(c.direct()) direct--
. = ..()
/connection_edge/zone/contains_zone(zone/Z)