inherit "/std/languages/language_inherit"; string *first_groups; string *middle_groups; string *last_groups; void setup() { set_long("Vostrum, language of the elder years.\n"); set_name("vostrum"); first_groups = ({ "xy" , "vo", "fi" , "ci", "gu" , "de", "jo" , "so", "ki" , "sa", "pe" , "si", "pa" , "ka", "qu" , "pi", "to" , "au", "ve" , "ph", "b" , "da", "g" , "di", "h" , "ho", "j" , "vo", "k" , "va", "m" , "ma", "n" , "oe", "p" , "pe", "r" , "si", "s" , "ru", "t" , "ce", "v" , "bo", "w" , "ce", "x" , "ca", "z" , "pi", "a" , "la", "e" , "du", "i" , "cu", "o" , "do", "u" , "so", }); middle_groups = ({ "xy" , "vo", "fi" , "ci", "gu" , "de", "jo" , "so", "ki" , "sa", "pe" , "si", "pa" , "ka", "qu" , "pi", "to" , "au", "ve" , "ph", "b" , "da", "g" , "di", "h" , "ho", "j" , "vo", "k" , "va", "m" , "ma", "n" , "oe", "p" , "pe", "r" , "si", "s" , "ru", "t" , "ce", "v" , "bo", "w" , "ce", "x" , "ca", "z" , "pi", "a" , "la", "e" , "du", "i" , "cu", "o" , "do", "u" , "so", }); last_groups = ({ "xy" , "vo", "fi" , "ci", "gu" , "de", "jo" , "so", "ki" , "sa", "pe" , "si", "pa" , "ka", "qu" , "pi", "to" , "au", "ve" , "ph", "b" , "da", "g" , "di", "h" , "ho", "j" , "vo", "k" , "va", "m" , "ma", "n" , "oe", "p" , "pe", "r" , "si", "s" , "ru", "t" , "ce", "v" , "bo", "w" , "ce", "x" , "ca", "z" , "pi", "a" , "la", "e" , "du", "i" , "cu", "o" , "do", "u" , "so", }); } string do_garble_speech(string text) { string speech; string first, middle, last; //Break up the word. int length; length = strlen(text); TCRE("shiannar", sprintf("Garbling %s, length is %d.", text, length)); if(length < 3) { speech = replace(text, first_groups); return replace(speech, " ", " "); } first = text[0..(length/3)-1]; middle = text[(length/3)..(length/3)*2-1]; last = text[(length/3)*2..length-1]; TCRE("shiannar", sprintf("First is \"%s\"\nMiddle is \"%s\"\nLast is \"%s\".", first, middle, last)); first = replace(first, first_groups); middle = replace(middle, middle_groups); last = replace(last, last_groups); speech = first + middle + last; return replace( speech, " ", " " ); } /* do_garble_speech() */ string do_garble(string text, string type) { TCRE("shiannar", sprintf("Text:\"%s\"\nType:\"%s\".", text, type)); return do_garble_speech(text); } mixed garble_say(string start, string mess, object to, object from) { return ({ start, do_garble_speech(mess) }); }