/*** A Be'lal thingy ***/
#include "skills.h"
#include <standard.h>
#include <cmd.h>
inherit CMD_BASE;
void setup() { position = 0; }
string query_usage() { return "view <living>\n"; }
string query_short_help() { return "List Skills\n"; }
string rec_list(mixed *arr, string path, int all, int lvl, object ob)
{
int i, sk;
string str, tp;
str = "";
for (i=0;i<sizeof(arr);i+=SKILL_ARR_SIZE) {
str += sprintf("%*'| 's%*'.'-s %4d %4d\n", (lvl-1)*2, "", 20-((lvl-1)*2),
arr[i],
(sk=(int)ob->query_skill((tp=(path+"."+arr[i])))),
(int)ob->query_skill_bonus(tp));
if (sizeof(arr[i+SKILL_BIT]) && (all || sk > 5*lvl))
str += rec_list(arr[i+SKILL_BIT], path+"."+arr[i], all, lvl+1,ob);
}
return str;
}
int cmd(string obj, object ob)
{
string *bits;
mixed *arr;
object targ;
if (!obj || obj == "" || obj == " ")
return notify_fail("Usage: view <living>\n");
obj = ob->expand_nickname(obj);
if(!(targ = find_player(obj)))
{
if (!(targ = find_living(obj)))
{
notify_fail("You must specify a person.\n");
return 0;
}
}
bits = ({ });
arr = (mixed *)SKILL_OB->query_skills();
printf("%'='*-s\n", ob->query_cols(),
"=======SKILLS=======Level/Bonus");
printf("%#*-s\n", ob->query_cols(), rec_list(
arr, "", (member_array("all", bits) != -1), 1, targ));
return 1;
}