changing ticklag changes the processes interval to adapt.

This commit is contained in:
D3athrow
2015-05-17 16:51:14 -05:00
parent 23cef1d790
commit 3875f39b70
19 changed files with 53 additions and 18 deletions

View File

@@ -91,7 +91,6 @@ datum/controller/process/New(var/datum/controller/processScheduler/scheduler)
previousStatus = "idle" previousStatus = "idle"
idle() idle()
name = "process" name = "process"
schedule_interval = 50
sleep_interval = 2 sleep_interval = 2
last_slept = 0 last_slept = 0
run_start = 0 run_start = 0

View File

@@ -1,6 +1,8 @@
/datum/controller/process/air
schedule_interval = 20 // every 2 seconds
/datum/controller/process/air/setup() /datum/controller/process/air/setup()
name = "air" name = "air"
schedule_interval = 20 // every 2 seconds
if(!air_master) if(!air_master)
air_master = new air_master = new

View File

@@ -2,10 +2,10 @@ var/global/list/active_diseases = list()
/datum/controller/process/disease /datum/controller/process/disease
var/tmp/datum/updateQueue/updateQueueInstance var/tmp/datum/updateQueue/updateQueueInstance
schedule_interval = 20 // every 2 seconds
/datum/controller/process/disease/setup() /datum/controller/process/disease/setup()
name = "disease" name = "disease"
schedule_interval = 20 // every 2 seconds
updateQueueInstance = new updateQueueInstance = new
/datum/controller/process/disease/doWork() /datum/controller/process/disease/doWork()

View File

@@ -1,6 +1,8 @@
/datum/controller/process/emergencyShuttle
schedule_interval = 20 // every 2 seconds
/datum/controller/process/emergencyShuttle/setup() /datum/controller/process/emergencyShuttle/setup()
name = "emergency shuttle" name = "emergency shuttle"
schedule_interval = 20 // every 2 seconds
if(!emergency_shuttle) if(!emergency_shuttle)
emergency_shuttle = new emergency_shuttle = new

View File

@@ -2,10 +2,10 @@ var/global/list/events = list()
/datum/controller/process/event /datum/controller/process/event
var/tmp/datum/updateQueue/updateQueueInstance var/tmp/datum/updateQueue/updateQueueInstance
schedule_interval = 20 // every 2 seconds
/datum/controller/process/event/setup() /datum/controller/process/event/setup()
name = "event" name = "event"
schedule_interval = 20 // every 2 seconds
updateQueueInstance = new updateQueueInstance = new
/datum/controller/process/event/doWork() /datum/controller/process/event/doWork()

View File

@@ -1,6 +1,9 @@
/datum/controller/process/garbage
schedule_interval = 20 // every 2 seconds
/datum/controller/process/garbage/setup() /datum/controller/process/garbage/setup()
name = "garbage" name = "garbage"
schedule_interval = 20 // every 2 seconds
if(!garbageCollector) if(!garbageCollector)
garbageCollector = new garbageCollector = new

View File

@@ -1,6 +1,8 @@
/datum/controller/process/lighting
schedule_interval = 5 // every .5 second
/datum/controller/process/lighting/setup() /datum/controller/process/lighting/setup()
name = "lighting" name = "lighting"
schedule_interval = 5 // every .5 second
lighting_controller.Initialize() lighting_controller.Initialize()
/datum/controller/process/lighting/doWork() /datum/controller/process/lighting/doWork()

View File

@@ -1,8 +1,10 @@
var/global/list/machines = list() var/global/list/machines = list()
/datum/controller/process/machinery
schedule_interval = 20 // every 2 seconds
/datum/controller/process/machinery/setup() /datum/controller/process/machinery/setup()
name = "machinery" name = "machinery"
schedule_interval = 20 // every 2 seconds
/datum/controller/process/machinery/doWork() /datum/controller/process/machinery/doWork()
//#ifdef PROFILE_MACHINES //#ifdef PROFILE_MACHINES

View File

@@ -2,10 +2,10 @@
/datum/controller/process/mob /datum/controller/process/mob
var/tmp/datum/updateQueue/updateQueueInstance var/tmp/datum/updateQueue/updateQueueInstance
schedule_interval = 20 // every 2 seconds
/datum/controller/process/mob/setup() /datum/controller/process/mob/setup()
name = "mob" name = "mob"
schedule_interval = 20 // every 2 seconds
updateQueueInstance = new updateQueueInstance = new
/datum/controller/process/mob/started() /datum/controller/process/mob/started()

View File

@@ -1,9 +1,10 @@
/datum/controller/process/nanoui /datum/controller/process/nanoui
var/tmp/datum/updateQueue/updateQueueInstance var/tmp/datum/updateQueue/updateQueueInstance
schedule_interval = 20 // every 2 seconds
/datum/controller/process/nanoui/setup() /datum/controller/process/nanoui/setup()
name = "nanoui" name = "nanoui"
schedule_interval = 20 // every 2 seconds
updateQueueInstance = new updateQueueInstance = new
/datum/controller/process/nanoui/doWork() /datum/controller/process/nanoui/doWork()

View File

@@ -3,10 +3,10 @@ var/global/list/processing_objects = list()
/datum/controller/process/obj /datum/controller/process/obj
var/tmp/datum/updateQueue/updateQueueInstance var/tmp/datum/updateQueue/updateQueueInstance
schedule_interval = 20 // every 2 seconds
/datum/controller/process/obj/setup() /datum/controller/process/obj/setup()
name = "obj" name = "obj"
schedule_interval = 20 // every 2 seconds
updateQueueInstance = new updateQueueInstance = new
/datum/controller/process/obj/started() /datum/controller/process/obj/started()

