diff --git a/.travis.yml b/.travis.yml
index 4df594320143..16c813d931f9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,8 +3,8 @@ sudo: false
env:
global:
- - BYOND_MAJOR="509"
- - BYOND_MINOR="1319"
+ - BYOND_MAJOR="510"
+ - BYOND_MINOR="1320"
- NODE_VERSION="4"
matrix:
- DM_MAPFILE="tgstation2"
diff --git a/README.md b/README.md
index 8c2c30c57031..93a95e3af6ba 100644
--- a/README.md
+++ b/README.md
@@ -73,11 +73,6 @@ specified in the config.txt, and set the Security box to 'Safe'. Then press GO
and the server should start up and be ready to join. It is also recommended that
you set up the SQL backend (see below).
-###HOSTING ON LINUX
-We use BYGEX for some of our text replacement related code. Unfortunately, we
-only have a windows dll included right now. You can find a version known to compile on linux, along with some basic install instructions here
-https://github.com/optimumtact/byond-regex
-
##UPDATING
To update an existing installation, first back up your /config and /data folders
diff --git a/bin/bygex.dll b/bin/bygex.dll
deleted file mode 100644
index b19c0f14b1e7..000000000000
Binary files a/bin/bygex.dll and /dev/null differ
diff --git a/code/__HELPERS/_string_lists.dm b/code/__HELPERS/_string_lists.dm
index b2b31ab36e40..969b46ebda70 100644
--- a/code/__HELPERS/_string_lists.dm
+++ b/code/__HELPERS/_string_lists.dm
@@ -12,11 +12,11 @@ var/global/list/string_cache
var/list/stringsList = list()
fileList = file2list("strings/[filename]")
for(var/s in fileList)
- stringsList = text2list(s, "@=")
+ stringsList = splittext(s, "@=")
if(stringsList.len != 2)
CRASH("Invalid string list in strings/[filename]")
if(findtext(stringsList[2], "@,"))
- string_cache[filename][stringsList[1]] = text2list(stringsList[2], "@,")
+ string_cache[filename][stringsList[1]] = splittext(stringsList[2], "@,")
else
string_cache[filename][stringsList[1]] = stringsList[2] // Its a single string!
else
diff --git a/code/__HELPERS/bygex/bygex.dm b/code/__HELPERS/bygex/bygex.dm
deleted file mode 100644
index 69ebbd8dbb4d..000000000000
--- a/code/__HELPERS/bygex/bygex.dm
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- This file is part of bygex.
-
- bygex is free software: you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation, either version 3 of
- the License, or (at your option) any later version.
-
- bygex is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with bygex. If not, see
-
- Based on code by Zac Stringham - Copyright 2009 (LGPL)
- Written 6-Oct-2013 - carnie (elly1989@rocketmail.com), accreditation appreciated but not required.
- Please do not remove this comment.
-
- Full source code is available at https://code.google.com/p/byond-regex/
- Please report any relevant issues on the tracker at the above address.
- ~Carn
-*/
-
-#ifdef USE_BYGEX
-
-#ifndef LIBREGEX_LIBRARY
- #define LIBREGEX_LIBRARY "bin/bygex"
-#endif
-
-/proc/regEx_compare(str, exp)
- return new /datum/regex(str, exp, call(LIBREGEX_LIBRARY, "regEx_compare")(str, exp))
-
-/proc/regex_compare(str, exp)
- return new /datum/regex(str, exp, call(LIBREGEX_LIBRARY, "regex_compare")(str, exp))
-
-/proc/regEx_find(str, exp)
- return new /datum/regex(str, exp, call(LIBREGEX_LIBRARY, "regEx_find")(str, exp))
-
-/proc/regex_find(str, exp)
- return new /datum/regex(str, exp, call(LIBREGEX_LIBRARY, "regex_find")(str, exp))
-
-/proc/regEx_replaceall(str, exp, fmt)
- return call(LIBREGEX_LIBRARY, "regEx_replaceall")(str, exp, fmt)
-
-/proc/regex_replaceall(str, exp, fmt)
- return call(LIBREGEX_LIBRARY, "regex_replaceall")(str, exp, fmt)
-
-/proc/replacetextEx(str, exp, fmt)
- return call(LIBREGEX_LIBRARY, "regEx_replaceallliteral")(str, exp, fmt)
-
-/proc/replacetext(str, exp, fmt)
- return call(LIBREGEX_LIBRARY, "regex_replaceallliteral")(str, exp, fmt)
-
-/proc/regEx_replace(str, exp, fmt)
- return call(LIBREGEX_LIBRARY, "regEx_replace")(str, exp, fmt)
-
-/proc/regex_replace(str, exp, fmt)
- return call(LIBREGEX_LIBRARY, "regex_replace")(str, exp, fmt)
-
-/proc/regEx_findall(str, exp)
- return new /datum/regex(str, exp, call(LIBREGEX_LIBRARY, "regEx_findall")(str, exp))
-
-/proc/regex_findall(str, exp)
- return new /datum/regex(str, exp, call(LIBREGEX_LIBRARY, "regex_findall")(str, exp))
-
-
-//upon calling a regex match or search, a /datum/regex object is created with str(haystack) and exp(needle) variables set
-//it also contains a list(matches) of /datum/match objects, each of which holds the position and length of the match
-//matched strings are not returned from the dll, in order to save on memory allocation for large numbers of strings
-//instead, you can use regex.str(matchnum) to fetch this string as needed.
-//likewise you can also use regex.pos(matchnum) and regex.len(matchnum) as shorthands
-/datum/regex
- var/str
- var/exp
- var/error
- var/anchors = 0
- var/list/matches = list()
-
-/datum/regex/New(str, exp, results)
- src.str = str
- src.exp = exp
-
- if(findtext(results, "$Err$", 1, 6)) //error message
- src.error = results
- else
- var/list/L = params2list(results)
- var/list/M
- var{i;j}
- for(i in L)
- M = L[i]
- for(j=2, j<=M.len, j+=2)
- matches += new /datum/match(text2num(M[j-1]),text2num(M[j]))
- anchors = (j-2)/2
- return matches
-
-/datum/regex/proc/str(i)
- if(!i)
- return str
- var/datum/match/M = matches[i]
- if(i < 1 || i > matches.len)
- throw EXCEPTION("str(): out of bounds")
- return copytext(str, M.pos, M.pos+M.len)
-
-/datum/regex/proc/pos(i)
- if(!i)
- return 1
- if(i < 1 || i > matches.len)
- throw EXCEPTION("pos(): out of bounds")
- var/datum/match/M = matches[i]
- return M.pos
-
-/datum/regex/proc/len(i)
- if(!i)
- return length(str)
- if(i < 1 || i > matches.len)
- throw EXCEPTION("len(): out of bounds")
- var/datum/match/M = matches[i]
- return M.len
-
-/datum/regex/proc/end(i)
- if(!i)
- return length(str)
- if(i < 1 || i > matches.len)
- throw EXCEPTION("end() out of bounds")
- var/datum/match/M = matches[i]
- return M.pos + M.len
-
-/datum/regex/proc/report() //debug tool
- . = ":: RESULTS ::\n:: str :: [html_encode(str)]\n:: exp :: [html_encode(exp)]\n:: anchors :: [anchors]"
- if(error)
- . += "\n[error]"
- return
- for(var/i=1, i<=matches.len, ++i)
- . += "\nMatch[i]\n\t[html_encode(str(i))]\n\tpos=[pos(i)] len=[len(i)]"
-
-/datum/match
- var/pos
- var/len
-
-/datum/match/New(pos, len)
- src.pos = pos
- src.len = len
-
-#endif
\ No newline at end of file
diff --git a/code/__HELPERS/bygex/demo.dm b/code/__HELPERS/bygex/demo.dm
deleted file mode 100644
index fe481f930207..000000000000
--- a/code/__HELPERS/bygex/demo.dm
+++ /dev/null
@@ -1,53 +0,0 @@
-/mob
- var/expression = "\\S+"
- var/format = "*"
-
- var/datum/regex/results
-
-/mob/verb/set_expression()
- var/t = input(usr,"Input Expression","title",expression) as text|null
- if(t != null)
- expression = t
- usr << "Expression set to:\t[html_encode(t)]"
-
-/mob/verb/set_format()
- var/t = input(usr,"Input Formatter","title",format) as text|null
- if(t != null)
- format = t
- usr << "Format set to:\t[html_encode(t)]"
-
-/mob/verb/compare_casesensitive(t as text)
- results = regEx_compare(t, expression)
- world << results.report()
-
-/mob/verb/compare(t as text)
- results = regex_compare(t, expression)
- world << results.report()
-
-/mob/verb/find_casesensitive(t as text)
- results = regEx_find(t, expression)
- world << results.report()
-
-/mob/verb/find(t as text)
- results = regex_find(t, expression)
- world << results.report()
-
-/mob/verb/replaceall_casesensitive(t as text)
- usr << regEx_replaceall(t, expression, format)
-
-/mob/verb/replaceall(t as text)
- usr << regex_replaceall(t, expression, format)
-
-/mob/verb/replace_casesensitive(t as text)
- usr << html_encode(regEx_replace(t, expression, format))
-
-/mob/verb/replace(t as text)
- usr << regex_replace(t, expression, format)
-
-/mob/verb/findall(t as text)
- results = regex_findall(t, expression)
- world << results.report()
-
-/mob/verb/findall_casesensitive(t as text)
- results = regEx_findall(t, expression)
- world << results.report()
\ No newline at end of file
diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index bdf517b9be9a..ddaf73e00eac 100644
--- a/code/__HELPERS/text.dm
+++ b/code/__HELPERS/text.dm
@@ -206,18 +206,6 @@
if(start)
return findtextEx(text, suffix, start, null)
-/*
- * Text modification
- */
-// See bygex.dm
-#ifndef USE_BYGEX
-/proc/replacetext(text, find, replacement)
- return list2text(text2list(text, find), replacement)
-
-/proc/replacetextEx(text, find, replacement)
- return list2text(text2listEx(text, find), replacement)
-#endif
-
//Adds 'u' number of zeros ahead of the text 't'
/proc/add_zero(t, u)
while (length(t) < u)
diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm
index fad0c646c3db..8e90ded8dd5b 100644
--- a/code/__HELPERS/type2type.dm
+++ b/code/__HELPERS/type2type.dm
@@ -2,7 +2,6 @@
* Holds procs designed to change one type of value, into another.
* Contains:
* hex2num & num2hex
- * text2list & list2text
* file2list
* angle2dir
* angle2text
@@ -72,138 +71,9 @@
i++
return .
-
-// Concatenates a list of strings into a single string. A seperator may optionally be provided.
-/proc/list2text(list/ls, sep)
- if(ls.len <= 1) // Early-out code for empty or singleton lists.
- return ls.len ? ls[1] : ""
-
- var/l = ls.len // Made local for sanic speed.
- var/i = 0 // Incremented every time a list index is accessed.
-
- if(sep != null)
- // Macros expand to long argument lists like so: sep, ls[++i], sep, ls[++i], sep, ls[++i], etc...
- #define S1 sep, ls[++i]
- #define S4 S1, S1, S1, S1
- #define S16 S4, S4, S4, S4
- #define S64 S16, S16, S16, S16
-
- . = "[ls[++i]]" // Make sure the initial element is converted to text.
-
- // Having the small concatenations come before the large ones boosted speed by an average of at least 5%.
- if(l-1 & 0x01) // 'i' will always be 1 here.
- . = text("[][][]", ., S1) // Append 1 element if the remaining elements are not a multiple of 2.
- if(l-i & 0x02)
- . = text("[][][][][]", ., S1, S1) // Append 2 elements if the remaining elements are not a multiple of 4.
- if(l-i & 0x04)
- . = text("[][][][][][][][][]", ., S4) // And so on....
- if(l-i & 0x08)
- . = text("[][][][][][][][][][][][][][][][][]", ., S4, S4)
- if(l-i & 0x10)
- . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S16)
- if(l-i & 0x20)
- . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S16, S16)
- if(l-i & 0x40)
- . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64)
- while(l > i) // Chomp through the rest of the list, 128 elements at a time.
- . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64, S64)
-
- #undef S64
- #undef S16
- #undef S4
- #undef S1
-
- else
- // Macros expand to long argument lists like so: ls[++i], ls[++i], ls[++i], etc...
- #define S1 ls[++i]
- #define S4 S1, S1, S1, S1
- #define S16 S4, S4, S4, S4
- #define S64 S16, S16, S16, S16
-
- . = "[ls[++i]]" // Make sure the initial element is converted to text.
-
- if(l-1 & 0x01) // 'i' will always be 1 here.
- . += "[S1]" // Append 1 element if the remaining elements are not a multiple of 2.
- if(l-i & 0x02)
- . = text("[][][]", ., S1, S1) // Append 2 elements if the remaining elements are not a multiple of 4.
- if(l-i & 0x04)
- . = text("[][][][][]", ., S4) // And so on...
- if(l-i & 0x08)
- . = text("[][][][][][][][][]", ., S4, S4)
- if(l-i & 0x10)
- . = text("[][][][][][][][][][][][][][][][][]", ., S16)
- if(l-i & 0x20)
- . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S16, S16)
- if(l-i & 0x40)
- . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64)
- while(l > i) // Chomp through the rest of the list, 128 elements at a time.
- . = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
- [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64, S64)
-
- #undef S64
- #undef S16
- #undef S4
- #undef S1
-
-
-//slower then list2text, but correctly processes associative lists.
-/proc/tg_list2text(list/list, glue=",")
- if(!istype(list) || !list.len)
- return
- var/output
- for(var/i=1 to list.len)
- output += (i!=1? glue : null)+(!isnull(list["[list[i]]"])?"[list["[list[i]]"]]":"[list[i]]")
- return output
-
-
-//Converts a string into a list by splitting the string at each delimiter found. (discarding the seperator)
-/proc/text2list(text, delimiter="\n")
- var/delim_len = length(delimiter)
- . = list()
- var/last_found = 1
- var/found = 1
- if(delim_len < 1)
- var/text_len = length(text)
- while(found++ <= text_len)
- . += copytext(text,found-1, found)
- else
- do
- found = findtext(text, delimiter, last_found, 0)
- . += copytext(text, last_found, found)
- last_found = found + delim_len
- while(found)
-
-//Case Sensitive!
-/proc/text2listEx(text, delimiter="\n")
- var/delim_len = length(delimiter)
- if(delim_len < 1)
- return list(text)
- . = list()
- var/last_found = 1
- var/found
- do
- found = findtextEx(text, delimiter, last_found, 0)
- . += copytext(text, last_found, found)
- last_found = found + delim_len
- while(found)
-
//Splits the text of a file at seperator and returns them in a list.
/proc/file2list(filename, seperator="\n")
- return text2list(return_file_text(filename),seperator)
+ return splittext(return_file_text(filename),seperator)
//Turns a direction into text
@@ -679,18 +549,18 @@ for(var/t in test_times)
//Find var names
// "A dog said hi [name]!"
- // text2list() --> list("A dog said hi ","name]!"
- // list2text() --> "A dog said hi name]!"
- // text2list() --> list("A","dog","said","hi","name]!")
+ // splittext() --> list("A dog said hi ","name]!"
+ // jointext() --> "A dog said hi name]!"
+ // splittext() --> list("A","dog","said","hi","name]!")
t_string = replacetext(t_string,"\[","\[ ")//Necessary to resolve "word[var_name]" scenarios
- var/list/list_value = text2list(t_string,"\[")
- var/intermediate_stage = list2text(list_value)
+ var/list/list_value = splittext(t_string,"\[")
+ var/intermediate_stage = jointext(list_value, null)
- list_value = text2list(intermediate_stage," ")
+ list_value = splittext(intermediate_stage," ")
for(var/value in list_value)
if(findtext(value,"]"))
- value = text2list(value,"]") //"name]!" --> list("name","!")
+ value = splittext(value,"]") //"name]!" --> list("name","!")
for(var/A in value)
if(var_source.vars.Find(A))
. += A
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 20d35846a877..645485ad3a9a 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -951,11 +951,11 @@ var/list/WALLITEMS_INVERSE = list(
/proc/screen_loc2turf(scr_loc, turf/origin)
- var/tX = text2list(scr_loc, ",")
- var/tY = text2list(tX[2], ":")
+ var/tX = splittext(scr_loc, ",")
+ var/tY = splittext(tX[2], ":")
var/tZ = origin.z
tY = tY[1]
- tX = text2list(tX[1], ":")
+ tX = splittext(tX[1], ":")
tX = tX[1]
tX = max(1, min(world.maxx, origin.x + (text2num(tX) - (world.view + 1))))
tY = max(1, min(world.maxy, origin.y + (text2num(tY) - (world.view + 1))))
diff --git a/code/_compile_options.dm b/code/_compile_options.dm
index 320fc6d441fc..c73f37747695 100644
--- a/code/_compile_options.dm
+++ b/code/_compile_options.dm
@@ -54,8 +54,6 @@
#error Your version of BYOND is too out-of-date to compile this project. Go to byond.com/download and update.
#endif
-#define USE_BYGEX
-
#ifndef SERVERTOOLS
#define SERVERTOOLS 0
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 446a31d00b0c..377b3909323c 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -332,6 +332,7 @@
icon = 'icons/mob/screen_full.dmi'
icon_state = "passage0"
layer = 0
+ plane = -80
mouse_opacity = 2
screen_loc = "CENTER-7,CENTER-7"
diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm
index 94b3efb66c52..1c0b41e078f9 100644
--- a/code/_onclick/hud/alien.dm
+++ b/code/_onclick/hud/alien.dm
@@ -127,7 +127,7 @@
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
mymob.blind.screen_loc = "CENTER-7,CENTER-7"
- mymob.blind.layer = 0
+ mymob.blind.plane = -80
mymob.blind.mouse_opacity = 0
mymob.flash = new /obj/screen()
diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm
index cc7b962e0668..e67dba197d4a 100644
--- a/code/_onclick/hud/alien_larva.dm
+++ b/code/_onclick/hud/alien_larva.dm
@@ -30,7 +30,7 @@
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
mymob.blind.screen_loc = "CENTER-7,CENTER-7"
- mymob.blind.layer = 0
+ mymob.blind.plane = -80
mymob.blind.mouse_opacity = 0
mymob.flash = new /obj/screen()
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index d9a9ba93dec6..bbbe14544a89 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -283,7 +283,7 @@
mymob.blind.name = " "
mymob.blind.screen_loc = "CENTER-7,CENTER-7"
mymob.blind.mouse_opacity = 0
- mymob.blind.layer = 0
+ mymob.blind.plane = -80
mymob.damageoverlay = new /obj/screen()
mymob.damageoverlay.icon = 'icons/mob/screen_full.dmi'
diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm
index 32b4e98832e8..aab9f015b10b 100644
--- a/code/_onclick/hud/monkey.dm
+++ b/code/_onclick/hud/monkey.dm
@@ -119,7 +119,7 @@
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
mymob.blind.screen_loc = "CENTER-7,CENTER-7"
- mymob.blind.layer = 0
+ mymob.blind.plane = -80
mymob.blind.mouse_opacity = 0
mymob.damageoverlay = new /obj/screen()
diff --git a/code/_onclick/hud/movable_screen_objects.dm b/code/_onclick/hud/movable_screen_objects.dm
index a0dc4827ba95..e8d4e4b3d732 100644
--- a/code/_onclick/hud/movable_screen_objects.dm
+++ b/code/_onclick/hud/movable_screen_objects.dm
@@ -27,13 +27,13 @@
return
//Split screen-loc up into X+Pixel_X and Y+Pixel_Y
- var/list/screen_loc_params = text2list(PM["screen-loc"], ",")
+ var/list/screen_loc_params = splittext(PM["screen-loc"], ",")
//Split X+Pixel_X up into list(X, Pixel_X)
- var/list/screen_loc_X = text2list(screen_loc_params[1],":")
+ var/list/screen_loc_X = splittext(screen_loc_params[1],":")
//Split Y+Pixel_Y up into list(Y, Pixel_Y)
- var/list/screen_loc_Y = text2list(screen_loc_params[2],":")
+ var/list/screen_loc_Y = splittext(screen_loc_params[2],":")
if(snap2grid) //Discard Pixel Values
screen_loc = "[screen_loc_X[1]],[screen_loc_Y[1]]"
diff --git a/code/_onclick/hud/other_mobs.dm b/code/_onclick/hud/other_mobs.dm
index cfcfd7566fed..794f661b9835 100644
--- a/code/_onclick/hud/other_mobs.dm
+++ b/code/_onclick/hud/other_mobs.dm
@@ -7,7 +7,7 @@
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
mymob.blind.screen_loc = "CENTER-7,CENTER-7"
- mymob.blind.layer = 0
+ mymob.blind.plane = -80
mymob.blind.mouse_opacity = 0
mymob.client.screen = list()
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index 51dc22df59ea..07e93369d3ca 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -149,7 +149,7 @@
mymob.blind.icon_state = "blackimageoverlay"
mymob.blind.name = " "
mymob.blind.screen_loc = "CENTER-7,CENTER-7"
- mymob.blind.layer = 0
+ mymob.blind.plane = -80
mymob.blind.mouse_opacity = 0
mymob.flash = new /obj/screen()
diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index 1dff0ee6ceb2..7d1ea89c53a8 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -176,8 +176,6 @@
var/reactionary_explosions = 0 //If we use reactionary explosions, explosions that react to walls and doors
- var/autoconvert_notes = 0 //if all connecting player's notes should attempt to be converted to the database
-
var/announce_admin_logout = 0
var/announce_admin_login = 0
@@ -371,8 +369,6 @@
if (world.log != newlog)
world.log << "Now logging runtimes to data/logs/runtimes/runtime-[time2text(world.realtime, "YYYY-MM-DD")].log"
world.log = newlog
- if("autoconvert_notes")
- config.autoconvert_notes = 1
if("allow_webclient")
config.allowwebclient = 1
if("webclient_only_byond_members")
diff --git a/code/controllers/subsystem/jobs.dm b/code/controllers/subsystem/jobs.dm
index 0e17eea252a1..8dea8c82e2f3 100644
--- a/code/controllers/subsystem/jobs.dm
+++ b/code/controllers/subsystem/jobs.dm
@@ -428,10 +428,10 @@ var/datum/subsystem/job/SSjob
/datum/subsystem/job/proc/LoadJobs()
var/jobstext = return_file_text("config/jobs.txt")
for(var/datum/job/J in occupations)
- var/regex = "[J.title]=(-1|\\d+),(-1|\\d+)"
- var/datum/regex/results = regex_find(jobstext, regex)
- J.total_positions = text2num(results.str(2))
- J.spawn_positions = text2num(results.str(3))
+ var/regex/jobs = regex("[J.title]=(-1|\\d+),(-1|\\d+)")
+ jobs.Find(jobstext)
+ J.total_positions = text2num(jobs.group[2])
+ J.spawn_positions = text2num(jobs.group[3])
/datum/subsystem/job/proc/HandleFeedbackGathering()
for(var/datum/job/job in occupations)
diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm
index 9db20a588c4d..49c668dbede0 100644
--- a/code/controllers/subsystem/timer.dm
+++ b/code/controllers/subsystem/timer.dm
@@ -63,7 +63,7 @@ var/datum/subsystem/timer/SStimer
event.thingToCall = thingToCall
event.procToCall = procToCall
event.timeToRun = world.time + wait
- event.hash = list2text(args)
+ event.hash = jointext(args, null)
if(args.len > 4)
event.argList = args.Copy(5)
diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm
index ddc0ddd459f6..360b261d8935 100644
--- a/code/datums/diseases/advance/advance.dm
+++ b/code/datums/diseases/advance/advance.dm
@@ -294,7 +294,7 @@ var/list/advance_cures = list(
for(var/datum/symptom/S in symptoms)
L += S.id
L = sortList(L) // Sort the list so it doesn't matter which order the symptoms are in.
- var/result = list2text(L, ":")
+ var/result = jointext(L, ":")
id = result
return id
diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm
index 87cf949ae3f0..0a48e574eaa9 100644
--- a/code/datums/helper_datums/getrev.dm
+++ b/code/datums/helper_datums/getrev.dm
@@ -9,7 +9,7 @@ var/global/datum/getrev/revdata = new()
var/list/head_log = file2list(".git/logs/HEAD", "\n")
for(var/line=head_log.len, line>=1, line--)
if(head_log[line])
- var/list/last_entry = text2list(head_log[line], " ")
+ var/list/last_entry = splittext(head_log[line], " ")
if(last_entry.len < 2)
continue
revision = last_entry[2]
diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm
index 5459f47e4613..346e28c399ef 100644
--- a/code/datums/mutations.dm
+++ b/code/datums/mutations.dm
@@ -520,7 +520,7 @@
else
prefix=""
- var/list/words = text2list(message," ")
+ var/list/words = splittext(message," ")
var/list/rearranged = list()
for(var/i=1;i<=words.len;i++)
var/cword = pick(words)
@@ -531,7 +531,7 @@
suffix = copytext(cword,length(cword)-1,length(cword) )
if(length(cword))
rearranged += cword
- message = "[prefix][uppertext(list2text(rearranged," "))]!!"
+ message = "[prefix][uppertext(jointext(rearranged," "))]!!"
return message
/datum/mutation/human/swedish
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index 334ddf90d3b7..944bad41da2a 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -683,7 +683,7 @@ var/list/teleport_other_runes = list()
log_game("Talisman Imbue rune failed - no nearby runes")
return
var/obj/effect/rune/picked_rune = pick(nearby_runes)
- var/list/split_rune_type = text2list("[picked_rune.type]", "/")
+ var/list/split_rune_type = splittext("[picked_rune.type]", "/")
var/imbue_type = split_rune_type[split_rune_type.len]
var/talisman_type = text2path("/obj/item/weapon/paper/talisman/[imbue_type]")
if(ispath(talisman_type))
diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm
index f43488a51036..970c174a025e 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -78,7 +78,7 @@
usr << "No input found, please hang up and try your call again!"
return
- var/list/tempnetwork = text2list(input, ",")
+ var/list/tempnetwork = splittext(input, ",")
if(tempnetwork.len < 1)
usr << "No network found, please hang up and try your call again!"
return
diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm
index 8d570478a6a3..0e2a519f9422 100644
--- a/code/game/machinery/computer/atmos_control.dm
+++ b/code/game/machinery/computer/atmos_control.dm
@@ -157,10 +157,10 @@
var/datum/radio_frequency/freq = SSradio.return_frequency(1441)
var/list/devices = freq.devices["_default"]
for(var/obj/machinery/atmospherics/components/unary/vent_pump/U in devices)
- var/list/text = text2list(U.id_tag, "_")
+ var/list/text = splittext(U.id_tag, "_")
IO |= text[1]
for(var/obj/machinery/atmospherics/components/unary/outlet_injector/U in devices)
- var/list/text = text2list(U.id, "_")
+ var/list/text = splittext(U.id, "_")
IO |= text[1]
if(!IO.len)
user << "No machinery detected."
@@ -171,7 +171,7 @@
name = "[uppertext(S)] Supply Control"
var/list/new_devices = freq.devices["4"]
for(var/obj/machinery/air_sensor/U in new_devices)
- var/list/text = text2list(U.id_tag, "_")
+ var/list/text = splittext(U.id_tag, "_")
if(text[1] == S)
sensors = list("[S]_sensor" = "Tank")
break
diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm
index ee18baacda4e..42383ec471a3 100644
--- a/code/game/machinery/navbeacon.dm
+++ b/code/game/machinery/navbeacon.dm
@@ -45,7 +45,7 @@
codes = new()
- var/list/entries = text2list(codes_txt, ";") // entries are separated by semicolons
+ var/list/entries = splittext(codes_txt, ";") // entries are separated by semicolons
for(var/e in entries)
var/index = findtext(e, "=") // format is "key=value"
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 23d4b36cbc58..21b238c95ea6 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -71,7 +71,7 @@
build_inventory(contraband, 1)
build_inventory(premium, 0, 1)
- slogan_list = text2list(product_slogans, ";")
+ slogan_list = splittext(product_slogans, ";")
// So not all machines speak at the exact same time.
// The first time this machine says something will be at slogantime + this random value,
// so if slogantime is 10 minutes, it will say it at somewhere between 10 and 20 minutes after the machine is crated.
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 434f2715ecde..390ab2612bda 100755
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -384,12 +384,12 @@
dat = ""
/obj/item/toy/crayon/proc/crayon_text_strip(text)
- var/list/base = text2list(lowertext(text),"")
+ var/list/base = splittext(lowertext(text),"")
var/list/out = list()
for(var/a in base)
if(a in (letters|numerals))
out += a
- return list2text(out)
+ return jointext(out, null)
/obj/item/toy/crayon/Topic(href, href_list, hsrc)
var/temp = "a"
diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm
index b497f7e3e6b8..0e40cd810a7a 100644
--- a/code/game/objects/structures/musician.dm
+++ b/code/game/objects/structures/musician.dm
@@ -84,10 +84,10 @@
for(var/line in lines)
//world << line
- for(var/beat in text2list(lowertext(line), ","))
+ for(var/beat in splittext(lowertext(line), ","))
//world << "beat: [beat]"
- var/list/notes = text2list(beat, "/")
- for(var/note in text2list(notes[1], "-"))
+ var/list/notes = splittext(beat, "/")
+ for(var/note in splittext(notes[1], "-"))
//world << "note: [note]"
if(!playing || shouldStopPlaying(user))//If the instrument is playing, or special case
playing = 0
@@ -204,7 +204,7 @@
//split into lines
spawn()
- lines = text2list(t, "\n")
+ lines = splittext(t, "\n")
if(copytext(lines[1],1,6) == "BPM: ")
tempo = sanitize_tempo(600 / text2num(copytext(lines[1],6)))
lines.Cut(1,2)
diff --git a/code/game/objects/structures/transit_tubes/transit_tube.dm b/code/game/objects/structures/transit_tubes/transit_tube.dm
index 28e788c0c2fa..1928b6be6e7e 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube.dm
@@ -262,7 +262,7 @@ obj/structure/transit_tube/ex_act(severity, target)
if(text in direction_table)
return direction_table[text]
- var/list/split_text = text2list(text, "-")
+ var/list/split_text = splittext(text, "-")
// If the first token is D, the icon_state represents
// a purely decorative tube, and doesn't actually
diff --git a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm
index d10ffe89303a..efc12760e79a 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm
@@ -16,19 +16,19 @@
//wrapper for turn that changes the transit tube formatted icon_state instead of the dir
/obj/structure/c_transit_tube/proc/tube_turn(angle)
var/list/badtubes = list("W-E", "W-E-Pass", "S-N", "S-N-Pass", "SW-NE", "SE-NW")
- var/list/split_text = text2list(icon_state, "-")
+ var/list/split_text = splittext(icon_state, "-")
for(var/i=1; i<=split_text.len; i++)
var/curdir = text2dir_extended(split_text[i]) //0 if not a valid direction (e.g. Pass, Block)
if(curdir)
split_text[i] = dir2text_short(turn(curdir, angle))
- var/newdir = list2text(split_text, "-")
+ var/newdir = jointext(split_text, "-")
if(badtubes.Find(newdir))
split_text.Swap(1,2)
- newdir = list2text(split_text, "-")
+ newdir = jointext(split_text, "-")
icon_state = newdir
/obj/structure/c_transit_tube/proc/tube_flip()
- var/list/split_text = text2list(icon_state, "-")
+ var/list/split_text = splittext(icon_state, "-")
//skip straight pipes
if(length(split_text[2]) < 2)
return
@@ -44,7 +44,7 @@
split_text[2] = copytext(split_text[2],1,2) + ((copytext(split_text[2],2,3) == "E") ? "W" : "E")
else
split_text[2] = ((copytext(split_text[2],1,2) == "N") ? "S" : "N") + copytext(split_text[2],2,3)
- icon_state = list2text(split_text, "-")
+ icon_state = jointext(split_text, "-")
// disposals-style flip and rotate verbs
/obj/structure/c_transit_tube/verb/rotate()
diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm
index 0df0147c3e45..22b33f93b1d1 100644
--- a/code/modules/admin/admin_ranks.dm
+++ b/code/modules/admin/admin_ranks.dm
@@ -177,7 +177,7 @@ var/list/admin_ranks = list() //list of all admin_rank datums
continue
//Split the line at every "="
- var/list/List = text2list(line, "=")
+ var/list/List = splittext(line, "=")
if(!List.len)
continue
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index b878b5d5ccc7..cab1e1afa9fd 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -596,7 +596,7 @@ var/list/admin_verbs_hideable = list(
//load text from file
var/list/Lines = file2list("config/admins.txt")
for(var/line in Lines)
- var/list/splitline = text2list(line, " = ")
+ var/list/splitline = splittext(line, " = ")
if(ckey(splitline[1]) == ckey)
if(splitline.len >= 2)
rank = ckeyEx(splitline[2])
diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm
index 0f7fdd5c6e0f..d2f35bb1a801 100644
--- a/code/modules/admin/create_mob.dm
+++ b/code/modules/admin/create_mob.dm
@@ -2,7 +2,7 @@
/datum/admins/proc/create_mob(mob/user)
if (!create_mob_html)
var/mobjs = null
- mobjs = list2text(typesof(/mob), ";")
+ mobjs = jointext(typesof(/mob), ";")
create_mob_html = file2text('html/create_object.html')
create_mob_html = replacetext(create_mob_html, "null /* object types */", "\"[mobjs]\"")
diff --git a/code/modules/admin/create_object.dm b/code/modules/admin/create_object.dm
index 9c6e54335e9a..708b6a9e74b1 100644
--- a/code/modules/admin/create_object.dm
+++ b/code/modules/admin/create_object.dm
@@ -7,7 +7,7 @@ var/list/create_object_forms = list(
/datum/admins/proc/create_object(mob/user)
if (!create_object_html)
var/objectjs = null
- objectjs = list2text(typesof(/obj), ";")
+ objectjs = jointext(typesof(/obj), ";")
create_object_html = file2text('html/create_object.html')
create_object_html = replacetext(create_object_html, "null /* object types */", "\"[objectjs]\"")
@@ -19,7 +19,7 @@ var/list/create_object_forms = list(
var/html_form = create_object_forms[path]
if (!html_form)
- var/objectjs = list2text(typesof(path), ";")
+ 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
diff --git a/code/modules/admin/create_turf.dm b/code/modules/admin/create_turf.dm
index c9e5f1f69f3d..4bfa6a0a09da 100644
--- a/code/modules/admin/create_turf.dm
+++ b/code/modules/admin/create_turf.dm
@@ -2,7 +2,7 @@
/datum/admins/proc/create_turf(mob/user)
if (!create_turf_html)
var/turfjs = null
- turfjs = list2text(typesof(/turf), ";")
+ turfjs = jointext(typesof(/turf), ";")
create_turf_html = file2text('html/create_object.html')
create_turf_html = replacetext(create_turf_html, "null /* object types */", "\"[turfjs]\"")
diff --git a/code/modules/admin/sql_notes.dm b/code/modules/admin/sql_notes.dm
index 89d3fbdef51a..3a0a90b719f4 100644
--- a/code/modules/admin/sql_notes.dm
+++ b/code/modules/admin/sql_notes.dm
@@ -168,53 +168,3 @@
output += "
\[Add Note\]"
output += ruler
usr << browse(output, "window=show_notes;size=900x500")
-
-/proc/regex_note_sql_extract(str, exp)
- return new /datum/regex(str, exp, call(LIBREGEX_LIBRARY, "regEx_find")(str, exp))
-
-#define NOTESFILE "data/player_notes.sav"
-//if the AUTOCONVERT_NOTES is turned on, anytime a player connects this will be run to try and add all their notes to the databas
-/proc/convert_notes_sql(ckey)
- var/savefile/notesfile = new(NOTESFILE)
- if(!notesfile)
- log_game("Error: Cannot access [NOTESFILE]")
- return
- notesfile.cd = "/[ckey]"
- while(!notesfile.eof)
- var/notetext
- notesfile >> notetext
- var/server
- if (config && config.server_name)
- server = config.server_name
- var/regex = "^(\\d{2}-\\w{3}-\\d{4}) \\| (.+) ~(\\w+)$"
- var/datum/regex/results = regex_note_sql_extract(notetext, regex)
- var/timestamp = results.str(2)
- notetext = results.str(3)
- var/adminckey = results.str(4)
- var/DBQuery/query_convert_time = dbcon.NewQuery("SELECT ADDTIME(STR_TO_DATE('[timestamp]','%d-%b-%Y'), '0')")
- if(!query_convert_time.Execute())
- var/err = query_convert_time.ErrorMsg()
- log_game("SQL ERROR converting timestamp. Error : \[[err]\]\n")
- return
- if(query_convert_time.NextRow())
- timestamp = query_convert_time.item[1]
- if(ckey && notetext && timestamp && adminckey && server)
- add_note(ckey, notetext, timestamp, adminckey, 0, server)
- notesfile.cd = "/"
- notesfile.dir.Remove(ckey)
-
-/*alternatively this proc can be run once to pass through every note and attempt to convert it before deleting the file, if done then AUTOCONVERT_NOTES should be turned off
-this proc can take several minutes to execute fully if converting and cause DD to hang if converting a lot of notes; it's not advised to do so while a server is live
-/proc/mass_convert_notes()
- world << "Beginning mass note conversion"
- var/savefile/notesfile = new(NOTESFILE)
- if(!notesfile)
- log_game("Error: Cannot access [NOTESFILE]")
- return
- notesfile.cd = "/"
- for(var/ckey in notesfile.dir)
- convert_notes_sql(ckey)
- world << "Deleting NOTESFILE"
- fdel(NOTESFILE)
- world << "Finished mass note conversion, remember to turn off AUTOCONVERT_NOTES"*/
-#undef NOTESFILE
diff --git a/code/modules/admin/stickyban.dm b/code/modules/admin/stickyban.dm
index 7723a138bdba..e570fa89fb30 100644
--- a/code/modules/admin/stickyban.dm
+++ b/code/modules/admin/stickyban.dm
@@ -175,10 +175,10 @@
if (!ban)
return null
. = params2list(ban)
- .["keys"] = text2list(.["keys"], ",")
- .["type"] = text2list(.["type"], ",")
- .["IP"] = text2list(.["IP"], ",")
- .["computer_id"] = text2list(.["computer_id"], ",")
+ .["keys"] = splittext(.["keys"], ",")
+ .["type"] = splittext(.["type"], ",")
+ .["IP"] = splittext(.["IP"], ",")
+ .["computer_id"] = splittext(.["computer_id"], ",")
/proc/list2stickyban(var/list/ban)
@@ -186,13 +186,13 @@
return null
. = ban.Copy()
if (.["keys"])
- .["keys"] = list2text(.["keys"], ",")
+ .["keys"] = jointext(.["keys"], ",")
if (.["type"])
- .["type"] = list2text(.["type"], ",")
+ .["type"] = jointext(.["type"], ",")
if (.["IP"])
- .["IP"] = list2text(.["IP"], ",")
+ .["IP"] = jointext(.["IP"], ",")
if (.["computer_id"])
- .["computer_id"] = list2text(.["computer_id"], ",")
+ .["computer_id"] = jointext(.["computer_id"], ",")
. = list2params(.)
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 7c0501aa0fdb..32615dd8fdcf 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1882,7 +1882,7 @@
alert("Select fewer object types, (max 5)")
return
- var/list/offset = text2list(href_list["offset"],",")
+ var/list/offset = splittext(href_list["offset"],",")
var/number = Clamp(text2num(href_list["object_count"]), 1, 100)
var/X = offset.len > 0 ? text2num(offset[1]) : 0
var/Y = offset.len > 1 ? text2num(offset[2]) : 0
diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index 6c1192053144..5215f9cc4857 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -4,7 +4,7 @@
var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","alien","as", "i")
//explode the input msg into a list
- var/list/msglist = text2list(msg, " ")
+ var/list/msglist = splittext(msg, " ")
//generate keywords lookup
var/list/surnames = list()
@@ -16,7 +16,7 @@
indexing += M.mind.name
for(var/string in indexing)
- var/list/L = text2list(string, " ")
+ var/list/L = splittext(string, " ")
var/surname_found = 0
//surnames
for(var/i=L.len, i>=1, i--)
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 8ed8d72c7377..eecfb9537d14 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -688,19 +688,19 @@ var/global/list/g_fancy_list_of_types = null
switch(input("Which list?") in list("Players","Admins","Mobs","Living Mobs","Dead Mobs","Clients","Joined Clients"))
if("Players")
- usr << list2text(player_list,",")
+ usr << jointext(player_list,",")
if("Admins")
- usr << list2text(admins,",")
+ usr << jointext(admins,",")
if("Mobs")
- usr << list2text(mob_list,",")
+ usr << jointext(mob_list,",")
if("Living Mobs")
- usr << list2text(living_mob_list,",")
+ usr << jointext(living_mob_list,",")
if("Dead Mobs")
- usr << list2text(dead_mob_list,",")
+ usr << jointext(dead_mob_list,",")
if("Clients")
- usr << list2text(clients,",")
+ usr << jointext(clients,",")
if("Joined Clients")
- usr << list2text(joined_player_list,",")
+ usr << jointext(joined_player_list,",")
/client/proc/cmd_display_del_log()
set category = "Debug"
diff --git a/code/modules/awaymissions/maploader/reader.dm b/code/modules/awaymissions/maploader/reader.dm
index a33123bbd7ac..f6a29a2f3ac9 100644
--- a/code/modules/awaymissions/maploader/reader.dm
+++ b/code/modules/awaymissions/maploader/reader.dm
@@ -151,7 +151,7 @@ var/global/dmm_suite/preloader/_preloader = null
var/variables_start = findtext(full_def,"{")
if(variables_start)//if there's any variable
full_def = copytext(full_def,variables_start+1,length(full_def))//removing the last '}'
- fields = text2list(full_def,";")
+ fields = readlist(full_def, ";")
//then fill the members_attributes list with the corresponding variables
members_attributes.len++
@@ -258,7 +258,7 @@ var/global/dmm_suite/preloader/_preloader = null
//build a list from variables in text form (e.g {var1="derp"; var2; var3=7} => list(var1="derp", var2, var3=7))
//return the filled list
-/dmm_suite/proc/text2list(text as text,delimiter=",")
+/dmm_suite/proc/readlist(text as text, delimiter=",")
var/list/to_return = list()
@@ -292,7 +292,7 @@ var/global/dmm_suite/preloader/_preloader = null
//Check for list
else if(copytext(trim_right,1,5) == "list")
- trim_right = text2list(copytext(trim_right,6,length(trim_right)))
+ trim_right = readlist(copytext(trim_right,6,length(trim_right)))
//Check for file
else if(copytext(trim_right,1,2) == "'")
diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm
index 4018207c10bd..ba21a347c95c 100644
--- a/code/modules/client/client procs.dm
+++ b/code/modules/client/client procs.dm
@@ -201,14 +201,11 @@ var/next_external_rsc = 0
else
winset(src, "infowindow.changelog", "font-style=bold")
- if (ckey in clientmessages)
- for (var/message in clientmessages[ckey])
+ if(ckey in clientmessages)
+ for(var/message in clientmessages[ckey])
src << message
clientmessages.Remove(ckey)
- if (config && config.autoconvert_notes)
- convert_notes_sql(ckey)
-
if(!winexists(src, "asset_cache_browser")) // The client is using a custom skin, tell them.
src << "Unable to access asset cache browser, if you are using a custom skin file, please allow DS to download the updated version, if you are not, then make a bug report. This is not a critical issue but can cause issues with resource downloading, as it is impossible to know when extra resources arrived to you."
diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm
index 01a41abc9fd1..fdb4d7eb748e 100644
--- a/code/modules/detectivework/scanner.dm
+++ b/code/modules/detectivework/scanner.dm
@@ -25,7 +25,7 @@
var/obj/item/weapon/paper/P = new(get_turf(src))
P.name = "paper- 'Scanner Report'"
P.info = "Scanner Report
"
- P.info += list2text(log, "
")
+ P.info += jointext(log, "
")
P.info += "
Notes:
"
P.info_links = P.info
diff --git a/code/modules/flufftext/TextFilters.dm b/code/modules/flufftext/TextFilters.dm
index f7f6929d2e19..b529aec90594 100644
--- a/code/modules/flufftext/TextFilters.dm
+++ b/code/modules/flufftext/TextFilters.dm
@@ -4,7 +4,7 @@
/proc/NewStutter(phrase,stunned)
phrase = html_decode(phrase)
- var/list/split_phrase = text2list(phrase," ") //Split it up into words.
+ var/list/split_phrase = splittext(phrase," ") //Split it up into words.
var/list/unstuttered_words = split_phrase.Copy()
var/i = rand(1,3)
@@ -35,7 +35,7 @@
split_phrase[index] = word
- return sanitize(list2text(split_phrase," "))
+ return sanitize(jointext(split_phrase," "))
/proc/Stagger(mob/M,d) //Technically not a filter, but it relates to drunkenness.
step(M, pick(d,turn(d,90),turn(d,-90)))
@@ -45,7 +45,7 @@
if(chance >= 100) return original_msg
var/list
- words = text2list(original_msg," ")
+ words = splittext(original_msg," ")
new_words = list()
var/new_msg = ""
@@ -57,6 +57,6 @@
continue
new_words += w
- new_msg = list2text(new_words," ")
+ new_msg = jointext(new_words," ")
return new_msg
diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm
index 92a623c69f7a..64bef84887e9 100644
--- a/code/modules/jobs/access.dm
+++ b/code/modules/jobs/access.dm
@@ -124,7 +124,7 @@
if(!src.req_access)
src.req_access = list()
if(src.req_access_txt)
- var/list/req_access_str = text2list(req_access_txt,";")
+ var/list/req_access_str = splittext(req_access_txt,";")
for(var/x in req_access_str)
var/n = text2num(x)
if(n)
@@ -133,7 +133,7 @@
if(!src.req_one_access)
src.req_one_access = list()
if(src.req_one_access_txt)
- var/list/req_one_access_str = text2list(req_one_access_txt,";")
+ var/list/req_one_access_str = splittext(req_one_access_txt,";")
for(var/x in req_one_access_str)
var/n = text2num(x)
if(n)
diff --git a/code/modules/json/json.dm b/code/modules/json/json.dm
deleted file mode 100644
index d3b80d6792d6..000000000000
--- a/code/modules/json/json.dm
+++ /dev/null
@@ -1,284 +0,0 @@
-/* Usage:
- JSON.stringify(obj) - Converts lists and values into a JSON string.
- JSON.parse(json) - Converts a JSON string into lists and values.
-*/
-
-/var/datum/jsonHelper/JSON = new // A namespace for procs.
-
-// ************************************ WRITER ************************************
-/datum/jsonHelper/proc/stringify(value)
- return list2text(WriteValue(list(), value))
-
-/datum/jsonHelper/proc/WriteValue(list/json, value)
- . = json
- if(isnum(value))
- json += value // Consider num2text(value, 20) for maximum accuracy.
- else if(isnull(value))
- json += "null"
- else if(istext(value))
- WriteString(json, value)
- else if(istype(value, /list))
- WriteList(json, value)
- else
- throw EXCEPTION("Datums cannot be converted to JSON.")
-
-/datum/jsonHelper/proc/WriteString(list/json, str)
- . = json
- var/quotePos = findtextEx(str, "\"")
- var/bsPos = findtextEx(str, "\\")
- if (quotePos == 0 && bsPos == 0)
- json.Add("\"", str, "\"")
- else
- json += "\""
- var/lastStop = 1
- while(quotePos != 0 || bsPos != 0)
- var/escPos
- if(quotePos < bsPos && quotePos != 0 || bsPos == 0)
- escPos = quotePos
- else
- escPos = bsPos
- json.Add(copytext(str, lastStop, escPos), "\\")
- lastStop = escPos
- if(escPos == quotePos)
- quotePos = findtextEx(str, "\"", escPos + 1)
- else if(escPos == bsPos)
- bsPos = findtextEx(str, "\\", escPos + 1)
- json.Add(copytext(str, lastStop), "\"")
-
-/datum/jsonHelper/proc/WriteList(list/json, list/listVal)
- . = json
- #define Either 0
- #define CannotBeArray 1
- #define CannotBeObject 2
- #define BadList (CannotBeArray | CannotBeObject)
- var/listType = Either
- for(var/key in listVal)
- if(istext(key))
- if(!isnull(listVal[key]))
- listType |= CannotBeArray
- else
- if(!isnum(key) && !isnull(listVal[key]))
- listType = BadList
- else
- listType |= CannotBeObject
-
- if(listType == BadList)
- throw EXCEPTION("The given list cannot be converted to JSON.")
-
- if(listType == CannotBeArray)
- json += "{"
- var/addComma
- for(var/key in listVal)
- if(addComma)
- json += ","
- else
- addComma = TRUE
- WriteString(json, key)
- json += ":"
- WriteValue(json, listVal[key])
- json += "}"
- else
- json += "\["
- var/addComma
- for(var/key in listVal)
- if(addComma)
- json += ","
- else
- addComma = TRUE
- WriteValue(json, key)
- json += "]"
- #undef Either
- #undef CannotBeFlat
- #undef CannotBeAssoc
- #undef BadList
-
-// ************************************ READER ************************************
-#define aBackspace 0x08
-#define aTab 0x09
-#define aLineBreak 0x0A
-#define aVertTab 0x0B
-#define aFormFeed 0x0C
-#define aCarriageReturn 0x0D
-#define aSpace 0x20
-#define aZero 0x30
-#define aNonBreakSpace 0xA0
-
-#define Advance if(++readPos > jsonLen) { curAscii = 0; curChar = "" } else { curAscii = text2ascii(json, readPos); curChar = ascii2text(curAscii) } // Deal with it.
-#define SkipWhitespace while(curAscii in whitespace) Advance
-#define AdvanceWS Advance; SkipWhitespace
-
-/datum/jsonHelper/var
- readPos
- jsonLen
- json
- curAscii
- curChar
- static/list/whitespace = list(aTab, aLineBreak, aVertTab, aFormFeed, aCarriageReturn, aSpace, aNonBreakSpace)
-
-/datum/jsonHelper/proc/parse(json)
- readPos = 0
- jsonLen = length(json)
- src.json = json
- curAscii = 0
- curChar = ""
- AdvanceWS
- var/value = ParseValue()
- if(readPos < jsonLen)
- throw EXCEPTION("Expected: End of JSON")
- return value
-
-/datum/jsonHelper/proc/ParseValue()
- if(curChar == "\"")
- return ParseString()
- else if(curChar == "-" || (curAscii >= aZero && curAscii <= aZero + 9))
- return ParseNumber()
- else if(curChar == "{")
- return ParseObject()
- else if(curChar == "\[")
- return ParseArray()
- else if(curChar == "t")
- if(copytext(json, readPos, readPos+4) == "true")
- readPos += 3
- AdvanceWS
- return TRUE
- else
- throw EXCEPTION("Expected: 'true'")
- else if(curChar == "f")
- if(copytext(json, readPos, readPos+5) == "false")
- readPos += 4
- AdvanceWS
- return FALSE
- else
- throw EXCEPTION("Expected: 'false'")
- else if(curChar == "n")
- if(copytext(json, readPos, readPos+4) == "null")
- readPos += 3
- AdvanceWS
- return null
- else
- throw EXCEPTION("Expected: 'null'")
- else if(curChar == "")
- throw EXCEPTION("Unexpected: End of JSON")
- else
- throw EXCEPTION("Unexpected: '[curChar]'")
-
-
-
-/datum/jsonHelper/proc/ParseString()
- ASSERT(curChar == "\"")
- Advance
- var/list/chars = list()
- while(readPos <= jsonLen)
- if(curChar == "\"")
- AdvanceWS
- return list2text(chars)
- else if(curChar == "\\")
- Advance
- switch(curChar)
- if("\"", "\\", "/")
- chars += ascii2text(curAscii)
- if("b")
- chars += ascii2text(aBackspace)
- if("f")
- chars += ascii2text(aFormFeed)
- if("n")
- chars += "\n"
- if("r")
- chars += ascii2text(aCarriageReturn) // Should we ignore these?
- if("t")
- chars += "\t"
- if("u")
- throw EXCEPTION("JSON \\uXXXX escape sequence not supported")
- else
- throw EXCEPTION("Invalid escape sequence")
- Advance
- else
- chars += ascii2text(curAscii)
- Advance
- throw EXCEPTION("Unterminated string")
-
-/datum/jsonHelper/proc/ParseNumber()
- var/firstPos = readPos
- if(curChar == "-")
- Advance
- if(curAscii >= aZero + 1 && curAscii <= aZero + 9)
- do
- Advance
- while(curAscii >= aZero && curAscii <= aZero + 9)
- else if(curAscii == aZero)
- Advance
- else
- throw EXCEPTION("Expected: digit")
-
- if(curChar == ".")
- Advance
- var/found = FALSE
- while(curAscii >= aZero && curAscii <= aZero + 9)
- found = TRUE
- Advance
- if(!found)
- throw EXCEPTION("Expected: digit")
-
- if(curChar == "E" || curChar == "e")
- Advance
- var/found = FALSE
- if(curChar == "-")
- Advance
- else if(curChar == "+")
- Advance
- while(curAscii >= aZero && curAscii <= aZero + 9)
- found = TRUE
- Advance
- if(!found)
- throw EXCEPTION("Expected: digit")
-
- SkipWhitespace
- return text2num(copytext(json, firstPos, readPos))
-
-/datum/jsonHelper/proc/ParseObject()
- ASSERT(curChar == "{")
- var/list/object = list()
- AdvanceWS
- while(curChar == "\"")
- var/key = ParseString()
- if(curChar != ":")
- throw EXCEPTION("Expected: ':'")
- AdvanceWS
- object[key] = ParseValue()
- if(curChar == ",")
- AdvanceWS
- else
- break
- if(curChar != "}")
- throw EXCEPTION("Expected: string or '}'")
- AdvanceWS
- return object
-
-/datum/jsonHelper/proc/ParseArray()
- ASSERT(curChar == "\[")
- var/list/array = list()
- AdvanceWS
- while(curChar != "]")
- array += list(ParseValue()) // Wrapped in a list in case ParseValue() returns a list.
- if(curChar == ",")
- AdvanceWS
- else
- break
- if(curChar != "]")
- throw EXCEPTION("Expected: ']'")
- AdvanceWS
- return array
-
-#undef aBackspace
-#undef aTab
-#undef aLineBreak
-#undef aVertTab
-#undef aFormFeed
-#undef aCarriageReturn
-#undef aSpace
-#undef aZero
-#undef aNonBreakSpace
-
-#undef Advance
-#undef SkipWhitespace
-#undef AdvanceWS
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/humanoid/death.dm b/code/modules/mob/living/carbon/alien/humanoid/death.dm
index 4db8c18ac718..6d56960b7311 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/death.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/death.dm
@@ -10,7 +10,7 @@
visible_message("[src] lets out a waning guttural screech, green blood bubbling from its maw...")
update_canmove()
if(client)
- blind.layer = 0
+ blind.plane = -80
update_icons()
status_flags |=CANPUSH
diff --git a/code/modules/mob/living/carbon/alien/larva/death.dm b/code/modules/mob/living/carbon/alien/larva/death.dm
index 61acfbe26a03..e6ac96324b55 100644
--- a/code/modules/mob/living/carbon/alien/larva/death.dm
+++ b/code/modules/mob/living/carbon/alien/larva/death.dm
@@ -9,7 +9,8 @@
if(!gibbed)
visible_message("[src] lets out a waning high-pitched cry.")
update_canmove()
- if(client) blind.layer = 0
+ if(client)
+ blind.plane = -80
tod = worldtime2text() //weasellos time of death patch
if(mind)
diff --git a/code/modules/mob/living/carbon/brain/death.dm b/code/modules/mob/living/carbon/brain/death.dm
index 0bf4f3f3e01d..ab0bc5888248 100644
--- a/code/modules/mob/living/carbon/brain/death.dm
+++ b/code/modules/mob/living/carbon/brain/death.dm
@@ -10,7 +10,8 @@
container.icon_state = "mmi_dead"
stat = DEAD
- if(blind) blind.layer = 0
+ if(blind)
+ blind.plane = -80
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
see_invisible = SEE_INVISIBLE_LEVEL_TWO
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index efb95033f41e..774181fb04ee 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -32,7 +32,8 @@
emote("deathgasp") //let the world KNOW WE ARE DEAD
update_canmove()
- if(client) blind.layer = 0
+ if(client)
+ blind.plane = -80
dna.species.spec_death(gibbed,src)
diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm
index 272222dc8ef0..4f2ef5251530 100644
--- a/code/modules/mob/living/carbon/human/say.dm
+++ b/code/modules/mob/living/carbon/human/say.dm
@@ -12,7 +12,7 @@
message = dna.species.handle_speech(message,src)
if(viruses.len)
for(var/datum/disease/pierrot_throat/D in viruses)
- var/list/temp_message = text2list(message, " ") //List each word in the message
+ var/list/temp_message = splittext(message, " ") //List each word in the message
var/list/pick_list = list()
for(var/i = 1, i <= temp_message.len, i++) //Create a second list for excluding words down the line
pick_list += i
@@ -22,7 +22,7 @@
if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue
temp_message[H] = "HONK"
pick_list -= H //Make sure that you dont HONK the same word twice
- message = list2text(temp_message, " ")
+ message = jointext(temp_message, " ")
message = ..(message)
message = dna.mutations_say_mods(message)
return message
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 6c351a182c71..fccc2afcdef1 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -716,10 +716,10 @@
if(H.blind)
if(H.eye_blind)
H.throw_alert("blind", /obj/screen/alert/blind)
- H.blind.layer = 18
+ H.blind.plane = 0
else
H.clear_alert("blind")
- H.blind.layer = 0
+ H.blind.plane = -80
if(!H.client)//no client, no screen to update
return 1
diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm
index 694b3944a57b..7af4241e18db 100644
--- a/code/modules/mob/living/carbon/human/species_types.dm
+++ b/code/modules/mob/living/carbon/human/species_types.dm
@@ -74,15 +74,10 @@ datum/species/human/spec_death(gibbed, mob/living/carbon/human/H)
return randname
-/datum/species/lizard/handle_speech(message)
-
- if(copytext(message, 1, 2) != "*")
- message = regEx_replaceall(message, "(? 0, i--)
@@ -428,7 +423,7 @@ datum/species/human/spec_death(gibbed, mob/living/carbon/human/H)
if(prob(20) && message_list.len > 3)
message_list.Insert(insertpos, "[pick("BRAINS", "Brains", "Braaaiinnnsss", "BRAAAIIINNSSS")]...")
- return list2text(message_list, " ")
+ return jointext(message_list, " ")
/datum/species/cosmetic_zombie
name = "Human"
diff --git a/code/modules/mob/living/carbon/monkey/death.dm b/code/modules/mob/living/carbon/monkey/death.dm
index 82b056ec48e0..377056b60298 100644
--- a/code/modules/mob/living/carbon/monkey/death.dm
+++ b/code/modules/mob/living/carbon/monkey/death.dm
@@ -19,7 +19,7 @@
update_canmove()
if(blind)
- blind.layer = 0
+ blind.plane = -80
if(ticker && ticker.mode)
ticker.mode.check_win()
diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm
index c3aca245c6b7..687352e6f237 100644
--- a/code/modules/mob/living/life.dm
+++ b/code/modules/mob/living/life.dm
@@ -190,10 +190,10 @@
if(stat != DEAD)
if(blind)
if(eye_blind)
- blind.layer = 18
+ blind.plane = 0
throw_alert("blind", /obj/screen/alert/blind)
else
- blind.layer = 0
+ blind.plane = -80
clear_alert("blind")
if (disabilities & NEARSIGHT)
diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm
index c1939b309102..b6bbef940d2f 100644
--- a/code/modules/mob/living/silicon/ai/death.dm
+++ b/code/modules/mob/living/silicon/ai/death.dm
@@ -16,7 +16,7 @@
if(src.eyeobj)
src.eyeobj.setLoc(get_turf(src))
if(blind)
- blind.layer = 0
+ blind.plane = -80
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
see_invisible = SEE_INVISIBLE_LEVEL_TWO
diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm
index 14849006ea56..e878c1f13812 100644
--- a/code/modules/mob/living/silicon/ai/life.dm
+++ b/code/modules/mob/living/silicon/ai/life.dm
@@ -55,8 +55,7 @@
if (!blindness)
//stage = 4.5
- if (src.blind.layer != 0)
- src.blind.layer = 0
+ src.blind.plane = -80
src.sight |= SEE_TURFS
src.sight |= SEE_MOBS
src.sight |= SEE_OBJS
@@ -74,19 +73,16 @@
if (aiRestorePowerRoutine==2)
src << "Alert cancelled. Power has been restored without our assistance."
aiRestorePowerRoutine = 0
- src.blind.layer = 0
return
else if (aiRestorePowerRoutine==3)
src << "Alert cancelled. Power has been restored."
aiRestorePowerRoutine = 0
- src.blind.layer = 0
return
else
//stage = 6
src.blind.screen_loc = "1,1 to 15,15"
- if (src.blind.layer!=18)
- src.blind.layer = 18
+ src.blind.plane = 0
src.sight = src.sight&~SEE_TURFS
src.sight = src.sight&~SEE_MOBS
src.sight = src.sight&~SEE_OBJS
@@ -111,7 +107,7 @@
if (!istype(T, /turf/space))
src << "Alert cancelled. Power has been restored without our assistance."
aiRestorePowerRoutine = 0
- src.blind.layer = 0
+ src.blind.plane = -80
return
src << "Fault confirmed: missing external power. Shutting down main control system to save power."
sleep(20)
@@ -149,7 +145,7 @@
if (!istype(T, /turf/space))
src << "Alert cancelled. Power has been restored without our assistance."
aiRestorePowerRoutine = 0
- src.blind.layer = 0 //This, too, is a fix to issue 603
+ src.blind.plane = -80
return
switch(PRP)
if (1) src << "APC located. Optimizing route to APC to avoid needless power waste."
diff --git a/code/modules/mob/living/silicon/ai/login.dm b/code/modules/mob/living/silicon/ai/login.dm
index b5b6808bac95..aed78dbbc0aa 100644
--- a/code/modules/mob/living/silicon/ai/login.dm
+++ b/code/modules/mob/living/silicon/ai/login.dm
@@ -14,7 +14,7 @@
blind.icon_state = "black"
blind.name = " "
blind.screen_loc = "1,1 to 15,15"
- blind.layer = 0
+ blind.plane = -80
client.screen.Add( blind, flash )
if(stat != DEAD)
diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm
index b43ef3552f44..bc050cfaa3b9 100644
--- a/code/modules/mob/living/silicon/ai/say.dm
+++ b/code/modules/mob/living/silicon/ai/say.dm
@@ -109,7 +109,7 @@ var/const/VOX_DELAY = 600
src << "Wireless interface disabled, unable to interact with announcement PA."
return
- var/list/words = text2list(trim(message), " ")
+ var/list/words = splittext(trim(message), " ")
var/list/incorrect_words = list()
if(words.len > 30)
diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm
index 2e4f9b94d635..448cb75d01be 100644
--- a/code/modules/mob/living/silicon/pai/death.dm
+++ b/code/modules/mob/living/silicon/pai/death.dm
@@ -4,7 +4,7 @@
stat = DEAD
canmove = 0
if(blind)
- blind.layer = 0
+ blind.plane = -80
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
see_invisible = SEE_INVISIBLE_LEVEL_TWO
diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm
index d8b22eed453d..cee445988e01 100644
--- a/code/modules/mob/living/silicon/robot/death.dm
+++ b/code/modules/mob/living/silicon/robot/death.dm
@@ -33,7 +33,7 @@
uneq_all() // particularly to ensure sight modes are cleared
if(blind)
- blind.layer = 0
+ blind.plane = -80
sight |= SEE_TURFS|SEE_MOBS|SEE_OBJS
see_in_dark = 8
see_invisible = SEE_INVISIBLE_LEVEL_TWO
diff --git a/code/modules/mob/living/simple_animal/slime/death.dm b/code/modules/mob/living/simple_animal/slime/death.dm
index 31542c8051ce..ab0c3ff12b57 100644
--- a/code/modules/mob/living/simple_animal/slime/death.dm
+++ b/code/modules/mob/living/simple_animal/slime/death.dm
@@ -25,7 +25,7 @@
update_canmove()
if(blind)
- blind.layer = 0
+ blind.plane = -80
if(ticker && ticker.mode)
ticker.mode.check_win()
diff --git a/code/modules/ninja/suit/mask.dm b/code/modules/ninja/suit/mask.dm
index 308f94245b72..87e9255e41df 100644
--- a/code/modules/ninja/suit/mask.dm
+++ b/code/modules/ninja/suit/mask.dm
@@ -21,7 +21,7 @@ Contents:
/obj/item/clothing/mask/gas/voice/space_ninja/speechModification(message)
if(voice == "Unknown")
if(copytext(message, 1, 2) != "*")
- var/list/temp_message = text2list(message, " ")
+ var/list/temp_message = splittext(message, " ")
var/list/pick_list = list()
for(var/i = 1, i <= temp_message.len, i++)
pick_list += i
@@ -30,7 +30,7 @@ Contents:
if(findtext(temp_message[H], "*") || findtext(temp_message[H], ";") || findtext(temp_message[H], ":")) continue
temp_message[H] = ninjaspeak(temp_message[H])
pick_list -= H
- message = list2text(temp_message, " ")
+ message = jointext(temp_message, " ")
//The Alternate speech mod is now the main one.
message = replacetext(message, "l", "r")
diff --git a/code/modules/procedural mapping/mapGenerator.dm b/code/modules/procedural mapping/mapGenerator.dm
index ce6b5a18c890..c4bff6d86578 100644
--- a/code/modules/procedural mapping/mapGenerator.dm
+++ b/code/modules/procedural mapping/mapGenerator.dm
@@ -155,8 +155,8 @@
src << "Missing Input"
return
- var/list/startCoords = text2list(startInput, ";")
- var/list/endCoords = text2list(endInput, ";")
+ var/list/startCoords = splittext(startInput, ";")
+ var/list/endCoords = splittext(endInput, ";")
if(!startCoords || !endCoords)
src << "Invalid Coords"
src << "Start Input: [startInput]"
diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm
index 742091057c59..719dbb5d8eb1 100644
--- a/code/modules/research/server.dm
+++ b/code/modules/research/server.dm
@@ -39,12 +39,12 @@
var/list/temp_list
if(!id_with_upload.len)
temp_list = list()
- temp_list = text2list(id_with_upload_string, ";")
+ temp_list = splittext(id_with_upload_string, ";")
for(var/N in temp_list)
id_with_upload += text2num(N)
if(!id_with_download.len)
temp_list = list()
- temp_list = text2list(id_with_download_string, ";")
+ temp_list = splittext(id_with_download_string, ";")
for(var/N in temp_list)
id_with_download += text2num(N)
diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm
index 79e6aa15ea09..97a6dbc90220 100644
--- a/code/modules/tgui/tgui.dm
+++ b/code/modules/tgui/tgui.dm
@@ -245,10 +245,11 @@
json_data["data"] = data
// Generate the JSON.
- var/json = JSON.stringify(json_data)
+ var/json = json_encode(json_data)
+ //var/json = JSON.stringify(json_data)
// Strip #255/improper.
- json = regex_replaceall(json, "\improper", "")
- json = regex_replaceall(json, "\proper", "")
+ json = replacetext(json, "\improper", "")
+ json = replacetext(json, "\proper", "")
return json
/**
diff --git a/code/world.dm b/code/world.dm
index 31e3056e829b..0fccf138ac0f 100644
--- a/code/world.dm
+++ b/code/world.dm
@@ -251,7 +251,7 @@ var/global/list/map_transition_config = MAP_TRANSITION_CONFIG
features += "hosted by [config.hostedby]"
if (features)
- s += ": [list2text(features, ", ")]"
+ s += ": [jointext(features, ", ")]"
/* does this help? I do not know */
if (src.status != s)
diff --git a/config/awaymissionconfig.txt b/config/awaymissionconfig.txt
index 986900d5c1d0..da5d85dc11a5 100644
--- a/config/awaymissionconfig.txt
+++ b/config/awaymissionconfig.txt
@@ -1,9 +1,9 @@
#List the potential random Z-levels here.
#Maps must be the full path to them
-#Maps should be 255x255 or smaller and be bounded. Falling off the edge of the map will result in undefined behavior.
+#Maps should be 255x255 or smaller and be bounded. Falling off the edge of the map will result in undefined behavior.
#SPECIFYING AN INVALID MAP WILL RESULT IN RUNTIMES ON GAME START
-#!!IMPORTANT NOTES FOR HOSTING AWAY MISSIONS!!:
+#!!IMPORTANT NOTES FOR HOSTING AWAY MISSIONS!!:
#Do NOT tick the maps during compile -- the game uses this list to decide which map to load. Ticking the maps will result in them ALL being loaded at once.
#DO tick the associated code file for the away mission you are enabling. Otherwise, the map will be trying to reference objects which do not exist, which will cause runtime errors!
diff --git a/config/config.txt b/config/config.txt
index 6335574a29e1..a398d26f5f85 100644
--- a/config/config.txt
+++ b/config/config.txt
@@ -26,7 +26,7 @@ BAN_LEGACY_SYSTEM
## log OOC channel
LOG_OOC
-## log client Say
+## log client Say
LOG_SAY
## log admin actions
@@ -146,7 +146,7 @@ GUEST_BAN
##Remove the # mark infront of this to forbid admins from possessing the singularity.
#FORBID_SINGULO_POSSESSION
-## Remove the # to show a popup 'reply to' window to every non-admin that recieves an adminPM.
+## Remove the # to show a popup 'reply to' window to every non-admin that recieves an adminPM.
## The intention is to make adminPMs more visible. (although I fnd popups annoying so this defaults to off)
#POPUP_ADMIN_PM
@@ -190,7 +190,7 @@ EXTREME_POPCAP_MESSAGE The server is currently serving a high number of users, f
## Notify admins when a new player connects for the first x days a player's been around. (0 for first connection only, -1 for never)
## Requres database
-NOTIFY_NEW_PLAYER_AGE 0
+NOTIFY_NEW_PLAYER_AGE 0
## Notify the irc channel when a new player makes their first connection
## Requres database
@@ -206,9 +206,6 @@ NOTIFY_NEW_PLAYER_AGE 0
## Uncomment to have the game log runtimes to the log folder. (Note: this disables normal output in dd/ds, so it should be left off for testing.
#LOG_RUNTIMES
-##Comment this out if you've used the mass conversion sql proc for notes or want to stop converting notes
-AUTOCONVERT_NOTES
-
##Comment this out to stop admin messages sent anytime an admin disconnects from a round in play, you can edit the messages in admin.dm
ANNOUNCE_ADMIN_LOGOUT
@@ -228,4 +225,4 @@ ANNOUNCE_ADMIN_LOGOUT
##AUTOADMIN
##Uncomment to automatically give that admin rank to all players
-#AUTOADMIN Game Admin
\ No newline at end of file
+#AUTOADMIN Game Admin
diff --git a/tgstation.dme b/tgstation.dme
index 25a1e964e769..3bb80f654e2d 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -65,7 +65,6 @@
#include "code\__HELPERS\time.dm"
#include "code\__HELPERS\type2type.dm"
#include "code\__HELPERS\unsorted.dm"
-#include "code\__HELPERS\bygex\bygex.dm"
#include "code\__HELPERS\sorts\__main.dm"
#include "code\__HELPERS\sorts\InsertSort.dm"
#include "code\__HELPERS\sorts\MergeSort.dm"
@@ -1081,7 +1080,7 @@
#include "code\modules\hydroponics\hydroitemdefines.dm"
#include "code\modules\hydroponics\hydroponics.dm"
#include "code\modules\hydroponics\seed_extractor.dm"
-#include "code\modules\hydroponics\seeds.dm"
+#include "code\modules\hydroponics\seeds.dm"
#include "code\modules\jobs\access.dm"
#include "code\modules\jobs\jobs.dm"
#include "code\modules\jobs\whitelist.dm"
@@ -1095,8 +1094,7 @@
#include "code\modules\jobs\job_types\medical.dm"
#include "code\modules\jobs\job_types\science.dm"
#include "code\modules\jobs\job_types\security.dm"
-#include "code\modules\jobs\job_types\silicon.dm"
-#include "code\modules\json\json.dm"
+#include "code\modules\jobs\job_types\silicon.dm"
#include "code\modules\library\lib_items.dm"
#include "code\modules\library\lib_machines.dm"
#include "code\modules\library\lib_readme.dm"