/
LIB3/
LIB3/D/ADMIN/
LIB3/D/ADMIN/OBJ/
LIB3/D/ADMIN/ROOM/W/
LIB3/D/HOME/
LIB3/D/HOME/CITY/ARENA/
LIB3/D/HOME/CITY/ITEMS/
LIB3/D/HOME/CITY/POSTOFFI/
LIB3/DOC/
LIB3/GLOBAL/SPECIAL/
LIB3/GLOBAL/VIRTUAL/
LIB3/NET/
LIB3/NET/CONFIG/
LIB3/NET/DAEMON/CHARS/
LIB3/NET/GOPHER/
LIB3/NET/INHERIT/
LIB3/NET/OBJ/
LIB3/NET/SAVE/
LIB3/NET/VIRTUAL/
LIB3/OBJ/B_DAY/
LIB3/OBJ/HANDLERS/TERM_TYP/
LIB3/PLAYERS/B/
LIB3/PLAYERS/N/
LIB3/ROOM/
LIB3/SAVE/
LIB3/SAVE/BOARDS/
LIB3/SAVE/ENVIRON/
LIB3/SAVE/POST/
LIB3/STD/COMMANDS/SHADOWS/
LIB3/STD/CREATOR/
LIB3/STD/DOM/
LIB3/STD/EFFECTS/
LIB3/STD/EFFECTS/HEALING/
LIB3/STD/EFFECTS/OTHER/
LIB3/STD/EFFECTS/POISONS/
LIB3/STD/ENVIRON/
LIB3/STD/GUILDS/
LIB3/STD/LIQUIDS/
LIB3/STD/ROOM/
LIB3/STD/TRIGGER/SHADOW/
LIB3/W/
LIB3/W/BANNOR/
LIB3/W/NEWSTYLE/
string long()
{
    return "The harsh language spoken by 'evil' creatures.\n";
}

int     mod( int i )
{
    return i - 4 * (i / 4);
}

string  lang( string str )
{
/* Phonetically similar to Tolkiens 'Morbeth' */
    switch( strlen( str ) )
    {
	case 1:
	    return({ "a", "g", "k", "u" })[ mod( str[ 0 ] ) ];
	case 2:
	    return({ "ug", "ak", "vu", "ka" })[ mod( str[ 0 ] ) ];
	case 3:
	    return({ "akk", "vuk", "vak", "kug" })[ mod( str[ 0 ] ) ];
	case 4:
	    return({ "ugga", "vakk", "vugk", "kuva" })[ mod( str[ 0 ] ) ];
	case 5:
	    return({ "agguk", "guvak", "kuuga", "ugaku" })[ mod( str[ 0 ] ) ];
	case 6:
	    return({ "gugguk", "akuvug", "vuvagu", "kakuka" })[ mod( str[ 0 ] ) ];
	case 7:
	    return({ "aggakug", "gukavuk", "vuguvak", "uvuguga" })[ mod( str[ 0 ] ) ];
	case 8:
	    return({ "ugguvuka", "akkuvagg", "vuukvuka", "kakagagu" })[ mod( str[ 0 ] ) ];
	default:
	    return({ "aa", "vv", "gg", "kk" })[ mod( str[ 0 ] ) ];
    }
}

string  standard_garble( string mess )
{
    string  ret, str;

    ret = "";
    while( sscanf( mess, "%s %s", str, mess ) == 2 )
	ret += lang( str ) + " ";
    return ret + lang( mess );
}

mixed   garble_tell( string start, string mess )
{
    return({ start, standard_garble( mess ) });
}

mixed   garble_shout( string start, string mess )
{
    return({ start, standard_garble( mess ) });
}

mixed   garble_say( string start, string mess )
{
    return({ start, standard_garble( mess ) });
}

mixed   garble_written( string start, string mess )
{
    return({ start, standard_garble( mess ) });
}