empserver/include/empobj.h
Ron Koenderink 79ee88f7c6 (nxtitemp, trade_getitem, trade_desc, trade_check_item_ok, nxtitem,
oprange, show_mission, nameofitem, build_mission_list_type,
unit_map, xdvisible, trdswitchown, ontradingblock, trad, check_trade,
unit_type_name, start_stop_unit, scut, scra, mission, multifire,
perform_mission, fuel, NSC_GENITEM): Replace struct genitem with
struct empobj.  Remove genitem.h and create a new file empobj.h.
Replace multiple instances of unions of ef_type structures with
one standard union empobj_storage which is a superset of the individual
instances.
2006-07-07 15:15:43 +00:00

87 lines
2.4 KiB
C

/*
* Empire - A multi-player, client/server Internet based war game.
* Copyright (C) 1986-2006, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure
*
* This program 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
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* 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
*
* ---
*
* 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.
*
* ---
*
* genobj.h: General empire objects.
*
* Known contributors to this file:
* Ron Koenderink, 2006
* Markus Armbruster, 2006
*/
#ifndef EMPOBJ_H
#define EMPOBJ_H
#include "commodity.h"
#include "land.h"
#include "loan.h"
#include "lost.h"
#include "plane.h"
#include "nat.h"
#include "news.h"
#include "nuke.h"
#include "sect.h"
#include "ship.h"
#include "trade.h"
#include "treaty.h"
struct empobj {
short ef_type; /* is always valid */
natid own; /* is valid if EFF_OWNER is set in table def. */
short uid;
coord x; /* is valid if EFF_XY is set in table def. */
coord y; /* is valid if EFF_XY is set in table def. */
signed char type;
signed char effic;
signed char mobil;
unsigned char off;
short tech;
char group; /* is valid if EFF_GROUP is set in table def. */
coord opx, opy;
short mission;
short radius;
};
union empobj_storage {
short ef_type;
struct empobj gen;
struct comstr comm;
struct lndstr land;
struct lonstr loan;
struct loststr lost;
struct natstr nat;
struct nwsstr news;
struct nukstr nuke;
struct plnstr plane;
struct realmstr realm;
struct sctstr sect;
struct shpstr ship;
struct trdstr trade;
struct trtstr treaty;
};
#endif