(EFF_OWNER): The assertion that EFF_OWNER implies ef_read() sets

player->owner is no longer used.  Use it to indicate that owner can be
accessed through struct genitem, similar to EFF_XY and EFF_GROUP.
(xdump): Fix ownership checking.  Old version worked only when
nxtitem() set player->owner.

(empfile): Set EFF_OWNER for EF_LOST.  This fixes `xdump lost'
disclosing other countries' losses.
(loststr): Document implications of EFF_OWNER.

(empfile): Set EFF_OWNER for EF_NATION.
(natstr): Rearrange members for EFF_OWNER, document.
(nat_ca): Unused so far.  Clean it up, add most missing selectors.
(fileinit): Use it.  This implements `xdump nation'.

(fileinit): Simplify setting map file size.
This commit is contained in:
Markus Armbruster 2005-05-29 14:14:33 +00:00
parent b111abc2c5
commit 326ac671ba
7 changed files with 33 additions and 36 deletions

View file

@ -56,7 +56,7 @@
* - News item characteristics: rpt[] (TODO)
* - News page headings: page_headings[] (TODO)
* - Treaty clause characteristics: tchr[]
* - Commands: coms[] (TODO)
* - Commands: player_coms[] (TODO)
* - Options: Options[]
* - Configuration: configkeys[]
*
@ -406,6 +406,7 @@ xdftr(int n)
static int
xditem(int type, char *arg)
{
int check_owner = !player->god && (ef_flags(type) & EFF_OWNER) != 0;
struct castr *ca;
struct nstr_item ni;
int n;
@ -422,7 +423,7 @@ xditem(int type, char *arg)
n = 0;
while (nxtitem(&ni, buf)) {
if (!player->owner)
if (check_owner && ((struct genitem *)buf)->own != player->cnum)
continue;
++n;
xdflds(ca, buf);