From a0c1f979dc938a8051dba8bde2339c882d41624f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 27 Apr 2017 17:02:33 -0500 Subject: [PATCH] Fixes templates/ruins not updating area list --- code/__HELPERS/unsorted.dm | 2 +- code/controllers/subsystem/mapping.dm | 9 ++++++--- code/game/area/areas.dm | 1 + code/game/area/areas/holodeck.dm | 1 + code/game/area/areas/ruins.dm | 1 + code/modules/mapping/map_template.dm | 5 ++++- code/modules/mob/dead/observer/observer.dm | 10 +++++++--- 7 files changed, 21 insertions(+), 8 deletions(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index a7338a0c5d..1da1b50aa3 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -582,7 +582,7 @@ Turf and target are seperate in case you want to teleport some distance from a t return 0 //Repopulates sortedAreas list -/proc/SortAreas() +/proc/repopulate_sorted_areas() GLOB.sortedAreas = list() for(var/area/A in world) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index dd66f3638e..a27235c592 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -18,6 +18,8 @@ SUBSYSTEM_DEF(mapping) var/list/shuttle_templates = list() var/list/shelter_templates = list() + var/loading_ruins = FALSE + /datum/controller/subsystem/mapping/PreInit() if(!config) #ifdef FORCE_MAP @@ -32,13 +34,13 @@ SUBSYSTEM_DEF(mapping) if(config.defaulted) to_chat(world, "Unable to load next map config, defaulting to Box Station") loadWorld() - SortAreas() + repopulate_sorted_areas() process_teleport_locs() //Sets up the wizard teleport locations preloadTemplates() // Pick a random away mission. createRandomZlevel() // Generate mining. - + loading_ruins = TRUE var/mining_type = config.minetype if (mining_type == "lavaland") seedRuins(list(5), global.config.lavaland_budget, /area/lavaland/surface/outdoors, lava_ruins_templates) @@ -54,7 +56,8 @@ SUBSYSTEM_DEF(mapping) space_zlevels += i seedRuins(space_zlevels, global.config.space_budget, /area/space, space_ruins_templates) - + loading_ruins = FALSE + repopulate_sorted_areas() // Set up Z-level transistions. setup_map_transitions() ..() diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index f3e2de241f..137229db37 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -42,6 +42,7 @@ var/has_gravity = 0 var/noteleport = 0 //Are you forbidden from teleporting to the area? (centcomm, mobs, wizard, hand teleporter) + var/hidden = FALSE //Hides area from player Teleport function. var/safe = 0 //Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers var/no_air = null diff --git a/code/game/area/areas/holodeck.dm b/code/game/area/areas/holodeck.dm index 21999a74a1..c4b4e02f7b 100644 --- a/code/game/area/areas/holodeck.dm +++ b/code/game/area/areas/holodeck.dm @@ -3,6 +3,7 @@ icon_state = "Holodeck" dynamic_lighting = DYNAMIC_LIGHTING_DISABLED flags = 0 + hidden = TRUE var/obj/machinery/computer/holodeck/linked var/restricted = 0 // if true, program goes on emag list diff --git a/code/game/area/areas/ruins.dm b/code/game/area/areas/ruins.dm index d697c8436f..828d165dd8 100644 --- a/code/game/area/areas/ruins.dm +++ b/code/game/area/areas/ruins.dm @@ -4,6 +4,7 @@ name = "\improper Unexplored Location" icon_state = "away" has_gravity = 1 + hidden = TRUE /area/ruin/unpowered diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index d47c4da04b..e0588acf2b 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -51,7 +51,7 @@ return FALSE smooth_zlevel(world.maxz) - SortAreas() + repopulate_sorted_areas() //initialize things that are normally initialized after map load initTemplateBounds(bounds) @@ -74,6 +74,9 @@ //initialize things that are normally initialized after map load initTemplateBounds(bounds) + if(!SSmapping.loading_ruins) //Will be done manually during mapping ss init + repopulate_sorted_areas() + log_game("[name] loaded at at [T.x],[T.y],[T.z]") return TRUE diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 2c5b064137..ab6377b096 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -355,9 +355,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp if(!isobserver(usr)) to_chat(usr, "Not when you're not dead!") return - var/A - A = input("Area to jump to", "BOOYEA", A) as null|anything in GLOB.sortedAreas - var/area/thearea = A + var/list/filtered = list() + for(var/V in GLOB.sortedAreas) + var/area/A = V + if(!A.hidden) + filtered += A + var/area/thearea = input("Area to jump to", "BOOYEA") as null|anything in filtered + if(!thearea) return