mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-29 07:59:01 +01:00
Merge pull request #6712 from Mloc/bs12-overflow
fix an issue with ZAS geometry not re-forming
This commit is contained in:
+1
-1
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user