// Petrarch // Merentha Lib 1.0 // race daemon // race daemon keeps track of stats and limbs for races #include <std.h> inherit DAEMON; mapping __Limbs=([]), __Stats=([]); void load_races() { string *files=get_dir("/cfg/races/"), *lines; string file, race, tmp; int i=sizeof(files), j; while(i--) { if(file_size(file="/cfg/races/"+files[i]) > 0) { file=read_file(file); j=sizeof(lines=explode(file, "\n")); while(j--) { if (sscanf(lines[j], "race:%s", tmp)) { race=tmp; continue; } if (sscanf(lines[j], "stats:%s", tmp)) { __Stats[race]=tmp; continue; } if (sscanf(lines[j], "limbs:%s", tmp)) { __Limbs[race]=tmp; continue; } } } } } string *query_limbs(string race) { if(!race || !__Limbs[race]) return 0; return explode(__Limbs[race], ";"); } mapping query_stats(string race) { mixed val; string *stats; if(!val=__Stats[race]) return 0; stats=explode(val, ";"); return (["strength":to_int(stats[0]),"constitution":to_int(stats[1]),"dexterity":to_int(stats[2]),"wisdom":to_int(stats[3]),"intelligence":to_int(stats[4]),"charisma":to_int(stats[5]),"luck":to_int(stats[6]),"eyes":to_int(stats[7]),"size":to_int(stats[8]),"mass":to_int(stats[9])]); } string *query_races() { return keys(__Stats); } int valid_race(string str) { return (1+member_array(str, keys(__Stats))); } void create() { load_races(); }