mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 04:57:12 +01:00
Makes all global variables handled by the GLOB controller (#13152)
* Handlers converted, now to fix 3532 compile errors * 3532 compile fixes later, got runtimes on startup * Well the server loads now atleast * Take 2 * Oops
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/proc/is_on_level_name(atom/A,name)
|
||||
var/datum/space_level/S = space_manager.get_zlev_by_name(name)
|
||||
var/datum/space_level/S = GLOB.space_manager.get_zlev_by_name(name)
|
||||
return A.z == S.zpos
|
||||
|
||||
// For expansion later
|
||||
|
||||
@@ -36,28 +36,28 @@
|
||||
secure = (z == level_name_to_num(CENTCOMM))
|
||||
return secure
|
||||
|
||||
var/list/default_map_traits = MAP_TRANSITION_CONFIG
|
||||
GLOBAL_LIST_INIT(default_map_traits, MAP_TRANSITION_CONFIG)
|
||||
|
||||
/proc/check_level_trait(z, trait)
|
||||
if(!z)
|
||||
return 0 // If you're nowhere, you have no traits
|
||||
var/list/trait_list
|
||||
if(space_manager.initialized)
|
||||
var/datum/space_level/S = space_manager.get_zlev(z)
|
||||
if(GLOB.space_manager.initialized)
|
||||
var/datum/space_level/S = GLOB.space_manager.get_zlev(z)
|
||||
trait_list = S.flags
|
||||
else
|
||||
trait_list = default_map_traits[z]
|
||||
trait_list = GLOB.default_map_traits[z]
|
||||
trait_list = trait_list["attributes"]
|
||||
return (trait in trait_list)
|
||||
|
||||
/proc/levels_by_trait(trait)
|
||||
var/list/result = list()
|
||||
for(var/A in space_manager.z_list)
|
||||
var/datum/space_level/S = space_manager.z_list[A]
|
||||
for(var/A in GLOB.space_manager.z_list)
|
||||
var/datum/space_level/S = GLOB.space_manager.z_list[A]
|
||||
if(trait in S.flags)
|
||||
result |= S.zpos
|
||||
return result
|
||||
|
||||
/proc/level_name_to_num(name)
|
||||
var/datum/space_level/S = space_manager.get_zlev_by_name(name)
|
||||
var/datum/space_level/S = GLOB.space_manager.get_zlev_by_name(name)
|
||||
return S.zpos
|
||||
|
||||
@@ -31,11 +31,11 @@
|
||||
|
||||
/datum/space_level/Destroy()
|
||||
if(linkage == CROSSLINKED)
|
||||
if(space_manager.linkage_map)
|
||||
remove_from_space_network(space_manager.linkage_map)
|
||||
if(GLOB.space_manager.linkage_map)
|
||||
remove_from_space_network(GLOB.space_manager.linkage_map)
|
||||
|
||||
space_manager.unbuilt_space_transitions -= src
|
||||
space_manager.z_list -= "[zpos]"
|
||||
GLOB.space_manager.unbuilt_space_transitions -= src
|
||||
GLOB.space_manager.z_list -= "[zpos]"
|
||||
return ..()
|
||||
|
||||
/datum/space_level/proc/build_space_destination_arrays()
|
||||
@@ -95,7 +95,7 @@
|
||||
transit_east -= S
|
||||
|
||||
/datum/space_level/proc/apply_transition(turf/space/S)
|
||||
if(src in space_manager.unbuilt_space_transitions)
|
||||
if(src in GLOB.space_manager.unbuilt_space_transitions)
|
||||
return // Let the space manager handle this one
|
||||
switch(linkage)
|
||||
if(UNAFFECTED)
|
||||
@@ -124,10 +124,10 @@
|
||||
return
|
||||
// Remove ourselves from the linkage map if we were cross-linked
|
||||
if(linkage == CROSSLINKED)
|
||||
if(space_manager.linkage_map)
|
||||
remove_from_space_network(space_manager.linkage_map)
|
||||
if(GLOB.space_manager.linkage_map)
|
||||
remove_from_space_network(GLOB.space_manager.linkage_map)
|
||||
|
||||
space_manager.unbuilt_space_transitions |= src
|
||||
GLOB.space_manager.unbuilt_space_transitions |= src
|
||||
linkage = transition_type
|
||||
switch(transition_type)
|
||||
if(UNAFFECTED)
|
||||
@@ -143,9 +143,9 @@
|
||||
D.register()
|
||||
D.forceMove(locate(200, 200, zpos))
|
||||
|
||||
var/list/atmos_machine_typecache = typecacheof(/obj/machinery/atmospherics)
|
||||
var/list/cable_typecache = typecacheof(/obj/structure/cable)
|
||||
var/list/maploader_typecache = typecacheof(/obj/effect/landmark/map_loader)
|
||||
GLOBAL_LIST_INIT(atmos_machine_typecache, typecacheof(/obj/machinery/atmospherics))
|
||||
GLOBAL_LIST_INIT(cable_typecache, typecacheof(/obj/structure/cable))
|
||||
GLOBAL_LIST_INIT(maploader_typecache, typecacheof(/obj/effect/landmark/map_loader))
|
||||
|
||||
/datum/space_level/proc/resume_init()
|
||||
if(dirt_count > 0)
|
||||
@@ -156,9 +156,9 @@ var/list/maploader_typecache = typecacheof(/obj/effect/landmark/map_loader)
|
||||
init_list = list()
|
||||
var/watch = start_watch()
|
||||
listclearnulls(our_atoms)
|
||||
var/list/late_maps = typecache_filter_list(our_atoms, maploader_typecache)
|
||||
var/list/pipes = typecache_filter_list(our_atoms, atmos_machine_typecache)
|
||||
var/list/cables = typecache_filter_list(our_atoms, cable_typecache)
|
||||
var/list/late_maps = typecache_filter_list(our_atoms, GLOB.maploader_typecache)
|
||||
var/list/pipes = typecache_filter_list(our_atoms, GLOB.atmos_machine_typecache)
|
||||
var/list/cables = typecache_filter_list(our_atoms, GLOB.cable_typecache)
|
||||
// If we don't carefully add dirt around the map templates, bad stuff happens
|
||||
// so we separate them out here
|
||||
our_atoms -= late_maps
|
||||
@@ -193,9 +193,9 @@ var/list/maploader_typecache = typecacheof(/obj/effect/landmark/map_loader)
|
||||
/datum/space_level/proc/do_late_maps(list/late_maps)
|
||||
var/watch = start_watch()
|
||||
log_debug("Loading map templates on z-level '[zpos]'!")
|
||||
space_manager.add_dirt(zpos) // Let's not repeatedly resume init for each template
|
||||
GLOB.space_manager.add_dirt(zpos) // Let's not repeatedly resume init for each template
|
||||
for(var/atom/movable/AM in late_maps)
|
||||
AM.Initialize()
|
||||
late_maps.Cut()
|
||||
space_manager.remove_dirt(zpos)
|
||||
GLOB.space_manager.remove_dirt(zpos)
|
||||
log_debug("Took [stop_watch(watch)]s")
|
||||
|
||||
@@ -63,8 +63,8 @@
|
||||
var/oppose = get_opposite_direction(direction)
|
||||
neighbors[direction] = S
|
||||
S.neighbors[oppose] = src
|
||||
space_manager.unbuilt_space_transitions |= src
|
||||
space_manager.unbuilt_space_transitions |= S
|
||||
GLOB.space_manager.unbuilt_space_transitions |= src
|
||||
GLOB.space_manager.unbuilt_space_transitions |= S
|
||||
|
||||
|
||||
/datum/space_level/proc/get_connection(direction)
|
||||
@@ -169,7 +169,7 @@
|
||||
var/datum/space_level/S = spl.neighbors[direction]
|
||||
var/oppose = get_opposite_direction(direction)
|
||||
S.neighbors.Remove(oppose)
|
||||
space_manager.unbuilt_space_transitions |= S
|
||||
GLOB.space_manager.unbuilt_space_transitions |= S
|
||||
spl.reset_connections()
|
||||
spl = initial(spl)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
var/global/datum/zlev_manager/space_manager = new
|
||||
GLOBAL_DATUM_INIT(space_manager, /datum/zlev_manager, new())
|
||||
|
||||
/datum/zlev_manager
|
||||
// A list of z-levels
|
||||
@@ -17,11 +17,11 @@ var/global/datum/zlev_manager/space_manager = new
|
||||
// Populate our space level list
|
||||
// and prepare space transitions
|
||||
/datum/zlev_manager/proc/initialize()
|
||||
var/num_official_z_levels = map_transition_config.len
|
||||
var/num_official_z_levels = GLOB.map_transition_config.len
|
||||
var/k = 1
|
||||
|
||||
// First take care of "Official" z levels, without visiting levels outside of the list
|
||||
for(var/list/features in map_transition_config)
|
||||
for(var/list/features in GLOB.map_transition_config)
|
||||
if(k > world.maxz)
|
||||
CRASH("More map attributes pre-defined than existent z levels - [num_official_z_levels]")
|
||||
var/name = features["name"]
|
||||
|
||||
Reference in New Issue
Block a user