From ae16d818886b8bcd11a10b2e8676ab1803038e5b Mon Sep 17 00:00:00 2001
From: Cael_Aislinn
Date: Fri, 1 Feb 2013 22:49:24 +1000
Subject: [PATCH] fix for blueprint areas randomly disappearing after a while,
blueprint areas power not working, blueprint areas lighting being [initially]
borked
Signed-off-by: Cael_Aislinn
---
code/controllers/_DynamicAreaLighting_TG.dm | 11 +++++++++--
code/game/objects/items/blueprints.dm | 6 ++++++
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/code/controllers/_DynamicAreaLighting_TG.dm b/code/controllers/_DynamicAreaLighting_TG.dm
index c8f52ef9365..baed6adaf4f 100644
--- a/code/controllers/_DynamicAreaLighting_TG.dm
+++ b/code/controllers/_DynamicAreaLighting_TG.dm
@@ -236,18 +236,24 @@ turf/proc/update_lumcount(amount)
turf/proc/shift_to_subarea()
lighting_changed = 0
-
var/area/Area = loc
+
if(!istype(Area) || !Area.lighting_use_dynamic) return
// change the turf's area depending on its brightness
// restrict light to valid levels
var/light = min(max(round(lighting_lumcount,1),0),lighting_controller.lighting_states)
- var/new_tag = "[Area.type]sd_L[light]"
+
+ var/find = findtextEx(Area.tag, "sd_L")
+ var/new_tag = copytext(Area.tag, 1, find)
+ new_tag += "sd_L[light]"
if(Area.tag!=new_tag) //skip if already in this area
+
var/area/A = locate(new_tag) // find an appropriate area
+
if(!A)
+
A = new Area.type() // create area if it wasn't found
// replicate vars
for(var/V in Area.vars)
@@ -362,6 +368,7 @@ atom
return brightness
+
#undef LIGHTING_MAX_LUMINOSITY
#undef LIGHTING_MAX_LUMINOSITY_MOB
#undef LIGHTING_LAYER
diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm
index 5ce14b361ec..ce9a25b0602 100644
--- a/code/game/objects/items/blueprints.dm
+++ b/code/game/objects/items/blueprints.dm
@@ -130,6 +130,12 @@ move an amendment to the drawing.
A.power_light = 0
A.power_environ = 0
move_turfs_to_area(turfs, A)
+
+ A.always_unpowered = 0
+ for(var/turf/T in A.contents)
+ T.lighting_changed = 1
+ lighting_controller.changed_turfs += T
+
spawn(5)
//ma = A.master ? "[A.master]" : "(null)"
//world << "DEBUG: create_area(5):
A.name=[A.name]
A.tag=[A.tag]
A.master=[ma]"