// Language daemon create by Valodin as an experimental racial language 
// reference
#include <std.h>
#include <cfg.h>
inherit DAEMON;
mapping language_list;
mapping read_languages();
void create()
{
  ::create();
  language_list = read_languages();
}
void init_languages(object ob)
{
  string race, tmp;
  int prof;
  race = ob->query_race();
  prof = 10;
  if(sscanf(race, "half-%s", tmp) == 1)
  {
    race = tmp;
    ob->set_lang_prof(language_list["human"], 6);
    prof = 6;
  }
  if(tmp = language_list[race])
  {
    ob->set_lang_prof(tmp, prof);
    ob->set_primary_lang(tmp);
    return;
  }
  else
  {
    ob->set_lang_prof(race + "ish", prof);
    ob->set_primary_lang(race + "ish");
    return;
  }
}
mapping read_languages()
{
  mapping langs;
  string *lines, *line;
  int i, lnsz;
  langs = ([]);
  for(i=0, lnsz = sizeof(lines = read_database(CFG_LANGUAGES)); i<lnsz; i++) {
    line = explode(lines[i], ":");
    langs[line[0]] = line[1];
  }
  return langs;
}
string *all_languages()
{
  return values(language_list);
}
string *all_races()
{
  return keys(language_list);
}