On Tue, May 19, 2009 at 04:51:08PM -0500, John R. Dennison wrote:
> 	Working, yes.  Intended, I doubt that.  It bears every
> 	indication of a design flaw as does the legacy base refit 
> 	conditions.  

Yes, probably a design flaw, but I'm not going to change it, because it
is too well known.

It was present in 2.7pl5 released in early 1997.  Not sure when the
change actually turned up, but it is in interface.c where the Pearl
Harbor (sic) message resides:

    if (!(me->p_war & owner)) {
        new_warning(41,"Must declare war first (no Pearl Harbor syndrome
allowed here).");
	return;
    }

There was no mention of this code being added in the CHANGES file, which
takes us back to 1993.

Prior to that code being added, the ntserv would set PFBOMB and the
daemon would ignore it until war was declared:

    /* do bombing */
    if ((!(j->p_flags & PFORBIT)) || (!(j->p_flags & PFBOMB)))
      continue;
    l = &planets[j->p_planet];

    if (j->p_team == l->pl_owner)
      continue;
    if (!(j->p_war & l->pl_owner))
      continue;
    if (l->pl_armies < 5)
      continue;

So without that added code, the effect would have been the same.

> 	Please note, I am not advocating changing it from the way
> 	it currently operates.  I would, however, suggest documenting
> 	this behavior somewhere as it's not how one would expect it
> 	to function.

Where would we document it and why?

Client xtrekrc options could be renamed "CHEAT CODES" to better appeal
to the newer community, perhaps this feature could be labelled a "CHEAT"
even though it is intentional.

-- 
James Cameron    mailto:quozl at us.netrek.org     http://quozl.netrek.org/