On Thu, 24 Jan 2002, James Cameron wrote:
> I have had reported to me ...
> 
> Observer locked on team player that is beaming armies up or down from
> the team base is told in the messages how many armies the enemy base
> has.
> 
> Anyone seen this?

Yes.  The observer doesn't get the p_docked field set to the base the observee
is docked on, so the server will probably send a message with player 0's
armies/name.  I fixed this and it didn't seem to trigger any bugs where the
observer would be considered "docked" on the base for fuel use/moving
armies/freeing docking ports/etc..

There is another bug in the server's calculation of army carrying
capacity.  It thinks observers always have 0 kills.  So you get a message like
"Beaming up: (4/0) ....." and the "No more room" message isn't sent.

The obvious fix is to set the kills of an observer to the kills of the person
they are observing.  But there is a comment in the code, "Very bad:  will
confuse enemies", that I don't understand.  It's too hard to ignore observers
in the player list?  

So I'll probably just fix this by making the army capacity calculation in
redraw.c take observers into account.  I think I'll also make paradise-2000
put blank space in the player list for observer stats, since they are
meaningless.


> (I already knew that the code already mishandles beaming up or down from
> planets, reporting instead the number of armies on another planet, the
> one the observer last locked onto.)

This is somewhat harder to fix.  The p_planet field needs to be set for
observers, but this field has double usage as planet orbited and planet
locked, and observers have special meaning for planet locked.  I think it
might be ok to set this anyway tough, since the planet lock flag won't be set.
So maybe it's not really hard at all..