#ifndef THING_STRUCT_H_INCLUDED #define THING_STRUCT_H_INCLUDED #include "bevec.h" #include "area.h" #include "bump.h" #include "spritestate.h" /** * A Thing is any in-game object that appears the world/map view. */ struct Thing_ { int kind; /* What kind of thing it is. Same as collision type. */ int id; /* Numericial ID. */ int flags; /* State flags. */ Area * area; /* Area the thing is in, if any. */ BumpBody * physical; /* Physical body of the thing. Is NULL for statical body. */ BumpHull * hull; /* Main colision hull of the thing. */ int z; /* Layer the thing is in. */ void * data; /* Logical data of the thing. */ BeVec size; /* size of outline of shape */ BeVec spos; /* Sprite information. Also used as the reference for the direction * the thing is facing. */ SpriteState spritestate; /* Link back to "owner" for attacks, etc. Null if independent. */ struct Thing_ * owner; /* Linked things, such as searchers, attacks, spells. */ struct Thing_ * linked[THING_LINKED_MAX]; }; #endif