rnd-20030803-2-src
authorHolger Schemel <info@artsoft.org>
Sun, 3 Aug 2003 15:35:04 +0000 (17:35 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:43:01 +0000 (10:43 +0200)
Makefile
src/conftime.h
src/libgame/image.c
src/libgame/pcx.c
src/libgame/system.c

index 0c22aefb3fa9bcb1696e9a9c507b3dde989eaf00..bdd285b5e775938c501bd4dd53fd57723470f574 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -49,8 +49,8 @@ CROSS_PATH_WIN32=/usr/local/cross-tools/i386-mingw32msvc
 SRC_DIR = src
 MAKE_CMD = $(MAKE) -C $(SRC_DIR)
 
-DEFAULT_TARGET = x11
-DEFAULT_TARGET = sdl
+DEFAULT_TARGET = x11
+DEFAULT_TARGET = sdl
 
 all:
        @$(MAKE_CMD) TARGET=$(DEFAULT_TARGET)
index 8793f0154e725214d6698538c932704a53ffe946..2651124bd343fce1ea8976d60bdcef0f1d135a82 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-08-03 00:37]"
+#define COMPILE_DATE_STRING "[2003-08-03 17:34]"
index 95e098e22c578ccf42b14cc161c2fa89fbd3b983..f06a126ec6171fbcdc74014af811cc39c79ca202 100644 (file)
@@ -586,9 +586,13 @@ void ZoomPixmap(Display *display, GC gc, Pixmap src_pixmap, Pixmap dst_pixmap,
   int zoom_factor = src_width / dst_width;     /* currently very limited! */
   int row_skip, col_skip;
 
+  /* adjust source image size to integer multiple of destination image size */
+  src_width  = dst_width  * zoom_factor;
+  src_height = dst_height * zoom_factor;
+
   /* copy source pixmap to temporary image */
-  src_ximage = XGetImage(display, src_pixmap, 0, 0,
-                        src_width, src_height, AllPlanes, ZPixmap);
+  src_ximage = XGetImage(display, src_pixmap, 0, 0, src_width, src_height,
+                        AllPlanes, ZPixmap);
 
   bits_per_pixel = src_ximage->bits_per_pixel;
   bytes_per_pixel = (bits_per_pixel + 7) / 8;
@@ -609,12 +613,12 @@ void ZoomPixmap(Display *display, GC gc, Pixmap src_pixmap, Pixmap dst_pixmap,
   /* scale image down by scaling factor 'zoom_factor' */
   for (y=0; y < src_height; y += zoom_factor, src_ptr += row_skip)
     for (x=0; x < src_width; x += zoom_factor, src_ptr += col_skip)
-      for (i=0; i<bytes_per_pixel; i++)
+      for (i=0; i < bytes_per_pixel; i++)
        *dst_ptr++ = *src_ptr++;
 
   /* copy scaled image to destination pixmap */
   XPutImage(display, dst_pixmap, gc, dst_ximage, 0, 0, 0, 0,
-           MIN(src_width, dst_width), MIN(src_height, dst_height));
+           dst_width, dst_height);
 
   /* free temporary images */
   XDestroyImage(src_ximage);
index 7756b240f1831041170475fd12a52277043d3ee1..c7b308b0900a4d56644f73823e7248c173131fb3 100644 (file)
@@ -19,7 +19,7 @@
 #include "misc.h"
 
 
-#define PCX_DEBUG              FALSE
+#define PCX_DEBUG              0
 
 #define PCX_MAGIC              0x0a    /* first byte in a PCX image file    */
 #define PCX_SUPPORTED_VERSION  5       /* last acceptable version number    */
@@ -167,8 +167,12 @@ static boolean PCX_ReadBitmap(FILE *file, struct PCX_Header *pcx, Image *image)
 
          for (j = 7; j >= 0; j--)
          {
-           byte bit = (value >> j) & 1;
+           byte bit;
 
+           if (i * 8 + j >= width)     /* skip padding bits */
+             continue;
+
+           bit = (value >> j) & 1;
            bitmap_ptr[x++] |= bit << plane;
          }
        }
@@ -332,6 +336,7 @@ Image *Read_PCX_to_Image(char *filename)
 #if PCX_DEBUG
   if (options.verbose)
   {
+    printf("\n");
     printf("%s is a %dx%d PC Paintbrush image\n", filename, width, height);
     printf("depth: %d\n", depth);
     printf("bits_per_pixel: %d\n", pcx.bits_per_pixel);
@@ -371,7 +376,6 @@ Image *Read_PCX_to_Image(char *filename)
   if (pcx_depth == 8)
   {
     /* determine number of used colormap entries for 8-bit PCX images */
-    image->rgb.used = 0;
     for (i=0; i<PCX_MAXCOLORS; i++)
       if (image->rgb.color_used[i])
        image->rgb.used++;
@@ -379,7 +383,7 @@ Image *Read_PCX_to_Image(char *filename)
 
 #if PCX_DEBUG
   if (options.verbose)
-    printf("Read_PCX_to_Image: %d colors found\n", image->rgb.used);
+    printf("Read_PCX_to_Image: %d colors in colormap\n", image->rgb.used);
 #endif
 
   return image;
index 04d06e69e6979255cbe12e37936971b5db213167..4a4c4d352e077da8bc0152e349a08220a01ef0ca 100644 (file)
@@ -821,7 +821,7 @@ void CreateBitmapWithSmallBitmaps(Bitmap *src_bitmap)
   src_height = src_bitmap->height;
 
   tmp_width  = src_width;
-  tmp_height = src_height + src_height / 2;
+  tmp_height = src_height + (src_height + 1) / 2;     /* prevent odd height */
 
   tmp_bitmap = CreateBitmap(tmp_width, tmp_height, DEFAULT_DEPTH);
 
@@ -838,9 +838,11 @@ void CreateBitmapWithSmallBitmaps(Bitmap *src_bitmap)
   FreeBitmap(tmp_bitmap_8);
 
 #if defined(TARGET_SDL)
+  /* !!! what about the old src_bitmap->surface ??? FIX ME !!! */
   src_bitmap->surface = tmp_bitmap->surface;
   tmp_bitmap->surface = NULL;
 #else
+  /* !!! see above !!! */
   src_bitmap->drawable = tmp_bitmap->drawable;
   tmp_bitmap->drawable = None;
 #endif