Makes all global variables handled by the GLOB controller (#13152)

* Handlers converted, now to fix 3532 compile errors

* 3532 compile fixes later, got runtimes on startup

* Well the server loads now atleast

* Take 2

* Oops
This commit is contained in:
AffectedArc07
2020-03-21 03:56:37 +00:00
committed by GitHub
parent c8dbd0190e
commit 210f8badf4
667 changed files with 4243 additions and 4240 deletions
+7 -7
View File
@@ -147,16 +147,16 @@ You can set verify to TRUE if you want send() to sleep until the client has the
//These datums are used to populate the asset cache, the proc "register()" does this.
//all of our asset datums, used for referring to these later
/var/global/list/asset_datums = list()
GLOBAL_LIST_EMPTY(asset_datums)
//get a assetdatum or make a new one
/proc/get_asset_datum(var/type)
if(!(type in asset_datums))
if(!(type in GLOB.asset_datums))
return new type()
return asset_datums[type]
return GLOB.asset_datums[type]
/datum/asset/New()
asset_datums[type] = src
GLOB.asset_datums[type] = src
/datum/asset/proc/register()
return
@@ -313,14 +313,14 @@ You can set verify to TRUE if you want send() to sleep until the client has the
if(!(state in list("cap", "connector", "dtvalve", "dual-port vent", "dvalve", "filter", "he", "heunary", "injector", "junction", "manifold", "mixer", "tvalve", "mvalve", "passive vent", "passivegate", "pump", "scrubber", "simple", "universal", "uvent", "volumepump"))) //Basically all the pipes we want sprites for
continue
if(state in list("he", "simple"))
for(var/D in alldirs)
for(var/D in GLOB.alldirs)
assets["[state]-[dir2text(D)].png"] = icon('icons/obj/pipe-item.dmi', state, D)
for(var/D in cardinal)
for(var/D in GLOB.cardinal)
assets["[state]-[dir2text(D)].png"] = icon('icons/obj/pipe-item.dmi', state, D)
for(var/state in icon_states('icons/obj/pipes/disposal.dmi'))
if(!(state in list("pipe-c", "pipe-j1", "pipe-s", "pipe-t", "pipe-y", "intake", "outlet", "pipe-j1s"))) //Pipes we want sprites for
continue
for(var/D in cardinal)
for(var/D in GLOB.cardinal)
assets["[state]-[dir2text(D)].png"] = icon('icons/obj/pipes/disposal.dmi', state, D)
for(var/asset_name in assets)
register_asset(asset_name, assets[asset_name])
+24 -24
View File
@@ -319,16 +319,16 @@
if(!config.disable_localhost_admin)
if(is_connecting_from_localhost())
new /datum/admins("!LOCALHOST!", R_HOST, ckey) // Makes localhost rank
holder = admin_datums[ckey]
holder = GLOB.admin_datums[ckey]
if(holder)
GLOB.admins += src
holder.owner = src
//preferences datum - also holds some persistant data for the client (because we may as well keep these datums to a minimum)
prefs = preferences_datums[ckey]
prefs = GLOB.preferences_datums[ckey]
if(!prefs)
prefs = new /datum/preferences(src)
preferences_datums[ckey] = prefs
GLOB.preferences_datums[ckey] = prefs
else
prefs.parent = src
prefs.last_ip = address //these are gonna be used for banning
@@ -339,8 +339,8 @@
spawn() // Goonchat does some non-instant checks in start()
chatOutput.start()
if( (world.address == address || !address) && !host )
host = key
if( (world.address == address || !address) && !GLOB.host )
GLOB.host = key
world.update_status()
if(holder)
@@ -376,7 +376,7 @@
if(establish_db_connection())
activate_darkmode()
if(prefs.lastchangelog != changelog_hash) //bolds the changelog button on the interface so we know there are updates. -CP
if(prefs.lastchangelog != GLOB.changelog_hash) //bolds the changelog button on the interface so we know there are updates. -CP
if(establish_db_connection())
to_chat(src, "<span class='info'>Changelog has changed since your last visit.</span>")
update_changelog_button()
@@ -393,10 +393,10 @@
check_forum_link()
if(custom_event_msg && custom_event_msg != "")
if(GLOB.custom_event_msg && GLOB.custom_event_msg != "")
to_chat(src, "<h1 class='alert'>Custom Event</h1>")
to_chat(src, "<h2 class='alert'>A custom event is taking place. OOC Info:</h2>")
to_chat(src, "<span class='alert'>[html_encode(custom_event_msg)]</span>")
to_chat(src, "<span class='alert'>[html_encode(GLOB.custom_event_msg)]</span>")
to_chat(src, "<br>")
if(!winexists(src, "asset_cache_browser")) // The client is using a custom skin, tell them.
@@ -452,7 +452,7 @@
return
establish_db_connection()
if(!dbcon.IsConnected())
if(!GLOB.dbcon.IsConnected())
return
if(check_rights(R_ADMIN, 0, mob)) // Yes, the mob is required, regardless of other examples in this file, it won't work otherwise
@@ -461,7 +461,7 @@
return
//Donator stuff.
var/DBQuery/query_donor_select = dbcon.NewQuery("SELECT ckey, tier, active FROM `[format_table_name("donators")]` WHERE ckey = '[ckey]'")
var/DBQuery/query_donor_select = GLOB.dbcon.NewQuery("SELECT ckey, tier, active FROM `[format_table_name("donators")]` WHERE ckey = '[ckey]'")
query_donor_select.Execute()
while(query_donor_select.NextRow())
if(!text2num(query_donor_select.item[3]))
@@ -482,11 +482,11 @@
establish_db_connection()
if(!dbcon.IsConnected())
if(!GLOB.dbcon.IsConnected())
return
var/DBQuery/query = dbcon.NewQuery("SELECT id, datediff(Now(),firstseen) as age FROM [format_table_name("player")] WHERE ckey = '[ckey]'")
var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT id, datediff(Now(),firstseen) as age FROM [format_table_name("player")] WHERE ckey = '[ckey]'")
query.Execute()
var/sql_id = 0
player_age = 0 // New players won't have an entry so knowing we have a connection we set this to zero to be updated if there is a record.
@@ -496,7 +496,7 @@
break
var/DBQuery/query_ip = dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ip = '[address]'")
var/DBQuery/query_ip = GLOB.dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ip = '[address]'")
query_ip.Execute()
related_accounts_ip = list()
while(query_ip.NextRow())
@@ -504,7 +504,7 @@
related_accounts_ip.Add("[query_ip.item[1]]")
var/DBQuery/query_cid = dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE computerid = '[computer_id]'")
var/DBQuery/query_cid = GLOB.dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE computerid = '[computer_id]'")
query_cid.Execute()
related_accounts_cid = list()
while(query_cid.NextRow())
@@ -546,7 +546,7 @@
if(sql_id)
//Player already identified previously, we need to just update the 'lastseen', 'ip' and 'computer_id' variables
var/DBQuery/query_update = dbcon.NewQuery("UPDATE [format_table_name("player")] SET lastseen = Now(), ip = '[sql_ip]', computerid = '[sql_computerid]', lastadminrank = '[sql_admin_rank]' WHERE id = [sql_id]")
var/DBQuery/query_update = GLOB.dbcon.NewQuery("UPDATE [format_table_name("player")] SET lastseen = Now(), ip = '[sql_ip]', computerid = '[sql_computerid]', lastadminrank = '[sql_admin_rank]' WHERE id = [sql_id]")
if(!query_update.Execute())
var/err = query_update.ErrorMsg()
log_game("SQL ERROR during log_client_to_db (update). Error : \[[err]\]\n")
@@ -561,14 +561,14 @@
del(src)
return // Dont insert or they can just go in again
var/DBQuery/query_insert = dbcon.NewQuery("INSERT INTO [format_table_name("player")] (id, ckey, firstseen, lastseen, ip, computerid, lastadminrank) VALUES (null, '[ckey]', Now(), Now(), '[sql_ip]', '[sql_computerid]', '[sql_admin_rank]')")
var/DBQuery/query_insert = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("player")] (id, ckey, firstseen, lastseen, ip, computerid, lastadminrank) VALUES (null, '[ckey]', Now(), Now(), '[sql_ip]', '[sql_computerid]', '[sql_admin_rank]')")
if(!query_insert.Execute())
var/err = query_insert.ErrorMsg()
log_game("SQL ERROR during log_client_to_db (insert). Error : \[[err]\]\n")
message_admins("SQL ERROR during log_client_to_db (insert). Error : \[[err]\]\n")
// Log player connections to DB
var/DBQuery/query_accesslog = dbcon.NewQuery("INSERT INTO `[format_table_name("connection_log")]`(`datetime`,`ckey`,`ip`,`computerid`) VALUES(Now(),'[ckey]','[sql_ip]','[sql_computerid]');")
var/DBQuery/query_accesslog = GLOB.dbcon.NewQuery("INSERT INTO `[format_table_name("connection_log")]`(`datetime`,`ckey`,`ip`,`computerid`) VALUES(Now(),'[ckey]','[sql_ip]','[sql_computerid]');")
query_accesslog.Execute()
/client/proc/check_ip_intel()
@@ -616,14 +616,14 @@
to_chat(src, "<B>You have no verified forum account. <a href='?src=[UID()];link_forum_account=true'>VERIFY FORUM ACCOUNT</a></B>")
/client/proc/create_oauth_token()
var/DBQuery/query_find_token = dbcon.NewQuery("SELECT token FROM [format_table_name("oauth_tokens")] WHERE ckey = '[ckey]' limit 1")
var/DBQuery/query_find_token = GLOB.dbcon.NewQuery("SELECT token FROM [format_table_name("oauth_tokens")] WHERE ckey = '[ckey]' limit 1")
if(!query_find_token.Execute())
log_debug("create_oauth_token: failed db read")
return
if(query_find_token.NextRow())
return query_find_token.item[1]
var/tokenstr = md5("[ckey][rand()]")
var/DBQuery/query_insert_token = dbcon.NewQuery("INSERT INTO [format_table_name("oauth_tokens")] (ckey, token) VALUES('[ckey]','[tokenstr]')")
var/DBQuery/query_insert_token = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("oauth_tokens")] (ckey, token) VALUES('[ckey]','[tokenstr]')")
if(!query_insert_token.Execute())
return
return tokenstr
@@ -638,7 +638,7 @@
if(!fromban)
to_chat(src, "Your forum account is already set.")
return
var/DBQuery/query_find_link = dbcon.NewQuery("SELECT fuid FROM [format_table_name("player")] WHERE ckey = '[ckey]' limit 1")
var/DBQuery/query_find_link = GLOB.dbcon.NewQuery("SELECT fuid FROM [format_table_name("player")] WHERE ckey = '[ckey]' limit 1")
if(!query_find_link.Execute())
log_debug("link_forum_account: failed db read")
return
@@ -682,7 +682,7 @@
var/oldcid = cidcheck[ckey]
if(!oldcid)
var/DBQuery/query_cidcheck = dbcon.NewQuery("SELECT computerid FROM [format_table_name("player")] WHERE ckey = '[ckey]'")
var/DBQuery/query_cidcheck = GLOB.dbcon.NewQuery("SELECT computerid FROM [format_table_name("player")] WHERE ckey = '[ckey]'")
query_cidcheck.Execute()
var/lastcid = computer_id
@@ -747,7 +747,7 @@
var/const/adminckey = "CID-Error"
// Check for notes in the last day - only 1 note per 24 hours
var/DBQuery/query_get_notes = dbcon.NewQuery("SELECT id from [format_table_name("notes")] WHERE ckey = '[ckey]' AND adminckey = '[adminckey]' AND timestamp + INTERVAL 1 DAY < NOW()")
var/DBQuery/query_get_notes = GLOB.dbcon.NewQuery("SELECT id from [format_table_name("notes")] WHERE ckey = '[ckey]' AND adminckey = '[adminckey]' AND timestamp + INTERVAL 1 DAY < NOW()")
if(!query_get_notes.Execute())
var/err = query_get_notes.ErrorMsg()
log_game("SQL ERROR obtaining id from notes table. Error : \[[err]\]\n")
@@ -756,7 +756,7 @@
return
// Only add a note if their most recent note isn't from the randomizer blocker, either
query_get_notes = dbcon.NewQuery("SELECT adminckey FROM [format_table_name("notes")] WHERE ckey = '[ckey]' ORDER BY timestamp DESC LIMIT 1")
query_get_notes = GLOB.dbcon.NewQuery("SELECT adminckey FROM [format_table_name("notes")] WHERE ckey = '[ckey]' ORDER BY timestamp DESC LIMIT 1")
if(!query_get_notes.Execute())
var/err = query_get_notes.ErrorMsg()
log_game("SQL ERROR obtaining adminckey from notes table. Error : \[[err]\]\n")
@@ -890,7 +890,7 @@
// Better changelog button handling
/client/proc/update_changelog_button()
if(establish_db_connection())
if(prefs.lastchangelog != changelog_hash)
if(prefs.lastchangelog != GLOB.changelog_hash)
winset(src, "rpane.changelog", "background-color=#bb7700;text-color=#FFFFFF;font-style=bold")
else
if(prefs.toggles & UI_DARKMODE)
@@ -16,8 +16,7 @@
/*
* Color adjustment
*/
var/datum/gear_tweak/color/gear_tweak_free_color_choice = new()
GLOBAL_DATUM_INIT(gear_tweak_free_color_choice, /datum/gear_tweak/color, new())
/datum/gear_tweak/color
var/list/valid_colors
@@ -1,5 +1,5 @@
var/list/loadout_categories = list()
var/list/gear_datums = list()
GLOBAL_LIST_EMPTY(loadout_categories)
GLOBAL_LIST_EMPTY(gear_datums)
/datum/loadout_category
var/category = ""
@@ -30,15 +30,15 @@ var/list/gear_datums = list()
error("Loadout - Missing path definition: [G]")
continue
if(!loadout_categories[use_category])
loadout_categories[use_category] = new /datum/loadout_category(use_category)
var/datum/loadout_category/LC = loadout_categories[use_category]
gear_datums[use_name] = new geartype
LC.gear[use_name] = gear_datums[use_name]
if(!GLOB.loadout_categories[use_category])
GLOB.loadout_categories[use_category] = new /datum/loadout_category(use_category)
var/datum/loadout_category/LC = GLOB.loadout_categories[use_category]
GLOB.gear_datums[use_name] = new geartype
LC.gear[use_name] = GLOB.gear_datums[use_name]
loadout_categories = sortAssoc(loadout_categories)
for(var/loadout_category in loadout_categories)
var/datum/loadout_category/LC = loadout_categories[loadout_category]
GLOB.loadout_categories = sortAssoc(GLOB.loadout_categories)
for(var/loadout_category in GLOB.loadout_categories)
var/datum/loadout_category/LC = GLOB.loadout_categories[loadout_category]
LC.gear = sortAssoc(LC.gear)
return 1
+54 -53
View File
@@ -1,6 +1,7 @@
var/list/preferences_datums = list()
GLOBAL_LIST_EMPTY(preferences_datums)
GLOBAL_PROTECT(preferences_datums) // These feel like something that shouldnt be fucked with
var/global/list/special_role_times = list( //minimum age (in days) for accounts to play these roles
GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts to play these roles
ROLE_PAI = 0,
ROLE_POSIBRAIN = 0,
ROLE_GUARDIAN = 0,
@@ -24,7 +25,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
ROLE_GSPIDER = 21,
ROLE_ABDUCTOR = 30,
ROLE_DEVIL = 14
)
))
/proc/player_old_enough_antag(client/C, role)
if(available_in_days_antag(C, role))
@@ -42,7 +43,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
return 0
if(!isnum(C.player_age))
return 0 //This is only a number if the db connection is established, otherwise it is text: "Requires database", meaning these restrictions cannot be enforced
var/minimal_player_age_antag = special_role_times[num2text(role)]
var/minimal_player_age_antag = GLOB.special_role_times[num2text(role)]
if(!isnum(minimal_player_age_antag))
return 0
@@ -343,11 +344,11 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
dat += "<b>Eyes:</b> "
dat += "<a href='?_src_=prefs;preference=eyes;task=input'>Color</a> [color_square(e_colour)]<br>"
if((S.bodyflags & HAS_SKIN_COLOR) || body_accessory_by_species[species] || check_rights(R_ADMIN, 0, user)) //admins can always fuck with this, because they are admins
if((S.bodyflags & HAS_SKIN_COLOR) || GLOB.body_accessory_by_species[species] || check_rights(R_ADMIN, 0, user)) //admins can always fuck with this, because they are admins
dat += "<b>Body Color:</b> "
dat += "<a href='?_src_=prefs;preference=skin;task=input'>Color</a> [color_square(s_colour)]<br>"
if(body_accessory_by_species[species] || check_rights(R_ADMIN, 0, user))
if(GLOB.body_accessory_by_species[species] || check_rights(R_ADMIN, 0, user))
dat += "<b>Body Accessory:</b> "
dat += "<a href='?_src_=prefs;preference=body_accessory;task=input'>[body_accessory ? "[body_accessory]" : "None"]</a><br>"
@@ -413,10 +414,10 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
switch(status)
if("cyborg")
var/datum/robolimb/R
if(rlimb_data[name] && all_robolimbs[rlimb_data[name]])
R = all_robolimbs[rlimb_data[name]]
if(rlimb_data[name] && GLOB.all_robolimbs[rlimb_data[name]])
R = GLOB.all_robolimbs[rlimb_data[name]]
else
R = basic_robolimb
R = GLOB.basic_robolimb
dat += "\t[R.company] [organ_name] prosthesis"
if("amputated")
dat += "\tAmputated [organ_name]"
@@ -461,7 +462,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
dat += "<b>Ghost Sight:</b> <a href='?_src_=prefs;preference=ghost_sight'><b>[(toggles & CHAT_GHOSTSIGHT) ? "All Emotes" : "Nearest Creatures"]</b></a><br>"
dat += "<b>Ghost PDA:</b> <a href='?_src_=prefs;preference=ghost_pda'><b>[(toggles & CHAT_GHOSTPDA) ? "All PDA Messages" : "No PDA Messages"]</b></a><br>"
if(check_rights(R_ADMIN,0))
dat += "<b>OOC Color:</b> <span style='border: 1px solid #161616; background-color: [ooccolor ? ooccolor : normal_ooc_colour];'>&nbsp;&nbsp;&nbsp;</span> <a href='?_src_=prefs;preference=ooccolor;task=input'><b>Change</b></a><br>"
dat += "<b>OOC Color:</b> <span style='border: 1px solid #161616; background-color: [ooccolor ? ooccolor : GLOB.normal_ooc_colour];'>&nbsp;&nbsp;&nbsp;</span> <a href='?_src_=prefs;preference=ooccolor;task=input'><b>Change</b></a><br>"
if(config.allow_Metadata)
dat += "<b>OOC Notes:</b> <a href='?_src_=prefs;preference=metadata;task=input'><b>Edit</b></a><br>"
dat += "<b>Parallax (Fancy Space):</b> <a href='?_src_=prefs;preference=parallax'>"
@@ -509,7 +510,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
var/list/type_blacklist = list()
if(gear && gear.len)
for(var/i = 1, i <= gear.len, i++)
var/datum/gear/G = gear_datums[gear[i]]
var/datum/gear/G = GLOB.gear_datums[gear[i]]
if(G)
if(!G.subtype_cost_overlap)
if(G.subtype_path in type_blacklist)
@@ -525,7 +526,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
dat += "<tr><td colspan=4><center><b>"
var/firstcat = 1
for(var/category in loadout_categories)
for(var/category in GLOB.loadout_categories)
if(firstcat)
firstcat = 0
else
@@ -536,7 +537,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
dat += " <a href='?_src_=prefs;preference=gear;select_category=[category]'>[category]</a> "
dat += "</b></center></td></tr>"
var/datum/loadout_category/LC = loadout_categories[gear_tab]
var/datum/loadout_category/LC = GLOB.loadout_categories[gear_tab]
dat += "<tr><td colspan=4><hr></td></tr>"
dat += "<tr><td colspan=4><b><center>[LC.category]</center></b></td></tr>"
dat += "<tr><td colspan=4><hr></td></tr>"
@@ -654,7 +655,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
if((job_support_low & JOB_CIVILIAN) && (rank != "Civilian"))
HTML += "<font color=orange>[rank]</font></td><td></td></tr>"
continue
if((rank in command_positions) || (rank == "AI"))//Bold head jobs
if((rank in GLOB.command_positions) || (rank == "AI"))//Bold head jobs
HTML += "<b><span class='dark'>[rank]</span></b>"
else
HTML += "<span class='dark'>[rank]</span>"
@@ -1160,7 +1161,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
if(href_list["preference"] == "gear")
if(href_list["toggle_gear"])
var/datum/gear/TG = gear_datums[href_list["toggle_gear"]]
var/datum/gear/TG = GLOB.gear_datums[href_list["toggle_gear"]]
if(TG.display_name in gear)
gear -= TG.display_name
else
@@ -1170,7 +1171,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
var/total_cost = 0
var/list/type_blacklist = list()
for(var/gear_name in gear)
var/datum/gear/G = gear_datums[gear_name]
var/datum/gear/G = GLOB.gear_datums[gear_name]
if(istype(G))
if(!G.subtype_cost_overlap)
if(G.subtype_path in type_blacklist)
@@ -1182,7 +1183,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
gear += TG.display_name
else if(href_list["gear"] && href_list["tweak"])
var/datum/gear/gear = gear_datums[href_list["gear"]]
var/datum/gear/gear = GLOB.gear_datums[href_list["gear"]]
var/datum/gear_tweak/tweak = locate(href_list["tweak"])
if(!tweak || !istype(gear) || !(tweak in gear.gear_tweaks))
return
@@ -1203,7 +1204,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
var/datum/robolimb/robohead
if(S.bodyflags & ALL_RPARTS)
var/head_model = "[!rlimb_data["head"] ? "Morpheus Cyberkinetics" : rlimb_data["head"]]"
robohead = all_robolimbs[head_model]
robohead = GLOB.all_robolimbs[head_model]
switch(href_list["preference"])
if("name")
real_name = random_name(gender,species)
@@ -1320,7 +1321,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
var/datum/robolimb/robohead
if(NS.bodyflags & ALL_RPARTS)
var/head_model = "[!rlimb_data["head"] ? "Morpheus Cyberkinetics" : rlimb_data["head"]]"
robohead = all_robolimbs[head_model]
robohead = GLOB.all_robolimbs[head_model]
//grab one of the valid hair styles for the newly chosen species
h_style = random_hair_style(gender, species, robohead)
@@ -1453,7 +1454,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
head_model = "Morpheus Cyberkinetics"
else
head_model = rlimb_data["head"]
var/datum/robolimb/robohead = all_robolimbs[head_model]
var/datum/robolimb/robohead = GLOB.all_robolimbs[head_model]
if((species in SA.species_allowed) && robohead.is_monitor && ((SA.models_allowed && (robohead.company in SA.models_allowed)) || !SA.models_allowed)) //If this is a hair style native to the user's species, check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list.
valid_hairstyles += hairstyle //Give them their hairstyles if they do.
else
@@ -1536,7 +1537,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
head_model = "Morpheus Cyberkinetics"
else
head_model = rlimb_data["head"]
var/datum/robolimb/robohead = all_robolimbs[head_model]
var/datum/robolimb/robohead = GLOB.all_robolimbs[head_model]
if(robohead.is_monitor && M.name != "None") //If the character can have prosthetic heads and they have the default Morpheus head (or another monitor-head), no optic markings.
continue
else if(!robohead.is_monitor && M.name != "None") //Otherwise, if they DON'T have the default head and the head's not a monitor but the head's not in the style's list of allowed models, skip.
@@ -1613,10 +1614,10 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
if("body_accessory")
var/list/possible_body_accessories = list()
if(check_rights(R_ADMIN, 1, user))
possible_body_accessories = body_accessory_by_name.Copy()
possible_body_accessories = GLOB.body_accessory_by_name.Copy()
else
for(var/B in body_accessory_by_name)
var/datum/body_accessory/accessory = body_accessory_by_name[B]
for(var/B in GLOB.body_accessory_by_name)
var/datum/body_accessory/accessory = GLOB.body_accessory_by_name[B]
if(!istype(accessory))
possible_body_accessories += "None" //the only null entry should be the "None" option
continue
@@ -1660,7 +1661,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
head_model = "Morpheus Cyberkinetics"
else
head_model = rlimb_data["head"]
var/datum/robolimb/robohead = all_robolimbs[head_model]
var/datum/robolimb/robohead = GLOB.all_robolimbs[head_model]
if((species in SA.species_allowed) && robohead.is_monitor && ((SA.models_allowed && (robohead.company in SA.models_allowed)) || !SA.models_allowed)) //If this is a facial hair style native to the user's species, check to see if they have a head with an ipc-style screen and that the head's company is in the screen style's allowed models list.
valid_facial_hairstyles += facialhairstyle //Give them their facial hairstyles if they do.
else
@@ -1750,7 +1751,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
s_tone = max(min(round(skin_c), S.icon_skin_tones.len), 1)
if("skin")
if((S.bodyflags & HAS_SKIN_COLOR) || body_accessory_by_species[species] || check_rights(R_ADMIN, 0, user))
if((S.bodyflags & HAS_SKIN_COLOR) || GLOB.body_accessory_by_species[species] || check_rights(R_ADMIN, 0, user))
var/new_skin = input(user, "Choose your character's skin colour: ", "Character Preference", s_colour) as color|null
if(new_skin)
s_colour = new_skin
@@ -1869,7 +1870,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
if(!choice)
return
R.company = choice
R = all_robolimbs[R.company]
R = GLOB.all_robolimbs[R.company]
if(R.has_subtypes == 1) //If the company the user selected provides more than just one base model, lets handle it.
var/list/robolimb_models = list()
for(var/limb_type in typesof(R)) //Handling the different models of parts that manufacturers can provide.
@@ -2208,7 +2209,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
character.m_styles = m_styles
if(body_accessory)
character.body_accessory = body_accessory_by_name["[body_accessory]"]
character.body_accessory = GLOB.body_accessory_by_name["[body_accessory]"]
character.backbag = backbag
@@ -2221,53 +2222,53 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
character.change_eye_color(e_colour)
if(disabilities & DISABILITY_FLAG_FAT && (CAN_BE_FAT in character.dna.species.species_traits))
character.dna.SetSEState(FATBLOCK, TRUE, TRUE)
character.dna.SetSEState(GLOB.fatblock, TRUE, TRUE)
character.overeatduration = 600
character.dna.default_blocks.Add(FATBLOCK)
character.dna.default_blocks.Add(GLOB.fatblock)
if(disabilities & DISABILITY_FLAG_NEARSIGHTED)
character.dna.SetSEState(GLASSESBLOCK, TRUE, TRUE)
character.dna.default_blocks.Add(GLASSESBLOCK)
character.dna.SetSEState(GLOB.glassesblock, TRUE, TRUE)
character.dna.default_blocks.Add(GLOB.glassesblock)
if(disabilities & DISABILITY_FLAG_BLIND)
character.dna.SetSEState(BLINDBLOCK, TRUE, TRUE)
character.dna.default_blocks.Add(BLINDBLOCK)
character.dna.SetSEState(GLOB.blindblock, TRUE, TRUE)
character.dna.default_blocks.Add(GLOB.blindblock)
if(disabilities & DISABILITY_FLAG_DEAF)
character.dna.SetSEState(DEAFBLOCK, TRUE, TRUE)
character.dna.default_blocks.Add(DEAFBLOCK)
character.dna.SetSEState(GLOB.deafblock, TRUE, TRUE)
character.dna.default_blocks.Add(GLOB.deafblock)
if(disabilities & DISABILITY_FLAG_COLOURBLIND)
character.dna.SetSEState(COLOURBLINDBLOCK, TRUE, TRUE)
character.dna.default_blocks.Add(COLOURBLINDBLOCK)
character.dna.SetSEState(GLOB.colourblindblock, TRUE, TRUE)
character.dna.default_blocks.Add(GLOB.colourblindblock)
if(disabilities & DISABILITY_FLAG_MUTE)
character.dna.SetSEState(MUTEBLOCK, TRUE, TRUE)
character.dna.default_blocks.Add(MUTEBLOCK)
character.dna.SetSEState(GLOB.muteblock, TRUE, TRUE)
character.dna.default_blocks.Add(GLOB.muteblock)
if(disabilities & DISABILITY_FLAG_NERVOUS)
character.dna.SetSEState(NERVOUSBLOCK, TRUE, TRUE)
character.dna.default_blocks.Add(NERVOUSBLOCK)
character.dna.SetSEState(GLOB.nervousblock, TRUE, TRUE)
character.dna.default_blocks.Add(GLOB.nervousblock)
if(disabilities & DISABILITY_FLAG_SWEDISH)
character.dna.SetSEState(SWEDEBLOCK, TRUE, TRUE)
character.dna.default_blocks.Add(SWEDEBLOCK)
character.dna.SetSEState(GLOB.swedeblock, TRUE, TRUE)
character.dna.default_blocks.Add(GLOB.swedeblock)
if(disabilities & DISABILITY_FLAG_CHAV)
character.dna.SetSEState(CHAVBLOCK, TRUE, TRUE)
character.dna.default_blocks.Add(CHAVBLOCK)
character.dna.SetSEState(GLOB.chavblock, TRUE, TRUE)
character.dna.default_blocks.Add(GLOB.chavblock)
if(disabilities & DISABILITY_FLAG_LISP)
character.dna.SetSEState(LISPBLOCK, TRUE, TRUE)
character.dna.default_blocks.Add(LISPBLOCK)
character.dna.SetSEState(GLOB.lispblock, TRUE, TRUE)
character.dna.default_blocks.Add(GLOB.lispblock)
if(disabilities & DISABILITY_FLAG_DIZZY)
character.dna.SetSEState(DIZZYBLOCK, TRUE, TRUE)
character.dna.default_blocks.Add(DIZZYBLOCK)
character.dna.SetSEState(GLOB.dizzyblock, TRUE, TRUE)
character.dna.default_blocks.Add(GLOB.dizzyblock)
if(disabilities & DISABILITY_FLAG_WINGDINGS && (CAN_WINGDINGS in character.dna.species.species_traits))
character.dna.SetSEState(WINGDINGSBLOCK, TRUE, TRUE)
character.dna.default_blocks.Add(WINGDINGSBLOCK)
character.dna.SetSEState(GLOB.wingdingsblock, TRUE, TRUE)
character.dna.default_blocks.Add(GLOB.wingdingsblock)
character.dna.species.handle_dna(character)
@@ -2286,7 +2287,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
/datum/preferences/proc/open_load_dialog(mob/user)
var/DBQuery/query = dbcon.NewQuery("SELECT slot,real_name FROM [format_table_name("characters")] WHERE ckey='[user.ckey]' ORDER BY slot")
var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT slot,real_name FROM [format_table_name("characters")] WHERE ckey='[user.ckey]' ORDER BY slot")
var/list/slotnames[max_save_slots]
if(!query.Execute())
@@ -1,6 +1,6 @@
/datum/preferences/proc/load_preferences(client/C)
var/DBQuery/query = dbcon.NewQuery({"SELECT
var/DBQuery/query = GLOB.dbcon.NewQuery({"SELECT
ooccolor,
UI_style,
UI_style_color,
@@ -88,7 +88,7 @@
log_runtime(EXCEPTION("[C.key] had a malformed role entry: '[role]'. Removing!"), src)
be_special -= role
var/DBQuery/query = dbcon.NewQuery({"UPDATE [format_table_name("player")]
var/DBQuery/query = GLOB.dbcon.NewQuery({"UPDATE [format_table_name("player")]
SET
ooccolor='[ooccolor]',
UI_style='[UI_style]',
@@ -126,11 +126,11 @@
slot = sanitize_integer(slot, 1, max_save_slots, initial(default_slot))
if(slot != default_slot)
default_slot = slot
var/DBQuery/firstquery = dbcon.NewQuery("UPDATE [format_table_name("player")] SET default_slot=[slot] WHERE ckey='[C.ckey]'")
var/DBQuery/firstquery = GLOB.dbcon.NewQuery("UPDATE [format_table_name("player")] SET default_slot=[slot] WHERE ckey='[C.ckey]'")
firstquery.Execute()
// Let's not have this explode if you sneeze on the DB
var/DBQuery/query = dbcon.NewQuery({"SELECT
var/DBQuery/query = GLOB.dbcon.NewQuery({"SELECT
OOC_Notes,
real_name,
name_is_always_random,
@@ -339,11 +339,11 @@
if(!isemptylist(gear))
gearlist = list2params(gear)
var/DBQuery/firstquery = dbcon.NewQuery("SELECT slot FROM [format_table_name("characters")] WHERE ckey='[C.ckey]' ORDER BY slot")
var/DBQuery/firstquery = GLOB.dbcon.NewQuery("SELECT slot FROM [format_table_name("characters")] WHERE ckey='[C.ckey]' ORDER BY slot")
firstquery.Execute()
while(firstquery.NextRow())
if(text2num(firstquery.item[1]) == default_slot)
var/DBQuery/query = dbcon.NewQuery({"UPDATE [format_table_name("characters")] SET OOC_Notes='[sanitizeSQL(metadata)]',
var/DBQuery/query = GLOB.dbcon.NewQuery({"UPDATE [format_table_name("characters")] SET OOC_Notes='[sanitizeSQL(metadata)]',
real_name='[sanitizeSQL(real_name)]',
name_is_always_random='[be_random_name]',
gender='[gender]',
@@ -406,7 +406,7 @@
return
return 1
var/DBQuery/query = dbcon.NewQuery({"
var/DBQuery/query = GLOB.dbcon.NewQuery({"
INSERT INTO [format_table_name("characters")] (ckey, slot, OOC_Notes, real_name, name_is_always_random, gender,
age, species, language,
hair_colour, secondary_hair_colour,
@@ -473,7 +473,7 @@
return 1
/datum/preferences/proc/load_random_character_slot(client/C)
var/DBQuery/query = dbcon.NewQuery("SELECT slot FROM [format_table_name("characters")] WHERE ckey='[C.ckey]' ORDER BY slot")
var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT slot FROM [format_table_name("characters")] WHERE ckey='[C.ckey]' ORDER BY slot")
var/list/saves = list()
if(!query.Execute())
@@ -493,11 +493,11 @@
/datum/preferences/proc/SetChangelog(client/C,hash)
lastchangelog=hash
if(preferences_datums[C.ckey].toggles & UI_DARKMODE)
if(GLOB.preferences_datums[C.ckey].toggles & UI_DARKMODE)
winset(C, "rpane.changelog", "background-color=#40628a;font-color=#ffffff;font-style=none")
else
winset(C, "rpane.changelog", "background-color=none;font-style=none")
var/DBQuery/query = dbcon.NewQuery("UPDATE [format_table_name("player")] SET lastchangelog='[lastchangelog]' WHERE ckey='[C.ckey]'")
var/DBQuery/query = GLOB.dbcon.NewQuery("UPDATE [format_table_name("player")] SET lastchangelog='[lastchangelog]' WHERE ckey='[C.ckey]'")
if(!query.Execute())
var/err = query.ErrorMsg()
log_game("SQL ERROR during lastchangelog updating. Error : \[[err]\]\n")
@@ -1,10 +1,10 @@
var/list/spawntypes = list()
GLOBAL_LIST_EMPTY(spawntypes)
/proc/populate_spawn_points()
spawntypes = list()
// GLOB.spawntypes = list() | This is already done, is it not
for(var/type in subtypesof(/datum/spawnpoint))
var/datum/spawnpoint/S = new type()
spawntypes[S.display_name] = S
GLOB.spawntypes[S.display_name] = S
/datum/spawnpoint
var/msg //Message to display on the arrivals computer.
@@ -28,7 +28,7 @@ var/list/spawntypes = list()
/datum/spawnpoint/arrivals/New()
..()
turfs = latejoin
turfs = GLOB.latejoin
/datum/spawnpoint/gateway
display_name = "Gateway"
@@ -36,7 +36,7 @@ var/list/spawntypes = list()
/datum/spawnpoint/gateway/New()
..()
turfs = latejoin_gateway
turfs = GLOB.latejoin_gateway
/datum/spawnpoint/cryo
display_name = "Cryogenic Storage"
@@ -45,7 +45,7 @@ var/list/spawntypes = list()
/datum/spawnpoint/cryo/New()
..()
turfs = latejoin_cryo
turfs = GLOB.latejoin_cryo
/datum/spawnpoint/cyborg
display_name = "Cyborg Storage"
@@ -54,4 +54,4 @@ var/list/spawntypes = list()
/datum/spawnpoint/cyborg/New()
..()
turfs = latejoin_cyborg
turfs = GLOB.latejoin_cyborg