/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* ABERED (AberMUD Dirt3 editor) *
* *
* The type declarations for abered, including definitions for mobiles *
* locations and objects. The settings for length of buffers etc, and if *
* we need the Berkeley include library, containing strncasecmp and *
* strcasecmp. (EQBUG) Also contains #defines for parsing mobiles and *
* objects, done in mob_io.c and obj_io.c #define ANSI_C on UNIX/ANSI *
* machines *
* *
* Copyright (C) 1993 James Willie. All rights reseved. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#ifndef _abered
#define _abered
#define CONFIG_FILE "abered.cfg" /* Configuration file */
#ifndef DOS_MACHINE
#define HELP_DIR "HELP/" /* Help directory for UNIX */
#else
#define HELP_DIR "HELP\\" /* Directory where help files are. */
#endif
#ifndef PCC_286
#include <stdlib.h>
#endif
#ifndef EQBUG
#include <string.h>
#endif
#define TRUE 1 /* These are the meaning of life :) */
#define FALSE 0
#define TABLE_END (char *)(-1)
#define MAX_COM 100 /* Longest command we will accept. */
#define MAX_BUFFER 10240 /* 10K buffer for descriptions. */
#define UNKNOWN 0 /* Serves for objects, locations & mobs */
#ifndef ANSI_C
typedef unsigned char u_char; /* For EQBUG mostly :) */
#endif
typedef unsigned char Bool; /* Easy way to do booleans, smaller int */
/* ========================== Location data types ========================== */
#define X_OBJECT 1 /* Exit types. */
#define X_NORMAL 2
#define X_NONE 3
#define NEXITS 6 /* Number of exits, eg n,s,e,w,u,d */
#define NUM_LFLAGS 32 /* Max of 32 lflags. */
typedef struct _loc *PLOC;
typedef struct _loc {
char *name; /* Unique internal name. */
char *pname; /* Name of the location. */
char *desc; /* Locations description. */
char exit_type[NEXITS]; /* Type of exit, to room, or linked obj */
char *ename[NEXITS]; /* Exit names. Case when it is UNKNOWN */
void *exits[NEXITS]; /* array of pointers to exits. */
Bool lflags[NUM_LFLAGS]; /* Array of location flags. */
PLOC next; /* Next location in linked list */
}LOC;
/* ============================ Object data types ========================== */
#define NUM_OFLAGS 32 /* Max number of oflags. */
#define NUM_WFLAGS 32 /* Max number of wflags */
#define MAX_STATES 4 /* Most number states allowed. */
#define IN_ROOM 1 /* Types of locations for an object. */
#define IN_CONTAINER 2
#define CARRIED_BY 3
#define WIELDED_BY 4
#define WORN_BY 5
#define BOTH_BY 6
#define O_NAME 0 /* Set of values to match what lookup */
#define O_PNAME 1 /* Would return when looking in the */
#define O_LOC 2 /* table of object things. */
#define O_DESC 3
#define O_END 4
#define O_ANAME 5
#define O_OFLAGS 6
#define O_ARMOR 7
#define O_DAMAGE 8
#define O_MAXS 9
#define O_STATE 10
#define O_VALUE 11
#define O_SIZE 12
#define O_WEIGHT 13
#define O_EXAM 14
#define O_LINK 15
#define O_COUNT 16
#define O_WFLAGS 17
#define O_WLEVEL 18
typedef struct _obj *POBJ;
typedef struct _obj {
char *name; /* Object name. Unique to zone. */
char *pname; /* Name players will see. */
char *altname; /* Alternative name for object. */
char *desc[MAX_STATES]; /* Description for each possible state */
char *examine; /* Pointer to examine text. */
char *lname; /* Name of location read in. */
char ltype; /* CARRIED, IN_ROOM etc. */
char *link; /* If linked, to what */
void *location; /* Pointer to actual loc/obj/mob */
int number; /* Unique number. Unimportant really. */
int damage; /* Damage. (If weapon) */
int armor; /* Armor value. (If armor) */
int state; /* Current and starting state */
int maxstate; /* Maximum state. */
int value; /* Base Value when pitted. */
int size; /* How big is it. */
int weight; /* How much does it weigh */
int counter; /* General purpose. */
Bool oflags[NUM_OFLAGS]; /* Array of flags */
#ifndef _NO_WFLAGS
int wlevel; /* The wear level of an object. */
Bool wflags[NUM_WFLAGS]; /* Array of flags */
#endif
POBJ next; /* Next object in list. */
}OBJ;
/* ============================ Mobile data types ========================== */
#define NUM_PFLAGS 64 /* Max number of pflags allowed. */
#define NUM_SFLAGS 32 /* Max number of sflags */
#define NUM_MFLAGS 64 /* Max number of mobile flags. */
#define MOB_NAME 0 /* Values returned by lookup when */
#define MOB_PNAME 1 /* The table Mob_tab[] in mob_io.c This */
#define MOB_LOC 2 /* controls the switch statement and */
#define MOB_DESC 3 /* Parsing of mobile data. */
#define MOB_END 4
#define MOB_STR 5
#define MOB_DAM 6
#define MOB_AGG 7
#define MOB_ARMOR 8
#define MOB_SPEED 9
#define MOB_PFLAGS 10
#define MOB_SFLAGS 11
#define MOB_MFLAGS 12
#define MOB_EXAM 13
typedef struct _mob *PMOB; /* Pointer to a mobile data type */
typedef struct _mob {
char *name; /* Mobiles internal name. */
char *pname; /* Name the players see. */
char *locname; /* Name of loc, if loc = NULL invalid loc */
PLOC loc; /* Pointer to location of the mobile */
int level; /* Mobile level. May not be used. */
int hp; /* Mobiles strength. (HitPoints) */
int armor; /* Natural AC of the mobile */
int damage; /* Natural damage done by mobile. */
int agg; /* Aggression of the mob as a % */
int speed; /* How fast the mobile walks. */
Bool pflags[NUM_PFLAGS]; /* Pflags (privilleged bits) */
Bool sflags[NUM_SFLAGS]; /* Slfags are condotions, eg female. */
Bool mflags[NUM_MFLAGS]; /* Mflags are special for mobiles. */
char *desc; /* Mobiles description. */
char *exam; /* Whar supposed to see when examined */
PMOB next;
}MOB;
#endif