X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fimage.c;h=85a73a54f2a29322acb80ce9e4b9fab4f779ebd7;hb=db0cf963a41d958dc11ee1d3cfb2b1f88cba7f76;hp=09ec64f6f869f423e7192d3c3ded3bce679cc6d6;hpb=494b886d5c5041013ea361a12a07d7cd87551d52;p=rocksndiamonds.git diff --git a/src/libgame/image.c b/src/libgame/image.c index 09ec64f6..85a73a54 100644 --- a/src/libgame/image.c +++ b/src/libgame/image.c @@ -1,7 +1,7 @@ /*********************************************************** * Artsoft Retro-Game Library * *----------------------------------------------------------* -* (c) 1994-2002 Artsoft Entertainment * +* (c) 1994-2006 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -31,13 +31,6 @@ Image *newImage(unsigned int width, unsigned int height, unsigned int depth) unsigned int bytes_per_pixel = (depth + 7) / 8; int i; -#if 0 - if (depth > 8) - Error(ERR_EXIT, "images with more than 256 colors are not supported"); - - depth = 8; -#endif - image = checked_calloc(sizeof(Image)); image->data = checked_calloc(width * height * bytes_per_pixel); image->width = width; @@ -392,7 +385,7 @@ XImageInfo *Image_to_Pixmap(Display *display, int screen, Visual *visual, if (!private_cmap) { if (options.verbose) - Error(ERR_RETURN, "switching to private colormap"); + Error(ERR_INFO, "switching to private colormap"); /* we just filled up the default colormap -- get a private one which contains all already allocated colors */ @@ -493,7 +486,7 @@ XImageInfo *Image_to_Pixmap(Display *display, int screen, Visual *visual, break; default: - Error(ERR_RETURN,"DirectColor, TrueColor or PseudoColor display needed"); + Error(ERR_INFO,"DirectColor, TrueColor or PseudoColor display needed"); SetError(error, "display class not supported"); return NULL; @@ -567,7 +560,7 @@ XImageInfo *Image_to_Pixmap(Display *display, int screen, Visual *visual, } default: - Error(ERR_RETURN, "RGB or TrueColor image needed"); + Error(ERR_INFO, "RGB or TrueColor image needed"); SetError(error, "image type not supported"); return NULL; @@ -601,7 +594,7 @@ XImageInfo *Image_to_Pixmap(Display *display, int screen, Visual *visual, } default: - Error(ERR_RETURN,"DirectColor, TrueColor or PseudoColor display needed"); + Error(ERR_INFO,"DirectColor, TrueColor or PseudoColor display needed"); SetError(error, "display class not supported"); return NULL; @@ -836,7 +829,7 @@ static void *Load_PCX(char *filename) ImageInfo *img_info; #if 0 - printf("loading PCX file '%s'\n", filename); + printf("::: loading PCX file '%s'\n", filename); #endif img_info = checked_calloc(sizeof(ImageInfo)); @@ -937,7 +930,7 @@ int getImageIDFromToken(char *token) int i; for (i = 0; i < num_list_entries; i++) - if (strcmp(file_list[i].token, token) == 0) + if (strEqual(file_list[i].token, token)) return i; return -1; @@ -1036,7 +1029,7 @@ void InitImageList(struct ConfigInfo *config_list, int num_file_list_entries, void ReloadCustomImages() { #if 0 - printf("DEBUG: reloading images '%s' ...\n", artwork.gfx_current_identifier); + printf("::: reloading images '%s' ...\n", artwork.gfx_current_identifier); #endif LoadArtworkConfig(image_info); @@ -1054,16 +1047,19 @@ void CreateImageWithSmallImages(int pos, int zoom_factor) img_info->contains_small_images = TRUE; img_info->scaled_up = TRUE; +} -#if 0 - if (zoom_factor) - printf("CreateImageWithSmallImages: '%s' zoomed by factor %d\n", - img_info->source_filename, zoom_factor); -#endif +void ScaleImage(int pos, int zoom_factor) +{ + ImageInfo *img_info = getImageInfoEntryFromImageID(pos); -#if 0 - printf("CreateImageWithSmallImages: '%s' done\n", img_info->source_filename); -#endif + if (img_info == NULL || img_info->scaled_up) + return; + + if (zoom_factor != 1) + ScaleBitmap(img_info->bitmap, zoom_factor); + + img_info->scaled_up = TRUE; } void FreeAllImages()