xref: /netbsd-src/games/warp/object.h (revision 1182a44c59cae4d586117d55eca24b4b8b173211)
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