TinyMAZE/
TinyMAZE/config/
TinyMAZE/doc/
TinyMAZE/run/msgs/
TinyMAZE/src/
TinyMAZE/src/db/
TinyMAZE/src/ident/
TinyMAZE/src/io/
TinyMAZE/src/prog/
TinyMAZE/src/softcode/
TinyMAZE/src/util/
#include <stdio.h>
#include "db.h"
#include "powers.h"
#include "externs.h"

static char *classnames[] ={
  "Lamb", "Worker", "Peasant", "Adventurer",
  "Squire", "Guard", "Knight", "Leader",
  "Advisor", "Overlord",
  NULL
  };
char *short_classnames[]={
  "Lamb", "Wrkr", "Psnt",  "Adven", "Squir",
  "Guard", "Knght", "Leadr", "Advsr", "Ovrld",
  NULL
  };
static char *typenames[] ={
  "Room", "Thing", "Exit", " 0x3", " 0x4", " 0x5", " 0x6", " 0x7", "Player"
  };

int get_class(OBJ *player)
{
  if(Typeof(player) != TYPE_PLAYER)
    return(0);
  if(is_root(player))
    return(CLASS_DIR);
  return(player->class);
}

char *class_to_name(int class)
{
  if(class >= NUM_CLASSES || class < 0)
    return(NULL);
  return(classnames[class]);
}

char *short_class_to_name(int class)
{
  return(short_classnames[class]);
}

int name_to_class(char *name)
{
  int i;

  for(i = 0;classnames[i];i++)
  {
    if(!string_compare(name, classnames[i]) ||
      !string_compare(name, short_classnames[i]))
    {
      return(i);
    }
  }

  return(-1);
}

char *type_to_name(int type)
{
  if(type >= 0 && type < 9)
    return(typenames[type]);
  else
    return(NULL);
}

int class_to_list_pos(int type)
{
  switch(type)
  {
    case CLASS_DIR:             return(0);
    case CLASS_ADMIN:           return(1);
    case CLASS_BUILDER:         return(2);
    case CLASS_OFFICIAL:        return(3);
    case CLASS_GUIDE:           return(4);
    case CLASS_PCITIZEN:        return(5);
    case CLASS_CITIZEN:         return(6);
    case CLASS_GROUP:           return(7);
    case CLASS_VISITOR:         return(8);
    case CLASS_GUEST:           return(9);
    default:                    return(8);
  }
}