From 3e5c0643dbcf3da17af1bdb6d83520c4d8e75a51 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 21 Aug 2004 12:36:13 +0000 Subject: [PATCH] (NSC_EXTRA): New. (sect_ca, NSC_GENITEM, plane_ca, land_ca): Use it for aliases and cached functions of tech. (xdflds, xdfldnam): Skip NSC_EXTRA fields. --- include/nsc.h | 3 +- src/lib/commands/xdump.c | 4 +++ src/lib/global/nsc.c | 60 ++++++++++++++++++++-------------------- 3 files changed, 36 insertions(+), 31 deletions(-) diff --git a/include/nsc.h b/include/nsc.h index 88da71cf..c5384b40 100644 --- a/include/nsc.h +++ b/include/nsc.h @@ -73,7 +73,8 @@ typedef enum { typedef char packed_nsc_cat; enum { - NSC_DEITY = 1 /* access restricted to deity */ + NSC_DEITY = bit(0), /* access restricted to deity */ + NSC_EXTRA = bit(1) /* computable from other selectors */ }; typedef unsigned char nsc_flags; diff --git a/src/lib/commands/xdump.c b/src/lib/commands/xdump.c index 1bddea6e..bbf4f7cc 100644 --- a/src/lib/commands/xdump.c +++ b/src/lib/commands/xdump.c @@ -289,6 +289,8 @@ xdflds(struct castr ca[], void *ptr) for (i = 0; ca[i].ca_name; ++i) { if (ca[i].ca_flags & NSC_DEITY && !player->god) continue; + if (ca[i].ca_flags & NSC_EXTRA) + continue; j = 0; do { xdeval(&val, ca[i].ca_type, ptr, ca[i].ca_off, j); @@ -307,6 +309,8 @@ xdfldnam(struct castr ca[]) for (i = 0; ca[i].ca_name; ++i) { if (ca[i].ca_flags & NSC_DEITY && !player->god) continue; + if (ca[i].ca_flags & NSC_EXTRA) + continue; pr("%s%s", sep, ca[i].ca_name); if (ca[i].ca_len) pr(" %d", ca[i].ca_len); diff --git a/src/lib/global/nsc.c b/src/lib/global/nsc.c index 43b79154..38e2c532 100644 --- a/src/lib/global/nsc.c +++ b/src/lib/global/nsc.c @@ -80,7 +80,7 @@ struct castr sect_ca[] = { {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_effic), "effic"}, {NSC_SHORT, 0, 0, fldoff(sctstr, sct_mobil), "mobil"}, {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr), "terr"}, - {NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr), "terr0"}, + {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"}, @@ -113,18 +113,18 @@ struct castr sect_ca[] = { {NSC_NOTYPE, 0, 0, 0, NULL} }; -#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, 0, 0, fldoff(genitem, group), "group"}, \ -{ NSC_XCOORD, 0, 0, fldoff(genitem, opx), "opx"}, \ -{ NSC_YCOORD, 0, 0, fldoff(genitem, opy), "opy"}, \ +#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"} struct castr ship_ca[] = { @@ -147,8 +147,8 @@ struct castr plane_ca[] = { {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_INT, 0, 0, fldoff(plnstr, pln_att), "att"}, - {NSC_INT, 0, 0, fldoff(plnstr, pln_def), "def"}, + {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"}, @@ -169,21 +169,21 @@ struct castr land_ca[] = { NSC_IVEC(fldoff(lndstr, lnd_item), ""), {NSC_USHORT, NSC_DEITY, 0, fldoff(lndstr, lnd_pstage), "pstage"}, {NSC_USHORT, NSC_DEITY, 0, fldoff(lndstr, lnd_ptime), "ptime"}, - {NSC_FLOAT, 0, 0, fldoff(lndstr, lnd_att), "att"}, - {NSC_FLOAT, 0, 0, fldoff(lndstr, lnd_def), "def"}, - {NSC_INT, 0, 0, fldoff(lndstr, lnd_vul), "vul"}, - {NSC_INT, 0, 0, fldoff(lndstr, lnd_spd), "spd"}, - {NSC_INT, 0, 0, fldoff(lndstr, lnd_vis), "vis"}, - {NSC_INT, 0, 0, fldoff(lndstr, lnd_spy), "spy"}, - {NSC_INT, 0, 0, fldoff(lndstr, lnd_rad), "rad"}, - {NSC_INT, 0, 0, fldoff(lndstr, lnd_frg), "frg"}, - {NSC_INT, 0, 0, fldoff(lndstr, lnd_acc), "acc"}, - {NSC_INT, 0, 0, fldoff(lndstr, lnd_dam), "dam"}, - {NSC_INT, 0, 0, fldoff(lndstr, lnd_ammo), "ammo"}, - {NSC_INT, 0, 0, fldoff(lndstr, lnd_aaf), "aaf"}, - {NSC_UCHAR, 0, 0, fldoff(lndstr, lnd_fuelc), "fuelc"}, - {NSC_UCHAR, 0, 0, fldoff(lndstr, lnd_fuelu), "fuelu"}, - {NSC_UCHAR, 0, 0, fldoff(lndstr, lnd_maxlight), "maxlight"}, + {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), "rad"}, + {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, 0, 0, fldoff(lndstr, lnd_timestamp), "timestamp"}, {NSC_NOTYPE, 0, 0, 0, NULL} };