]> git.pond.sub.org Git - empserver/blob - include/nuke.h
Import of Empire 4.2.12
[empserver] / include / nuke.h
1 /*
2  *  Empire - A multi-player, client/server Internet based war game.
3  *  Copyright (C) 1986-2000, Dave Pare, Jeff Bailey, Thomas Ruschak,
4  *                           Ken Stevens, Steve McClure
5  *
6  *  This program is free software; you can redistribute it and/or modify
7  *  it under the terms of the GNU General Public License as published by
8  *  the Free Software Foundation; either version 2 of the License, or
9  *  (at your option) any later version.
10  *
11  *  This program is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  *  GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License
17  *  along with this program; if not, write to the Free Software
18  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  *  ---
21  *
22  *  See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
23  *  related information and legal notices. It is expected that any future
24  *  projects/authors will amend these files as needed.
25  *
26  *  ---
27  *
28  *  nuke.h: Definitions for things having to do with nukes
29  * 
30  *  Known contributors to this file:
31  *     Dave Pare, 1986
32  */
33
34 #ifndef _NUKE_H_
35 #define _NUKE_H_
36
37 #define N_MAXNUKE       15
38
39 struct  nukstr {
40         short   ef_type;
41         natid   nuk_own;
42         short   nuk_uid;
43         coord   nuk_x;          /* current loc of device */
44         coord   nuk_y;
45         s_char  nuk_n;          /* number of nukes in list */
46         short   nuk_ship;       /* currently aboard ship */
47         short   nuk_trade;      /* index into trade file */
48         short   nuk_types[N_MAXNUKE];   /* # of nukes in sector of given type */
49         time_t  nuk_timestamp;  /* Last time this nuke was touched */
50 };
51
52 struct nchrstr {
53         s_char *n_name;         /* warhead unit name */
54         int n_lcm;              /* costs to build */
55         int n_hcm;
56         int n_oil;
57         int n_rad;
58         int n_blast;            /* blast radius */
59         int n_dam;              /* damage at center */
60         int n_cost;
61         int n_tech;             /* tech needed to build */
62         int n_weight;
63         int n_flags;            /* description of capability */
64 };
65
66 #define N_NEUT  bit(0)          /* Neutron bomb (low damage, high fallout) */
67
68 #define getnuke(n, p) \
69         ef_read(EF_NUKE, n, (caddr_t)p)
70 #define putnuke(n, p) \
71         ef_write(EF_NUKE, n, (caddr_t)p)
72 #define getnukep(n) \
73         (struct nukstr *) ef_ptr(EF_NUKE, n)
74
75 extern  struct nchrstr nchr[];
76
77 extern  int nuk_maxno;
78
79 #endif /* _NUKE_H_ */