From 47a265745ca454f1dbfa50e2a1c6eefbfe72d362 Mon Sep 17 00:00:00 2001 From: David Capello Date: Sun, 12 Dec 2010 12:11:44 -0300 Subject: [PATCH] Fix Quantize command call (sprite was locked). --- src/commands/cmd_palette_editor.cpp | 36 +++++++++++++++-------------- src/effect/images_ref.cpp | 15 ++++++------ src/effect/images_ref.h | 2 +- src/util/quantize.cpp | 2 +- src/util/quantize.h | 2 +- 5 files changed, 30 insertions(+), 27 deletions(-) diff --git a/src/commands/cmd_palette_editor.cpp b/src/commands/cmd_palette_editor.cpp index 0da57ba88..eb6a4ad1a 100644 --- a/src/commands/cmd_palette_editor.cpp +++ b/src/commands/cmd_palette_editor.cpp @@ -706,24 +706,26 @@ static bool sort_by_criteria(Palette* palette, int from, int to, JList selected_ static void quantize_command(JWidget widget) { - const CurrentSpriteReader& sprite(UIContext::instance()); + Palette* palette = NULL; - if (sprite == NULL) { - jalert("Error<getImgType() != IMAGE_RGB) { - jalert("Error<getImgType() != IMAGE_RGB) { + jalert("Error<setPalette(newPalette, false); } } - catch (...) { - // Ignore + catch (ase_exception& e) { + e.show(); } } diff --git a/src/effect/images_ref.cpp b/src/effect/images_ref.cpp index caba5d3ff..b3b62a7e3 100644 --- a/src/effect/images_ref.cpp +++ b/src/effect/images_ref.cpp @@ -29,14 +29,14 @@ #include "raster/sprite.h" #include "raster/stock.h" -static ImageRef* images_ref_get_from_layer(Sprite* sprite, Layer* layer, int target, bool write); +static ImageRef* images_ref_get_from_layer(Layer* layer, int target, bool write); -ImageRef* images_ref_get_from_sprite(Sprite* sprite, int target, bool write) +ImageRef* images_ref_get_from_sprite(const Sprite* sprite, int target, bool write) { Layer* layer = target & TARGET_ALL_LAYERS ? sprite->getFolder(): sprite->getCurrentLayer(); - return images_ref_get_from_layer(sprite, layer, target, write); + return images_ref_get_from_layer(layer, target, write); } void images_ref_free(ImageRef* image_ref) @@ -49,7 +49,7 @@ void images_ref_free(ImageRef* image_ref) } } -static ImageRef* images_ref_get_from_layer(Sprite* sprite, Layer* layer, int target, bool write) +static ImageRef* images_ref_get_from_layer(Layer* layer, int target, bool write) { #define ADD_IMAGES(images) \ { \ @@ -70,14 +70,15 @@ static ImageRef* images_ref_get_from_layer(Sprite* sprite, Layer* layer, int tar { \ ImageRef* image_ref = jnew(ImageRef, 1); \ \ - image_ref->image = layer->getSprite()->getStock()->getImage(cel->image); \ + image_ref->image = sprite->getStock()->getImage(cel->image); \ image_ref->layer = layer; \ image_ref->cel = cel; \ image_ref->next = NULL; \ \ ADD_IMAGES(image_ref); \ } - + + const Sprite* sprite = layer->getSprite(); ImageRef* first_image = NULL; ImageRef* last_image = NULL; int frame = sprite->getCurrentFrame(); @@ -112,7 +113,7 @@ static ImageRef* images_ref_get_from_layer(Sprite* sprite, Layer* layer, int tar LayerIterator end = static_cast(layer)->get_layer_end(); for (; it != end; ++it) { - sub_images = images_ref_get_from_layer(sprite, *it, target, write); + sub_images = images_ref_get_from_layer(*it, target, write); if (sub_images != NULL) ADD_IMAGES(sub_images); } diff --git a/src/effect/images_ref.h b/src/effect/images_ref.h index 4af2476c1..347c5c45c 100644 --- a/src/effect/images_ref.h +++ b/src/effect/images_ref.h @@ -32,7 +32,7 @@ struct ImageRef ImageRef* next; }; -ImageRef* images_ref_get_from_sprite(Sprite* sprite, int target, bool write); +ImageRef* images_ref_get_from_sprite(const Sprite* sprite, int target, bool write); void images_ref_free(ImageRef* image_ref); #endif diff --git a/src/util/quantize.cpp b/src/util/quantize.cpp index a5567643c..1eeaefc9a 100644 --- a/src/util/quantize.cpp +++ b/src/util/quantize.cpp @@ -43,7 +43,7 @@ void sprite_quantize(Sprite *sprite) delete palette; } -void sprite_quantize_ex(Sprite *sprite, Palette *palette) +void sprite_quantize_ex(const Sprite *sprite, Palette *palette) { Image* flat_image; Image** image_array; diff --git a/src/util/quantize.h b/src/util/quantize.h index a635215bb..cd2d74389 100644 --- a/src/util/quantize.h +++ b/src/util/quantize.h @@ -24,7 +24,7 @@ class Sprite; class Stock; void sprite_quantize(Sprite* sprite); -void sprite_quantize_ex(Sprite* sprite, Palette* palette); +void sprite_quantize_ex(const Sprite* sprite, Palette* palette); #endif