mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 02:34:00 +00:00
Optimized and refactored list2text, text2list, and replacetext.
Also fixed some grammar in the station blueprint code. Conflicts: code/game/objects/items/blueprints.dm code/game/objects/items/devices/uplinks.dm code/modules/admin/verbs/debug.dm code/modules/clothing/masks/gasmask.dm code/modules/detectivework/scanner.dm code/modules/flufftext/TextFilters.dm code/modules/mob/living/carbon/human/say.dm code/modules/mob/living/silicon/ai/say.dm
This commit is contained in:
@@ -195,32 +195,10 @@ proc/checkhtml(var/t)
|
|||||||
* Text modification
|
* Text modification
|
||||||
*/
|
*/
|
||||||
/proc/replacetext(text, find, replacement)
|
/proc/replacetext(text, find, replacement)
|
||||||
var/find_len = length(find)
|
return list2text(text2list(text, find), replacement)
|
||||||
if(find_len < 1) return text
|
|
||||||
. = ""
|
|
||||||
var/last_found = 1
|
|
||||||
while(1)
|
|
||||||
var/found = findtext(text, find, last_found, 0)
|
|
||||||
. += copytext(text, last_found, found)
|
|
||||||
if(found)
|
|
||||||
. += replacement
|
|
||||||
last_found = found + find_len
|
|
||||||
continue
|
|
||||||
return .
|
|
||||||
|
|
||||||
/proc/replacetextEx(text, find, replacement)
|
/proc/replacetextEx(text, find, replacement)
|
||||||
var/find_len = length(find)
|
return list2text(text2listEx(text, find), replacement)
|
||||||
if(find_len < 1) return text
|
|
||||||
. = ""
|
|
||||||
var/last_found = 1
|
|
||||||
while(1)
|
|
||||||
var/found = findtextEx(text, find, last_found, 0)
|
|
||||||
. += copytext(text, last_found, found)
|
|
||||||
if(found)
|
|
||||||
. += replacement
|
|
||||||
last_found = found + find_len
|
|
||||||
continue
|
|
||||||
return .
|
|
||||||
|
|
||||||
//Adds 'u' number of zeros ahead of the text 't'
|
//Adds 'u' number of zeros ahead of the text 't'
|
||||||
/proc/add_zero(t, u)
|
/proc/add_zero(t, u)
|
||||||
@@ -287,27 +265,6 @@ proc/checkhtml(var/t)
|
|||||||
return message
|
return message
|
||||||
return copytext(message, 1, length + 1)
|
return copytext(message, 1, length + 1)
|
||||||
|
|
||||||
/*
|
|
||||||
* Misc
|
|
||||||
*/
|
|
||||||
|
|
||||||
/proc/stringsplit(txt, character)
|
|
||||||
var/cur_text = txt
|
|
||||||
var/last_found = 1
|
|
||||||
var/found_char = findtext(cur_text,character)
|
|
||||||
var/list/list = list()
|
|
||||||
if(found_char)
|
|
||||||
var/fs = copytext(cur_text,last_found,found_char)
|
|
||||||
list += fs
|
|
||||||
last_found = found_char+length(character)
|
|
||||||
found_char = findtext(cur_text,character,last_found)
|
|
||||||
while(found_char)
|
|
||||||
var/found_string = copytext(cur_text,last_found,found_char)
|
|
||||||
last_found = found_char+length(character)
|
|
||||||
list += found_string
|
|
||||||
found_char = findtext(cur_text,character,last_found)
|
|
||||||
list += copytext(cur_text,last_found,length(cur_text)+1)
|
|
||||||
return list
|
|
||||||
|
|
||||||
/proc/stringmerge(var/text,var/compare,replace = "*")
|
/proc/stringmerge(var/text,var/compare,replace = "*")
|
||||||
//This proc fills in all spaces with the "replace" var (* by default) with whatever
|
//This proc fills in all spaces with the "replace" var (* by default) with whatever
|
||||||
|
|||||||
@@ -83,22 +83,86 @@
|
|||||||
return hex
|
return hex
|
||||||
|
|
||||||
|
|
||||||
//Attaches each element of a list to a single string seperated by 'seperator'.
|
// Concatenates a list of strings into a single string. A seperator may optionally be provided.
|
||||||
/proc/dd_list2text(var/list/the_list, separator)
|
/proc/list2text(list/ls, sep)
|
||||||
var/total = the_list.len
|
if(ls.len <= 1) return ls.len ? ls[1] : ""
|
||||||
if(!total)
|
. = ""
|
||||||
return
|
var/l = ls.len
|
||||||
var/count = 2
|
var/i = 0
|
||||||
var/newText = "[the_list[1]]"
|
|
||||||
while(count <= total)
|
if(sep)
|
||||||
if(separator)
|
#define S1 ls[++i]
|
||||||
newText += separator
|
#define S4 S1, sep, S1, sep, S1, sep, S1
|
||||||
newText += "[the_list[count]]"
|
#define S16 S4, sep, S4, sep, S4, sep, S4
|
||||||
count++
|
#define S64 S16, sep, S16, sep, S16, sep, S16
|
||||||
return newText
|
|
||||||
|
while(l-i >= 128)
|
||||||
|
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64, sep, S64)
|
||||||
|
if(l-i >= 64)
|
||||||
|
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64)
|
||||||
|
if(l-i >= 32)
|
||||||
|
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S16, sep, S16)
|
||||||
|
if(l-i >= 16)
|
||||||
|
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S16)
|
||||||
|
if(l-i >= 8)
|
||||||
|
. = text("[][][][][][][][][][][][][][][][]", ., S4, sep, S4)
|
||||||
|
if(l-i >= 4)
|
||||||
|
. = text("[][][][][][][][]", ., S4)
|
||||||
|
if(l-i >= 2)
|
||||||
|
. = text("[][][][]", ., S1, sep, S1)
|
||||||
|
if(l > i)
|
||||||
|
. = text("[][][]", ., sep, S1)
|
||||||
|
|
||||||
|
#undef S64
|
||||||
|
#undef S16
|
||||||
|
#undef S4
|
||||||
|
#undef S1
|
||||||
|
|
||||||
|
else
|
||||||
|
#define S1 ls[++i]
|
||||||
|
#define S4 S1, S1, S1, S1
|
||||||
|
#define S16 S4, S4, S4, S4
|
||||||
|
#define S64 S16, S16, S16, S16
|
||||||
|
|
||||||
|
while(l-i >= 128)
|
||||||
|
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64, S64)
|
||||||
|
if(l-i >= 64)
|
||||||
|
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]\
|
||||||
|
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S64)
|
||||||
|
if(l-i >= 32)
|
||||||
|
. = text("[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]", ., S16, S16)
|
||||||
|
if(l-i >= 16)
|
||||||
|
. = text("[][][][][][][][][][][][][][][][][]", ., S16)
|
||||||
|
if(l-i >= 8)
|
||||||
|
. = text("[][][][][][][][][]", ., S4, S4)
|
||||||
|
if(l-i >= 4)
|
||||||
|
. = text("[][][][][]", ., S4)
|
||||||
|
if(l-i >= 2)
|
||||||
|
. = text("[][][]", ., S1, S1)
|
||||||
|
if(l > i)
|
||||||
|
. += S1
|
||||||
|
|
||||||
|
#undef S64
|
||||||
|
#undef S16
|
||||||
|
#undef S4
|
||||||
|
#undef S1
|
||||||
|
|
||||||
|
|
||||||
//slower then dd_list2text, but correctly processes associative lists.
|
//slower then list2text, but correctly processes associative lists.
|
||||||
proc/tg_list2text(list/list, glue=",")
|
proc/tg_list2text(list/list, glue=",")
|
||||||
if(!istype(list) || !list.len)
|
if(!istype(list) || !list.len)
|
||||||
return
|
return
|
||||||
@@ -108,56 +172,31 @@ proc/tg_list2text(list/list, glue=",")
|
|||||||
return output
|
return output
|
||||||
|
|
||||||
|
|
||||||
//Converts a text string into a list by splitting the string at each seperator found in text (discarding the seperator)
|
//Converts a string into a list by splitting the string at each delimiter found. (discarding the seperator)
|
||||||
//Returns an empty list if the text cannot be split, or the split text in a list.
|
/proc/text2list(text, delimiter="\n")
|
||||||
//Not giving a "" seperator will cause the text to be broken into a list of single letters.
|
var/delim_len = length(delimiter)
|
||||||
/proc/text2list(text, seperator="\n")
|
if(delim_len < 1) return list(text)
|
||||||
. = list()
|
. = list()
|
||||||
|
var/last_found = 1
|
||||||
|
var/found
|
||||||
|
do
|
||||||
|
found = findtext(text, delimiter, last_found, 0)
|
||||||
|
. += copytext(text, last_found, found)
|
||||||
|
last_found = found + delim_len
|
||||||
|
while(found)
|
||||||
|
|
||||||
var/text_len = length(text) //length of the input text
|
|
||||||
var/seperator_len = length(seperator) //length of the seperator text
|
|
||||||
|
|
||||||
if(text_len >= seperator_len)
|
|
||||||
var/i
|
|
||||||
var/last_i = 1
|
|
||||||
|
|
||||||
for(i=1,i<=(text_len+1-seperator_len),i++)
|
|
||||||
if( cmptext(copytext(text,i,i+seperator_len), seperator) )
|
|
||||||
if(i != last_i)
|
|
||||||
. += copytext(text,last_i,i)
|
|
||||||
last_i = i + seperator_len
|
|
||||||
|
|
||||||
if(last_i <= text_len)
|
|
||||||
. += copytext(text, last_i, 0)
|
|
||||||
else
|
|
||||||
. += text
|
|
||||||
return .
|
|
||||||
|
|
||||||
//Converts a text string into a list by splitting the string at each seperator found in text (discarding the seperator)
|
|
||||||
//Returns an empty list if the text cannot be split, or the split text in a list.
|
|
||||||
//Not giving a "" seperator will cause the text to be broken into a list of single letters.
|
|
||||||
//Case Sensitive!
|
//Case Sensitive!
|
||||||
/proc/text2listEx(text, seperator="\n")
|
/proc/text2listEx(text, delimiter="\n")
|
||||||
|
var/delim_len = length(delimiter)
|
||||||
|
if(delim_len < 1) return list(text)
|
||||||
. = list()
|
. = list()
|
||||||
|
var/last_found = 1
|
||||||
var/text_len = length(text) //length of the input text
|
var/found
|
||||||
var/seperator_len = length(seperator) //length of the seperator text
|
do
|
||||||
|
found = findtextEx(text, delimiter, last_found, 0)
|
||||||
if(text_len >= seperator_len)
|
. += copytext(text, last_found, found)
|
||||||
var/i
|
last_found = found + delim_len
|
||||||
var/last_i = 1
|
while(found)
|
||||||
|
|
||||||
for(i=1,i<=(text_len+1-seperator_len),i++)
|
|
||||||
if( cmptextEx(copytext(text,i,i+seperator_len), seperator) )
|
|
||||||
if(i != last_i)
|
|
||||||
. += copytext(text,last_i,i)
|
|
||||||
last_i = i + seperator_len
|
|
||||||
|
|
||||||
if(last_i <= text_len)
|
|
||||||
. += copytext(text, last_i, 0)
|
|
||||||
else
|
|
||||||
. += text
|
|
||||||
return .
|
|
||||||
|
|
||||||
//Splits the text of a file at seperator and returns them in a list.
|
//Splits the text of a file at seperator and returns them in a list.
|
||||||
/proc/file2list(filename, seperator="\n")
|
/proc/file2list(filename, seperator="\n")
|
||||||
|
|||||||
@@ -297,7 +297,7 @@ var/list/advance_cures = list(
|
|||||||
for(var/datum/symptom/S in symptoms)
|
for(var/datum/symptom/S in symptoms)
|
||||||
L += S.id
|
L += S.id
|
||||||
L = sortList(L) // Sort the list so it doesn't matter which order the symptoms are in.
|
L = sortList(L) // Sort the list so it doesn't matter which order the symptoms are in.
|
||||||
var/result = dd_list2text(L, ":")
|
var/result = list2text(L, ":")
|
||||||
id = result
|
id = result
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/obj/item/blueprints
|
/obj/item/blueprints
|
||||||
name = "station blueprints"
|
name = "station blueprints"
|
||||||
desc = "Blueprints of the station. There's stamp \"Classified\" and several coffee stains on it."
|
desc = "Blueprints of the station. There is a \"Classified\" stamp and several coffee stains on it."
|
||||||
icon = 'icons/obj/items.dmi'
|
icon = 'icons/obj/items.dmi'
|
||||||
icon_state = "blueprints"
|
icon_state = "blueprints"
|
||||||
attack_verb = list("attacked", "bapped", "hit")
|
attack_verb = list("attacked", "bapped", "hit")
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
/obj/item/blueprints/attack_self(mob/M as mob)
|
/obj/item/blueprints/attack_self(mob/M as mob)
|
||||||
if (!istype(M,/mob/living/carbon/human))
|
if (!istype(M,/mob/living/carbon/human))
|
||||||
M << "This is stack of useless pieces of harsh paper." //monkeys cannot into projecting
|
M << "This stack of blue paper means nothing to you." //monkeys cannot into projecting
|
||||||
return
|
return
|
||||||
interact()
|
interact()
|
||||||
return
|
return
|
||||||
@@ -53,18 +53,18 @@
|
|||||||
switch (get_area_type())
|
switch (get_area_type())
|
||||||
if (AREA_SPACE)
|
if (AREA_SPACE)
|
||||||
text += {"
|
text += {"
|
||||||
<p>According this blueprints you are in <b>open space</b> now.</p>
|
<p>According the blueprints, you are now in <b>outer space</b>. Hold your breath.</p>
|
||||||
<p><a href='?src=\ref[src];action=create_area'>Mark this place as new area.</a></p>
|
<p><a href='?src=\ref[src];action=create_area'>Mark this place as new area.</a></p>
|
||||||
"}
|
"}
|
||||||
if (AREA_STATION)
|
if (AREA_STATION)
|
||||||
text += {"
|
text += {"
|
||||||
<p>According this blueprints you are in <b>[A.name]</b> now.</p>
|
<p>According the blueprints, you are now in <b>\"[A.name]\"</b>.</p>
|
||||||
<p>You may <a href='?src=\ref[src];action=edit_area'>
|
<p>You may <a href='?src=\ref[src];action=edit_area'>
|
||||||
move an amendment</a> to the drawing.</p>
|
move an amendment</a> to the drawing.</p>
|
||||||
"}
|
"}
|
||||||
if (AREA_SPECIAL)
|
if (AREA_SPECIAL)
|
||||||
text += {"
|
text += {"
|
||||||
<p>This place isn't noted on these blueprints.</p>
|
<p>This place isn't noted on the blueprint.</p>
|
||||||
"}
|
"}
|
||||||
else
|
else
|
||||||
return
|
return
|
||||||
@@ -105,20 +105,20 @@ move an amendment</a> to the drawing.</p>
|
|||||||
if(!istype(res,/list))
|
if(!istype(res,/list))
|
||||||
switch(res)
|
switch(res)
|
||||||
if(ROOM_ERR_SPACE)
|
if(ROOM_ERR_SPACE)
|
||||||
usr << "\red New area must be complete airtight!"
|
usr << "\red The new area must be completely airtight!"
|
||||||
return
|
return
|
||||||
if(ROOM_ERR_TOOLARGE)
|
if(ROOM_ERR_TOOLARGE)
|
||||||
usr << "\red New area too large!"
|
usr << "\red The new area too large!"
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
usr << "\red Error! Please notify administration!"
|
usr << "\red Error! Please notify administration!"
|
||||||
return
|
return
|
||||||
var/list/turf/turfs = res
|
var/list/turf/turfs = res
|
||||||
var/str = trim(stripped_input(usr,"New area title","Blueprints editing", "", MAX_NAME_LEN))
|
var/str = trim(stripped_input(usr,"New area name:","Blueprint Editing", "", MAX_NAME_LEN))
|
||||||
if(!str || !length(str)) //cancel
|
if(!str || !length(str)) //cancel
|
||||||
return
|
return
|
||||||
if(length(str) > 50)
|
if(length(str) > 50)
|
||||||
usr << "\red Text too long."
|
usr << "\red Name too long."
|
||||||
return
|
return
|
||||||
var/area/A = new
|
var/area/A = new
|
||||||
A.name = str
|
A.name = str
|
||||||
@@ -153,8 +153,8 @@ move an amendment</a> to the drawing.</p>
|
|||||||
/obj/item/blueprints/proc/edit_area()
|
/obj/item/blueprints/proc/edit_area()
|
||||||
var/area/A = get_area()
|
var/area/A = get_area()
|
||||||
//world << "DEBUG: edit_area"
|
//world << "DEBUG: edit_area"
|
||||||
var/prevname = A.name
|
var/prevname = "[A.name]"
|
||||||
var/str = trim(stripped_input(usr,"New area title","Blueprints editing", prevname, MAX_NAME_LEN))
|
var/str = trim(stripped_input(usr,"New area name:","Blueprint Editing", prevname, MAX_NAME_LEN))
|
||||||
if(!str || !length(str) || str==prevname) //cancel
|
if(!str || !length(str) || str==prevname) //cancel
|
||||||
return
|
return
|
||||||
if(length(str) > 50)
|
if(length(str) > 50)
|
||||||
|
|||||||
@@ -571,7 +571,7 @@ obj/structure/ex_act(severity)
|
|||||||
if(text in direction_table)
|
if(text in direction_table)
|
||||||
return direction_table[text]
|
return direction_table[text]
|
||||||
|
|
||||||
var/list/split_text = stringsplit(text, "-")
|
var/list/split_text = text2list(text, "-")
|
||||||
|
|
||||||
// If the first token is D, the icon_state represents
|
// If the first token is D, the icon_state represents
|
||||||
// a purely decorative tube, and doesn't actually
|
// a purely decorative tube, and doesn't actually
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
/datum/admins/proc/create_mob(var/mob/user)
|
/datum/admins/proc/create_mob(var/mob/user)
|
||||||
if (!create_mob_html)
|
if (!create_mob_html)
|
||||||
var/mobjs = null
|
var/mobjs = null
|
||||||
mobjs = dd_list2text(typesof(/mob), ";")
|
mobjs = list2text(typesof(/mob), ";")
|
||||||
create_mob_html = file2text('html/create_object.html')
|
create_mob_html = file2text('html/create_object.html')
|
||||||
create_mob_html = replacetext(create_mob_html, "null /* object types */", "\"[mobjs]\"")
|
create_mob_html = replacetext(create_mob_html, "null /* object types */", "\"[mobjs]\"")
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
/datum/admins/proc/create_object(var/mob/user)
|
/datum/admins/proc/create_object(var/mob/user)
|
||||||
if (!create_object_html)
|
if (!create_object_html)
|
||||||
var/objectjs = null
|
var/objectjs = null
|
||||||
objectjs = dd_list2text(typesof(/obj), ";")
|
objectjs = list2text(typesof(/obj), ";")
|
||||||
create_object_html = file2text('html/create_object.html')
|
create_object_html = file2text('html/create_object.html')
|
||||||
create_object_html = replacetext(create_object_html, "null /* object types */", "\"[objectjs]\"")
|
create_object_html = replacetext(create_object_html, "null /* object types */", "\"[objectjs]\"")
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
if (!quick_create_object_html)
|
if (!quick_create_object_html)
|
||||||
var/objectjs = null
|
var/objectjs = null
|
||||||
objectjs = dd_list2text(typesof(path), ";")
|
objectjs = list2text(typesof(path), ";")
|
||||||
quick_create_object_html = file2text('html/create_object.html')
|
quick_create_object_html = file2text('html/create_object.html')
|
||||||
quick_create_object_html = replacetext(quick_create_object_html, "null /* object types */", "\"[objectjs]\"")
|
quick_create_object_html = replacetext(quick_create_object_html, "null /* object types */", "\"[objectjs]\"")
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
/datum/admins/proc/create_turf(var/mob/user)
|
/datum/admins/proc/create_turf(var/mob/user)
|
||||||
if (!create_turf_html)
|
if (!create_turf_html)
|
||||||
var/turfjs = null
|
var/turfjs = null
|
||||||
turfjs = dd_list2text(typesof(/turf), ";")
|
turfjs = list2text(typesof(/turf), ";")
|
||||||
create_turf_html = file2text('html/create_object.html')
|
create_turf_html = file2text('html/create_object.html')
|
||||||
create_turf_html = replacetext(create_turf_html, "null /* object types */", "\"[turfjs]\"")
|
create_turf_html = replacetext(create_turf_html, "null /* object types */", "\"[turfjs]\"")
|
||||||
|
|
||||||
|
|||||||
@@ -1606,7 +1606,7 @@
|
|||||||
alert("Select fewer object types, (max 5)")
|
alert("Select fewer object types, (max 5)")
|
||||||
return
|
return
|
||||||
else if(length(removed_paths))
|
else if(length(removed_paths))
|
||||||
alert("Removed:\n" + dd_list2text(removed_paths, "\n"))
|
alert("Removed:\n" + list2text(removed_paths, "\n"))
|
||||||
|
|
||||||
var/list/offset = text2list(href_list["offset"],",")
|
var/list/offset = text2list(href_list["offset"],",")
|
||||||
var/number = dd_range(1, 100, text2num(href_list["object_count"]))
|
var/number = dd_range(1, 100, text2num(href_list["object_count"]))
|
||||||
|
|||||||
@@ -975,14 +975,16 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
|
|||||||
|
|
||||||
switch(input("Which list?") in list("Players","Admins","Mobs","Living Mobs","Dead Mobs", "Clients"))
|
switch(input("Which list?") in list("Players","Admins","Mobs","Living Mobs","Dead Mobs", "Clients"))
|
||||||
if("Players")
|
if("Players")
|
||||||
usr << dd_list2text(player_list,",")
|
usr << list2text(player_list,",")
|
||||||
if("Admins")
|
if("Admins")
|
||||||
usr << dd_list2text(admins,",")
|
usr << list2text(admins,",")
|
||||||
if("Mobs")
|
if("Mobs")
|
||||||
usr << dd_list2text(mob_list,",")
|
usr << list2text(mob_list,",")
|
||||||
if("Living Mobs")
|
if("Living Mobs")
|
||||||
usr << dd_list2text(living_mob_list,",")
|
usr << list2text(living_mob_list,",")
|
||||||
if("Dead Mobs")
|
if("Dead Mobs")
|
||||||
usr << dd_list2text(dead_mob_list,",")
|
usr << list2text(dead_mob_list,",")
|
||||||
if("Clients")
|
if("Clients")
|
||||||
usr << dd_list2text(clients,",")
|
usr << list2text(clients,",")
|
||||||
|
if("Joined Clients")
|
||||||
|
usr << list2text(joined_player_list,",")
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ proc/NewStutter(phrase,stunned)
|
|||||||
|
|
||||||
split_phrase[index] = word
|
split_phrase[index] = word
|
||||||
|
|
||||||
return sanitize(dd_list2text(split_phrase," "))
|
return sanitize(list2text(split_phrase," "))
|
||||||
|
|
||||||
proc/Stagger(mob/M,d) //Technically not a filter, but it relates to drunkenness.
|
proc/Stagger(mob/M,d) //Technically not a filter, but it relates to drunkenness.
|
||||||
step(M, pick(d,turn(d,90),turn(d,-90)))
|
step(M, pick(d,turn(d,90),turn(d,-90)))
|
||||||
@@ -78,6 +78,6 @@ proc/Ellipsis(original_msg, chance = 50)
|
|||||||
else
|
else
|
||||||
new_words += w
|
new_words += w
|
||||||
|
|
||||||
new_msg = dd_list2text(new_words," ")
|
new_msg = list2text(new_words," ")
|
||||||
|
|
||||||
return new_msg
|
return new_msg
|
||||||
|
|||||||
@@ -71,4 +71,3 @@
|
|||||||
|
|
||||||
/mob/living/carbon/human/proc/GetSpecialVoice()
|
/mob/living/carbon/human/proc/GetSpecialVoice()
|
||||||
return special_voice
|
return special_voice
|
||||||
|
|
||||||
|
|||||||
@@ -249,7 +249,7 @@
|
|||||||
features += "hosted by <b>[config.hostedby]</b>"
|
features += "hosted by <b>[config.hostedby]</b>"
|
||||||
|
|
||||||
if (features)
|
if (features)
|
||||||
s += ": [dd_list2text(features, ", ")]"
|
s += ": [list2text(features, ", ")]"
|
||||||
|
|
||||||
/* does this help? I do not know */
|
/* does this help? I do not know */
|
||||||
if (src.status != s)
|
if (src.status != s)
|
||||||
|
|||||||
Reference in New Issue
Block a user