object.h revision 1.1 1 1.1 kamil /* $Header: /tank/opengrok/rsync2/NetBSD/src/games/warp/object.h,v 1.1 2020/11/09 23:37:05 kamil Exp $ */
2 1.1 kamil
3 1.1 kamil /* $Log: object.h,v $
4 1.1 kamil /* Revision 1.1 2020/11/09 23:37:05 kamil
5 1.1 kamil /* Add Warp Kit, Version 7.0 by Larry Wall
6 1.1 kamil /*
7 1.1 kamil /* Warp is a real-time space war game that doesn't get boring very quickly.
8 1.1 kamil /* Read warp.doc and the manual page for more information.
9 1.1 kamil /*
10 1.1 kamil /* games/warp originally distributed with 4.3BSD-Reno, is back to the BSD
11 1.1 kamil /* world via NetBSD. Its remnants were still mentioned in games/Makefile.
12 1.1 kamil /*
13 1.1 kamil /* Larry Wall, the original author and the copyright holder, generously
14 1.1 kamil /* donated the game and copyright to The NetBSD Foundation, Inc.
15 1.1 kamil /*
16 1.1 kamil /* Import the game sources as-is from 4.3BSD-Reno, with the cession
17 1.1 kamil /* of the copyright and license to BSD-2-clause NetBSD-style.
18 1.1 kamil /*
19 1.1 kamil /* Signed-off-by: Larry Wall <larry (at) wall.org>
20 1.1 kamil /* Signed-off-by: Kamil Rytarowski <kamil (at) netbsd.org>
21 1.1 kamil /*
22 1.1 kamil * Revision 7.0.1.2 86/12/12 17:01:38 lwall
23 1.1 kamil * Baseline for net release.
24 1.1 kamil *
25 1.1 kamil * Revision 7.0.1.1 86/10/16 10:52:30 lwall
26 1.1 kamil * Added Damage. Fixed random bugs.
27 1.1 kamil *
28 1.1 kamil * Revision 7.0 86/10/08 15:13:04 lwall
29 1.1 kamil * Split into separate files. Added amoebas and pirates.
30 1.1 kamil *
31 1.1 kamil */
32 1.1 kamil
33 1.1 kamil #define Root 0
34 1.1 kamil #define Base 1
35 1.1 kamil #define Enterprise 2
36 1.1 kamil #define Star 3
37 1.1 kamil #define Torp 4
38 1.1 kamil #define Enemy 5
39 1.1 kamil #define Web 6
40 1.1 kamil #define Crusher 7
41 1.1 kamil
42 1.1 kamil typedef struct object {
43 1.1 kamil char posx, posy;
44 1.1 kamil #ifdef SIGNEDCHAR
45 1.1 kamil char velx, vely;
46 1.1 kamil #else
47 1.1 kamil short velx, vely;
48 1.1 kamil #endif
49 1.1 kamil struct object *next, *prev, *contend;
50 1.1 kamil long energy;
51 1.1 kamil long mass;
52 1.1 kamil char type;
53 1.1 kamil char image;
54 1.1 kamil char strategy;
55 1.1 kamil char flags;
56 1.1 kamil } OBJECT;
57 1.1 kamil
58 1.1 kamil #define PIRATE 1 /* we may mutiny */
59 1.1 kamil #define FRIENDLY 2 /* we aren't really an enemy, for now */
60 1.1 kamil #define STATIC 4 /* we are not in the movers list at the moment */
61 1.1 kamil #define COUNTDOWN 8 /* we are counting down for something */
62 1.1 kamil #define CLOAKS 16 /* we can cloak */
63 1.1 kamil
64 1.1 kamil #ifdef DOINIT
65 1.1 kamil OBJECT root = {0, 0, 0, 0, &root, &root, 0, 0, 0, Root, '?', 0, 0};
66 1.1 kamil #else
67 1.1 kamil EXT OBJECT root;
68 1.1 kamil #endif
69 1.1 kamil
70 1.1 kamil #ifdef DOINIT
71 1.1 kamil OBJECT free_root = {0, 0, 0, 0, &free_root, &free_root, 0, 0, 0, Root, '?', 0, 0};
72 #else
73 EXT OBJECT free_root;
74 #endif
75
76 EXT OBJECT *ent;
77 EXT OBJECT *base;
78 EXT OBJECT *enemies;
79 EXT OBJECT *movers;
80 EXT OBJECT *realapollo;
81 EXT OBJECT *nuke;
82
83 EXT OBJECT *occupant[YSIZE][XSIZE];
84
85 OBJECT *make_object();
86
87 void unmake_object();
88 void free_object();
89 void object_init();
90