btmux-0.6-rc4/doc/
btmux-0.6-rc4/event/
btmux-0.6-rc4/game/
btmux-0.6-rc4/game/maps/
btmux-0.6-rc4/game/mechs/
btmux-0.6-rc4/game/text/help/
btmux-0.6-rc4/game/text/help/cat_faction/
btmux-0.6-rc4/game/text/help/cat_inform/
btmux-0.6-rc4/game/text/help/cat_misc/
btmux-0.6-rc4/game/text/help/cat_mux/
btmux-0.6-rc4/game/text/help/cat_mux/cat_commands/
btmux-0.6-rc4/game/text/help/cat_mux/cat_functions/
btmux-0.6-rc4/game/text/help/cat_templates/
btmux-0.6-rc4/game/text/wizhelp/
btmux-0.6-rc4/include/
btmux-0.6-rc4/misc/
btmux-0.6-rc4/python/
btmux-0.6-rc4/src/hcode/btech/
btmux-0.6-rc4/tree/
/* htab.h - Structures and declarations needed for table hashing */

/* $Id: htab.h,v 1.3 2005/08/08 09:43:07 murrayma Exp $ */

#include "copyright.h"
#include "rbtab.h"
#ifndef __HTAB_H
#define __HTAB_H
#if 0

#include "config.h"
#include "db.h"

typedef struct hashentry HASHENT;
struct hashentry {
    char *target;
    int *data;
    int checks;
    struct hashentry *next;
};

typedef struct num_hashentry NHSHENT;
struct num_hashentry {
    int target;
    int *data;
    int checks;
    struct num_hashentry *next;
};

typedef struct hasharray HASHARR;
struct hasharray {
    HASHENT *element[800];
};

typedef struct num_hasharray NHSHARR;
struct num_hasharray {
    NHSHENT *element[800];
};

typedef struct hashtable HASHTAB;
struct hashtable {
    int hashsize;
    int mask;
    int checks;
    int scans;
    int max_scan;
    int hits;
    int entries;
    int deletes;
    int nulls;
    HASHARR *entry;
    int last_hval;		/* Used for hashfirst & hashnext. */
    HASHENT *last_entry;	/* like last_hval */
};

typedef struct num_hashtable NHSHTAB;
struct num_hashtable {
    int hashsize;
    int mask;
    int checks;
    int scans;
    int max_scan;
    int hits;
    int entries;
    int deletes;
    int nulls;
    NHSHARR *entry;
    int last_hval;
    NHSHENT *last_entry;
};

typedef struct name_table NAMETAB;
struct name_table {
    char *name;
    int minlen;
    int perm;
    int flag;
};

extern void hashinit(HASHTAB *, int);
extern void hashreset(HASHTAB *);
extern int hashval(char *, int);
extern int get_hashmask(int *);
extern int *hashfind(char *, HASHTAB *);
extern int hashadd(char *, int *, HASHTAB *);
extern void hashdelete(char *, HASHTAB *);
extern void hashflush(HASHTAB *, int);
extern int hashrepl(char *, int *, HASHTAB *);
extern void hashreplall(int *, int *, HASHTAB *);
extern char *hashinfo(const char *, HASHTAB *);
extern int *nhashfind(int, NHSHTAB *);
extern int nhashadd(int, int *, NHSHTAB *);
extern void nhashdelete(int, NHSHTAB *);
extern void nhashflush(NHSHTAB *, int);
extern int nhashrepl(int, int *, NHSHTAB *);
extern int search_nametab(dbref, NAMETAB *, char *);
extern NAMETAB *find_nametab_ent(dbref, NAMETAB *, char *);
extern void display_nametab(dbref, NAMETAB *, char *, int);
extern void interp_nametab(dbref, NAMETAB *, int, char *, char *, char *);
extern void listset_nametab(dbref, NAMETAB *, int, char *, int);
extern int *hash_nextentry(HASHTAB * htab);
extern int *hash_firstentry(HASHTAB * htab);
extern char *hash_firstkey(HASHTAB * htab);
extern char *hash_nextkey(HASHTAB * htab);
extern int *nhash_nextentry(NHSHTAB * htab);
extern int *nhash_firstentry(NHSHTAB * htab);

extern NAMETAB powers_nametab[];

#define nhashinit(h,s) hashinit((HASHTAB *)h, s)
#define nhashreset(h) hashreset((HASHTAB *)h)
#define nhashinfo(t,h) hashinfo(t,(HASHTAB *)h)
#endif
#endif