X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=include%2Ftrade.h;h=7e5cd156fd2c340a4105177caa2221114e4da1e7;hp=5739c5bf18e96948660cc45fd0b0ef11ba28ce78;hb=HEAD;hpb=a988b907fc8f310c3abc66f2aada083ceb949616 diff --git a/include/trade.h b/include/trade.h index 5739c5bf1..7e5cd156f 100644 --- a/include/trade.h +++ b/include/trade.h @@ -1,11 +1,11 @@ /* * Empire - A multi-player, client/server Internet based war game. - * Copyright (C) 1986-2006, 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, @@ -14,8 +14,7 @@ * 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 . * * --- * @@ -27,7 +26,7 @@ * * trade.h: Definitions for trading units/ships/planes in a time delay * system - * + * * Known contributors to this file: * Dave Pare * Pat Loney, 1992 @@ -37,45 +36,35 @@ #ifndef TRADE_H #define TRADE_H -#include "genitem.h" -#include "nuke.h" -#include "plane.h" -#include "land.h" -#include "ship.h" +#include "file.h" +#include "types.h" struct trdstr { - short ef_type; + /* initial part must match struct empobj */ + signed ef_type: 8; + unsigned trd_seqno: 12; + unsigned trd_generation: 12; + int trd_uid; + time_t trd_timestamp; natid trd_owner; - short trd_uid; - char trd_type; - short trd_unitid; - long trd_price; + /* end of part matching struct empobj */ + short trd_type; + int trd_unitid; + int trd_price; int trd_maxbidder; time_t trd_markettime; - coord trd_x; + coord trd_x; /* destination for teleporting trade */ coord trd_y; }; -union trdgenstr { - struct genitem gen; - struct nukstr nuk; - struct plnstr pln; - struct lndstr lnd; - struct shpstr shp; -}; - -extern int trade_check_ok(struct trdstr *, union trdgenstr *); -extern int trade_check_item_ok(union trdgenstr *); -extern char *trade_nameof(struct trdstr *, union trdgenstr *); -extern int trade_desc(struct trdstr *, union trdgenstr *); -extern int trade_getitem(struct trdstr *, union trdgenstr *); -extern long get_couval(int); +extern int trade_check_ok(struct trdstr *, struct empobj *); +extern char *trade_nameof(struct trdstr *, struct empobj *); +extern int trade_desc(struct empobj *); +extern int trade_has_unsalable_cargo(struct empobj *, int); +extern int trade_getitem(struct trdstr *, union empobj_storage *); -#define gettrade(n, p) \ - ef_read(EF_TRADE, n, p) -#define puttrade(n, p) \ - ef_write(EF_TRADE, n, p) -#define gettradep(n) \ - (struct trdstr *) ef_ptr(EF_TRADE, n) +#define gettrade(n, p) ef_read(EF_TRADE, (n), (p)) +#define puttrade(n, p) ef_write(EF_TRADE, (n), (p)) +#define gettradep(n) ((struct trdstr *)ef_ptr(EF_TRADE, (n))) #endif