fix screenshot corruption, use PhysicsFS to check for existing screenshots
authorChris Taylor <chris@icculus.org>
Sun, 26 Nov 2006 06:13:35 +0000 (06:13 +0000)
committerChris Taylor <chris@icculus.org>
Sun, 26 Nov 2006 06:13:35 +0000 (06:13 +0000)
ChangeLog
arch/ogl/gr.c

index 622e107..fa5fbe8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,7 +3,10 @@
        * main/game.c, main/gamerend.c: small brace tidy up to allow
        a source code editor to list all the functions
 
-2006-07-27  Chris Taylor  <chris@icculus.org>
+       * arch/ogl/gr.c: fix screenshot corruption, use PhysicsFS to check
+       for existing screenshots
+
+2006-07-29  Chris Taylor  <chris@icculus.org>
 
        * main/inferno.c, main/titles.c, main/titles.h:
        move titles, loading screen and order form showing to titles.c
index 692c5db..b083712 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: gr.c,v 1.44 2005-02-25 06:31:53 btb Exp $ */
+/* $Id: gr.c,v 1.45 2006-11-26 06:13:35 chris Exp $ */
 /*
  *
  * OGL video functions. - Added 9/15/99 Matthew Mueller
@@ -750,8 +750,8 @@ void write_bmp(char *savename,int w,int h,unsigned char *buf){
                
                //write .TGA header.
                PHYSFS_write(f, targaMagic, sizeof(targaMagic), 1);
-               PHYSFS_writeSLE32(f, w);
-               PHYSFS_writeSLE32(f, h);
+               PHYSFS_writeSLE16(f, w);
+               PHYSFS_writeSLE16(f, h);
                PHYSFSX_writeU8(f, 24); // 24 bpp
                PHYSFSX_writeU8(f, 0);  // no attribute bits, origin is lowerleft, no interleave
                
@@ -796,14 +796,13 @@ void save_screen_shot(int automap_flag)
        stop_time();
 
 //added/changed on 10/31/98 by Victor Rachels to fix overwrite each new game
-       if ( savenum == 9999 ) savenum = 0;
-       sprintf(savename,"scrn%04d.tga",savenum++);
-
-       while(!access(savename,0))
+       do
        {
-               if ( savenum == 9999 ) savenum = 0;
-               sprintf(savename,"scrn%04d.tga",savenum++);
-       }
+               if (savenum == 9999)
+                       savenum = 0;
+               sprintf(savename, "scrn%04d.tga", savenum++);
+       } while (PHYSFS_exists(savename));
+
        sprintf( message, "%s '%s'", TXT_DUMPING_SCREEN, savename );
 //end this section addition/change - Victor Rachels