diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index 0f73142bdee..e03a20c2f0f 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -72,7 +72,6 @@ datum/controller/game_controller/proc/setup() */ - color_windows_init() setup_objects() setup_starlight() setupgenetics() @@ -361,4 +360,4 @@ datum/controller/game_controller/proc/Recover() //Mostly a placeholder for now. msg += "\t [varname] = [D.type]\n" else msg += "\t [varname] = [varval]\n" - world.log << msg + world.log << msg diff --git a/code/game/objects/effects/spawners/windowspawner.dm b/code/game/objects/effects/spawners/windowspawner.dm index 1e4b41adaa4..dd22a28ac26 100644 --- a/code/game/objects/effects/spawners/windowspawner.dm +++ b/code/game/objects/effects/spawners/windowspawner.dm @@ -7,26 +7,28 @@ var/windowtospawn = /obj/structure/window/basic /obj/effect/spawner/window/New() - for(var/obj/structure/grille/G in get_turf(src)) qdel(G) //just in case mappers don't know what they are doing + spawn(0) + for(var/obj/structure/grille/G in get_turf(src)) qdel(G) //just in case mappers don't know what they are doing - if(!useFull) - for(var/cdir in cardinal) - var/obj/structure/window/WI = new windowtospawn(get_turf(src)) - WI.dir = cdir - for(var/obj/effect/spawner/window/WS in get_step(src,cdir)) - qdel(WI) - break - else - var/obj/structure/window/W = new windowtospawn(get_turf(src)) - W.dir = SOUTHWEST + if(!useFull) + for(var/cdir in cardinal) + for(var/obj/effect/spawner/window/WS in get_step(src,cdir)) + cdir = null + break + if(!cdir) continue + var/obj/structure/window/WI = new windowtospawn(get_turf(src)) + WI.dir = cdir + else + var/obj/structure/window/W = new windowtospawn(get_turf(src)) + W.dir = SOUTHWEST - if(useGrille) - new /obj/structure/grille(get_turf(src)) + if(useGrille) + new /obj/structure/grille(get_turf(src)) - src.air_update_turf(1) //atmos can pass otherwise + src.air_update_turf(1) //atmos can pass otherwise - spawn(10) - qdel(src) + spawn(10) + qdel(src) /obj/effect/spawner/window/reinforced name = "reinforced window spawner" diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 0ef6f109b4e..64aca8bcbe9 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -1,37 +1,21 @@ -//This proc is called in master-controller, and updates the color of all windows and windoors on the map -var/global/wcBar -var/global/wcBrig -var/global/wcCommon -var/global/wcColored -/proc/color_windows_init() - var/list/bar = list("#0d8395", "#58b5c3", "#58c366", "#90d79a", "#ffffff") - var/list/brig = list("#aa0808", "#7f0606", "#ff0000") - var/list/common = list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8fcf44", "#ffffff") - - wcBar = pick(bar) - wcBrig = pick(brig) - wcCommon = pick(common) +var/global/wcBar = pick(list("#0d8395", "#58b5c3", "#58c366", "#90d79a", "#ffffff")) +var/global/wcBrig = pick(list("#aa0808", "#7f0606", "#ff0000")) +var/global/wcCommon = pick(list("#379963", "#0d8395", "#58b5c3", "#49e46e", "#8fcf44", "#ffffff")) /obj/proc/color_windows(var/obj/W as obj) - if(!wcColored) - sleep(50) // Sleeping to make sure the glass has initialized on the map - wcColored = 1 - var/list/wcBarAreas = list(/area/crew_quarters/bar) - var/list/wcBrigAreas = list(/area/security,/area/security/main,/area/security/lobby,/area/security/brig,/area/security/permabrig,/area/security/prison,/area/security/prison/cell_block/A,/area/security/prison/cell_block/B,/area/security/prison/cell_block/C,/area/security/execution,/area/security/processing,/area/security/interrogation,/area/security/interrogationobs,/area/security/evidence,/area/security/prisonlockers,/area/security/medbay,/area/security/processing,/area/security/warden,/area/security/armoury,/area/security/securearmoury,/area/security/armoury/gamma,/area/security/securehallway,/area/security/hos,/area/security/podbay,/area/security/detectives_office,/area/security/range,/area/security/nuke_storage,/area/security/customs,/area/security/customs2,/area/security/checkpoint,/area/security/checkpoint2,/area/security/checkpoint2,/area/security/checkpoint/supply,/area/security/checkpoint/engineering,/area/security/checkpoint/medical,/area/security/checkpoint/science,/area/security/vacantoffice2,/area/prison,/area/prison/arrival_airlock,/area/prison/control,/area/prison/crew_quarters,/area/prison/rec_room,/area/prison/closet,/area/prison/hallway/fore,/area/prison/hallway/aft,/area/prison/hallway/port,/area/prison/hallway/starboard,/area/prison/morgue,/area/prison/medical_research,/area/prison/medical,/area/prison/solar,/area/prison/podbay,/area/prison/solar_control,/area/prison/solitary,/area/prison/cell_block,/area/prison/cell_block/A,/area/prison/cell_block/B,/area/prison/cell_block/C,/area/shuttle/gamma/space,/area/shuttle/gamma/station,/area/security/prisonershuttle) + var/list/wcBrigAreas = list(/area/security,/area/prison,/area/shuttle/gamma) var/newcolor - for(var/A in wcBarAreas) - if(W.areaMaster == locate(A)) - newcolor = wcBar - break + var/turf/T = get_turf(W) + if(!istype(T)) return + var/area/A = T.loc - for(var/A in wcBrigAreas) - if(W.areaMaster == locate(A)) - newcolor = wcBrig - break - - if(!newcolor) + if(is_type_in_list(A,wcBarAreas)) + newcolor = wcBar + else if(is_type_in_list(A,wcBrigAreas)) + newcolor = wcBrig + else newcolor = wcCommon return newcolor