pdirt/data/
pdirt/data/HELP/
pdirt/data/HELP/0/
pdirt/data/HELP/F/
pdirt/data/HELP/G/
pdirt/data/HELP/H/
pdirt/data/HELP/J/
pdirt/data/HELP/K/
pdirt/data/HELP/O/
pdirt/data/HELP/Q/
pdirt/data/HELP/R/
pdirt/data/HELP/U/
pdirt/data/HELP/V/
pdirt/data/HELP/Y/
pdirt/data/HELP/Z/
pdirt/data/MESSAGES/
pdirt/data/POWERINFO/
pdirt/data/WIZ_ZONES/
pdirt/drv/
pdirt/drv/bin/
pdirt/drv/compiler/converter/
pdirt/drv/compiler/libs/
pdirt/drv/compiler/scripts/
pdirt/drv/include/AberChat/
pdirt/drv/include/InterMud/
pdirt/drv/include/machine/
pdirt/drv/src/InterMud/
pdirt/drv/src/Players/
pdirt/drv/utils/UAFPort/
pdirt/drv/utils/dnsresolv/
pdirt/drv/utils/gdbm/
#ifndef __OBJSYS_H__ 
#define __OBJSYS_H__ 


/***************************************************************************
 ** Functions to check if object is of a special type 
 ***************************************************************************/
Boolean ispit(register int o);
Boolean ishere(int item);
Boolean iscarrby(int item, int user);
Boolean in_inventory(int obj, int player);
Boolean is_shield(int obj);
Boolean wears_shield(int pl);
Boolean is_armor(int obj);
Boolean wears_armor(int pl);
Boolean is_mask(int obj);
Boolean wears_mask(int pl);
Boolean is_boat(int obj);
Boolean is_raft(int obj);
Boolean is_rope(int obj);
Boolean carries_boat(int pl);
Boolean carries_raft(int pl);
Boolean has_anti_spell_obj(int plx);
int     has_magic_object(int plx);
int     carries_obj_type(int pl, int type);
int     wears_obj_type(int pl, int type);
int     has_container_obj(int pl);
Boolean wearsobjfrom(int plr,const int *table);
Boolean carrobjfrom(int plr,const int *table);

/***************************************************************************
 ** Game command functions 
 ***************************************************************************/
A_COMMAND(givecom);
A_COMMAND(stealcom);
A_COMMAND(wearcom);
A_COMMAND(removecom);
A_COMMAND(valuecom);
A_COMMAND(equipcom);
A_COMMAND(putcom);
A_COMMAND(eatcom);
A_COMMAND(inventory);
A_COMMAND(closecom);
A_COMMAND(opencom);
A_COMMAND(lockcom);
A_COMMAND(unlockcom);
A_COMMAND(wearall);
A_COMMAND(dropcom);
void eat(int ob);
int  getcom(void);

/***************************************************************************
 ** Functions used by game command functions
 ***************************************************************************/
int	dogive(int ob, int pl);
void	mlobjsat(int x, int m);
void	aobjsat(int loc, int mode, int marg);
void    listobject(int loc, int mode);
Boolean iscontin(int o1, int o2);
int     obj_loc(int obj);
int     dropobj(int obj);
void    dropinpit(int o);
void    print_inventory(int who);
void	drop_some_objects(int plx);

/****************************************************************************
 ** Find object by ...
 ****************************************************************************/
int	fobn(char *word);
int	fobna(char *word);
int	fobnin(char *word, int ct);
int	fobnc(char *word);
int	fobncb(char *word, int by);
int	fobnh(char *word);
int     find_object_by_id(long int id);
int     fobn_can_take(char *word);

void    list_objects(int show,Boolean f);
void    dumpitems(void);
void    dumpstuff(int n, int loc);
Boolean set_weapon(int plr, int wpn);

/**************************************************************************
 ** Type declaration
 **************************************************************************/
typedef struct 
{
  char *class_name;
/*
  OFLAGS class_mask;
*/
  long int class_mask;
  short class_state;
} 
CLASS_DATA;

CLASS_DATA *findclass(char *n);
int        value_class(CLASS_DATA *cl, int plx, Boolean silent);

void	oplong(int x);
int	gotanything(int x);
Boolean cancarry(int plyr);
int     iswornby( int ob, int plr);
Boolean isavl(int ob);
Boolean reset_object(int o);
void	setobjstate(int o, int v);
void	destroy(int ob);
void	create(int ob);
void	setoloc(int ob, int l, int c);
Boolean ohany(int mask);
Boolean p_ohany(int plr,int mask);
int     p_ohanyflag(int plr,int flag);
Boolean ishere(int item);
Boolean p_ishere(int plr,int item);
int	ovalue(int ob);
char	*xdesloc(char *b, int loc, int cf);
void	desloc(int loc, int cf);
Boolean	otstmask(int ob, int v);
Boolean willhold(int x, int y);
int	ohereandget(void);

void    desrm(int loc, int cf);
char   *xdesrm(char *b, int loc, int cf);


/****************************************************************************
 ** Defines 
 ****************************************************************************/
#define O_BVALUE_MAX 10000
#define O_SIZE_MAX 30000
#define O_VIS_MAX LVL_GOD
#define O_DAM_MAX 100
#define O_ARMOR_MAX 100

#endif /* Add nothing past this line... */