rnd-19990204-3
authorHolger Schemel <info@artsoft.org>
Thu, 4 Feb 1999 19:53:43 +0000 (20:53 +0100)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:33:29 +0000 (10:33 +0200)
src/Makefile
src/init.c
src/msdos.c
src/pcx.c

index 4c0a427baea5f9e3ab285213d2227e6449084447..3735291679c09be9eb9a0e84331b1bf06ec0b814 100644 (file)
@@ -69,9 +69,9 @@ CONFIG = $(CONFIG_GAME_DIR) $(SOUNDS) $(JOYSTICK)     \
         $(CONFIG_SCORE_ENTRIES) $(XPM_INCLUDE_FILE)
 
 # DEBUG = -DDEBUG -g -Wall -ansi -pedantic
-DEBUG = -DDEBUG -g -Wall
+DEBUG = -DDEBUG -g -Wall
 # DEBUG = -O3 -Wall -ansi -pedantic
-DEBUG = -O3 -Wall
+DEBUG = -O3 -Wall
 # DEBUG = -O3
 
 # SYSTEM = -Aa -D_HPUX_SOURCE -Dhpux   # for HP-UX (obsolete)
index 684cdb4d5155beb501d7f40bec251dd051e6418c..7c62ad953e0e56ee95b5c0b3ac99751220b38208 100644 (file)
@@ -497,6 +497,21 @@ void InitGfx()
   }; 
 #endif
 
+#ifdef DEBUG
+#if 0
+  static struct PictureFileInfo test_pic1 =
+  {
+    "RocksFont2",
+    FALSE
+  };
+  static struct PictureFileInfo test_pic2 =
+  {
+    "mouse",
+    FALSE
+  };
+#endif
+#endif
+
   static struct
   {
     int start;
@@ -551,6 +566,19 @@ void InitGfx()
   debug_print_timestamp(0, NULL);      /* initialize timestamp function */
 #endif
 
+#ifdef DEBUG
+#if 0
+  printf("Test: Loading RocksFont2.pcx ...\n");
+  LoadGfx(PIX_SMALLFONT,&test_pic1);
+  printf("Test: Done.\n");
+  printf("Test: Loading mouse.pcx ...\n");
+  LoadGfx(PIX_SMALLFONT,&test_pic2);
+  printf("Test: Done.\n");
+#endif
+#endif
+
+
+
   LoadGfx(PIX_SMALLFONT,&pic[PIX_SMALLFONT]);
   DrawInitText(WINDOW_TITLE_STRING,20,FC_YELLOW);
   DrawInitText(COPYRIGHT_STRING,50,FC_RED);
index 598aa5d2c5b3081c39b1cca2bd0514cacb96eb5d..5090c55c1603ed779928c6373ef0538714583206 100644 (file)
@@ -348,6 +348,11 @@ Window XCreateSimpleWindow(Display *display, Window parent, int x, int y,
   display->screens[display->default_screen].height = YRES;
 
   set_mouse_sprite(display->mouse_ptr);
+
+#if 0
+  set_mouse_sprite_focus(1, 1);
+#endif
+
   set_mouse_speed(1, 1);
   set_mouse_range(display->screens[display->default_screen].x + 1,
                  display->screens[display->default_screen].y + 1,
@@ -577,11 +582,17 @@ static BITMAP *Read_PCX_to_AllegroBitmap(char *filename)
 
   /* read the graphic file in PCX format to internal image structure */
   if ((image = Read_PCX_to_Image(filename)) == NULL)
+  {
+    Error(ERR_RETURN, "Read_PCX_to_Image failed");
     return NULL;
+  }
 
   /* convert internal image structure to allegro bitmap structure */
   if ((bitmap = Image_to_AllegroBitmap(image)) == NULL)
+  {
+    Error(ERR_RETURN, "Image_to_AllegroBitmap failed");
     return NULL;
+  }
 
   set_palette(global_colormap);
 
index 514d30de6041f7683a86e96cffed79e474767357..1c63396a5f04751d8da4f029c6c82366c9597cb7 100644 (file)
--- a/src/pcx.c
+++ b/src/pcx.c
@@ -139,8 +139,9 @@ Image *Read_PCX_to_Image(char *filename)
   file_length = ftell(file);
   rewind(file);
 
-  if (file_length < PCX_HEADER_SIZE + PCX_COLORMAP_SIZE)
+  if (file_length < PCX_HEADER_SIZE)
   {
+    /* PCX file is too short to contain a valid PCX header */
     fclose(file);
     return NULL;
   }
@@ -185,6 +186,7 @@ Image *Read_PCX_to_Image(char *filename)
           filename, pcx.xmax, pcx.ymax,
           pcx.color_planes);
     printf("depth: %d\n", pcx.bits_per_pixel);
+    printf("color_planes: %d\n", pcx.color_planes);
     printf("bytes_per_line: %d\n", pcx.bytes_per_line);
     printf("palette type: %s\n",
           (pcx.palette_type == 1 ? "color" :
@@ -205,6 +207,13 @@ Image *Read_PCX_to_Image(char *filename)
     return NULL;
   }
 
+  if (file_length < PCX_HEADER_SIZE + PCX_COLORMAP_SIZE)
+  {
+    /* PCX file is too short to contain a valid 256 colors colormap */
+    fclose(file);
+    return NULL;
+  }
+
   /* read colormap data */
   if (!PCX_ReadColormap(image, buffer_ptr, buffer_last))
   {