Home | History | Annotate | Line # | Download | only in warp
      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