Menu

#109 Fix map display errors for big faces

closed
nobody
Client (25)
5
2014-01-18
2005-08-24
No

These patches fix bug #1102991 (Duplicate grapical
display of the same monster) for all clients (cfclient,
gcfclient, gcfclient2) and for all display modes
(default/sdl/opengl).

The patches should be applied to current cvs. You have
to patch both parts (server and client) to really make
them work. (OTOH patched clients connecting to an
unpatched server, as well as unpatched clients
connecting to a patched server still do work. But (of
course) you still experience duplicated big faces.)

To check the patch I cleared various maps, including
raffle2 and the Titan Quest. (These latter maps produce
lots of display errors without this patch.) I did not
notice anymore any display errors.

I added the patches to the patches tracker to get
feedback before I actually commit them. If I do not
receive any serious complaints, I'll commit them later.

client.diff contains the following changes:

- smoothing:

- (gtk/gtk2+sdl/gdk) Previously did always use layer
0 when checking if smoothing was necessary.

- (gtk/gtk2+sdl/gdk/opengl) Fix array access to out
of bounds cells.

- map drawing:

- (all) Properly clear big faces.

- (gtk/gtk2) Previously did redraw whole map after
each map_scroll. Now redraws only affected tiles.

- (x11/gtk) Add new option -mapscroll/-nomapscroll to
enable/disable map_scroll processing via bitmap copying
instead of individual tile redraws. The default is "on"
(behavior like before).

- (gtk2) Add new option -smooth/-nosmooth the
enable/disable smoothing from command line.

- (x11) Implement map_scroll processing via bitmap
copying. (You can disable this with the new command
line option -nomapscroll.)

- other:

- Move all code updating (face) information in
the_map into mapdata.c.

- (gtk2+opengl) It does compile but I didn't test it
because it crashes at startup with a "BadMatch (invalid
parameter attributes)" error.

- (gnome) I did not fix this client because it is
very old (it lacks big face support at all) and it is
not even compilable.

- (gtk/gtk2+gdk/sdl) Previously did crash in -cache
mode if a question mark face was displayed as a fog of
war tile.

- (gtk/gtk2) Previously did not initialize the
question mark face for fog of war display.

server.diff contains the following changes:

- Now clears the map state when sending a newmap command.

- The mapredraw command now is non-functional -- now it
is ignored by the server. This is necessary because it
results in differing map views of client and server.

- Increase MAX_HEAD_OFFSET to 8 because a Demon Lord is
4x8 tiles big. It is not yet a big face but that
probably will change.

- Previously did not properly clear big faces.

- Now properly clears the newly visible area when
scrolling the map. Previously sometimes obsolete
information was scrolled into the newly visible area.

- Remove a few redundant or unused conditions and
statements.

- Fix uninitialized variable.

- Fix out of bounds array access.

Discussion

  • Andreas Kirschbaum

    Diff against client repository; fixes client display logic

     
  • Andreas Kirschbaum

    • summary: Fix map display errors fog big faces --> Fix map display errors for big faces
     
  • Andreas Kirschbaum

    Diff against server repository; fixes server display logic

     
  • Mark Wedel

    Mark Wedel - 2005-08-29

    Logged In: YES
    user_id=98826

    At a very quick glance, looks OK.

    Only note would be that the new files should get the standard
    crossfire banner (GPL license, contact, etc).

     
  • Andreas Kirschbaum

    Logged In: YES
    user_id=707817

    Your patch has been applied to CVS.
    It may take a few hours for this change to go from the
    developper cvs to the anonymous cvs.

    You can find informations on how to download the latest
    anonymous cvs there:
    http://sourceforge.net/cvs/?group_id=13833

    Thanks for helping the crossfire team.

     
  • Andreas Kirschbaum

    • status: open --> closed-accepted
     
  • Kevin Zheng

    Kevin Zheng - 2014-01-18
    • Status: closed-accepted --> closed
     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.