[CF-Devel] cfclient+burning hands+floorless maps

Mark Wedel mwedel at scruz.net
Thu Feb 1 00:31:09 CST 2001


"Pertti Karppinen (OH6KTR)" wrote:
>
     
     
     >
     
      I just found (atleast on sgi O2 box) that when you cast burning hands or
     
     >
     
      similar spells o a map that has no floor tile, it leaves lot of spell images
     
     >
     
      to map. They get erased when You walk over them though.
     
     
 This is now fixed in cvs.

>
     
     
     >
     
      Also, I may completely clueless coder, but why does following code compile
     
     >
     
      without warnings on gcc (client/x11.c at the bottom):
     
     >
     
         for (i=1; i<MAXPIXMAPNUM; i++) {
     
     >
     
         if (pixmaps[i].pixmap && (pixmaps[i].pixmap!=pixmaps[0].pixmap)) {
     
     >
     
             XFreePixmap(display, pixmaps[i].pixmap);
     
     >
     
                 pixmaps[i].pixmap=(Pixmap*)NULL;
     
     >
     
                     if (pixmaps[i].mask) {
     
     >
     
                     XFreePixmap(display, pixmaps[i].mask);
     
     >
     
                     pixmaps[i].mask=(Pixmap*)NULL;
     
     >
     
     
     >
     
      pixmaps[i].pixmap and pixmaps[i].mask are both of type
     
     >
     
      Pixmap, not  Pixmap *.
     
     >
     
      That code looks weird alltogether.
     
     
 Its pretty odd.  I've fixed the cast.  In reality, clearing the pixmap
data/pointer probably should not be needed, as we should not be trying to access
the images in any case.

 But I have made some other enhancements to the client.  Notably, before if you
disconnected from one server, often the client would crash because it would try
to access that pixmap data (because inventory, map, or look window still had
references).  I've added code that now clears all that data.

    
    


More information about the crossfire mailing list