]> git.pond.sub.org Git - empserver/blobdiff - include/item.h
client: Unbreak standalone build
[empserver] / include / item.h
index ae228acb6d82f5fa4e81be7c06f0b858069ba418..dcebcc6f6d69cfcda41429a43bb20c619e962677 100644 (file)
@@ -1,11 +1,11 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2005, Dave Pare, Jeff Bailey, Thomas Ruschak,
- *                           Ken Stevens, Steve McClure
+ *  Copyright (C) 1986-2021, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *                Ken Stevens, Steve McClure, Markus Armbruster
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  Empire is free software: you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
  *  This program is distributed in the hope that it will be useful,
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *
  *  ---
  *
- *  See the "LEGAL", "LICENSE", "CREDITS" and "README" files for all the
- *  related information and legal notices. It is expected that any future
- *  projects/authors will amend these files as needed.
+ *  See files README, COPYING and CREDITS in the root of the source
+ *  tree for related information and legal notices.  It is expected
+ *  that future projects/authors will amend these files as needed.
  *
  *  ---
  *
  *  item.h: Definitions for item characteristics stuff
- * 
+ *
  *  Known contributors to this file:
- *  
+ *     Markus Armbruster, 2004-2020
  */
 
-#ifndef _ITEM_H_
-#define _ITEM_H_
+#ifndef ITEM_H
+#define ITEM_H
 
 #include "misc.h"
 
-typedef enum {
+enum i_packing {
     IPKG,                      /* "inefficient" packaging (eff<60) */
     NPKG,                      /* no special packaging */
     WPKG,                      /* "warehouse" packaging */
     UPKG,                      /* "urban" packaging */
     BPKG                       /* "bank" packaging */
-} i_packing;
+};
 
 enum {
     NUMPKG = BPKG + 1
 };
 
+/* Item types, must match item.config */
 typedef enum {
-       I_NONE = -1,
-       I_CIVIL,
-       I_MILIT,
-       I_SHELL,
-       I_GUN,
-       I_PETROL,
-       I_IRON,
-       I_DUST,
-       I_BAR,
-       I_FOOD,
-       I_OIL,
-       I_LCM,
-       I_HCM,
-       I_UW,
-       I_RAD,
-       I_MAX = I_RAD
+    I_NONE = -1,
+    I_CIVIL,
+    I_MILIT,
+    I_SHELL,
+    I_GUN,
+    I_PETROL,
+    I_IRON,
+    I_DUST,
+    I_BAR,
+    I_FOOD,
+    I_OIL,
+    I_LCM,
+    I_HCM,
+    I_UW,
+    I_RAD,
+    I_MAX = I_RAD
 } ATTRIBUTE((packed)) i_type;
 
 struct ichrstr {
-    int i_mnem;                        /* usually the initial letter */
-    i_type i_vtype;            /* var type */
-    int i_value;               /* mortgage value */
+    char i_mnem;               /* usually the initial letter */
+    i_type i_uid;              /* index in ichr[] */
+    int i_power;               /* power value of 1000 items */
     int i_sell;                        /* can this be sold? */
     int i_lbs;                 /* how hard to move */
     int i_pkg[NUMPKG];         /* units for reg, ware, urb, bank */
@@ -80,11 +80,12 @@ struct ichrstr {
 
 /* variables using this structure */
 
-extern struct ichrstr ichr[];
+#define ICHR_SZ (I_MAX + 2)
+extern struct ichrstr ichr[ICHR_SZ];
 
 /* procedures using/returning this struct */
 
 extern struct ichrstr *whatitem(char *, char *);
 extern struct ichrstr *item_by_name(char *);
 
-#endif /* _ITEM_H_ */
+#endif