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 24 typedef 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 43 OBJECT root = {0, 0, 0, 0, &root, &root, 0, 0, 0, Root, '?', 0, 0}; 44 #else 45 EXT OBJECT root; 46 #endif 47 48 #ifdef DOINIT 49 OBJECT free_root = {0, 0, 0, 0, &free_root, &free_root, 0, 0, 0, Root, '?', 0, 0}; 50 #else 51 EXT OBJECT free_root; 52 #endif 53 54 EXT OBJECT *ent; 55 EXT OBJECT *base; 56 EXT OBJECT *enemies; 57 EXT OBJECT *movers; 58 EXT OBJECT *realapollo; 59 EXT OBJECT *nuke; 60 61 EXT OBJECT *occupant[YSIZE][XSIZE]; 62 63 void object_init(void); 64 OBJECT *make_object(char, char, int, int, int, int, long, long, OBJECT *); 65 void unmake_object(OBJECT *); 66 void free_object(OBJECT *); 67