object.h revision 1.2 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.1 kamil *
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.1 kamil *
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.1 kamil *
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.1 kamil char posx, posy;
26 1.1 kamil #ifdef SIGNEDCHAR
27 1.1 kamil char velx, vely;
28 1.1 kamil #else
29 1.1 kamil short velx, vely;
30 1.1 kamil #endif
31 1.1 kamil struct object *next, *prev, *contend;
32 1.1 kamil long energy;
33 1.1 kamil long mass;
34 1.1 kamil char type;
35 1.1 kamil char image;
36 1.1 kamil char strategy;
37 1.1 kamil char flags;
38 1.1 kamil } OBJECT;
39 1.1 kamil
40 1.1 kamil #define PIRATE 1 /* we may mutiny */
41 1.1 kamil #define FRIENDLY 2 /* we aren't really an enemy, for now */
42 1.1 kamil #define STATIC 4 /* we are not in the movers list at the moment */
43 1.1 kamil #define COUNTDOWN 8 /* we are counting down for something */
44 1.1 kamil #define CLOAKS 16 /* we can cloak */
45 1.1 kamil
46 1.1 kamil #ifdef DOINIT
47 1.1 kamil OBJECT root = {0, 0, 0, 0, &root, &root, 0, 0, 0, Root, '?', 0, 0};
48 1.1 kamil #else
49 1.1 kamil EXT OBJECT root;
50 1.1 kamil #endif
51 1.1 kamil
52 1.1 kamil #ifdef DOINIT
53 1.1 kamil OBJECT free_root = {0, 0, 0, 0, &free_root, &free_root, 0, 0, 0, Root, '?', 0, 0};
54 1.1 kamil #else
55 1.1 kamil EXT OBJECT free_root;
56 1.1 kamil #endif
57 1.1 kamil
58 1.1 kamil EXT OBJECT *ent;
59 1.1 kamil EXT OBJECT *base;
60 1.1 kamil EXT OBJECT *enemies;
61 1.1 kamil EXT OBJECT *movers;
62 1.1 kamil EXT OBJECT *realapollo;
63 1.1 kamil EXT OBJECT *nuke;
64 1.1 kamil
65 1.1 kamil EXT OBJECT *occupant[YSIZE][XSIZE];
66 1.1 kamil
67 1.1 kamil OBJECT *make_object();
68 1.1 kamil
69 1.1 kamil void unmake_object();
70 1.1 kamil void free_object();
71 1.1 kamil void object_init();
72