[CF-Devel] Patch: client display issues

crossfire-devel at archives.real-time.com crossfire-devel at archives.real-time.com
Sun Oct 26 13:10:14 CST 2003


(Sorry for the late reply, I wasn't home for some time.)

Mark Wedel wrote:
>
     
      Andreas Kirschbaum wrote:
     
     >
     
      > * server.diff: Fixes disappearing multi-square objects when scrolling
     
     >
     
      >   the client view right and/or down.
     
     >
     
     
     >
     
      Is thie still a problem after the changes I did a week or so ago? I didn't
     
     >
     
      see any drawing issues after I made that change. So I'm wondering if the
     
     >
     
      if that patch is still needed.
     
     
It had been a problem when I sent the patch. In the current CVS the problem
is fixed (that is, the patch is not needed anymore.)

>
     
      One could state 'well, what's the harm if it doesn't break anything more'.
     
     >
     
      Well, the real issue is that it's just more data being sent down the wire
     
     >
     
      - it'd be very easy to write a mechanism to just send every bit of data
     
     >
     
      down the wire, but that isn't bandwidth friendly. So one has to be careful
     
     >
     
      what changes one makes to such code so that we don't send excessive
     
     >
     
      amounts of data that we don't need to send.
     
     
Maybe I miss your point here. The problem that I tried to fix here was that
some cells were copied (from invalid coordinates) instead of cleared. (I
added the missing check "x+dx >= ns->mapx" (and an unnecessary check
"x < 0").)


>
     
      > * client1.diff: Sometimes objects (especially moving monsters) were not
     
     >
     
      >   cleared properly, resulting in additional "ghost images".
     
     >
     
      >
     
     >
     
      >   The removed comment is not correct: I think the real problem was the
     
     >
     
      >   patch in "server.diff".
     
     >
     
     
     >
     
      Actually, I think that is the real problem there. The client having any
     
     >
     
      idea of knowing what is off the screen is purely wrong - the only valid
     
     >
     
      off screen data is the bigimages, but that comment doesn't make any
     
     >
     
      distinction on that. So almost certainly what was happening is that off
     
     >
     
      the screen the stack may have been something like floor, empty, orc. The
     
     >
     
      orc disappears while the space is not visible. When that space is then
     
     >
     
      visible, the client says 'there is a floor on this space', which is
     
     >
     
      perfectly correct, but with that comment, the data was never cleared, so
     
     >
     
      that the client thought it should display a floor and orc again, so that
     
     >
     
      orc remains displayed.
     
     >
     
     
     >
     
      I know for 100% that the problem was purely client issue - simply put, if
     
     >
     
      you used an older client, you'd never have the problem.
     
     >
     
     
     >
     
      So most likely that fix was put in place for one thing, which broke
     
     >
     
      something else.
     
     
I agree with this explanation. Therefore my patch reversed the previous
(incorrect) fix. (My patch corrects the gtk client only, because in the x11
client this problem had not been "fixed".)

I still think this patch fixes a real problem (in the gtk client): You can
see the "ghost images" for example in /scorn/misc/beginners: open the bottom
gate and do not kill the kobold. Let the kobold follow you to the top of the
map. Run south until the kobold disappears from the top of the view. Go
(run) back to north: most of the time, the (gtk) client will display two
kobolds when it reappears.


>
     
      > * client2.diff: This patch fixes the problem that multi-square objects
     
     >
     
      >   hide the player.
     
     >
     
     
     >
     
      I tried that - you basically reversed the order of display. I tried that
     
     >
     
      to correct some display issues, but found it created other display issues.
     
     >
     
      I think it related to if you have big objects stacking over each other,
     
     >
     
      but maybe I tried that reversal before I made the other changes.
     
     
I was not able to reproduce this problem anymore, so I think this patch is
not needed anymore. (But if I understand the code correctly, the x11 and gtk
client differ: the x11 client will draw heads, then tails, but the gtk
client tails, then heads.)


While testing I found another (minor) display issue (in both the gtk and x11
client): A player (or other objects) that is atop the bottom/right corner
of the palace in /pup_land/terminal disappears when other squares of the
palace are not visible:

(P=palace, @=player, _=cobblestones, .=grass, ?=fog)

      ...._....
      ...?_....
      ..PPPP_..
      ..PPPP_..
      
     
     __PPP at ___
     
     
      .._____..
      ...._....
      ...._....

Now the player is visible. When a fog enters the palace (or the player casts
holy word), the player disappears:

      ...._....
      ...._....
      ..P?PP_..
      ..PPPP_..
      __PPPP___
      .._____..
      ...._....
      ...._....


Andreas

_______________________________________________
crossfire-devel mailing list
     
     crossfire-devel at lists.real-time.com
     
     
     https://mailman.real-time.com/mailman/listinfo/crossfire-devel
     
     
    


More information about the crossfire mailing list