"
@@ -498,7 +498,7 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
bantypesearch += "'PERMABAN' "
- var/DBQuery/select_query = dbcon.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, ckey, a_ckey, unbanned, unbanned_ckey, unbanned_datetime, edits, ip, computerid FROM [format_table_name("ban")] WHERE 1 [playersearch] [adminsearch] [ipsearch] [cidsearch] [bantypesearch] ORDER BY bantime DESC LIMIT 100")
+ var/DBQuery/select_query = GLOB.dbcon.NewQuery("SELECT id, bantime, bantype, reason, job, duration, expiration_time, ckey, a_ckey, unbanned, unbanned_ckey, unbanned_datetime, edits, ip, computerid FROM [format_table_name("ban")] WHERE 1 [playersearch] [adminsearch] [ipsearch] [cidsearch] [bantypesearch] ORDER BY bantime DESC LIMIT 100")
select_query.Execute()
while(select_query.NextRow())
@@ -575,9 +575,9 @@ datum/admins/proc/DB_ban_unban_by_id(var/id)
usr << browse(output,"window=lookupbans;size=900x700")
/proc/flag_account_for_forum_sync(ckey)
- if(!dbcon)
+ if(!GLOB.dbcon)
return
var/skey = sanitizeSQL(ckey)
var/sql = "UPDATE [format_table_name("player")] SET fupdate = 1 WHERE ckey = '[skey]'"
- var/DBQuery/adm_query = dbcon.NewQuery(sql)
+ var/DBQuery/adm_query = GLOB.dbcon.NewQuery(sql)
adm_query.Execute()
diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm
index d776b4a2095..c7f2baac4ef 100644
--- a/code/modules/admin/IsBanned.dm
+++ b/code/modules/admin/IsBanned.dm
@@ -25,13 +25,13 @@ world/IsBanned(key, address, computer_id, type, check_ipintel = TRUE)
if (C && ckey == C.ckey && computer_id == C.computer_id && address == C.address)
return //don't recheck connected clients.
- if((ckey in admin_datums) || (ckey in GLOB.deadmins))
- var/datum/admins/A = admin_datums[ckey]
+ if((ckey in GLOB.admin_datums) || (ckey in GLOB.deadmins))
+ var/datum/admins/A = GLOB.admin_datums[ckey]
if(A && (A.rights & R_ADMIN))
admin = 1
//Guest Checking
- if(!guests_allowed && IsGuestKey(key))
+ if(!GLOB.guests_allowed && IsGuestKey(key))
log_adminwarn("Failed Login: [key] [computer_id] [address] - Guests not allowed")
// message_admins("
")
return list("reason"="guest", "desc"="\nReason: Guests not allowed. Please sign in with a BYOND account.")
@@ -82,7 +82,7 @@ world/IsBanned(key, address, computer_id, type, check_ipintel = TRUE)
if(computer_id)
cidquery = " OR computerid = '[computer_id]' "
- var/DBQuery/query = dbcon.NewQuery("SELECT ckey, ip, computerid, a_ckey, reason, expiration_time, duration, bantime, bantype FROM [format_table_name("ban")] WHERE (ckey = '[ckeytext]' [ipquery] [cidquery]) AND (bantype = 'PERMABAN' OR bantype = 'ADMIN_PERMABAN' OR ((bantype = 'TEMPBAN' OR bantype = 'ADMIN_TEMPBAN') AND expiration_time > Now())) AND isnull(unbanned)")
+ var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT ckey, ip, computerid, a_ckey, reason, expiration_time, duration, bantime, bantype FROM [format_table_name("ban")] WHERE (ckey = '[ckeytext]' [ipquery] [cidquery]) AND (bantype = 'PERMABAN' OR bantype = 'ADMIN_PERMABAN' OR ((bantype = 'TEMPBAN' OR bantype = 'ADMIN_TEMPBAN') AND expiration_time > Now())) AND isnull(unbanned)")
query.Execute()
diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm
index 222fc036db2..7b9a9330704 100644
--- a/code/modules/admin/NewBan.dm
+++ b/code/modules/admin/NewBan.dm
@@ -1,61 +1,61 @@
-var/CMinutes = null
-var/savefile/Banlist
-
+GLOBAL_VAR(CMinutes)
+GLOBAL_DATUM(banlist_savefile, /savefile)
+GLOBAL_PROTECT(banlist_savefile) // Obvious reasons
/proc/CheckBan(var/ckey, var/id, var/address)
- if(!Banlist) // if Banlist cannot be located for some reason
+ if(!GLOB.banlist_savefile) // if banlist_savefile cannot be located for some reason
LoadBans() // try to load the bans
- if(!Banlist) // uh oh, can't find bans!
+ if(!GLOB.banlist_savefile) // uh oh, can't find bans!
return 0 // ABORT ABORT ABORT
. = list()
var/appeal
if(config && config.banappeals)
appeal = "\nFor more information on your ban, or to appeal, head to
"
- Banlist.cd = "/base"
- if( "[ckey][id]" in Banlist.dir )
- Banlist.cd = "[ckey][id]"
- if(Banlist["temp"])
- if(!GetExp(Banlist["minutes"]))
+ GLOB.banlist_savefile.cd = "/base"
+ if( "[ckey][id]" in GLOB.banlist_savefile.dir )
+ GLOB.banlist_savefile.cd = "[ckey][id]"
+ if(GLOB.banlist_savefile["temp"])
+ if(!GetExp(GLOB.banlist_savefile["minutes"]))
ClearTempbans()
return 0
else
- .["desc"] = "\nReason: [Banlist["reason"]]\nExpires: [GetExp(Banlist["minutes"])]\nBy: [Banlist["bannedby"]][appeal]"
+ .["desc"] = "\nReason: [GLOB.banlist_savefile["reason"]]\nExpires: [GetExp(GLOB.banlist_savefile["minutes"])]\nBy: [GLOB.banlist_savefile["bannedby"]][appeal]"
else
- Banlist.cd = "/base/[ckey][id]"
- .["desc"] = "\nReason: [Banlist["reason"]]\nExpires:
\nBy: [Banlist["bannedby"]][appeal]"
+ GLOB.banlist_savefile.cd = "/base/[ckey][id]"
+ .["desc"] = "\nReason: [GLOB.banlist_savefile["reason"]]\nExpires:
\nBy: [GLOB.banlist_savefile["bannedby"]][appeal]"
.["reason"] = "ckey/id"
return .
else
- for(var/A in Banlist.dir)
- Banlist.cd = "/base/[A]"
+ for(var/A in GLOB.banlist_savefile.dir)
+ GLOB.banlist_savefile.cd = "/base/[A]"
var/matches
- if( ckey == Banlist["key"] )
+ if( ckey == GLOB.banlist_savefile["key"] )
matches += "ckey"
- if( id == Banlist["id"] )
+ if( id == GLOB.banlist_savefile["id"] )
if(matches)
matches += "/"
matches += "id"
- if( address == Banlist["ip"] )
+ if( address == GLOB.banlist_savefile["ip"] )
if(matches)
matches += "/"
matches += "ip"
if(matches)
- if(Banlist["temp"])
- if(!GetExp(Banlist["minutes"]))
+ if(GLOB.banlist_savefile["temp"])
+ if(!GetExp(GLOB.banlist_savefile["minutes"]))
ClearTempbans()
return 0
else
- .["desc"] = "\nReason: [Banlist["reason"]]\nExpires: [GetExp(Banlist["minutes"])]\nBy: [Banlist["bannedby"]][appeal]"
+ .["desc"] = "\nReason: [GLOB.banlist_savefile["reason"]]\nExpires: [GetExp(GLOB.banlist_savefile["minutes"])]\nBy: [GLOB.banlist_savefile["bannedby"]][appeal]"
else
- .["desc"] = "\nReason: [Banlist["reason"]]\nExpires:
\nBy: [Banlist["bannedby"]][appeal]"
+ .["desc"] = "\nReason: [GLOB.banlist_savefile["reason"]]\nExpires:
\nBy: [GLOB.banlist_savefile["bannedby"]][appeal]"
.["reason"] = matches
return .
return 0
/proc/UpdateTime() //No idea why i made this a proc.
- CMinutes = (world.realtime / 10) / 60
+ GLOB.CMinutes = (world.realtime / 10) / 60
return 1
/hook/startup/proc/loadBans()
@@ -63,17 +63,17 @@ var/savefile/Banlist
/proc/LoadBans()
- Banlist = new("data/banlist.bdb")
+ GLOB.banlist_savefile = new("data/banlist.bdb")
log_admin("Loading Banlist")
- if(!length(Banlist.dir)) log_admin("Banlist is empty.")
+ if(!length(GLOB.banlist_savefile.dir)) log_admin("Banlist is empty.")
- if(!Banlist.dir.Find("base"))
+ if(!GLOB.banlist_savefile.dir.Find("base"))
log_admin("Banlist missing base dir.")
- Banlist.dir.Add("base")
- Banlist.cd = "/base"
- else if(Banlist.dir.Find("base"))
- Banlist.cd = "/base"
+ GLOB.banlist_savefile.dir.Add("base")
+ GLOB.banlist_savefile.cd = "/base"
+ else if(GLOB.banlist_savefile.dir.Find("base"))
+ GLOB.banlist_savefile.cd = "/base"
ClearTempbans()
return 1
@@ -81,17 +81,17 @@ var/savefile/Banlist
/proc/ClearTempbans()
UpdateTime()
- Banlist.cd = "/base"
- for(var/A in Banlist.dir)
- Banlist.cd = "/base/[A]"
- if(!Banlist["key"] || !Banlist["id"])
+ GLOB.banlist_savefile.cd = "/base"
+ for(var/A in GLOB.banlist_savefile.dir)
+ GLOB.banlist_savefile.cd = "/base/[A]"
+ if(!GLOB.banlist_savefile["key"] || !GLOB.banlist_savefile["id"])
RemoveBan(A)
log_admin("Invalid Ban.")
message_admins("Invalid Ban.")
continue
- if(!Banlist["temp"]) continue
- if(CMinutes >= Banlist["minutes"]) RemoveBan(A)
+ if(!GLOB.banlist_savefile["temp"]) continue
+ if(GLOB.CMinutes >= GLOB.banlist_savefile["minutes"]) RemoveBan(A)
return 1
@@ -102,23 +102,23 @@ var/savefile/Banlist
if(temp)
UpdateTime()
- bantimestamp = CMinutes + minutes
+ bantimestamp = GLOB.CMinutes + minutes
- Banlist.cd = "/base"
- if( Banlist.dir.Find("[ckey][computerid]") )
+ GLOB.banlist_savefile.cd = "/base"
+ if( GLOB.banlist_savefile.dir.Find("[ckey][computerid]") )
to_chat(usr, "
")
return 0
else
- Banlist.dir.Add("[ckey][computerid]")
- Banlist.cd = "/base/[ckey][computerid]"
- Banlist["key"] << ckey
- Banlist["id"] << computerid
- Banlist["ip"] << address
- Banlist["reason"] << reason
- Banlist["bannedby"] << bannedby
- Banlist["temp"] << temp
+ GLOB.banlist_savefile.dir.Add("[ckey][computerid]")
+ GLOB.banlist_savefile.cd = "/base/[ckey][computerid]"
+ GLOB.banlist_savefile["key"] << ckey
+ GLOB.banlist_savefile["id"] << computerid
+ GLOB.banlist_savefile["ip"] << address
+ GLOB.banlist_savefile["reason"] << reason
+ GLOB.banlist_savefile["bannedby"] << bannedby
+ GLOB.banlist_savefile["temp"] << temp
if(temp)
- Banlist["minutes"] << bantimestamp
+ GLOB.banlist_savefile["minutes"] << bantimestamp
if(!temp)
add_note(ckey, "Permanently banned - [reason]", null, bannedby, 0)
else
@@ -129,12 +129,12 @@ var/savefile/Banlist
var/key
var/id
- Banlist.cd = "/base/[foldername]"
- Banlist["key"] >> key
- Banlist["id"] >> id
- Banlist.cd = "/base"
+ GLOB.banlist_savefile.cd = "/base/[foldername]"
+ GLOB.banlist_savefile["key"] >> key
+ GLOB.banlist_savefile["id"] >> id
+ GLOB.banlist_savefile.cd = "/base"
- if(!Banlist.dir.Remove(foldername)) return 0
+ if(!GLOB.banlist_savefile.dir.Remove(foldername)) return 0
if(!usr)
log_admin("Ban Expired: [key]")
@@ -145,18 +145,18 @@ var/savefile/Banlist
message_admins("[key_name_admin(usr)] unbanned: [key]")
feedback_inc("ban_unban",1)
usr.client.holder.DB_ban_unban( ckey(key), BANTYPE_ANY_FULLBAN)
- for(var/A in Banlist.dir)
- Banlist.cd = "/base/[A]"
- if(key == Banlist["key"] /*|| id == Banlist["id"]*/)
- Banlist.cd = "/base"
- Banlist.dir.Remove(A)
+ for(var/A in GLOB.banlist_savefile.dir)
+ GLOB.banlist_savefile.cd = "/base/[A]"
+ if(key == GLOB.banlist_savefile["key"] /*|| id == GLOB.banlist_savefile["id"]*/)
+ GLOB.banlist_savefile.cd = "/base"
+ GLOB.banlist_savefile.dir.Remove(A)
continue
return 1
/proc/GetExp(minutes as num)
UpdateTime()
- var/exp = minutes - CMinutes
+ var/exp = minutes - GLOB.CMinutes
if(exp <= 0)
return 0
else
@@ -172,19 +172,19 @@ var/savefile/Banlist
/datum/admins/proc/unbanpanel()
var/count = 0
var/dat
- Banlist.cd = "/base"
- for(var/A in Banlist.dir)
+ GLOB.banlist_savefile.cd = "/base"
+ for(var/A in GLOB.banlist_savefile.dir)
count++
- Banlist.cd = "/base/[A]"
+ GLOB.banlist_savefile.cd = "/base/[A]"
var/ref = UID()
- var/key = Banlist["key"]
- var/id = Banlist["id"]
- var/ip = Banlist["ip"]
- var/reason = Banlist["reason"]
- var/by = Banlist["bannedby"]
+ var/key = GLOB.banlist_savefile["key"]
+ var/id = GLOB.banlist_savefile["id"]
+ var/ip = GLOB.banlist_savefile["ip"]
+ var/reason = GLOB.banlist_savefile["reason"]
+ var/by = GLOB.banlist_savefile["bannedby"]
var/expiry
- if(Banlist["temp"])
- expiry = GetExp(Banlist["minutes"])
+ if(GLOB.banlist_savefile["temp"])
+ expiry = GetExp(GLOB.banlist_savefile["minutes"])
if(!expiry) expiry = "Removal Pending"
else expiry = "Permaban"
@@ -207,26 +207,26 @@ var/savefile/Banlist
var/a = pick(1,0)
var/b = pick(1,0)
if(b)
- Banlist.cd = "/base"
- Banlist.dir.Add("trash[i]trashid[i]")
- Banlist.cd = "/base/trash[i]trashid[i]"
- Banlist["key"] << "trash[i]"
+ GLOB.banlist_savefile.cd = "/base"
+ GLOB.banlist_savefile.dir.Add("trash[i]trashid[i]")
+ GLOB.banlist_savefile.cd = "/base/trash[i]trashid[i]"
+ GLOB.banlist_savefile["key"] << "trash[i]"
else
- Banlist.cd = "/base"
- Banlist.dir.Add("[last]trashid[i]")
- Banlist.cd = "/base/[last]trashid[i]"
- Banlist["key"] << last
- Banlist["id"] << "trashid[i]"
- Banlist["reason"] << "Trashban[i]."
- Banlist["temp"] << a
- Banlist["minutes"] << CMinutes + rand(1,2000)
- Banlist["bannedby"] << "trashmin"
+ GLOB.banlist_savefile.cd = "/base"
+ GLOB.banlist_savefile.dir.Add("[last]trashid[i]")
+ GLOB.banlist_savefile.cd = "/base/[last]trashid[i]"
+ GLOB.banlist_savefile["key"] << last
+ GLOB.banlist_savefile["id"] << "trashid[i]"
+ GLOB.banlist_savefile["reason"] << "Trashban[i]."
+ GLOB.banlist_savefile["temp"] << a
+ GLOB.banlist_savefile["minutes"] << GLOB.CMinutes + rand(1,2000)
+ GLOB.banlist_savefile["bannedby"] << "trashmin"
last = "trash[i]"
- Banlist.cd = "/base"
+ GLOB.banlist_savefile.cd = "/base"
/proc/ClearAllBans()
- Banlist.cd = "/base"
- for(var/A in Banlist.dir)
+ GLOB.banlist_savefile.cd = "/base"
+ for(var/A in GLOB.banlist_savefile.dir)
RemoveBan(A)
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 31aa6d5bc4c..df156c5b0df 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -1,5 +1,5 @@
-var/global/BSACooldown = 0
-var/global/nologevent = 0
+GLOBAL_VAR_INIT(BSACooldown, 0)
+GLOBAL_VAR_INIT(nologevent, 0)
////////////////////////////////
/proc/message_admins(var/msg)
@@ -10,7 +10,7 @@ var/global/nologevent = 0
to_chat(C, msg)
/proc/msg_admin_attack(var/text, var/loglevel)
- if(!nologevent)
+ if(!GLOB.nologevent)
var/rendered = "
"
for(var/client/C in GLOB.admins)
if(R_ADMIN & C.holder.rights)
@@ -197,7 +197,7 @@ var/global/nologevent = 0
for(var/block=1;block<=DNA_SE_LENGTH;block++)
if(((block-1)%5)==0)
body += "
| [block-1] | "
- bname = assigned_blocks[block]
+ bname = GLOB.assigned_blocks[block]
body += ""
if(bname)
var/bstate=M.dna.GetSEState(block)
@@ -306,7 +306,7 @@ var/global/nologevent = 0
Feed channels and stories entered through here will be uneditable and handled as official news by the rest of the units.
Note that this panel allows full freedom over the news network, there are no constrictions except the few basic ones. Don't break things!
"}
- if(news_network.wanted_issue)
+ if(GLOB.news_network.wanted_issue)
dat+= " Read Wanted Issue"
dat+= {"
Create Feed Channel
@@ -316,7 +316,7 @@ var/global/nologevent = 0
"}
var/wanted_already = 0
- if(news_network.wanted_issue)
+ if(GLOB.news_network.wanted_issue)
wanted_already = 1
dat+={" Feed Security functions:
@@ -327,10 +327,10 @@ var/global/nologevent = 0
"}
if(1)
dat+= "Station Feed Channels "
- if( isemptylist(news_network.network_channels) )
+ if( isemptylist(GLOB.news_network.network_channels) )
dat+="No active channels found..."
else
- for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
+ for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels)
if(CHANNEL.is_admin_channel)
dat+="[CHANNEL.channel_name] "
else
@@ -377,7 +377,7 @@ var/global/nologevent = 0
if(src.admincaster_feed_channel.channel_name =="" || src.admincaster_feed_channel.channel_name == "\[REDACTED\]")
dat+="•Invalid channel name. "
var/check = 0
- for(var/datum/feed_channel/FC in news_network.network_channels)
+ for(var/datum/feed_channel/FC in GLOB.news_network.network_channels)
if(FC.channel_name == src.admincaster_feed_channel.channel_name)
check = 1
break
@@ -414,10 +414,10 @@ var/global/nologevent = 0
Keep in mind that users attempting to view a censored feed will instead see the \[REDACTED\] tag above it.
Select Feed channel to get Stories from:
"}
- if(isemptylist(news_network.network_channels))
+ if(isemptylist(GLOB.news_network.network_channels))
dat+="No feed channels found active... "
else
- for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
+ for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels)
dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""] "
dat+=" Cancel"
if(11)
@@ -427,10 +427,10 @@ var/global/nologevent = 0
morale, integrity or disciplinary behaviour. A D-Notice will render a channel unable to be updated by anyone, without deleting any feed
stories it might contain at the time. You can lift a D-Notice if you have the required access at any time.
"}
- if(isemptylist(news_network.network_channels))
+ if(isemptylist(GLOB.news_network.network_channels))
dat+="No feed channels found active... "
else
- for(var/datum/feed_channel/CHANNEL in news_network.network_channels)
+ for(var/datum/feed_channel/CHANNEL in GLOB.news_network.network_channels)
dat+="[CHANNEL.channel_name] [(CHANNEL.censored) ? ("***") : ""] "
dat+=" Back"
@@ -470,7 +470,7 @@ var/global/nologevent = 0
dat+="Wanted Issue Handler:"
var/wanted_already = 0
var/end_param = 1
- if(news_network.wanted_issue)
+ if(GLOB.news_network.wanted_issue)
wanted_already = 1
end_param = 2
if(wanted_already)
@@ -481,7 +481,7 @@ var/global/nologevent = 0
Description: [src.admincaster_feed_message.body]
"}
if(wanted_already)
- dat+="Wanted Issue created by: [news_network.wanted_issue.backup_author] "
+ dat+="Wanted Issue created by: [GLOB.news_network.wanted_issue.backup_author] "
else
dat+="Wanted Issue will be created under prosecutor: [src.admincaster_signature] "
dat+=" [(wanted_already) ? ("Edit Issue") : ("Submit")]"
@@ -507,13 +507,13 @@ var/global/nologevent = 0
"}
if(18)
dat+={"
- -- STATIONWIDE WANTED ISSUE -- \[Submitted by: [news_network.wanted_issue.backup_author]\]
- Criminal: [news_network.wanted_issue.author]
- Description: [news_network.wanted_issue.body]
+ -- STATIONWIDE WANTED ISSUE -- \[Submitted by: [GLOB.news_network.wanted_issue.backup_author]\]
+ Criminal: [GLOB.news_network.wanted_issue.author]
+ Description: [GLOB.news_network.wanted_issue.body]
Photo::
"}
- if(news_network.wanted_issue.img)
- usr << browse_rsc(news_network.wanted_issue.img, "tmp_photow.png")
+ if(GLOB.news_network.wanted_issue.img)
+ usr << browse_rsc(GLOB.news_network.wanted_issue.img, "tmp_photow.png")
dat+="
"
else
dat+="None"
@@ -536,7 +536,7 @@ var/global/nologevent = 0
return
var/dat = "Job Bans!
"
- for(var/t in jobban_keylist)
+ for(var/t in GLOB.jobban_keylist)
var/r = t
if( findtext(r,"##") )
r = copytext( r, 1, findtext(r,"##") )//removes the description
@@ -552,7 +552,7 @@ var/global/nologevent = 0
Game Panel \n
Change Game Mode
"}
- if(master_mode == "secret")
+ if(GLOB.master_mode == "secret")
dat += "(Force Secret Mode) "
dat += {"
@@ -714,8 +714,8 @@ var/global/nologevent = 0
if(!check_rights(R_SERVER))
return
- enter_allowed = !( enter_allowed )
- if(!( enter_allowed ))
+ GLOB.enter_allowed = !( GLOB.enter_allowed )
+ if(!( GLOB.enter_allowed ))
to_chat(world, "New players may no longer enter the game.")
else
to_chat(world, "New players may now enter the game.")
@@ -750,13 +750,13 @@ var/global/nologevent = 0
if(!check_rights(R_SERVER))
return
- abandon_allowed = !( abandon_allowed )
- if(abandon_allowed)
+ GLOB.abandon_allowed = !( GLOB.abandon_allowed )
+ if(GLOB.abandon_allowed)
to_chat(world, "You may now respawn.")
else
to_chat(world, "You may no longer respawn :(")
- message_admins("[key_name_admin(usr)] toggled respawn to [abandon_allowed ? "On" : "Off"].", 1)
- log_admin("[key_name(usr)] toggled respawn to [abandon_allowed ? "On" : "Off"].")
+ message_admins("[key_name_admin(usr)] toggled respawn to [GLOB.abandon_allowed ? "On" : "Off"].", 1)
+ log_admin("[key_name(usr)] toggled respawn to [GLOB.abandon_allowed ? "On" : "Off"].")
world.update_status()
feedback_add_details("admin_verb","TR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -768,9 +768,9 @@ var/global/nologevent = 0
if(!check_rights(R_EVENT))
return
- aliens_allowed = !aliens_allowed
- log_admin("[key_name(usr)] toggled aliens to [aliens_allowed].")
- message_admins("[key_name_admin(usr)] toggled aliens [aliens_allowed ? "on" : "off"].")
+ GLOB.aliens_allowed = !GLOB.aliens_allowed
+ log_admin("[key_name(usr)] toggled aliens to [GLOB.aliens_allowed].")
+ message_admins("[key_name_admin(usr)] toggled aliens [GLOB.aliens_allowed ? "on" : "off"].")
feedback_add_details("admin_verb","TA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/admins/proc/delay()
@@ -786,13 +786,13 @@ var/global/nologevent = 0
log_admin("[key_name(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
message_admins("[key_name(usr)] [SSticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
return //alert("Round end delayed", null, null, null, null, null)
- if(going)
- going = FALSE
+ if(SSticker.ticker_going)
+ SSticker.ticker_going = FALSE
SSticker.delay_end = TRUE
to_chat(world, "The game start has been delayed.")
log_admin("[key_name(usr)] delayed the game.")
else
- going = TRUE
+ SSticker.ticker_going = TRUE
to_chat(world, "The game will start soon.")
log_admin("[key_name(usr)] removed the delay.")
feedback_add_details("admin_verb","DELAY") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -899,13 +899,13 @@ var/global/nologevent = 0
if(!check_rights(R_SERVER))
return
- guests_allowed = !( guests_allowed )
- if(!( guests_allowed ))
+ GLOB.guests_allowed = !( GLOB.guests_allowed )
+ if(!( GLOB.guests_allowed ))
to_chat(world, "Guests may no longer enter the game.")
else
to_chat(world, "Guests may now enter the game.")
- log_admin("[key_name(usr)] toggled guests game entering [guests_allowed ? "" : "dis"]allowed.")
- message_admins("[key_name_admin(usr)] toggled guests game entering [guests_allowed ? "" : "dis"]allowed.", 1)
+ log_admin("[key_name(usr)] toggled guests game entering [GLOB.guests_allowed ? "" : "dis"]allowed.")
+ message_admins("[key_name_admin(usr)] toggled guests game entering [GLOB.guests_allowed ? "" : "dis"]allowed.", 1)
feedback_add_details("admin_verb","TGU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/admins/proc/output_ai_laws()
@@ -954,12 +954,12 @@ var/global/nologevent = 0
//ALL DONE
//*********************************************************************************************************
-var/gamma_ship_location = 1 // 0 = station , 1 = space
+GLOBAL_VAR_INIT(gamma_ship_location, 1) // 0 = station , 1 = space
/proc/move_gamma_ship()
var/area/fromArea
var/area/toArea
- if(gamma_ship_location == 1)
+ if(GLOB.gamma_ship_location == 1)
fromArea = locate(/area/shuttle/gamma/space)
toArea = locate(/area/shuttle/gamma/station)
else
@@ -970,10 +970,10 @@ var/gamma_ship_location = 1 // 0 = station , 1 = space
for(var/obj/machinery/mech_bay_recharge_port/P in toArea)
P.update_recharge_turf()
- if(gamma_ship_location)
- gamma_ship_location = 0
+ if(GLOB.gamma_ship_location)
+ GLOB.gamma_ship_location = 0
else
- gamma_ship_location = 1
+ GLOB.gamma_ship_location = 1
return
/proc/formatJumpTo(var/location,var/where="")
diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm
index 49b2f06d003..13b786c5174 100644
--- a/code/modules/admin/admin_investigate.dm
+++ b/code/modules/admin/admin_investigate.dm
@@ -23,18 +23,18 @@
if(!message) return
var/F = investigate_subject2file(subject)
if(!F) return
- investigate_log_subjects |= subject
+ GLOB.investigate_log_subjects |= subject
F << "[time_stamp()] \ref[src] ([x],[y],[z]) || [src] [message] "
/proc/log_investigate(message, subject)
if(!message) return
var/F = investigate_subject2file(subject)
if(!F) return
- investigate_log_subjects |= subject
+ GLOB.investigate_log_subjects |= subject
F << "[time_stamp()] || [message] "
//ADMINVERBS
-/client/proc/investigate_show( subject in investigate_log_subjects )
+/client/proc/investigate_show( subject in GLOB.investigate_log_subjects )
set name = "Investigate"
set category = "Admin"
if(!holder) return
diff --git a/code/modules/admin/admin_memo.dm b/code/modules/admin/admin_memo.dm
index 530b9e7958e..455b38e1e0f 100644
--- a/code/modules/admin/admin_memo.dm
+++ b/code/modules/admin/admin_memo.dm
@@ -3,7 +3,7 @@
set category = "Server"
if(!check_rights(R_SERVER))
return
- if(!dbcon.IsConnected())
+ if(!GLOB.dbcon.IsConnected())
to_chat(src, "Failed to establish database connection.")
return
var/memotask = input(usr,"Choose task.","Memo") in list("Show","Write","Edit","Remove")
@@ -16,13 +16,13 @@
return
if(!task)
return
- if(!dbcon.IsConnected())
+ if(!GLOB.dbcon.IsConnected())
to_chat(src, "Failed to establish database connection.")
return
var/sql_ckey = sanitizeSQL(src.ckey)
switch(task)
if("Write")
- var/DBQuery/query_memocheck = dbcon.NewQuery("SELECT ckey FROM [format_table_name("memo")] WHERE ckey = '[sql_ckey]'")
+ var/DBQuery/query_memocheck = GLOB.dbcon.NewQuery("SELECT ckey FROM [format_table_name("memo")] WHERE ckey = '[sql_ckey]'")
if(!query_memocheck.Execute())
var/err = query_memocheck.ErrorMsg()
log_game("SQL ERROR obtaining ckey from memo table. Error : \[[err]\]\n")
@@ -35,7 +35,7 @@
return
memotext = sanitizeSQL(memotext)
var/timestamp = SQLtime()
- var/DBQuery/query_memoadd = dbcon.NewQuery("INSERT INTO [format_table_name("memo")] (ckey, memotext, timestamp) VALUES ('[sql_ckey]', '[memotext]', '[timestamp]')")
+ var/DBQuery/query_memoadd = GLOB.dbcon.NewQuery("INSERT INTO [format_table_name("memo")] (ckey, memotext, timestamp) VALUES ('[sql_ckey]', '[memotext]', '[timestamp]')")
if(!query_memoadd.Execute())
var/err = query_memoadd.ErrorMsg()
log_game("SQL ERROR adding new memo. Error : \[[err]\]\n")
@@ -43,7 +43,7 @@
log_admin("[key_name(src)] has set a memo: [memotext]")
message_admins("[key_name_admin(src)] has set a memo: [memotext]")
if("Edit")
- var/DBQuery/query_memolist = dbcon.NewQuery("SELECT ckey FROM [format_table_name("memo")]")
+ var/DBQuery/query_memolist = GLOB.dbcon.NewQuery("SELECT ckey FROM [format_table_name("memo")]")
if(!query_memolist.Execute())
var/err = query_memolist.ErrorMsg()
log_game("SQL ERROR obtaining ckey from memo table. Error : \[[err]\]\n")
@@ -59,7 +59,7 @@
if(!target_ckey)
return
var/target_sql_ckey = sanitizeSQL(target_ckey)
- var/DBQuery/query_memofind = dbcon.NewQuery("SELECT memotext FROM [format_table_name("memo")] WHERE ckey = '[target_sql_ckey]'")
+ var/DBQuery/query_memofind = GLOB.dbcon.NewQuery("SELECT memotext FROM [format_table_name("memo")] WHERE ckey = '[target_sql_ckey]'")
if(!query_memofind.Execute())
var/err = query_memofind.ErrorMsg()
log_game("SQL ERROR obtaining memotext from memo table. Error : \[[err]\]\n")
@@ -72,7 +72,7 @@
new_memo = sanitizeSQL(new_memo)
var/edit_text = "Edited by [sql_ckey] on [SQLtime()] from [old_memo] to [new_memo] "
edit_text = sanitizeSQL(edit_text)
- var/DBQuery/update_query = dbcon.NewQuery("UPDATE [format_table_name("memo")] SET memotext = '[new_memo]', last_editor = '[sql_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE ckey = '[target_sql_ckey]'")
+ var/DBQuery/update_query = GLOB.dbcon.NewQuery("UPDATE [format_table_name("memo")] SET memotext = '[new_memo]', last_editor = '[sql_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE ckey = '[target_sql_ckey]'")
if(!update_query.Execute())
var/err = update_query.ErrorMsg()
log_game("SQL ERROR editing memo. Error : \[[err]\]\n")
@@ -84,7 +84,7 @@
log_admin("[key_name(src)] has edited [target_sql_ckey]'s memo from \"[old_memo]\" to \"[new_memo]\"")
message_admins("[key_name_admin(src)] has edited [target_sql_ckey]'s memo from \"[old_memo]\" to \"[new_memo]\"")
if("Show")
- var/DBQuery/query_memoshow = dbcon.NewQuery("SELECT ckey, memotext, timestamp, last_editor FROM [format_table_name("memo")]")
+ var/DBQuery/query_memoshow = GLOB.dbcon.NewQuery("SELECT ckey, memotext, timestamp, last_editor FROM [format_table_name("memo")]")
if(!query_memoshow.Execute())
var/err = query_memoshow.ErrorMsg()
log_game("SQL ERROR obtaining ckey, memotext, timestamp, last_editor from memo table. Error : \[[err]\]\n")
@@ -104,7 +104,7 @@
else if(!silent)
to_chat(src, "No memos found in database.")
if("Remove")
- var/DBQuery/query_memodellist = dbcon.NewQuery("SELECT ckey FROM [format_table_name("memo")]")
+ var/DBQuery/query_memodellist = GLOB.dbcon.NewQuery("SELECT ckey FROM [format_table_name("memo")]")
if(!query_memodellist.Execute())
var/err = query_memodellist.ErrorMsg()
log_game("SQL ERROR obtaining ckey from memo table. Error : \[[err]\]\n")
@@ -120,7 +120,7 @@
if(!target_ckey)
return
var/target_sql_ckey = sanitizeSQL(target_ckey)
- var/DBQuery/query_memodel = dbcon.NewQuery("DELETE FROM [format_table_name("memo")] WHERE ckey = '[target_sql_ckey]'")
+ var/DBQuery/query_memodel = GLOB.dbcon.NewQuery("DELETE FROM [format_table_name("memo")] WHERE ckey = '[target_sql_ckey]'")
if(!query_memodel.Execute())
var/err = query_memodel.ErrorMsg()
log_game("SQL ERROR removing memo. Error : \[[err]\]\n")
diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm
index 82f82d3dabe..f8a31f885ed 100644
--- a/code/modules/admin/admin_ranks.dm
+++ b/code/modules/admin/admin_ranks.dm
@@ -1,8 +1,9 @@
-var/list/admin_ranks = list() //list of all ranks with associated rights
+GLOBAL_LIST_EMPTY(admin_ranks) //list of all ranks with associated rights
+GLOBAL_PROTECT(admin_ranks) // this shit is being protected for obvious reasons
//load our rank - > rights associations
/proc/load_admin_ranks()
- admin_ranks.Cut()
+ GLOB.admin_ranks.Cut()
var/previous_rights = 0
@@ -44,13 +45,13 @@ var/list/admin_ranks = list() //list of all ranks with associated rights
if("mentor") rights |= R_MENTOR
if("proccall") rights |= R_PROCCALL
- admin_ranks[rank] = rights
+ GLOB.admin_ranks[rank] = rights
previous_rights = rights
#ifdef TESTING
var/msg = "Permission Sets Built:\n"
for(var/rank in admin_ranks)
- msg += "\t[rank] - [admin_ranks[rank]]\n"
+ msg += "\t[rank] - [GLOB.admin_ranks[rank]]\n"
testing(msg)
#endif
@@ -60,7 +61,7 @@ var/list/admin_ranks = list() //list of all ranks with associated rights
/proc/load_admins()
//clear the datums references
- admin_datums.Cut()
+ GLOB.admin_datums.Cut()
for(var/client/C in GLOB.admins)
C.remove_admin_verbs()
C.holder = null
@@ -91,7 +92,7 @@ var/list/admin_ranks = list() //list of all ranks with associated rights
rank = ckeyEx(List[2])
//load permissions associated with this rank
- var/rights = admin_ranks[rank]
+ var/rights = GLOB.admin_ranks[rank]
//create the admin datum and store it for later use
var/datum/admins/D = new /datum/admins(rank, rights, ckey)
@@ -103,13 +104,13 @@ var/list/admin_ranks = list() //list of all ranks with associated rights
//The current admin system uses SQL
establish_db_connection()
- if(!dbcon.IsConnected())
+ if(!GLOB.dbcon.IsConnected())
log_world("Failed to connect to database in load_admins(). Reverting to legacy system.")
config.admin_legacy_system = 1
load_admins()
return
- var/DBQuery/query = dbcon.NewQuery("SELECT ckey, rank, level, flags FROM [format_table_name("admin")]")
+ var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT ckey, rank, level, flags FROM [format_table_name("admin")]")
query.Execute()
while(query.NextRow())
var/ckey = query.item[1]
@@ -122,7 +123,7 @@ var/list/admin_ranks = list() //list of all ranks with associated rights
//find the client for a ckey if they are connected and associate them with the new admin datum
D.associate(GLOB.directory[ckey])
- if(!admin_datums)
+ if(!GLOB.admin_datums)
log_world("The database query in load_admins() resulted in no admins being added to the list. Reverting to legacy system.")
config.admin_legacy_system = 1
load_admins()
@@ -130,9 +131,9 @@ var/list/admin_ranks = list() //list of all ranks with associated rights
#ifdef TESTING
var/msg = "Admins Built:\n"
- for(var/ckey in admin_datums)
+ for(var/ckey in GLOB.admin_datums)
var/rank
- var/datum/admins/D = admin_datums[ckey]
+ var/datum/admins/D = GLOB.admin_datums[ckey]
if(D) rank = D.rank
msg += "\t[ckey] - [rank]\n"
testing(msg)
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 9a60d41aa66..34929b52f53 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -1,13 +1,13 @@
//admin verb groups - They can overlap if you so wish. Only one of each verb will exist in the verbs list regardless
-var/list/admin_verbs_default = list(
+GLOBAL_LIST_INIT(admin_verbs_default, list(
/client/proc/deadmin_self, /*destroys our own admin datum so we can play as a regular player*/
/client/proc/hide_verbs, /*hides all our adminverbs*/
/client/proc/toggleadminhelpsound,
/client/proc/togglementorhelpsound,
/client/proc/cmd_mentor_check_new_players,
/client/proc/cmd_mentor_check_player_exp /* shows players by playtime */
- )
-var/list/admin_verbs_admin = list(
+ ))
+GLOBAL_LIST_INIT(admin_verbs_admin, list(
/client/proc/check_antagonists, /*shows all antags*/
/datum/admins/proc/show_player_panel,
/client/proc/player_panel, /*shows an interface for all players, with links to various panels (old style)*/
@@ -26,6 +26,7 @@ var/list/admin_verbs_admin = list(
/client/proc/cmd_admin_subtle_message, /*send an message to somebody as a 'voice in their head'*/
/client/proc/cmd_admin_delete, /*delete an instance/object/mob/etc*/
/client/proc/cmd_admin_check_contents, /*displays the contents of an instance*/
+ /client/proc/cmd_admin_open_logging_view,
/client/proc/getserverlogs, /*allows us to fetch server logs (diary) for other days*/
/client/proc/jumptocoord, /*we ghost and jump to a coordinate*/
/client/proc/Getmob, /*teleports a mob to our location*/
@@ -79,20 +80,20 @@ var/list/admin_verbs_admin = list(
/client/proc/list_ssds_afks,
/client/proc/cmd_admin_headset_message,
/client/proc/spawn_floor_cluwne
-)
-var/list/admin_verbs_ban = list(
+))
+GLOBAL_LIST_INIT(admin_verbs_ban, list(
/client/proc/unban_panel,
/client/proc/jobbans,
/client/proc/stickybanpanel
- )
-var/list/admin_verbs_sounds = list(
+ ))
+GLOBAL_LIST_INIT(admin_verbs_sounds, list(
/client/proc/play_local_sound,
/client/proc/play_sound,
/client/proc/play_server_sound,
/client/proc/play_intercomm_sound,
/client/proc/stop_global_admin_sounds
- )
-var/list/admin_verbs_event = list(
+ ))
+GLOBAL_LIST_INIT(admin_verbs_event, list(
/client/proc/object_talk,
/client/proc/cmd_admin_dress,
/client/proc/cmd_admin_gib_self,
@@ -117,14 +118,14 @@ var/list/admin_verbs_event = list(
/client/proc/event_manager_panel,
/client/proc/modify_goals,
/client/proc/outfit_manager
- )
+ ))
-var/list/admin_verbs_spawn = list(
+GLOBAL_LIST_INIT(admin_verbs_spawn, list(
/datum/admins/proc/spawn_atom, /*allows us to spawn instances*/
/client/proc/respawn_character,
/client/proc/admin_deserialize
- )
-var/list/admin_verbs_server = list(
+ ))
+GLOBAL_LIST_INIT(admin_verbs_server, list(
/client/proc/ToRban,
/client/proc/Set_Holiday,
/datum/admins/proc/startnow,
@@ -144,8 +145,8 @@ var/list/admin_verbs_server = list(
/client/proc/toggle_antagHUD_restrictions,
/client/proc/set_ooc,
/client/proc/reset_ooc
- )
-var/list/admin_verbs_debug = list(
+ ))
+GLOBAL_LIST_INIT(admin_verbs_debug, list(
/client/proc/cmd_admin_list_open_jobs,
/client/proc/Debug2,
/client/proc/cmd_debug_make_powernets,
@@ -172,21 +173,21 @@ var/list/admin_verbs_debug = list(
/client/proc/admin_serialize,
/client/proc/jump_to_ruin,
/client/proc/toggle_medal_disable,
- )
-var/list/admin_verbs_possess = list(
+ ))
+GLOBAL_LIST_INIT(admin_verbs_possess, list(
/proc/possess,
/proc/release
- )
-var/list/admin_verbs_permissions = list(
+ ))
+GLOBAL_LIST_INIT(admin_verbs_permissions, list(
/client/proc/edit_admin_permissions,
/client/proc/create_poll,
/client/proc/big_brother
- )
-var/list/admin_verbs_rejuv = list(
+ ))
+GLOBAL_LIST_INIT(admin_verbs_rejuv, list(
/client/proc/respawn_character,
/client/proc/cmd_admin_rejuvenate
- )
-var/list/admin_verbs_mod = list(
+ ))
+GLOBAL_LIST_INIT(admin_verbs_mod, list(
/client/proc/cmd_admin_pm_context, /*right-click adminPM interface*/
/client/proc/cmd_admin_pm_panel, /*admin-pm list*/
/client/proc/cmd_admin_pm_by_key_panel, /*admin-pm list by key*/
@@ -199,8 +200,8 @@ var/list/admin_verbs_mod = list(
/datum/admins/proc/show_player_panel,
/client/proc/jobbans,
/client/proc/debug_variables /*allows us to -see- the variables of any instance in the game. +VAREDIT needed to modify*/
-)
-var/list/admin_verbs_mentor = list(
+))
+GLOBAL_LIST_INIT(admin_verbs_mentor, list(
/client/proc/cmd_admin_pm_context, /*right-click adminPM interface*/
/client/proc/cmd_admin_pm_panel, /*admin-pm list*/
/client/proc/cmd_admin_pm_by_key_panel, /*admin-pm list by key*/
@@ -208,20 +209,20 @@ var/list/admin_verbs_mentor = list(
/client/proc/toggleMentorTicketLogs,
/client/proc/cmd_mentor_say /* mentor say*/
// cmd_mentor_say is added/removed by the toggle_mentor_chat verb
-)
-var/list/admin_verbs_proccall = list(
+))
+GLOBAL_LIST_INIT(admin_verbs_proccall, list(
/client/proc/callproc,
/client/proc/callproc_datum,
/client/proc/SDQL2_query
-)
-var/list/admin_verbs_ticket = list(
+))
+GLOBAL_LIST_INIT(admin_verbs_ticket, list(
/client/proc/openAdminTicketUI,
/client/proc/toggleticketlogs,
/client/proc/openMentorTicketUI,
/client/proc/toggleMentorTicketLogs,
/client/proc/resolveAllAdminTickets,
/client/proc/resolveAllMentorTickets
-)
+))
/client/proc/on_holder_add()
if(chatOutput && chatOutput.loaded)
@@ -229,62 +230,62 @@ var/list/admin_verbs_ticket = list(
/client/proc/add_admin_verbs()
if(holder)
- verbs += admin_verbs_default
+ verbs += GLOB.admin_verbs_default
if(holder.rights & R_BUILDMODE)
verbs += /client/proc/togglebuildmodeself
if(holder.rights & R_ADMIN)
- verbs += admin_verbs_admin
- verbs += admin_verbs_ticket
+ verbs += GLOB.admin_verbs_admin
+ verbs += GLOB.admin_verbs_ticket
spawn(1)
control_freak = 0
if(holder.rights & R_BAN)
- verbs += admin_verbs_ban
+ verbs += GLOB.admin_verbs_ban
if(holder.rights & R_EVENT)
- verbs += admin_verbs_event
+ verbs += GLOB.admin_verbs_event
if(holder.rights & R_SERVER)
- verbs += admin_verbs_server
+ verbs += GLOB.admin_verbs_server
if(holder.rights & R_DEBUG)
- verbs += admin_verbs_debug
+ verbs += GLOB.admin_verbs_debug
if(holder.rights & R_POSSESS)
- verbs += admin_verbs_possess
+ verbs += GLOB.admin_verbs_possess
if(holder.rights & R_PERMISSIONS)
- verbs += admin_verbs_permissions
+ verbs += GLOB.admin_verbs_permissions
if(holder.rights & R_STEALTH)
verbs += /client/proc/stealth
if(holder.rights & R_REJUVINATE)
- verbs += admin_verbs_rejuv
+ verbs += GLOB.admin_verbs_rejuv
if(holder.rights & R_SOUNDS)
- verbs += admin_verbs_sounds
+ verbs += GLOB.admin_verbs_sounds
if(holder.rights & R_SPAWN)
- verbs += admin_verbs_spawn
+ verbs += GLOB.admin_verbs_spawn
if(holder.rights & R_MOD)
- verbs += admin_verbs_mod
+ verbs += GLOB.admin_verbs_mod
if(holder.rights & R_MENTOR)
- verbs += admin_verbs_mentor
+ verbs += GLOB.admin_verbs_mentor
if(holder.rights & R_PROCCALL)
- verbs += admin_verbs_proccall
+ verbs += GLOB.admin_verbs_proccall
/client/proc/remove_admin_verbs()
verbs.Remove(
- admin_verbs_default,
+ GLOB.admin_verbs_default,
/client/proc/togglebuildmodeself,
- admin_verbs_admin,
- admin_verbs_ban,
- admin_verbs_event,
- admin_verbs_server,
- admin_verbs_debug,
- admin_verbs_possess,
- admin_verbs_permissions,
+ GLOB.admin_verbs_admin,
+ GLOB.admin_verbs_ban,
+ GLOB.admin_verbs_event,
+ GLOB.admin_verbs_server,
+ GLOB.admin_verbs_debug,
+ GLOB.admin_verbs_possess,
+ GLOB.admin_verbs_permissions,
/client/proc/stealth,
- admin_verbs_rejuv,
- admin_verbs_sounds,
- admin_verbs_spawn,
- admin_verbs_mod,
- admin_verbs_mentor,
- admin_verbs_proccall,
- admin_verbs_show_debug_verbs,
+ GLOB.admin_verbs_rejuv,
+ GLOB.admin_verbs_sounds,
+ GLOB.admin_verbs_spawn,
+ GLOB.admin_verbs_mod,
+ GLOB.admin_verbs_mentor,
+ GLOB.admin_verbs_proccall,
+ GLOB.admin_verbs_show_debug_verbs,
/client/proc/readmin,
- admin_verbs_ticket
+ GLOB.admin_verbs_ticket
)
/client/proc/hide_verbs()
@@ -514,14 +515,14 @@ var/list/admin_verbs_ticket = list(
return
if(!warned_ckey || !istext(warned_ckey)) return
- if(warned_ckey in admin_datums)
+ if(warned_ckey in GLOB.admin_datums)
to_chat(usr, "Error: warn(): You can't warn admins.")
return
var/datum/preferences/D
var/client/C = GLOB.directory[warned_ckey]
if(C) D = C.prefs
- else D = preferences_datums[warned_ckey]
+ else D = GLOB.preferences_datums[warned_ckey]
if(!D)
to_chat(src, "Error: warn(): No such ckey found.")
@@ -601,7 +602,7 @@ var/list/admin_verbs_ticket = list(
var/list/spell_list = list()
var/type_length = length("/obj/effect/proc_holder/spell") + 2
- for(var/A in spells)
+ for(var/A in GLOB.spells)
spell_list[copytext("[A]", type_length)] = A
var/obj/effect/proc_holder/spell/S = input("Choose the spell to give to that guy", "ABRAKADABRA") as null|anything in spell_list
if(!S)
@@ -620,7 +621,7 @@ var/list/admin_verbs_ticket = list(
set category = "Event"
set name = "Give Disease"
set desc = "Gives a Disease to a mob."
- var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in diseases
+ var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in GLOB.diseases
if(!D) return
T.ForceContractDisease(new D)
feedback_add_details("admin_verb","GD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -694,7 +695,7 @@ var/list/admin_verbs_ticket = list(
set category = "Admin"
set desc = "Regain your admin powers."
- var/datum/admins/D = admin_datums[ckey]
+ var/datum/admins/D = GLOB.admin_datums[ckey]
var/rank = null
if(config.admin_legacy_system)
//load text from file
@@ -707,26 +708,26 @@ var/list/admin_verbs_ticket = list(
break
continue
else
- if(!dbcon.IsConnected())
+ if(!GLOB.dbcon.IsConnected())
message_admins("Warning, MySQL database is not connected.")
to_chat(src, "Warning, MYSQL database is not connected.")
return
var/sql_ckey = sanitizeSQL(ckey)
- var/DBQuery/query = dbcon.NewQuery("SELECT rank FROM [format_table_name("admin")] WHERE ckey = '[sql_ckey]'")
+ var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT rank FROM [format_table_name("admin")] WHERE ckey = '[sql_ckey]'")
query.Execute()
while(query.NextRow())
rank = ckeyEx(query.item[1])
if(!D)
if(config.admin_legacy_system)
- if(admin_ranks[rank] == null)
+ if(GLOB.admin_ranks[rank] == null)
error("Error while re-adminning [src], admin rank ([rank]) does not exist.")
to_chat(src, "Error while re-adminning, admin rank ([rank]) does not exist.")
return
- D = new(rank, admin_ranks[rank], ckey)
+ D = new(rank, GLOB.admin_ranks[rank], ckey)
else
var/sql_ckey = sanitizeSQL(ckey)
- var/DBQuery/query = dbcon.NewQuery("SELECT ckey, rank, flags FROM [format_table_name("admin")] WHERE ckey = '[sql_ckey]'")
+ var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT ckey, rank, flags FROM [format_table_name("admin")] WHERE ckey = '[sql_ckey]'")
query.Execute()
while(query.NextRow())
var/admin_ckey = query.item[1]
@@ -791,7 +792,7 @@ var/list/admin_verbs_ticket = list(
if(!S) return
var/datum/nano_module/law_manager/L = new(S)
- L.ui_interact(usr, state = admin_state)
+ L.ui_interact(usr, state = GLOB.admin_state)
log_and_message_admins("has opened [S]'s law manager.")
feedback_add_details("admin_verb","MSL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
diff --git a/code/modules/admin/banappearance.dm b/code/modules/admin/banappearance.dm
index ff461c0f333..b561e0169ff 100644
--- a/code/modules/admin/banappearance.dm
+++ b/code/modules/admin/banappearance.dm
@@ -1,22 +1,22 @@
//ban people from using custom names and appearances. that'll show 'em.
-var/appearanceban_runonce //Updates legacy bans with new info
-var/appearance_keylist[0] //to store the keys
+GLOBAL_VAR(appearanceban_runonce) //Updates legacy bans with new info
+GLOBAL_LIST_EMPTY(appearance_keylist) //to store the keys
/proc/appearance_fullban(mob/M, reason)
if(!M || !M.key) return
- appearance_keylist.Add(text("[M.ckey] ## [reason]"))
+ GLOB.appearance_keylist.Add(text("[M.ckey] ## [reason]"))
appearance_savebanfile()
/proc/appearance_client_fullban(ckey)
if(!ckey) return
- appearance_keylist.Add(text("[ckey]"))
+ GLOB.appearance_keylist.Add(text("[ckey]"))
appearance_savebanfile()
//returns a reason if M is banned, returns 0 otherwise
/proc/appearance_isbanned(mob/M)
if(M)
- for(var/s in appearance_keylist)
+ for(var/s in GLOB.appearance_keylist)
if(findtext(s, "[M.ckey]") == 1)
var/startpos = findtext(s, "## ") + 3
if(startpos && startpos < length(s))
@@ -43,12 +43,12 @@ DEBUG
/proc/appearance_loadbanfile()
if(config.ban_legacy_system)
var/savefile/S=new("data/appearance_full.ban")
- S["keys[0]"] >> appearance_keylist
+ S["keys[0]"] >> GLOB.appearance_keylist
log_admin("Loading appearance_rank")
- S["runonce"] >> appearanceban_runonce
+ S["runonce"] >> GLOB.appearanceban_runonce
- if(!length(appearance_keylist))
- appearance_keylist=list()
+ if(!length(GLOB.appearance_keylist))
+ GLOB.appearance_keylist=list()
log_admin("appearance_keylist was empty")
else
if(!establish_db_connection())
@@ -58,17 +58,17 @@ DEBUG
return
//appearance bans
- var/DBQuery/query = dbcon.NewQuery("SELECT ckey FROM [format_table_name("ban")] WHERE bantype = 'APPEARANCE_BAN' AND NOT unbanned = 1")
+ var/DBQuery/query = GLOB.dbcon.NewQuery("SELECT ckey FROM [format_table_name("ban")] WHERE bantype = 'APPEARANCE_BAN' AND NOT unbanned = 1")
query.Execute()
while(query.NextRow())
var/ckey = query.item[1]
- appearance_keylist.Add("[ckey]")
+ GLOB.appearance_keylist.Add("[ckey]")
/proc/appearance_savebanfile()
var/savefile/S=new("data/appearance_full.ban")
- to_chat(S["keys[0]"], appearance_keylist)
+ to_chat(S["keys[0]"], GLOB.appearance_keylist)
/proc/appearance_unban(mob/M)
appearance_remove("[M.ckey]")
@@ -76,18 +76,18 @@ DEBUG
/proc/appearance_updatelegacybans()
- if(!appearanceban_runonce)
+ if(!GLOB.appearanceban_runonce)
log_admin("Updating appearancefile!")
// Updates bans.. Or fixes them. Either way.
- for(var/T in appearance_keylist)
+ for(var/T in GLOB.appearance_keylist)
if(!T) continue
- appearanceban_runonce++ //don't run this update again
+ GLOB.appearanceban_runonce++ //don't run this update again
/proc/appearance_remove(X)
- for(var/i = 1; i <= length(appearance_keylist); i++)
- if( findtext(appearance_keylist[i], "[X]") )
- appearance_keylist.Remove(appearance_keylist[i])
+ for(var/i = 1; i <= length(GLOB.appearance_keylist); i++)
+ if( findtext(GLOB.appearance_keylist[i], "[X]") )
+ GLOB.appearance_keylist.Remove(GLOB.appearance_keylist[i])
appearance_savebanfile()
return 1
return 0
diff --git a/code/modules/admin/banjob.dm b/code/modules/admin/banjob.dm
index 81060503f06..9efc4c9ce88 100644
--- a/code/modules/admin/banjob.dm
+++ b/code/modules/admin/banjob.dm
@@ -1,21 +1,21 @@
-var/jobban_runonce // Updates legacy bans with new info
-var/jobban_keylist[0] // Linear list of jobban strings, kept around for the legacy system
-var/jobban_assoclist[0] // Associative list, for efficiency
+GLOBAL_VAR(jobban_runonce) // Updates legacy bans with new info
+GLOBAL_LIST_INIT(jobban_keylist, new()) // Linear list of jobban strings, kept around for the legacy system
+GLOBAL_LIST_INIT(jobban_assoclist, new()) // Associative list, for efficiency
// Matches string-based jobbans into ckey, rank, and reason groups
-var/regex/jobban_regex = regex("(\[\\S]+) - (\[^#]+\[^# ])(?: ## (.+))?")
+GLOBAL_DATUM_INIT(jobban_regex, /regex, regex("(\[\\S]+) - (\[^#]+\[^# ])(?: ## (.+))?"))
/proc/jobban_assoc_insert(ckey, rank, reason)
if(!ckey || !rank)
return
- if(!jobban_assoclist[ckey])
- jobban_assoclist[ckey] = list()
- jobban_assoclist[ckey][rank] = reason || "Reason Unspecified"
+ if(!GLOB.jobban_assoclist[ckey])
+ GLOB.jobban_assoclist[ckey] = list()
+ GLOB.jobban_assoclist[ckey][rank] = reason || "Reason Unspecified"
/proc/jobban_fullban(mob/M, rank, reason)
if(!M || !M.key)
return
- jobban_keylist.Add(text("[M.ckey] - [rank] ## [reason]"))
+ GLOB.jobban_keylist.Add(text("[M.ckey] - [rank] ## [reason]"))
jobban_assoc_insert(M.ckey, rank, reason)
if(config.ban_legacy_system)
jobban_savebanfile()
@@ -23,7 +23,7 @@ var/regex/jobban_regex = regex("(\[\\S]+) - (\[^#]+\[^# ])(?: ## (.+))?")
/proc/jobban_client_fullban(ckey, rank)
if(!ckey || !rank)
return
- jobban_keylist.Add(text("[ckey] - [rank]"))
+ GLOB.jobban_keylist.Add(text("[ckey] - [rank]"))
jobban_assoc_insert(ckey, rank)
if(config.ban_legacy_system)
jobban_savebanfile()
@@ -37,8 +37,8 @@ var/regex/jobban_regex = regex("(\[\\S]+) - (\[^#]+\[^# ])(?: ## (.+))?")
if(IsGuestKey(M.key))
return "Guest Job-ban"
- if(jobban_assoclist[M.ckey])
- return jobban_assoclist[M.ckey][rank]
+ if(GLOB.jobban_assoclist[M.ckey])
+ return GLOB.jobban_assoclist[M.ckey][rank]
else
return 0
@@ -63,17 +63,17 @@ DEBUG
/proc/jobban_loadbanfile()
if(config.ban_legacy_system)
var/savefile/S=new("data/job_full.ban")
- S["keys[0]"] >> jobban_keylist
+ S["keys[0]"] >> GLOB.jobban_keylist
log_admin("Loading jobban_rank")
- S["runonce"] >> jobban_runonce
+ S["runonce"] >> GLOB.jobban_runonce
- if(!length(jobban_keylist))
- jobban_keylist=list()
+ if(!length(GLOB.jobban_keylist))
+ GLOB.jobban_keylist=list()
log_admin("jobban_keylist was empty")
- for(var/s in jobban_keylist)
- if(jobban_regex.Find(s))
- jobban_assoc_insert(jobban_regex.group[1], jobban_regex.group[2], jobban_regex.group[3])
+ for(var/s in GLOB.jobban_keylist)
+ if(GLOB.jobban_regex.Find(s))
+ jobban_assoc_insert(GLOB.jobban_regex.group[1], GLOB.jobban_regex.group[2], GLOB.jobban_regex.group[3])
else
log_runtime(EXCEPTION("Skipping malformed job ban: [s]"))
else
@@ -84,10 +84,10 @@ DEBUG
return
//Job permabans
- var/DBQuery/permabans = dbcon.NewQuery("SELECT ckey, job FROM [format_table_name("ban")] WHERE bantype = 'JOB_PERMABAN' AND isnull(unbanned)")
+ var/DBQuery/permabans = GLOB.dbcon.NewQuery("SELECT ckey, job FROM [format_table_name("ban")] WHERE bantype = 'JOB_PERMABAN' AND isnull(unbanned)")
permabans.Execute()
// Job tempbans
- var/DBQuery/tempbans = dbcon.NewQuery("SELECT ckey, job FROM [format_table_name("ban")] WHERE bantype = 'JOB_TEMPBAN' AND isnull(unbanned) AND expiration_time > Now()")
+ var/DBQuery/tempbans = GLOB.dbcon.NewQuery("SELECT ckey, job FROM [format_table_name("ban")] WHERE bantype = 'JOB_TEMPBAN' AND isnull(unbanned) AND expiration_time > Now()")
tempbans.Execute()
while(TRUE)
@@ -102,12 +102,12 @@ DEBUG
else
break
- jobban_keylist.Add("[ckey] - [job]")
+ GLOB.jobban_keylist.Add("[ckey] - [job]")
jobban_assoc_insert(ckey, job)
/proc/jobban_savebanfile()
var/savefile/S=new("data/job_full.ban")
- S["keys[0]"] << jobban_keylist
+ S["keys[0]"] << GLOB.jobban_keylist
/proc/jobban_unban(mob/M, rank)
jobban_remove("[M.ckey] - [rank]")
@@ -120,19 +120,19 @@ DEBUG
/proc/jobban_remove(X)
- for(var/i = 1; i <= length(jobban_keylist); i++)
- if( findtext(jobban_keylist[i], "[X]") )
+ for(var/i = 1; i <= length(GLOB.jobban_keylist); i++)
+ if( findtext(GLOB.jobban_keylist[i], "[X]") )
// This need to be here, instead of jobban_unban, due to direct calls to jobban_remove
- if(jobban_regex.Find(X))
- var/ckey = jobban_regex.group[1]
- var/rank = jobban_regex.group[2]
- if(jobban_assoclist[ckey] && jobban_assoclist[ckey][rank])
- jobban_assoclist[ckey] -= rank
+ if(GLOB.jobban_regex.Find(X))
+ var/ckey = GLOB.jobban_regex.group[1]
+ var/rank = GLOB.jobban_regex.group[2]
+ if(GLOB.jobban_assoclist[ckey] && GLOB.jobban_assoclist[ckey][rank])
+ GLOB.jobban_assoclist[ckey] -= rank
else
log_runtime(EXCEPTION("Attempted to remove non-existent job ban: [X]"))
else
log_runtime(EXCEPTION("Failed to remove malformed job ban from associative list: [X]"))
- jobban_keylist.Remove(jobban_keylist[i])
+ GLOB.jobban_keylist.Remove(GLOB.jobban_keylist[i])
if(config.ban_legacy_system)
jobban_savebanfile()
return 1
@@ -152,7 +152,7 @@ DEBUG
else
//using the SQL ban system
var/is_actually_banned = FALSE
- var/DBQuery/select_query = dbcon.NewQuery("SELECT bantime, bantype, reason, job, duration, expiration_time, a_ckey FROM [format_table_name("ban")] WHERE ckey like '[ckey]' AND ((bantype like 'JOB_TEMPBAN' AND expiration_time > Now()) OR (bantype like 'JOB_PERMABAN')) AND isnull(unbanned) ORDER BY bantime DESC LIMIT 100")
+ var/DBQuery/select_query = GLOB.dbcon.NewQuery("SELECT bantime, bantype, reason, job, duration, expiration_time, a_ckey FROM [format_table_name("ban")] WHERE ckey like '[ckey]' AND ((bantype like 'JOB_TEMPBAN' AND expiration_time > Now()) OR (bantype like 'JOB_PERMABAN')) AND isnull(unbanned) ORDER BY bantime DESC LIMIT 100")
select_query.Execute()
while(select_query.NextRow())
diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm
index e6148c7f554..616d5aa9ee8 100644
--- a/code/modules/admin/create_mob.dm
+++ b/code/modules/admin/create_mob.dm
@@ -1,9 +1,9 @@
-/var/create_mob_html = null
+GLOBAL_VAR(create_mob_html)
/datum/admins/proc/create_mob(var/mob/user)
- if(!create_mob_html)
+ if(!GLOB.create_mob_html)
var/mobjs = null
mobjs = jointext(typesof(/mob), ";")
- create_mob_html = file2text('html/create_object.html')
- create_mob_html = replacetext(create_mob_html, "null /* object types */", "\"[mobjs]\"")
+ GLOB.create_mob_html = file2text('html/create_object.html')
+ GLOB.create_mob_html = replacetext(GLOB.create_mob_html, "null /* object types */", "\"[mobjs]\"")
- user << browse(replacetext(create_mob_html, "/* ref src */", UID()), "window=create_mob;size=425x475")
+ user << browse(replacetext(GLOB.create_mob_html, "/* ref src */", UID()), "window=create_mob;size=425x475")
diff --git a/code/modules/admin/create_object.dm b/code/modules/admin/create_object.dm
index e3a930058bd..c311be0d017 100644
--- a/code/modules/admin/create_object.dm
+++ b/code/modules/admin/create_object.dm
@@ -1,23 +1,23 @@
-var/create_object_html = null
-var/list/create_object_forms = list(/obj, /obj/structure, /obj/machinery, /obj/effect, /obj/item, /obj/mecha, /obj/item/clothing, /obj/item/stack, /obj/item/reagent_containers, /obj/item/gun)
+GLOBAL_VAR(create_object_html)
+GLOBAL_LIST_INIT(create_object_forms, list(/obj, /obj/structure, /obj/machinery, /obj/effect, /obj/item, /obj/mecha, /obj/item/clothing, /obj/item/stack, /obj/item/reagent_containers, /obj/item/gun))
/datum/admins/proc/create_object(var/mob/user)
- if(!create_object_html)
+ if(!GLOB.create_object_html)
var/objectjs = null
objectjs = jointext(typesof(/obj), ";")
- create_object_html = file2text('html/create_object.html')
- create_object_html = replacetext(create_object_html, "null /* object types */", "\"[objectjs]\"")
+ GLOB.create_object_html = file2text('html/create_object.html')
+ GLOB.create_object_html = replacetext(GLOB.create_object_html, "null /* object types */", "\"[objectjs]\"")
- user << browse(replacetext(create_object_html, "/* ref src */", UID()), "window=create_object;size=425x475")
+ user << browse(replacetext(GLOB.create_object_html, "/* ref src */", UID()), "window=create_object;size=425x475")
/datum/admins/proc/quick_create_object(var/mob/user)
- var/path = input("Select the path of the object you wish to create.", "Path", /obj) in create_object_forms
- var/html_form = create_object_forms[path]
+ var/path = input("Select the path of the object you wish to create.", "Path", /obj) in GLOB.create_object_forms
+ var/html_form = GLOB.create_object_forms[path]
if(!html_form)
var/objectjs = jointext(typesof(path), ";")
html_form = file2text('html/create_object.html')
html_form = replacetext(html_form, "null /* object types */", "\"[objectjs]\"")
- create_object_forms[path] = html_form
+ GLOB.create_object_forms[path] = html_form
user << browse(replacetext(html_form, "/* ref src */", UID()), "window=qco[path];size=425x475")
diff --git a/code/modules/admin/create_poll.dm b/code/modules/admin/create_poll.dm
index a1c6de98d93..63592663469 100644
--- a/code/modules/admin/create_poll.dm
+++ b/code/modules/admin/create_poll.dm
@@ -1,15 +1,15 @@
/client/proc/create_poll()
set name = "Create Server Poll"
set category = "Server"
- if(!check_rights(R_SERVER))
+ if(!check_rights(R_SERVER))
return
- if(!dbcon.IsConnected())
+ if(!GLOB.dbcon.IsConnected())
to_chat(src, "Failed to establish database connection.")
return
create_poll_window()
/client/proc/create_poll_window(var/errormessage = "")
- if(!check_rights(R_SERVER))
+ if(!check_rights(R_SERVER))
return
var/output={"
@@ -75,7 +75,7 @@ function onload() {
|
|---|