Files
CHOMPStation2/code/game/master_controller.dm
Albert Iordache 619afea38f Revert "water pipes base + pda support"
This reverts commit a591aef35c.
2012-01-27 10:06:12 +02:00

135 lines
2.8 KiB
Plaintext

var/global/datum/controller/game_controller/master_controller //Set in world.New()
var/global/controllernum = "no"
datum/controller/game_controller
var/processing = 1
proc
setup()
setup_objects()
process()
setup()
if(master_controller && (master_controller != src))
del(src)
return
//There can be only one master.
if(!air_master)
air_master = new /datum/controller/air_system()
air_master.setup()
if(!job_master)
job_master = new /datum/controller/occupations()
if(job_master.SetupOccupations())
world << "\red \b Job setup complete"
job_master.LoadJobs("config/jobs.txt")
if(!tension_master)
tension_master = new /datum/tension()
world.tick_lag = 0.9
setup_objects()
setupgenetics()
syndicate_code_phrase = generate_code_phrase()//Sets up code phrase for traitors, for the round.
syndicate_code_response = generate_code_phrase()
emergency_shuttle = new /datum/shuttle_controller/emergency_shuttle()
if(!ticker)
ticker = new /datum/controller/gameticker()
spawn
ticker.pregame()
setup_objects()
world << "\red \b Initializing objects"
sleep(-1)
for(var/obj/object in world)
object.initialize()
world << "\red \b Initializing pipe networks"
sleep(-1)
for(var/obj/machinery/atmospherics/machine in world)
machine.build_network()
world << "\red \b Initializing atmos machinery."
sleep(-1)
for(var/obj/machinery/atmospherics/unary/vent_pump/T in world)
T.broadcast_status()
for(var/obj/machinery/atmospherics/unary/vent_scrubber/T in world)
T.broadcast_status()
var/emclosetcount = rand((emclosets.len)/2, (emclosets.len)*2/3)
while(emclosetcount > 0)
var/turf/loc = pick(emclosets)
emclosets -= loc
new /obj/structure/closet/emcloset(loc)
emclosetcount--
world << "\red \b Initializations complete."
process()
if(!processing)
return 0
//world << "Processing"
controllernum = "yes"
spawn (100) controllernum = "no"
var/start_time = world.timeofday
air_master.process()
tension_master.process()
sleep(1)
sun.calc_position()
sleep(-1)
for(var/mob/M in world)
M.Life()
sleep(-1)
for(var/datum/disease/D in active_diseases)
D.process()
for(var/obj/machinery/machine in machines)
if(machine)
machine.process()
if(machine && machine.use_power)
machine.auto_use_power()
sleep(-1)
sleep(1)
for(var/obj/object in processing_objects)
// spawn(0)Still need to test the spawn ticker
object.process()
for(var/datum/pipe_network/network in pipe_networks)
network.process()
for(var/datum/powernet/P in powernets)
P.reset()
sleep(-1)
ticker.process()
sleep(world.timeofday+10-start_time)
spawn process()
return 1