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