// global datum that will preload variables on atoms instanciation GLOBAL_VAR_INIT(use_preloader, FALSE) GLOBAL_DATUM_INIT(_preloader, /datum/map_preloader, new) /// Preloader datum /datum/map_preloader var/list/attributes var/target_path /world/proc/preloader_setup(list/the_attributes, path) if(the_attributes.len) GLOB.use_preloader = TRUE var/datum/map_preloader/preloader_local = GLOB._preloader preloader_local.attributes = the_attributes preloader_local.target_path = path /world/proc/preloader_load(atom/what) GLOB.use_preloader = FALSE var/datum/map_preloader/preloader_local = GLOB._preloader for(var/attribute in preloader_local.attributes) var/value = preloader_local.attributes[attribute] if(islist(value)) value = deepCopyList(value) #ifdef TESTING if(what.vars[attribute] == value) var/message = "[what.type] at [AREACOORD(what)] - VAR: [attribute] = [isnull(value) ? "null" : (isnum(value) ? value : "\"[value]\"")]" log_mapping("DIRTY VAR: [message]") GLOB.dirty_vars += message #endif what.vars[attribute] = value /area/template_noop name = "Area Passthrough" /turf/template_noop name = "Turf Passthrough" icon_state = "noop" bullet_bounce_sound = null