(meta_flags): Update for it.
(ship_ca, mchr_ca, plane_ca, plchr_ca, land_ca, lchr_ca, nchr_ca)
treaty_ca, nat_ca, empfile_ca, mdchr_ca): Use it.
(symbol_ca): Move value selector to beginning of array.
(meta_flags): Downcase names.
(PTR_CACHE): Rename.
(ARRAY_CACHE): New.
(empfile): Use it to set csize of elements EF_SHIP_CHR, EF_PLANE_CHR,
EF_LAND_CHR, EF_NUKE_CHR.
(ef_init_chr): Now that empfile[]'s initializer sets csize, remove the
temporary csize initialization here. The value wasn't correct, but
better than nothing.
doesn't show it, but selectors do. Reported by Doug Wescott.
(nreport, ncache): Catch errors like the above. Catch bad event
argument while we're at it.
plane_ca, plchr_ca, land_ca, lchr_ca, nuke_ca, nchr_ca, treaty_ca)
loan_ca, news_ca, lost_ca, commodity_ca, trade_ca, nat_ca)
(empfile_ca): Move row index selector to beginning of array and set
its table. Set table for NSC_SITYPE(i_type), NSC_NATID, NSC_TYPEID
selectors.
(news_ca): Set selector action's table.
(commodity_ca, trade_ca): Set selector maxbidder's table.
Counter-intuitive. Report last connection time range instead.
Unfortunately, this requires a change in output format.
(coun): Report on all countries even to mortals. This used to be
done, and was most probably changed because it gave away too much
information. Carefully limit the information given to mortals, as
follows. Limit last access information to whether deities or allies
are logged on right now, no longer report connection time for deities
that are not logged on. Remove column time for mortals, rename it to
BTU for deities. Report status, but with less detail if HIDDEN is
enabled.
undocumented feature: When a buyer didn't have enough money at the
time of the trade, the seller *automatically* granted a high-interest,
medium term loan for up to 90% of the price. This is just a silly
trap for unwary sellers and buyers alike.
(N_FIN_TROUBLE, N_CREDIT_JUNK): Unused, remove.
(rpt): Update accordingly.
members.
(empfile): Reorder members for clearer documentation.
(EFF_IMMUTABLE): New.
(EFF_OPEN): Remove, use ~EFF_IMMUTABLE.
(empfile): Don't initialize member size to a useless value for EF_MAP
and EF_BMAP. ef_init() writes the real value.
(empfile): Correctly initialize members cids, csize, fids for all
EFF_STATIC tables except EF_SHIP_CHR, EF_PLANE_CHR, EF_LAND_CHR,
EF_NUKE_CHR, EF_META and the symbol tables.
of laziness. The assumption is true on any sane machine, due to
alignment constraints. But the function doesn't provide enough value
to make me fix or document this. Remove it.
(lookup): Replace it.
one of its prefixes. src/lib/global/file.c rev. 1.18 added such table
entries, and file.h rev. 1.34 made them visible to ef_byname().
Simply use stmtch(). This also rejects ambiguous abbreviations: "s"
used to return EF_SECTOR, it now returns M_NOTUNIQUE.
(xdump, main): Use it.
(EF_MAX): Change to largest table ID + 1. This is now possible
because the changes above get rid of the assumption that
empfile[0..EF_MAX-1] is only game state. Code can now work on any
table using the advertized empfile interface, not just on game state.
(my_ef_byname): Remove, use ef_byname().
(set, mission, multifire, fuel, cons_choose, cede): Use it instead of
ef_byname(). Remove the hacks to map unwanted results to wanted
results. The hacks in set() were broken: bad input made the code cast
arbitrary items to union trdgenstr, with potentially disastrous
consequences. Closes#906483 and #906486.
(set): Less cryptic prompt and diagnostics.