X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=include%2Fempobj.h;h=331cf3d248e4c8bfb0ca202b8451c6db7b4af213;hp=514154a959fbcaf2636aff1812be15aacb34fb3c;hb=HEAD;hpb=6cd3d55c4e734e821f819f264b78f5c3187693ee diff --git a/include/empobj.h b/include/empobj.h index 514154a95..331cf3d24 100644 --- a/include/empobj.h +++ b/include/empobj.h @@ -1,11 +1,11 @@ /* * Empire - A multi-player, client/server Internet based war game. - * Copyright (C) 1986-2008, 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 . * * --- * @@ -26,10 +25,10 @@ * --- * * empobj.h: General empire objects. - * + * * Known contributors to this file: * Ron Koenderink, 2006 - * Markus Armbruster, 2006 + * Markus Armbruster, 2006-2014 */ #ifndef EMPOBJ_H @@ -41,13 +40,11 @@ #include "loan.h" #include "lost.h" #include "nat.h" -#include "news.h" #include "nuke.h" #include "plane.h" #include "sect.h" #include "ship.h" #include "trade.h" -#include "treaty.h" #include "types.h" struct empobj { @@ -55,18 +52,22 @@ struct empobj { * initial part must match struct emptypedstr * valid if EFF_TYPED is set in table's flags */ - short ef_type; - short uid; + signed ef_type: 8; + unsigned seqno: 12; + unsigned generation: 12; + int uid; + time_t timestamp; /* end of part matching struct emptypedstr */ natid own; /* valid if EFF_OWNER is in table's flags */ coord x; /* valid if EFF_XY is in table's flags */ coord y; /* valid if EFF_XY is in table's flags */ - signed char type; /* valid for sectors and units */ - /* remaining are valid for units */ + /* remaining are valid for sectors and units */ + signed char type; signed char effic; signed char mobil; unsigned char off; - short tech; + /* remaining are valid for units */ + short tech; char group; /* valid if EFF_GROUP is in table's flags */ coord opx, opy; short mission; @@ -74,33 +75,26 @@ struct empobj { }; union empobj_storage { - short ef_type; struct empobj gen; struct comstr comm; struct gamestr game; struct lndstr land; struct lonstr loan; struct loststr lost; - struct natstr nat; - struct nwsstr news; + struct natstr nat; struct nukstr nuke; struct plnstr plane; struct realmstr realm; struct sctstr sect; struct shpstr ship; struct trdstr trade; - struct trtstr treaty; }; -struct empobj_chr; - #define get_empobj(type, n, p) ef_read((type), (n), (p)) #define put_empobj(type, n, p) ef_write((type), (n), (p)) #define get_empobjp(type, n) ((struct empobj *)ef_ptr((type), (n))) -extern char *obj_nameof(struct empobj *gp); -extern struct empobj_chr *get_empobj_chr(struct empobj *gp); -extern char *emp_obj_chr_name(struct empobj *gp); -extern int get_empobj_mob_max(int type); +extern char *empobj_chr_name(struct empobj *gp); +extern int empobj_in_use(int, void *); #endif