mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-21 07:32:02 +00:00
changes: early misc & seeds now load before atlas. ZAS now has priority 55 down from 80. Timer now has priority 45 down from (default) 50. Lighting now has priority 65 up from 20. The asteroid gen SS has been renamed to map finalization, and now does other map touch-up tasks like area sort, map datum finalization, and uplink init.
83 lines
3.4 KiB
Plaintext
83 lines
3.4 KiB
Plaintext
#define TICK_LIMIT_RUNNING 80
|
|
#define TICK_LIMIT_TO_RUN 70
|
|
#define TICK_LIMIT_MC 70
|
|
#define TICK_LIMIT_MC_INIT config.mc_init_tick_limit
|
|
#define TICK_LIMIT_MC_INIT_DEFAULT 98
|
|
|
|
#define MC_TICK_CHECK ( world.tick_usage > CURRENT_TICKLIMIT ? pause() : 0 )
|
|
|
|
// For multi-step subsystems that want to split their tick into multiple parts.
|
|
#define MC_SPLIT_TICK_INIT(phase_count) var/original_tick_limit = CURRENT_TICKLIMIT; var/split_tick_phases = ##phase_count
|
|
#define MC_SPLIT_TICK \
|
|
if(split_tick_phases > 1){\
|
|
CURRENT_TICKLIMIT = ((original_tick_limit - world.tick_usage) / split_tick_phases) + world.tick_usage;\
|
|
--split_tick_phases;\
|
|
} else {\
|
|
CURRENT_TICKLIMIT = original_tick_limit;\
|
|
}
|
|
|
|
// Used to smooth out costs to try and avoid oscillation.
|
|
#define MC_AVERAGE_FAST(average, current) (0.7 * (average) + 0.3 * (current))
|
|
#define MC_AVERAGE(average, current) (0.8 * (average) + 0.2 * (current))
|
|
#define MC_AVERAGE_SLOW(average, current) (0.9 * (average) + 0.1 * (current))
|
|
|
|
#define MC_AVG_FAST_UP_SLOW_DOWN(average, current) (average > current ? MC_AVERAGE_SLOW(average, current) : MC_AVERAGE_FAST(average, current))
|
|
#define MC_AVG_SLOW_UP_FAST_DOWN(average, current) (average < current ? MC_AVERAGE_SLOW(average, current) : MC_AVERAGE_FAST(average, current))
|
|
|
|
#define NEW_SS_GLOBAL(varname) if(varname != src){if(istype(varname)){Recover();qdel(varname);}varname = src;}
|
|
|
|
|
|
//SubSystem flags (Please design any new flags so that the default is off, to make adding flags to subsystems easier)
|
|
|
|
//subsystem should fire during pre-game lobby.
|
|
#define SS_FIRE_IN_LOBBY 1
|
|
|
|
//subsystem does not initialize.
|
|
#define SS_NO_INIT 2
|
|
|
|
//subsystem does not fire.
|
|
// (like can_fire = 0, but keeps it from getting added to the processing subsystems list)
|
|
// (Requires a MC restart to change)
|
|
#define SS_NO_FIRE 4
|
|
|
|
//subsystem only runs on spare cpu (after all non-background subsystems have ran that tick)
|
|
// SS_BACKGROUND has its own priority bracket
|
|
#define SS_BACKGROUND 8
|
|
|
|
//subsystem does not tick check, and should not run unless there is enough time (or its running behind (unless background))
|
|
#define SS_NO_TICK_CHECK 16
|
|
|
|
//Treat wait as a tick count, not DS, run every wait ticks.
|
|
// (also forces it to run first in the tick, above even SS_NO_TICK_CHECK subsystems)
|
|
// (implies SS_FIRE_IN_LOBBY because of how it works)
|
|
// (overrides SS_BACKGROUND)
|
|
// This is designed for basically anything that works as a mini-mc (like SStimer)
|
|
#define SS_TICKER 32
|
|
|
|
//keep the subsystem's timing on point by firing early if it fired late last fire because of lag
|
|
// ie: if a 20ds subsystem fires say 5 ds late due to lag or what not, its next fire would be in 15ds, not 20ds.
|
|
#define SS_KEEP_TIMING 64
|
|
|
|
//Calculate its next fire after its fired.
|
|
// (IE: if a 5ds wait SS takes 2ds to run, its next fire should be 5ds away, not 3ds like it normally would be)
|
|
// This flag overrides SS_KEEP_TIMING
|
|
#define SS_POST_FIRE_TIMING 128
|
|
|
|
// Don't display in processes panel.
|
|
#define SS_NO_DISPLAY 256
|
|
|
|
//SUBSYSTEM STATES
|
|
#define SS_IDLE 0 //aint doing shit.
|
|
#define SS_QUEUED 1 //queued to run
|
|
#define SS_RUNNING 2 //actively running
|
|
#define SS_PAUSED 3 //paused by mc_tick_check
|
|
#define SS_SLEEPING 4 //fire() slept.
|
|
#define SS_PAUSING 5 //in the middle of pausing
|
|
|
|
// Subsystem init-states, used for the initialization MC panel.
|
|
#define SS_INITSTATE_NONE 0
|
|
#define SS_INITSTATE_STARTED 1
|
|
#define SS_INITSTATE_DONE 2
|
|
|
|
#define SS_PRIORITY_DEFAULT 50
|