diff --git a/.travis.yml b/.travis.yml
index 4df59432014..16c813d931f 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 8c2c30c5703..93a95e3af6b 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 b19c0f14b1e..00000000000
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 b2b31ab36e4..969b46ebda7 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 69ebbd8dbb4..00000000000
--- 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 fe481f93020..00000000000
--- 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 bdf517b9be9..ddaf73e00ea 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 fad0c646c3d..8e90ded8dd5 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 20d35846a87..645485ad3a9 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 320fc6d441f..c73f3774769 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 446a31d00b0..377b3909323 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 94b3efb66c5..1c0b41e078f 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 cc7b962e066..e67dba197d4 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 d9a9ba93dec..bbbe14544a8 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 32b4e98832e..aab9f015b10 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 a0dc4827ba9..e8d4e4b3d73 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 cfcfd7566fe..794f661b983 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 51dc22df59e..07e93369d3c 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 1dff0ee6ceb..7d1ea89c53a 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 0e17eea252a..8dea8c82e2f 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 9db20a588c4..49c668dbede 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 ddc0ddd459f..360b261d893 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 87cf949ae3f..0a48e574eaa 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 5459f47e461..346e28c399e 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 334ddf90d3b..944bad41da2 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 f43488a5103..970c174a025 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 8d570478a6a..0e2a519f942 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 ee18baacda4..42383ec471a 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 23d4b36cbc5..21b238c95ea 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 434f2715ecd..390ab2612bd 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 b497f7e3e6b..0e40cd810a7 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 28e788c0c2f..1928b6be6e7 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 d10ffe89303..efc12760e79 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 0df0147c3e4..22b33f93b1d 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 b878b5d5ccc..cab1e1afa9f 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 0f7fdd5c6e0..d2f35bb1a80 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 9c6e54335e9..708b6a9e74b 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 c9e5f1f69f3..4bfa6a0a09d 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 89d3fbdef51..3a0a90b719f 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 7723a138bdb..e570fa89fb3 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 7c0501aa0fd..32615dd8fdc 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 6c119205314..5215f9cc485 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 8ed8d72c737..eecfb9537d1 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 a33123bbd7a..f6a29a2f3ac 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 4018207c10b..ba21a347c95 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 01a41abc9fd..fdb4d7eb748 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 f7f6929d2e1..b529aec9059 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 92a623c69f7..64bef84887e 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 d3b80d6792d..00000000000
--- 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 4db8c18ac71..6d56960b731 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 61acfbe26a0..e6ac96324b5 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 0bf4f3f3e01..ab0bc588824 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 efb95033f41..774181fb04e 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 272222dc8ef..4f2ef525153 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 6c351a182c7..fccc2afcdef 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 694b3944a57..7af4241e18d 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 82b056ec48e..377056b6029 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 c3aca245c6b..687352e6f23 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 c1939b30910..b6bbef940d2 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 14849006ea5..e878c1f1381 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 b5b6808bac9..aed78dbbc0a 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 b43ef3552f4..bc050cfaa3b 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 2e4f9b94d63..448cb75d01b 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 d8b22eed453..cee445988e0 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 31542c8051c..ab0c3ff12b5 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 308f94245b7..87e9255e41d 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 ce6b5a18c89..c4bff6d8657 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 742091057c5..719dbb5d8eb 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 79e6aa15ea0..97a6dbc9022 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 31e3056e829..0fccf138ac0 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 986900d5c1d..da5d85dc11a 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 6335574a29e..a398d26f5f8 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 25a1e964e76..3bb80f654e2 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"