1/* Header: object.h,v 7.0.1.2 86/12/12 17:01:38 lwall Exp */ 2 3/* Log: object.h,v 4 * Revision 7.0.1.2 86/12/12 17:01:38 lwall 5 * Baseline for net release. 6 * 7 * Revision 7.0.1.1 86/10/16 10:52:30 lwall 8 * Added Damage. Fixed random bugs. 9 * 10 * Revision 7.0 86/10/08 15:13:04 lwall 11 * Split into separate files. Added amoebas and pirates. 12 * 13 */ 14 15#define Root 0 16#define Base 1 17#define Enterprise 2 18#define Star 3 19#define Torp 4 20#define Enemy 5 21#define Web 6 22#define Crusher 7 23 24typedef struct object { 25 short posx, posy; 26 short velx, vely; 27 struct object *next, *prev, *contend; 28 long energy; 29 long mass; 30 char type; 31 char image; 32 char strategy; 33 char flags; 34} OBJECT; 35 36#define PIRATE 1 /* we may mutiny */ 37#define FRIENDLY 2 /* we aren't really an enemy, for now */ 38#define STATIC 4 /* we are not in the movers list at the moment */ 39#define COUNTDOWN 8 /* we are counting down for something */ 40#define CLOAKS 16 /* we can cloak */ 41 42#ifdef DOINIT 43OBJECT root = {0, 0, 0, 0, &root, &root, 0, 0, 0, Root, '?', 0, 0}; 44#else 45EXT OBJECT root; 46#endif 47 48#ifdef DOINIT 49OBJECT free_root = {0, 0, 0, 0, &free_root, &free_root, 0, 0, 0, Root, '?', 0, 0}; 50#else 51EXT OBJECT free_root; 52#endif 53 54EXT OBJECT *ent; 55EXT OBJECT *base; 56EXT OBJECT *enemies; 57EXT OBJECT *movers; 58EXT OBJECT *realapollo; 59EXT OBJECT *nuke; 60 61EXT OBJECT *occupant[YSIZE][XSIZE]; 62 63void object_init(void); 64OBJECT *make_object(char, char, int, int, int, int, long, long, OBJECT *); 65void unmake_object(OBJECT *); 66void free_object(OBJECT *); 67