From aa734405ce32507141b3dcbb6a8c5e714e1dc1d0 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 21 Sep 2014 23:26:24 +0200 Subject: [PATCH 1/8] Cleanup, Added implode,min,max,randseed --- .../scripting/Implementations/Telecomms.dm | 69 ++---- .../scripting/Implementations/_Logic.dm | 224 ++++++++---------- 2 files changed, 114 insertions(+), 179 deletions(-) diff --git a/code/modules/scripting/Implementations/Telecomms.dm b/code/modules/scripting/Implementations/Telecomms.dm index 2437e485f77..c8473b3a056 100644 --- a/code/modules/scripting/Implementations/Telecomms.dm +++ b/code/modules/scripting/Implementations/Telecomms.dm @@ -97,7 +97,10 @@ interpreter.SetVar("$sign" , signal) interpreter.SetVar("$pass" , !(signal.data["reject"])) // if the signal isn't rejected, pass = 1; if the signal IS rejected, pass = 0 - // Set up the script procs + + /* + Telecomms procs + */ /* -> Send another signal to a server @@ -128,49 +131,12 @@ */ interpreter.SetProc("mem", "mem", signal, list("address", "value")) - /* - -> Delay code for a given amount of deciseconds - @format: sleep(time) - - @param time: time to sleep in deciseconds (1/10th second) - */ - interpreter.SetProc("sleep", /proc/delay) /* - -> Replaces a string with another string - @format: replace(string, substring, replacestring) - - @param string: the string to search for substrings (best used with $content$ constant) - @param substring: the substring to search for - @param replacestring: the string to replace the substring with - + General NTSL procs + Should probably be moved to its own place */ - interpreter.SetProc("replace", /proc/string_replacetext) - - /* - -> Locates an element/substring inside of a list or string - @format: find(haystack, needle, start = 1, end = 0) - - @param haystack: the container to search - @param needle: the element to search for - @param start: the position to start in - @param end: the position to end in - - */ - interpreter.SetProc("find", /proc/smartfind) - - /* - -> Finds the length of a string or list - @format: length(container) - - @param container: the list or container to measure - - */ - interpreter.SetProc("length", /proc/smartlength) - - /* -- Clone functions, carried from default BYOND procs --- */ - - // vector namespace + // Vector interpreter.SetProc("vector", /proc/n_list) interpreter.SetProc("at", /proc/n_listpos) interpreter.SetProc("copy", /proc/n_listcopy) @@ -179,19 +145,21 @@ interpreter.SetProc("cut", /proc/n_listcut) interpreter.SetProc("swap", /proc/n_listswap) interpreter.SetProc("insert", /proc/n_listinsert) - interpreter.SetProc("pick", /proc/n_pick) - interpreter.SetProc("prob", /proc/prob_chance) - interpreter.SetProc("substr", /proc/docopytext) + interpreter.SetProc("prob", /proc/n_prob) + interpreter.SetProc("substr", /proc/n_substr) + interpreter.SetProc("find", /proc/n_smartfind) + interpreter.SetProc("length", /proc/n_smartlength) - // Donkie~ // Strings interpreter.SetProc("lower", /proc/n_lower) interpreter.SetProc("upper", /proc/n_upper) - interpreter.SetProc("explode", /proc/string_explode) + interpreter.SetProc("explode", /proc/n_explode) + interpreter.SetProc("implode", /proc/n_implode) interpreter.SetProc("repeat", /proc/n_repeat) interpreter.SetProc("reverse", /proc/n_reverse) interpreter.SetProc("tonum", /proc/n_str2num) + interpreter.SetProc("replace", /proc/n_replace) // Numbers interpreter.SetProc("tostring", /proc/n_num2str) @@ -202,11 +170,14 @@ interpreter.SetProc("round", /proc/n_round) interpreter.SetProc("clamp", /proc/n_clamp) interpreter.SetProc("inrange", /proc/n_inrange) - interpreter.SetProc("rand", /proc/rand_chance) - // End of Donkie~ + interpreter.SetProc("rand", /proc/n_rand) + interpreter.SetProc("randseed", /proc/n_randseed) + interpreter.SetProc("min", /proc/n_min) + interpreter.SetProc("max", /proc/n_max) // Time - interpreter.SetProc("time", /proc/time) + interpreter.SetProc("time", /proc/n_time) + interpreter.SetProc("sleep", /proc/n_delay) interpreter.SetProc("timestamp", /proc/gameTimestamp) // Run the compiled code diff --git a/code/modules/scripting/Implementations/_Logic.dm b/code/modules/scripting/Implementations/_Logic.dm index 871ffd1905f..7a1ac824096 100644 --- a/code/modules/scripting/Implementations/_Logic.dm +++ b/code/modules/scripting/Implementations/_Logic.dm @@ -1,15 +1,17 @@ // Script -> BYOND code procs #define SCRIPT_MAX_REPLACEMENTS_ALLOWED 200 + + // --- List operations (lists known as vectors in n_script) --- -// Clone of list() +// Creates a list out of all the arguments /proc/n_list() var/list/returnlist = list() for(var/e in args) returnlist.Add(e) return returnlist -// Clone of pick() +// Picks one random item from the list /proc/n_pick() var/list/finalpick = list() for(var/e in args) @@ -23,7 +25,7 @@ return pick(finalpick) -// Clone of list[] +// Gets/Sets a value at a key in the list /proc/n_listpos(var/list/L, var/pos, var/value) if(!istype(L, /list)) return if(isnum(pos)) @@ -39,12 +41,12 @@ else L[pos] = value -// Clone of list.Copy() +// Copies the list into a new one /proc/n_listcopy(var/list/L, var/start, var/end) if(!istype(L, /list)) return return L.Copy(start, end) -// Clone of list.Add() +// Adds arg 2,3,4,5... to the end of list at arg 1 /proc/n_listadd() var/list/chosenlist var/i = 1 @@ -58,7 +60,7 @@ if(chosenlist) chosenlist.Add(e) -// Clone of list.Remove() +// Removes arg 2,3,4,5... from list at arg 1 /proc/n_listremove() var/list/chosenlist var/i = 1 @@ -72,38 +74,26 @@ if(chosenlist) chosenlist.Remove(e) -// Clone of list.Cut() +// Cuts out a copy of a list /proc/n_listcut(var/list/L, var/start, var/end) if(!istype(L, /list)) return return L.Cut(start, end) -// Clone of list.Swap() +// Swaps two values in the list /proc/n_listswap(var/list/L, var/firstindex, var/secondindex) if(!istype(L, /list)) return if(L.len >= secondindex && L.len >= firstindex) return L.Swap(firstindex, secondindex) -// Clone of list.Insert() +// Inserts a value into the list /proc/n_listinsert(var/list/L, var/index, var/element) if(!istype(L, /list)) return return L.Insert(index, element) -// --- Miscellaneous functions --- +// --- String methods --- -// Clone of sleep() -/proc/delay(var/time) - sleep(time) - -// Clone of rand() -/proc/rand_chance(var/low = 0, var/high) - return rand(low, high) - -// Clone of prob() -/proc/prob_chance(var/chance) - return prob(chance) - -// Merge of list.Find() and findtext() -/proc/smartfind(var/haystack, var/needle, var/start = 1, var/end = 0) +//If list, finds a value in it, if text, finds a substring in it +/proc/n_smartfind(var/haystack, var/needle, var/start = 1, var/end = 0) if(haystack && needle) if(isobject(haystack)) if(istype(haystack, /list)) @@ -116,70 +106,41 @@ if(length(haystack) >= end && start > 0) return findtext(haystack, needle, start, end) -// Clone of copytext() -/proc/docopytext(var/string, var/start = 1, var/end = 0) +//Returns a substring of the string +/proc/n_substr(var/string, var/start = 1, var/end = 0) if(istext(string) && isnum(start) && isnum(end)) if(start > 0) return copytext(string, start, end) -// Clone of length() -/proc/smartlength(var/container) +//Returns the length of the string or list +/proc/n_smartlength(var/container) if(container) if(istype(container, /list) || istext(container)) return length(container) return 0 -// BY DONKIE~ -// String stuff +//Lowercase all characters /proc/n_lower(var/string) if(istext(string)) return lowertext(string) +//Uppercase all characters /proc/n_upper(var/string) if(istext(string)) return uppertext(string) -/proc/time() - return world.timeofday - -/* -//Makes a list where all indicies in a string is a seperate index in the list -// JUST A HELPER DON'T ADD TO NTSCRIPT -proc/string_tolist(var/string) - var/list/L = new/list() - - var/i - for(i=1, i<=lentext(string), i++) - L.Add(copytext(string, i, i)) - - return L - -proc/string_explode(var/string, var/separator) - if(istext(string)) - if(istext(separator) && separator == "") - return string_tolist(string) - var/i - var/lasti = 1 - var/list/L = new/list() - - for(i=1, i<=lentext(string)+1, i++) - if(copytext(string, i, i+1) == separator) // We found a separator - L.Add(copytext(string, lasti, i)) - lasti = i+1 - - L.Add(copytext(string, lasti, lentext(string)+1)) // Adds the last segment - - return L - -Just found out there was already a string explode function, did some benchmarking, and that function were a bit faster, sticking to that. -*/ - - -proc/string_explode(var/string, var/separator = "") +//Converts a string to a list +/proc/n_explode(var/string, var/separator = "") if(istext(string) && (istext(separator) || isnull(separator))) return text2list(string, separator) -proc/n_repeat(var/string, var/amount) +//Converts a list to a string +/proc/n_implode(var/list/li, var/separator) + if(istype(li) && (istext(separator) || isnull(separator))) + return list2text(li, separator) + +//Repeats the string x times +/proc/n_repeat(var/string, var/amount) if(istext(string) && isnum(amount)) var/i var/newstring = "" @@ -192,7 +153,8 @@ proc/n_repeat(var/string, var/amount) return newstring -proc/n_reverse(var/string) +//Reverses the order of the string. "Clown" becomes "nwolC" +/proc/n_reverse(var/string) if(istext(string)) var/newstring = "" var/i @@ -203,45 +165,85 @@ proc/n_reverse(var/string) return newstring -// I don't know if it's neccesary to make my own proc, but I think I have to to be able to check for istext. -proc/n_str2num(var/string) +// String -> Number +/proc/n_str2num(var/string) if(istext(string)) return text2num(string) -// Number shit -proc/n_num2str(var/num) +// --- Number methods --- + +//Returns the highest value of the arguments +//Need custom functions here cause byond's min and max runtimes if you give them a string or list. +/proc/n_max() + if(args.len == 0) + return 0 + + var/max = args[1] + for(var/e in args) + if(isnum(e) && e > max) + max = e + + return max + +//Returns the lowest value of the arguments +/proc/n_min() + if(args.len == 0) + return 0 + + var/min = args[1] + for(var/e in args) + if(isnum(e) && e < min) + min = e + + return min + +/proc/n_prob(var/chance) + return prob(chance) + +/proc/n_randseed(var/seed) + rand_seed(seed) + return 0 + +/proc/n_rand(var/low, var/high) + if(isnull(low) && isnull(high)) + return rand() + + return rand(low, high) + +// Number -> String +/proc/n_num2str(var/num) if(isnum(num)) return num2text(num) // Squareroot -proc/n_sqrt(var/num) +/proc/n_sqrt(var/num) if(isnum(num)) return sqrt(num) // Magnitude of num -proc/n_abs(var/num) +/proc/n_abs(var/num) if(isnum(num)) return abs(num) // Round down -proc/n_floor(var/num) +/proc/n_floor(var/num) if(isnum(num)) return round(num) // Round up -proc/n_ceil(var/num) +/proc/n_ceil(var/num) if(isnum(num)) return round(num)+1 // Round to nearest integer -proc/n_round(var/num) +/proc/n_round(var/num) if(isnum(num)) if(num-round(num)<0.5) return round(num) return n_ceil(num) // Clamps N between min and max -proc/n_clamp(var/num, var/min=-1, var/max=1) +/proc/n_clamp(var/num, var/min=-1, var/max=1) if(isnum(num)&&isnum(min)&&isnum(max)) if(num<=min) return min @@ -250,59 +252,12 @@ proc/n_clamp(var/num, var/min=-1, var/max=1) return num // Returns 1 if N is inbetween Min and Max -proc/n_inrange(var/num, var/min=-1, var/max=1) +/proc/n_inrange(var/num, var/min=-1, var/max=1) if(isnum(num)&&isnum(min)&&isnum(max)) return ((min <= num) && (num <= max)) -// END OF BY DONKIE :( -// Non-recursive -// Imported from Mono string.ReplaceUnchecked -/* -/proc/string_replacetext(var/haystack,var/a,var/b) - if(istext(haystack)&&istext(a)&&istext(b)) - var/i = 1 - var/lenh=lentext(haystack) - var/lena=lentext(a) - //var/lenb=lentext(b) - var/count = 0 - var/list/dat = list() - while (i < lenh) - var/found = findtext(haystack, a, i, 0) - //diary << "findtext([haystack], [a], [i], 0)=[found]" - if (found == 0) // Not found - break - else - if (count < SCRIPT_MAX_REPLACEMENTS_ALLOWED) - dat+=found - count+=1 - else - //diary << "Script found [a] [count] times, aborted" - break - //diary << "Found [a] at [found]! Moving up..." - i = found + lena - if (count == 0) - return haystack - //var/nlen = lenh + ((lenb - lena) * count) - var/buf = copytext(haystack,1,dat[1]) // Prefill - var/lastReadPos = 0 - for (i = 1, i <= count, i++) - var/precopy = dat[i] - lastReadPos-1 - //internal static unsafe void CharCopy (String target, int targetIndex, String source, int sourceIndex, int count) - //fixed (char* dest = target, src = source) - //CharCopy (dest + targetIndex, src + sourceIndex, count); - //CharCopy (dest + curPos, source + lastReadPos, precopy); - buf+=copytext(haystack,lastReadPos,precopy) - diary << "buf+=copytext([haystack],[lastReadPos],[precopy])" - diary<<"[buf]" - lastReadPos = dat[i] + lena - //CharCopy (dest + curPos, replace, newValue.length); - buf+=b - diary<<"[buf]" - buf+=copytext(haystack,lastReadPos, 0) - return buf -*/ - -/proc/string_replacetext(text, find, replacement) +// Replace text +/proc/n_replace(text, find, replacement) if(istext(text) && istext(find) && istext(replacement)) var/find_len = length(find) if(find_len < 1) return text @@ -321,4 +276,13 @@ proc/n_inrange(var/num, var/min=-1, var/max=1) continue return -#undef SCRIPT_MAX_REPLACEMENTS_ALLOWED \ No newline at end of file +#undef SCRIPT_MAX_REPLACEMENTS_ALLOWED + +// --- Miscellaneous functions --- + +/proc/n_time() + return world.timeofday + +// Clone of sleep() +/proc/n_delay(var/time) + sleep(time) From bd58c3b2029a0a7b4d0039b99052f00176065a74 Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 26 Sep 2014 14:50:16 +0200 Subject: [PATCH 2/8] Added proper(string) --- code/modules/scripting/Implementations/Telecomms.dm | 1 + code/modules/scripting/Implementations/_Logic.dm | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/code/modules/scripting/Implementations/Telecomms.dm b/code/modules/scripting/Implementations/Telecomms.dm index c8473b3a056..7016db25076 100644 --- a/code/modules/scripting/Implementations/Telecomms.dm +++ b/code/modules/scripting/Implementations/Telecomms.dm @@ -160,6 +160,7 @@ interpreter.SetProc("reverse", /proc/n_reverse) interpreter.SetProc("tonum", /proc/n_str2num) interpreter.SetProc("replace", /proc/n_replace) + interpreter.SetProc("proper", /proc/n_proper) // Numbers interpreter.SetProc("tostring", /proc/n_num2str) diff --git a/code/modules/scripting/Implementations/_Logic.dm b/code/modules/scripting/Implementations/_Logic.dm index 7a1ac824096..43324eaedd5 100644 --- a/code/modules/scripting/Implementations/_Logic.dm +++ b/code/modules/scripting/Implementations/_Logic.dm @@ -170,6 +170,12 @@ if(istext(string)) return text2num(string) +/proc/n_proper(var/string) + if(!istext(string)) + return "" + + return text("[][]", uppertext(copytext(string, 1, 1)), lowercase(copytext(string, 2))) + // --- Number methods --- //Returns the highest value of the arguments From 7be2bdff8bcf3dbe90218a3ca23ca1acc6e67c24 Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 26 Sep 2014 15:26:57 +0200 Subject: [PATCH 3/8] Fixed proper() --- code/modules/scripting/Implementations/_Logic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/scripting/Implementations/_Logic.dm b/code/modules/scripting/Implementations/_Logic.dm index 43324eaedd5..dbae24c596a 100644 --- a/code/modules/scripting/Implementations/_Logic.dm +++ b/code/modules/scripting/Implementations/_Logic.dm @@ -174,7 +174,7 @@ if(!istext(string)) return "" - return text("[][]", uppertext(copytext(string, 1, 1)), lowercase(copytext(string, 2))) + return text("[][]", uppertext(copytext(string, 1, 1)), lowertext(copytext(string, 2))) // --- Number methods --- From 34a3d63f9b373efb2809def60ac9ea4dd6bd1025 Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 26 Sep 2014 18:46:12 +0200 Subject: [PATCH 4/8] Added language argument to broadcast() Can be any of HUMAN, MONKEY, ALIEN, ROBOT, SLIME or DRONE. --- .../scripting/Implementations/Telecomms.dm | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/code/modules/scripting/Implementations/Telecomms.dm b/code/modules/scripting/Implementations/Telecomms.dm index 7016db25076..bfe92013480 100644 --- a/code/modules/scripting/Implementations/Telecomms.dm +++ b/code/modules/scripting/Implementations/Telecomms.dm @@ -97,6 +97,14 @@ interpreter.SetVar("$sign" , signal) interpreter.SetVar("$pass" , !(signal.data["reject"])) // if the signal isn't rejected, pass = 1; if the signal IS rejected, pass = 0 + //Language bitflags + interpreter.SetVar("HUMAN" , HUMAN) + interpreter.SetVar("MONKEY" , MONKEY) + interpreter.SetVar("ALIEN" , ALIEN) + interpreter.SetVar("ROBOT" , ROBOT) + interpreter.SetVar("SLIME" , SLIME) + interpreter.SetVar("DRONE" , DRONE) + /* Telecomms procs @@ -104,14 +112,15 @@ /* -> Send another signal to a server - @format: broadcast(content, frequency, source, job) + @format: broadcast(content, frequency, source, job, lang) @param content: Message to broadcast @param frequency: Frequency to broadcast to @param source: The name of the source you wish to imitate. Must be stored in stored_names list. - @param job: The name of the job. + @param job: The name of the job. + @param lang: Target language. */ - interpreter.SetProc("broadcast", "tcombroadcast", signal, list("message", "freq", "source", "job")) + interpreter.SetProc("broadcast", "tcombroadcast", signal, list("message", "freq", "source", "job", "lang")) /* -> Send a code signal. @@ -251,7 +260,7 @@ datum/signal lastsignalers.Add("[time] : [S.id] sent a signal command, which was triggered by NTSL.: [format_frequency(freq)]/[code]") - proc/tcombroadcast(var/message, var/freq, var/source, var/job) + proc/tcombroadcast(var/message, var/freq, var/source, var/job, var/lang) var/datum/signal/newsign = new var/obj/machinery/telecomms/server/S = data["server"] @@ -274,13 +283,16 @@ datum/signal if(!job) job = "Unknown" + if(!lang || lang <= 0)// || !(lang && !(lang & (lang - 1)))) //This last piece of code checks to make sure only one bit is set. + lang = HUMAN + //SAY REWRITE RELATED CODE. //This code is a little hacky, but it *should* work. Even though it'll result in a virtual speaker referencing another virtual speaker. vOv var/atom/movable/virtualspeaker/virt = PoolOrNew(/atom/movable/virtualspeaker,null) virt.name = source virt.job = job virt.faketrack = 1 - virt.languages = HUMAN + virt.languages = lang //END SAY REWRITE RELATED CODE. newsign.data["mob"] = virt From bbf88e498677c7145cd550861904de196044424f Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 26 Sep 2014 18:46:17 +0200 Subject: [PATCH 5/8] Fixed proper() again --- code/modules/scripting/Implementations/_Logic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/scripting/Implementations/_Logic.dm b/code/modules/scripting/Implementations/_Logic.dm index dbae24c596a..343adf34d43 100644 --- a/code/modules/scripting/Implementations/_Logic.dm +++ b/code/modules/scripting/Implementations/_Logic.dm @@ -174,7 +174,7 @@ if(!istext(string)) return "" - return text("[][]", uppertext(copytext(string, 1, 1)), lowertext(copytext(string, 2))) + return text("[][]", uppertext(copytext(string, 1, 2)), lowertext(copytext(string, 2))) // --- Number methods --- From 8fa821f2677547d1e8a601f5518b50cb85707619 Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 26 Sep 2014 20:14:22 +0200 Subject: [PATCH 6/8] Added $language variable Does not support changing output language yet though --- code/modules/scripting/Implementations/Telecomms.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/modules/scripting/Implementations/Telecomms.dm b/code/modules/scripting/Implementations/Telecomms.dm index bfe92013480..6c02ab4997a 100644 --- a/code/modules/scripting/Implementations/Telecomms.dm +++ b/code/modules/scripting/Implementations/Telecomms.dm @@ -105,6 +105,13 @@ interpreter.SetVar("SLIME" , SLIME) interpreter.SetVar("DRONE" , DRONE) + var/curlang = HUMAN + if(istype(signal.data["mob"], /atom/movable)) + var/atom/movable/M = signal.data["mob"] + curlang = M.languages + + interpreter.SetVar("$language", curlang) + /* Telecomms procs From 021e960bb3e5f7bb40c0d9a9ebd166493698dfe1 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 30 Sep 2014 18:20:01 +0200 Subject: [PATCH 7/8] Removed language argument from broadcast() --- code/modules/scripting/Implementations/Telecomms.dm | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/code/modules/scripting/Implementations/Telecomms.dm b/code/modules/scripting/Implementations/Telecomms.dm index 6c02ab4997a..e807beeaedb 100644 --- a/code/modules/scripting/Implementations/Telecomms.dm +++ b/code/modules/scripting/Implementations/Telecomms.dm @@ -125,9 +125,8 @@ @param frequency: Frequency to broadcast to @param source: The name of the source you wish to imitate. Must be stored in stored_names list. @param job: The name of the job. - @param lang: Target language. */ - interpreter.SetProc("broadcast", "tcombroadcast", signal, list("message", "freq", "source", "job", "lang")) + interpreter.SetProc("broadcast", "tcombroadcast", signal, list("message", "freq", "source", "job")) /* -> Send a code signal. @@ -267,7 +266,7 @@ datum/signal lastsignalers.Add("[time] : [S.id] sent a signal command, which was triggered by NTSL.: [format_frequency(freq)]/[code]") - proc/tcombroadcast(var/message, var/freq, var/source, var/job, var/lang) + proc/tcombroadcast(var/message, var/freq, var/source, var/job) var/datum/signal/newsign = new var/obj/machinery/telecomms/server/S = data["server"] @@ -290,16 +289,13 @@ datum/signal if(!job) job = "Unknown" - if(!lang || lang <= 0)// || !(lang && !(lang & (lang - 1)))) //This last piece of code checks to make sure only one bit is set. - lang = HUMAN - //SAY REWRITE RELATED CODE. //This code is a little hacky, but it *should* work. Even though it'll result in a virtual speaker referencing another virtual speaker. vOv var/atom/movable/virtualspeaker/virt = PoolOrNew(/atom/movable/virtualspeaker,null) virt.name = source virt.job = job virt.faketrack = 1 - virt.languages = lang + virt.languages = HUMAN //END SAY REWRITE RELATED CODE. newsign.data["mob"] = virt From a40b603fc1eb37aaf8378e5dbfa9accb53a2eb1a Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 30 Sep 2014 18:25:31 +0200 Subject: [PATCH 8/8] Added changelog --- html/changelogs/Donkie-PR-4927.yml | 37 ++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 html/changelogs/Donkie-PR-4927.yml diff --git a/html/changelogs/Donkie-PR-4927.yml b/html/changelogs/Donkie-PR-4927.yml new file mode 100644 index 00000000000..5c7937a253f --- /dev/null +++ b/html/changelogs/Donkie-PR-4927.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscdel (general adding of nice things) +# rscadd (general deleting of nice things) +# imageadd +# imagedel +# spellcheck (typo fixes) +# experiment +# tgs (TG-ported fixes?) +################################# + +# Your name. +author: Donkie + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +changes: + - rscadd: NTSL Update + - rscadd: Added implode(list, string), min(...), max(...), randseed(num), rand(), proper(string) + - rscadd: Added $language variable. Returns any of HUMAN,MONKEY,ALIEN,ROBOT,SLIME or DRONE depending on the language of the incoming signal. \ No newline at end of file