mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-27 10:32:08 +00:00
Updates subsystem definitions to new standards. (#17470)
* My heart is dragging me down into... ...oblivion! * drifting closer to the edge but she won't have me * ever round me we are dead before we meet her * for the last time * wake up in sweat * n * fff * uff --------- Co-authored-by: Matt Atlas <liermattia@gmail.com>
This commit is contained in:
@@ -1,2 +1,8 @@
|
||||
#define GLOBAL_PROC "some_magic_bullshit"
|
||||
#define DESC_PARENT "You shouldn't be seeing this. Please make an issue report."
|
||||
|
||||
/// Standard BYOND global, seriously do not use without an earthshakingly good reason
|
||||
#define GLOBAL_REAL_VAR(X) var/global/##X;
|
||||
|
||||
/// Standard typed BYOND global, seriously do not use without an earthshakingly good reason
|
||||
#define GLOBAL_REAL(X, Typepath) var/global##Typepath/##X;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
#define RIOTS 1
|
||||
#define WILD_ANIMAL_ATTACK 2
|
||||
#define INDUSTRIAL_ACCIDENT 3
|
||||
|
||||
@@ -14,12 +14,12 @@
|
||||
// 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;\
|
||||
}
|
||||
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))
|
||||
@@ -94,3 +94,26 @@
|
||||
#define SS_INITSTATE_DONE 2
|
||||
|
||||
#define SS_PRIORITY_DEFAULT 25
|
||||
|
||||
#define SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/##X);\
|
||||
/datum/controller/subsystem/##X/New(){\
|
||||
NEW_SS_GLOBAL(SS##X);\
|
||||
PreInit();\
|
||||
}\
|
||||
/datum/controller/subsystem/##X
|
||||
|
||||
#define PROCESSING_SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/processing/##X);\
|
||||
/datum/controller/subsystem/processing/##X/New(){\
|
||||
NEW_SS_GLOBAL(SS##X);\
|
||||
PreInit();\
|
||||
}\
|
||||
/datum/controller/subsystem/processing/##X/fire() {..() /*just so it shows up on the profiler*/} \
|
||||
/datum/controller/subsystem/processing/##X
|
||||
|
||||
#define MOB_AI_SUBSYSTEM_DEF(X) GLOBAL_REAL(SS##X, /datum/controller/subsystem/mob_ai/##X);\
|
||||
/datum/controller/subsystem/mob_ai/##X/New(){\
|
||||
NEW_SS_GLOBAL(SS##X);\
|
||||
PreInit();\
|
||||
}\
|
||||
/datum/controller/subsystem/mob_ai/##X/fire() {..() /*just so it shows up on the profiler*/} \
|
||||
/datum/controller/subsystem/mob_ai/##X
|
||||
|
||||
@@ -11,6 +11,10 @@
|
||||
#define TRANSITIONEDGE 7 // Distance from edge to move to another z-level.
|
||||
#define RUIN_MAP_EDGE_PAD 15
|
||||
|
||||
/// Occupation preferences.
|
||||
#define BE_ASSISTANT 0
|
||||
#define RETURN_TO_LOBBY 1
|
||||
|
||||
// Invisibility constants.
|
||||
#define INVISIBILITY_LIGHTING 20
|
||||
#define INVISIBILITY_LEVEL_ONE 35
|
||||
@@ -278,8 +282,8 @@
|
||||
//supposedly the fastest way to do this according to https://gist.github.com/Giacom/be635398926bb463b42a
|
||||
#define RANGE_TURFS(RADIUS, CENTER) \
|
||||
block( \
|
||||
locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \
|
||||
locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \
|
||||
locate(max(CENTER.x-(RADIUS),1), max(CENTER.y-(RADIUS),1), CENTER.z), \
|
||||
locate(min(CENTER.x+(RADIUS),world.maxx), min(CENTER.y+(RADIUS),world.maxy), CENTER.z) \
|
||||
)
|
||||
|
||||
#define get_turf(A) (get_step(A, 0))
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
// Subsystems that cmd_ss_panic can hard-restart.
|
||||
// *MUST* have New() use NEW_SS_GLOBAL.
|
||||
var/list/panic_targets = list(
|
||||
"Garbage" = /datum/controller/subsystem/garbage_collector,
|
||||
"Garbage" = /datum/controller/subsystem/garbage,
|
||||
"Air" = /datum/controller/subsystem/air,
|
||||
"Explosives" = /datum/controller/subsystem/explosives,
|
||||
"Game Ticker" = /datum/controller/subsystem/ticker,
|
||||
|
||||
@@ -48,11 +48,18 @@
|
||||
|
||||
var/static/list/failure_strikes //How many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out! This is an assoc list indexed by type.
|
||||
|
||||
//Do not override
|
||||
///datum/controller/subsystem/New()
|
||||
|
||||
// Used to initialize the subsystem BEFORE the map has loaded
|
||||
/datum/controller/subsystem/New()
|
||||
// Called AFTER Recover if that is called
|
||||
// Prefer to use Initialize if possible
|
||||
/datum/controller/subsystem/proc/PreInit()
|
||||
return
|
||||
|
||||
//This is used so the mc knows when the subsystem sleeps. do not override.
|
||||
/datum/controller/subsystem/proc/ignite(resumed = 0)
|
||||
SHOULD_NOT_OVERRIDE(TRUE)
|
||||
set waitfor = 0
|
||||
. = SS_SLEEPING
|
||||
fire(resumed)
|
||||
|
||||
@@ -1,14 +1,9 @@
|
||||
var/global/datum/controller/subsystem/ai_obfuscation/SSai_obfuscation
|
||||
|
||||
/datum/controller/subsystem/ai_obfuscation
|
||||
SUBSYSTEM_DEF(ai_obfuscation)
|
||||
name = "AI Obfuscation"
|
||||
flags = SS_NO_FIRE
|
||||
|
||||
var/list/image/obfuscation_images = list()
|
||||
|
||||
/datum/controller/subsystem/ai_obfuscation/New()
|
||||
NEW_SS_GLOBAL(SSai_obfuscation)
|
||||
|
||||
/datum/controller/subsystem/ai_obfuscation/proc/add_obfuscation_image(var/image/added_image)
|
||||
if(!istype(added_image))
|
||||
return
|
||||
@@ -30,4 +25,4 @@ var/global/datum/controller/subsystem/ai_obfuscation/SSai_obfuscation
|
||||
A.client.images -= removed_image
|
||||
|
||||
/datum/controller/subsystem/ai_obfuscation/proc/get_obfuscation_images()
|
||||
return obfuscation_images
|
||||
return obfuscation_images
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
/var/datum/controller/subsystem/air/SSair
|
||||
|
||||
/*
|
||||
|
||||
Overview:
|
||||
@@ -63,7 +61,7 @@ Class Procs:
|
||||
|
||||
*/
|
||||
|
||||
/datum/controller/subsystem/air
|
||||
SUBSYSTEM_DEF(air)
|
||||
name = "Air"
|
||||
priority = SS_PRIORITY_AIR
|
||||
init_order = SS_INIT_AIR
|
||||
@@ -129,9 +127,6 @@ Class Procs:
|
||||
msg = "TtU:[tiles_to_update.len] ZtU:[zones_to_update.len] AFZ:[active_fire_zones.len] AH:[active_hotspots.len] AE:[active_edges.len]"
|
||||
return msg
|
||||
|
||||
/datum/controller/subsystem/air/New()
|
||||
NEW_SS_GLOBAL(SSair)
|
||||
|
||||
/datum/controller/subsystem/air/Initialize(timeofday, simulate = TRUE)
|
||||
|
||||
var/starttime = REALTIMEOFDAY
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
var/datum/controller/subsystem/alarm/SSalarm
|
||||
|
||||
/var/global/datum/alarm_handler/atmosphere/atmosphere_alarm = new()
|
||||
/var/global/datum/alarm_handler/camera/camera_alarm = new()
|
||||
/var/global/datum/alarm_handler/fire/fire_alarm = new()
|
||||
/var/global/datum/alarm_handler/motion/motion_alarm = new()
|
||||
/var/global/datum/alarm_handler/power/power_alarm = new()
|
||||
|
||||
/datum/controller/subsystem/alarm
|
||||
SUBSYSTEM_DEF(alarm)
|
||||
name = "Alarms"
|
||||
init_order = SS_INIT_MISC_FIRST
|
||||
priority = SS_PRIORITY_ALARMS
|
||||
@@ -17,9 +15,6 @@ var/datum/controller/subsystem/alarm/SSalarm
|
||||
|
||||
var/tmp/list/active_alarm_cache = list()
|
||||
|
||||
/datum/controller/subsystem/alarm/New()
|
||||
NEW_SS_GLOBAL(SSalarm)
|
||||
|
||||
/datum/controller/subsystem/alarm/Initialize(timeofday)
|
||||
all_handlers = list(atmosphere_alarm, camera_alarm, fire_alarm, motion_alarm, power_alarm)
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/ao/SSocclusion
|
||||
|
||||
/datum/controller/subsystem/ao
|
||||
SUBSYSTEM_DEF(ao)
|
||||
name = "Ambient Occlusion"
|
||||
init_order = SS_INIT_AO
|
||||
wait = 1
|
||||
@@ -9,9 +7,6 @@
|
||||
|
||||
var/list/queue = list()
|
||||
|
||||
/datum/controller/subsystem/ao/New()
|
||||
NEW_SS_GLOBAL(SSocclusion)
|
||||
|
||||
/datum/controller/subsystem/ao/stat_entry(msg)
|
||||
msg = "P:[queue.len]"
|
||||
return ..()
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/arrivals/SSarrivals
|
||||
|
||||
/datum/controller/subsystem/arrivals
|
||||
SUBSYSTEM_DEF(arrivals)
|
||||
name = "Arrivals"
|
||||
flags = SS_NO_INIT | SS_BACKGROUND
|
||||
priority = SS_PRIORITY_ARRIVALS
|
||||
@@ -13,9 +11,6 @@
|
||||
var/list/current_mobs = list()
|
||||
var/shuttle_launch_countdown = 30 SECONDS
|
||||
|
||||
/datum/controller/subsystem/arrivals/New()
|
||||
NEW_SS_GLOBAL(SSarrivals)
|
||||
|
||||
/datum/controller/subsystem/arrivals/fire()
|
||||
post_signal("arrivals")
|
||||
if (wait_for_launch)
|
||||
|
||||
@@ -1,18 +1,13 @@
|
||||
/// Allows us to lazyload asset datums
|
||||
/// Anything inserted here will fully load if directly gotten
|
||||
/// So this just serves to remove the requirement to load assets fully during init
|
||||
var/datum/controller/subsystem/asset_loading/SSasset_loading
|
||||
|
||||
/datum/controller/subsystem/asset_loading
|
||||
SUBSYSTEM_DEF(asset_loading)
|
||||
name = "Asset Loading"
|
||||
priority = SS_PRIORITY_ASSET
|
||||
flags = SS_NO_INIT
|
||||
runlevels = RUNLEVEL_LOBBY|RUNLEVELS_DEFAULT
|
||||
var/list/datum/asset/generate_queue = list()
|
||||
|
||||
/datum/controller/subsystem/asset_loading/New()
|
||||
NEW_SS_GLOBAL(SSasset_loading)
|
||||
|
||||
/datum/controller/subsystem/asset_loading/fire(resumed)
|
||||
while(length(generate_queue))
|
||||
var/datum/asset/to_load = generate_queue[generate_queue.len]
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/assets/SSassets
|
||||
|
||||
/datum/controller/subsystem/assets
|
||||
SUBSYSTEM_DEF(assets)
|
||||
name = "Assets"
|
||||
init_order = SS_INIT_ASSETS
|
||||
flags = SS_NO_FIRE
|
||||
@@ -9,9 +7,6 @@
|
||||
var/list/preload = list()
|
||||
var/datum/asset_transport/transport = new()
|
||||
|
||||
/datum/controller/subsystem/assets/New()
|
||||
NEW_SS_GLOBAL(SSassets)
|
||||
|
||||
/datum/controller/subsystem/assets/Initialize()
|
||||
var/newtransporttype = /datum/asset_transport
|
||||
switch (config.asset_transport)
|
||||
|
||||
@@ -4,9 +4,7 @@
|
||||
#define BATTLE_MONSTERS_GEN_TRAP 4
|
||||
#define BATTLE_MONSTERS_GEN_SPELL 5
|
||||
|
||||
var/datum/controller/subsystem/battle_monsters/SSbattlemonsters
|
||||
|
||||
/datum/controller/subsystem/battle_monsters
|
||||
SUBSYSTEM_DEF(battle_monsters)
|
||||
name = "Battle Monsters"
|
||||
init_order = SS_INIT_MISC_FIRST
|
||||
flags = SS_NO_FIRE
|
||||
@@ -25,10 +23,6 @@ var/datum/controller/subsystem/battle_monsters/SSbattlemonsters
|
||||
var/list/traps_rng
|
||||
var/list/spells_rng
|
||||
|
||||
|
||||
/datum/controller/subsystem/battle_monsters/New()
|
||||
NEW_SS_GLOBAL(SSbattlemonsters)
|
||||
|
||||
/datum/controller/subsystem/battle_monsters/Initialize()
|
||||
GenerateDatum(BATTLE_MONSTERS_GEN_PREFIX)
|
||||
GenerateDatum(BATTLE_MONSTERS_GEN_ROOT)
|
||||
@@ -369,7 +363,7 @@ var/datum/controller/subsystem/battle_monsters/SSbattlemonsters
|
||||
|
||||
/datum/controller/subsystem/battle_monsters/proc/FormatMonsterText(var/text,var/datum/battle_monsters/element/prefix_datum,var/datum/battle_monsters/monster/root_datum,var/datum/battle_monsters/title/suffix_datum, var/include_description = TRUE)
|
||||
|
||||
var/list/generated_stats = SSbattlemonsters.GenerateMonsterStats(prefix_datum,root_datum,suffix_datum)
|
||||
var/list/generated_stats = SSbattle_monsters.GenerateMonsterStats(prefix_datum,root_datum,suffix_datum)
|
||||
|
||||
if(!generated_stats || generated_stats.len == 0)
|
||||
return "Something went wrong... go bother the monsterous devs about it."
|
||||
@@ -411,7 +405,7 @@ var/datum/controller/subsystem/battle_monsters/SSbattlemonsters
|
||||
return text
|
||||
|
||||
/datum/controller/subsystem/battle_monsters/proc/FormatSpellText(var/text,var/datum/battle_monsters/spell_datum,var/include_description = TRUE)
|
||||
var/list/generated_stats = SSbattlemonsters.GenerateSpellStats(spell_datum)
|
||||
var/list/generated_stats = SSbattle_monsters.GenerateSpellStats(spell_datum)
|
||||
|
||||
if(!generated_stats || generated_stats.len == 0)
|
||||
return "Something went wrong... go bother the wizardly devs about it."
|
||||
|
||||
@@ -4,9 +4,7 @@
|
||||
#define SUPPLY_STATION_AREATYPE /area/supply/station //Type of the supply shuttle area for station
|
||||
#define SUPPLY_DOCK_AREATYPE /area/supply/dock //Type of the supply shuttle area for dock
|
||||
|
||||
var/datum/controller/subsystem/cargo/SScargo
|
||||
|
||||
/datum/controller/subsystem/cargo
|
||||
SUBSYSTEM_DEF(cargo)
|
||||
name = "Cargo"
|
||||
wait = 30 SECONDS
|
||||
flags = SS_NO_FIRE
|
||||
@@ -90,12 +88,6 @@ var/datum/controller/subsystem/cargo/SScargo
|
||||
qdel(spawner)
|
||||
..()
|
||||
|
||||
/datum/controller/subsystem/cargo/New()
|
||||
NEW_SS_GLOBAL(SScargo)
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Loading Data
|
||||
*/
|
||||
|
||||
@@ -5,9 +5,7 @@ var/regex/is_http_protocol = regex("^https?://")
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
var/datum/controller/subsystem/chat/SSchat
|
||||
|
||||
/datum/controller/subsystem/chat
|
||||
SUBSYSTEM_DEF(chat)
|
||||
name = "Chat"
|
||||
flags = SS_TICKER
|
||||
wait = 1
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/chemistry/SSchemistry
|
||||
|
||||
/datum/controller/subsystem/chemistry
|
||||
SUBSYSTEM_DEF(chemistry)
|
||||
name = "Chemistry"
|
||||
priority = SS_PRIORITY_CHEMISTRY
|
||||
init_order = SS_INIT_MISC_FIRST
|
||||
@@ -82,9 +80,6 @@ var/datum/controller/subsystem/chemistry/SSchemistry
|
||||
msg = "AH:[active_holders.len]"
|
||||
return ..()
|
||||
|
||||
/datum/controller/subsystem/chemistry/New()
|
||||
NEW_SS_GLOBAL(SSchemistry)
|
||||
|
||||
/datum/controller/subsystem/chemistry/Initialize()
|
||||
initialize_chemical_reactions()
|
||||
initialize_codex_data()
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
#define DEFAULT_MAX_RUNES 40
|
||||
/var/datum/controller/subsystem/cult/SScult
|
||||
|
||||
/datum/controller/subsystem/cult
|
||||
SUBSYSTEM_DEF(cult)
|
||||
name = "Cult"
|
||||
flags = SS_NO_FIRE
|
||||
|
||||
@@ -16,9 +14,6 @@
|
||||
var/rune_boost = 0
|
||||
var/tome_data = ""
|
||||
|
||||
/datum/controller/subsystem/cult/New()
|
||||
NEW_SS_GLOBAL(SScult)
|
||||
|
||||
/datum/controller/subsystem/cult/Initialize()
|
||||
. = ..()
|
||||
for(var/rune in subtypesof(/datum/rune))
|
||||
@@ -31,7 +26,7 @@
|
||||
if(R.max_number_allowed)
|
||||
tome_data += "This rune has a special limit of <b><i>[R.max_number_allowed]</b></i> runes.<br><hr>"
|
||||
limited_runes[R.type] = R.max_number_allowed //The runes created will tick the counter down to zero.
|
||||
tome_data += "</div>"
|
||||
tome_data += "</div>"
|
||||
|
||||
/datum/controller/subsystem/cult/proc/add_rune(var/datum/rune/R)
|
||||
if(check_rune_limit(R))
|
||||
@@ -46,9 +41,9 @@
|
||||
if(current_runes > 0)
|
||||
limited_runes[rune_type]--
|
||||
return FALSE
|
||||
else
|
||||
else
|
||||
return TRUE
|
||||
else
|
||||
else
|
||||
return ((length(rune_list) + rune_boost + length(cult.current_antagonists)) >= rune_limit)
|
||||
|
||||
/datum/controller/subsystem/cult/proc/remove_rune(var/datum/rune/R)
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/docs/SSdocs
|
||||
|
||||
/datum/controller/subsystem/docs
|
||||
SUBSYSTEM_DEF(docs)
|
||||
name = "Documents"
|
||||
wait = 30 SECONDS
|
||||
flags = SS_NO_FIRE
|
||||
@@ -29,9 +27,6 @@ var/datum/controller/subsystem/docs/SSdocs
|
||||
|
||||
..()
|
||||
|
||||
/datum/controller/subsystem/docs/New()
|
||||
NEW_SS_GLOBAL(SSdocs)
|
||||
|
||||
/*
|
||||
Fetching Data
|
||||
*/
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/economy/SSeconomy
|
||||
|
||||
/datum/controller/subsystem/economy
|
||||
SUBSYSTEM_DEF(economy)
|
||||
name = "Economy"
|
||||
wait = 30 SECONDS
|
||||
flags = SS_NO_FIRE
|
||||
@@ -11,9 +9,6 @@ var/datum/controller/subsystem/economy/SSeconomy
|
||||
var/num_financial_terminals = 1
|
||||
var/next_account_number = 0
|
||||
|
||||
/datum/controller/subsystem/economy/New()
|
||||
NEW_SS_GLOBAL(SSeconomy)
|
||||
|
||||
/datum/controller/subsystem/economy/Initialize(timeofday)
|
||||
next_account_number = rand(111111, 999999)
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/effects/SSeffects
|
||||
|
||||
/datum/controller/subsystem/effects
|
||||
SUBSYSTEM_DEF(effects)
|
||||
name = "Effects Master"
|
||||
wait = 1 // Deciseconds.
|
||||
flags = SS_NO_INIT
|
||||
@@ -12,9 +10,6 @@ var/datum/controller/subsystem/effects/SSeffects
|
||||
var/tmp/list/processing_effects = list()
|
||||
var/tmp/list/processing_visuals = list()
|
||||
|
||||
/datum/controller/subsystem/effects/New()
|
||||
NEW_SS_GLOBAL(SSeffects)
|
||||
|
||||
/datum/controller/subsystem/effects/fire(resumed = FALSE)
|
||||
if (!resumed)
|
||||
processing_effects = effect_systems
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/evac/SSevac
|
||||
|
||||
/datum/controller/subsystem/evac
|
||||
SUBSYSTEM_DEF(evac)
|
||||
name = "Evacuation"
|
||||
priority = SS_PRIORITY_EVAC
|
||||
//Initializes at default time
|
||||
@@ -15,4 +13,3 @@ var/datum/controller/subsystem/evac/SSevac
|
||||
|
||||
/datum/controller/subsystem/evac/fire()
|
||||
evacuation_controller.process()
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
var/datum/controller/subsystem/events/SSevents
|
||||
|
||||
/datum/controller/subsystem/events
|
||||
// Subsystem stuff.
|
||||
SUBSYSTEM_DEF(events)
|
||||
name = "Events"
|
||||
priority = SS_PRIORITY_EVENT
|
||||
|
||||
@@ -28,9 +25,6 @@ var/datum/controller/subsystem/events/SSevents
|
||||
|
||||
var/initialized = FALSE
|
||||
|
||||
/datum/controller/subsystem/events/New()
|
||||
NEW_SS_GLOBAL(SSevents)
|
||||
|
||||
/datum/controller/subsystem/events/Initialize()
|
||||
allEvents = subtypesof(/datum/event)
|
||||
event_containers = list(
|
||||
|
||||
@@ -3,11 +3,7 @@
|
||||
#define EXPLFX_SHAKE 1
|
||||
#define EXPLFX_NONE 0
|
||||
|
||||
var/datum/controller/subsystem/explosives/SSexplosives
|
||||
|
||||
// yes, let's move the laggiest part of the game to a process
|
||||
// nothing could go wrong -- Lohikar
|
||||
/datum/controller/subsystem/explosives
|
||||
SUBSYSTEM_DEF(explosives)
|
||||
name = "Explosives"
|
||||
wait = 1
|
||||
flags = SS_NO_INIT | SS_BACKGROUND | SS_POST_FIRE_TIMING
|
||||
@@ -23,9 +19,6 @@ var/datum/controller/subsystem/explosives/SSexplosives
|
||||
|
||||
var/mc_notified = FALSE
|
||||
|
||||
/datum/controller/subsystem/explosives/New()
|
||||
NEW_SS_GLOBAL(SSexplosives)
|
||||
|
||||
/datum/controller/subsystem/explosives/Recover()
|
||||
work_queue = SSexplosives.work_queue
|
||||
explosion_in_progress = SSexplosives.explosion_in_progress
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/fail2topic/SSfail2topic
|
||||
|
||||
/datum/controller/subsystem/fail2topic
|
||||
SUBSYSTEM_DEF(fail2topic)
|
||||
name = "Fail2Topic"
|
||||
init_order = SS_INIT_MISC_FIRST
|
||||
flags = SS_BACKGROUND
|
||||
@@ -14,9 +12,6 @@ var/datum/controller/subsystem/fail2topic/SSfail2topic
|
||||
var/max_fails
|
||||
var/enabled = FALSE
|
||||
|
||||
/datum/controller/subsystem/fail2topic/New()
|
||||
NEW_SS_GLOBAL(SSfail2topic)
|
||||
|
||||
/datum/controller/subsystem/fail2topic/Initialize(timeofday)
|
||||
rate_limit = config.fail2topic_rate_limit
|
||||
max_fails = config.fail2topic_max_fails
|
||||
|
||||
@@ -4,9 +4,7 @@
|
||||
if (MC_TICK_CHECK) return; \
|
||||
continue;
|
||||
|
||||
/var/datum/controller/subsystem/falling/SSfalling
|
||||
|
||||
/datum/controller/subsystem/falling
|
||||
SUBSYSTEM_DEF(falling)
|
||||
name = "Falling"
|
||||
flags = SS_NO_INIT
|
||||
wait = 1
|
||||
@@ -14,9 +12,6 @@
|
||||
var/list/falling = list()
|
||||
var/list/currentrun
|
||||
|
||||
/datum/controller/subsystem/falling/New()
|
||||
NEW_SS_GLOBAL(SSfalling)
|
||||
|
||||
/datum/controller/subsystem/falling/stat_entry(msg)
|
||||
msg = "F:[falling.len]"
|
||||
return ..()
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/garbage_collector/SSgarbage
|
||||
|
||||
/datum/controller/subsystem/garbage_collector
|
||||
SUBSYSTEM_DEF(garbage)
|
||||
name = "Garbage"
|
||||
priority = SS_PRIORITY_GARBAGE
|
||||
wait = 2 SECONDS
|
||||
@@ -40,10 +38,7 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
|
||||
var/list/reference_find_on_fail = list()
|
||||
#endif
|
||||
|
||||
/datum/controller/subsystem/garbage_collector/New()
|
||||
NEW_SS_GLOBAL(SSgarbage)
|
||||
|
||||
/datum/controller/subsystem/garbage_collector/stat_entry(msg)
|
||||
/datum/controller/subsystem/garbage/stat_entry(msg)
|
||||
msg = "W:[tobequeued.len]|Q:[queue.len]|D:[delslasttick]|G:[gcedlasttick]|"
|
||||
msg += "GR:"
|
||||
if (!(delslasttick+gcedlasttick))
|
||||
@@ -58,7 +53,7 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
|
||||
msg += "TGR:[round((totalgcs/(totaldels+totalgcs))*100, 0.01)]%"
|
||||
return ..()
|
||||
|
||||
/datum/controller/subsystem/garbage_collector/fire()
|
||||
/datum/controller/subsystem/garbage/fire()
|
||||
HandleToBeQueued()
|
||||
if(state == SS_RUNNING)
|
||||
HandleQueue()
|
||||
@@ -68,7 +63,7 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
|
||||
|
||||
//If you see this proc high on the profile, what you are really seeing is the garbage collection/soft delete overhead in byond.
|
||||
//Don't attempt to optimize, not worth the effort.
|
||||
/datum/controller/subsystem/garbage_collector/proc/HandleToBeQueued()
|
||||
/datum/controller/subsystem/garbage/proc/HandleToBeQueued()
|
||||
var/list/tobequeued = src.tobequeued
|
||||
var/starttime = world.time
|
||||
var/starttimeofday = world.timeofday
|
||||
@@ -83,7 +78,7 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
|
||||
if (idex > 1)
|
||||
tobequeued.Cut(1, idex)
|
||||
|
||||
/datum/controller/subsystem/garbage_collector/proc/HandleQueue()
|
||||
/datum/controller/subsystem/garbage/proc/HandleQueue()
|
||||
delslasttick = 0
|
||||
gcedlasttick = 0
|
||||
var/time_to_kill = world.time - collection_timeout // Anything qdel() but not GC'd BEFORE this time needs to be manually del()
|
||||
@@ -149,12 +144,12 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
|
||||
if (idex > 1)
|
||||
queue.Cut(1, idex)
|
||||
|
||||
/datum/controller/subsystem/garbage_collector/proc/QueueForQueuing(datum/A)
|
||||
/datum/controller/subsystem/garbage/proc/QueueForQueuing(datum/A)
|
||||
if (istype(A) && A.gcDestroyed == GC_CURRENTLY_BEING_QDELETED)
|
||||
tobequeued += A
|
||||
A.gcDestroyed = GC_QUEUED_FOR_QUEUING
|
||||
|
||||
/datum/controller/subsystem/garbage_collector/proc/Queue(datum/A)
|
||||
/datum/controller/subsystem/garbage/proc/Queue(datum/A)
|
||||
if (!istype(A) || (!isnull(A.gcDestroyed) && A.gcDestroyed >= 0))
|
||||
return
|
||||
if (A.gcDestroyed == GC_QUEUED_FOR_HARD_DEL)
|
||||
@@ -171,7 +166,7 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
|
||||
queue[refid] = gctime
|
||||
|
||||
// For profiling.
|
||||
/datum/controller/subsystem/garbage_collector/proc/HardDelete(datum/A)
|
||||
/datum/controller/subsystem/garbage/proc/HardDelete(datum/A)
|
||||
var/time = world.timeofday
|
||||
var/tick = world.tick_usage
|
||||
var/ticktime = world.time
|
||||
@@ -194,12 +189,12 @@ var/datum/controller/subsystem/garbage_collector/SSgarbage
|
||||
message_admins("Error: [type]([refID]) took longer then 1 second to delete (took [time/10] seconds to delete).")
|
||||
postpone(time/5)
|
||||
|
||||
/datum/controller/subsystem/garbage_collector/proc/HardQueue(datum/A)
|
||||
/datum/controller/subsystem/garbage/proc/HardQueue(datum/A)
|
||||
if (istype(A) && A.gcDestroyed == GC_CURRENTLY_BEING_QDELETED)
|
||||
tobequeued += A
|
||||
A.gcDestroyed = GC_QUEUED_FOR_HARD_DEL
|
||||
|
||||
/datum/controller/subsystem/garbage_collector/Recover()
|
||||
/datum/controller/subsystem/garbage/Recover()
|
||||
if (istype(SSgarbage.queue))
|
||||
queue |= SSgarbage.queue
|
||||
if (istype(SSgarbage.tobequeued))
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/ghostroles/SSghostroles
|
||||
|
||||
/datum/controller/subsystem/ghostroles
|
||||
SUBSYSTEM_DEF(ghostroles)
|
||||
name = "Ghost Roles"
|
||||
flags = SS_NO_FIRE
|
||||
init_order = SS_INIT_GHOSTROLES
|
||||
@@ -19,9 +17,6 @@
|
||||
src.spawnpoints = SSghostroles.spawnpoints
|
||||
src.spawners = SSghostroles.spawners
|
||||
|
||||
/datum/controller/subsystem/ghostroles/New()
|
||||
NEW_SS_GLOBAL(SSghostroles)
|
||||
|
||||
/datum/controller/subsystem/ghostroles/Initialize(start_timeofday)
|
||||
. = ..()
|
||||
for(var/spawner in subtypesof(/datum/ghostspawner))
|
||||
@@ -104,10 +99,10 @@
|
||||
return get_turf(P)
|
||||
|
||||
/datum/controller/subsystem/ghostroles/ui_state(mob/user)
|
||||
return always_state
|
||||
return always_state
|
||||
|
||||
/datum/controller/subsystem/ghostroles/ui_status(mob/user, datum/ui_state/state)
|
||||
return UI_INTERACTIVE
|
||||
return UI_INTERACTIVE
|
||||
|
||||
/datum/controller/subsystem/ghostroles/ui_interact(mob/user, datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
|
||||
@@ -1,14 +1,9 @@
|
||||
var/datum/controller/subsystem/listener/SSlistener
|
||||
|
||||
/datum/controller/subsystem/listener
|
||||
SUBSYSTEM_DEF(listener)
|
||||
name = "Global Listener"
|
||||
flags = SS_NO_INIT | SS_NO_FIRE
|
||||
|
||||
var/list/listeners = list()
|
||||
|
||||
/datum/controller/subsystem/listener/New()
|
||||
NEW_SS_GLOBAL(SSlistener)
|
||||
|
||||
/datum/controller/subsystem/listener/Recover()
|
||||
listeners = SSlistener.listeners
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/hallucinations/SShallucinations
|
||||
|
||||
/datum/controller/subsystem/hallucinations
|
||||
SUBSYSTEM_DEF(hallucinations)
|
||||
name = "Hallucinations"
|
||||
flags = SS_NO_FIRE
|
||||
|
||||
@@ -14,9 +12,6 @@
|
||||
"what have you DONE?", "Miranda Trasen", "Central Command", "AI", "maintenance drone", "Unknown", "I don't want to die")
|
||||
var/list/all_hallucinations = list()
|
||||
|
||||
/datum/controller/subsystem/hallucinations/New()
|
||||
NEW_SS_GLOBAL(SShallucinations)
|
||||
|
||||
/datum/controller/subsystem/hallucinations/Initialize()
|
||||
. = ..()
|
||||
for(var/T in subtypesof(/datum/hallucination))
|
||||
@@ -33,4 +28,4 @@
|
||||
candidates += H
|
||||
if(candidates.len)
|
||||
var/datum/hallucination/D = pick(candidates)
|
||||
return D
|
||||
return D
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/icon_cache/SSicon_cache
|
||||
|
||||
/datum/controller/subsystem/icon_cache
|
||||
SUBSYSTEM_DEF(icon_cache)
|
||||
name = "Icon Cache"
|
||||
flags = SS_NO_FIRE
|
||||
init_order = SS_INIT_MISC_FIRST
|
||||
@@ -71,9 +69,6 @@
|
||||
|
||||
var/list/istate_cache = list()
|
||||
|
||||
/datum/controller/subsystem/icon_cache/New()
|
||||
NEW_SS_GLOBAL(SSicon_cache)
|
||||
|
||||
/datum/controller/subsystem/icon_cache/Initialize()
|
||||
build_dust_cache()
|
||||
build_space_cache()
|
||||
|
||||
@@ -15,9 +15,7 @@
|
||||
can_fire = TRUE; \
|
||||
}
|
||||
|
||||
var/datum/controller/subsystem/icon_smooth/SSicon_smooth
|
||||
|
||||
/datum/controller/subsystem/icon_smooth
|
||||
SUBSYSTEM_DEF(icon_smooth)
|
||||
name = "Icon Smoothing"
|
||||
init_order = SS_INIT_SMOOTHING
|
||||
wait = 1
|
||||
@@ -30,9 +28,6 @@ var/datum/controller/subsystem/icon_smooth/SSicon_smooth
|
||||
|
||||
var/explosion_in_progress = FALSE
|
||||
|
||||
/datum/controller/subsystem/icon_smooth/New()
|
||||
NEW_SS_GLOBAL(SSicon_smooth)
|
||||
|
||||
/datum/controller/subsystem/icon_smooth/Recover()
|
||||
smooth_queue = SSicon_smooth.smooth_queue
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/icon/SSicon_update
|
||||
|
||||
/datum/controller/subsystem/icon
|
||||
SUBSYSTEM_DEF(icon_update)
|
||||
name = "Icon Updates"
|
||||
wait = 1 // ticks
|
||||
flags = SS_TICKER
|
||||
@@ -9,18 +7,18 @@
|
||||
|
||||
var/list/queue = list()
|
||||
|
||||
/datum/controller/subsystem/icon/New()
|
||||
/datum/controller/subsystem/icon_update/New()
|
||||
NEW_SS_GLOBAL(SSicon_update)
|
||||
|
||||
/datum/controller/subsystem/icon/stat_entry(msg)
|
||||
/datum/controller/subsystem/icon_update/stat_entry(msg)
|
||||
msg = "QU:[queue.len]"
|
||||
return ..()
|
||||
|
||||
/datum/controller/subsystem/icon/Initialize()
|
||||
/datum/controller/subsystem/icon_update/Initialize()
|
||||
fire(FALSE, TRUE)
|
||||
..()
|
||||
|
||||
/datum/controller/subsystem/icon/fire(resumed = FALSE, no_mc_tick = FALSE)
|
||||
/datum/controller/subsystem/icon_update/fire(resumed = FALSE, no_mc_tick = FALSE)
|
||||
var/list/curr = queue
|
||||
|
||||
if (!curr.len)
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
|
||||
var/datum/map/current_map // Whatever map is currently loaded. Null until SSatlas Initialize() starts.
|
||||
|
||||
var/datum/controller/subsystem/atlas/SSatlas
|
||||
|
||||
/datum/controller/subsystem/atlas
|
||||
SUBSYSTEM_DEF(atlas)
|
||||
name = "Atlas"
|
||||
flags = SS_NO_FIRE
|
||||
init_order = SS_INIT_MAPLOAD
|
||||
@@ -141,9 +139,6 @@ var/datum/controller/subsystem/atlas/SSatlas
|
||||
msg = "W:{X:[world.maxx] Y:[world.maxy] Z:[world.maxz]} ZL:[z_levels]"
|
||||
return ..()
|
||||
|
||||
/datum/controller/subsystem/atlas/New()
|
||||
NEW_SS_GLOBAL(SSatlas)
|
||||
|
||||
/datum/controller/subsystem/atlas/Initialize(timeofday)
|
||||
// Quick sanity check.
|
||||
if (world.maxx != WORLD_MIN_SIZE || world.maxy != WORLD_MIN_SIZE || world.maxz != 1)
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
#define SUBSYSTEM_INIT_SOURCE "subsystem init"
|
||||
|
||||
var/datum/controller/subsystem/atoms/SSatoms
|
||||
|
||||
#define BAD_INIT_QDEL_BEFORE 1
|
||||
#define BAD_INIT_DIDNT_INIT 2
|
||||
#define BAD_INIT_SLEPT 4
|
||||
#define BAD_INIT_NO_HINT 8
|
||||
|
||||
/datum/controller/subsystem/atoms
|
||||
SUBSYSTEM_DEF(atoms)
|
||||
name = "Atoms"
|
||||
init_order = SS_INIT_ATOMS
|
||||
flags = SS_NO_FIRE
|
||||
@@ -28,9 +26,6 @@ var/datum/controller/subsystem/atoms/SSatoms
|
||||
|
||||
var/list/BadInitializeCalls = list()
|
||||
|
||||
/datum/controller/subsystem/atoms/New()
|
||||
NEW_SS_GLOBAL(SSatoms)
|
||||
|
||||
/datum/controller/subsystem/atoms/Initialize(timeofday)
|
||||
initialized = INITIALIZATION_INNEW_MAPLOAD
|
||||
InitializeAtoms()
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
// Minimap generation system adapted from vorestation, adapted from /vg/.
|
||||
// Seems to be much simpler/saner than /vg/'s implementation.
|
||||
|
||||
/var/datum/controller/subsystem/holomap/SSholomap
|
||||
|
||||
/datum/controller/subsystem/holomap
|
||||
SUBSYSTEM_DEF(holomap)
|
||||
name = "Holomap"
|
||||
flags = SS_NO_FIRE
|
||||
init_order = SS_INIT_HOLOMAP
|
||||
@@ -12,9 +10,6 @@
|
||||
var/list/extra_minimaps = list()
|
||||
var/list/station_holomaps = list()
|
||||
|
||||
/datum/controller/subsystem/holomap/New()
|
||||
NEW_SS_GLOBAL(SSholomap)
|
||||
|
||||
/datum/controller/subsystem/holomap/Initialize()
|
||||
holo_minimaps.len = world.maxz
|
||||
for (var/z in 1 to world.maxz)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// The area list is put together here, because some things need it early on. Turrets controls, for example.
|
||||
|
||||
/datum/controller/subsystem/finalize
|
||||
SUBSYSTEM_DEF(finalize)
|
||||
name = "Map Finalization"
|
||||
flags = SS_NO_FIRE | SS_NO_DISPLAY
|
||||
init_order = SS_INIT_MAPFINALIZE
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// This is one of the first subsystems initialized by the MC.
|
||||
// Stuff that should be loaded before everything else that isn't significant enough to get its own SS goes here.
|
||||
|
||||
/datum/controller/subsystem/misc_early
|
||||
SUBSYSTEM_DEF(misc_early)
|
||||
name = "Early Miscellaneous Init"
|
||||
init_order = SS_INIT_MISC_FIRST
|
||||
flags = SS_NO_FIRE | SS_NO_DISPLAY
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// This subsystem loads later in the init process. Not last, but after most major things are done.
|
||||
|
||||
/datum/controller/subsystem/misc_late
|
||||
SUBSYSTEM_DEF(misc_late)
|
||||
name = "Late Miscellaneous Init"
|
||||
init_order = SS_INIT_MISC
|
||||
flags = SS_NO_FIRE | SS_NO_DISPLAY
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/persistent_configuration/SSpersist_config = null
|
||||
|
||||
/datum/controller/subsystem/persistent_configuration
|
||||
SUBSYSTEM_DEF(persistent_configuration)
|
||||
name = "Persistent Configuration"
|
||||
init_order = SS_INIT_PERSISTENT_CONFIG
|
||||
flags = SS_NO_FIRE
|
||||
@@ -17,7 +15,7 @@
|
||||
var/forced_awaymission = FALSE
|
||||
|
||||
/datum/controller/subsystem/persistent_configuration/Initialize(timeofday)
|
||||
SSpersist_config = src
|
||||
SSpersistent_configuration = src
|
||||
|
||||
load_from_file("data/persistent_config.json")
|
||||
|
||||
@@ -25,7 +23,7 @@
|
||||
var/file = file2text(filename)
|
||||
|
||||
if (!file)
|
||||
log_config("SSpersist_config: file [filename] not found, falling back to default values.")
|
||||
log_config("SSpersistent_configuration: file [filename] not found, falling back to default values.")
|
||||
return
|
||||
|
||||
var/list/decoded = null
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
var/datum/controller/subsystem/xenoarch/SSxenoarch
|
||||
|
||||
#define XENOARCH_SPAWN_CHANCE 0.5
|
||||
#define DIGSITESIZE_LOWER 4
|
||||
#define DIGSITESIZE_UPPER 12
|
||||
#define ARTIFACTSPAWNNUM_LOWER 6
|
||||
#define ARTIFACTSPAWNNUM_UPPER 12
|
||||
|
||||
/datum/controller/subsystem/xenoarch
|
||||
SUBSYSTEM_DEF(xenoarch)
|
||||
name = "Xenoarchaeology"
|
||||
flags = SS_NO_FIRE
|
||||
init_order = SS_INIT_XENOARCH
|
||||
@@ -14,11 +12,8 @@ var/datum/controller/subsystem/xenoarch/SSxenoarch
|
||||
var/list/artifact_spawning_turfs = list()
|
||||
var/list/digsite_spawning_turfs = list()
|
||||
|
||||
/datum/controller/subsystem/xenoarch/New()
|
||||
NEW_SS_GLOBAL(SSxenoarch)
|
||||
|
||||
/datum/controller/subsystem/xenoarch/Initialize(timeofday)
|
||||
set background=1
|
||||
set background = TRUE
|
||||
|
||||
//create digsites
|
||||
for(var/turf/TIW in world)
|
||||
|
||||
@@ -1,18 +1,13 @@
|
||||
var/datum/controller/subsystem/ipintel/SSipintel
|
||||
|
||||
/datum/controller/subsystem/ipintel
|
||||
SUBSYSTEM_DEF(ipintel)
|
||||
name = "XKeyScore"
|
||||
init_order = SS_INIT_MISC_FIRST
|
||||
flags = SS_NO_FIRE
|
||||
var/enabled = 0 //disable at round start to avoid checking reconnects
|
||||
var/enabled = FALSE //disable at round start to avoid checking reconnects
|
||||
var/throttle = 0
|
||||
var/errors = 0
|
||||
|
||||
var/list/cache = list()
|
||||
|
||||
/datum/controller/subsystem/ipintel/New()
|
||||
NEW_SS_GLOBAL(SSipintel)
|
||||
|
||||
/datum/controller/subsystem/ipintel/Initialize()
|
||||
enabled = 1
|
||||
enabled = TRUE
|
||||
. = ..()
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
/var/datum/controller/subsystem/jobs/SSjobs
|
||||
|
||||
#define BE_ASSISTANT 0
|
||||
#define RETURN_TO_LOBBY 1
|
||||
|
||||
#define Debug(text) if (Debug2) {job_debug += text}
|
||||
|
||||
/datum/controller/subsystem/jobs
|
||||
SUBSYSTEM_DEF(jobs)
|
||||
// Subsystem stuff.
|
||||
name = "Jobs"
|
||||
flags = SS_NO_FIRE
|
||||
@@ -26,9 +21,6 @@
|
||||
var/safe_to_sanitize = FALSE
|
||||
var/list/deferred_preference_sanitizations = list()
|
||||
|
||||
/datum/controller/subsystem/jobs/New()
|
||||
NEW_SS_GLOBAL(SSjobs)
|
||||
|
||||
/datum/controller/subsystem/jobs/Initialize()
|
||||
..()
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/global/datum/controller/subsystem/law/SSlaw
|
||||
|
||||
/datum/controller/subsystem/law
|
||||
SUBSYSTEM_DEF(law)
|
||||
name = "Law"
|
||||
flags = SS_NO_FIRE
|
||||
|
||||
@@ -9,9 +7,6 @@
|
||||
var/list/med_severity = list()
|
||||
var/list/high_severity = list()
|
||||
|
||||
/datum/controller/subsystem/law/New()
|
||||
NEW_SS_GLOBAL(SSlaw)
|
||||
|
||||
/datum/controller/subsystem/law/Initialize(timeofday)
|
||||
if(config.sql_enabled)
|
||||
load_from_sql()
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
var/datum/controller/subsystem/lighting/SSlighting
|
||||
|
||||
/var/lighting_profiling = FALSE
|
||||
/var/lighting_overlays_initialized = FALSE
|
||||
|
||||
/datum/controller/subsystem/lighting
|
||||
SUBSYSTEM_DEF(lighting)
|
||||
name = "Lighting"
|
||||
wait = LIGHTING_INTERVAL
|
||||
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
|
||||
@@ -34,9 +32,6 @@ var/datum/controller/subsystem/lighting/SSlighting
|
||||
var/force_override = FALSE // For admins.
|
||||
#endif
|
||||
|
||||
/datum/controller/subsystem/lighting/New()
|
||||
NEW_SS_GLOBAL(SSlighting)
|
||||
|
||||
/datum/controller/subsystem/lighting/stat_entry(msg)
|
||||
var/list/out = list(
|
||||
#ifdef USE_INTELLIGENT_LIGHTING_UPDATES
|
||||
|
||||
@@ -33,9 +33,7 @@ if(Datum.isprocessing) {\
|
||||
#define START_PROCESSING_POWER_OBJECT(Datum) START_PROCESSING_IN_LIST(Datum, power_objects)
|
||||
#define STOP_PROCESSING_POWER_OBJECT(Datum) STOP_PROCESSING_IN_LIST(Datum, power_objects)
|
||||
|
||||
/var/datum/controller/subsystem/machinery/SSmachinery
|
||||
|
||||
/datum/controller/subsystem/machinery
|
||||
SUBSYSTEM_DEF(machinery)
|
||||
name = "Machinery"
|
||||
priority = SS_PRIORITY_MACHINERY
|
||||
init_order = SS_INIT_MACHINERY
|
||||
@@ -84,9 +82,6 @@ if(Datum.isprocessing) {\
|
||||
all_receivers = SSmachinery.all_receivers
|
||||
current_step = SSMACHINERY_PIPENETS
|
||||
|
||||
/datum/controller/subsystem/machinery/New()
|
||||
NEW_SS_GLOBAL(SSmachinery)
|
||||
|
||||
/datum/controller/subsystem/machinery/Initialize(timeofday)
|
||||
makepowernets()
|
||||
build_rcon_lists()
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/mapping/SSmapping
|
||||
|
||||
/datum/controller/subsystem/mapping
|
||||
SUBSYSTEM_DEF(mapping)
|
||||
name = "Mapping"
|
||||
init_order = SS_INIT_AWAY_MAPS
|
||||
flags = SS_NO_FIRE
|
||||
@@ -12,9 +10,6 @@ var/datum/controller/subsystem/mapping/SSmapping
|
||||
var/list/submaps = list()
|
||||
var/list/submap_archetypes = list()
|
||||
|
||||
/datum/controller/subsystem/mapping/New()
|
||||
NEW_SS_GLOBAL(SSmapping)
|
||||
|
||||
/datum/controller/subsystem/mapping/Initialize(timeofday)
|
||||
// Load templates and build away sites.
|
||||
preloadTemplates()
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/materials/SSmaterials
|
||||
|
||||
/datum/controller/subsystem/materials
|
||||
SUBSYSTEM_DEF(materials)
|
||||
name = "Materials"
|
||||
init_order = SS_INIT_MISC_FIRST
|
||||
flags = SS_NO_FIRE
|
||||
@@ -11,9 +9,6 @@ var/datum/controller/subsystem/materials/SSmaterials
|
||||
var/list/autolathe_recipes
|
||||
var/list/autolathe_categories
|
||||
|
||||
/datum/controller/subsystem/materials/New()
|
||||
NEW_SS_GLOBAL(SSmaterials)
|
||||
|
||||
/datum/controller/subsystem/materials/Initialize()
|
||||
create_material_lists()
|
||||
. = ..()
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/mobs/SSmob
|
||||
|
||||
/datum/controller/subsystem/mobs
|
||||
SUBSYSTEM_DEF(mobs)
|
||||
name = "Mobs - Life"
|
||||
init_order = SS_INIT_MISC // doesn't really matter when we init
|
||||
priority = SS_PRIORITY_MOB
|
||||
@@ -43,9 +41,6 @@
|
||||
/mob/living/simple_animal/penguin/holodeck
|
||||
)
|
||||
|
||||
/datum/controller/subsystem/mobs/New()
|
||||
NEW_SS_GLOBAL(SSmob)
|
||||
|
||||
/datum/controller/subsystem/mobs/Initialize()
|
||||
// Some setup work for the eat-types lists.
|
||||
mtl_synthetic = typecacheof(mtl_synthetic) + list(
|
||||
@@ -93,7 +88,7 @@
|
||||
var/mob/M = thing
|
||||
|
||||
if (QDELETED(M))
|
||||
LOG_DEBUG("SSmob: QDELETED mob [DEBUG_REF(M)] left in processing list!")
|
||||
LOG_DEBUG("SSmobs: QDELETED mob [DEBUG_REF(M)] left in processing list!")
|
||||
// We can just go ahead and remove them from all the mob lists.
|
||||
mob_list -= M
|
||||
dead_mob_list -= M
|
||||
@@ -111,7 +106,7 @@
|
||||
if (time != world.time && !slept[M.type])
|
||||
slept[M.type] = TRUE
|
||||
var/diff = world.time - time
|
||||
LOG_DEBUG("SSmob: Type '[M.type]' slept for [diff] ds in Life()! Suppressing further warnings.")
|
||||
LOG_DEBUG("SSmobs: Type '[M.type]' slept for [diff] ds in Life()! Suppressing further warnings.")
|
||||
|
||||
if (MC_TICK_CHECK)
|
||||
return
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/mob_ai/SSmob_ai
|
||||
|
||||
/datum/controller/subsystem/mob_ai
|
||||
SUBSYSTEM_DEF(mob_ai)
|
||||
name = "Mobs - AI"
|
||||
flags = SS_NO_INIT
|
||||
priority = SS_PRIORITY_MOB
|
||||
@@ -10,9 +8,6 @@
|
||||
var/list/currentrun = list()
|
||||
var/list/slept = list()
|
||||
|
||||
/datum/controller/subsystem/mob_ai/New()
|
||||
NEW_SS_GLOBAL(SSmob_ai)
|
||||
|
||||
/datum/controller/subsystem/mob_ai/stat_entry(msg)
|
||||
msg = "P:[processing.len]"
|
||||
return ..()
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
/var/datum/controller/subsystem/mob_ai/fast/SSmob_fast_ai
|
||||
|
||||
/datum/controller/subsystem/mob_ai/fast
|
||||
MOB_AI_SUBSYSTEM_DEF(mob_fast_ai)
|
||||
name = "Mobs - Fast AI"
|
||||
wait = 5
|
||||
|
||||
/datum/controller/subsystem/mob_ai/fast/New()
|
||||
NEW_SS_GLOBAL(SSmob_fast_ai)
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/news/SSnews
|
||||
|
||||
/datum/controller/subsystem/news
|
||||
SUBSYSTEM_DEF(news)
|
||||
name = "News"
|
||||
flags = SS_NO_FIRE
|
||||
var/list/datum/feed_channel/network_channels = list()
|
||||
@@ -11,9 +9,6 @@
|
||||
src.network_channels = SSnews.network_channels
|
||||
src.wanted_issue = SSnews.wanted_issue
|
||||
|
||||
/datum/controller/subsystem/news/New()
|
||||
NEW_SS_GLOBAL(SSnews)
|
||||
|
||||
/datum/controller/subsystem/news/Initialize(timeofday)
|
||||
CreateFeedChannel("Station Announcements", "Automatic Announcement System", 1, 1, "New Station Announcement Available")
|
||||
CreateFeedChannel("Tau Ceti Daily", "CentComm Minister of Information", 1, 1)
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/nightlight/SSnightlight
|
||||
|
||||
/datum/controller/subsystem/nightlight
|
||||
SUBSYSTEM_DEF(nightlight)
|
||||
name = "Night Lighting"
|
||||
wait = 5 MINUTES
|
||||
init_order = SS_INIT_NIGHT
|
||||
@@ -10,9 +8,6 @@ var/datum/controller/subsystem/nightlight/SSnightlight
|
||||
var/isactive = FALSE
|
||||
var/disable_type = NL_NOT_DISABLED
|
||||
|
||||
/datum/controller/subsystem/nightlight/New()
|
||||
NEW_SS_GLOBAL(SSnightlight)
|
||||
|
||||
/datum/controller/subsystem/nightlight/stat_entry(msg)
|
||||
msg = "A:[isactive] T:[worldtime2hours()] D:[disable_type]"
|
||||
return ..()
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/orbit/SSorbit
|
||||
|
||||
/datum/controller/subsystem/orbit
|
||||
SUBSYSTEM_DEF(orbit)
|
||||
name = "Orbits"
|
||||
priority = SS_PRIORITY_ORBIT
|
||||
wait = 2
|
||||
@@ -10,9 +8,6 @@ var/datum/controller/subsystem/orbit/SSorbit
|
||||
var/list/currentrun = list()
|
||||
var/list/processing = list()
|
||||
|
||||
/datum/controller/subsystem/orbit/New()
|
||||
NEW_SS_GLOBAL(SSorbit)
|
||||
|
||||
/datum/controller/subsystem/orbit/Recover()
|
||||
src.processing = SSorbit.processing
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/overlays/SSoverlays
|
||||
|
||||
/datum/controller/subsystem/overlays
|
||||
SUBSYSTEM_DEF(overlays)
|
||||
name = "Overlay"
|
||||
flags = SS_TICKER
|
||||
runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY
|
||||
@@ -19,9 +17,6 @@ var/datum/controller/subsystem/overlays/SSoverlays
|
||||
msg = "Ov:[processing.len - (idex - 1)]"
|
||||
return ..()
|
||||
|
||||
/datum/controller/subsystem/overlays/New()
|
||||
NEW_SS_GLOBAL(SSoverlays)
|
||||
|
||||
/datum/controller/subsystem/overlays/Initialize()
|
||||
initialized = TRUE
|
||||
Flush()
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/pai/SSpai
|
||||
|
||||
/datum/controller/subsystem/pai
|
||||
SUBSYSTEM_DEF(pai)
|
||||
name = "pAI"
|
||||
init_order = SS_INIT_MISC_FIRST
|
||||
flags = SS_NO_FIRE
|
||||
@@ -15,8 +13,7 @@
|
||||
|
||||
var/askDelay = 1 MINUTE
|
||||
|
||||
/datum/controller/subsystem/pai/New()
|
||||
NEW_SS_GLOBAL(SSpai)
|
||||
/datum/controller/subsystem/pai/PreInit()
|
||||
LAZYINITLIST(pai_software_by_key)
|
||||
LAZYINITLIST(default_pai_software)
|
||||
|
||||
@@ -25,10 +22,10 @@
|
||||
default_pai_software = SSpai.default_pai_software
|
||||
|
||||
/datum/controller/subsystem/pai/ui_state(mob/user)
|
||||
return always_state
|
||||
return always_state
|
||||
|
||||
/datum/controller/subsystem/pai/ui_status(mob/user, datum/ui_state/state)
|
||||
return UI_INTERACTIVE
|
||||
return UI_INTERACTIVE
|
||||
|
||||
|
||||
/datum/controller/subsystem/pai/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/datum/controller/subsystem/ping
|
||||
SUBSYSTEM_DEF(ping)
|
||||
name = "Ping"
|
||||
priority = SS_PRIORITY_PING
|
||||
init_order = SS_INIT_PING
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/plants/SSplants
|
||||
|
||||
/datum/controller/subsystem/plants
|
||||
SUBSYSTEM_DEF(plants)
|
||||
name = "Seeds & Plants"
|
||||
flags = 0 // Override parent's flags.
|
||||
wait = 75
|
||||
@@ -21,9 +19,6 @@
|
||||
var/list/processing = list()
|
||||
var/list/current = list()
|
||||
|
||||
/datum/controller/subsystem/plants/New()
|
||||
NEW_SS_GLOBAL(SSplants)
|
||||
|
||||
/datum/controller/subsystem/plants/stat_entry(msg)
|
||||
msg = "P:[processing.len]"
|
||||
return ..()
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
/var/datum/controller/subsystem/processing/airflow/SSairflow
|
||||
|
||||
#define CLEAR_OBJECT(TARGET) \
|
||||
processing -= TARGET; \
|
||||
TARGET.airflow_dest = null; \
|
||||
@@ -10,15 +8,12 @@
|
||||
TARGET.density = 0; \
|
||||
}
|
||||
|
||||
/datum/controller/subsystem/processing/airflow
|
||||
PROCESSING_SUBSYSTEM_DEF(airflow)
|
||||
name = "Airflow"
|
||||
wait = 1
|
||||
flags = SS_NO_INIT
|
||||
priority = SS_PRIORITY_AIRFLOW
|
||||
|
||||
/datum/controller/subsystem/processing/airflow/New()
|
||||
NEW_SS_GLOBAL(SSairflow)
|
||||
|
||||
/datum/controller/subsystem/processing/airflow/fire(resumed = FALSE)
|
||||
if (!resumed)
|
||||
currentrun = processing.Copy() // Defined in parent.
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
// This is a separate processor so the MC can schedule singuloth/tesla/Nar-sie independent from other objects.
|
||||
|
||||
var/datum/controller/subsystem/processing/calamity/SScalamity
|
||||
|
||||
/datum/controller/subsystem/processing/calamity
|
||||
PROCESSING_SUBSYSTEM_DEF(calamity)
|
||||
name = "Calamity"
|
||||
flags = SS_NO_INIT | SS_POST_FIRE_TIMING
|
||||
priority = SS_PRIORITY_CALAMITY
|
||||
|
||||
var/list/singularities = list()
|
||||
|
||||
/datum/controller/subsystem/processing/calamity/New()
|
||||
NEW_SS_GLOBAL(SScalamity)
|
||||
|
||||
@@ -1,14 +1,9 @@
|
||||
/var/datum/controller/subsystem/processing/dcs/SSdcs
|
||||
|
||||
/datum/controller/subsystem/processing/dcs
|
||||
PROCESSING_SUBSYSTEM_DEF(dcs)
|
||||
name = "Datum Component System"
|
||||
flags = SS_NO_INIT
|
||||
|
||||
var/list/elements_by_type = list()
|
||||
|
||||
/datum/controller/subsystem/processing/dcs/New()
|
||||
NEW_SS_GLOBAL(SSdcs)
|
||||
|
||||
/datum/controller/subsystem/processing/dcs/Recover()
|
||||
comp_lookup = SSdcs.comp_lookup
|
||||
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
var/datum/controller/subsystem/processing/disease/SSdisease
|
||||
|
||||
/datum/controller/subsystem/processing/disease
|
||||
PROCESSING_SUBSYSTEM_DEF(disease)
|
||||
name = "Diseases"
|
||||
flags = SS_KEEP_TIMING | SS_NO_INIT
|
||||
priority = SS_PRIORITY_DISEASE
|
||||
|
||||
/datum/controller/subsystem/processing/disease/New()
|
||||
NEW_SS_GLOBAL(SSdisease)
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/processing/disposals/SSdisposals
|
||||
|
||||
/datum/controller/subsystem/processing/disposals
|
||||
PROCESSING_SUBSYSTEM_DEF(disposals)
|
||||
name = "Disposals"
|
||||
wait = 1 // deciseconds
|
||||
flags = SS_NO_INIT | SS_BACKGROUND
|
||||
@@ -9,6 +7,5 @@
|
||||
// Reference list for disposal sort junctions. Filled by sorting junctions' initialize().
|
||||
var/list/tagger_locations
|
||||
|
||||
/datum/controller/subsystem/processing/disposals/New()
|
||||
NEW_SS_GLOBAL(SSdisposals)
|
||||
/datum/controller/subsystem/processing/disposals/PreInit()
|
||||
LAZYINITLIST(tagger_locations)
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
#define IC_SPAWN_DEFAULT 1 // If the circuit comes in the default circuit box and able to be printed in the IC printer.
|
||||
#define IC_SPAWN_RESEARCH 2 // If the circuit design will be available in the IC printer after upgrading it.
|
||||
|
||||
/var/datum/controller/subsystem/processing/electronics/SSelectronics
|
||||
|
||||
/datum/controller/subsystem/processing/electronics
|
||||
PROCESSING_SUBSYSTEM_DEF(electronics)
|
||||
name = "Electronics"
|
||||
wait = 2 SECONDS
|
||||
priority = SS_PRIORITY_ELECTRONICS
|
||||
@@ -16,9 +14,6 @@
|
||||
var/list/printer_recipe_list_upgraded = list()
|
||||
var/list/found_categories = list()
|
||||
|
||||
/datum/controller/subsystem/processing/electronics/New()
|
||||
NEW_SS_GLOBAL(SSelectronics)
|
||||
|
||||
/datum/controller/subsystem/processing/electronics/Initialize(timeofday)
|
||||
init_subtypes(/obj/item/integrated_circuit, all_integrated_circuits)
|
||||
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
/var/datum/controller/subsystem/processing/fast/SSfast_process
|
||||
|
||||
// Not really much to it, literally just a faster-ticking SSprocessing.
|
||||
|
||||
/datum/controller/subsystem/processing/fast
|
||||
/// Not really much to it, literally just a faster-ticking SSprocessing.
|
||||
PROCESSING_SUBSYSTEM_DEF(fast_process)
|
||||
name = "Processing (Fast)"
|
||||
wait = 5
|
||||
|
||||
/datum/controller/subsystem/processing/fast/New()
|
||||
NEW_SS_GLOBAL(SSfast_process)
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
var/datum/controller/subsystem/processing/modifiers/SSmodifiers
|
||||
/datum/controller/subsystem/processing/modifiers
|
||||
PROCESSING_SUBSYSTEM_DEF(modifiers)
|
||||
name = "Modifiers"
|
||||
wait = 1 SECOND
|
||||
flags = SS_NO_INIT
|
||||
priority = SS_PRIORITY_MODIFIER
|
||||
|
||||
/datum/controller/subsystem/processing/modifiers/New()
|
||||
NEW_SS_GLOBAL(SSmodifiers)
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/processing/nanoui/SSnanoui
|
||||
|
||||
/datum/controller/subsystem/processing/nanoui
|
||||
PROCESSING_SUBSYSTEM_DEF(nanoui)
|
||||
// Subsystem stuff.
|
||||
name = "NanoUI"
|
||||
flags = SS_NO_INIT
|
||||
@@ -10,9 +8,6 @@ var/datum/controller/subsystem/processing/nanoui/SSnanoui
|
||||
// NanoUI stuff.
|
||||
var/list/open_uis = list()
|
||||
|
||||
/datum/controller/subsystem/processing/nanoui/New()
|
||||
NEW_SS_GLOBAL(SSnanoui)
|
||||
|
||||
/**
|
||||
* Get an open /nanoui ui for the current user, src_object and ui_key and try to update it with data
|
||||
*
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
var/datum/controller/subsystem/processing/ntsl2/SSntsl2
|
||||
|
||||
/*
|
||||
NTSL2 deamon management subsystem, responsible for handling events from deamon and it's connection state.
|
||||
*/
|
||||
/datum/controller/subsystem/processing/ntsl2
|
||||
PROCESSING_SUBSYSTEM_DEF(ntsl2)
|
||||
name = "NTSL2"
|
||||
flags = 0
|
||||
init_order = SS_INIT_MISC
|
||||
@@ -13,9 +11,6 @@ NTSL2 deamon management subsystem, responsible for handling events from deamon a
|
||||
var/list/tasks = list()
|
||||
var/current_task_id = 1
|
||||
|
||||
/datum/controller/subsystem/processing/ntsl2/New()
|
||||
NEW_SS_GLOBAL(SSntsl2)
|
||||
|
||||
/datum/controller/subsystem/processing/ntsl2/Initialize(timeofday)
|
||||
attempt_connect()
|
||||
..()
|
||||
|
||||
@@ -1,14 +1,9 @@
|
||||
var/datum/controller/subsystem/processing/obj_tab_items/SSobj_tab_items
|
||||
|
||||
/datum/controller/subsystem/processing/obj_tab_items
|
||||
PROCESSING_SUBSYSTEM_DEF(obj_tab_items)
|
||||
name = "Obj Tab Items"
|
||||
flags = SS_NO_INIT
|
||||
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
|
||||
wait = 0.1 SECONDS
|
||||
|
||||
/datum/controller/subsystem/processing/obj_tab_items/New()
|
||||
NEW_SS_GLOBAL(SSobj_tab_items)
|
||||
|
||||
// I know this is mostly copypasta, but I want to change the processing logic
|
||||
// Sorry bestie :(
|
||||
/datum/controller/subsystem/processing/obj_tab_items/fire(resumed = FALSE)
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
var/datum/controller/subsystem/processing/overmap/SSovermap
|
||||
|
||||
/datum/controller/subsystem/processing/overmap
|
||||
PROCESSING_SUBSYSTEM_DEF(overmap)
|
||||
name = "Overmap"
|
||||
stat_tag = "OVRM"
|
||||
priority = SS_PRIORITY_OVERMAP
|
||||
flags = SS_TICKER|SS_NO_INIT
|
||||
wait = 7
|
||||
|
||||
/datum/controller/subsystem/processing/overmap/New()
|
||||
NEW_SS_GLOBAL(SSovermap)
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
//Used to process objects. Fires once every two seconds.
|
||||
|
||||
var/datum/controller/subsystem/processing/SSprocessing
|
||||
/datum/controller/subsystem/processing
|
||||
SUBSYSTEM_DEF(processing)
|
||||
name = "Processing"
|
||||
priority = SS_PRIORITY_PROCESSING
|
||||
flags = SS_BACKGROUND|SS_POST_FIRE_TIMING|SS_NO_INIT
|
||||
@@ -10,9 +8,6 @@ var/datum/controller/subsystem/processing/SSprocessing
|
||||
var/list/processing = list()
|
||||
var/list/currentrun = list()
|
||||
|
||||
/datum/controller/subsystem/processing/New()
|
||||
NEW_SS_GLOBAL(SSprocessing)
|
||||
|
||||
/datum/controller/subsystem/processing/stat_entry(msg)
|
||||
msg = "[stat_tag]:[processing.len]"
|
||||
return ..()
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
var/datum/controller/subsystem/processing/projectiles/SSprojectiles
|
||||
|
||||
/datum/controller/subsystem/processing/projectiles
|
||||
PROCESSING_SUBSYSTEM_DEF(projectiles)
|
||||
name = "Projectiles"
|
||||
stat_tag = "PROJ"
|
||||
priority = SS_PRIORITY_PROJECTILES
|
||||
flags = SS_TICKER|SS_NO_INIT
|
||||
wait = 1
|
||||
var/global_max_tick_moves = 10
|
||||
|
||||
/datum/controller/subsystem/processing/projectiles/New()
|
||||
NEW_SS_GLOBAL(SSprojectiles)
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
var/global/list/psychic_ranks_to_strings = list("Psionically Sensitive", "Psionically Harmonious", "Psionic Apex", "Limitless")
|
||||
|
||||
/var/datum/controller/subsystem/processing/psi/SSpsi
|
||||
|
||||
/datum/controller/subsystem/processing/psi
|
||||
PROCESSING_SUBSYSTEM_DEF(psi)
|
||||
name = "Psionics"
|
||||
priority = SS_PRIORITY_PSYCHICS
|
||||
flags = SS_BACKGROUND
|
||||
@@ -16,9 +14,6 @@ var/global/list/psychic_ranks_to_strings = list("Psionically Sensitive", "Psioni
|
||||
var/list/all_aura_images = list()
|
||||
var/list/all_psi_complexes = list()
|
||||
|
||||
/datum/controller/subsystem/processing/psi/New()
|
||||
NEW_SS_GLOBAL(SSpsi)
|
||||
|
||||
/datum/controller/subsystem/processing/psi/fire(resumed)
|
||||
..()
|
||||
if((world.time >= (last_nlom_awareness_check + 30 MINUTES)) && !checking_nlom && !completing_nlom)
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/shuttle/SSshuttle
|
||||
|
||||
/datum/controller/subsystem/shuttle
|
||||
SUBSYSTEM_DEF(shuttle)
|
||||
name = "Shuttle"
|
||||
wait = 2 SECONDS
|
||||
priority = SS_PRIORITY_SHUTTLE
|
||||
@@ -28,9 +26,6 @@ var/datum/controller/subsystem/shuttle/SSshuttle
|
||||
|
||||
var/tmp/list/working_shuttles
|
||||
|
||||
/datum/controller/subsystem/shuttle/New()
|
||||
NEW_SS_GLOBAL(SSshuttle)
|
||||
|
||||
/datum/controller/subsystem/shuttle/Initialize()
|
||||
last_landmark_registration_time = world.time
|
||||
for(var/shuttle_type in subtypesof(/datum/shuttle)) // This accounts for most shuttles, though away maps can queue up more.
|
||||
|
||||
@@ -10,9 +10,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
var/datum/controller/subsystem/processing/tgui/SStgui
|
||||
|
||||
/datum/controller/subsystem/processing/tgui
|
||||
PROCESSING_SUBSYSTEM_DEF(tgui)
|
||||
name = "tgui"
|
||||
wait = 9
|
||||
flags = SS_NO_INIT
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
|
||||
var/datum/controller/subsystem/profiler/SSprofiler
|
||||
|
||||
/datum/controller/subsystem/profiler
|
||||
SUBSYSTEM_DEF(profiler)
|
||||
name = "Profiler"
|
||||
wait = 1
|
||||
priority = SS_PRIORITY_PROFILE
|
||||
@@ -15,9 +12,6 @@ var/datum/controller/subsystem/profiler/SSprofiler
|
||||
var/next_restart = 0
|
||||
var/restart_period = 0
|
||||
|
||||
/datum/controller/subsystem/profiler/New()
|
||||
NEW_SS_GLOBAL(SSprofiler)
|
||||
|
||||
/datum/controller/subsystem/profiler/Initialize()
|
||||
if (!config.profiler_is_enabled)
|
||||
..()
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/radiation/SSradiation
|
||||
|
||||
/datum/controller/subsystem/radiation
|
||||
SUBSYSTEM_DEF(radiation)
|
||||
name = "Radiation"
|
||||
wait = 2 SECONDS
|
||||
priority = SS_PRIORITY_RADIATION
|
||||
@@ -14,9 +12,6 @@ var/datum/controller/subsystem/radiation/SSradiation
|
||||
var/list/current_res_cache = list()
|
||||
var/list/listeners = list()
|
||||
|
||||
/datum/controller/subsystem/radiation/New()
|
||||
NEW_SS_GLOBAL(SSradiation)
|
||||
|
||||
/datum/controller/subsystem/radiation/fire(resumed = FALSE)
|
||||
if (!resumed)
|
||||
current_sources = sources.Copy()
|
||||
|
||||
@@ -5,59 +5,59 @@
|
||||
Note that walkie-talkie, intercoms and headsets handle transmission using nonstandard way.
|
||||
procs:
|
||||
|
||||
add_object(obj/device as obj, var/new_frequency as num, var/filter as text|null = null)
|
||||
Adds listening object.
|
||||
parameters:
|
||||
device - device receiving signals, must have proc receive_signal (see description below).
|
||||
one device may listen several frequencies, but not same frequency twice.
|
||||
new_frequency - see possibly frequencies below;
|
||||
filter - thing for optimization. Optional, but recommended.
|
||||
All filters should be consolidated in this file, see defines later.
|
||||
Device without listening filter will receive all signals (on specified frequency).
|
||||
Device with filter will receive any signals sent without filter.
|
||||
Device with filter will not receive any signals sent with different filter.
|
||||
returns:
|
||||
Reference to frequency object.
|
||||
add_object(obj/device as obj, var/new_frequency as num, var/filter as text|null = null)
|
||||
Adds listening object.
|
||||
parameters:
|
||||
device - device receiving signals, must have proc receive_signal (see description below).
|
||||
one device may listen several frequencies, but not same frequency twice.
|
||||
new_frequency - see possibly frequencies below;
|
||||
filter - thing for optimization. Optional, but recommended.
|
||||
All filters should be consolidated in this file, see defines later.
|
||||
Device without listening filter will receive all signals (on specified frequency).
|
||||
Device with filter will receive any signals sent without filter.
|
||||
Device with filter will not receive any signals sent with different filter.
|
||||
returns:
|
||||
Reference to frequency object.
|
||||
|
||||
remove_object (obj/device, old_frequency)
|
||||
Obliviously, after calling this proc, device will not receive any signals on old_frequency.
|
||||
Other frequencies will left unaffected.
|
||||
remove_object (obj/device, old_frequency)
|
||||
Obliviously, after calling this proc, device will not receive any signals on old_frequency.
|
||||
Other frequencies will left unaffected.
|
||||
|
||||
return_frequency(var/frequency as num)
|
||||
returns:
|
||||
Reference to frequency object. Use it if you need to send and do not need to listen.
|
||||
returns:
|
||||
Reference to frequency object. Use it if you need to send and do not need to listen.
|
||||
|
||||
radio_frequency is a global object maintaining list of devices that listening specific frequency.
|
||||
procs:
|
||||
|
||||
post_signal(obj/source as obj|null, datum/signal/signal, var/filter as text|null = null, var/range as num|null = null)
|
||||
Sends signal to all devices that wants such signal.
|
||||
parameters:
|
||||
source - object, emitted signal. Usually, devices will not receive their own signals.
|
||||
signal - see description below.
|
||||
filter - described above.
|
||||
range - radius of regular byond's square circle on that z-level. null means everywhere, on all z-levels.
|
||||
post_signal(obj/source as obj|null, datum/signal/signal, var/filter as text|null = null, var/range as num|null = null)
|
||||
Sends signal to all devices that wants such signal.
|
||||
parameters:
|
||||
source - object, emitted signal. Usually, devices will not receive their own signals.
|
||||
signal - see description below.
|
||||
filter - described above.
|
||||
range - radius of regular byond's square circle on that z-level. null means everywhere, on all z-levels.
|
||||
|
||||
obj/proc/receive_signal(datum/signal/signal, var/receive_method as num, var/receive_param)
|
||||
Handler from received signals. By default does nothing. Define your own for your object.
|
||||
Avoid of sending signals directly from this proc, use spawn(-1). DO NOT use sleep() here or call procs that sleep please. If you must, use spawn()
|
||||
parameters:
|
||||
signal - see description below. Extract all needed data from the signal before doing sleep(), spawn() or return!
|
||||
receive_method - may be TRANSMISSION_WIRE or TRANSMISSION_RADIO.
|
||||
TRANSMISSION_WIRE is currently unused.
|
||||
receive_param - for TRANSMISSION_RADIO here comes frequency.
|
||||
Handler from received signals. By default does nothing. Define your own for your object.
|
||||
Avoid of sending signals directly from this proc, use spawn(-1). DO NOT use sleep() here or call procs that sleep please. If you must, use spawn()
|
||||
parameters:
|
||||
signal - see description below. Extract all needed data from the signal before doing sleep(), spawn() or return!
|
||||
receive_method - may be TRANSMISSION_WIRE or TRANSMISSION_RADIO.
|
||||
TRANSMISSION_WIRE is currently unused.
|
||||
receive_param - for TRANSMISSION_RADIO here comes frequency.
|
||||
|
||||
datum/signal
|
||||
vars:
|
||||
source
|
||||
an object that emitted signal. Used for debug and bearing.
|
||||
data
|
||||
list with transmitting data. Usual use pattern:
|
||||
data["msg"] = "hello world"
|
||||
encryption
|
||||
Some number symbolizing "encryption key".
|
||||
Note that game actually do not use any cryptography here.
|
||||
If receiving object don't know right key, it must ignore encrypted signal in its receive_signal.
|
||||
vars:
|
||||
source
|
||||
an object that emitted signal. Used for debug and bearing.
|
||||
data
|
||||
list with transmitting data. Usual use pattern:
|
||||
data["msg"] = "hello world"
|
||||
encryption
|
||||
Some number symbolizing "encryption key".
|
||||
Note that game actually do not use any cryptography here.
|
||||
If receiving object don't know right key, it must ignore encrypted signal in its receive_signal.
|
||||
|
||||
*/
|
||||
|
||||
@@ -96,17 +96,12 @@ On the map:
|
||||
1455 for AI access
|
||||
*/
|
||||
|
||||
var/datum/controller/subsystem/radio/SSradio
|
||||
|
||||
/datum/controller/subsystem/radio
|
||||
SUBSYSTEM_DEF(radio)
|
||||
name = "Radio"
|
||||
flags = SS_NO_FIRE | SS_NO_INIT
|
||||
|
||||
var/list/datum/radio_frequency/frequencies = list()
|
||||
|
||||
/datum/controller/subsystem/radio/New()
|
||||
NEW_SS_GLOBAL(SSradio)
|
||||
|
||||
/datum/controller/subsystem/radio/stat_entry(msg)
|
||||
msg = "F:[frequencies.len]"
|
||||
return ..()
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/records/SSrecords
|
||||
|
||||
/datum/controller/subsystem/records
|
||||
SUBSYSTEM_DEF(records)
|
||||
name = "Records"
|
||||
flags = SS_NO_FIRE
|
||||
|
||||
@@ -30,7 +28,7 @@
|
||||
InitializeReligions()
|
||||
InitializeAccents()
|
||||
|
||||
/datum/controller/subsystem/records/New()
|
||||
/datum/controller/subsystem/records/PreInit()
|
||||
records = list()
|
||||
records_locked = list()
|
||||
warrants = list()
|
||||
@@ -39,7 +37,6 @@
|
||||
excluded_fields = list()
|
||||
localized_fields = list()
|
||||
manifest = list()
|
||||
NEW_SS_GLOBAL(SSrecords)
|
||||
var/datum/D = new()
|
||||
for(var/v in D.vars)
|
||||
excluded_fields[v] = v
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/distress/SSdistress
|
||||
|
||||
/datum/controller/subsystem/distress
|
||||
SUBSYSTEM_DEF(distress)
|
||||
name = "Distress"
|
||||
flags = SS_NO_FIRE
|
||||
|
||||
@@ -18,9 +16,8 @@
|
||||
/datum/controller/subsystem/distress/Recover()
|
||||
send_emergency_team = SSdistress.send_emergency_team
|
||||
|
||||
/datum/controller/subsystem/distress/New()
|
||||
NEW_SS_GLOBAL(SSdistress)
|
||||
feedback_set("responseteam_count",0)
|
||||
/datum/controller/subsystem/distress/PreInit()
|
||||
feedback_set("responseteam_count", 0)
|
||||
|
||||
/datum/controller/subsystem/distress/Initialize(start_timeofday)
|
||||
. = ..()
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/skybox/SSskybox
|
||||
|
||||
/datum/controller/subsystem/skybox
|
||||
SUBSYSTEM_DEF(skybox)
|
||||
name = "Space skybox"
|
||||
init_order = SS_INIT_PARALLAX
|
||||
flags = SS_NO_FIRE
|
||||
@@ -31,9 +29,6 @@ var/datum/controller/subsystem/skybox/SSskybox
|
||||
space_appearance_cache[i + 1] = space.appearance
|
||||
background_color = SSatlas.current_sector.starlight_color
|
||||
|
||||
/datum/controller/subsystem/skybox/New()
|
||||
NEW_SS_GLOBAL(SSskybox)
|
||||
|
||||
/datum/controller/subsystem/skybox/Initialize()
|
||||
. = ..()
|
||||
build_space_appearances()
|
||||
|
||||
@@ -96,9 +96,7 @@
|
||||
* as of right now this system operates on a subset of the important_recursive_contents list for atom/movable, specifically
|
||||
* [RECURSIVE_CONTENTS_HEARING_SENSITIVE] and [RECURSIVE_CONTENTS_CLIENT_MOBS] because both are those are both 1. important and 2. commonly searched for
|
||||
*/
|
||||
/var/datum/controller/subsystem/spatial_grid/SSspatial_grid
|
||||
|
||||
/datum/controller/subsystem/spatial_grid
|
||||
SUBSYSTEM_DEF(spatial_grid)
|
||||
name = "Spatial Grid"
|
||||
flags = SS_NO_FIRE
|
||||
|
||||
@@ -118,9 +116,6 @@
|
||||
///how many pregenerated /mob/abstract/oranges_ear instances currently exist. this should hopefully never exceed its starting value
|
||||
var/number_of_oranges_ears = NUMBER_OF_PREGENERATED_ORANGES_EARS
|
||||
|
||||
/datum/controller/subsystem/spatial_grid/New()
|
||||
NEW_SS_GLOBAL(SSspatial_grid)
|
||||
|
||||
/datum/controller/subsystem/spatial_grid/Initialize(start_timeofday)
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/statistics/SSfeedback
|
||||
|
||||
/datum/controller/subsystem/statistics
|
||||
SUBSYSTEM_DEF(statistics)
|
||||
name = "Statistics & Inactivity"
|
||||
wait = 1 MINUTE
|
||||
flags = SS_NO_TICK_CHECK | SS_BACKGROUND
|
||||
@@ -33,9 +31,6 @@
|
||||
|
||||
var/status_needs_update = FALSE
|
||||
|
||||
/datum/controller/subsystem/statistics/New()
|
||||
NEW_SS_GLOBAL(SSfeedback)
|
||||
|
||||
/datum/controller/subsystem/statistics/Initialize(timeofday)
|
||||
for (var/type in subtypesof(/datum/statistic) - list(/datum/statistic/numeric, /datum/statistic/grouped))
|
||||
var/datum/statistic/S = new type
|
||||
@@ -84,21 +79,21 @@
|
||||
status_needs_update = TRUE
|
||||
|
||||
/datum/controller/subsystem/statistics/Recover()
|
||||
src.messages = SSfeedback.messages
|
||||
src.messages_admin = SSfeedback.messages_admin
|
||||
src.messages = SSstatistics.messages
|
||||
src.messages_admin = SSstatistics.messages_admin
|
||||
|
||||
src.msg_common = SSfeedback.msg_common
|
||||
src.msg_science = SSfeedback.msg_science
|
||||
src.msg_command = SSfeedback.msg_command
|
||||
src.msg_medical = SSfeedback.msg_medical
|
||||
src.msg_engineering = SSfeedback.msg_engineering
|
||||
src.msg_security = SSfeedback.msg_security
|
||||
src.msg_deathsquad = SSfeedback.msg_deathsquad
|
||||
src.msg_syndicate = SSfeedback.msg_syndicate
|
||||
src.msg_cargo = SSfeedback.msg_cargo
|
||||
src.msg_service = SSfeedback.msg_service
|
||||
src.msg_common = SSstatistics.msg_common
|
||||
src.msg_science = SSstatistics.msg_science
|
||||
src.msg_command = SSstatistics.msg_command
|
||||
src.msg_medical = SSstatistics.msg_medical
|
||||
src.msg_engineering = SSstatistics.msg_engineering
|
||||
src.msg_security = SSstatistics.msg_security
|
||||
src.msg_deathsquad = SSstatistics.msg_deathsquad
|
||||
src.msg_syndicate = SSstatistics.msg_syndicate
|
||||
src.msg_cargo = SSstatistics.msg_cargo
|
||||
src.msg_service = SSstatistics.msg_service
|
||||
|
||||
src.feedback = SSfeedback.feedback
|
||||
src.feedback = SSstatistics.feedback
|
||||
|
||||
/datum/controller/subsystem/statistics/proc/find_feedback_datum(variable)
|
||||
for (var/datum/feedback_variable/FV in feedback)
|
||||
@@ -179,58 +174,58 @@
|
||||
return text
|
||||
|
||||
/proc/feedback_set(var/variable,var/value)
|
||||
if(!SSfeedback)
|
||||
if(!SSstatistics)
|
||||
return
|
||||
|
||||
variable = sql_sanitize_text(variable)
|
||||
|
||||
var/datum/feedback_variable/FV = SSfeedback.find_feedback_datum(variable)
|
||||
var/datum/feedback_variable/FV = SSstatistics.find_feedback_datum(variable)
|
||||
|
||||
if(!FV) return
|
||||
|
||||
FV.set_value(value)
|
||||
|
||||
/proc/feedback_inc(var/variable,var/value)
|
||||
if(!SSfeedback) return
|
||||
if(!SSstatistics) return
|
||||
|
||||
variable = sql_sanitize_text(variable)
|
||||
|
||||
var/datum/feedback_variable/FV = SSfeedback.find_feedback_datum(variable)
|
||||
var/datum/feedback_variable/FV = SSstatistics.find_feedback_datum(variable)
|
||||
|
||||
if(!FV) return
|
||||
|
||||
FV.inc(value)
|
||||
|
||||
/proc/feedback_dec(var/variable,var/value)
|
||||
if(!SSfeedback) return
|
||||
if(!SSstatistics) return
|
||||
|
||||
variable = sql_sanitize_text(variable)
|
||||
|
||||
var/datum/feedback_variable/FV = SSfeedback.find_feedback_datum(variable)
|
||||
var/datum/feedback_variable/FV = SSstatistics.find_feedback_datum(variable)
|
||||
|
||||
if(!FV) return
|
||||
|
||||
FV.dec(value)
|
||||
|
||||
/proc/feedback_set_details(var/variable,var/details)
|
||||
if(!SSfeedback) return
|
||||
if(!SSstatistics) return
|
||||
|
||||
variable = sql_sanitize_text(variable)
|
||||
details = sql_sanitize_text(details)
|
||||
|
||||
var/datum/feedback_variable/FV = SSfeedback.find_feedback_datum(variable)
|
||||
var/datum/feedback_variable/FV = SSstatistics.find_feedback_datum(variable)
|
||||
|
||||
if(!FV) return
|
||||
|
||||
FV.set_details(details)
|
||||
|
||||
/proc/feedback_add_details(var/variable,var/details)
|
||||
if(!SSfeedback) return
|
||||
if(!SSstatistics) return
|
||||
|
||||
variable = sql_sanitize_text(variable)
|
||||
details = sql_sanitize_text(details)
|
||||
|
||||
var/datum/feedback_variable/FV = SSfeedback.find_feedback_datum(variable)
|
||||
var/datum/feedback_variable/FV = SSstatistics.find_feedback_datum(variable)
|
||||
|
||||
if(!FV) return
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/statpanels/SSstatpanels
|
||||
|
||||
/datum/controller/subsystem/statpanels
|
||||
SUBSYSTEM_DEF(statpanels)
|
||||
name = "Stat Panels"
|
||||
wait = 4
|
||||
init_order = SS_INIT_MISC_FIRST
|
||||
@@ -21,9 +19,6 @@ var/datum/controller/subsystem/statpanels/SSstatpanels
|
||||
///how many full runs this subsystem has completed. used for variable rate refreshes.
|
||||
var/num_fires = 0
|
||||
|
||||
/datum/controller/subsystem/statpanels/New()
|
||||
NEW_SS_GLOBAL(SSstatpanels)
|
||||
|
||||
/datum/controller/subsystem/statpanels/fire(resumed = FALSE)
|
||||
if (!resumed)
|
||||
num_fires++
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/stickyban/SSstickyban
|
||||
|
||||
/datum/controller/subsystem/stickyban
|
||||
SUBSYSTEM_DEF(stickyban)
|
||||
name = "PRISM"
|
||||
init_order = SS_INIT_MISC_FIRST
|
||||
flags = SS_NO_FIRE
|
||||
@@ -10,9 +8,6 @@
|
||||
var/list/confirmed_exempt = list()
|
||||
var/dbcacheexpire = 0
|
||||
|
||||
/datum/controller/subsystem/stickyban/New()
|
||||
NEW_SS_GLOBAL(SSstickyban)
|
||||
|
||||
/datum/controller/subsystem/stickyban/Initialize(timeofday)
|
||||
var/list/bannedkeys = sticky_banned_ckeys()
|
||||
//sanitize the sticky ban list
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/sun/sun
|
||||
|
||||
/datum/controller/subsystem/sun
|
||||
SUBSYSTEM_DEF(sun)
|
||||
name = "Sun"
|
||||
flags = SS_NO_INIT | SS_POST_FIRE_TIMING | SS_BACKGROUND
|
||||
wait = 1 MINUTE
|
||||
@@ -15,8 +13,7 @@ var/datum/controller/subsystem/sun/sun
|
||||
var/tmp/list/updating_solars
|
||||
var/solar_next_update // last time the sun position was checked and adjusted
|
||||
|
||||
/datum/controller/subsystem/sun/New()
|
||||
NEW_SS_GLOBAL(sun)
|
||||
/datum/controller/subsystem/sun/PreInit()
|
||||
LAZYINITLIST(solars)
|
||||
|
||||
rate = rand(50,200)/100 // 50% - 200% of standard rotation
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#ifdef ENABLE_SUNLIGHT
|
||||
|
||||
/var/datum/controller/subsystem/sunlight/SSsunlight
|
||||
|
||||
/datum/controller/subsystem/sunlight
|
||||
SUBSYSTEM_DEF(sunlight)
|
||||
name = "Sunlight"
|
||||
flags = SS_NO_FIRE
|
||||
init_order = SS_INIT_SUNLIGHT
|
||||
@@ -12,9 +10,6 @@
|
||||
|
||||
var/list/presets
|
||||
|
||||
/datum/controller/subsystem/sunlight/New()
|
||||
NEW_SS_GLOBAL(SSsunlight)
|
||||
|
||||
/datum/controller/subsystem/sunlight/stat_entry(msg)
|
||||
msg = "A:[config.sun_accuracy] LP:[light_points.len] Z:[config.sun_target_z]"
|
||||
return ..()
|
||||
|
||||
@@ -311,7 +311,7 @@ var/datum/controller/subsystem/ticker/SSticker
|
||||
for(var/i in total_antagonists)
|
||||
log_game("[i]s[total_antagonists[i]].")
|
||||
|
||||
SSfeedback.print_round_end_message()
|
||||
SSstatistics.print_round_end_message()
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
@@ -16,9 +16,7 @@
|
||||
* lists. The object at a given index in bucket_list is a /datum/timedevent, the head of a circular list, which has prev
|
||||
* and next references for the respective elements in that bucket's circular list.
|
||||
*/
|
||||
var/datum/controller/subsystem/timer/SStimer
|
||||
|
||||
/datum/controller/subsystem/timer
|
||||
SUBSYSTEM_DEF(timer)
|
||||
name = "Timer"
|
||||
wait = 1 //SS_TICKER subsystem, so wait is in ticks
|
||||
priority = SS_PRIORITY_TIMER
|
||||
@@ -55,8 +53,7 @@ var/datum/controller/subsystem/timer/SStimer
|
||||
/// How many times bucket was reset
|
||||
var/bucket_reset_count = 0
|
||||
|
||||
/datum/controller/subsystem/timer/New()
|
||||
NEW_SS_GLOBAL(SStimer)
|
||||
/datum/controller/subsystem/timer/PreInit()
|
||||
bucket_list.len = BUCKET_LEN
|
||||
head_offset = world.time
|
||||
bucket_resolution = world.tick_lag
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
/var/global/datum/controller/subsystem/trade/SStrade
|
||||
|
||||
/datum/controller/subsystem/trade
|
||||
SUBSYSTEM_DEF(trade)
|
||||
name = "Trade"
|
||||
wait = 1 MINUTE
|
||||
flags = SS_NO_TICK_CHECK
|
||||
runlevels = RUNLEVELS_PLAYING
|
||||
var/list/traders = list() //List of all nearby traders
|
||||
|
||||
/datum/controller/subsystem/trade/New()
|
||||
NEW_SS_GLOBAL(SStrade)
|
||||
|
||||
/datum/controller/subsystem/trade/Initialize()
|
||||
for(var/i in 1 to rand(1,3))
|
||||
generateTrader(1)
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/typing/SStyping
|
||||
|
||||
/datum/controller/subsystem/typing
|
||||
SUBSYSTEM_DEF(typing)
|
||||
name = "Typing"
|
||||
flags = SS_BACKGROUND
|
||||
wait = 0.5 SECONDS
|
||||
@@ -37,7 +35,6 @@ var/datum/controller/subsystem/typing/SStyping
|
||||
*/
|
||||
|
||||
/datum/controller/subsystem/typing/Initialize(start_timeofday)
|
||||
NEW_SS_GLOBAL(SStyping)
|
||||
match_verbs = regex("^(Me|Say|Whisper) +\"?\\w+")
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/global/datum/controller/subsystem/virtualreality/SSvirtualreality
|
||||
|
||||
/datum/controller/subsystem/virtualreality
|
||||
SUBSYSTEM_DEF(virtualreality)
|
||||
name = "Virtual Reality"
|
||||
init_order = SS_INIT_MISC_FIRST
|
||||
flags = SS_NO_FIRE
|
||||
@@ -17,9 +15,6 @@
|
||||
var/list/boundnetworks = list(REMOTE_AI_ROBOT)
|
||||
var/list/list/bounded = list()
|
||||
|
||||
/datum/controller/subsystem/virtualreality/New()
|
||||
NEW_SS_GLOBAL(SSvirtualreality)
|
||||
|
||||
/datum/controller/subsystem/virtualreality/Initialize()
|
||||
for(var/network in mechnetworks)
|
||||
mechs[network] = list()
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
var/datum/controller/subsystem/vote/SSvote
|
||||
|
||||
/datum/controller/subsystem/vote
|
||||
SUBSYSTEM_DEF(vote)
|
||||
name = "Voting"
|
||||
wait = 1 SECOND
|
||||
flags = SS_KEEP_TIMING | SS_NO_TICK_CHECK
|
||||
@@ -22,9 +20,6 @@ var/datum/controller/subsystem/vote/SSvote
|
||||
|
||||
var/list/round_voters = list()
|
||||
|
||||
/datum/controller/subsystem/vote/New()
|
||||
NEW_SS_GLOBAL(SSvote)
|
||||
|
||||
/datum/controller/subsystem/vote/Initialize(timeofday)
|
||||
next_transfer_time = config.vote_autotransfer_initial
|
||||
|
||||
@@ -159,7 +154,7 @@ var/datum/controller/subsystem/vote/SSvote
|
||||
restart = 1
|
||||
if("gamemode")
|
||||
if(master_mode != .)
|
||||
SSpersist_config.last_gamemode = .
|
||||
SSpersistent_configuration.last_gamemode = .
|
||||
if(SSticker.mode)
|
||||
restart = 1
|
||||
else
|
||||
@@ -326,10 +321,10 @@ var/datum/controller/subsystem/vote/SSvote
|
||||
)
|
||||
|
||||
/datum/controller/subsystem/vote/ui_state(mob/user)
|
||||
return always_state
|
||||
return always_state
|
||||
|
||||
/datum/controller/subsystem/vote/ui_status(mob/user, datum/ui_state/state)
|
||||
return UI_INTERACTIVE
|
||||
return UI_INTERACTIVE
|
||||
|
||||
/datum/controller/subsystem/vote/ui_interact(mob/user, datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
/var/datum/controller/subsystem/zcopy/SSzcopy
|
||||
|
||||
/datum/controller/subsystem/zcopy
|
||||
SUBSYSTEM_DEF(zcopy)
|
||||
name = "Z-Copy"
|
||||
wait = 1
|
||||
init_order = SS_INIT_ZCOPY
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
/datum/record/general/New(var/mob/living/carbon/human/H, var/nid)
|
||||
..()
|
||||
if (!H)
|
||||
var/mob/living/carbon/human/dummy/mannequin/dummy = SSmob.get_mannequin("New record")
|
||||
var/mob/living/carbon/human/dummy/mannequin/dummy = SSmobs.get_mannequin("New record")
|
||||
photo_front = getFlatIcon(dummy, SOUTH)
|
||||
photo_side = getFlatIcon(dummy, WEST)
|
||||
else
|
||||
@@ -235,13 +235,13 @@ var/warrant_uid = 0
|
||||
var/antigen
|
||||
var/spread_type = "Unknown"
|
||||
cmp_field = "name"
|
||||
|
||||
|
||||
//Manifest record
|
||||
/datum/record/shuttle_manifest
|
||||
name = "Unknown"
|
||||
var/shuttle = "Unknown"
|
||||
cmp_field = "name"
|
||||
|
||||
|
||||
var/shuttle_uid = 0
|
||||
/datum/record/shuttle_manifest/New()
|
||||
..()
|
||||
|
||||
@@ -132,13 +132,13 @@
|
||||
if (!H.ckey)
|
||||
return
|
||||
|
||||
SSfeedback.IncrementGroupedStat("ckey_deaths", H.ckey)
|
||||
SSstatistics.IncrementGroupedStat("ckey_deaths", H.ckey)
|
||||
if (gibbed)
|
||||
SSfeedback.IncrementSimpleStat("gibs")
|
||||
SSstatistics.IncrementSimpleStat("gibs")
|
||||
|
||||
/hook/clone/proc/increment_statistics(mob/living/carbon/human/H)
|
||||
. = TRUE
|
||||
if (!H.ckey)
|
||||
return
|
||||
|
||||
SSfeedback.IncrementSimpleStat("clones")
|
||||
SSstatistics.IncrementSimpleStat("clones")
|
||||
|
||||
@@ -1273,7 +1273,7 @@ About the new airlock wires panel:
|
||||
else if(activate && density)
|
||||
open()
|
||||
if (isAI(usr))
|
||||
SSfeedback.IncrementSimpleStat("AI_DOOR")
|
||||
SSstatistics.IncrementSimpleStat("AI_DOOR")
|
||||
else if(!activate && !density)
|
||||
close()
|
||||
|
||||
@@ -1578,7 +1578,7 @@ About the new airlock wires panel:
|
||||
else if(activate && density)
|
||||
open()
|
||||
if (isAI(usr))
|
||||
SSfeedback.IncrementSimpleStat("AI_DOOR")
|
||||
SSstatistics.IncrementSimpleStat("AI_DOOR")
|
||||
else if(!activate && !density)
|
||||
close()
|
||||
if("safeties")
|
||||
|
||||
@@ -223,38 +223,38 @@
|
||||
var/part_blackbox_b = "</span><b> \[[freq_text]\]</b> <span class='message'>" // Tweaked for security headsets -- TLE
|
||||
var/blackbox_msg = "[part_a][data["name"]][part_blackbox_b][quotedmsg][part_c]"
|
||||
|
||||
if(istype(SSfeedback))
|
||||
if(istype(SSstatistics))
|
||||
switch(frequency)
|
||||
if(PUB_FREQ)
|
||||
SSfeedback.msg_common += blackbox_msg
|
||||
SSstatistics.msg_common += blackbox_msg
|
||||
if(SCI_FREQ)
|
||||
SSfeedback.msg_science += blackbox_msg
|
||||
SSstatistics.msg_science += blackbox_msg
|
||||
if(COMM_FREQ)
|
||||
SSfeedback.msg_command += blackbox_msg
|
||||
SSstatistics.msg_command += blackbox_msg
|
||||
if(MED_FREQ)
|
||||
SSfeedback.msg_medical += blackbox_msg
|
||||
SSstatistics.msg_medical += blackbox_msg
|
||||
if(ENG_FREQ)
|
||||
SSfeedback.msg_engineering += blackbox_msg
|
||||
SSstatistics.msg_engineering += blackbox_msg
|
||||
if(SEC_FREQ)
|
||||
SSfeedback.msg_security += blackbox_msg
|
||||
SSstatistics.msg_security += blackbox_msg
|
||||
if(DTH_FREQ)
|
||||
SSfeedback.msg_deathsquad += blackbox_msg
|
||||
SSstatistics.msg_deathsquad += blackbox_msg
|
||||
if(SYND_FREQ)
|
||||
SSfeedback.msg_syndicate += blackbox_msg
|
||||
SSstatistics.msg_syndicate += blackbox_msg
|
||||
if(RAID_FREQ)
|
||||
SSfeedback.msg_raider += blackbox_msg
|
||||
SSstatistics.msg_raider += blackbox_msg
|
||||
if(NINJ_FREQ)
|
||||
SSfeedback.msg_ninja += blackbox_msg
|
||||
SSstatistics.msg_ninja += blackbox_msg
|
||||
if(BLSP_FREQ)
|
||||
SSfeedback.msg_bluespace += blackbox_msg
|
||||
SSstatistics.msg_bluespace += blackbox_msg
|
||||
if(BURG_FREQ)
|
||||
SSfeedback.msg_burglar += blackbox_msg
|
||||
SSstatistics.msg_burglar += blackbox_msg
|
||||
if(SUP_FREQ)
|
||||
SSfeedback.msg_cargo += blackbox_msg
|
||||
SSstatistics.msg_cargo += blackbox_msg
|
||||
if(SRV_FREQ)
|
||||
SSfeedback.msg_service += blackbox_msg
|
||||
SSstatistics.msg_service += blackbox_msg
|
||||
else
|
||||
if(frequency in AWAY_FREQS_ASSIGNED)
|
||||
SSfeedback.msg_ship += blackbox_msg
|
||||
SSstatistics.msg_ship += blackbox_msg
|
||||
else
|
||||
SSfeedback.messages += blackbox_msg
|
||||
SSstatistics.messages += blackbox_msg
|
||||
|
||||
@@ -226,7 +226,7 @@ var/obj/machinery/blackbox_recorder/blackbox
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 100
|
||||
|
||||
// Note: actual logging has been moved to SSfeedback.
|
||||
// Note: actual logging has been moved to SSstatistics.
|
||||
|
||||
//Only one can exist in the world!
|
||||
/obj/machinery/blackbox_recorder/Initialize()
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
icon_state = pick(src.random_icon_states)
|
||||
. = ..()
|
||||
if (!mapload && ROUND_IS_STARTED)
|
||||
SSfeedback.IncrementSimpleStat("messes_made")
|
||||
SSstatistics.IncrementSimpleStat("messes_made")
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T?.is_space())
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user