// 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); }