//simplified MC that is designed to fail when procs 'break'. When it fails it's just replaced with a new one. //It ensures master_controller.process() is never doubled up by killing the MC (hence terminating any of its sleeping procs) //WIP, needs lots of work still var/global/datum/controller/game_controller/master_controller //Set in world.New() var/global/controller_iteration = 0 var/global/last_tick_duration = 0 var/global/air_processing_killed = 0 var/global/pipe_processing_killed = 0 /datum/controller var/processing = 0 var/iteration = 0 var/processing_interval = 0 /datum/controller/proc/recover() // If we are replacing an existing controller (due to a crash) we attempt to preserve as much as we can. /datum/controller/game_controller var/list/shuttle_list // For debugging and VV /datum/controller/game_controller/New() //There can be only one master_controller. Out with the old and in with the new. if(master_controller != src) if(istype(master_controller)) del(master_controller) master_controller = src var/watch=0 if(!job_master) watch = start_watch() job_master = new /datum/controller/occupations() job_master.SetupOccupations() job_master.LoadJobs("config/jobs.txt") log_startup_progress("Job setup complete in [stop_watch(watch)]s.") if(!syndicate_code_phrase) syndicate_code_phrase = generate_code_phrase() if(!syndicate_code_response) syndicate_code_response = generate_code_phrase() /datum/controller/game_controller/proc/setup() world.tick_lag = config.Ticklag preloadTemplates() var/tm = start_watch() log_startup_progress("Re-loading the cyberiad...") maploader.load_map(file("_maps/map_files/cyberiad/cyberiad.dmm")) late_setup_level(block(locate(1, 1, world.maxz), locate(world.maxx, world.maxy, world.maxz))) log_startup_progress("Finished loading the cyberiad, took [stop_watch(tm)]s") // if(!config.disable_away_missions) // createRandomZlevel() // if(!config.disable_space_ruins) // seedRuins(7, rand(0, 3), /area/space, space_ruins_templates) setup_objects() setupgenetics() setupfactions() setup_economy() for(var/i=0, i