// How much "space" we give the edge of the map GLOBAL_LIST_INIT(potentialRandomZlevels, generateMapList(filename = "[global.config.directory]/awaymissionconfig.txt")) /proc/createRandomZlevel() if(GLOB.awaydestinations.len) //crude, but it saves another var! return if(GLOB.potentialRandomZlevels && GLOB.potentialRandomZlevels.len) to_chat(world, "Loading away mission...") var/map = pick(GLOB.potentialRandomZlevels) load_new_z_level(map, "Away Mission") to_chat(world, "Away mission loaded.") /proc/reset_gateway_spawns(reset = FALSE) for(var/obj/machinery/gateway/G in world) if(reset) G.randomspawns = GLOB.awaydestinations else G.randomspawns.Add(GLOB.awaydestinations) /obj/effect/landmark/awaystart name = "away mission spawn" desc = "Randomly picked away mission spawn points." /obj/effect/landmark/awaystart/New() GLOB.awaydestinations += src ..() /obj/effect/landmark/awaystart/Destroy() GLOB.awaydestinations -= src return ..() /proc/generateMapList(filename) . = list() var/list/Lines = world.file2list(filename) if(!Lines.len) return for (var/t in Lines) if (!t) continue t = trim(t) if (length(t) == 0) continue else if (copytext(t, 1, 2) == "#") continue var/pos = findtext(t, " ") var/name = null if (pos) name = lowertext(copytext(t, 1, pos)) else name = lowertext(t) if (!name) continue . += t