]> bicyclesonthemoon.info Git - ott/enhance/blobdiff - pal_mix.c
Partial CGI update bacause git disagrees with me.
[ott/enhance] / pal_mix.c
index 973982c2e8f0f1a4a716b55e41323e9fd81ba4d4..8a713aa6a9bad162ff1575c8dfec9de79d9811b4 100644 (file)
--- a/pal_mix.c
+++ b/pal_mix.c
@@ -1,7 +1,7 @@
 /*
 pal_mix.c
 The tool to hide two indexed images iside one
-30.11.2022
+01.12.2022
 
 Copyright (C) 2015, 2022  Balthasar SzczepaƄski
 
@@ -51,9 +51,9 @@ int subtool_pal_mix (int argc, char **argv, int argi, char **err)
        ILint xyf0[3] = {0, 0, 0};
        struct IL_full_info info[3];
        FLAG_TYPE flags[3] = {
-               MUST_BE_INDEXED | NOT_WRITABLE | OK_PALETTE_ONLY,
-               MUST_BE_INDEXED | NOT_WRITABLE | OK_PALETTE_ONLY,
-               MUST_BE_INDEXED | NOT_READABLE | OK_PALETTE_ONLY
+               MUST_BE_INDEXED | NOT_WRITABLE | OK_PALETTE_ONLY | CAN_BE_MULTIPLE,
+               MUST_BE_INDEXED | NOT_WRITABLE | OK_PALETTE_ONLY | CAN_BE_MULTIPLE,
+               MUST_BE_INDEXED | NOT_READABLE | OK_PALETTE_ONLY | CAN_BE_MULTIPLE
        };
        ILubyte new_pal[0x100 * 4];
        struct rel_data data;
@@ -78,6 +78,13 @@ int subtool_pal_mix (int argc, char **argv, int argi, char **err)
        }
        data.p = data.p0 + data.p1;
        
+       r = reserve_pictures(3);
+       if (r)
+       {
+               *err = CREATE_FAILED;
+               return r;
+       }
+       
        r = load_picture(0, argv[argi], &(info[0]), &(flags[0]));
        if (r)
        {
@@ -136,13 +143,18 @@ int subtool_pal_mix (int argc, char **argv, int argi, char **err)
        
        for (i=0; i<=info[2].num_images; ++i)
        {
-               set_palette (
-               2,
-               new_pal,
-               info[0].palette_num_cols * info[1].palette_num_cols * info[0].palette_bpp,
-               info[0].palette_type,
-               i
+               r = set_palette (
+                       2,
+                       new_pal,
+                       info[0].palette_num_cols * info[1].palette_num_cols * info[0].palette_bpp,
+                       info[0].palette_type,
+                       i
                );
+               if (r!=0)
+               {
+                       *err = CONVERT_FAILED;
+                       return EIO;
+               }
        }
        
        r = perform_action_palette_mix(