1 /* 2 * Empire - A multi-player, client/server Internet based war game. 3 * Copyright (C) 1986-2021, Dave Pare, Jeff Bailey, Thomas Ruschak, 4 * Ken Stevens, Steve McClure, Markus Armbruster 5 * 6 * Empire 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 3 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, see <http://www.gnu.org/licenses/>. 18 * 19 * --- 20 * 21 * See files README, COPYING and CREDITS in the root of the source 22 * tree for related information and legal notices. It is expected 23 * that future projects/authors will amend these files as needed. 24 * 25 * --- 26 * 27 * product.h: Definitions for things having to do with products 28 * 29 * Known contributors to this file: 30 * 31 */ 32 33 #ifndef PRODUCT_H 34 #define PRODUCT_H 35 36 #include "item.h" 37 38 /* 39 * Maximum number of product constituents. 40 * Beware, some output formats rely on MAXPRCON <= 3! 41 */ 42 enum { MAXPRCON = 3 }; 43 44 struct pchrstr { 45 int p_uid; 46 i_type p_ctype[MAXPRCON]; /* constituent types */ 47 unsigned short p_camt[MAXPRCON]; /* constituent amounts */ 48 int p_bwork; /* work to build one product unit */ 49 i_type p_type; /* product item type, or I_NONE if level */ 50 int p_level; /* level index (NAT_?LEV), or -1 if item */ 51 int p_cost; /* dollars / product unit */ 52 int p_nrndx; /* index into sect of natural resource */ 53 int p_nrdep; /* depletion as a % of resource used */ 54 int p_nlndx; /* index (NAT_?LEV) affecting production */ 55 int p_nlmin; /* minimum lvl required */ 56 int p_nllag; /* lag, mul by (lvl-nlmin)/(lvl-nlmin+nllag) */ 57 char *p_name; /* name of product */ 58 char *p_sname; /* short (7 char or less) name of product */ 59 }; 60 61 #define PCHR_SZ 32 62 extern struct pchrstr pchr[PCHR_SZ]; 63 64 #endif 65