(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.
This commit is contained in:
parent
cd23036995
commit
3e5c0643db
3 changed files with 36 additions and 31 deletions
|
@ -73,7 +73,8 @@ typedef enum {
|
||||||
typedef char packed_nsc_cat;
|
typedef char packed_nsc_cat;
|
||||||
|
|
||||||
enum {
|
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;
|
typedef unsigned char nsc_flags;
|
||||||
|
|
||||||
|
|
|
@ -289,6 +289,8 @@ xdflds(struct castr ca[], void *ptr)
|
||||||
for (i = 0; ca[i].ca_name; ++i) {
|
for (i = 0; ca[i].ca_name; ++i) {
|
||||||
if (ca[i].ca_flags & NSC_DEITY && !player->god)
|
if (ca[i].ca_flags & NSC_DEITY && !player->god)
|
||||||
continue;
|
continue;
|
||||||
|
if (ca[i].ca_flags & NSC_EXTRA)
|
||||||
|
continue;
|
||||||
j = 0;
|
j = 0;
|
||||||
do {
|
do {
|
||||||
xdeval(&val, ca[i].ca_type, ptr, ca[i].ca_off, j);
|
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) {
|
for (i = 0; ca[i].ca_name; ++i) {
|
||||||
if (ca[i].ca_flags & NSC_DEITY && !player->god)
|
if (ca[i].ca_flags & NSC_DEITY && !player->god)
|
||||||
continue;
|
continue;
|
||||||
|
if (ca[i].ca_flags & NSC_EXTRA)
|
||||||
|
continue;
|
||||||
pr("%s%s", sep, ca[i].ca_name);
|
pr("%s%s", sep, ca[i].ca_name);
|
||||||
if (ca[i].ca_len)
|
if (ca[i].ca_len)
|
||||||
pr(" %d", ca[i].ca_len);
|
pr(" %d", ca[i].ca_len);
|
||||||
|
|
|
@ -80,7 +80,7 @@ struct castr sect_ca[] = {
|
||||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_effic), "effic"},
|
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_effic), "effic"},
|
||||||
{NSC_SHORT, 0, 0, fldoff(sctstr, sct_mobil), "mobil"},
|
{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), "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_terr1), "terr1"},
|
||||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr2), "terr2"},
|
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr2), "terr2"},
|
||||||
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr3), "terr3"},
|
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr3), "terr3"},
|
||||||
|
@ -122,7 +122,7 @@ struct castr sect_ca[] = {
|
||||||
{ NSC_CHAR, 0, 0, fldoff(genitem, effic), "effic"}, \
|
{ NSC_CHAR, 0, 0, fldoff(genitem, effic), "effic"}, \
|
||||||
{ NSC_CHAR , 0, 0, fldoff(genitem, mobil), "mobil"}, \
|
{ NSC_CHAR , 0, 0, fldoff(genitem, mobil), "mobil"}, \
|
||||||
{ NSC_SHORT, 0, 0, fldoff(genitem, tech), "tech"}, \
|
{ NSC_SHORT, 0, 0, fldoff(genitem, tech), "tech"}, \
|
||||||
{ NSC_CHAR, 0, 0, fldoff(genitem, group), "group"}, \
|
{ NSC_CHAR, NSC_EXTRA, 0, fldoff(genitem, group), "group"}, \
|
||||||
{ NSC_XCOORD, 0, 0, fldoff(genitem, opx), "opx"}, \
|
{ NSC_XCOORD, 0, 0, fldoff(genitem, opx), "opx"}, \
|
||||||
{ NSC_YCOORD, 0, 0, fldoff(genitem, opy), "opy"}, \
|
{ NSC_YCOORD, 0, 0, fldoff(genitem, opy), "opy"}, \
|
||||||
{ NSC_SHORT, 0, 0, fldoff(genitem, mission), "mission"}
|
{ NSC_SHORT, 0, 0, fldoff(genitem, mission), "mission"}
|
||||||
|
@ -147,8 +147,8 @@ struct castr plane_ca[] = {
|
||||||
{NSC_CHAR, 0, 0, fldoff(plnstr, pln_wing), "wing"},
|
{NSC_CHAR, 0, 0, fldoff(plnstr, pln_wing), "wing"},
|
||||||
{NSC_UCHAR, 0, 0, fldoff(plnstr, pln_range), "range"},
|
{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_ship), "ship"},
|
||||||
{NSC_INT, 0, 0, fldoff(plnstr, pln_att), "att"},
|
{NSC_INT, NSC_EXTRA, 0, fldoff(plnstr, pln_att), "att"},
|
||||||
{NSC_INT, 0, 0, fldoff(plnstr, pln_def), "def"},
|
{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_harden), "harden"},
|
||||||
{NSC_CHAR, 0, 0, fldoff(plnstr, pln_nuketype), "nuketype"},
|
{NSC_CHAR, 0, 0, fldoff(plnstr, pln_nuketype), "nuketype"},
|
||||||
{NSC_CHAR, 0, 0, fldoff(plnstr, pln_flags), "flags"},
|
{NSC_CHAR, 0, 0, fldoff(plnstr, pln_flags), "flags"},
|
||||||
|
@ -169,21 +169,21 @@ struct castr land_ca[] = {
|
||||||
NSC_IVEC(fldoff(lndstr, lnd_item), ""),
|
NSC_IVEC(fldoff(lndstr, lnd_item), ""),
|
||||||
{NSC_USHORT, NSC_DEITY, 0, fldoff(lndstr, lnd_pstage), "pstage"},
|
{NSC_USHORT, NSC_DEITY, 0, fldoff(lndstr, lnd_pstage), "pstage"},
|
||||||
{NSC_USHORT, NSC_DEITY, 0, fldoff(lndstr, lnd_ptime), "ptime"},
|
{NSC_USHORT, NSC_DEITY, 0, fldoff(lndstr, lnd_ptime), "ptime"},
|
||||||
{NSC_FLOAT, 0, 0, fldoff(lndstr, lnd_att), "att"},
|
{NSC_FLOAT, NSC_EXTRA, 0, fldoff(lndstr, lnd_att), "att"},
|
||||||
{NSC_FLOAT, 0, 0, fldoff(lndstr, lnd_def), "def"},
|
{NSC_FLOAT, NSC_EXTRA, 0, fldoff(lndstr, lnd_def), "def"},
|
||||||
{NSC_INT, 0, 0, fldoff(lndstr, lnd_vul), "vul"},
|
{NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_vul), "vul"},
|
||||||
{NSC_INT, 0, 0, fldoff(lndstr, lnd_spd), "spd"},
|
{NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_spd), "spd"},
|
||||||
{NSC_INT, 0, 0, fldoff(lndstr, lnd_vis), "vis"},
|
{NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_vis), "vis"},
|
||||||
{NSC_INT, 0, 0, fldoff(lndstr, lnd_spy), "spy"},
|
{NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_spy), "spy"},
|
||||||
{NSC_INT, 0, 0, fldoff(lndstr, lnd_rad), "rad"},
|
{NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_rad), "rad"},
|
||||||
{NSC_INT, 0, 0, fldoff(lndstr, lnd_frg), "frg"},
|
{NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_frg), "frg"},
|
||||||
{NSC_INT, 0, 0, fldoff(lndstr, lnd_acc), "acc"},
|
{NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_acc), "acc"},
|
||||||
{NSC_INT, 0, 0, fldoff(lndstr, lnd_dam), "dam"},
|
{NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_dam), "dam"},
|
||||||
{NSC_INT, 0, 0, fldoff(lndstr, lnd_ammo), "ammo"},
|
{NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_ammo), "ammo"},
|
||||||
{NSC_INT, 0, 0, fldoff(lndstr, lnd_aaf), "aaf"},
|
{NSC_INT, NSC_EXTRA, 0, fldoff(lndstr, lnd_aaf), "aaf"},
|
||||||
{NSC_UCHAR, 0, 0, fldoff(lndstr, lnd_fuelc), "fuelc"},
|
{NSC_UCHAR, NSC_EXTRA, 0, fldoff(lndstr, lnd_fuelc), "fuelc"},
|
||||||
{NSC_UCHAR, 0, 0, fldoff(lndstr, lnd_fuelu), "fuelu"},
|
{NSC_UCHAR, NSC_EXTRA, 0, fldoff(lndstr, lnd_fuelu), "fuelu"},
|
||||||
{NSC_UCHAR, 0, 0, fldoff(lndstr, lnd_maxlight), "maxlight"},
|
{NSC_UCHAR, NSC_EXTRA, 0, fldoff(lndstr, lnd_maxlight), "maxlight"},
|
||||||
{NSC_TIME, 0, 0, fldoff(lndstr, lnd_timestamp), "timestamp"},
|
{NSC_TIME, 0, 0, fldoff(lndstr, lnd_timestamp), "timestamp"},
|
||||||
{NSC_NOTYPE, 0, 0, 0, NULL}
|
{NSC_NOTYPE, 0, 0, 0, NULL}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue