diff --git a/src/filesel.c b/src/filesel.c index 5540d9eb..3a1562df 100644 --- a/src/filesel.c +++ b/src/filesel.c @@ -1436,6 +1436,8 @@ byte Button_Load_or_Save(T_Selector_settings *settings, byte load, T_IO_Context { if (context->Type == CONTEXT_MAIN_IMAGE) Open_window(310,200,"Load picture"); + else if (context->Type == CONTEXT_PALETTE) + Open_window(310,200,"Load palette"); else Open_window(310,200,"Load brush"); Window_set_normal_button(198,180,51,14,"Load",0,1,SDLK_RETURN); // 1 diff --git a/src/loadsave.c b/src/loadsave.c index 9d462610..8c21063d 100644 --- a/src/loadsave.c +++ b/src/loadsave.c @@ -855,6 +855,18 @@ void Load_image(T_IO_Context *context) Download_infos_page_main(Main.backups->Pages); } } + else if (context->Type == CONTEXT_PALETTE) + { + if ( File_error!=1) + { + Set_palette(context->Palette); + // Make a backup step + Backup_layers(LAYER_NONE); + // Copy the loaded palette + memcpy(Main_palette, context->Palette, sizeof(T_Palette)); + //memcpy(Main_backups->Pages->Palette, context->Palette, sizeof(T_Palette)); + } + } else if (context->Type == CONTEXT_BRUSH && File_error==0) { diff --git a/src/palette.c b/src/palette.c index 19d99490..ce0887bd 100644 --- a/src/palette.c +++ b/src/palette.c @@ -2612,7 +2612,13 @@ void Button_Palette(void) break; } - case 26: // Load palette (TODO) + case 26: // Load palette + memcpy(backup_palette, Main_palette, sizeof(T_Palette)); + Load_picture(CONTEXT_PALETTE); + memcpy(working_palette, Main_palette, sizeof(T_Palette)); + memcpy(temp_palette,working_palette,sizeof(T_Palette)); + memcpy(Main_palette, backup_palette, sizeof(T_Palette)); + need_to_remap=1; break; case 27: // Save palette