From fcf5c59513ad370cb5f8000fd8abdbab236bcce6 Mon Sep 17 00:00:00 2001 From: Ron Koenderink Date: Sat, 22 Oct 2005 16:39:45 +0000 Subject: [PATCH] (castr,empfile,ship_chr,plane_chr,land_chr,nuke_chr): Add table index to castr to create a reference to the symbol table. Add "ship chr flags" table to empfile. Add "plane chr flags" table to empfile. Add "land chr flags" table to empfile. Add "nuke chr flags" table to empfile. Add EF_SHIP_CHR_FLAGS reference to ship_chr. Add EF_PLANE_CHR_FLAGS reference to plane_chr. Add EF_LAND_CHR_FLAGS reference to land_chr. Add EF_NUKE_CHR_FLAGS reference to nuke_chr. (show_ship_capab,show_plane_capab,show_land_capab, show_nuke_capab,ship_flags,land_flags,plane_flags,nuke_flags): Move ship_flags nsc.c from show.c Rename ship_flags to ship_chr_flags. Move plane_flags nsc.c from show.c Rename plane_flags to plane_chr_flags. Move land_flags nsc.c from show.c Rename land_flags to land_chr_flags. Move nuke_flags nsc.c from show.c Rename nuke_flags to nuke_chr_flags. This is to accomodate future symbol table for EF_PLANE table. --- include/file.h | 4 + include/nsc.h | 14 + src/lib/global/file.c | 13 + src/lib/global/nsc.c | 763 +++++++++++++++++++++++------------------- src/lib/subs/show.c | 89 +---- 5 files changed, 454 insertions(+), 429 deletions(-) diff --git a/include/file.h b/include/file.h index 546d102e..91407511 100644 --- a/include/file.h +++ b/include/file.h @@ -108,6 +108,10 @@ struct empfile { #define EF_INFRASTRUCTURE 22 #define EF_PRODUCT 23 #define EF_TABLE 24 +#define EF_SHIP_CHR_FLAGS 25 +#define EF_PLANE_CHR_FLAGS 26 +#define EF_LAND_CHR_FLAGS 27 +#define EF_NUKE_CHR_FLAGS 28 #define EF_NMAP 222 /* Kinda bogus, but used to describe a newdesmap instead of bmap or map. */ diff --git a/include/nsc.h b/include/nsc.h index 16761f12..a80b6327 100644 --- a/include/nsc.h +++ b/include/nsc.h @@ -168,6 +168,14 @@ struct nstr_item { struct nscstr cond[NS_NCOND]; /* selection conditions */ }; +/* + * Symbol table definition + */ +struct lookup { + int key; + s_char *value; +}; + /* * Selector descriptor. * Value is at offset CA_OFF in the context object. @@ -178,6 +186,7 @@ struct castr { unsigned short ca_len; /* non-zero: is an array; #array elements */ ptrdiff_t ca_off; char *ca_name; + int ca_table; /* table index -- symbols, symbol sets */ }; /* variables using the above */ @@ -205,6 +214,11 @@ extern struct castr nat_ca[]; extern struct castr intrchr_ca[]; extern struct castr rpt_ca[]; extern struct castr empfile_ca[]; +extern struct castr lookup_ca[]; +extern struct lookup ship_chr_flags[]; +extern struct lookup plane_chr_flags[]; +extern struct lookup land_chr_flags[]; +extern struct lookup nuke_chr_flags[]; /* src/lib/subs/nstr.c */ extern int nstr_comp(struct nscstr *np, int len, int type, char *str); diff --git a/src/lib/global/file.c b/src/lib/global/file.c index 95f70bf3..a25cf47c 100644 --- a/src/lib/global/file.c +++ b/src/lib/global/file.c @@ -52,6 +52,7 @@ #include "gamesdef.h" #include "commodity.h" +#include "nsc.h" struct empfile empfile[] = { /* Dynamic game data */ @@ -138,6 +139,18 @@ struct empfile empfile[] = { {"table", NULL, EFF_MEM, 0, sizeof(empfile[0]), NULL, NULL, NULL, -1, -1, 0, 0, (char *)empfile, 0, empfile_ca}, + {"ship chr flags", NULL, EFF_MEM, + 0, sizeof(ship_chr_flags[0]), NULL, NULL, NULL, + -1, -1, 0, 0, (char *)ship_chr_flags, 0, lookup_ca}, + {"plane chr flags", NULL, EFF_MEM, + 0, sizeof(plane_chr_flags[0]), NULL, NULL, NULL, + -1, -1, 0, 0, (char *)plane_chr_flags, 0, lookup_ca}, + {"land chr flags", NULL, EFF_MEM, + 0, sizeof(land_chr_flags[0]), NULL, NULL, NULL, + -1, -1, 0, 0, (char *)land_chr_flags, 0, lookup_ca}, + {"nuke chr flags", NULL, EFF_MEM, + 0, sizeof(nuke_chr_flags[0]), NULL, NULL, NULL, + -1, -1, 0, 0, (char *)nuke_chr_flags, 0, lookup_ca}, /* Sentinel */ {NULL, NULL, 0, diff --git a/src/lib/global/nsc.c b/src/lib/global/nsc.c index 444f51de..ccbd3e0c 100644 --- a/src/lib/global/nsc.c +++ b/src/lib/global/nsc.c @@ -57,7 +57,7 @@ #define NSC_IELT(name, pfx, sfx, base, itype) \ {NSC_SHORT, 0, 0, ((base) + (itype)*sizeof(u_short)), \ -sizeof(sfx) == 1 ? name : pfx sfx} +sizeof(sfx) == 1 ? name : pfx sfx, EF_BAD} #define NSC_IVEC(base, sfx) \ NSC_IELT("civil", "c", sfx, base, I_CIVIL), \ @@ -76,430 +76,505 @@ NSC_IELT("uw", "u", sfx, base, I_UW), \ NSC_IELT("rad", "r", sfx, base, I_RAD) struct castr ichr_ca[] = { - {NSC_STRING, 0, 0, offsetof(struct ichrstr, i_name), "name"}, - {NSC_INT, 0, 0, offsetof(struct ichrstr, i_mnem), "mnem"}, - {NSC_SITYPE(i_type), 0, 0, offsetof(struct ichrstr, i_vtype), "vtype"}, - {NSC_INT, 0, 0, offsetof(struct ichrstr, i_value), "value"}, - {NSC_INT, 0, 0, offsetof(struct ichrstr, i_sell), "sell"}, - {NSC_INT, 0, 0, offsetof(struct ichrstr, i_lbs), "lbs"}, - {NSC_INT, 0, NUMPKG, offsetof(struct ichrstr, i_pkg), "pkg"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_STRING, 0, 0, offsetof(struct ichrstr, i_name), "name", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct ichrstr, i_mnem), "mnem", EF_BAD}, + {NSC_SITYPE(i_type), 0, 0, offsetof(struct ichrstr, i_vtype), "vtype", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct ichrstr, i_value), "value", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct ichrstr, i_sell), "sell", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct ichrstr, i_lbs), "lbs", EF_BAD}, + {NSC_INT, 0, NUMPKG, offsetof(struct ichrstr, i_pkg), "pkg", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr pchr_ca[] = { - {NSC_STRING, 0, 0, offsetof(struct pchrstr, p_name), "name"}, - {NSC_STRING, 0, 0, offsetof(struct pchrstr, p_sname), "sname"}, - {NSC_SITYPE(i_type), 0, MAXPRCON, offsetof(struct pchrstr, p_ctype), "ctype"}, - {NSC_USHORT, 0, MAXPRCON, offsetof(struct pchrstr, p_camt), "camt"}, - {NSC_SITYPE(i_type), 0, 0, offsetof(struct pchrstr, p_type), "type"}, - {NSC_INT, 0, 0, offsetof(struct pchrstr, p_level), "level"}, - {NSC_INT, 0, 0, offsetof(struct pchrstr, p_cost), "cost"}, - {NSC_INT, 0, 0, offsetof(struct pchrstr, p_nrndx), "nrndx"}, - {NSC_INT, 0, 0, offsetof(struct pchrstr, p_nrdep), "nrdep"}, - {NSC_INT, 0, 0, offsetof(struct pchrstr, p_nlndx), "nlndx"}, - {NSC_INT, 0, 0, offsetof(struct pchrstr, p_nlmin), "nlmin"}, - {NSC_INT, 0, 0, offsetof(struct pchrstr, p_nllag), "nllag"}, - {NSC_INT, 0, 0, offsetof(struct pchrstr, p_effic), "effic"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_STRING, 0, 0, offsetof(struct pchrstr, p_name), "name", EF_BAD}, + {NSC_STRING, 0, 0, offsetof(struct pchrstr, p_sname), "sname", EF_BAD}, + {NSC_SITYPE(i_type), 0, MAXPRCON, offsetof(struct pchrstr, p_ctype), "ctype", EF_BAD}, + {NSC_USHORT, 0, MAXPRCON, offsetof(struct pchrstr, p_camt), "camt", EF_BAD}, + {NSC_SITYPE(i_type), 0, 0, offsetof(struct pchrstr, p_type), "type", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct pchrstr, p_level), "level", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct pchrstr, p_cost), "cost", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct pchrstr, p_nrndx), "nrndx", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct pchrstr, p_nrdep), "nrdep", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct pchrstr, p_nlndx), "nlndx", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct pchrstr, p_nlmin), "nlmin", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct pchrstr, p_nllag), "nllag", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct pchrstr, p_effic), "effic", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr sect_ca[] = { - {NSC_NATID, 0, 0, fldoff(sctstr, sct_own), "owner"}, - {NSC_XCOORD, 0, 0, fldoff(sctstr, sct_x), "xloc"}, - {NSC_YCOORD, 0, 0, fldoff(sctstr, sct_y), "yloc"}, - {NSC_TYPEID, 0, 0, fldoff(sctstr, sct_type), "des"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_effic), "effic"}, - {NSC_SHORT, 0, 0, fldoff(sctstr, sct_mobil), "mobil"}, - {NSC_UCHAR, NSC_DEITY, 0, fldoff(sctstr, sct_loyal), "loyal"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr), "terr"}, - {NSC_UCHAR, NSC_EXTRA, 0, fldoff(sctstr, sct_terr), "terr0"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr1), "terr1"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr2), "terr2"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr3), "terr3"}, - {NSC_XCOORD, 0, 0, fldoff(sctstr, sct_dist_x), "xdist"}, - {NSC_YCOORD, 0, 0, fldoff(sctstr, sct_dist_y), "ydist"}, - {NSC_SHORT, 0, 0, fldoff(sctstr, sct_avail), "avail"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_work), "work"}, - {NSC_UCHAR, NSC_EXTRA, 0, fldoff(sctstr, sct_coastal), "coastal"}, - {NSC_TYPEID, 0, 0, fldoff(sctstr, sct_newtype), "newdes"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_min), "min"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_gmin), "gold"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_fertil), "fert"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_oil), "ocontent"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_uran), "uran"}, - {NSC_NATID, 0, 0, fldoff(sctstr, sct_oldown), "oldown"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_off), "off"}, + {NSC_NATID, 0, 0, fldoff(sctstr, sct_own), "owner", EF_BAD}, + {NSC_XCOORD, 0, 0, fldoff(sctstr, sct_x), "xloc", EF_BAD}, + {NSC_YCOORD, 0, 0, fldoff(sctstr, sct_y), "yloc", EF_BAD}, + {NSC_TYPEID, 0, 0, fldoff(sctstr, sct_type), "des", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_effic), "effic", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(sctstr, sct_mobil), "mobil", EF_BAD}, + {NSC_UCHAR, NSC_DEITY, 0, fldoff(sctstr, sct_loyal), "loyal", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr), "terr", EF_BAD}, + {NSC_UCHAR, NSC_EXTRA, 0, fldoff(sctstr, sct_terr), "terr0", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr1), "terr1", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr2), "terr2", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr3), "terr3", EF_BAD}, + {NSC_XCOORD, 0, 0, fldoff(sctstr, sct_dist_x), "xdist", EF_BAD}, + {NSC_YCOORD, 0, 0, fldoff(sctstr, sct_dist_y), "ydist", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(sctstr, sct_avail), "avail", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_work), "work", EF_BAD}, + {NSC_UCHAR, NSC_EXTRA, 0, fldoff(sctstr, sct_coastal), "coastal", EF_BAD}, + {NSC_TYPEID, 0, 0, fldoff(sctstr, sct_newtype), "newdes", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_min), "min", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_gmin), "gold", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_fertil), "fert", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_oil), "ocontent", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_uran), "uran", EF_BAD}, + {NSC_NATID, 0, 0, fldoff(sctstr, sct_oldown), "oldown", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_off), "off", EF_BAD}, NSC_IVEC(fldoff(sctstr, sct_item), ""), NSC_IVEC(fldoff(sctstr, sct_dist), "_dist"), NSC_IVEC(fldoff(sctstr, sct_del), "_del"), - {NSC_SHORT, NSC_DEITY, 0, fldoff(sctstr, sct_mines), "mines"}, - {NSC_SHORT, NSC_DEITY, 0, fldoff(sctstr, sct_pstage), "pstage"}, - {NSC_SHORT, NSC_DEITY, 0, fldoff(sctstr, sct_ptime), "ptime"}, - {NSC_UCHAR, NSC_DEITY, 0, fldoff(sctstr, sct_che), "che"}, - {NSC_NATID, NSC_DEITY, 0, fldoff(sctstr, sct_che_target), "che_target"}, - {NSC_USHORT, 0, 0, fldoff(sctstr, sct_fallout), "fallout"}, - {NSC_TIME, 0, 0, fldoff(sctstr, sct_access), "access"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_road), "road"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_rail), "rail"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_defense), "dfense"}, - {NSC_TIME, NSC_EXTRA, 0, fldoff(sctstr, sct_timestamp), "timestamp"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_SHORT, NSC_DEITY, 0, fldoff(sctstr, sct_mines), "mines", EF_BAD}, + {NSC_SHORT, NSC_DEITY, 0, fldoff(sctstr, sct_pstage), "pstage", EF_BAD}, + {NSC_SHORT, NSC_DEITY, 0, fldoff(sctstr, sct_ptime), "ptime", EF_BAD}, + {NSC_UCHAR, NSC_DEITY, 0, fldoff(sctstr, sct_che), "che", EF_BAD}, + {NSC_NATID, NSC_DEITY, 0, fldoff(sctstr, sct_che_target), "che_target", EF_BAD}, + {NSC_USHORT, 0, 0, fldoff(sctstr, sct_fallout), "fallout", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(sctstr, sct_access), "access", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_road), "road", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_rail), "rail", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_defense), "dfense", EF_BAD}, + {NSC_TIME, NSC_EXTRA, 0, fldoff(sctstr, sct_timestamp), "timestamp", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr dchr_ca[] = { - {NSC_STRING, 0, 0, offsetof(struct dchrstr, d_name), "name"}, - {NSC_INT, 0, 0, offsetof(struct dchrstr, d_mnem), "mnem"}, - {NSC_INT, 0, 0, offsetof(struct dchrstr, d_prd), "prd"}, - {NSC_INT, 0, 0, offsetof(struct dchrstr, d_mcst), "mcst"}, - {NSC_INT, 0, 0, offsetof(struct dchrstr, d_flg), "flg"}, - {NSC_SITYPE(i_packing), 0, 0, offsetof(struct dchrstr, d_pkg), "pkg"}, - {NSC_FLOAT, 0, 0, offsetof(struct dchrstr, d_ostr), "ostr"}, - {NSC_FLOAT, 0, 0, offsetof(struct dchrstr, d_dstr), "dstr"}, - {NSC_INT, 0, 0, offsetof(struct dchrstr, d_value), "value"}, - {NSC_INT, 0, 0, offsetof(struct dchrstr, d_cost), "cost"}, - {NSC_INT, 0, 0, offsetof(struct dchrstr, d_build), "build"}, - {NSC_INT, 0, 0, offsetof(struct dchrstr, d_lcms), "lcms"}, - {NSC_INT, 0, 0, offsetof(struct dchrstr, d_hcms), "hcms"}, - {NSC_INT, 0, 0, offsetof(struct dchrstr, d_maxpop), "maxpop"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_STRING, 0, 0, offsetof(struct dchrstr, d_name), "name", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct dchrstr, d_mnem), "mnem", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct dchrstr, d_prd), "prd", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct dchrstr, d_mcst), "mcst", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct dchrstr, d_flg), "flg", EF_BAD}, + {NSC_SITYPE(i_packing), 0, 0, offsetof(struct dchrstr, d_pkg), "pkg", EF_BAD}, + {NSC_FLOAT, 0, 0, offsetof(struct dchrstr, d_ostr), "ostr", EF_BAD}, + {NSC_FLOAT, 0, 0, offsetof(struct dchrstr, d_dstr), "dstr", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct dchrstr, d_value), "value", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct dchrstr, d_cost), "cost", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct dchrstr, d_build), "build", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct dchrstr, d_lcms), "lcms", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct dchrstr, d_hcms), "hcms", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct dchrstr, d_maxpop), "maxpop", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; #define NSC_GENITEM \ -{ NSC_NATID, 0, 0, fldoff(genitem, own), "owner"}, \ -{ NSC_SHORT, 0, 0, fldoff(genitem, uid), "uid"}, \ -{ NSC_XCOORD, 0, 0, fldoff(genitem, x), "xloc"}, \ -{ NSC_YCOORD, 0, 0, fldoff(genitem, y), "yloc"}, \ -{ NSC_TYPEID, 0, 0, fldoff(genitem, type), "type"}, \ -{ NSC_CHAR, 0, 0, fldoff(genitem, effic), "effic"}, \ -{ NSC_CHAR , 0, 0, fldoff(genitem, mobil), "mobil"}, \ -{ NSC_SHORT, 0, 0, fldoff(genitem, tech), "tech"}, \ -{ NSC_CHAR, NSC_EXTRA, 0, fldoff(genitem, group), "group"}, \ -{ NSC_XCOORD, 0, 0, fldoff(genitem, opx), "opx"}, \ -{ NSC_YCOORD, 0, 0, fldoff(genitem, opy), "opy"}, \ -{ NSC_SHORT, 0, 0, fldoff(genitem, mission), "mission"}, \ +{ NSC_NATID, 0, 0, fldoff(genitem, own), "owner", EF_BAD}, \ +{ NSC_SHORT, 0, 0, fldoff(genitem, uid), "uid", EF_BAD}, \ +{ NSC_XCOORD, 0, 0, fldoff(genitem, x), "xloc", EF_BAD}, \ +{ NSC_YCOORD, 0, 0, fldoff(genitem, y), "yloc", EF_BAD}, \ +{ NSC_TYPEID, 0, 0, fldoff(genitem, type), "type", EF_BAD}, \ +{ NSC_CHAR, 0, 0, fldoff(genitem, effic), "effic", EF_BAD}, \ +{ NSC_CHAR , 0, 0, fldoff(genitem, mobil), "mobil", EF_BAD}, \ +{ NSC_SHORT, 0, 0, fldoff(genitem, tech), "tech", EF_BAD}, \ +{ NSC_CHAR, NSC_EXTRA, 0, fldoff(genitem, group), "group", EF_BAD}, \ +{ NSC_XCOORD, 0, 0, fldoff(genitem, opx), "opx", EF_BAD}, \ +{ NSC_YCOORD, 0, 0, fldoff(genitem, opy), "opy", EF_BAD}, \ +{ NSC_SHORT, 0, 0, fldoff(genitem, mission), "mission", EF_BAD}, \ { NSC_SHORT, 0, 0, fldoff(genitem, radius), "radius"} struct castr ship_ca[] = { NSC_GENITEM, - {NSC_CHAR, 0, 0, fldoff(shpstr, shp_fleet), "fleet"}, - {NSC_UCHAR, NSC_EXTRA, 0, fldoff(shpstr, shp_nplane), "nplane"}, - {NSC_UCHAR, NSC_EXTRA, 0, fldoff(shpstr, shp_nland), "nland"}, - {NSC_XCOORD, 0, 0, fldoff(shpstr, shp_destx[0]), "xstart"}, - {NSC_XCOORD, 0, 0, fldoff(shpstr, shp_destx[1]), "xend"}, - {NSC_YCOORD, 0, 0, fldoff(shpstr, shp_desty[0]), "ystart"}, - {NSC_YCOORD, 0, 0, fldoff(shpstr, shp_desty[1]), "yend"}, - {NSC_SITYPE(i_type), 0, TMAX, fldoff(shpstr, shp_tstart), "cargostart"}, - {NSC_SITYPE(i_type), 0, TMAX, fldoff(shpstr, shp_tend), "cargoend"}, - {NSC_SHORT, 0, TMAX, fldoff(shpstr, shp_lstart), "amtstart"}, - {NSC_SHORT, 0, TMAX, fldoff(shpstr, shp_lend), "amtend"}, - {NSC_UCHAR, 0, 0, fldoff(shpstr, shp_autonav), "autonav"}, + {NSC_CHAR, 0, 0, fldoff(shpstr, shp_fleet), "fleet", EF_BAD}, + {NSC_UCHAR, NSC_EXTRA, 0, fldoff(shpstr, shp_nplane), "nplane", EF_BAD}, + {NSC_UCHAR, NSC_EXTRA, 0, fldoff(shpstr, shp_nland), "nland", EF_BAD}, + {NSC_XCOORD, 0, 0, fldoff(shpstr, shp_destx[0]), "xstart", EF_BAD}, + {NSC_XCOORD, 0, 0, fldoff(shpstr, shp_destx[1]), "xend", EF_BAD}, + {NSC_YCOORD, 0, 0, fldoff(shpstr, shp_desty[0]), "ystart", EF_BAD}, + {NSC_YCOORD, 0, 0, fldoff(shpstr, shp_desty[1]), "yend", EF_BAD}, + {NSC_SITYPE(i_type), 0, TMAX, fldoff(shpstr, shp_tstart), "cargostart", EF_BAD}, + {NSC_SITYPE(i_type), 0, TMAX, fldoff(shpstr, shp_tend), "cargoend", EF_BAD}, + {NSC_SHORT, 0, TMAX, fldoff(shpstr, shp_lstart), "amtstart", EF_BAD}, + {NSC_SHORT, 0, TMAX, fldoff(shpstr, shp_lend), "amtend", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(shpstr, shp_autonav), "autonav", EF_BAD}, NSC_IVEC(fldoff(shpstr, shp_item), ""), - {NSC_SHORT, NSC_DEITY, 0, fldoff(shpstr, shp_pstage), "pstage"}, - {NSC_SHORT, NSC_DEITY, 0, fldoff(shpstr, shp_ptime), "ptime"}, - {NSC_TIME, 0, 0, fldoff(shpstr, shp_access), "access"}, - {NSC_TIME, NSC_EXTRA, 0, fldoff(shpstr, shp_timestamp), "timestamp"}, - {NSC_UCHAR, 0, 0, fldoff(shpstr, shp_mobquota), "mquota"}, - {NSC_STRINGY, 0, MAXSHPPATH, fldoff(shpstr, shp_path), "path"}, - {NSC_SHORT, 0, 0, fldoff(shpstr, shp_follow), "follow"}, - {NSC_STRINGY, 0, MAXSHPNAMLEN, fldoff(shpstr, shp_name), "name"}, - {NSC_UCHAR, 0, 0, fldoff(shpstr, shp_fuel), "fuel"}, - {NSC_UCHAR, NSC_EXTRA, 0, fldoff(shpstr, shp_nchoppers), "nchoppers"}, - {NSC_UCHAR, NSC_EXTRA, 0, fldoff(shpstr, shp_nxlight), "nxlight"}, + {NSC_SHORT, NSC_DEITY, 0, fldoff(shpstr, shp_pstage), "pstage", EF_BAD}, + {NSC_SHORT, NSC_DEITY, 0, fldoff(shpstr, shp_ptime), "ptime", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(shpstr, shp_access), "access", EF_BAD}, + {NSC_TIME, NSC_EXTRA, 0, fldoff(shpstr, shp_timestamp), "timestamp", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(shpstr, shp_mobquota), "mquota", EF_BAD}, + {NSC_STRINGY, 0, MAXSHPPATH, fldoff(shpstr, shp_path), "path", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(shpstr, shp_follow), "follow", EF_BAD}, + {NSC_STRINGY, 0, MAXSHPNAMLEN, fldoff(shpstr, shp_name), "name", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(shpstr, shp_fuel), "fuel", EF_BAD}, + {NSC_UCHAR, NSC_EXTRA, 0, fldoff(shpstr, shp_nchoppers), "nchoppers", EF_BAD}, + {NSC_UCHAR, NSC_EXTRA, 0, fldoff(shpstr, shp_nxlight), "nxlight", EF_BAD}, /* could let builder access these, but we can't express that yet: */ - {NSC_XCOORD, NSC_DEITY, 0, fldoff(shpstr, shp_orig_x), "xbuilt"}, - {NSC_YCOORD, NSC_DEITY, 0, fldoff(shpstr, shp_orig_y), "ybuilt"}, - {NSC_NATID, NSC_DEITY, 0, fldoff(shpstr, shp_orig_own), "builder"}, - {NSC_INT, 0, 0, fldoff(shpstr, shp_rflags), "rflags"}, - {NSC_STRINGY, 0, RET_LEN, fldoff(shpstr, shp_rpath), "rpath"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_XCOORD, NSC_DEITY, 0, fldoff(shpstr, shp_orig_x), "xbuilt", EF_BAD}, + {NSC_YCOORD, NSC_DEITY, 0, fldoff(shpstr, shp_orig_y), "ybuilt", EF_BAD}, + {NSC_NATID, NSC_DEITY, 0, fldoff(shpstr, shp_orig_own), "builder", EF_BAD}, + {NSC_INT, 0, 0, fldoff(shpstr, shp_rflags), "rflags", EF_BAD}, + {NSC_STRINGY, 0, RET_LEN, fldoff(shpstr, shp_rpath), "rpath", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr mchr_ca[] = { - {NSC_STRING, 0, 0, offsetof(struct mchrstr, m_name), "name"}, - {NSC_USHORT, 0, I_MAX+1, offsetof(struct mchrstr, m_item), "item"}, - {NSC_INT, 0, 0, offsetof(struct mchrstr, m_lcm), "lcm"}, - {NSC_INT, 0, 0, offsetof(struct mchrstr, m_hcm), "hcm"}, - {NSC_INT, 0, 0, offsetof(struct mchrstr, m_armor), "armor"}, - {NSC_INT, 0, 0, offsetof(struct mchrstr, m_speed), "speed"}, - {NSC_INT, 0, 0, offsetof(struct mchrstr, m_visib), "visib"}, - {NSC_INT, 0, 0, offsetof(struct mchrstr, m_vrnge), "vrnge"}, - {NSC_INT, 0, 0, offsetof(struct mchrstr, m_frnge), "frnge"}, - {NSC_INT, 0, 0, offsetof(struct mchrstr, m_glim), "glim"}, - {NSC_UCHAR, 0, 0, offsetof(struct mchrstr, m_nxlight), "nxlight"}, - {NSC_UCHAR, 0, 0, offsetof(struct mchrstr, m_nchoppers), "nchoppers"}, - {NSC_UCHAR, 0, 0, offsetof(struct mchrstr, m_fuelc), "fuelc"}, - {NSC_UCHAR, 0, 0, offsetof(struct mchrstr, m_fuelu), "fuelu"}, - {NSC_INT, 0, 0, offsetof(struct mchrstr, m_tech), "tech"}, - {NSC_INT, 0, 0, offsetof(struct mchrstr, m_cost), "cost"}, - {NSC_LONG, 0, 0, offsetof(struct mchrstr, m_flags), "flags"}, - {NSC_UCHAR, 0, 0, offsetof(struct mchrstr, m_nplanes), "nplanes"}, - {NSC_UCHAR, 0, 0, offsetof(struct mchrstr, m_nland), "nland"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_STRING, 0, 0, offsetof(struct mchrstr, m_name), "name", EF_BAD}, + {NSC_USHORT, 0, I_MAX+1, offsetof(struct mchrstr, m_item), "item", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct mchrstr, m_lcm), "lcm", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct mchrstr, m_hcm), "hcm", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct mchrstr, m_armor), "armor", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct mchrstr, m_speed), "speed", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct mchrstr, m_visib), "visib", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct mchrstr, m_vrnge), "vrnge", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct mchrstr, m_frnge), "frnge", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct mchrstr, m_glim), "glim", EF_BAD}, + {NSC_UCHAR, 0, 0, offsetof(struct mchrstr, m_nxlight), "nxlight", EF_BAD}, + {NSC_UCHAR, 0, 0, offsetof(struct mchrstr, m_nchoppers), "nchoppers", EF_BAD}, + {NSC_UCHAR, 0, 0, offsetof(struct mchrstr, m_fuelc), "fuelc", EF_BAD}, + {NSC_UCHAR, 0, 0, offsetof(struct mchrstr, m_fuelu), "fuelu", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct mchrstr, m_tech), "tech", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct mchrstr, m_cost), "cost", EF_BAD}, + {NSC_LONG, 0, 0, offsetof(struct mchrstr, m_flags), "flags", EF_SHIP_CHR_FLAGS}, + {NSC_UCHAR, 0, 0, offsetof(struct mchrstr, m_nplanes), "nplanes", EF_BAD}, + {NSC_UCHAR, 0, 0, offsetof(struct mchrstr, m_nland), "nland", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr plane_ca[] = { NSC_GENITEM, - {NSC_CHAR, 0, 0, fldoff(plnstr, pln_wing), "wing"}, - {NSC_UCHAR, 0, 0, fldoff(plnstr, pln_range), "range"}, - {NSC_SHORT, 0, 0, fldoff(plnstr, pln_ship), "ship"}, - {NSC_SHORT, 0, 0, fldoff(plnstr, pln_land), "land"}, - {NSC_INT, NSC_EXTRA, 0, fldoff(plnstr, pln_att), "att"}, - {NSC_INT, NSC_EXTRA, 0, fldoff(plnstr, pln_def), "def"}, - {NSC_CHAR, 0, 0, fldoff(plnstr, pln_harden), "harden"}, - {NSC_CHAR, 0, 0, fldoff(plnstr, pln_nuketype), "nuketype"}, - {NSC_CHAR, 0, 0, fldoff(plnstr, pln_flags), "flags"}, - {NSC_TIME, 0, 0, fldoff(plnstr, pln_access), "access"}, - {NSC_TIME, NSC_EXTRA, 0, fldoff(plnstr, pln_timestamp), "timestamp"}, - {NSC_FLOAT, 0, 0, fldoff(plnstr, pln_theta), "theta"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_CHAR, 0, 0, fldoff(plnstr, pln_wing), "wing", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(plnstr, pln_range), "range", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(plnstr, pln_ship), "ship", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(plnstr, pln_land), "land", EF_BAD}, + {NSC_INT, NSC_EXTRA, 0, fldoff(plnstr, pln_att), "att", EF_BAD}, + {NSC_INT, NSC_EXTRA, 0, fldoff(plnstr, pln_def), "def", EF_BAD}, + {NSC_CHAR, 0, 0, fldoff(plnstr, pln_harden), "harden", EF_BAD}, + {NSC_CHAR, 0, 0, fldoff(plnstr, pln_nuketype), "nuketype", EF_BAD}, + {NSC_CHAR, 0, 0, fldoff(plnstr, pln_flags), "flags", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(plnstr, pln_access), "access", EF_BAD}, + {NSC_TIME, NSC_EXTRA, 0, fldoff(plnstr, pln_timestamp), "timestamp", EF_BAD}, + {NSC_FLOAT, 0, 0, fldoff(plnstr, pln_theta), "theta", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr plchr_ca[] = { - {NSC_STRING, 0, 0, offsetof(struct plchrstr, pl_name), "name"}, - {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_lcm), "lcm"}, - {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_hcm), "hcm"}, - {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_cost), "cost"}, - {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_tech), "tech"}, - {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_acc), "acc"}, - {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_load), "load"}, - {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_att), "att"}, - {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_def), "def"}, - {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_range), "range"}, - {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_crew), "crew"}, - {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_fuel), "fuel"}, - {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_stealth), "stealth"}, - {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_flags), "flags"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_STRING, 0, 0, offsetof(struct plchrstr, pl_name), "name", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_lcm), "lcm", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_hcm), "hcm", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_cost), "cost", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_tech), "tech", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_acc), "acc", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_load), "load", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_att), "att", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_def), "def", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_range), "range", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_crew), "crew", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_fuel), "fuel", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_stealth), "stealth", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct plchrstr, pl_flags), "flags", EF_PLANE_CHR_FLAGS}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr land_ca[] = { NSC_GENITEM, - {NSC_CHAR, 0, 0, fldoff(lndstr, lnd_army), "army"}, - {NSC_SHORT, 0, 0, fldoff(lndstr, lnd_ship), "ship"}, - {NSC_CHAR, 0, 0, fldoff(lndstr, lnd_harden), "harden"}, - {NSC_SHORT, 0, 0, fldoff(lndstr, lnd_retreat), "retreat"}, - {NSC_UCHAR, 0, 0, fldoff(lndstr, lnd_fuel), "fuel"}, - {NSC_UCHAR, NSC_EXTRA, 0, fldoff(lndstr, lnd_nxlight), "nxlight"}, - {NSC_INT, 0, 0, fldoff(lndstr, lnd_rflags), "rflags"}, - {NSC_STRINGY, 0, RET_LEN, fldoff(lndstr, lnd_rpath), "rpath"}, - {NSC_UCHAR, 0, 0, fldoff(lndstr, lnd_rad_max), "react"}, + {NSC_CHAR, 0, 0, fldoff(lndstr, lnd_army), "army", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(lndstr, lnd_ship), "ship", EF_BAD}, + {NSC_CHAR, 0, 0, fldoff(lndstr, lnd_harden), "harden", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(lndstr, lnd_retreat), "retreat", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(lndstr, lnd_fuel), "fuel", EF_BAD}, + {NSC_UCHAR, NSC_EXTRA, 0, fldoff(lndstr, lnd_nxlight), "nxlight", EF_BAD}, + {NSC_INT, 0, 0, fldoff(lndstr, lnd_rflags), "rflags", EF_BAD}, + {NSC_STRINGY, 0, RET_LEN, fldoff(lndstr, lnd_rpath), "rpath", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(lndstr, lnd_rad_max), "react", EF_BAD}, NSC_IVEC(fldoff(lndstr, lnd_item), ""), - {NSC_SHORT, NSC_DEITY, 0, fldoff(lndstr, lnd_pstage), "pstage"}, - {NSC_SHORT, NSC_DEITY, 0, fldoff(lndstr, lnd_ptime), "ptime"}, - {NSC_SHORT, 0, 0, fldoff(lndstr, lnd_land), "land"}, - {NSC_UCHAR, NSC_EXTRA, 0, fldoff(lndstr, lnd_nland), "nland"}, - {NSC_TIME, 0, 0, fldoff(lndstr, lnd_access), "access"}, - {NSC_FLOAT, NSC_EXTRA, 0, fldoff(lndstr, lnd_att), "att"}, - {NSC_FLOAT, NSC_EXTRA, 0, fldoff(lndstr, lnd_def), "def"}, - {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_vul), "vul"}, - {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_spd), "spd"}, - {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_vis), "vis"}, - {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_spy), "spy"}, - {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_rad), "rmax"}, - {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_frg), "frg"}, - {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_acc), "acc"}, - {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_dam), "dam"}, - {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_ammo), "ammo"}, - {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_aaf), "aaf"}, - {NSC_UCHAR, NSC_EXTRA, 0, fldoff(lndstr, lnd_fuelc), "fuelc"}, - {NSC_UCHAR, NSC_EXTRA, 0, fldoff(lndstr, lnd_fuelu), "fuelu"}, - {NSC_UCHAR, NSC_EXTRA, 0, fldoff(lndstr, lnd_maxlight), "maxlight"}, - {NSC_TIME, NSC_EXTRA, 0, fldoff(lndstr, lnd_timestamp), "timestamp"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_SHORT, NSC_DEITY, 0, fldoff(lndstr, lnd_pstage), "pstage", EF_BAD}, + {NSC_SHORT, NSC_DEITY, 0, fldoff(lndstr, lnd_ptime), "ptime", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(lndstr, lnd_land), "land", EF_BAD}, + {NSC_UCHAR, NSC_EXTRA, 0, fldoff(lndstr, lnd_nland), "nland", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(lndstr, lnd_access), "access", EF_BAD}, + {NSC_FLOAT, NSC_EXTRA, 0, fldoff(lndstr, lnd_att), "att", EF_BAD}, + {NSC_FLOAT, NSC_EXTRA, 0, fldoff(lndstr, lnd_def), "def", EF_BAD}, + {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_vul), "vul", EF_BAD}, + {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_spd), "spd", EF_BAD}, + {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_vis), "vis", EF_BAD}, + {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_spy), "spy", EF_BAD}, + {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_rad), "rmax", EF_BAD}, + {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_frg), "frg", EF_BAD}, + {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_acc), "acc", EF_BAD}, + {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_dam), "dam", EF_BAD}, + {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_ammo), "ammo", EF_BAD}, + {NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_aaf), "aaf", EF_BAD}, + {NSC_UCHAR, NSC_EXTRA, 0, fldoff(lndstr, lnd_fuelc), "fuelc", EF_BAD}, + {NSC_UCHAR, NSC_EXTRA, 0, fldoff(lndstr, lnd_fuelu), "fuelu", EF_BAD}, + {NSC_UCHAR, NSC_EXTRA, 0, fldoff(lndstr, lnd_maxlight), "maxlight", EF_BAD}, + {NSC_TIME, NSC_EXTRA, 0, fldoff(lndstr, lnd_timestamp), "timestamp", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr lchr_ca[] = { - {NSC_STRING, 0, 0, offsetof(struct lchrstr, l_name), "name"}, - {NSC_USHORT, 0, I_MAX+1, offsetof(struct mchrstr, m_item), "item"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_lcm), "lcm"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_hcm), "hcm"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_gun), "gun"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_shell), "shell"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_tech), "tech"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_cost), "cost"}, - {NSC_FLOAT, 0, 0, offsetof(struct lchrstr, l_att), "att"}, - {NSC_FLOAT, 0, 0, offsetof(struct lchrstr, l_def), "def"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_vul), "vul"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_spd), "spd"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_vis), "vis"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_spy), "spy"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_rad), "rad"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_frg), "frg"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_acc), "acc"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_dam), "dam"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_ammo), "ammo"}, - {NSC_INT, 0, 0, offsetof(struct lchrstr, l_aaf), "aaf"}, - {NSC_UCHAR, 0, 0, offsetof(struct lchrstr, l_fuelc), "fuelc"}, - {NSC_UCHAR, 0, 0, offsetof(struct lchrstr, l_fuelu), "fuelu"}, - {NSC_UCHAR, 0, 0, offsetof(struct lchrstr, l_nxlight), "nxlight"}, - {NSC_UCHAR, 0, 0, offsetof(struct lchrstr, l_mxland), "mxland"}, - {NSC_LONG, 0, 0, offsetof(struct lchrstr, l_flags), "flags"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_STRING, 0, 0, offsetof(struct lchrstr, l_name), "name", EF_BAD}, + {NSC_USHORT, 0, I_MAX+1, offsetof(struct mchrstr, m_item), "item", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_lcm), "lcm", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_hcm), "hcm", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_gun), "gun", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_shell), "shell", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_tech), "tech", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_cost), "cost", EF_BAD}, + {NSC_FLOAT, 0, 0, offsetof(struct lchrstr, l_att), "att", EF_BAD}, + {NSC_FLOAT, 0, 0, offsetof(struct lchrstr, l_def), "def", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_vul), "vul", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_spd), "spd", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_vis), "vis", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_spy), "spy", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_rad), "rad", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_frg), "frg", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_acc), "acc", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_dam), "dam", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_ammo), "ammo", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lchrstr, l_aaf), "aaf", EF_BAD}, + {NSC_UCHAR, 0, 0, offsetof(struct lchrstr, l_fuelc), "fuelc", EF_BAD}, + {NSC_UCHAR, 0, 0, offsetof(struct lchrstr, l_fuelu), "fuelu", EF_BAD}, + {NSC_UCHAR, 0, 0, offsetof(struct lchrstr, l_nxlight), "nxlight", EF_BAD}, + {NSC_UCHAR, 0, 0, offsetof(struct lchrstr, l_mxland), "mxland", EF_BAD}, + {NSC_LONG, 0, 0, offsetof(struct lchrstr, l_flags), "flags", EF_LAND_CHR_FLAGS}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr nuke_ca[] = { - {NSC_NATID, 0, 0, fldoff(nukstr, nuk_own), "owner"}, - {NSC_SHORT, 0, 0, fldoff(nukstr, nuk_uid), "uid"}, - {NSC_XCOORD, 0, 0, fldoff(nukstr, nuk_x), "xloc"}, - {NSC_YCOORD, 0, 0, fldoff(nukstr, nuk_y), "yloc"}, - {NSC_CHAR, 0, 0, fldoff(nukstr, nuk_n), "number"}, - {NSC_SHORT, 0, N_MAXNUKE, fldoff(nukstr, nuk_types), "types"}, - {NSC_TIME, NSC_EXTRA, 0, fldoff(nukstr, nuk_timestamp), "timestamp"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_NATID, 0, 0, fldoff(nukstr, nuk_own), "owner", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(nukstr, nuk_uid), "uid", EF_BAD}, + {NSC_XCOORD, 0, 0, fldoff(nukstr, nuk_x), "xloc", EF_BAD}, + {NSC_YCOORD, 0, 0, fldoff(nukstr, nuk_y), "yloc", EF_BAD}, + {NSC_CHAR, 0, 0, fldoff(nukstr, nuk_n), "number", EF_BAD}, + {NSC_SHORT, 0, N_MAXNUKE, fldoff(nukstr, nuk_types), "types", EF_BAD}, + {NSC_TIME, NSC_EXTRA, 0, fldoff(nukstr, nuk_timestamp), "timestamp", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr nchr_ca[] = { - {NSC_STRING, 0, 0, offsetof(struct nchrstr, n_name), "name"}, - {NSC_INT, 0, 0, offsetof(struct nchrstr, n_lcm), "lcm"}, - {NSC_INT, 0, 0, offsetof(struct nchrstr, n_hcm), "hcm"}, - {NSC_INT, 0, 0, offsetof(struct nchrstr, n_oil), "oil"}, - {NSC_INT, 0, 0, offsetof(struct nchrstr, n_rad), "rad"}, - {NSC_INT, 0, 0, offsetof(struct nchrstr, n_blast), "blast"}, - {NSC_INT, 0, 0, offsetof(struct nchrstr, n_dam), "dam"}, - {NSC_INT, 0, 0, offsetof(struct nchrstr, n_cost), "cost"}, - {NSC_INT, 0, 0, offsetof(struct nchrstr, n_tech), "tech"}, - {NSC_INT, 0, 0, offsetof(struct nchrstr, n_weight), "weight"}, - {NSC_INT, 0, 0, offsetof(struct nchrstr, n_flags), "flags"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_STRING, 0, 0, offsetof(struct nchrstr, n_name), "name", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct nchrstr, n_lcm), "lcm", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct nchrstr, n_hcm), "hcm", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct nchrstr, n_oil), "oil", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct nchrstr, n_rad), "rad", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct nchrstr, n_blast), "blast", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct nchrstr, n_dam), "dam", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct nchrstr, n_cost), "cost", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct nchrstr, n_tech), "tech", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct nchrstr, n_weight), "weight", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct nchrstr, n_flags), "flags", EF_NUKE_CHR_FLAGS}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr treaty_ca[] = { - {NSC_NATID, 0, 0, fldoff(trtstr, trt_cna), "cna"}, - {NSC_NATID, 0, 0, fldoff(trtstr, trt_cnb), "cnb"}, - {NSC_CHAR, 0, 0, fldoff(trtstr, trt_status), "status"}, - {NSC_SHORT, 0, 0, fldoff(trtstr, trt_acond), "acond"}, - {NSC_SHORT, 0, 0, fldoff(trtstr, trt_bcond), "bcond"}, - {NSC_TIME, 0, 0, fldoff(trtstr, trt_exp), "exp"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_NATID, 0, 0, fldoff(trtstr, trt_cna), "cna", EF_BAD}, + {NSC_NATID, 0, 0, fldoff(trtstr, trt_cnb), "cnb", EF_BAD}, + {NSC_CHAR, 0, 0, fldoff(trtstr, trt_status), "status", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(trtstr, trt_acond), "acond", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(trtstr, trt_bcond), "bcond", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(trtstr, trt_exp), "exp", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr tchr_ca[] = { - {NSC_STRING, 0, 0, offsetof(struct tchrstr, t_name), "name"}, - {NSC_INT, 0, 0, offsetof(struct tchrstr, t_cond), "cond"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_STRING, 0, 0, offsetof(struct tchrstr, t_name), "name", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct tchrstr, t_cond), "cond", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr loan_ca[] = { - {NSC_NATID, 0, 0, fldoff(lonstr, l_loner), "loaner"}, - {NSC_SHORT, 0, 0, fldoff(lonstr, l_uid), "uid"}, - {NSC_NATID, 0, 0, fldoff(lonstr, l_lonee), "loanee"}, - {NSC_CHAR, 0, 0, fldoff(lonstr, l_status), "status"}, - {NSC_INT, 0, 0, fldoff(lonstr, l_irate), "irate"}, - {NSC_INT, 0, 0, fldoff(lonstr, l_ldur), "ldur"}, - {NSC_LONG, 0, 0, fldoff(lonstr, l_amtpaid), "amtpaid"}, - {NSC_LONG, 0, 0, fldoff(lonstr, l_amtdue), "amtdue"}, - {NSC_TIME, 0, 0, fldoff(lonstr, l_lastpay), "lastpay"}, - {NSC_TIME, 0, 0, fldoff(lonstr, l_duedate), "duedate"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_NATID, 0, 0, fldoff(lonstr, l_loner), "loaner", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(lonstr, l_uid), "uid", EF_BAD}, + {NSC_NATID, 0, 0, fldoff(lonstr, l_lonee), "loanee", EF_BAD}, + {NSC_CHAR, 0, 0, fldoff(lonstr, l_status), "status", EF_BAD}, + {NSC_INT, 0, 0, fldoff(lonstr, l_irate), "irate", EF_BAD}, + {NSC_INT, 0, 0, fldoff(lonstr, l_ldur), "ldur", EF_BAD}, + {NSC_LONG, 0, 0, fldoff(lonstr, l_amtpaid), "amtpaid", EF_BAD}, + {NSC_LONG, 0, 0, fldoff(lonstr, l_amtdue), "amtdue", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(lonstr, l_lastpay), "lastpay", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(lonstr, l_duedate), "duedate", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr news_ca[] = { - {NSC_NATID, 0, 0, fldoff(nwsstr, nws_ano), "actor"}, - {NSC_SHORT, 0, 0, fldoff(nwsstr, nws_uid), "uid"}, - {NSC_CHAR, 0, 0, fldoff(nwsstr, nws_vrb), "action"}, - {NSC_NATID, 0, 0, fldoff(nwsstr, nws_vno), "victim"}, - {NSC_CHAR, 0, 0, fldoff(nwsstr, nws_ntm), "times"}, - {NSC_TIME, 0, 0, fldoff(nwsstr, nws_when), "time"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_NATID, 0, 0, fldoff(nwsstr, nws_ano), "actor", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(nwsstr, nws_uid), "uid", EF_BAD}, + {NSC_CHAR, 0, 0, fldoff(nwsstr, nws_vrb), "action", EF_BAD}, + {NSC_NATID, 0, 0, fldoff(nwsstr, nws_vno), "victim", EF_BAD}, + {NSC_CHAR, 0, 0, fldoff(nwsstr, nws_ntm), "times", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(nwsstr, nws_when), "time", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr lost_ca[] = { - {NSC_NATID, 0, 0, fldoff(loststr, lost_owner), "owner"}, - {NSC_INT, 0, 0, fldoff(loststr, lost_uid), "uid"}, - {NSC_CHAR, 0, 0, fldoff(loststr, lost_type), "type"}, - {NSC_SHORT, 0, 0, fldoff(loststr, lost_id), "id"}, - {NSC_XCOORD, 0, 0, fldoff(loststr, lost_x), "x"}, - {NSC_YCOORD, 0, 0, fldoff(loststr, lost_y), "y"}, - {NSC_TIME, 0, 0, fldoff(loststr, lost_timestamp), "timestamp"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_NATID, 0, 0, fldoff(loststr, lost_owner), "owner", EF_BAD}, + {NSC_INT, 0, 0, fldoff(loststr, lost_uid), "uid", EF_BAD}, + {NSC_CHAR, 0, 0, fldoff(loststr, lost_type), "type", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(loststr, lost_id), "id", EF_BAD}, + {NSC_XCOORD, 0, 0, fldoff(loststr, lost_x), "x", EF_BAD}, + {NSC_YCOORD, 0, 0, fldoff(loststr, lost_y), "y", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(loststr, lost_timestamp), "timestamp", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr commodity_ca[] = { - {NSC_NATID, 0, 0, fldoff(comstr, com_owner), "owner"}, - {NSC_SHORT, 0, 0, fldoff(comstr, com_uid), "uid"}, - {NSC_SITYPE(i_type), 0, 0, fldoff(comstr, com_type), "type"}, - {NSC_INT, 0, 0, fldoff(comstr, com_amount), "amount"}, - {NSC_INT, 0, 0, fldoff(comstr, com_maxbidder), "maxbidder"}, - {NSC_TIME, 0, 0, fldoff(comstr, com_markettime), "markettime"}, + {NSC_NATID, 0, 0, fldoff(comstr, com_owner), "owner", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(comstr, com_uid), "uid", EF_BAD}, + {NSC_SITYPE(i_type), 0, 0, fldoff(comstr, com_type), "type", EF_BAD}, + {NSC_INT, 0, 0, fldoff(comstr, com_amount), "amount", EF_BAD}, + {NSC_INT, 0, 0, fldoff(comstr, com_maxbidder), "maxbidder", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(comstr, com_markettime), "markettime", EF_BAD}, /* could let maxbidder access these, but we can't express that yet: */ - {NSC_XCOORD, NSC_DEITY, 0, fldoff(comstr, com_x), "xbuy"}, - {NSC_XCOORD, NSC_DEITY, 0, fldoff(comstr, com_y), "ybuy"}, + {NSC_XCOORD, NSC_DEITY, 0, fldoff(comstr, com_x), "xbuy", EF_BAD}, + {NSC_XCOORD, NSC_DEITY, 0, fldoff(comstr, com_y), "ybuy", EF_BAD}, /* could let the owner access these, but we can't express that yet: */ - {NSC_XCOORD, NSC_DEITY, 0, fldoff(comstr, sell_x), "xsell"}, - {NSC_YCOORD, NSC_DEITY, 0, fldoff(comstr, sell_y), "ysell"}, - {NSC_FLOAT, 0, 0, fldoff(comstr, com_price), "price"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_XCOORD, NSC_DEITY, 0, fldoff(comstr, sell_x), "xsell", EF_BAD}, + {NSC_YCOORD, NSC_DEITY, 0, fldoff(comstr, sell_y), "ysell", EF_BAD}, + {NSC_FLOAT, 0, 0, fldoff(comstr, com_price), "price", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr trade_ca[] = { - {NSC_NATID, 0, 0, fldoff(trdstr, trd_owner), "owner"}, - {NSC_SHORT, 0, 0, fldoff(trdstr, trd_uid), "uid"}, - {NSC_CHAR, 0, 0, fldoff(trdstr, trd_type), "type"}, - {NSC_SHORT, 0, 0, fldoff(trdstr, trd_unitid), "unitid"}, - {NSC_LONG, 0, 0, fldoff(trdstr, trd_price), "price"}, - {NSC_INT, 0, 0, fldoff(trdstr, trd_maxbidder), "maxbidder"}, - {NSC_TIME, 0, 0, fldoff(trdstr, trd_markettime), "markettime"}, + {NSC_NATID, 0, 0, fldoff(trdstr, trd_owner), "owner", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(trdstr, trd_uid), "uid", EF_BAD}, + {NSC_CHAR, 0, 0, fldoff(trdstr, trd_type), "type", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(trdstr, trd_unitid), "unitid", EF_BAD}, + {NSC_LONG, 0, 0, fldoff(trdstr, trd_price), "price", EF_BAD}, + {NSC_INT, 0, 0, fldoff(trdstr, trd_maxbidder), "maxbidder", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(trdstr, trd_markettime), "markettime", EF_BAD}, /* could let the owner access these, but we can't express that yet: */ - {NSC_XCOORD, NSC_DEITY, 0, fldoff(trdstr, trd_x), "xloc"}, - {NSC_YCOORD, NSC_DEITY, 0, fldoff(trdstr, trd_y), "yloc"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_XCOORD, NSC_DEITY, 0, fldoff(trdstr, trd_x), "xloc", EF_BAD}, + {NSC_YCOORD, NSC_DEITY, 0, fldoff(trdstr, trd_y), "yloc", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr nat_ca[] = { - {NSC_NATID, 0, 0, fldoff(natstr, nat_cnum), "cnum"}, - {NSC_CHAR, 0, 0, fldoff(natstr, nat_stat), "stat"}, - {NSC_STRINGY, 0, 20, fldoff(natstr, nat_cnam), "cname"}, - {NSC_STRINGY, NSC_DEITY, 20, fldoff(natstr, nat_pnam), "passwd"}, - {NSC_STRINGY, 0, 32, fldoff(natstr, nat_hostaddr), "ip"}, - {NSC_STRINGY, 0, 512, fldoff(natstr, nat_hostname), "hostname"}, - {NSC_STRINGY, 0, 32, fldoff(natstr, nat_userid), "userid"}, - {NSC_XCOORD, 0, 0, fldoff(natstr, nat_xstart), "xstart"}, - {NSC_YCOORD, 0, 0, fldoff(natstr, nat_ystart), "ystart"}, - {NSC_XCOORD, 0, 0, fldoff(natstr, nat_xcap), "xcap"}, - {NSC_YCOORD, 0, 0, fldoff(natstr, nat_ycap), "ycap"}, - {NSC_XCOORD, NSC_DEITY, 0, fldoff(natstr, nat_xorg), "xorg"}, - {NSC_YCOORD, NSC_DEITY, 0, fldoff(natstr, nat_yorg), "yorg"}, - {NSC_CHAR, 0, 0, fldoff(natstr, nat_update), "update"}, - {NSC_UCHAR, 0, 0, fldoff(natstr, nat_missed), "missed"}, - {NSC_USHORT, 0, 0, fldoff(natstr, nat_tgms), "tgms"}, - {NSC_USHORT, 0, 0, fldoff(natstr, nat_ann), "ann"}, - {NSC_USHORT, 0, 0, fldoff(natstr, nat_minused), "minused"}, - {NSC_SHORT, 0, 0, fldoff(natstr, nat_btu), "btu"}, - {NSC_LONG, 0, 0, fldoff(natstr, nat_reserve), "milreserve"}, - {NSC_LONG, 0, 0, fldoff(natstr, nat_money), "money"}, - {NSC_TIME, 0, 0, fldoff(natstr, nat_last_login), "login"}, - {NSC_TIME, 0, 0, fldoff(natstr, nat_last_logout), "logout"}, - {NSC_TIME, 0, 0, fldoff(natstr, nat_newstim), "newstim"}, - {NSC_TIME, 0, 0, fldoff(natstr, nat_annotim), "annotim"}, - {NSC_FLOAT, 0, 0, fldoff(natstr, nat_level[NAT_TLEV]), "tech"}, - {NSC_FLOAT, 0, 0, fldoff(natstr, nat_level[NAT_RLEV]), "research"}, - {NSC_FLOAT, 0, 0, fldoff(natstr, nat_level[NAT_ELEV]), "education"}, - {NSC_FLOAT, 0, 0, fldoff(natstr, nat_level[NAT_HLEV]), "happiness"}, + {NSC_NATID, 0, 0, fldoff(natstr, nat_cnum), "cnum", EF_BAD}, + {NSC_CHAR, 0, 0, fldoff(natstr, nat_stat), "stat", EF_BAD}, + {NSC_STRINGY, 0, 20, fldoff(natstr, nat_cnam), "cname", EF_BAD}, + {NSC_STRINGY, NSC_DEITY, 20, fldoff(natstr, nat_pnam), "passwd", EF_BAD}, + {NSC_STRINGY, 0, 32, fldoff(natstr, nat_hostaddr), "ip", EF_BAD}, + {NSC_STRINGY, 0, 512, fldoff(natstr, nat_hostname), "hostname", EF_BAD}, + {NSC_STRINGY, 0, 32, fldoff(natstr, nat_userid), "userid", EF_BAD}, + {NSC_XCOORD, 0, 0, fldoff(natstr, nat_xstart), "xstart", EF_BAD}, + {NSC_YCOORD, 0, 0, fldoff(natstr, nat_ystart), "ystart", EF_BAD}, + {NSC_XCOORD, 0, 0, fldoff(natstr, nat_xcap), "xcap", EF_BAD}, + {NSC_YCOORD, 0, 0, fldoff(natstr, nat_ycap), "ycap", EF_BAD}, + {NSC_XCOORD, NSC_DEITY, 0, fldoff(natstr, nat_xorg), "xorg", EF_BAD}, + {NSC_YCOORD, NSC_DEITY, 0, fldoff(natstr, nat_yorg), "yorg", EF_BAD}, + {NSC_CHAR, 0, 0, fldoff(natstr, nat_update), "update", EF_BAD}, + {NSC_UCHAR, 0, 0, fldoff(natstr, nat_missed), "missed", EF_BAD}, + {NSC_USHORT, 0, 0, fldoff(natstr, nat_tgms), "tgms", EF_BAD}, + {NSC_USHORT, 0, 0, fldoff(natstr, nat_ann), "ann", EF_BAD}, + {NSC_USHORT, 0, 0, fldoff(natstr, nat_minused), "minused", EF_BAD}, + {NSC_SHORT, 0, 0, fldoff(natstr, nat_btu), "btu", EF_BAD}, + {NSC_LONG, 0, 0, fldoff(natstr, nat_reserve), "milreserve", EF_BAD}, + {NSC_LONG, 0, 0, fldoff(natstr, nat_money), "money", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(natstr, nat_last_login), "login", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(natstr, nat_last_logout), "logout", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(natstr, nat_newstim), "newstim", EF_BAD}, + {NSC_TIME, 0, 0, fldoff(natstr, nat_annotim), "annotim", EF_BAD}, + {NSC_FLOAT, 0, 0, fldoff(natstr, nat_level[NAT_TLEV]), "tech", EF_BAD}, + {NSC_FLOAT, 0, 0, fldoff(natstr, nat_level[NAT_RLEV]), "research", EF_BAD}, + {NSC_FLOAT, 0, 0, fldoff(natstr, nat_level[NAT_ELEV]), "education", EF_BAD}, + {NSC_FLOAT, 0, 0, fldoff(natstr, nat_level[NAT_HLEV]), "happiness", EF_BAD}, /* FIXME nat_b[], nat_relate[], nat_contact[], nat_rejects[], nat_priorities[] */ - {NSC_LONG, 0, 0, fldoff(natstr, nat_flags),"flags"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_LONG, 0, 0, fldoff(natstr, nat_flags),"flags", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr intrchr_ca[] = { - {NSC_STRING, 0, 0, offsetof(struct sctintrins, in_name), "name"}, - {NSC_UCHAR, 0, 0, offsetof(struct sctintrins, in_lcms), "lcms"}, - {NSC_UCHAR, 0, 0, offsetof(struct sctintrins, in_hcms), "hcms"}, - {NSC_UCHAR, 0, 0, offsetof(struct sctintrins, in_dcost), "dcost"}, - {NSC_UCHAR, 0, 0, offsetof(struct sctintrins, in_mcost), "mcost"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_STRING, 0, 0, offsetof(struct sctintrins, in_name), "name", EF_BAD}, + {NSC_UCHAR, 0, 0, offsetof(struct sctintrins, in_lcms), "lcms", EF_BAD}, + {NSC_UCHAR, 0, 0, offsetof(struct sctintrins, in_hcms), "hcms", EF_BAD}, + {NSC_UCHAR, 0, 0, offsetof(struct sctintrins, in_dcost), "dcost", EF_BAD}, + {NSC_UCHAR, 0, 0, offsetof(struct sctintrins, in_mcost), "mcost", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr rpt_ca[] = { - {NSC_STRING, 0, NUM_RPTS, offsetof(struct rptstr, r_newstory), "newstory"}, - {NSC_INT, 0, 0, offsetof(struct rptstr, r_good_will), "good_will"}, - {NSC_INT, 0, 0, offsetof(struct rptstr, r_newspage), "newspage"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_STRING, 0, NUM_RPTS, offsetof(struct rptstr, r_newstory), "newstory", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct rptstr, r_good_will), "good_will", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct rptstr, r_newspage), "newspage", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} }; struct castr empfile_ca[] = { - {NSC_STRING, 0, 0, offsetof(struct empfile, name), "name"}, - {NSC_STRING, 0, 0, offsetof(struct empfile, file), "file_name"}, - {NSC_INT, 0, 0, offsetof(struct empfile, flags), "flags"}, - {NSC_NOTYPE, 0, 0, 0, NULL} + {NSC_STRING, 0, 0, offsetof(struct empfile, name), "name", EF_BAD}, + {NSC_STRING, 0, 0, offsetof(struct empfile, file), "file_name", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct empfile, flags), "flags", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} +}; + +struct castr lookup_ca[] = { + {NSC_STRING, 0, 0, offsetof(struct lookup, value), "name", EF_BAD}, + {NSC_INT, 0, 0, offsetof(struct lookup, key), "value", EF_BAD}, + {NSC_NOTYPE, 0, 0, 0, NULL, EF_BAD} +}; + +struct lookup ship_chr_flags[] = { + {M_FOOD, "fish"}, + {M_TORP, "torp"}, + {M_DCH, "dchrg"}, + {M_FLY, "plane"}, + {M_MSL, "miss"}, + {M_OIL, "oil"}, + {M_SONAR, "sonar"}, + {M_MINE, "mine"}, + {M_SWEEP, "sweep"}, + {M_SUB, "sub"}, + {M_SPY, "spy"}, + {M_LAND, "land"}, + {M_SUBT, "sub-torp"}, + {M_TRADE, "trade"}, + {M_SEMILAND, "semi-land"}, + {M_OILER, "oiler"}, + {M_SUPPLY, "supply"}, + {M_ANTIMISSILE, "anti-missile"}, + {0, 0} +}; + +struct lookup land_chr_flags[] = { + {L_XLIGHT, "xlight"}, + {L_ENGINEER, "engineer"}, + {L_SUPPLY, "supply"}, + {L_SECURITY, "security"}, + {L_LIGHT, "light"}, + {L_MARINE, "marine"}, + {L_RECON, "recon"}, + {L_RADAR, "radar"}, + {L_ASSAULT, "assault"}, + {L_FLAK, "flak"}, + {L_SPY, "spy"}, + {L_TRAIN, "train"}, + {L_HEAVY, "heavy"}, + {0, 0} +}; + +struct lookup plane_chr_flags[] = { + {P_T, "tactical"}, + {P_B, "bomber"}, + {P_F, "intercept"}, + {P_C, "cargo"}, + {P_V, "VTOL"}, + {P_M, "missile"}, + {P_L, "light"}, + {P_S, "spy"}, + {P_I, "image"}, + {P_O, "satellite"}, + {P_X, "stealth"}, + {P_N, "SDI"}, + {P_H, "half-stealth"}, + {P_E, "x-light"}, + {P_K, "helo"}, + {P_A, "ASW"}, + {P_P, "para"}, + {P_ESC, "escort"}, + {P_MINE, "mine"}, + {P_SWEEP, "sweep"}, + {P_MAR, "marine"}, + {0, 0} +}; + +struct lookup nuke_chr_flags[] = { + {N_NEUT, "neutron"}, + {0, 0} }; diff --git a/src/lib/subs/show.c b/src/lib/subs/show.c index 6a5097a7..19a45884 100644 --- a/src/lib/subs/show.c +++ b/src/lib/subs/show.c @@ -55,87 +55,6 @@ #include "nat.h" #include "prototypes.h" - -/* - * This cruft really belongs in the empglb.c file. - * Yuck. - */ - -struct lookup { - int key; - s_char *value; -}; - -struct lookup ship_flags[] = { - {M_FOOD, "fish"}, - {M_TORP, "torp"}, - {M_DCH, "dchrg"}, - {M_FLY, "plane"}, - {M_MSL, "miss"}, - {M_OIL, "oil"}, - {M_SONAR, "sonar"}, - {M_MINE, "mine"}, - {M_SWEEP, "sweep"}, - {M_SUB, "sub"}, - {M_SPY, "spy"}, - {M_LAND, "land"}, - {M_SUBT, "sub-torp"}, - {M_TRADE, "trade"}, - {M_SEMILAND, "semi-land"}, - {M_OILER, "oiler"}, - {M_SUPPLY, "supply"}, - {M_ANTIMISSILE, "anti-missile"}, - {0, 0} -}; - -struct lookup land_flags[] = { - {L_XLIGHT, "xlight"}, - {L_ENGINEER, "engineer"}, - {L_SUPPLY, "supply"}, - {L_SECURITY, "security"}, - {L_LIGHT, "light"}, - {L_MARINE, "marine"}, - {L_RECON, "recon"}, - {L_RADAR, "radar"}, - {L_ASSAULT, "assault"}, - {L_FLAK, "flak"}, - {L_SPY, "spy"}, - {L_TRAIN, "train"}, - {L_HEAVY, "heavy"}, - {0, 0} -}; - - -struct lookup plane_flags[] = { - {P_T, "tactical"}, - {P_B, "bomber"}, - {P_F, "intercept"}, - {P_C, "cargo"}, - {P_V, "VTOL"}, - {P_M, "missile"}, - {P_L, "light"}, - {P_S, "spy"}, - {P_I, "image"}, - {P_O, "satellite"}, - {P_X, "stealth"}, - {P_N, "SDI"}, - {P_H, "half-stealth"}, - {P_E, "x-light"}, - {P_K, "helo"}, - {P_A, "ASW"}, - {P_P, "para"}, - {P_ESC, "escort"}, - {P_MINE, "mine"}, - {P_SWEEP, "sweep"}, - {P_MAR, "marine"}, - {0, 0} -}; - -struct lookup nuke_flags[] = { - {N_NEUT, "neutron"}, - {0, 0} -}; - struct look_list { union { struct lchrstr *lp; @@ -329,7 +248,7 @@ show_nuke_capab(int tlev) for (i = j = 0; i < 32; i++) { if (!(np->n_flags & bit(i))) continue; - if (NULL != (p = lookup(bit(i), nuke_flags))) { + if (NULL != (p = lookup(bit(i), nuke_chr_flags))) { if (j++ > 0) pr(" "); pr(p); @@ -443,7 +362,7 @@ show_ship_capab(int tlev) for (j = n = 0; j < 32; j++) { if (!(mp->m_flags & bit(j))) continue; - if (NULL != (p = lookup(bit(j), ship_flags))) { + if (NULL != (p = lookup(bit(j), ship_chr_flags))) { if (n++ > 0) pr(" "); pr(p); @@ -494,7 +413,7 @@ show_plane_capab(int tlev) for (i = n = 0; i < 32; i++) { if (!(pp->pl_flags & bit(i))) continue; - if (NULL != (p = lookup(bit(i), plane_flags))) { + if (NULL != (p = lookup(bit(i), plane_chr_flags))) { if (n++ > 0) pr(" "); pr(p); @@ -567,7 +486,7 @@ show_land_capab(int tlev) for (j = n = 0; j < 32; j++) { if (!(lcp->l_flags & bit(j))) continue; - if (NULL != (p = lookup(bit(j), land_flags))) { + if (NULL != (p = lookup(bit(j), land_chr_flags))) { if (n++ > 0) pr(" "); pr(p);