mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 16:47:13 +01:00
Fix conflicts
This commit is contained in:
@@ -267,7 +267,7 @@
|
||||
|
||||
if(M.config_tag)
|
||||
if(!(M.config_tag in modes)) // ensure each mode is added only once
|
||||
diary << "Adding game mode [M.name] ([M.config_tag]) to configuration."
|
||||
GLOB.diary << "Adding game mode [M.name] ([M.config_tag]) to configuration."
|
||||
modes += M.config_tag
|
||||
mode_names[M.config_tag] = M.name
|
||||
probabilities[M.config_tag] = M.probability
|
||||
@@ -391,7 +391,7 @@
|
||||
if("guest_jobban")
|
||||
config.guest_jobban = 1
|
||||
if("guest_ban")
|
||||
guests_allowed = 0
|
||||
GLOB.guests_allowed = 0
|
||||
if("usewhitelist")
|
||||
config.usewhitelist = TRUE
|
||||
if("allow_metadata")
|
||||
@@ -421,9 +421,9 @@
|
||||
if("automute_on")
|
||||
automute_on = 1
|
||||
if("comms_key")
|
||||
global.comms_key = value
|
||||
GLOB.comms_key = value
|
||||
if(value != "default_pwd" && length(value) > 6) //It's the default value or less than 6 characters long, warn badmins
|
||||
global.comms_allowed = 1
|
||||
GLOB.comms_allowed = 1
|
||||
if("cross_server_address")
|
||||
cross_address = value
|
||||
if(value != "byond:\\address:port")
|
||||
@@ -437,9 +437,9 @@
|
||||
if(value != "byond:\\address:port")
|
||||
allow_panic_bunker_bounce = 1
|
||||
if("medal_hub_address")
|
||||
global.medal_hub = value
|
||||
GLOB.medal_hub = value
|
||||
if("medal_hub_password")
|
||||
global.medal_pass = value
|
||||
GLOB.medal_pass = value
|
||||
if("show_irc_name")
|
||||
config.showircname = 1
|
||||
if("see_own_notes")
|
||||
@@ -480,9 +480,9 @@
|
||||
if("log_runtimes")
|
||||
log_runtimes = TRUE
|
||||
var/newlog = file("data/logs/runtimes/runtime-[time2text(world.realtime, "YYYY-MM-DD")].log")
|
||||
if(runtime_diary != newlog)
|
||||
if(GLOB.runtime_diary != newlog)
|
||||
world.log << "Now logging runtimes to data/logs/runtimes/runtime-[time2text(world.realtime, "YYYY-MM-DD")].log"
|
||||
runtime_diary = newlog
|
||||
GLOB.runtime_diary = newlog
|
||||
if("autoconvert_notes")
|
||||
config.autoconvert_notes = 1
|
||||
if("allow_webclient")
|
||||
@@ -526,7 +526,7 @@
|
||||
if("error_msg_delay")
|
||||
error_msg_delay = text2num(value)
|
||||
else
|
||||
diary << "Unknown setting in configuration: '[name]'"
|
||||
GLOB.diary << "Unknown setting in configuration: '[name]'"
|
||||
|
||||
else if(type == "game_options")
|
||||
switch(name)
|
||||
@@ -589,13 +589,13 @@
|
||||
if(mode_name in config.modes)
|
||||
config.continuous[mode_name] = 1
|
||||
else
|
||||
diary << "Unknown continuous configuration definition: [mode_name]."
|
||||
GLOB.diary << "Unknown continuous configuration definition: [mode_name]."
|
||||
if("midround_antag")
|
||||
var/mode_name = lowertext(value)
|
||||
if(mode_name in config.modes)
|
||||
config.midround_antag[mode_name] = 1
|
||||
else
|
||||
diary << "Unknown midround antagonist configuration definition: [mode_name]."
|
||||
GLOB.diary << "Unknown midround antagonist configuration definition: [mode_name]."
|
||||
if("midround_antag_time_check")
|
||||
config.midround_antag_time_check = text2num(value)
|
||||
if("midround_antag_life_check")
|
||||
@@ -611,9 +611,9 @@
|
||||
if(mode_name in config.modes)
|
||||
config.min_pop[mode_name] = text2num(mode_value)
|
||||
else
|
||||
diary << "Unknown minimum population configuration definition: [mode_name]."
|
||||
GLOB.diary << "Unknown minimum population configuration definition: [mode_name]."
|
||||
else
|
||||
diary << "Incorrect minimum population configuration definition: [mode_name] [mode_value]."
|
||||
GLOB.diary << "Incorrect minimum population configuration definition: [mode_name] [mode_value]."
|
||||
if("max_pop")
|
||||
var/pop_pos = findtext(value, " ")
|
||||
var/mode_name = null
|
||||
@@ -625,9 +625,9 @@
|
||||
if(mode_name in config.modes)
|
||||
config.max_pop[mode_name] = text2num(mode_value)
|
||||
else
|
||||
diary << "Unknown maximum population configuration definition: [mode_name]."
|
||||
GLOB.diary << "Unknown maximum population configuration definition: [mode_name]."
|
||||
else
|
||||
diary << "Incorrect maximum population configuration definition: [mode_name] [mode_value]."
|
||||
GLOB.diary << "Incorrect maximum population configuration definition: [mode_name] [mode_value]."
|
||||
if("shuttle_refuel_delay")
|
||||
config.shuttle_refuel_delay = text2num(value)
|
||||
if("show_game_type_odds")
|
||||
@@ -655,9 +655,9 @@
|
||||
if(prob_name in config.modes)
|
||||
config.probabilities[prob_name] = text2num(prob_value)
|
||||
else
|
||||
diary << "Unknown game mode probability configuration definition: [prob_name]."
|
||||
GLOB.diary << "Unknown game mode probability configuration definition: [prob_name]."
|
||||
else
|
||||
diary << "Incorrect probability configuration definition: [prob_name] [prob_value]."
|
||||
GLOB.diary << "Incorrect probability configuration definition: [prob_name] [prob_value]."
|
||||
|
||||
if("protect_roles_from_antagonist")
|
||||
config.protect_roles_from_antagonist = 1
|
||||
@@ -704,7 +704,7 @@
|
||||
// Value is in the form "LAWID,NUMBER"
|
||||
var/list/L = splittext(value, ",")
|
||||
if(L.len != 2)
|
||||
diary << "Invalid LAW_WEIGHT: " + t
|
||||
GLOB.diary << "Invalid LAW_WEIGHT: " + t
|
||||
continue
|
||||
var/lawid = L[1]
|
||||
var/weight = text2num(L[2])
|
||||
@@ -716,10 +716,10 @@
|
||||
config.mutant_races = 1
|
||||
if("roundstart_races")
|
||||
var/race_id = lowertext(value)
|
||||
for(var/species_id in species_list)
|
||||
for(var/species_id in GLOB.species_list)
|
||||
if(species_id == race_id)
|
||||
roundstart_races += species_list[species_id]
|
||||
roundstart_species[species_id] = species_list[species_id]
|
||||
roundstart_races += GLOB.species_list[species_id]
|
||||
GLOB.roundstart_species[species_id] = GLOB.species_list[species_id]
|
||||
if("join_with_mutant_humans")
|
||||
config.mutant_humans = 1
|
||||
if("assistant_cap")
|
||||
@@ -747,17 +747,17 @@
|
||||
if (BombCap < 4)
|
||||
BombCap = 4
|
||||
|
||||
MAX_EX_DEVESTATION_RANGE = round(BombCap/4)
|
||||
MAX_EX_HEAVY_RANGE = round(BombCap/2)
|
||||
MAX_EX_LIGHT_RANGE = BombCap
|
||||
MAX_EX_FLASH_RANGE = BombCap
|
||||
MAX_EX_FLAME_RANGE = BombCap
|
||||
GLOB.MAX_EX_DEVESTATION_RANGE = round(BombCap/4)
|
||||
GLOB.MAX_EX_HEAVY_RANGE = round(BombCap/2)
|
||||
GLOB.MAX_EX_LIGHT_RANGE = BombCap
|
||||
GLOB.MAX_EX_FLASH_RANGE = BombCap
|
||||
GLOB.MAX_EX_FLAME_RANGE = BombCap
|
||||
if("arrivals_shuttle_dock_window")
|
||||
config.arrivals_shuttle_dock_window = max(PARALLAX_LOOP_TIME, text2num(value))
|
||||
if("arrivals_shuttle_require_safe_latejoin")
|
||||
config.arrivals_shuttle_require_safe_latejoin = text2num(value)
|
||||
else
|
||||
diary << "Unknown setting in configuration: '[name]'"
|
||||
GLOB.diary << "Unknown setting in configuration: '[name]'"
|
||||
|
||||
fps = round(fps)
|
||||
if(fps <= 0)
|
||||
@@ -811,7 +811,7 @@
|
||||
config.maplist[currentmap.map_name] = currentmap
|
||||
currentmap = null
|
||||
else
|
||||
diary << "Unknown command in map vote config: '[command]'"
|
||||
GLOB.diary << "Unknown command in map vote config: '[command]'"
|
||||
|
||||
|
||||
/datum/configuration/proc/loadsql(filename)
|
||||
@@ -843,19 +843,19 @@
|
||||
if("sql_enabled")
|
||||
config.sql_enabled = 1
|
||||
if("address")
|
||||
sqladdress = value
|
||||
GLOB.sqladdress = value
|
||||
if("port")
|
||||
sqlport = value
|
||||
GLOB.sqlport = value
|
||||
if("feedback_database")
|
||||
sqlfdbkdb = value
|
||||
GLOB.sqlfdbkdb = value
|
||||
if("feedback_login")
|
||||
sqlfdbklogin = value
|
||||
GLOB.sqlfdbklogin = value
|
||||
if("feedback_password")
|
||||
sqlfdbkpass = value
|
||||
GLOB.sqlfdbkpass = value
|
||||
if("feedback_tableprefix")
|
||||
sqlfdbktableprefix = value
|
||||
GLOB.sqlfdbktableprefix = value
|
||||
else
|
||||
diary << "Unknown setting in configuration: '[name]'"
|
||||
GLOB.diary << "Unknown setting in configuration: '[name]'"
|
||||
|
||||
/datum/configuration/proc/pick_mode(mode_name)
|
||||
// I wish I didn't have to instance the game modes in order to look up
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Pretty much pokes the MC to make sure it's still alive.
|
||||
**/
|
||||
|
||||
var/datum/controller/failsafe/Failsafe
|
||||
GLOBAL_REAL(Failsafe, /datum/controller/failsafe)
|
||||
|
||||
/datum/controller/failsafe // This thing pretty much just keeps poking the master controller
|
||||
name = "Failsafe"
|
||||
@@ -56,23 +56,23 @@ var/datum/controller/failsafe/Failsafe
|
||||
if(4,5)
|
||||
--defcon
|
||||
if(3)
|
||||
to_chat(admins, "<span class='adminnotice'>Notice: DEFCON [defcon_pretty()]. The Master Controller has not fired in the last [(5-defcon) * processing_interval] ticks.")
|
||||
to_chat(GLOB.admins, "<span class='adminnotice'>Notice: DEFCON [defcon_pretty()]. The Master Controller has not fired in the last [(5-defcon) * processing_interval] ticks.")
|
||||
--defcon
|
||||
if(2)
|
||||
to_chat(admins, "<span class='boldannounce'>Warning: DEFCON [defcon_pretty()]. The Master Controller has not fired in the last [(5-defcon) * processing_interval] ticks. Automatic restart in [processing_interval] ticks.</span>")
|
||||
to_chat(GLOB.admins, "<span class='boldannounce'>Warning: DEFCON [defcon_pretty()]. The Master Controller has not fired in the last [(5-defcon) * processing_interval] ticks. Automatic restart in [processing_interval] ticks.</span>")
|
||||
--defcon
|
||||
if(1)
|
||||
|
||||
to_chat(admins, "<span class='boldannounce'>Warning: DEFCON [defcon_pretty()]. The Master Controller has still not fired within the last [(5-defcon) * processing_interval] ticks. Killing and restarting...</span>")
|
||||
to_chat(GLOB.admins, "<span class='boldannounce'>Warning: DEFCON [defcon_pretty()]. The Master Controller has still not fired within the last [(5-defcon) * processing_interval] ticks. Killing and restarting...</span>")
|
||||
--defcon
|
||||
var/rtn = Recreate_MC()
|
||||
if(rtn > 0)
|
||||
defcon = 4
|
||||
master_iteration = 0
|
||||
to_chat(admins, "<span class='adminnotice'>MC restarted successfully</span>")
|
||||
to_chat(GLOB.admins, "<span class='adminnotice'>MC restarted successfully</span>")
|
||||
else if(rtn < 0)
|
||||
log_game("FailSafe: Could not restart MC, runtime encountered. Entering defcon 0")
|
||||
to_chat(admins, "<span class='boldannounce'>ERROR: DEFCON [defcon_pretty()]. Could not restart MC, runtime encountered. I will silently keep retrying.</span>")
|
||||
to_chat(GLOB.admins, "<span class='boldannounce'>ERROR: DEFCON [defcon_pretty()]. Could not restart MC, runtime encountered. I will silently keep retrying.</span>")
|
||||
//if the return number was 0, it just means the mc was restarted too recently, and it just needs some time before we try again
|
||||
//no need to handle that specially when defcon 0 can handle it
|
||||
if(0) //DEFCON 0! (mc failed to restart)
|
||||
@@ -80,7 +80,7 @@ var/datum/controller/failsafe/Failsafe
|
||||
if(rtn > 0)
|
||||
defcon = 4
|
||||
master_iteration = 0
|
||||
to_chat(admins, "<span class='adminnotice'>MC restarted successfully</span>")
|
||||
to_chat(GLOB.admins, "<span class='adminnotice'>MC restarted successfully</span>")
|
||||
else
|
||||
defcon = min(defcon + 1,5)
|
||||
master_iteration = Master.iteration
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
GLOBAL_REAL(GLOB, /datum/controller/global_vars)
|
||||
|
||||
/datum/controller/global_vars
|
||||
name = "Global Variables"
|
||||
|
||||
var/list/gvars_datum_protected_varlist
|
||||
var/list/gvars_datum_in_built_vars
|
||||
var/list/gvars_datum_init_order
|
||||
|
||||
/datum/controller/global_vars/New()
|
||||
if(GLOB)
|
||||
CRASH("Multiple instances of global variable controller created")
|
||||
GLOB = src
|
||||
|
||||
var/datum/controller/exclude_these = new
|
||||
gvars_datum_in_built_vars = exclude_these.vars + list("gvars_datum_protected_varlist", "gvars_datum_in_built_vars", "gvars_datum_init_order")
|
||||
qdel(exclude_these)
|
||||
|
||||
Initialize()
|
||||
|
||||
/datum/controller/global_vars/Destroy(force)
|
||||
if(!force)
|
||||
return QDEL_HINT_LETMELIVE
|
||||
|
||||
stack_trace("Some fucker deleted the global holder!")
|
||||
|
||||
QDEL_NULL(statclick)
|
||||
gvars_datum_protected_varlist.Cut()
|
||||
gvars_datum_in_built_vars.Cut()
|
||||
|
||||
GLOB = null
|
||||
|
||||
return ..()
|
||||
|
||||
/datum/controller/global_vars/stat_entry()
|
||||
if(!statclick)
|
||||
statclick = new/obj/effect/statclick/debug(null, "Initializing...", src)
|
||||
|
||||
var/static/num_globals
|
||||
if(!num_globals)
|
||||
num_globals = vars.len - gvars_datum_in_built_vars.len
|
||||
stat("Globals:", statclick.update("Count: [num_globals]"))
|
||||
|
||||
/datum/controller/global_vars/vv_get_var(var_name)
|
||||
if(var_name in gvars_datum_protected_varlist)
|
||||
return debug_variable(var_name, "SECRET", 0, src)
|
||||
return ..()
|
||||
|
||||
/datum/controller/global_vars/vv_edit_var(var_name, var_value)
|
||||
if((var_name in gvars_datum_protected_varlist))
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/datum/controller/global_vars/Initialize()
|
||||
gvars_datum_init_order = list()
|
||||
gvars_datum_protected_varlist = list("gvars_datum_protected_varlist")
|
||||
for(var/I in vars - gvars_datum_in_built_vars)
|
||||
var/start_tick = world.time
|
||||
call(src, "InitGlobal[I]")()
|
||||
var/end_tick = world.time
|
||||
if(end_tick - start_tick)
|
||||
warning("Global [I] slept during initialization!")
|
||||
+26
-20
@@ -6,15 +6,18 @@
|
||||
* Odds are, there is a reason
|
||||
*
|
||||
**/
|
||||
var/datum/controller/master/Master = new()
|
||||
var/MC_restart_clear = 0
|
||||
var/MC_restart_timeout = 0
|
||||
var/MC_restart_count = 0
|
||||
|
||||
//This is the ABSOLUTE ONLY THING that should init globally like this
|
||||
GLOBAL_REAL(Master, /datum/controller/master) = new
|
||||
|
||||
GLOBAL_VAR_INIT(MC_restart_clear, 0)
|
||||
GLOBAL_VAR_INIT(MC_restart_timeout, 0)
|
||||
GLOBAL_VAR_INIT(MC_restart_count, 0)
|
||||
|
||||
|
||||
//current tick limit, assigned by the queue controller before running a subsystem.
|
||||
//used by check_tick as well so that the procs subsystems call can obey that SS's tick limits
|
||||
var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
GLOBAL_VAR_INIT(CURRENT_TICKLIMIT, TICK_LIMIT_RUNNING)
|
||||
|
||||
/datum/controller/master
|
||||
name = "Master"
|
||||
@@ -62,6 +65,9 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
else
|
||||
init_subtypes(/datum/controller/subsystem, subsystems)
|
||||
Master = src
|
||||
|
||||
if(!GLOB)
|
||||
new /datum/controller/global_vars
|
||||
|
||||
/datum/controller/master/Destroy()
|
||||
..()
|
||||
@@ -77,14 +83,14 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
// -1 if we encountered a runtime trying to recreate it
|
||||
/proc/Recreate_MC()
|
||||
. = -1 //so if we runtime, things know we failed
|
||||
if (world.time < MC_restart_timeout)
|
||||
if (world.time < GLOB.MC_restart_timeout)
|
||||
return 0
|
||||
if (world.time < MC_restart_clear)
|
||||
MC_restart_count *= 0.5
|
||||
if (world.time < GLOB.MC_restart_clear)
|
||||
GLOB.MC_restart_count *= 0.5
|
||||
|
||||
var/delay = 50 * ++MC_restart_count
|
||||
MC_restart_timeout = world.time + delay
|
||||
MC_restart_clear = world.time + (delay * 2)
|
||||
var/delay = 50 * ++GLOB.MC_restart_count
|
||||
GLOB.MC_restart_timeout = world.time + delay
|
||||
GLOB.MC_restart_clear = world.time + (delay * 2)
|
||||
Master.processing = 0 //stop ticking this one
|
||||
try
|
||||
new/datum/controller/master()
|
||||
@@ -120,7 +126,7 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
msg = "The [BadBoy.name] subsystem seems to be destabilizing the MC and will be offlined."
|
||||
BadBoy.flags |= SS_NO_FIRE
|
||||
if(msg)
|
||||
to_chat(admins, "<span class='boldannounce'>[msg]</span>")
|
||||
to_chat(GLOB.admins, "<span class='boldannounce'>[msg]</span>")
|
||||
log_world(msg)
|
||||
|
||||
if (istype(Master.subsystems))
|
||||
@@ -151,13 +157,13 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
|
||||
var/start_timeofday = REALTIMEOFDAY
|
||||
// Initialize subsystems.
|
||||
CURRENT_TICKLIMIT = config.tick_limit_mc_init
|
||||
GLOB.CURRENT_TICKLIMIT = config.tick_limit_mc_init
|
||||
for (var/datum/controller/subsystem/SS in subsystems)
|
||||
if (SS.flags & SS_NO_INIT)
|
||||
continue
|
||||
SS.Initialize(REALTIMEOFDAY)
|
||||
CHECK_TICK
|
||||
CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
GLOB.CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
var/time = (REALTIMEOFDAY - start_timeofday) / 10
|
||||
|
||||
var/msg = "Initializations complete within [time] second[time == 1 ? "" : "s"]!"
|
||||
@@ -260,7 +266,7 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
while (1)
|
||||
tickdrift = max(0, MC_AVERAGE_FAST(tickdrift, (((REALTIMEOFDAY - init_timeofday) - (world.time - init_time)) / world.tick_lag)))
|
||||
if (processing <= 0)
|
||||
CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
GLOB.CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
sleep(10)
|
||||
continue
|
||||
|
||||
@@ -268,7 +274,7 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
// because sleeps are processed in the order received, so longer sleeps are more likely to run first
|
||||
if (world.tick_usage > TICK_LIMIT_MC)
|
||||
sleep_delta += 2
|
||||
CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING - (TICK_LIMIT_RUNNING * 0.5)
|
||||
GLOB.CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING - (TICK_LIMIT_RUNNING * 0.5)
|
||||
sleep(world.tick_lag * (processing + sleep_delta))
|
||||
continue
|
||||
|
||||
@@ -297,7 +303,7 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
if (!error_level)
|
||||
iteration++
|
||||
error_level++
|
||||
CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
GLOB.CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
sleep(10)
|
||||
continue
|
||||
|
||||
@@ -309,7 +315,7 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
if (!error_level)
|
||||
iteration++
|
||||
error_level++
|
||||
CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
GLOB.CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
sleep(10)
|
||||
continue
|
||||
error_level--
|
||||
@@ -320,7 +326,7 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
iteration++
|
||||
last_run = world.time
|
||||
src.sleep_delta = MC_AVERAGE_FAST(src.sleep_delta, sleep_delta)
|
||||
CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING - (TICK_LIMIT_RUNNING * 0.25) //reserve the tail 1/4 of the next tick for the mc.
|
||||
GLOB.CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING - (TICK_LIMIT_RUNNING * 0.25) //reserve the tail 1/4 of the next tick for the mc.
|
||||
sleep(world.tick_lag * (processing + sleep_delta))
|
||||
|
||||
|
||||
@@ -409,7 +415,7 @@ var/CURRENT_TICKLIMIT = TICK_LIMIT_RUNNING
|
||||
else
|
||||
tick_precentage = tick_remaining
|
||||
|
||||
CURRENT_TICKLIMIT = world.tick_usage + tick_precentage
|
||||
GLOB.CURRENT_TICKLIMIT = world.tick_usage + tick_precentage
|
||||
|
||||
if (!(queue_node_flags & SS_TICKER))
|
||||
ran_non_ticker = TRUE
|
||||
|
||||
@@ -28,7 +28,7 @@ SUBSYSTEM_DEF(acid)
|
||||
|
||||
if(O.acid_level && O.acid_processing())
|
||||
else
|
||||
O.cut_overlay(acid_overlay, TRUE)
|
||||
O.cut_overlay(GLOB.acid_overlay, TRUE)
|
||||
processing -= O
|
||||
|
||||
if (MC_TICK_CHECK)
|
||||
|
||||
@@ -299,7 +299,7 @@ SUBSYSTEM_DEF(air)
|
||||
var/timer = world.timeofday
|
||||
warning("There are [starting_ats] active turfs at roundstart, this is a mapping error caused by a difference of the air between the adjacent turfs. You can see its coordinates using \"Mapping -> Show roundstart AT list\" verb (debug verbs required)")
|
||||
for(var/turf/T in active_turfs)
|
||||
active_turfs_startlist += text("[T.x], [T.y], [T.z]\n")
|
||||
GLOB.active_turfs_startlist += text("[T.x], [T.y], [T.z]\n")
|
||||
|
||||
//now lets clear out these active turfs
|
||||
var/list/turfs_to_check = active_turfs.Copy()
|
||||
|
||||
@@ -9,6 +9,6 @@ SUBSYSTEM_DEF(assets)
|
||||
var/datum/asset/A = new type()
|
||||
A.register()
|
||||
|
||||
for(var/client/C in clients)
|
||||
for(var/client/C in GLOB.clients)
|
||||
addtimer(CALLBACK(GLOBAL_PROC, .proc/getFilesSlow, C, cache, FALSE), 10)
|
||||
..()
|
||||
@@ -13,7 +13,7 @@ SUBSYSTEM_DEF(atoms)
|
||||
var/list/late_loaders
|
||||
|
||||
/datum/controller/subsystem/atoms/Initialize(timeofday)
|
||||
fire_overlay.appearance_flags = RESET_COLOR
|
||||
GLOB.fire_overlay.appearance_flags = RESET_COLOR
|
||||
setupGenetics() //to set the mutations' place in structural enzymes, so monkey.initialize() knows where to put the monkey mutation.
|
||||
initialized = INITIALIZATION_INNEW_MAPLOAD
|
||||
InitializeAtoms()
|
||||
@@ -103,9 +103,9 @@ SUBSYSTEM_DEF(atoms)
|
||||
continue
|
||||
B.dna_block = pick_n_take(avnums)
|
||||
if(B.quality == POSITIVE)
|
||||
good_mutations |= B
|
||||
GLOB.good_mutations |= B
|
||||
else if(B.quality == NEGATIVE)
|
||||
bad_mutations |= B
|
||||
GLOB.bad_mutations |= B
|
||||
else if(B.quality == MINOR_NEGATIVE)
|
||||
not_good_mutations |= B
|
||||
GLOB.not_good_mutations |= B
|
||||
CHECK_TICK
|
||||
|
||||
@@ -28,7 +28,7 @@ SUBSYSTEM_DEF(augury)
|
||||
biggest_threat = threat
|
||||
|
||||
if(doombringers.len)
|
||||
for(var/i in player_list)
|
||||
for(var/i in GLOB.player_list)
|
||||
if(isobserver(i) && (!(observers_given_action[i])))
|
||||
var/datum/action/innate/augury/A = new
|
||||
A.Grant(i)
|
||||
|
||||
@@ -5,6 +5,21 @@ SUBSYSTEM_DEF(disease)
|
||||
var/list/currentrun = list()
|
||||
var/list/processing = list()
|
||||
|
||||
var/list/diseases
|
||||
var/list/archive_diseases = list()
|
||||
|
||||
var/static/list/list_symptoms = subtypesof(/datum/symptom)
|
||||
|
||||
/datum/controller/subsystem/disease/PreInit()
|
||||
if(!diseases)
|
||||
diseases = subtypesof(/datum/disease)
|
||||
|
||||
/datum/controller/subsystem/disease/Recover()
|
||||
currentrun = SSdisease.currentrun
|
||||
processing = SSdisease.processing
|
||||
diseases = SSdisease.diseases
|
||||
archive_diseases = SSdisease.archive_diseases
|
||||
|
||||
/datum/controller/subsystem/disease/stat_entry(msg)
|
||||
..("P:[processing.len]")
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ SUBSYSTEM_DEF(events)
|
||||
/area/engine/chiefs_office)
|
||||
|
||||
//Need to locate() as it's just a list of paths.
|
||||
return locate(pick((the_station_areas - safe_areas) + danger_areas))
|
||||
return locate(pick((GLOB.the_station_areas - safe_areas) + danger_areas))
|
||||
|
||||
|
||||
//allows a client to trigger an event
|
||||
|
||||
@@ -259,7 +259,7 @@ SUBSYSTEM_DEF(garbage)
|
||||
|
||||
testing("Beginning search for references to a [type].")
|
||||
last_find_references = world.time
|
||||
find_references_in_globals()
|
||||
DoSearchVar(GLOB)
|
||||
for(var/datum/thing in world)
|
||||
DoSearchVar(thing, "WorldRef: [thing]")
|
||||
testing("Completed search for references to a [type].")
|
||||
@@ -309,8 +309,6 @@ SUBSYSTEM_DEF(garbage)
|
||||
|
||||
usr << browse(dat, "window=qdeletedlog")
|
||||
|
||||
#define SearchVar(X) DoSearchVar(X, "Global: " + #X)
|
||||
|
||||
/datum/proc/DoSearchVar(X, Xname)
|
||||
if(usr && usr.client && !usr.client.running_find_references) return
|
||||
if(istype(X, /datum))
|
||||
@@ -341,676 +339,4 @@ SUBSYSTEM_DEF(garbage)
|
||||
#else
|
||||
CHECK_TICK
|
||||
#endif
|
||||
|
||||
//if find_references isn't working for some datum
|
||||
//update this list using tools/DMTreeToGlobalsList
|
||||
/datum/proc/find_references_in_globals()
|
||||
SearchVar(clockwork_construction_value)
|
||||
SearchVar(clockwork_caches)
|
||||
SearchVar(clockwork_daemons)
|
||||
SearchVar(clockwork_generals_invoked)
|
||||
SearchVar(all_clockwork_objects)
|
||||
SearchVar(all_clockwork_mobs)
|
||||
SearchVar(clockwork_component_cache)
|
||||
SearchVar(ratvar_awakens)
|
||||
SearchVar(clockwork_gateway_activated)
|
||||
SearchVar(all_scripture)
|
||||
SearchVar(pointed_types)
|
||||
SearchVar(bloody_footprints_cache)
|
||||
SearchVar(ghost_accs_options)
|
||||
SearchVar(ghost_others_options)
|
||||
SearchVar(special_roles)
|
||||
SearchVar(string_cache)
|
||||
SearchVar(string_filename_current_key)
|
||||
SearchVar(cmp_field)
|
||||
SearchVar(friendly_animal_types)
|
||||
SearchVar(humanoid_icon_cache)
|
||||
SearchVar(freeze_item_icons)
|
||||
SearchVar(E)
|
||||
SearchVar(Sqrt2)
|
||||
SearchVar(sqrtTable)
|
||||
SearchVar(gaussian_next)
|
||||
SearchVar(skin_tones)
|
||||
SearchVar(species_list)
|
||||
SearchVar(roundstart_species)
|
||||
SearchVar(church_name)
|
||||
SearchVar(command_name)
|
||||
SearchVar(religion_name)
|
||||
SearchVar(syndicate_name)
|
||||
SearchVar(syndicate_code_phrase)
|
||||
SearchVar(syndicate_code_response)
|
||||
SearchVar(zero_character_only)
|
||||
SearchVar(hex_characters)
|
||||
SearchVar(alphabet)
|
||||
SearchVar(binary)
|
||||
SearchVar(can_embed_types)
|
||||
SearchVar(WALLITEMS)
|
||||
SearchVar(WALLITEMS_EXTERNAL)
|
||||
SearchVar(WALLITEMS_INVERSE)
|
||||
SearchVar(sortInstance)
|
||||
SearchVar(config)
|
||||
SearchVar(host)
|
||||
SearchVar(join_motd)
|
||||
SearchVar(station_name)
|
||||
SearchVar(game_version)
|
||||
SearchVar(changelog_hash)
|
||||
SearchVar(ooc_allowed)
|
||||
SearchVar(dooc_allowed)
|
||||
SearchVar(abandon_allowed)
|
||||
SearchVar(enter_allowed)
|
||||
SearchVar(guests_allowed)
|
||||
SearchVar(shuttle_frozen)
|
||||
SearchVar(shuttle_left)
|
||||
SearchVar(tinted_weldhelh)
|
||||
SearchVar(Debug)
|
||||
SearchVar(Debug2)
|
||||
SearchVar(comms_key)
|
||||
SearchVar(comms_allowed)
|
||||
SearchVar(medal_hub)
|
||||
SearchVar(medal_pass)
|
||||
SearchVar(medals_enabled)
|
||||
SearchVar(MAX_EX_DEVESTATION_RANGE)
|
||||
SearchVar(MAX_EX_HEAVY_RANGE)
|
||||
SearchVar(MAX_EX_LIGHT_RANGE)
|
||||
SearchVar(MAX_EX_FLASH_RANGE)
|
||||
SearchVar(MAX_EX_FLAME_RANGE)
|
||||
SearchVar(DYN_EX_SCALE)
|
||||
SearchVar(sqladdress)
|
||||
SearchVar(sqlport)
|
||||
SearchVar(sqlfdbkdb)
|
||||
SearchVar(sqlfdbklogin)
|
||||
SearchVar(sqlfdbkpass)
|
||||
SearchVar(sqlfdbktableprefix)
|
||||
SearchVar(dbcon)
|
||||
SearchVar(master_mode)
|
||||
SearchVar(secret_force_mode)
|
||||
SearchVar(wavesecret)
|
||||
SearchVar(start_state)
|
||||
SearchVar(NEARSIGHTBLOCK)
|
||||
SearchVar(EPILEPSYBLOCK)
|
||||
SearchVar(COUGHBLOCK)
|
||||
SearchVar(TOURETTESBLOCK)
|
||||
SearchVar(NERVOUSBLOCK)
|
||||
SearchVar(BLINDBLOCK)
|
||||
SearchVar(DEAFBLOCK)
|
||||
SearchVar(HULKBLOCK)
|
||||
SearchVar(TELEBLOCK)
|
||||
SearchVar(FIREBLOCK)
|
||||
SearchVar(XRAYBLOCK)
|
||||
SearchVar(CLUMSYBLOCK)
|
||||
SearchVar(STRANGEBLOCK)
|
||||
SearchVar(RACEBLOCK)
|
||||
SearchVar(bad_se_blocks)
|
||||
SearchVar(good_se_blocks)
|
||||
SearchVar(op_se_blocks)
|
||||
SearchVar(NULLED_SE)
|
||||
SearchVar(NULLED_UI)
|
||||
SearchVar(global_mutations)
|
||||
SearchVar(bad_mutations)
|
||||
SearchVar(good_mutations)
|
||||
SearchVar(not_good_mutations)
|
||||
SearchVar(diary)
|
||||
SearchVar(diaryofmeanpeople)
|
||||
SearchVar(href_logfile)
|
||||
SearchVar(bombers)
|
||||
SearchVar(admin_log)
|
||||
SearchVar(lastsignalers)
|
||||
SearchVar(lawchanges)
|
||||
SearchVar(combatlog)
|
||||
SearchVar(IClog)
|
||||
SearchVar(OOClog)
|
||||
SearchVar(adminlog)
|
||||
SearchVar(active_turfs_startlist)
|
||||
SearchVar(admin_notice)
|
||||
SearchVar(timezoneOffset)
|
||||
SearchVar(fileaccess_timer)
|
||||
SearchVar(TAB)
|
||||
SearchVar(data_core)
|
||||
SearchVar(CELLRATE)
|
||||
SearchVar(CHARGELEVEL)
|
||||
SearchVar(powernets)
|
||||
SearchVar(hair_styles_list)
|
||||
SearchVar(hair_styles_male_list)
|
||||
SearchVar(hair_styles_female_list)
|
||||
SearchVar(facial_hair_styles_list)
|
||||
SearchVar(facial_hair_styles_male_list)
|
||||
SearchVar(facial_hair_styles_female_list)
|
||||
SearchVar(underwear_list)
|
||||
SearchVar(underwear_m)
|
||||
SearchVar(underwear_f)
|
||||
SearchVar(undershirt_list)
|
||||
SearchVar(undershirt_m)
|
||||
SearchVar(undershirt_f)
|
||||
SearchVar(socks_list)
|
||||
SearchVar(body_markings_list)
|
||||
SearchVar(tails_list_lizard)
|
||||
SearchVar(animated_tails_list_lizard)
|
||||
SearchVar(snouts_list)
|
||||
SearchVar(horns_list)
|
||||
SearchVar(frills_list)
|
||||
SearchVar(spines_list)
|
||||
SearchVar(legs_list)
|
||||
SearchVar(animated_spines_list)
|
||||
SearchVar(tails_list_human)
|
||||
SearchVar(animated_tails_list_human)
|
||||
SearchVar(ears_list)
|
||||
SearchVar(wings_list)
|
||||
SearchVar(wings_open_list)
|
||||
SearchVar(r_wings_list)
|
||||
SearchVar(ghost_forms_with_directions_list)
|
||||
SearchVar(ghost_forms_with_accessories_list)
|
||||
SearchVar(security_depts_prefs)
|
||||
SearchVar(backbaglist)
|
||||
SearchVar(uplink_spawn_loc_list)
|
||||
SearchVar(female_clothing_icons)
|
||||
SearchVar(hit_appends)
|
||||
SearchVar(scarySounds)
|
||||
SearchVar(TAGGERLOCATIONS)
|
||||
SearchVar(guitar_notes)
|
||||
SearchVar(station_prefixes)
|
||||
SearchVar(station_names)
|
||||
SearchVar(station_suffixes)
|
||||
SearchVar(greek_letters)
|
||||
SearchVar(phonetic_alphabet)
|
||||
SearchVar(numbers_as_words)
|
||||
SearchVar(station_numerals)
|
||||
SearchVar(cardinal)
|
||||
SearchVar(alldirs)
|
||||
SearchVar(diagonals)
|
||||
SearchVar(accessable_z_levels)
|
||||
SearchVar(global_map)
|
||||
SearchVar(landmarks_list)
|
||||
SearchVar(start_landmarks_list)
|
||||
SearchVar(department_security_spawns)
|
||||
SearchVar(generic_event_spawns)
|
||||
SearchVar(wizardstart)
|
||||
SearchVar(newplayer_start)
|
||||
SearchVar(latejoin)
|
||||
SearchVar(prisonwarp)
|
||||
SearchVar(holdingfacility)
|
||||
SearchVar(xeno_spawn)
|
||||
SearchVar(tdome1)
|
||||
SearchVar(tdome2)
|
||||
SearchVar(tdomeobserve)
|
||||
SearchVar(tdomeadmin)
|
||||
SearchVar(prisonwarped)
|
||||
SearchVar(blobstart)
|
||||
SearchVar(secequipment)
|
||||
SearchVar(deathsquadspawn)
|
||||
SearchVar(emergencyresponseteamspawn)
|
||||
SearchVar(ruin_landmarks)
|
||||
SearchVar(awaydestinations)
|
||||
SearchVar(sortedAreas)
|
||||
SearchVar(transit_markers)
|
||||
SearchVar(clients)
|
||||
SearchVar(admins)
|
||||
SearchVar(deadmins)
|
||||
SearchVar(directory)
|
||||
SearchVar(stealthminID)
|
||||
SearchVar(player_list)
|
||||
SearchVar(mob_list)
|
||||
SearchVar(living_mob_list)
|
||||
SearchVar(dead_mob_list)
|
||||
SearchVar(joined_player_list)
|
||||
SearchVar(silicon_mobs)
|
||||
SearchVar(pai_list)
|
||||
SearchVar(ai_names)
|
||||
SearchVar(wizard_first)
|
||||
SearchVar(wizard_second)
|
||||
SearchVar(ninja_titles)
|
||||
SearchVar(ninja_names)
|
||||
SearchVar(commando_names)
|
||||
SearchVar(first_names_male)
|
||||
SearchVar(first_names_female)
|
||||
SearchVar(last_names)
|
||||
SearchVar(lizard_names_male)
|
||||
SearchVar(lizard_names_female)
|
||||
SearchVar(clown_names)
|
||||
SearchVar(mime_names)
|
||||
SearchVar(carp_names)
|
||||
SearchVar(golem_names)
|
||||
SearchVar(plasmaman_names)
|
||||
SearchVar(verbs)
|
||||
SearchVar(adjectives)
|
||||
SearchVar(cable_list)
|
||||
SearchVar(portals)
|
||||
SearchVar(airlocks)
|
||||
SearchVar(mechas_list)
|
||||
SearchVar(shuttle_caller_list)
|
||||
SearchVar(machines)
|
||||
SearchVar(syndicate_shuttle_boards)
|
||||
SearchVar(navbeacons)
|
||||
SearchVar(teleportbeacons)
|
||||
SearchVar(deliverybeacons)
|
||||
SearchVar(deliverybeacontags)
|
||||
SearchVar(nuke_list)
|
||||
SearchVar(alarmdisplay)
|
||||
SearchVar(chemical_reactions_list)
|
||||
SearchVar(chemical_reagents_list)
|
||||
SearchVar(materials_list)
|
||||
SearchVar(tech_list)
|
||||
SearchVar(surgeries_list)
|
||||
SearchVar(crafting_recipes)
|
||||
SearchVar(rcd_list)
|
||||
SearchVar(apcs_list)
|
||||
SearchVar(tracked_implants)
|
||||
SearchVar(tracked_chem_implants)
|
||||
SearchVar(poi_list)
|
||||
SearchVar(pinpointer_list)
|
||||
SearchVar(zombie_infection_list)
|
||||
SearchVar(meteor_list)
|
||||
SearchVar(poll_ignore)
|
||||
SearchVar(typecache_mob)
|
||||
SearchVar(tk_maxrange)
|
||||
SearchVar(Failsafe)
|
||||
SearchVar(Master)
|
||||
SearchVar(MC_restart_clear)
|
||||
SearchVar(MC_restart_timeout)
|
||||
SearchVar(MC_restart_count)
|
||||
SearchVar(CURRENT_TICKLIMIT)
|
||||
SearchVar(SSacid)
|
||||
SearchVar(SSair)
|
||||
SearchVar(SSassets)
|
||||
SearchVar(SSaugury)
|
||||
SearchVar(SScommunications)
|
||||
SearchVar(SSdisease)
|
||||
SearchVar(SSevents)
|
||||
SearchVar(SSfire_burning)
|
||||
SearchVar(SSgarbage)
|
||||
SearchVar(SSicon_smooth)
|
||||
SearchVar(SSipintel)
|
||||
SearchVar(SSjob)
|
||||
SearchVar(SSlighting)
|
||||
SearchVar(SSmachines)
|
||||
SearchVar(SSmapping)
|
||||
SearchVar(SSminimap)
|
||||
SearchVar(SSmobs)
|
||||
SearchVar(SSnpcpool)
|
||||
SearchVar(SSorbit)
|
||||
SearchVar(SSpai)
|
||||
SearchVar(pai_card_list)
|
||||
SearchVar(SSparallax)
|
||||
SearchVar(SSpersistence)
|
||||
SearchVar(SSping)
|
||||
SearchVar(SSradio)
|
||||
SearchVar(SSreligion)
|
||||
SearchVar(SSserver_maint)
|
||||
SearchVar(SSshuttle)
|
||||
SearchVar(SSspacedrift)
|
||||
SearchVar(SSsqueak)
|
||||
SearchVar(SSstickyban)
|
||||
SearchVar(SSsun)
|
||||
SearchVar(SStgui)
|
||||
SearchVar(SSthrowing)
|
||||
SearchVar(round_start_time)
|
||||
SearchVar(SSticker)
|
||||
SearchVar(SStimer)
|
||||
SearchVar(SSvote)
|
||||
SearchVar(SSweather)
|
||||
SearchVar(SSfastprocess)
|
||||
SearchVar(SSflightpacks)
|
||||
SearchVar(SSobj)
|
||||
SearchVar(SSprocessing)
|
||||
SearchVar(record_id_num)
|
||||
SearchVar(emote_list)
|
||||
SearchVar(huds)
|
||||
SearchVar(diseases)
|
||||
SearchVar(archive_diseases)
|
||||
SearchVar(advance_cures)
|
||||
SearchVar(list_symptoms)
|
||||
SearchVar(dictionary_symptoms)
|
||||
SearchVar(SYMPTOM_ACTIVATION_PROB)
|
||||
SearchVar(revdata)
|
||||
SearchVar(all_status_effects)
|
||||
SearchVar(wire_colors)
|
||||
SearchVar(wire_color_directory)
|
||||
SearchVar(wire_name_directory)
|
||||
SearchVar(blood_splatter_icons)
|
||||
SearchVar(all_radios)
|
||||
SearchVar(radiochannels)
|
||||
SearchVar(radiochannelsreverse)
|
||||
SearchVar(SYND_FREQ)
|
||||
SearchVar(SUPP_FREQ)
|
||||
SearchVar(SERV_FREQ)
|
||||
SearchVar(SCI_FREQ)
|
||||
SearchVar(COMM_FREQ)
|
||||
SearchVar(MED_FREQ)
|
||||
SearchVar(ENG_FREQ)
|
||||
SearchVar(SEC_FREQ)
|
||||
SearchVar(CENTCOM_FREQ)
|
||||
SearchVar(AIPRIV_FREQ)
|
||||
SearchVar(RADIO_TO_AIRALARM)
|
||||
SearchVar(RADIO_FROM_AIRALARM)
|
||||
SearchVar(RADIO_CHAT)
|
||||
SearchVar(RADIO_ATMOSIA)
|
||||
SearchVar(RADIO_NAVBEACONS)
|
||||
SearchVar(RADIO_AIRLOCK)
|
||||
SearchVar(RADIO_MAGNETS)
|
||||
SearchVar(pointers)
|
||||
SearchVar(freqtospan)
|
||||
SearchVar(teleportlocs)
|
||||
SearchVar(the_station_areas)
|
||||
SearchVar(possible_items)
|
||||
SearchVar(possible_items_special)
|
||||
SearchVar(blobs)
|
||||
SearchVar(blob_cores)
|
||||
SearchVar(overminds)
|
||||
SearchVar(blob_nodes)
|
||||
SearchVar(blobs_legit)
|
||||
SearchVar(possible_changeling_IDs)
|
||||
SearchVar(slots)
|
||||
SearchVar(slot2slot)
|
||||
SearchVar(slot2type)
|
||||
SearchVar(hivemind_bank)
|
||||
SearchVar(blacklisted_pylon_turfs)
|
||||
SearchVar(non_revealed_runes)
|
||||
SearchVar(teleport_runes)
|
||||
SearchVar(wall_runes)
|
||||
SearchVar(whiteness)
|
||||
SearchVar(allDevils)
|
||||
SearchVar(lawlorify)
|
||||
SearchVar(gang_name_pool)
|
||||
SearchVar(gang_colors_pool)
|
||||
SearchVar(borers)
|
||||
SearchVar(total_borer_hosts_needed)
|
||||
SearchVar(bomb_set)
|
||||
SearchVar(hsboxspawn)
|
||||
SearchVar(multiverse)
|
||||
SearchVar(announcement_systems)
|
||||
SearchVar(doppler_arrays)
|
||||
SearchVar(HOLOPAD_MODE)
|
||||
SearchVar(holopads)
|
||||
SearchVar(news_network)
|
||||
SearchVar(allCasters)
|
||||
SearchVar(SAFETY_COOLDOWN)
|
||||
SearchVar(req_console_assistance)
|
||||
SearchVar(req_console_supplies)
|
||||
SearchVar(req_console_information)
|
||||
SearchVar(allConsoles)
|
||||
SearchVar(time_last_changed_position)
|
||||
SearchVar(CALL_SHUTTLE_REASON_LENGTH)
|
||||
SearchVar(crewmonitor)
|
||||
SearchVar(possible_uplinker_IDs)
|
||||
SearchVar(airlock_overlays)
|
||||
SearchVar(pipeID2State)
|
||||
SearchVar(telecomms_list)
|
||||
SearchVar(recentmessages)
|
||||
SearchVar(message_delay)
|
||||
SearchVar(year)
|
||||
SearchVar(year_integer)
|
||||
SearchVar(explosionid)
|
||||
SearchVar(fire_overlay)
|
||||
SearchVar(acid_overlay)
|
||||
SearchVar(BUMP_TELEPORTERS)
|
||||
SearchVar(blacklisted_glowshroom_turfs)
|
||||
SearchVar(PDAs)
|
||||
SearchVar(rod_recipes)
|
||||
SearchVar(glass_recipes)
|
||||
SearchVar(reinforced_glass_recipes)
|
||||
SearchVar(human_recipes)
|
||||
SearchVar(corgi_recipes)
|
||||
SearchVar(monkey_recipes)
|
||||
SearchVar(xeno_recipes)
|
||||
SearchVar(sinew_recipes)
|
||||
SearchVar(sandstone_recipes)
|
||||
SearchVar(sandbag_recipes)
|
||||
SearchVar(diamond_recipes)
|
||||
SearchVar(uranium_recipes)
|
||||
SearchVar(plasma_recipes)
|
||||
SearchVar(gold_recipes)
|
||||
SearchVar(silver_recipes)
|
||||
SearchVar(clown_recipes)
|
||||
SearchVar(titanium_recipes)
|
||||
SearchVar(plastitanium_recipes)
|
||||
SearchVar(snow_recipes)
|
||||
SearchVar(abductor_recipes)
|
||||
SearchVar(metal_recipes)
|
||||
SearchVar(plasteel_recipes)
|
||||
SearchVar(wood_recipes)
|
||||
SearchVar(cloth_recipes)
|
||||
SearchVar(cardboard_recipes)
|
||||
SearchVar(runed_metal_recipes)
|
||||
SearchVar(brass_recipes)
|
||||
SearchVar(disposalpipeID2State)
|
||||
SearchVar(RPD_recipes)
|
||||
SearchVar(biblenames)
|
||||
SearchVar(biblestates)
|
||||
SearchVar(bibleitemstates)
|
||||
SearchVar(globalBlankCanvases)
|
||||
SearchVar(crematoriums)
|
||||
SearchVar(icons_to_ignore_at_floor_init)
|
||||
SearchVar(js_byjax)
|
||||
SearchVar(js_dropdowns)
|
||||
SearchVar(BSACooldown)
|
||||
SearchVar(admin_ranks)
|
||||
SearchVar(admin_verbs_default)
|
||||
SearchVar(admin_verbs_admin)
|
||||
SearchVar(admin_verbs_ban)
|
||||
SearchVar(admin_verbs_sounds)
|
||||
SearchVar(admin_verbs_fun)
|
||||
SearchVar(admin_verbs_spawn)
|
||||
SearchVar(admin_verbs_server)
|
||||
SearchVar(admin_verbs_debug)
|
||||
SearchVar(admin_verbs_possess)
|
||||
SearchVar(admin_verbs_permissions)
|
||||
SearchVar(admin_verbs_rejuv)
|
||||
SearchVar(admin_verbs_hideable)
|
||||
SearchVar(create_object_html)
|
||||
SearchVar(create_object_forms)
|
||||
SearchVar(admin_datums)
|
||||
SearchVar(CMinutes)
|
||||
SearchVar(Banlist)
|
||||
SearchVar(whitelist)
|
||||
SearchVar(TYPES_SHORTCUTS)
|
||||
SearchVar(intercom_range_display_status)
|
||||
SearchVar(admin_verbs_debug_mapping)
|
||||
SearchVar(say_disabled)
|
||||
SearchVar(VVlocked)
|
||||
SearchVar(VVicon_edit_lock)
|
||||
SearchVar(VVckey_edit)
|
||||
SearchVar(VVpixelmovement)
|
||||
SearchVar(highlander)
|
||||
SearchVar(admin_sound)
|
||||
SearchVar(custom_outfits)
|
||||
SearchVar(meta_gas_info)
|
||||
SearchVar(gaslist_cache)
|
||||
SearchVar(hardcoded_gases)
|
||||
SearchVar(pipenetwarnings)
|
||||
SearchVar(the_gateway)
|
||||
SearchVar(potentialRandomZlevels)
|
||||
SearchVar(use_preloader)
|
||||
SearchVar(_preloader)
|
||||
SearchVar(sc_safecode1)
|
||||
SearchVar(sc_safecode2)
|
||||
SearchVar(sc_safecode3)
|
||||
SearchVar(sc_safecode4)
|
||||
SearchVar(sc_safecode5)
|
||||
SearchVar(exports_list)
|
||||
SearchVar(clientmessages)
|
||||
SearchVar(preferences_datums)
|
||||
SearchVar(ghost_forms)
|
||||
SearchVar(ghost_orbits)
|
||||
SearchVar(normal_ooc_colour)
|
||||
SearchVar(damaged_clothes_icons)
|
||||
SearchVar(emojis)
|
||||
SearchVar(non_fakeattack_weapons)
|
||||
SearchVar(cards_against_space)
|
||||
SearchVar(chem_t1_reagents)
|
||||
SearchVar(chem_t2_reagents)
|
||||
SearchVar(chem_t3_reagents)
|
||||
SearchVar(chem_t4_reagents)
|
||||
SearchVar(ENGSEC)
|
||||
SearchVar(CAPTAIN)
|
||||
SearchVar(HOS)
|
||||
SearchVar(WARDEN)
|
||||
SearchVar(DETECTIVE)
|
||||
SearchVar(OFFICER)
|
||||
SearchVar(CHIEF)
|
||||
SearchVar(ENGINEER)
|
||||
SearchVar(ATMOSTECH)
|
||||
SearchVar(ROBOTICIST)
|
||||
SearchVar(AI)
|
||||
SearchVar(CYBORG)
|
||||
SearchVar(MEDSCI)
|
||||
SearchVar(RD)
|
||||
SearchVar(SCIENTIST)
|
||||
SearchVar(CHEMIST)
|
||||
SearchVar(CMO)
|
||||
SearchVar(DOCTOR)
|
||||
SearchVar(GENETICIST)
|
||||
SearchVar(VIROLOGIST)
|
||||
SearchVar(CIVILIAN)
|
||||
SearchVar(HOP)
|
||||
SearchVar(BARTENDER)
|
||||
SearchVar(BOTANIST)
|
||||
SearchVar(COOK)
|
||||
SearchVar(JANITOR)
|
||||
SearchVar(LIBRARIAN)
|
||||
SearchVar(QUARTERMASTER)
|
||||
SearchVar(CARGOTECH)
|
||||
SearchVar(MINER)
|
||||
SearchVar(LAWYER)
|
||||
SearchVar(CHAPLAIN)
|
||||
SearchVar(CLOWN)
|
||||
SearchVar(MIME)
|
||||
SearchVar(ASSISTANT)
|
||||
SearchVar(assistant_occupations)
|
||||
SearchVar(command_positions)
|
||||
SearchVar(engineering_positions)
|
||||
SearchVar(medical_positions)
|
||||
SearchVar(science_positions)
|
||||
SearchVar(supply_positions)
|
||||
SearchVar(civilian_positions)
|
||||
SearchVar(security_positions)
|
||||
SearchVar(nonhuman_positions)
|
||||
SearchVar(cap_expand)
|
||||
SearchVar(cmo_expand)
|
||||
SearchVar(hos_expand)
|
||||
SearchVar(hop_expand)
|
||||
SearchVar(rd_expand)
|
||||
SearchVar(ce_expand)
|
||||
SearchVar(qm_expand)
|
||||
SearchVar(sec_expand)
|
||||
SearchVar(engi_expand)
|
||||
SearchVar(atmos_expand)
|
||||
SearchVar(doc_expand)
|
||||
SearchVar(mine_expand)
|
||||
SearchVar(chef_expand)
|
||||
SearchVar(borg_expand)
|
||||
SearchVar(available_depts)
|
||||
SearchVar(cachedbooks)
|
||||
SearchVar(total_extraction_beacons)
|
||||
SearchVar(next_mob_id)
|
||||
SearchVar(firstname)
|
||||
SearchVar(ghost_darkness_images)
|
||||
SearchVar(ghost_images_full)
|
||||
SearchVar(ghost_images_default)
|
||||
SearchVar(ghost_images_simple)
|
||||
SearchVar(department_radio_keys)
|
||||
SearchVar(crit_allowed_modes)
|
||||
SearchVar(ventcrawl_machinery)
|
||||
SearchVar(posibrain_notif_cooldown)
|
||||
SearchVar(NO_SLIP_WHEN_WALKING)
|
||||
SearchVar(SLIDE)
|
||||
SearchVar(GALOSHES_DONT_HELP)
|
||||
SearchVar(SLIDE_ICE)
|
||||
SearchVar(limb_icon_cache)
|
||||
SearchVar(default_martial_art)
|
||||
SearchVar(plasmaman_on_fire)
|
||||
SearchVar(ai_list)
|
||||
SearchVar(announcing_vox)
|
||||
SearchVar(VOX_DELAY)
|
||||
SearchVar(vox_sounds)
|
||||
SearchVar(CHUNK_SIZE)
|
||||
SearchVar(cameranet)
|
||||
SearchVar(mulebot_count)
|
||||
SearchVar(MAX_CHICKENS)
|
||||
SearchVar(chicken_count)
|
||||
SearchVar(parasites)
|
||||
SearchVar(protected_objects)
|
||||
SearchVar(AISwarmers)
|
||||
SearchVar(AISwarmersByType)
|
||||
SearchVar(AISwarmerCapsByType)
|
||||
SearchVar(slime_colours)
|
||||
SearchVar(global_modular_computers)
|
||||
SearchVar(file_uid)
|
||||
SearchVar(nttransfer_uid)
|
||||
SearchVar(ntnet_card_uid)
|
||||
SearchVar(ntnet_global)
|
||||
SearchVar(ntnrc_uid)
|
||||
SearchVar(employmentCabinets)
|
||||
SearchVar(cable_coil_recipes)
|
||||
SearchVar(gravity_generators)
|
||||
SearchVar(POWER_IDLE)
|
||||
SearchVar(POWER_UP)
|
||||
SearchVar(POWER_DOWN)
|
||||
SearchVar(GRAV_NEEDS_SCREWDRIVER)
|
||||
SearchVar(GRAV_NEEDS_WELDING)
|
||||
SearchVar(GRAV_NEEDS_PLASTEEL)
|
||||
SearchVar(GRAV_NEEDS_WRENCH)
|
||||
SearchVar(rad_collectors)
|
||||
SearchVar(blacklisted_tesla_types)
|
||||
SearchVar(TOUCH)
|
||||
SearchVar(INGEST)
|
||||
SearchVar(VAPOR)
|
||||
SearchVar(PATCH)
|
||||
SearchVar(INJECT)
|
||||
SearchVar(chemical_mob_spawn_meancritters)
|
||||
SearchVar(chemical_mob_spawn_nicecritters)
|
||||
SearchVar(message_servers)
|
||||
SearchVar(blackbox)
|
||||
SearchVar(keycard_events)
|
||||
SearchVar(blacklisted_cargo_types)
|
||||
SearchVar(z_levels_list)
|
||||
SearchVar(spells)
|
||||
SearchVar(non_simple_animals)
|
||||
SearchVar(FrozenAccounts)
|
||||
SearchVar(stockExchange)
|
||||
SearchVar(stun_words)
|
||||
SearchVar(weaken_words)
|
||||
SearchVar(sleep_words)
|
||||
SearchVar(vomit_words)
|
||||
SearchVar(silence_words)
|
||||
SearchVar(hallucinate_words)
|
||||
SearchVar(wakeup_words)
|
||||
SearchVar(heal_words)
|
||||
SearchVar(hurt_words)
|
||||
SearchVar(bleed_words)
|
||||
SearchVar(burn_words)
|
||||
SearchVar(hot_words)
|
||||
SearchVar(cold_words)
|
||||
SearchVar(repulse_words)
|
||||
SearchVar(attract_words)
|
||||
SearchVar(whoareyou_words)
|
||||
SearchVar(saymyname_words)
|
||||
SearchVar(knockknock_words)
|
||||
SearchVar(statelaws_words)
|
||||
SearchVar(move_words)
|
||||
SearchVar(left_words)
|
||||
SearchVar(right_words)
|
||||
SearchVar(up_words)
|
||||
SearchVar(down_words)
|
||||
SearchVar(walk_words)
|
||||
SearchVar(run_words)
|
||||
SearchVar(helpintent_words)
|
||||
SearchVar(disarmintent_words)
|
||||
SearchVar(grabintent_words)
|
||||
SearchVar(harmintent_words)
|
||||
SearchVar(throwmode_words)
|
||||
SearchVar(flip_words)
|
||||
SearchVar(speak_words)
|
||||
SearchVar(rest_words)
|
||||
SearchVar(getup_words)
|
||||
SearchVar(sit_words)
|
||||
SearchVar(stand_words)
|
||||
SearchVar(dance_words)
|
||||
SearchVar(jump_words)
|
||||
SearchVar(salute_words)
|
||||
SearchVar(deathgasp_words)
|
||||
SearchVar(clap_words)
|
||||
SearchVar(honk_words)
|
||||
SearchVar(multispin_words)
|
||||
SearchVar(GPS_list)
|
||||
SearchVar(uplinks)
|
||||
SearchVar(uplink_items)
|
||||
#endif
|
||||
|
||||
@@ -46,7 +46,7 @@ SUBSYSTEM_DEF(job)
|
||||
|
||||
|
||||
/datum/controller/subsystem/job/proc/Debug(text)
|
||||
if(!Debug2)
|
||||
if(!GLOB.Debug2)
|
||||
return 0
|
||||
job_debug.Add(text)
|
||||
return 1
|
||||
@@ -118,7 +118,7 @@ SUBSYSTEM_DEF(job)
|
||||
if(istype(job, GetJob("Assistant"))) // We don't want to give him assistant, that's boring!
|
||||
continue
|
||||
|
||||
if(job.title in command_positions) //If you want a command position, select it!
|
||||
if(job.title in GLOB.command_positions) //If you want a command position, select it!
|
||||
continue
|
||||
|
||||
if(jobban_isbanned(player, job.title))
|
||||
@@ -144,7 +144,7 @@ SUBSYSTEM_DEF(job)
|
||||
return TRUE
|
||||
|
||||
/datum/controller/subsystem/job/proc/ResetOccupations()
|
||||
for(var/mob/dead/new_player/player in player_list)
|
||||
for(var/mob/dead/new_player/player in GLOB.player_list)
|
||||
if((player) && (player.mind))
|
||||
player.mind.assigned_role = null
|
||||
player.mind.special_role = null
|
||||
@@ -158,7 +158,7 @@ SUBSYSTEM_DEF(job)
|
||||
//This is basically to ensure that there's atleast a few heads in the round
|
||||
/datum/controller/subsystem/job/proc/FillHeadPosition()
|
||||
for(var/level = 1 to 3)
|
||||
for(var/command_position in command_positions)
|
||||
for(var/command_position in GLOB.command_positions)
|
||||
var/datum/job/job = GetJob(command_position)
|
||||
if(!job)
|
||||
continue
|
||||
@@ -176,7 +176,7 @@ SUBSYSTEM_DEF(job)
|
||||
//This proc is called at the start of the level loop of DivideOccupations() and will cause head jobs to be checked before any other jobs of the same level
|
||||
//This is also to ensure we get as many heads as possible
|
||||
/datum/controller/subsystem/job/proc/CheckHeadPositions(level)
|
||||
for(var/command_position in command_positions)
|
||||
for(var/command_position in GLOB.command_positions)
|
||||
var/datum/job/job = GetJob(command_position)
|
||||
if(!job)
|
||||
continue
|
||||
@@ -222,7 +222,7 @@ SUBSYSTEM_DEF(job)
|
||||
A.spawn_positions = 3
|
||||
|
||||
//Get the players who are ready
|
||||
for(var/mob/dead/new_player/player in player_list)
|
||||
for(var/mob/dead/new_player/player in GLOB.player_list)
|
||||
if(player.ready && player.mind && !player.mind.assigned_role)
|
||||
unassigned += player
|
||||
|
||||
@@ -370,7 +370,7 @@ SUBSYSTEM_DEF(job)
|
||||
//If we joined at roundstart we should be positioned at our workstation
|
||||
if(!joined_late)
|
||||
var/obj/S = null
|
||||
for(var/obj/effect/landmark/start/sloc in start_landmarks_list)
|
||||
for(var/obj/effect/landmark/start/sloc in GLOB.start_landmarks_list)
|
||||
if(sloc.name != rank)
|
||||
S = sloc //so we can revert to spawning them on top of eachother if something goes wrong
|
||||
continue
|
||||
@@ -380,7 +380,7 @@ SUBSYSTEM_DEF(job)
|
||||
break
|
||||
if(!S) //if there isn't a spawnpoint send them to latejoin, if there's no latejoin go yell at your mapper
|
||||
log_world("Couldn't find a round start spawn point for [rank]")
|
||||
S = get_turf(pick(latejoin))
|
||||
S = get_turf(pick(GLOB.latejoin))
|
||||
if(!S) //final attempt, lets find some area in the arrivals shuttle to spawn them in to.
|
||||
log_world("Couldn't find a round start latejoin spawn point.")
|
||||
for(var/turf/T in get_area_turfs(/area/shuttle/arrival))
|
||||
@@ -439,10 +439,10 @@ SUBSYSTEM_DEF(job)
|
||||
if(equip_needed < 0) // -1: infinite available slots
|
||||
equip_needed = 12
|
||||
for(var/i=equip_needed-5, i>0, i--)
|
||||
if(secequipment.len)
|
||||
var/spawnloc = secequipment[1]
|
||||
if(GLOB.secequipment.len)
|
||||
var/spawnloc = GLOB.secequipment[1]
|
||||
new /obj/structure/closet/secure_closet/security/sec(spawnloc)
|
||||
secequipment -= spawnloc
|
||||
GLOB.secequipment -= spawnloc
|
||||
else //We ran out of spare locker spawns!
|
||||
break
|
||||
|
||||
@@ -465,7 +465,7 @@ SUBSYSTEM_DEF(job)
|
||||
var/level4 = 0 //never
|
||||
var/level5 = 0 //banned
|
||||
var/level6 = 0 //account too young
|
||||
for(var/mob/dead/new_player/player in player_list)
|
||||
for(var/mob/dead/new_player/player in GLOB.player_list)
|
||||
if(!(player.ready && player.mind && !player.mind.assigned_role))
|
||||
continue //This player is not ready
|
||||
if(jobban_isbanned(player, job.title))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
var/list/lighting_update_lights = list() // List of lighting sources queued for update.
|
||||
var/list/lighting_update_corners = list() // List of lighting corners queued for update.
|
||||
var/list/lighting_update_objects = list() // List of lighting objects queued for update.
|
||||
GLOBAL_LIST_EMPTY(lighting_update_lights) // List of lighting sources queued for update.
|
||||
GLOBAL_LIST_EMPTY(lighting_update_corners) // List of lighting corners queued for update.
|
||||
GLOBAL_LIST_EMPTY(lighting_update_objects) // List of lighting objects queued for update.
|
||||
|
||||
SUBSYSTEM_DEF(lighting)
|
||||
name = "Lighting"
|
||||
@@ -11,7 +11,7 @@ SUBSYSTEM_DEF(lighting)
|
||||
var/initialized = FALSE
|
||||
|
||||
/datum/controller/subsystem/lighting/stat_entry()
|
||||
..("L:[lighting_update_lights.len]|C:[lighting_update_corners.len]|O:[lighting_update_objects.len]")
|
||||
..("L:[GLOB.lighting_update_lights.len]|C:[GLOB.lighting_update_corners.len]|O:[GLOB.lighting_update_objects.len]")
|
||||
|
||||
|
||||
/datum/controller/subsystem/lighting/Initialize(timeofday)
|
||||
@@ -30,11 +30,11 @@ SUBSYSTEM_DEF(lighting)
|
||||
/datum/controller/subsystem/lighting/fire(resumed, init_tick_checks)
|
||||
var/real_tick_limit
|
||||
if(!init_tick_checks)
|
||||
real_tick_limit = CURRENT_TICKLIMIT
|
||||
CURRENT_TICKLIMIT = ((real_tick_limit - world.tick_usage) / 3) + world.tick_usage
|
||||
real_tick_limit = GLOB.CURRENT_TICKLIMIT
|
||||
GLOB.CURRENT_TICKLIMIT = ((real_tick_limit - world.tick_usage) / 3) + world.tick_usage
|
||||
var/i = 0
|
||||
for (i in 1 to lighting_update_lights.len)
|
||||
var/datum/light_source/L = lighting_update_lights[i]
|
||||
for (i in 1 to GLOB.lighting_update_lights.len)
|
||||
var/datum/light_source/L = GLOB.lighting_update_lights[i]
|
||||
|
||||
if (L.check() || L.destroyed || L.force_update)
|
||||
L.remove_lum()
|
||||
@@ -53,14 +53,14 @@ SUBSYSTEM_DEF(lighting)
|
||||
else if (MC_TICK_CHECK)
|
||||
break
|
||||
if (i)
|
||||
lighting_update_lights.Cut(1, i+1)
|
||||
GLOB.lighting_update_lights.Cut(1, i+1)
|
||||
i = 0
|
||||
|
||||
if(!init_tick_checks)
|
||||
CURRENT_TICKLIMIT = ((real_tick_limit - world.tick_usage)/2)+world.tick_usage
|
||||
GLOB.CURRENT_TICKLIMIT = ((real_tick_limit - world.tick_usage)/2)+world.tick_usage
|
||||
|
||||
for (i in 1 to lighting_update_corners.len)
|
||||
var/datum/lighting_corner/C = lighting_update_corners[i]
|
||||
for (i in 1 to GLOB.lighting_update_corners.len)
|
||||
var/datum/lighting_corner/C = GLOB.lighting_update_corners[i]
|
||||
|
||||
C.update_objects()
|
||||
C.needs_update = FALSE
|
||||
@@ -69,15 +69,15 @@ SUBSYSTEM_DEF(lighting)
|
||||
else if (MC_TICK_CHECK)
|
||||
break
|
||||
if (i)
|
||||
lighting_update_corners.Cut(1, i+1)
|
||||
GLOB.lighting_update_corners.Cut(1, i+1)
|
||||
i = 0
|
||||
|
||||
|
||||
if(!init_tick_checks)
|
||||
CURRENT_TICKLIMIT = real_tick_limit
|
||||
GLOB.CURRENT_TICKLIMIT = real_tick_limit
|
||||
|
||||
for (i in 1 to lighting_update_objects.len)
|
||||
var/atom/movable/lighting_object/O = lighting_update_objects[i]
|
||||
for (i in 1 to GLOB.lighting_update_objects.len)
|
||||
var/atom/movable/lighting_object/O = GLOB.lighting_update_objects[i]
|
||||
|
||||
if (QDELETED(O))
|
||||
continue
|
||||
@@ -89,7 +89,7 @@ SUBSYSTEM_DEF(lighting)
|
||||
else if (MC_TICK_CHECK)
|
||||
break
|
||||
if (i)
|
||||
lighting_update_objects.Cut(1, i+1)
|
||||
GLOB.lighting_update_objects.Cut(1, i+1)
|
||||
|
||||
|
||||
/datum/controller/subsystem/lighting/Recover()
|
||||
|
||||
@@ -16,7 +16,7 @@ SUBSYSTEM_DEF(machines)
|
||||
qdel(PN)
|
||||
powernets.Cut()
|
||||
|
||||
for(var/obj/structure/cable/PC in cable_list)
|
||||
for(var/obj/structure/cable/PC in GLOB.cable_list)
|
||||
if(!PC.powernet)
|
||||
var/datum/powernet/NewPN = new()
|
||||
NewPN.add_cable(PC)
|
||||
|
||||
@@ -133,11 +133,11 @@ SUBSYSTEM_DEF(mapping)
|
||||
#undef INIT_ANNOUNCE
|
||||
|
||||
/datum/controller/subsystem/mapping/proc/maprotate()
|
||||
var/players = clients.len
|
||||
var/players = GLOB.clients.len
|
||||
var/list/mapvotes = list()
|
||||
//count votes
|
||||
if(global.config.allow_map_voting)
|
||||
for (var/client/c in clients)
|
||||
for (var/client/c in GLOB.clients)
|
||||
var/vote = c.prefs.preferred_map
|
||||
if (!vote)
|
||||
if (global.config.defaultmap)
|
||||
|
||||
@@ -7,13 +7,13 @@ SUBSYSTEM_DEF(mobs)
|
||||
var/list/currentrun = list()
|
||||
|
||||
/datum/controller/subsystem/mobs/stat_entry()
|
||||
..("P:[mob_list.len]")
|
||||
..("P:[GLOB.mob_list.len]")
|
||||
|
||||
|
||||
/datum/controller/subsystem/mobs/fire(resumed = 0)
|
||||
var/seconds = wait * 0.1
|
||||
if (!resumed)
|
||||
src.currentrun = mob_list.Copy()
|
||||
src.currentrun = GLOB.mob_list.Copy()
|
||||
|
||||
//cache for sanic speed (lists are references anyways)
|
||||
var/list/currentrun = src.currentrun
|
||||
@@ -24,6 +24,6 @@ SUBSYSTEM_DEF(mobs)
|
||||
if(M)
|
||||
M.Life(seconds)
|
||||
else
|
||||
mob_list.Remove(M)
|
||||
GLOB.mob_list.Remove(M)
|
||||
if (MC_TICK_CHECK)
|
||||
return
|
||||
@@ -1,4 +1,3 @@
|
||||
var/list/obj/item/device/paicard/pai_card_list = list()
|
||||
SUBSYSTEM_DEF(pai)
|
||||
name = "pAI"
|
||||
|
||||
@@ -7,6 +6,7 @@ SUBSYSTEM_DEF(pai)
|
||||
var/list/candidates = list()
|
||||
var/ghost_spam = FALSE
|
||||
var/spam_delay = 100
|
||||
var/list/pai_card_list = list()
|
||||
|
||||
/datum/controller/subsystem/pai/Topic(href, href_list[])
|
||||
if(href_list["download"])
|
||||
@@ -19,7 +19,7 @@ SUBSYSTEM_DEF(pai)
|
||||
return FALSE
|
||||
var/mob/living/silicon/pai/pai = new(card)
|
||||
if(!candidate.name)
|
||||
pai.name = pick(ninja_names)
|
||||
pai.name = pick(GLOB.ninja_names)
|
||||
else
|
||||
pai.name = candidate.name
|
||||
pai.real_name = pai.name
|
||||
@@ -136,7 +136,7 @@ SUBSYSTEM_DEF(pai)
|
||||
/datum/controller/subsystem/pai/proc/check_ready(var/datum/paiCandidate/C)
|
||||
if(!C.ready)
|
||||
return FALSE
|
||||
for(var/mob/dead/observer/O in player_list)
|
||||
for(var/mob/dead/observer/O in GLOB.player_list)
|
||||
if(O.key == C.key)
|
||||
return C
|
||||
return FALSE
|
||||
@@ -144,7 +144,7 @@ SUBSYSTEM_DEF(pai)
|
||||
/datum/controller/subsystem/pai/proc/findPAI(obj/item/device/paicard/p, mob/user)
|
||||
if(!ghost_spam)
|
||||
ghost_spam = TRUE
|
||||
for(var/mob/dead/observer/G in player_list)
|
||||
for(var/mob/dead/observer/G in GLOB.player_list)
|
||||
if(!G.key || !G.client)
|
||||
continue
|
||||
if(!(ROLE_PAI in G.client.prefs.be_special))
|
||||
|
||||
@@ -7,7 +7,7 @@ SUBSYSTEM_DEF(parallax)
|
||||
|
||||
/datum/controller/subsystem/parallax/fire(resumed = 0)
|
||||
if (!resumed)
|
||||
src.currentrun = clients.Copy()
|
||||
src.currentrun = GLOB.clients.Copy()
|
||||
|
||||
//cache for sanic speed (lists are references anyways)
|
||||
var/list/currentrun = src.currentrun
|
||||
|
||||
@@ -66,7 +66,7 @@ SUBSYSTEM_DEF(persistence)
|
||||
return 1
|
||||
|
||||
/datum/controller/subsystem/persistence/proc/LoadPoly()
|
||||
for(var/mob/living/simple_animal/parrot/Poly/P in living_mob_list)
|
||||
for(var/mob/living/simple_animal/parrot/Poly/P in GLOB.living_mob_list)
|
||||
twitterize(P.speech_buffer, "polytalk")
|
||||
break //Who's been duping the bird?!
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ SUBSYSTEM_DEF(ping)
|
||||
|
||||
/datum/controller/subsystem/ping/fire(resumed = FALSE)
|
||||
if (!resumed)
|
||||
src.currentrun = clients.Copy()
|
||||
src.currentrun = GLOB.clients.Copy()
|
||||
|
||||
var/list/currentrun = src.currentrun
|
||||
while (length(currentrun))
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
PROCESSING_SUBSYSTEM_DEF(flightpacks)
|
||||
name = "Flightpack Movement"
|
||||
priority = 30
|
||||
|
||||
@@ -11,7 +11,7 @@ SUBSYSTEM_DEF(server_maint)
|
||||
/datum/controller/subsystem/server_maint/fire()
|
||||
//handle kicking inactive players
|
||||
if(config.kick_inactive > 0)
|
||||
for(var/client/C in clients)
|
||||
for(var/client/C in GLOB.clients)
|
||||
if(C.is_afk(INACTIVITY_KICK))
|
||||
if(!istype(C.mob, /mob/dead))
|
||||
log_access("AFK: [key_name(C)]")
|
||||
|
||||
@@ -71,12 +71,12 @@ SUBSYSTEM_DEF(shuttle)
|
||||
..()
|
||||
|
||||
/datum/controller/subsystem/shuttle/proc/setup_transit_zone()
|
||||
if(transit_markers.len == 0)
|
||||
if(GLOB.transit_markers.len == 0)
|
||||
WARNING("No /obj/effect/landmark/transit placed on the map!")
|
||||
return
|
||||
// transit zone
|
||||
var/turf/A = get_turf(transit_markers[1])
|
||||
var/turf/B = get_turf(transit_markers[2])
|
||||
var/turf/A = get_turf(GLOB.transit_markers[1])
|
||||
var/turf/B = get_turf(GLOB.transit_markers[2])
|
||||
for(var/i in block(A, B))
|
||||
var/turf/T = i
|
||||
T.ChangeTurf(/turf/open/space)
|
||||
@@ -85,11 +85,11 @@ SUBSYSTEM_DEF(shuttle)
|
||||
|
||||
#ifdef HIGHLIGHT_DYNAMIC_TRANSIT
|
||||
/datum/controller/subsystem/shuttle/proc/color_space()
|
||||
if(transit_markers.len == 0)
|
||||
if(GLOB.transit_markers.len == 0)
|
||||
WARNING("No /obj/effect/landmark/transit placed on the map!")
|
||||
return
|
||||
var/turf/A = get_turf(transit_markers[1])
|
||||
var/turf/B = get_turf(transit_markers[2])
|
||||
var/turf/A = get_turf(GLOB.transit_markers[1])
|
||||
var/turf/B = get_turf(GLOB.transit_markers[2])
|
||||
for(var/i in block(A, B))
|
||||
var/turf/T = i
|
||||
// Only dying the "pure" space, not the transit tiles
|
||||
@@ -174,8 +174,8 @@ SUBSYSTEM_DEF(shuttle)
|
||||
return
|
||||
emergency = backup_shuttle
|
||||
|
||||
if(world.time - round_start_time < config.shuttle_refuel_delay)
|
||||
to_chat(user, "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - round_start_time) - config.shuttle_refuel_delay)/600))] minutes before trying again.")
|
||||
if(world.time - SSticker.round_start_time < config.shuttle_refuel_delay)
|
||||
to_chat(user, "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - SSticker.round_start_time) - config.shuttle_refuel_delay)/600))] minutes before trying again.")
|
||||
return
|
||||
|
||||
switch(emergency.mode)
|
||||
@@ -253,7 +253,7 @@ SUBSYSTEM_DEF(shuttle)
|
||||
/datum/controller/subsystem/shuttle/proc/autoEvac()
|
||||
var/callShuttle = 1
|
||||
|
||||
for(var/thing in shuttle_caller_list)
|
||||
for(var/thing in GLOB.shuttle_caller_list)
|
||||
if(isAI(thing))
|
||||
var/mob/living/silicon/ai/AI = thing
|
||||
if(AI.stat || !AI.client)
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
#define ROUND_START_MUSIC_LIST "strings/round_start_sounds.txt"
|
||||
|
||||
var/round_start_time = 0
|
||||
|
||||
SUBSYSTEM_DEF(ticker)
|
||||
name = "Ticker"
|
||||
init_order = 13
|
||||
@@ -58,16 +56,17 @@ SUBSYSTEM_DEF(ticker)
|
||||
|
||||
var/late_join_disabled
|
||||
|
||||
var/round_start_time = 0
|
||||
var/list/round_start_events
|
||||
|
||||
/datum/controller/subsystem/ticker/Initialize(timeofday)
|
||||
var/list/music = file2list(ROUND_START_MUSIC_LIST, "\n")
|
||||
login_music = pick(music)
|
||||
|
||||
if(!syndicate_code_phrase)
|
||||
syndicate_code_phrase = generate_code_phrase()
|
||||
if(!syndicate_code_response)
|
||||
syndicate_code_response = generate_code_phrase()
|
||||
if(!GLOB.syndicate_code_phrase)
|
||||
GLOB.syndicate_code_phrase = generate_code_phrase()
|
||||
if(!GLOB.syndicate_code_response)
|
||||
GLOB.syndicate_code_response = generate_code_phrase()
|
||||
..()
|
||||
start_at = world.time + (config.lobby_countdown * 10)
|
||||
|
||||
@@ -76,7 +75,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
if(GAME_STATE_STARTUP)
|
||||
if(Master.initializations_finished_with_no_players_logged_in)
|
||||
start_at = world.time + (config.lobby_countdown * 10)
|
||||
for(var/client/C in clients)
|
||||
for(var/client/C in GLOB.clients)
|
||||
window_flash(C, ignorepref = TRUE) //let them know lobby has opened up.
|
||||
to_chat(world, "<span class='boldnotice'>Welcome to [station_name()]!</span>")
|
||||
current_state = GAME_STATE_PREGAME
|
||||
@@ -87,7 +86,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
timeLeft = max(0,start_at - world.time)
|
||||
totalPlayers = 0
|
||||
totalPlayersReady = 0
|
||||
for(var/mob/dead/new_player/player in player_list)
|
||||
for(var/mob/dead/new_player/player in GLOB.player_list)
|
||||
++totalPlayers
|
||||
if(player.ready)
|
||||
++totalPlayersReady
|
||||
@@ -130,15 +129,15 @@ SUBSYSTEM_DEF(ticker)
|
||||
var/init_start = world.timeofday
|
||||
//Create and announce mode
|
||||
var/list/datum/game_mode/runnable_modes
|
||||
if(master_mode == "random" || master_mode == "secret")
|
||||
if(GLOB.master_mode == "random" || GLOB.master_mode == "secret")
|
||||
runnable_modes = config.get_runnable_modes()
|
||||
|
||||
if(master_mode == "secret")
|
||||
if(GLOB.master_mode == "secret")
|
||||
hide_mode = 1
|
||||
if(secret_force_mode != "secret")
|
||||
var/datum/game_mode/smode = config.pick_mode(secret_force_mode)
|
||||
if(GLOB.secret_force_mode != "secret")
|
||||
var/datum/game_mode/smode = config.pick_mode(GLOB.secret_force_mode)
|
||||
if(!smode.can_start())
|
||||
message_admins("\blue Unable to force secret [secret_force_mode]. [smode.required_players] players and [smode.required_enemies] eligible antagonists needed.")
|
||||
message_admins("\blue Unable to force secret [GLOB.secret_force_mode]. [smode.required_players] players and [smode.required_enemies] eligible antagonists needed.")
|
||||
else
|
||||
mode = smode
|
||||
|
||||
@@ -149,7 +148,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
mode = pickweight(runnable_modes)
|
||||
|
||||
else
|
||||
mode = config.pick_mode(master_mode)
|
||||
mode = config.pick_mode(GLOB.master_mode)
|
||||
if(!mode.can_start())
|
||||
to_chat(world, "<B>Unable to start [mode.name].</B> Not enough players, [mode.required_players] players and [mode.required_enemies] eligible antagonists needed. Reverting to pre-game lobby.")
|
||||
qdel(mode)
|
||||
@@ -165,11 +164,11 @@ SUBSYSTEM_DEF(ticker)
|
||||
SSjob.DivideOccupations() //Distribute jobs
|
||||
CHECK_TICK
|
||||
|
||||
if(!Debug2)
|
||||
if(!GLOB.Debug2)
|
||||
if(!can_continue)
|
||||
qdel(mode)
|
||||
mode = null
|
||||
to_chat(world, "<B>Error setting up [master_mode].</B> Reverting to pre-game lobby.")
|
||||
to_chat(world, "<B>Error setting up [GLOB.master_mode].</B> Reverting to pre-game lobby.")
|
||||
SSjob.ResetOccupations()
|
||||
return 0
|
||||
else
|
||||
@@ -189,14 +188,14 @@ SUBSYSTEM_DEF(ticker)
|
||||
toggle_ooc(0) // Turn it off
|
||||
|
||||
CHECK_TICK
|
||||
start_landmarks_list = shuffle(start_landmarks_list) //Shuffle the order of spawn points so they dont always predictably spawn bottom-up and right-to-left
|
||||
GLOB.start_landmarks_list = shuffle(GLOB.start_landmarks_list) //Shuffle the order of spawn points so they dont always predictably spawn bottom-up and right-to-left
|
||||
create_characters() //Create player characters
|
||||
collect_minds()
|
||||
equip_characters()
|
||||
|
||||
SSoverlays.Flush() //Flush the majority of the shit
|
||||
|
||||
data_core.manifest()
|
||||
GLOB.data_core.manifest()
|
||||
|
||||
transfer_characters() //transfer keys to the new mobs
|
||||
|
||||
@@ -229,7 +228,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
set waitfor = 0
|
||||
mode.post_setup()
|
||||
//Cleanup some stuff
|
||||
for(var/obj/effect/landmark/start/S in landmarks_list)
|
||||
for(var/obj/effect/landmark/start/S in GLOB.landmarks_list)
|
||||
//Deleting Startpoints but we need the ai point to AI-ize people later
|
||||
if(S.name != "AI")
|
||||
qdel(S)
|
||||
@@ -256,7 +255,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
if( cinematic )
|
||||
return //already a cinematic in progress!
|
||||
|
||||
for (var/datum/html_interface/hi in html_interfaces)
|
||||
for (var/datum/html_interface/hi in GLOB.html_interfaces)
|
||||
hi.closeAll()
|
||||
SStgui.close_all_uis()
|
||||
|
||||
@@ -268,7 +267,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
//initialise our cinematic screen object
|
||||
cinematic = new /obj/screen{icon='icons/effects/station_explosion.dmi';icon_state="station_intact";layer=21;mouse_opacity=0;screen_loc="1,0";}(src)
|
||||
|
||||
for(var/mob/M in mob_list)
|
||||
for(var/mob/M in GLOB.mob_list)
|
||||
M.notransform = TRUE //stop everything moving
|
||||
if(M.client)
|
||||
M.client.screen += cinematic //show every client the cinematic
|
||||
@@ -370,22 +369,22 @@ SUBSYSTEM_DEF(ticker)
|
||||
if(cinematic)
|
||||
qdel(cinematic) //end the cinematic
|
||||
cinematic = null
|
||||
for(var/mob/M in mob_list)
|
||||
for(var/mob/M in GLOB.mob_list)
|
||||
M.notransform = FALSE
|
||||
if(actually_blew_up && !isnull(killz) && M.stat != DEAD && M.z == killz)
|
||||
M.gib()
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/create_characters()
|
||||
for(var/mob/dead/new_player/player in player_list)
|
||||
for(var/mob/dead/new_player/player in GLOB.player_list)
|
||||
if(player.ready && player.mind)
|
||||
joined_player_list += player.ckey
|
||||
GLOB.joined_player_list += player.ckey
|
||||
player.create_character(FALSE)
|
||||
else
|
||||
player.new_player_panel()
|
||||
CHECK_TICK
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/collect_minds()
|
||||
for(var/mob/dead/new_player/P in player_list)
|
||||
for(var/mob/dead/new_player/P in GLOB.player_list)
|
||||
if(P.new_character && P.new_character.mind)
|
||||
SSticker.minds += P.new_character.mind
|
||||
CHECK_TICK
|
||||
@@ -393,7 +392,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/equip_characters()
|
||||
var/captainless=1
|
||||
for(var/mob/dead/new_player/N in player_list)
|
||||
for(var/mob/dead/new_player/N in GLOB.player_list)
|
||||
var/mob/living/carbon/human/player = N.new_character
|
||||
if(istype(player) && player.mind && player.mind.assigned_role)
|
||||
if(player.mind.assigned_role == "Captain")
|
||||
@@ -402,14 +401,14 @@ SUBSYSTEM_DEF(ticker)
|
||||
SSjob.EquipRank(N, player.mind.assigned_role, 0)
|
||||
CHECK_TICK
|
||||
if(captainless)
|
||||
for(var/mob/dead/new_player/N in player_list)
|
||||
for(var/mob/dead/new_player/N in GLOB.player_list)
|
||||
if(N.new_character)
|
||||
to_chat(N, "Captainship not forced on anyone.")
|
||||
CHECK_TICK
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/transfer_characters()
|
||||
var/list/livings = list()
|
||||
for(var/mob/dead/new_player/player in player_list)
|
||||
for(var/mob/dead/new_player/player in GLOB.player_list)
|
||||
var/mob/living = player.transfer_character()
|
||||
if(living)
|
||||
qdel(player)
|
||||
@@ -436,7 +435,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
to_chat(world, "<BR><BR><BR><FONT size=3><B>The round has ended.</B></FONT>")
|
||||
|
||||
//Player status report
|
||||
for(var/mob/Player in mob_list)
|
||||
for(var/mob/Player in GLOB.mob_list)
|
||||
if(Player.mind && !isnewplayer(Player))
|
||||
if(Player.stat != DEAD && !isbrain(Player))
|
||||
num_survivors++
|
||||
@@ -461,28 +460,28 @@ SUBSYSTEM_DEF(ticker)
|
||||
//Round statistics report
|
||||
var/datum/station_state/end_state = new /datum/station_state()
|
||||
end_state.count()
|
||||
var/station_integrity = min(PERCENT(start_state.score(end_state)), 100)
|
||||
var/station_integrity = min(PERCENT(GLOB.start_state.score(end_state)), 100)
|
||||
|
||||
to_chat(world, "<BR>[TAB]Shift Duration: <B>[round(world.time / 36000)]:[add_zero("[world.time / 600 % 60]", 2)]:[world.time / 100 % 6][world.time / 100 % 10]</B>")
|
||||
to_chat(world, "<BR>[TAB]Station Integrity: <B>[mode.station_was_nuked ? "<font color='red'>Destroyed</font>" : "[station_integrity]%"]</B>")
|
||||
to_chat(world, "<BR>[GLOB.TAB]Shift Duration: <B>[round(world.time / 36000)]:[add_zero("[world.time / 600 % 60]", 2)]:[world.time / 100 % 6][world.time / 100 % 10]</B>")
|
||||
to_chat(world, "<BR>[GLOB.TAB]Station Integrity: <B>[mode.station_was_nuked ? "<font color='red'>Destroyed</font>" : "[station_integrity]%"]</B>")
|
||||
if(mode.station_was_nuked)
|
||||
SSticker.news_report = STATION_DESTROYED_NUKE
|
||||
var/total_players = joined_player_list.len
|
||||
if(joined_player_list.len)
|
||||
to_chat(world, "<BR>[TAB]Total Population: <B>[total_players]</B>")
|
||||
var/total_players = GLOB.joined_player_list.len
|
||||
if(total_players)
|
||||
to_chat(world, "<BR>[GLOB.TAB]Total Population: <B>[total_players]</B>")
|
||||
if(station_evacuated)
|
||||
to_chat(world, "<BR>[TAB]Evacuation Rate: <B>[num_escapees] ([PERCENT(num_escapees/total_players)]%)</B>")
|
||||
to_chat(world, "<BR>[TAB](on emergency shuttle): <B>[num_shuttle_escapees] ([PERCENT(num_shuttle_escapees/total_players)]%)</B>")
|
||||
to_chat(world, "<BR>[GLOB.TAB]Evacuation Rate: <B>[num_escapees] ([PERCENT(num_escapees/total_players)]%)</B>")
|
||||
to_chat(world, "<BR>[GLOB.TAB](on emergency shuttle): <B>[num_shuttle_escapees] ([PERCENT(num_shuttle_escapees/total_players)]%)</B>")
|
||||
news_report = STATION_EVACUATED
|
||||
if(SSshuttle.emergency.is_hijacked())
|
||||
news_report = SHUTTLE_HIJACK
|
||||
to_chat(world, "<BR>[TAB]Survival Rate: <B>[num_survivors] ([PERCENT(num_survivors/total_players)]%)</B>")
|
||||
to_chat(world, "<BR>[GLOB.TAB]Survival Rate: <B>[num_survivors] ([PERCENT(num_survivors/total_players)]%)</B>")
|
||||
to_chat(world, "<BR>")
|
||||
|
||||
CHECK_TICK
|
||||
|
||||
//Silicon laws report
|
||||
for (var/mob/living/silicon/ai/aiPlayer in mob_list)
|
||||
for (var/mob/living/silicon/ai/aiPlayer in GLOB.mob_list)
|
||||
if (aiPlayer.stat != 2 && aiPlayer.mind)
|
||||
to_chat(world, "<b>[aiPlayer.name] (Played by: [aiPlayer.mind.key])'s laws at the end of the round were:</b>")
|
||||
aiPlayer.show_laws(1)
|
||||
@@ -501,7 +500,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
|
||||
CHECK_TICK
|
||||
|
||||
for (var/mob/living/silicon/robot/robo in mob_list)
|
||||
for (var/mob/living/silicon/robot/robo in GLOB.mob_list)
|
||||
if (!robo.connected_ai && robo.mind)
|
||||
if (robo.stat != 2)
|
||||
to_chat(world, "<b>[robo.name] (Played by: [robo.mind.key]) survived as an AI-less borg! Its laws were:</b>")
|
||||
@@ -552,9 +551,9 @@ SUBSYSTEM_DEF(ticker)
|
||||
|
||||
//Borers
|
||||
var/borerwin = FALSE
|
||||
if(borers.len)
|
||||
if(GLOB.borers.len)
|
||||
var/borertext = "<br><font size=3><b>The borers were:</b></font>"
|
||||
for(var/mob/living/simple_animal/borer/B in borers)
|
||||
for(var/mob/living/simple_animal/borer/B in GLOB.borers)
|
||||
if((B.key || B.controlling) && B.stat != DEAD)
|
||||
borertext += "<br>[B.controlling ? B.victim.key : B.key] was [B.truename] ("
|
||||
var/turf/location = get_turf(B)
|
||||
@@ -566,20 +565,20 @@ SUBSYSTEM_DEF(ticker)
|
||||
to_chat(world, borertext)
|
||||
|
||||
var/total_borers = 0
|
||||
for(var/mob/living/simple_animal/borer/B in borers)
|
||||
for(var/mob/living/simple_animal/borer/B in GLOB.borers)
|
||||
if((B.key || B.victim) && B.stat != DEAD)
|
||||
total_borers++
|
||||
if(total_borers)
|
||||
var/total_borer_hosts = 0
|
||||
for(var/mob/living/carbon/C in mob_list)
|
||||
for(var/mob/living/carbon/C in GLOB.mob_list)
|
||||
var/mob/living/simple_animal/borer/D = C.has_brain_worms()
|
||||
var/turf/location = get_turf(C)
|
||||
if(location.z == ZLEVEL_CENTCOM && D && D.stat != DEAD)
|
||||
total_borer_hosts++
|
||||
if(total_borer_hosts_needed <= total_borer_hosts)
|
||||
if(GLOB.total_borer_hosts_needed <= total_borer_hosts)
|
||||
borerwin = TRUE
|
||||
to_chat(world, "<b>There were [total_borers] borers alive at round end!</b>")
|
||||
to_chat(world, "<b>A total of [total_borer_hosts] borers with hosts escaped on the shuttle alive. The borers needed [total_borer_hosts_needed] hosts to escape.</b>")
|
||||
to_chat(world, "<b>A total of [total_borer_hosts] borers with hosts escaped on the shuttle alive. The borers needed [GLOB.total_borer_hosts_needed] hosts to escape.</b>")
|
||||
if(borerwin)
|
||||
to_chat(world, "<b><font color='green'>The borers were successful!</font></b>")
|
||||
else
|
||||
@@ -706,7 +705,12 @@ SUBSYSTEM_DEF(ticker)
|
||||
queued_players = SSticker.queued_players
|
||||
cinematic = SSticker.cinematic
|
||||
maprotatechecked = SSticker.maprotatechecked
|
||||
round_start_time = SSticker.round_start_time
|
||||
|
||||
queue_delay = SSticker.queue_delay
|
||||
queued_players = SSticker.queued_players
|
||||
cinematic = SSticker.cinematic
|
||||
maprotatechecked = SSticker.maprotatechecked
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/send_news_report()
|
||||
var/news_message
|
||||
|
||||
@@ -53,7 +53,7 @@ SUBSYSTEM_DEF(vote)
|
||||
greatest_votes = votes
|
||||
//default-vote for everyone who didn't vote
|
||||
if(!config.vote_no_default && choices.len)
|
||||
var/list/non_voters = directory.Copy()
|
||||
var/list/non_voters = GLOB.directory.Copy()
|
||||
non_voters -= voted
|
||||
for (var/non_voter_ckey in non_voters)
|
||||
var/client/C = non_voters[non_voter_ckey]
|
||||
@@ -65,10 +65,10 @@ SUBSYSTEM_DEF(vote)
|
||||
if(choices["Continue Playing"] >= greatest_votes)
|
||||
greatest_votes = choices["Continue Playing"]
|
||||
else if(mode == "gamemode")
|
||||
if(master_mode in choices)
|
||||
choices[master_mode] += non_voters.len
|
||||
if(choices[master_mode] >= greatest_votes)
|
||||
greatest_votes = choices[master_mode]
|
||||
if(GLOB.master_mode in choices)
|
||||
choices[GLOB.master_mode] += non_voters.len
|
||||
if(choices[GLOB.master_mode] >= greatest_votes)
|
||||
greatest_votes = choices[GLOB.master_mode]
|
||||
//get all options with that many votes and return them in a list
|
||||
. = list()
|
||||
if(greatest_votes)
|
||||
@@ -98,7 +98,7 @@ SUBSYSTEM_DEF(vote)
|
||||
. = pick(winners)
|
||||
text += "\n<b>Vote Result: [.]</b>"
|
||||
else
|
||||
text += "\n<b>Did not vote:</b> [clients.len-voted.len]"
|
||||
text += "\n<b>Did not vote:</b> [GLOB.clients.len-voted.len]"
|
||||
else
|
||||
text += "<b>Vote Result: Inconclusive - No Votes!</b>"
|
||||
log_vote(text)
|
||||
@@ -115,15 +115,15 @@ SUBSYSTEM_DEF(vote)
|
||||
if(. == "Restart Round")
|
||||
restart = 1
|
||||
if("gamemode")
|
||||
if(master_mode != .)
|
||||
if(GLOB.master_mode != .)
|
||||
world.save_mode(.)
|
||||
if(SSticker && SSticker.mode)
|
||||
restart = 1
|
||||
else
|
||||
master_mode = .
|
||||
GLOB.master_mode = .
|
||||
if(restart)
|
||||
var/active_admins = 0
|
||||
for(var/client/C in admins)
|
||||
for(var/client/C in GLOB.admins)
|
||||
if(!C.is_afk() && check_rights_for(C, R_SERVER))
|
||||
active_admins = 1
|
||||
break
|
||||
@@ -156,7 +156,7 @@ SUBSYSTEM_DEF(vote)
|
||||
|
||||
var/admin = FALSE
|
||||
var/ckey = ckey(initiator_key)
|
||||
if((admin_datums[ckey]) || (ckey in deadmins))
|
||||
if((GLOB.admin_datums[ckey]) || (ckey in GLOB.deadmins))
|
||||
admin = TRUE
|
||||
|
||||
if(next_allowed_time > world.time && !admin)
|
||||
@@ -189,7 +189,7 @@ SUBSYSTEM_DEF(vote)
|
||||
log_vote(text)
|
||||
to_chat(world, "\n<font color='purple'><b>[text]</b>\nType <b>vote</b> or click <a href='?src=\ref[src]'>here</a> to place your votes.\nYou have [config.vote_period/10] seconds to vote.</font>")
|
||||
time_remaining = round(config.vote_period/10)
|
||||
for(var/c in clients)
|
||||
for(var/c in GLOB.clients)
|
||||
var/client/C = c
|
||||
var/datum/action/vote/V = new
|
||||
if(question)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
//Used for all kinds of weather, ex. lavaland ash storms.
|
||||
|
||||
SUBSYSTEM_DEF(weather)
|
||||
name = "Weather"
|
||||
flags = SS_BACKGROUND
|
||||
@@ -13,7 +12,7 @@ SUBSYSTEM_DEF(weather)
|
||||
var/datum/weather/W = V
|
||||
if(W.aesthetic)
|
||||
continue
|
||||
for(var/mob/living/L in mob_list)
|
||||
for(var/mob/living/L in GLOB.mob_list)
|
||||
if(W.can_impact(L))
|
||||
W.impact(L)
|
||||
for(var/Z in eligible_zlevels)
|
||||
|
||||
Reference in New Issue
Block a user