Controllers
This commit is contained in:
@@ -33,7 +33,6 @@ SUBSYSTEM_DEF(mapping)
|
||||
var/list/z_list
|
||||
var/datum/space_level/transit
|
||||
var/datum/space_level/empty_space
|
||||
var/dmm_suite/loader
|
||||
|
||||
/datum/controller/subsystem/mapping/PreInit()
|
||||
if(!config)
|
||||
@@ -54,7 +53,6 @@ SUBSYSTEM_DEF(mapping)
|
||||
if(!config || config.defaulted)
|
||||
to_chat(world, "<span class='boldannounce'>Unable to load next or default map config, defaulting to Box Station</span>")
|
||||
config = old_config
|
||||
loader = new
|
||||
loadWorld()
|
||||
repopulate_sorted_areas()
|
||||
process_teleport_locs() //Sets up the wizard teleport locations
|
||||
@@ -94,9 +92,8 @@ SUBSYSTEM_DEF(mapping)
|
||||
// Set up Z-level transitions.
|
||||
setup_map_transitions()
|
||||
generate_station_area_list()
|
||||
QDEL_NULL(loader)
|
||||
initialize_reserved_level()
|
||||
..()
|
||||
return ..()
|
||||
|
||||
/* Nuke threats, for making the blue tiles on the station go RED
|
||||
Used by the AI doomsday and the self destruct nuke.
|
||||
@@ -170,6 +167,7 @@ SUBSYSTEM_DEF(mapping)
|
||||
|
||||
#define INIT_ANNOUNCE(X) to_chat(world, "<span class='boldannounce'>[X]</span>"); log_world(X)
|
||||
/datum/controller/subsystem/mapping/proc/LoadGroup(list/errorList, name, path, files, list/traits, list/default_traits, silent = FALSE)
|
||||
. = list()
|
||||
var/start_time = REALTIMEOFDAY
|
||||
|
||||
if (!islist(files)) // handle single-level maps
|
||||
@@ -177,10 +175,15 @@ SUBSYSTEM_DEF(mapping)
|
||||
|
||||
// check that the total z count of all maps matches the list of traits
|
||||
var/total_z = 0
|
||||
var/list/parsed_maps = list()
|
||||
for (var/file in files)
|
||||
var/full_path = "_maps/[path]/[file]"
|
||||
var/bounds = loader.load_map(file(full_path), 1, 1, 1, cropMap=FALSE, measureOnly=TRUE)
|
||||
files[file] = total_z // save the start Z of this file
|
||||
var/datum/parsed_map/pm = new(file(full_path))
|
||||
var/bounds = pm?.bounds
|
||||
if (!bounds)
|
||||
errorList |= full_path
|
||||
continue
|
||||
parsed_maps[pm] = total_z // save the start Z of this file
|
||||
total_z += bounds[MAP_MAXZ] - bounds[MAP_MINZ] + 1
|
||||
|
||||
if (!length(traits)) // null or empty - default
|
||||
@@ -201,12 +204,13 @@ SUBSYSTEM_DEF(mapping)
|
||||
++i
|
||||
|
||||
// load the maps
|
||||
for (var/file in files)
|
||||
var/full_path = "_maps/[path]/[file]"
|
||||
if(!loader.load_map(file(full_path), 0, 0, start_z + files[file], no_changeturf = TRUE))
|
||||
errorList |= full_path
|
||||
for (var/P in parsed_maps)
|
||||
var/datum/parsed_map/pm = P
|
||||
if (!pm.load(1, 1, start_z + parsed_maps[P], no_changeturf = TRUE))
|
||||
errorList |= pm.original_path
|
||||
if(!silent)
|
||||
INIT_ANNOUNCE("Loaded [name] in [(REALTIMEOFDAY - start_time)/10]s!")
|
||||
return parsed_maps
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/loadWorld()
|
||||
//if any of these fail, something has gone horribly, HORRIBLY, wrong
|
||||
@@ -456,7 +460,13 @@ GLOBAL_LIST_EMPTY(the_station_areas)
|
||||
for(var/i in levels_by_trait(ZTRAIT_RESERVED))
|
||||
var/turf/A = get_turf(locate(SHUTTLE_TRANSIT_BORDER,SHUTTLE_TRANSIT_BORDER,i))
|
||||
var/turf/B = get_turf(locate(world.maxx - SHUTTLE_TRANSIT_BORDER,world.maxy - SHUTTLE_TRANSIT_BORDER,i))
|
||||
reserve_turfs(block(A, B))
|
||||
var/block = block(A, B)
|
||||
for(var/t in block)
|
||||
// No need to empty() these, because it's world init and they're
|
||||
// already /turf/open/space/basic.
|
||||
var/turf/T = t
|
||||
T.flags_1 |= UNUSED_RESERVATION_TURF_1
|
||||
unused_turfs["[i]"] = block
|
||||
clearing_reserved_turfs = FALSE
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/reserve_turfs(list/turfs)
|
||||
|
||||
Reference in New Issue
Block a user