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