View File

@@ -1,9 +1,12 @@
var/global/list/datum/pipe_network/pipe_networks = list() var/global/list/datum/pipe_network/pipe_networks = list()
var/global/list/obj/machinery/atmospherics/atmos_machines = list() var/global/list/obj/machinery/atmospherics/atmos_machines = list()
/datum/controller/process/pipenet
schedule_interval = 20 // every 2 seconds
/datum/controller/process/pipenet/setup() /datum/controller/process/pipenet/setup()
name = "pipenet" name = "pipenet"
schedule_interval = 20 // every 2 seconds
/datum/controller/process/pipenet/doWork() /datum/controller/process/pipenet/doWork()
for(var/obj/machinery/atmospherics/atmosmachinery in atmos_machines) for(var/obj/machinery/atmospherics/atmosmachinery in atmos_machines)

View File

@@ -3,10 +3,11 @@ var/global/list/power_machines = list()
/datum/controller/process/power_machinery /datum/controller/process/power_machinery
var/tmp/datum/updateQueue/updateQueueInstance var/tmp/datum/updateQueue/updateQueueInstance
schedule_interval = 20 // every 2 seconds
/datum/controller/process/power_machinery/setup() /datum/controller/process/power_machinery/setup()
name = "pow_machine" name = "pow_machine"
schedule_interval = 20 // every 2 seconds
/datum/controller/process/power_machinery/doWork() /datum/controller/process/power_machinery/doWork()
for(var/i = 1 to power_machines.len) for(var/i = 1 to power_machines.len)

View File

@@ -1,9 +1,11 @@
var/global/list/datum/powernet/powernets = list() //Holds all powernet datums in use or pooled var/global/list/datum/powernet/powernets = list() //Holds all powernet datums in use or pooled
var/global/list/cable_list = list() //Index for all cables, so that powernets don't have to look through the entire world all the time var/global/list/cable_list = list() //Index for all cables, so that powernets don't have to look through the entire world all the time
/datum/controller/process/powernet
schedule_interval = 20 // every 2 seconds
/datum/controller/process/powernet/setup() /datum/controller/process/powernet/setup()
name = "powernet" name = "powernet"
schedule_interval = 20 // every 2 seconds
/datum/controller/process/powernet/doWork() /datum/controller/process/powernet/doWork()

View File

@@ -1,6 +1,8 @@
/datum/controller/process/sun
schedule_interval = 40 // every 2 seconds
/datum/controller/process/sun/setup() /datum/controller/process/sun/setup()
name = "sun" name = "sun"
schedule_interval = 40 // every 2 seconds
sun = new sun = new
/datum/controller/process/sun/doWork() /datum/controller/process/sun/doWork()

View File

@@ -1,6 +1,7 @@
/datum/controller/process/supplyShuttle
schedule_interval = 300 // every 30 seconds
/datum/controller/process/supplyShuttle/setup() /datum/controller/process/supplyShuttle/setup()
name = "supply shuttle" name = "supply shuttle"
schedule_interval = 300 // every 30 seconds
for(var/typepath in (typesof(/datum/supply_packs) - /datum/supply_packs)) for(var/typepath in (typesof(/datum/supply_packs) - /datum/supply_packs))
var/datum/supply_packs/P = new typepath() var/datum/supply_packs/P = new typepath()

View File

@@ -3,10 +3,10 @@ var/global/datum/controller/process/ticker/tickerProcess
/datum/controller/process/ticker /datum/controller/process/ticker
var/lastTickerTimeDuration var/lastTickerTimeDuration
var/lastTickerTime var/lastTickerTime
schedule_interval = 20 // every 2 seconds
/datum/controller/process/ticker/setup() /datum/controller/process/ticker/setup()
name = "ticker" name = "ticker"
schedule_interval = 20 // every 2 seconds
lastTickerTime = world.timeofday lastTickerTime = world.timeofday

View File

@@ -1,6 +1,9 @@
/datum/controller/process/vote
schedule_interval = 10 // every second
/datum/controller/process/vote/setup() /datum/controller/process/vote/setup()
name = "vote" name = "vote"
schedule_interval = 10 // every second
/datum/controller/process/vote/doWork() /datum/controller/process/vote/doWork()
vote.process() vote.process()

View File

@@ -18,6 +18,18 @@
switch(alert("Enable Tick Compensation?","Tick Comp is currently: [config.Tickcomp]","Yes","No")) switch(alert("Enable Tick Compensation?","Tick Comp is currently: [config.Tickcomp]","Yes","No"))
if("Yes") config.Tickcomp = 1 if("Yes") config.Tickcomp = 1
else config.Tickcomp = 0 else config.Tickcomp = 0
var/origtick = 0.9
if(config.Ticklag)
origtick = config.Ticklag
if(processScheduler && processScheduler.processes && processScheduler.processes.len)
for(var/datum/controller/process/P in processScheduler.processes)
if(P.name == "inactivity") continue
if(newtick == origtick) P.schedule_interval = initial(P.schedule_interval)
else
var/intv = P.schedule_interval
P.schedule_interval = round(initial(P.schedule_interval) / (newtick /origtick), 1)
testing("Set [P.name]'s schedule_interval to [P.schedule_interval] old: [intv], original: [initial(P.schedule_interval)] ratio applied: [newtick/origtick]")
else else
src << "<span class='warning'>Error: ticklag(): Invalid world.ticklag value. No changes made.</span>" src << "<span class='warning'>Error: ticklag(): Invalid world.ticklag value. No changes made.</span>"