mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 02:34:00 +00:00
Subsystem return update (#7881)
This commit is contained in:
7
code/__defines/dcs/signals_ch/signals_subsystem.dm
Normal file
7
code/__defines/dcs/signals_ch/signals_subsystem.dm
Normal file
@@ -0,0 +1,7 @@
|
||||
// Subsystem signals. Format:
|
||||
// When the signal is called: (signal arguments)
|
||||
// All signals send the source datum of the signal as the first argument
|
||||
|
||||
///Subsystem signals
|
||||
///From base of datum/controller/subsystem/Initialize
|
||||
#define COMSIG_SUBSYSTEM_POST_INITIALIZE "subsystem_post_initialize"
|
||||
@@ -94,6 +94,7 @@
|
||||
#define span_orange(str) ("<span class='orange'>" + str + "</span>")
|
||||
#define span_blue(str) ("<span class='blue'>" + str + "</span>")
|
||||
#define span_boldannounce(str) ("<span class='boldannounce'>" + str + "</span>") // CHOMPEdit - Boldannounce
|
||||
#define span_boldwarning(str) ("<span class='boldwarning'>" + str + "</span>") // CHOMPEdit - Boldwarning
|
||||
#define span_green(str) ("<span class='green'>" + str + "</span>")
|
||||
#define span_purple(str) ("<span class='purple'>" + str + "</span>")
|
||||
#define span_yellow(str) ("<span class='yellow'>" + str + "</span>")
|
||||
|
||||
@@ -181,3 +181,6 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
|
||||
* * timer_subsystem the subsystem to insert this timer into
|
||||
*/
|
||||
#define addtimer(args...) _addtimer(args, file = __FILE__, line = __LINE__)
|
||||
|
||||
/// The timer key used to know how long subsystem initialization takes // CHOMPEdit
|
||||
#define SS_INIT_TIMER_KEY "ss_init" // CHOMPEdit
|
||||
|
||||
@@ -59,9 +59,11 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
|
||||
|
||||
var/current_runlevel //!for scheduling different subsystems for different stages of the round
|
||||
|
||||
// CHOMPEdit Start
|
||||
/// During initialization, will be the instanced subsytem that is currently initializing.
|
||||
/// Outside of initialization, returns null.
|
||||
var/current_initializing_subsystem = null
|
||||
// CHOMPEdit End
|
||||
|
||||
var/static/restart_clear = 0
|
||||
var/static/restart_timeout = 0
|
||||
@@ -207,8 +209,10 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
|
||||
for (var/datum/controller/subsystem/SS in subsystems)
|
||||
if (SS.flags & SS_NO_INIT)
|
||||
continue
|
||||
SS.Initialize(REALTIMEOFDAY)
|
||||
//SS.Initialize(REALTIMEOFDAY) // CHOMPEdit
|
||||
init_subsystem(SS) // CHOMPEdit
|
||||
CHECK_TICK
|
||||
current_initializing_subsystem = null // CHOMPEdit
|
||||
current_ticklimit = TICK_LIMIT_RUNNING
|
||||
var/time = (REALTIMEOFDAY - start_timeofday) / 10
|
||||
|
||||
@@ -239,6 +243,82 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
|
||||
// Loop.
|
||||
Master.StartProcessing(0)
|
||||
|
||||
// CHOMPEdit Start
|
||||
/**
|
||||
* Initialize a given subsystem and handle the results.
|
||||
*
|
||||
* Arguments:
|
||||
* * subsystem - the subsystem to initialize.
|
||||
*/
|
||||
/datum/controller/master/proc/init_subsystem(datum/controller/subsystem/subsystem)
|
||||
var/static/list/valid_results = list(
|
||||
SS_INIT_FAILURE,
|
||||
SS_INIT_NONE,
|
||||
SS_INIT_SUCCESS,
|
||||
SS_INIT_NO_NEED,
|
||||
)
|
||||
|
||||
if (subsystem.flags & SS_NO_INIT || subsystem.subsystem_initialized) //Don't init SSs with the corresponding flag or if they already are initialized
|
||||
return
|
||||
|
||||
current_initializing_subsystem = subsystem
|
||||
rustg_time_reset(SS_INIT_TIMER_KEY)
|
||||
|
||||
var/result = subsystem.Initialize()
|
||||
|
||||
// Capture end time
|
||||
var/time = rustg_time_milliseconds(SS_INIT_TIMER_KEY)
|
||||
var/seconds = round(time / 1000, 0.01)
|
||||
|
||||
// Always update the blackbox tally regardless.
|
||||
// SSblackbox.record_feedback("tally", "subsystem_initialize", time, subsystem.name)
|
||||
feedback_set_details("subsystem_initialize", "[time] [subsystem.name]")
|
||||
|
||||
// Gave invalid return value.
|
||||
if(result && !(result in valid_results))
|
||||
warning("[subsystem.name] subsystem initialized, returning invalid result [result]. This is a bug.")
|
||||
|
||||
// just returned ..() or didn't implement Initialize() at all
|
||||
if(result == SS_INIT_NONE)
|
||||
warning("[subsystem.name] subsystem does not implement Initialize() or it returns ..(). If the former is true, the SS_NO_INIT flag should be set for this subsystem.")
|
||||
|
||||
if(result != SS_INIT_FAILURE)
|
||||
// Some form of success, implicit failure, or the SS in unused.
|
||||
subsystem.subsystem_initialized = TRUE
|
||||
|
||||
SEND_SIGNAL(subsystem, COMSIG_SUBSYSTEM_POST_INITIALIZE)
|
||||
else
|
||||
// The subsystem officially reports that it failed to init and wishes to be treated as such.
|
||||
subsystem.subsystem_initialized = FALSE
|
||||
subsystem.can_fire = FALSE
|
||||
|
||||
// The rest of this proc is printing the world log and chat message.
|
||||
var/message_prefix
|
||||
|
||||
// If true, print the chat message with boldwarning text.
|
||||
var/chat_warning = FALSE
|
||||
|
||||
switch(result)
|
||||
if(SS_INIT_FAILURE)
|
||||
message_prefix = "Failed to initialize [subsystem.name] subsystem after"
|
||||
chat_warning = TRUE
|
||||
if(SS_INIT_SUCCESS)
|
||||
message_prefix = "Initialized [subsystem.name] subsystem within"
|
||||
if(SS_INIT_NO_NEED)
|
||||
// This SS is disabled or is otherwise shy.
|
||||
return
|
||||
else
|
||||
// SS_INIT_NONE or an invalid value.
|
||||
message_prefix = "Initialized [subsystem.name] subsystem with errors within"
|
||||
chat_warning = TRUE
|
||||
|
||||
var/message = "[message_prefix] [seconds] second[seconds == 1 ? "" : "s"]!"
|
||||
var/chat_message = chat_warning ? span_boldwarning(message) : span_boldannounce(message)
|
||||
|
||||
to_chat(world, chat_message)
|
||||
log_world(message)
|
||||
// CHOMPEdit End
|
||||
|
||||
/datum/controller/master/proc/SetRunLevel(new_runlevel)
|
||||
var/old_runlevel = isnull(current_runlevel) ? "NULL" : runlevel_flags[current_runlevel]
|
||||
testing("MC: Runlevel changed from [old_runlevel] to [new_runlevel]")
|
||||
|
||||
@@ -224,15 +224,13 @@
|
||||
if(SS_SLEEPING)
|
||||
state = SS_PAUSING
|
||||
|
||||
|
||||
//used to initialize the subsystem AFTER the map has loaded
|
||||
/datum/controller/subsystem/Initialize(start_timeofday)
|
||||
subsystem_initialized = TRUE
|
||||
var/time = (REALTIMEOFDAY - start_timeofday) / 10
|
||||
var/msg = "Initialized [name] subsystem within [time] second[time == 1 ? "" : "s"]!"
|
||||
to_chat(world, "<span class='boldannounce'>[msg]</span>")
|
||||
log_world(msg)
|
||||
return time
|
||||
// CHOMPEdit Start
|
||||
/**
|
||||
* Used to initialize the subsystem. This is expected to be overriden by subtypes.
|
||||
*/
|
||||
/datum/controller/subsystem/Initialize()
|
||||
return SS_INIT_NONE
|
||||
// CHOMPEdit End
|
||||
|
||||
//hook for printing stats to the "MC" statuspanel for admins to see performance and related stats etc.
|
||||
//CHOMPEdit Begin
|
||||
|
||||
@@ -33,7 +33,8 @@ SUBSYSTEM_DEF(air)
|
||||
/datum/controller/subsystem/air/PreInit()
|
||||
air_master = src
|
||||
|
||||
/datum/controller/subsystem/air/Initialize(timeofday)
|
||||
/datum/controller/subsystem/air/Initialize() // CHOMPEdit
|
||||
var/start_timeofday = REALTIMEOFDAY // CHOMPEdit
|
||||
report_progress("Processing Geometry...")
|
||||
|
||||
current_cycle = 0
|
||||
@@ -43,7 +44,8 @@ SUBSYSTEM_DEF(air)
|
||||
S.update_air_properties()
|
||||
CHECK_TICK
|
||||
|
||||
admin_notice({"<span class='danger'>Geometry initialized in [round(0.1*(REALTIMEOFDAY-timeofday),0.1)] seconds.</span>
|
||||
// CHOMPEdit
|
||||
admin_notice({"<span class='danger'>Geometry initialized in [round(0.1*(REALTIMEOFDAY-start_timeofday),0.1)](?) seconds.</span>
|
||||
<span class='info'>
|
||||
Total Simulated Turfs: [simulated_turf_count]
|
||||
Total Zones: [zones.len]
|
||||
@@ -98,7 +100,7 @@ Total Unsimulated Turfs: [world.maxx*world.maxy*world.maxz - simulated_turf_coun
|
||||
log_debug("Active Edges on ZAS Startup\n" + edge_log.Join("\n"))
|
||||
startup_active_edge_log = edge_log.Copy()
|
||||
|
||||
..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/air/fire(resumed = 0)
|
||||
var/timer
|
||||
|
||||
@@ -18,7 +18,7 @@ SUBSYSTEM_DEF(alarm)
|
||||
|
||||
/datum/controller/subsystem/alarm/Initialize()
|
||||
all_handlers = list(atmosphere_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
|
||||
. = ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/alarm/fire(resumed = FALSE)
|
||||
if(!resumed)
|
||||
|
||||
@@ -17,13 +17,13 @@ SUBSYSTEM_DEF(atoms)
|
||||
|
||||
var/list/BadInitializeCalls = list()
|
||||
|
||||
/datum/controller/subsystem/atoms/Initialize(timeofday)
|
||||
/datum/controller/subsystem/atoms/Initialize() // CHOMPEdit
|
||||
setupgenetics() //to set the mutations' place in structural enzymes, so initializers know where to put mutations.
|
||||
initialized = INITIALIZATION_INNEW_MAPLOAD
|
||||
to_world_log("Initializing objects")
|
||||
admin_notice("<span class='danger'>Initializing objects</span>", R_DEBUG)
|
||||
InitializeAtoms()
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/atoms/proc/InitializeAtoms(list/atoms)
|
||||
if(initialized == INITIALIZATION_INSSATOMS)
|
||||
|
||||
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(character_setup)
|
||||
name = "Character Setup"
|
||||
init_order = INIT_ORDER_DEFAULT
|
||||
priority = FIRE_PRIORITY_CHARSETUP
|
||||
flags = SS_BACKGROUND
|
||||
flags = SS_BACKGROUND | SS_NO_INIT // CHOMPEdit
|
||||
wait = 1 SECOND
|
||||
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ SUBSYSTEM_DEF(chemistry)
|
||||
/datum/controller/subsystem/chemistry/Initialize()
|
||||
initialize_chemical_reagents()
|
||||
initialize_chemical_reactions()
|
||||
..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
//CHOMPEdit Begin
|
||||
/datum/controller/subsystem/chemistry/stat_entry(msg)
|
||||
|
||||
@@ -17,9 +17,9 @@ SUBSYSTEM_DEF(circuit)
|
||||
/datum/controller/subsystem/circuit/Recover()
|
||||
flags |= SS_NO_INIT // Make extra sure we don't initialize twice.
|
||||
|
||||
/datum/controller/subsystem/circuit/Initialize(timeofday)
|
||||
/datum/controller/subsystem/circuit/Initialize() // CHOMPEdit
|
||||
circuits_init()
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/circuit/proc/circuits_init()
|
||||
//Cached lists for free performance
|
||||
|
||||
@@ -41,7 +41,7 @@ SUBSYSTEM_DEF(dbcore)
|
||||
//var/db_daemon_started = FALSE
|
||||
|
||||
/datum/controller/subsystem/dbcore/Initialize()
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS
|
||||
|
||||
/datum/controller/subsystem/dbcore/stat_entry(msg)
|
||||
msg = "P:[length(all_queries)]|Active:[length(queries_active)]|Standby:[length(queries_standby)]"
|
||||
|
||||
@@ -21,7 +21,7 @@ SUBSYSTEM_DEF(events)
|
||||
)
|
||||
if(global.using_map.use_overmap)
|
||||
GLOB.overmap_event_handler.create_events(global.using_map.overmap_z, global.using_map.overmap_size, global.using_map.overmap_event_areas)
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/events/fire(resumed)
|
||||
if (!resumed)
|
||||
|
||||
@@ -36,7 +36,7 @@ SUBSYSTEM_DEF(game_master)
|
||||
if(config && !config.enable_game_master)
|
||||
can_fire = FALSE
|
||||
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/game_master/fire(resumed)
|
||||
adjust_staleness(1)
|
||||
|
||||
@@ -14,9 +14,9 @@ SUBSYSTEM_DEF(holomaps)
|
||||
/datum/controller/subsystem/holomaps/Recover()
|
||||
flags |= SS_NO_INIT // Make extra sure we don't initialize twice.
|
||||
|
||||
/datum/controller/subsystem/holomaps/Initialize(timeofday)
|
||||
/datum/controller/subsystem/holomaps/Initialize() // CHOMPEdit
|
||||
generateHoloMinimaps()
|
||||
. = ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/holomaps/stat_entry(msg)
|
||||
if (!Debug2)
|
||||
|
||||
@@ -2,7 +2,7 @@ SUBSYSTEM_DEF(input)
|
||||
name = "Input"
|
||||
wait = 1 // SS_TICKER means this runs every tick
|
||||
init_order = INIT_ORDER_INPUT
|
||||
flags = SS_TICKER
|
||||
flags = SS_TICKER | SS_NO_INIT // CHOMPEdit
|
||||
priority = FIRE_PRIORITY_INPUT
|
||||
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
|
||||
|
||||
|
||||
@@ -11,12 +11,12 @@ SUBSYSTEM_DEF(job)
|
||||
var/debug_messages = FALSE
|
||||
|
||||
|
||||
/datum/controller/subsystem/job/Initialize(timeofday)
|
||||
/datum/controller/subsystem/job/Initialize() // CHOMPEdit
|
||||
if(!department_datums.len)
|
||||
setup_departments()
|
||||
if(!occupations.len)
|
||||
setup_occupations()
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/job/proc/setup_occupations(faction = "Station")
|
||||
occupations = list()
|
||||
|
||||
@@ -12,7 +12,7 @@ SUBSYSTEM_DEF(lighting)
|
||||
return ..()
|
||||
|
||||
|
||||
/datum/controller/subsystem/lighting/Initialize(timeofday)
|
||||
/datum/controller/subsystem/lighting/Initialize() // CHOMPEdit
|
||||
if(!subsystem_initialized)
|
||||
if (config.starlight)
|
||||
for(var/area/A in world)
|
||||
@@ -24,7 +24,7 @@ SUBSYSTEM_DEF(lighting)
|
||||
|
||||
fire(FALSE, TRUE)
|
||||
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/lighting/fire(resumed, init_tick_checks)
|
||||
MC_SPLIT_TICK_INIT(3)
|
||||
|
||||
@@ -30,12 +30,12 @@ SUBSYSTEM_DEF(machines)
|
||||
var/list/powernets = list()
|
||||
var/list/powerobjs = list()
|
||||
|
||||
/datum/controller/subsystem/machines/Initialize(timeofday)
|
||||
/datum/controller/subsystem/machines/Initialize() // CHOMPEdit
|
||||
makepowernets()
|
||||
admin_notice("<span class='danger'>Initializing atmos machinery.</span>", R_DEBUG)
|
||||
setup_atmos_machinery(all_machines)
|
||||
fire()
|
||||
..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/machines/fire(resumed = 0)
|
||||
var/timer = TICK_USAGE
|
||||
|
||||
@@ -3,7 +3,7 @@ SUBSYSTEM_DEF(mail)
|
||||
wait = 60 SECONDS
|
||||
priority = FIRE_PRIORITY_SUPPLY
|
||||
|
||||
flags = SS_NO_TICK_CHECK
|
||||
flags = SS_NO_TICK_CHECK | SS_NO_INIT
|
||||
|
||||
var/mail_waiting = 0 // Pending mail
|
||||
var/mail_per_process = 0.45 // Mail to be generated
|
||||
|
||||
@@ -13,7 +13,7 @@ SUBSYSTEM_DEF(mapping)
|
||||
flags |= SS_NO_INIT // Make extra sure we don't initialize twice.
|
||||
shelter_templates = SSmapping.shelter_templates
|
||||
|
||||
/datum/controller/subsystem/mapping/Initialize(timeofday)
|
||||
/datum/controller/subsystem/mapping/Initialize() // CHOMPEdit
|
||||
if(subsystem_initialized)
|
||||
return
|
||||
world.max_z_changed() // This is to set up the player z-level list, maxz hasn't actually changed (probably)
|
||||
@@ -31,7 +31,7 @@ SUBSYSTEM_DEF(mapping)
|
||||
// Lateload Code related to Expedition areas.
|
||||
if(using_map) // VOREStation Edit: Re-enable this.
|
||||
loadLateMaps()
|
||||
..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/load_map_templates()
|
||||
for(var/datum/map_template/template as anything in subtypesof(/datum/map_template))
|
||||
|
||||
@@ -13,10 +13,10 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
var/list/casino_tracks = list()
|
||||
/// CHOMPstation edit end
|
||||
|
||||
/datum/controller/subsystem/media_tracks/Initialize(timeofday)
|
||||
/datum/controller/subsystem/media_tracks/Initialize() // CHOMPEdit
|
||||
load_tracks()
|
||||
sort_tracks()
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/media_tracks/proc/load_tracks()
|
||||
for(var/filename in config.jukebox_track_files)
|
||||
|
||||
@@ -17,7 +17,7 @@ SUBSYSTEM_DEF(nightshift)
|
||||
if(config.randomize_shift_time)
|
||||
GLOB.gametime_offset = rand(0, 23) HOURS
|
||||
*/
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/nightshift/fire(resumed = FALSE)
|
||||
if(round_duration_in_ds < nightshift_first_check)
|
||||
|
||||
@@ -27,15 +27,15 @@ SUBSYSTEM_DEF(overlays)
|
||||
atom.flags &= ~OVERLAY_QUEUED
|
||||
CHECK_TICK
|
||||
|
||||
|
||||
/datum/controller/subsystem/overlays/Initialize(timeofday)
|
||||
fire(FALSE, TRUE)
|
||||
..()
|
||||
//CHOMPEdit Begin
|
||||
/datum/controller/subsystem/overlays/Initialize()
|
||||
fire(FALSE, TRUE)
|
||||
return SS_INIT_SUCCESS
|
||||
|
||||
/datum/controller/subsystem/overlays/stat_entry(msg)
|
||||
msg = "Queued Atoms: [queue.len], Cache Size: [cache_size]"
|
||||
return ..()
|
||||
//CHOMPEdit End
|
||||
|
||||
/datum/controller/subsystem/overlays/fire(resumed, no_mc_tick)
|
||||
var/count = 1
|
||||
for (var/atom/atom as anything in queue)
|
||||
|
||||
@@ -8,12 +8,9 @@ SUBSYSTEM_DEF(overmap_renamer)
|
||||
runlevels = RUNLEVEL_INIT
|
||||
flags = SS_NO_FIRE
|
||||
|
||||
|
||||
|
||||
/datum/controller/subsystem/overmap_renamer/Initialize(timeofday)
|
||||
/datum/controller/subsystem/overmap_renamer/Initialize() // CHOMPEdit
|
||||
update_names()
|
||||
|
||||
..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/*Shouldn't be a switch statement. We want ALL of the if(map_template.name in visitable_z_leves_name_list) to fire
|
||||
if we end up with multiple renamable lateload overmap objects.*/
|
||||
|
||||
@@ -4,19 +4,21 @@ SUBSYSTEM_DEF(persistence)
|
||||
flags = SS_NO_FIRE
|
||||
var/list/tracking_values = list()
|
||||
var/list/persistence_datums = list()
|
||||
|
||||
|
||||
/// Places our subsystem can spawn paintings (helps with art spawning differently across maps)
|
||||
var/list/obj/structure/sign/painting/painting_frames = list()
|
||||
var/list/all_paintings = list()
|
||||
var/list/unpicked_paintings = list()
|
||||
|
||||
// CHOMPEdit Start
|
||||
/datum/controller/subsystem/persistence/Initialize()
|
||||
. = ..()
|
||||
for(var/datum/persistent/P as anything in subtypesof(/datum/persistent))
|
||||
if(initial(P.name))
|
||||
P = new P
|
||||
persistence_datums[P.type] = P
|
||||
P.Initialize()
|
||||
return SS_INIT_SUCCESS
|
||||
// CHOMPEdit End
|
||||
|
||||
/datum/controller/subsystem/persistence/Shutdown()
|
||||
for(var/thing in persistence_datums)
|
||||
|
||||
@@ -14,10 +14,10 @@ SUBSYSTEM_DEF(planets)
|
||||
var/static/list/needs_sun_update = list()
|
||||
var/static/list/needs_temp_update = list()
|
||||
|
||||
/datum/controller/subsystem/planets/Initialize(timeofday)
|
||||
/datum/controller/subsystem/planets/Initialize() // CHOMPEdit
|
||||
admin_notice("<span class='danger'>Initializing planetary weather.</span>", R_DEBUG)
|
||||
createPlanets()
|
||||
..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/planets/proc/createPlanets()
|
||||
var/list/planet_datums = using_map.planet_datums_to_make
|
||||
|
||||
@@ -21,14 +21,16 @@ SUBSYSTEM_DEF(plants)
|
||||
// Hydro trays and growing food normally just chill in SSobj
|
||||
var/list/processing = list()
|
||||
var/list/currentrun = list()
|
||||
|
||||
//CHOMPEdit Begin
|
||||
/datum/controller/subsystem/plants/stat_entry(msg)
|
||||
msg = "P:[processing.len]|S:[seeds.len]"
|
||||
return ..()
|
||||
//CHOMPEdit End
|
||||
/datum/controller/subsystem/plants/Initialize(timeofday)
|
||||
|
||||
/datum/controller/subsystem/plants/Initialize()
|
||||
setup()
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS
|
||||
//CHOMPEdit End
|
||||
|
||||
// Predefined/roundstart varieties use a string key to make it
|
||||
// easier to grab the new variety when mutating. Post-roundstart
|
||||
|
||||
@@ -5,12 +5,10 @@ SUBSYSTEM_DEF(player_tips)
|
||||
name = "Periodic Player Tips"
|
||||
priority = FIRE_PRIORITY_PLAYERTIPS
|
||||
runlevels = RUNLEVEL_GAME
|
||||
|
||||
wait = 3000 //We check if it's time to send a tip every 5 minutes (300 seconds)
|
||||
flags = SS_NO_INIT
|
||||
|
||||
var/static/datum/player_tips/player_tips = new
|
||||
|
||||
|
||||
|
||||
|
||||
/datum/controller/subsystem/player_tips/fire()
|
||||
player_tips.send_tips()
|
||||
|
||||
@@ -4,6 +4,7 @@ PROCESSING_SUBSYSTEM_DEF(fastprocess)
|
||||
name = "Fast Processing"
|
||||
wait = 2
|
||||
stat_tag = "FP"
|
||||
flags = SS_NO_INIT // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/processing/fastprocess/Recover()
|
||||
log_debug("[name] subsystem Recover().")
|
||||
@@ -12,4 +13,4 @@ PROCESSING_SUBSYSTEM_DEF(fastprocess)
|
||||
var/list/old_processing = SSfastprocess.processing.Copy()
|
||||
for(var/datum/D in old_processing)
|
||||
if(CHECK_BITFIELD(D.datum_flags, DF_ISPROCESSING))
|
||||
processing |= D
|
||||
processing |= D
|
||||
|
||||
@@ -24,7 +24,7 @@ PROCESSING_SUBSYSTEM_DEF(instruments)
|
||||
/datum/controller/subsystem/processing/instruments/Initialize()
|
||||
initialize_instrument_data()
|
||||
synthesizer_instrument_ids = get_allowed_instrument_ids()
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/processing/instruments/proc/on_song_new(datum/song/S)
|
||||
songs += S
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
PROCESSING_SUBSYSTEM_DEF(turfs)
|
||||
name = "Turf Processing"
|
||||
wait = 20
|
||||
flags = SS_NO_INIT // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/processing/turfs/Recover()
|
||||
log_debug("[name] subsystem Recover().")
|
||||
@@ -11,4 +12,4 @@ PROCESSING_SUBSYSTEM_DEF(turfs)
|
||||
if(!isturf(D))
|
||||
log_debug("[name] subsystem Recover() found inappropriate item in list: [D.type]")
|
||||
if(CHECK_BITFIELD(D.datum_flags, DF_ISPROCESSING))
|
||||
processing |= D
|
||||
processing |= D
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
SUBSYSTEM_DEF(reflector)
|
||||
name = "Reflectors"
|
||||
priority = FIRE_PRIORITY_REFLECTOR
|
||||
flags = SS_BACKGROUND|SS_NO_INIT
|
||||
flags = SS_BACKGROUND | SS_NO_INIT
|
||||
wait = 5
|
||||
|
||||
var/stat_tag = "R" //Used for logging
|
||||
|
||||
@@ -10,7 +10,7 @@ SUBSYSTEM_DEF(robot_sprites)
|
||||
|
||||
/datum/controller/subsystem/robot_sprites/Initialize()
|
||||
initialize_borg_sprites()
|
||||
..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/robot_sprites/proc/initialize_borg_sprites()
|
||||
|
||||
@@ -112,4 +112,4 @@ SUBSYSTEM_DEF(robot_sprites)
|
||||
if(RS.whitelist_ckey == ckey && RS.whitelist_charname == spritename)
|
||||
. |= RS
|
||||
|
||||
return
|
||||
return
|
||||
|
||||
@@ -32,7 +32,7 @@ SUBSYSTEM_DEF(shuttles)
|
||||
|
||||
var/tmp/list/current_run // Shuttles remaining to process this fire() tick
|
||||
|
||||
/datum/controller/subsystem/shuttles/Initialize(timeofday)
|
||||
/datum/controller/subsystem/shuttles/Initialize() // CHOMPEdit
|
||||
last_landmark_registration_time = world.time
|
||||
// Find all declared shuttle datums and initailize them. (Okay, queue them for initialization a few lines further down)
|
||||
for(var/shuttle_type in subtypesof(/datum/shuttle)) // This accounts for most shuttles, though away maps can queue up more.
|
||||
@@ -43,7 +43,7 @@ SUBSYSTEM_DEF(shuttles)
|
||||
LAZYDISTINCTADD(shuttles_to_initialize, shuttle_type)
|
||||
block_init_queue = FALSE
|
||||
process_init_queues()
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/shuttles/fire(resumed = 0)
|
||||
if (!resumed)
|
||||
|
||||
@@ -28,7 +28,7 @@ SUBSYSTEM_DEF(skybox)
|
||||
normal_space.layer = TURF_LAYER
|
||||
normal_space.icon = 'icons/turf/space.dmi'
|
||||
normal_space.icon_state = "white"
|
||||
|
||||
|
||||
//Static
|
||||
for (var/i in 0 to 25)
|
||||
var/mutable_appearance/MA = new(normal_space)
|
||||
@@ -36,12 +36,12 @@ SUBSYSTEM_DEF(skybox)
|
||||
im.plane = DUST_PLANE
|
||||
im.alpha = 128 //80
|
||||
im.blend_mode = BLEND_ADD
|
||||
|
||||
|
||||
MA.cut_overlays()
|
||||
MA.add_overlay(im)
|
||||
|
||||
dust_cache["[i]"] = MA
|
||||
|
||||
|
||||
//Moving
|
||||
for (var/i in 0 to 14)
|
||||
// NORTH/SOUTH
|
||||
@@ -57,12 +57,12 @@ SUBSYSTEM_DEF(skybox)
|
||||
im = image('icons/turf/space_dust_transit.dmi', "speedspace_ew_[i]")
|
||||
im.plane = DUST_PLANE
|
||||
im.blend_mode = BLEND_ADD
|
||||
|
||||
|
||||
MA.cut_overlays()
|
||||
MA.add_overlay(im)
|
||||
|
||||
|
||||
speedspace_cache["EW_[i]"] = MA
|
||||
|
||||
|
||||
//Over-the-edge images
|
||||
for (var/dir in alldirs)
|
||||
var/mutable_appearance/MA = new(normal_space)
|
||||
@@ -90,7 +90,7 @@ SUBSYSTEM_DEF(skybox)
|
||||
. = ..()
|
||||
|
||||
/datum/controller/subsystem/skybox/Initialize()
|
||||
. = ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/skybox/proc/get_skybox(z)
|
||||
if(!subsystem_initialized)
|
||||
@@ -101,9 +101,9 @@ SUBSYSTEM_DEF(skybox)
|
||||
|
||||
/datum/controller/subsystem/skybox/proc/generate_skybox(z)
|
||||
var/datum/skybox_settings/settings = global.using_map.get_skybox_datum(z)
|
||||
|
||||
|
||||
var/new_overlays = list()
|
||||
|
||||
|
||||
var/image/res = image(settings.icon)
|
||||
res.appearance_flags = KEEP_TOGETHER
|
||||
|
||||
@@ -136,7 +136,7 @@ SUBSYSTEM_DEF(skybox)
|
||||
for(var/datum/event/E in SSevents.active_events)
|
||||
if(E.has_skybox_image && E.isRunning && (z in E.affecting_z))
|
||||
new_overlays += E.get_skybox_image()
|
||||
|
||||
|
||||
for(var/image/I in new_overlays)
|
||||
I.appearance_flags |= RESET_COLOR
|
||||
|
||||
@@ -161,7 +161,7 @@ SUBSYSTEM_DEF(skybox)
|
||||
var/icon_state = "dyable"
|
||||
var/color
|
||||
var/random_color = FALSE
|
||||
|
||||
|
||||
var/use_stars = TRUE
|
||||
var/star_icon = 'icons/skybox/skybox.dmi'
|
||||
var/star_state = "stars"
|
||||
|
||||
@@ -25,7 +25,7 @@ SUBSYSTEM_DEF(sounds)
|
||||
|
||||
/datum/controller/subsystem/sounds/Initialize()
|
||||
setup_available_channels()
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/sounds/proc/setup_available_channels()
|
||||
channel_list = list()
|
||||
|
||||
@@ -7,11 +7,11 @@ SUBSYSTEM_DEF(sqlite)
|
||||
flags = SS_NO_FIRE
|
||||
var/database/sqlite_db = null
|
||||
|
||||
/datum/controller/subsystem/sqlite/Initialize(timeofday)
|
||||
/datum/controller/subsystem/sqlite/Initialize() // CHOMPEdit
|
||||
connect()
|
||||
if(sqlite_db)
|
||||
init_schema(sqlite_db)
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/sqlite/proc/connect()
|
||||
if(!config.sqlite_enabled)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
SUBSYSTEM_DEF(sun)
|
||||
name = "Sun"
|
||||
wait = 600
|
||||
flags = SS_NO_INIT // CHOMPEdit
|
||||
var/static/datum/sun/sun = new
|
||||
|
||||
/datum/controller/subsystem/sun/fire()
|
||||
|
||||
@@ -35,7 +35,7 @@ SUBSYSTEM_DEF(supply)
|
||||
else
|
||||
qdel(P)
|
||||
|
||||
. = ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
// Supply shuttle ticker - handles supply point regeneration. Just add points over time.
|
||||
/datum/controller/subsystem/supply/fire()
|
||||
|
||||
@@ -59,7 +59,7 @@ var/global/datum/controller/subsystem/ticker/ticker
|
||||
)
|
||||
)
|
||||
GLOB.autospeaker = new (null, null, null, 1) //Set up Global Announcer
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/ticker/fire(resumed = FALSE)
|
||||
switch(current_state)
|
||||
|
||||
@@ -36,7 +36,7 @@ SUBSYSTEM_DEF(transcore)
|
||||
warning("Instantiated transcore DB without a key: [t]")
|
||||
continue
|
||||
databases[db.key] = db
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/transcore/fire(resumed = 0)
|
||||
var/timer = TICK_USAGE
|
||||
|
||||
@@ -9,7 +9,7 @@ SUBSYSTEM_DEF(vis_overlays)
|
||||
|
||||
/datum/controller/subsystem/vis_overlays/Initialize()
|
||||
vis_overlay_cache = list()
|
||||
return ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/vis_overlays/fire(resumed = FALSE)
|
||||
if(!resumed)
|
||||
@@ -82,8 +82,8 @@ SUBSYSTEM_DEF(vis_overlays)
|
||||
if(istext(icon))
|
||||
iconstate = icon
|
||||
icon = src.icon
|
||||
|
||||
|
||||
return SSvis_overlays.add_vis_overlay(src, icon, iconstate, layer, plane, dir, alpha, add_appearance_flags, add_vis_flags, unique)
|
||||
|
||||
/atom/proc/remove_vis_overlay(list/overlays)
|
||||
return SSvis_overlays.remove_vis_overlay(src, overlays)
|
||||
return SSvis_overlays.remove_vis_overlay(src, overlays)
|
||||
|
||||
@@ -6,7 +6,7 @@ SUBSYSTEM_DEF(webhooks)
|
||||
|
||||
/datum/controller/subsystem/webhooks/Initialize()
|
||||
load_webhooks()
|
||||
. = ..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/webhooks/proc/load_webhooks()
|
||||
|
||||
|
||||
@@ -14,9 +14,9 @@ SUBSYSTEM_DEF(xenoarch)
|
||||
var/list/artifact_spawning_turfs = list()
|
||||
var/list/digsite_spawning_turfs = list()
|
||||
|
||||
/datum/controller/subsystem/xenoarch/Initialize(timeofday)
|
||||
/datum/controller/subsystem/xenoarch/Initialize() // CHOMPEdit
|
||||
SetupXenoarch()
|
||||
..()
|
||||
return SS_INIT_SUCCESS // CHOMPEdit
|
||||
|
||||
/datum/controller/subsystem/xenoarch/Recover()
|
||||
if (istype(SSxenoarch.artifact_spawning_turfs))
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
#include "code\__defines\dcs\helpers.dm"
|
||||
#include "code\__defines\dcs\signals.dm"
|
||||
#include "code\__defines\dcs\signals_ch.dm"
|
||||
#include "code\__defines\dcs\signals_ch\signals_subsystem.dm"
|
||||
#include "code\__defines\traits\_traits.dm"
|
||||
#include "code\_global_vars\_regexes.dm"
|
||||
#include "code\_global_vars\bitfields.dm"
|
||||
|
||||
Reference in New Issue
Block a user