diff --git a/src/layers.c b/src/layers.c index b406bc46..6ed0e962 100644 --- a/src/layers.c +++ b/src/layers.c @@ -106,9 +106,9 @@ void Layer_activate(int layer, short side) Display_cursor(); } -static int Layers_max(void) +int Layers_max(enum IMAGE_MODES mode) { - switch (Main.backups->Pages->Image_mode) + switch (mode) { case IMAGE_MODE_LAYERED: return MAX_NB_LAYERS; @@ -125,7 +125,7 @@ void Button_Layer_add(int btn) { Hide_cursor(); - if (Main.backups->Pages->Nb_layers < Layers_max()) + if (Main.backups->Pages->Nb_layers < Layers_max(Main.backups->Pages->Image_mode)) { // Backup with unchanged layers Backup_layers(LAYER_NONE); @@ -149,7 +149,7 @@ void Button_Layer_duplicate(int btn) { Hide_cursor(); - if (Main.backups->Pages->Nb_layers < Layers_max()) + if (Main.backups->Pages->Nb_layers < Layers_max(Main.backups->Pages->Image_mode)) { // Backup with unchanged layers Backup_layers(LAYER_NONE); diff --git a/src/layers.h b/src/layers.h index db6e449e..3fe79016 100644 --- a/src/layers.h +++ b/src/layers.h @@ -22,6 +22,7 @@ #ifndef LAYERS_H__ #define LAYERS_H__ +int Layers_max(enum IMAGE_MODES mode); void Button_Layer_add(int); void Button_Layer_duplicate(int); void Button_Layer_remove(int); diff --git a/src/pages.c b/src/pages.c index c3d7ab51..e5e9d241 100644 --- a/src/pages.c +++ b/src/pages.c @@ -35,6 +35,7 @@ #include "windows.h" #include "tiles.h" #include "graph.h" +#include "layers.h" // -- Layers data @@ -1315,7 +1316,6 @@ void End_of_modification(void) /// Add a new layer to latest page of a list. Returns 0 on success. byte Add_layer(T_List_of_pages *list, int layer) { - int max[] = {MAX_NB_LAYERS, MAX_NB_FRAMES, 5}; T_Page * source_page; T_Page * new_page; byte * new_image; @@ -1323,8 +1323,8 @@ byte Add_layer(T_List_of_pages *list, int layer) int duration; source_page = list->Pages; - - if (list->Pages->Nb_layers >= max[list->Pages->Image_mode]) // MAX_NB_LAYERS + + if (list->Pages->Nb_layers >= Layers_max(list->Pages->Image_mode)) // MAX_NB_LAYERS return 1; // Keep the position reasonable