Fix conflicts

This commit is contained in:
Lzimann
2017-04-07 09:12:36 -03:00
825 changed files with 5432 additions and 6063 deletions
+35 -35
View File
@@ -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
+7 -7
View File
@@ -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
+62
View File
@@ -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
View File
@@ -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
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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()
+1 -1
View File
@@ -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)
..()
+4 -4
View File
@@ -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
+1 -1
View File
@@ -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)
+15
View File
@@ -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]")
+1 -1
View File
@@ -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
+1 -675
View File
@@ -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
+12 -12
View File
@@ -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))
+17 -17
View File
@@ -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()
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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)
+3 -3
View File
@@ -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
+4 -4
View File
@@ -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))
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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?!
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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)]")
+9 -9
View File
@@ -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)
+50 -46
View File
@@ -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
+11 -11
View File
@@ -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 -2
View File
@@ -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)