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 * item.h: Definitions for item characteristics stuff 28 * 29 * Known contributors to this file: 30 * Markus Armbruster, 2004-2020 31 */ 32 33 #ifndef ITEM_H 34 #define ITEM_H 35 36 #include "misc.h" 37 38 enum i_packing { 39 IPKG, /* "inefficient" packaging (eff<60) */ 40 NPKG, /* no special packaging */ 41 WPKG, /* "warehouse" packaging */ 42 UPKG, /* "urban" packaging */ 43 BPKG /* "bank" packaging */ 44 }; 45 46 enum { 47 NUMPKG = BPKG + 1 48 }; 49 50 /* Item types, must match item.config */ 51 typedef enum { 52 I_NONE = -1, 53 I_CIVIL, 54 I_MILIT, 55 I_SHELL, 56 I_GUN, 57 I_PETROL, 58 I_IRON, 59 I_DUST, 60 I_BAR, 61 I_FOOD, 62 I_OIL, 63 I_LCM, 64 I_HCM, 65 I_UW, 66 I_RAD, 67 I_MAX = I_RAD 68 } ATTRIBUTE((packed)) i_type; 69 70 struct ichrstr { 71 char i_mnem; /* usually the initial letter */ 72 i_type i_uid; /* index in ichr[] */ 73 int i_power; /* power value of 1000 items */ 74 int i_sell; /* can this be sold? */ 75 int i_lbs; /* how hard to move */ 76 int i_pkg[NUMPKG]; /* units for reg, ware, urb, bank */ 77 int i_melt_denom; /* fallout meltdown denominator */ 78 char *i_name; /* full name of item */ 79 }; 80 81 /* variables using this structure */ 82 83 #define ICHR_SZ (I_MAX + 2) 84 extern struct ichrstr ichr[ICHR_SZ]; 85 86 /* procedures using/returning this struct */ 87 88 extern struct ichrstr *whatitem(char *, char *); 89 extern struct ichrstr *item_by_name(char *); 90 91 #endif 92