/*
 * $Id: object.h,v 1.10 2003/09/02 07:10:53 dougday Exp $
 */

#ifndef OBJECT_H
#define OBJECT_H

struct _Person;
struct _Monster;

typedef enum {
    MOVEMENT_FIXED,
    MOVEMENT_WANDER,
    MOVEMENT_FOLLOW_AVATAR,
    MOVEMENT_ATTACK_AVATAR
} ObjectMovementBehavior;

typedef enum {
    OBJECT_UNKNOWN,
    OBJECT_PERSON,
    OBJECT_MONSTER    
} ObjectType;

typedef struct _Object {
    unsigned char tile, prevtile;
    unsigned short x, y, z;
    unsigned short prevx, prevy;
    ObjectMovementBehavior movement_behavior;
    union {
        const struct _Person *person;
        const struct _Monster *monster;
    };
    int objType;
    int hasFocus;
    int isVisible;
    int canAnimate;
    struct _Object *next;
} Object;

#endif
