/*
* $Id: btech.c,v 1.1.1.1 2005/01/11 21:18:02 kstevens Exp $
*
* Author: Markus Stenberg <fingon@iki.fi>
*
* Copyright (c) 1996 Markus Stenberg
* Copyright (c) 1998-2002 Thomas Wouters
* Copyright (c) 2000-2002 Cord Awtry
* All rights reserved
*
* Created: Thu Sep 19 21:59:09 1996 fingon
* Last modified: Tue Aug 12 19:39:55 1997 fingon
*
*/
/*
Local btech alike stuff for MUX.
Work's based on MUSE's btechstats.c
*/
#include "interface.h"
#include "mech.h"
#include "create.h"
#include "btechstats_global.h"
#include "coolmenu.h"
#include "mycool.h"
#include "p.mech.utils.h"
#include "p.glue.scode.h"
extern HASHTAB playervaluehash;
extern HASHTAB playervaluehash2;
void list_hashstat(dbref player, const char *tab_name, HASHTAB * htab);
void list_fhashstats(dbref player)
{
#if 0
int i;
for (i = 0; factions[i].name; i++)
if (factions[i].factnewshash)
list_hashstat(player, tprintf("FNews:%s", factions[i].key),
factions[i].factnewshash);
#endif
list_hashstat(player, "PValues", &playervaluehash);
list_hashstat(player, "PValues(S)", &playervaluehash2);
}
#define IsHCO(ref) WizP(ref)
void do_show(dbref player, dbref cause, int key, char *arg1, char *arg2)
{
int i;
enum {
CHAVA, CHVAL, CHSKI, CHADV, CHATT,
MECHVALUES
};
char *cmds[] = { "allvalues",
"values", "skills", "advantages",
"attributes", "xcodevalues", NULL
};
char *cmds_help[] = { "[char_]allvalues", "[char_]values",
"[char_]skills", "[char_]advantages", "[char_]attributes",
"xcodevalues [scode]", NULL
};
char buf[MBUF_SIZE];
DOCHECK(!IsHCO(player), "You aren't cleared to know this stuff yet!");
if (!arg1 || !*arg1) {
strcpy(buf, "Valid arguments:");
for (i = 0; cmds_help[i]; i++)
sprintf(buf + strlen(buf), "%c %s", i > 0 ? ',' : ' ',
cmds_help[i]);
notify(player, buf);
return;
}
i = listmatch(cmds, arg1);
/* Do da cmd */
switch (i) {
case MECHVALUES:
list_xcodevalues(player);
return;
case CHAVA:
list_charvaluestuff(player, -1);
return;
case CHVAL:
list_charvaluestuff(player, CHAR_VALUE);
return;
case CHSKI:
list_charvaluestuff(player, CHAR_SKILL);
return;
case CHADV:
list_charvaluestuff(player, CHAR_ADVANTAGE);
return;
case CHATT:
list_charvaluestuff(player, CHAR_ATTRIBUTE);
return;
}
notify(player, "Invalid arguments to +show command!");
return;
}