On Thu, Feb 24, 2000 at 04:59:13PM +1100, James Cameron wrote:
> a) there is a GWIDTH bug already, pressor a ship into left wall and see
> it disappear or move to a very strange position, from the perspective of
> the ship itself.  The wall is usually irrelevant.

It looks to me like this has to do with the fact that wall bouncing, is
performed *before* tractor/press effect is applied. For an instant in time,
the ship could be position at a -x value. Usually the next update from the
server will fix this, and cause a delayed bounce, which is the effect that
I see as of pl7 with a cow client. Many clients will not draw a ship with
a -x position.

The easiest fix that would 'mostly' deal with this situation, would be
for the bounce/wallwrap code to be duplicated below the tractor code,
and executed twice -- once for the ship doing the tractoring, and once
for the ship being tractored.

This fix is not complete, in that there is no guarantee that one, or
both of the ships, may not bounce 'twice' (or more, for a ship being
tractored by several other ships) during the same update, causing only
more strange behaviour to be presented to the user.

The true fix would be for Netrek to only calculate delta's for engine
warp, tractors, orbits, etc., during the 'move' phase, and only as a
final step during this phase, to actually accumulate the delta with
the last position for each ship, and perform wall bounce/wrap for each.

One advantage to the 'true fix', would be that ships travelling at the
exact same speed, would not take turns 'jumping' by a pixel or so
every so often. I believe that this effect is caused by the 'move'
phase updating the positions of the ship, but taking a fair amount of
time to actually complete. If an ntserv process wakes up to perform
its update, while the daemon is half through the 'move' phase, it is
possible that the ntserv process will send to the client, an updated
position for one ship, but not a fully updated position for the other
ship. Of course, after this update, the other ship would appear to
'catch up'.

Thoughts?
mark

-- 
mark at mielke.cc/markm at ncf.ca/markm at nortelnetworks.com __________________________
.  .  _  ._  . .   .__    .  . ._. .__ .   . . .__  | Neighbourhood Coder
|\/| |_| |_| |/    |_     |\/|  |  |_  |   |/  |_   | 
|  | | | | \ | \   |__ .  |  | .|. |__ |__ | \ |__  | Ottawa, Ontario, Canada

  One ring to rule them all, one ring to find them, one ring to bring them all
                       and in the darkness bind them...

                           http://mark.mielke.cc/