Mercurial > hg > forks > multipaint-js
diff multipaint.pde @ 29:249c4f5742f3
Refactor the import/export stuff a bit and the GUI bits for JS.
Still a work in progress, only "format" export/import works now.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 04 Jul 2018 10:36:43 +0300 |
parents | edcf9039552b |
children | 2eda69cb8ac0 |
line wrap: on
line diff
--- a/multipaint.pde Wed Jul 04 10:34:12 2018 +0300 +++ b/multipaint.pde Wed Jul 04 10:36:43 2018 +0300 @@ -21,9 +21,8 @@ int g_animx, g_animy, g_animframes, g_animno, g_animtime, g_animspeed; int g_omag, g_bordh, g_bordv, g_keymacpos, g_framec; -String path = "", refpath = "", filename = "", elename = "", sfilename = "", refname = "", g_expname = "", g_fmtname = ""; -String exporttxtname = "", exportemuname = "", exportfmtname; boolean fileselect = false, saveas = false, refselect = false, g_control = false, g_shift = false, exporttxt = false, importfmt = false, exportemu = false, exportfmt = false; +String path = "", refpath = "", filename = "", elename = "", sfilename = "", refname = "", g_expname = ""; String g_keymacro = ""; int[] g_r = new int[266]; @@ -147,7 +146,7 @@ g_button = LEFT; g_data[int('f')] = 1; g_data[int('g')] = 1; - if (fexists("icons.bin") == true) g_icons = loadBytes("icons.bin"); + g_icons = mpLoadBinaryFile("icons.bin"); set_tool(3); g_gridx = 8; @@ -199,23 +198,9 @@ message("*"); } -void store(String name) { - String[] m1 = match(name, ".png"); - if (m1 != null) { - if (g_data[int('Q')] == 0) { - export_image_sans_border(name); - } - if (g_data[int('Q')] == 1) { - export_image(name); - } - return; - } - //save the picture page g_map[], make sure some essential parameters are correct - g_map[3] = byte(machine); - g_map[5] = byte(MX); - g_map[7] = byte(MY); - saveBytes(name, g_map); +void mpSetTitle(String str) { + console.log("TITLE: '" + str + "'"); } @@ -388,55 +373,6 @@ } -void restore(String name) { - //load the picture page g_map[] with parameters - boolean im_import = false; - if (fexists(name) == false) { - message("NO FILE"); - return; - } - String[] m1 = match(name, ".png"); - if (m1 != null) im_import = true; - String[] m2 = match(name, ".PNG"); - if (m2 != null) im_import = true; - String[] m3 = match(name, ".jpg"); - if (m3 != null) im_import = true; - String[] m4 = match(name, ".JPG"); - if (m4 != null) im_import = true; - - if (im_import) { - int lefth = g_farge; - int righth = g_backg; - storeparameters(); - g_data[int('d')] = 0; - g_data[int('t')] = 0; - g_data[int('b')] = 1; //old IQ - import_image(name); - restoreparameters(); - refreshpalette(); - refresh(); - g_boxreconstruct = 2; - message("Image|loaded"); - selectcolor(0, lefth); - selectcolor(1, righth); - return; - } - g_map = loadBytes(name); - if (g_map[3] != machine) { - message("Wrong|machine!"); - restore_undo(); - return; - } - refreshpalette(); - consistency(); - g_farge = int(g_realfront); - g_ofarge = g_farge; - g_backg = int(g_realback); - sussborder(); - message("Page|loaded"); -} - - void draw() { int msx, msy; @@ -513,151 +449,119 @@ if (g_msgctr > 0) g_msgctr--; // UI file operations - if (fileselect) // Fileselect "event" for Load + if (fileselect) // Fileselect "event" for Load + { + mpLoadFileSelector(".mpe, .MPE", + function (fh, fdata) { - String s = fileselector(path, LOADIMG); - if (s != null) { + if (mpSetNativeImage(fdata)) + { store_undo(); - if (g_spare == 0) { - filename = s; - frame.setTitle(filename); - restore(s); - } - if (g_spare == 1) { - restore(s); - sfilename = s; - frame.setTitle(sfilename); - } + mpSetTitle(fh.name); + if (g_spare == 0) + filename = fh.name; + else + sfilename = fh.name; + refresh(); } - fileselect = false; - g_shift = false; - g_control = false; - } - if (saveas) // Fileselect "event" for Save as - { - String s = fileselector(path, SAVEIMG); - String orig = ""; - int kuva = 0; - if (g_spare == 0) orig = filename; - if (g_spare == 1) orig = sfilename; - if (s != null) { - // Add extension if needed - if (s.length() <= 2) s += ".bin"; - s = s + ".dummy.dummy"; - String[] l = split(s, '.'); - String[] m1 = match(l[1], "png"); - String[] m2 = match(l[1], "PNG"); - String[] m3 = match(l[1], "bin"); - String[] m4 = match(l[1], "BIN"); - if (m1 != null || m2 != null) kuva = 1; - if (m1 == null && m2 == null && m3 == null && m4 == null) l[1] = "bin"; + }); + + fileselect = false; + g_shift = false; + g_control = false; + } + + if (saveas) // Fileselect "event" for Save as + { + String s = fileselector(path, SAVEIMG); + String orig = ""; + int kuva = 0; + if (g_spare == 0) orig = filename; + if (g_spare == 1) orig = sfilename; - if (g_spare == 0) { - filename = l[0] + "." + l[1]; - store(filename); - if (kuva == 1) filename = orig; - frame.setTitle(filename); - } - if (g_spare == 1) { - sfilename = l[0] + "." + l[1]; - store(sfilename); - if (kuva == 1) sfilename = orig; - frame.setTitle(sfilename); - } + if (s != null) { + // Add extension if needed + if (s.length() <= 2) s += ".bin"; + s = s + ".dummy.dummy"; + String[] l = split(s, '.'); + String[] m1 = match(l[1], "png"); + String[] m2 = match(l[1], "PNG"); + String[] m3 = match(l[1], "bin"); + String[] m4 = match(l[1], "BIN"); + if (m1 != null || m2 != null) kuva = 1; + if (m1 == null && m2 == null && m3 == null && m4 == null) l[1] = "bin"; - message("SAVED"); - if (kuva == 1) message("EXPORTED|PNG"); + if (g_spare == 0) { + filename = l[0] + "." + l[1]; + mpSavePNGImage(filename); + if (kuva == 1) filename = orig; + mpSetTitle(filename); + } else { + sfilename = l[0] + "." + l[1]; + mpSavePNGImage(sfilename); + if (kuva == 1) sfilename = orig; + mpSetTitle(sfilename); } - saveas = false; - g_shift = false; - g_control = false; - } - if (exporttxt) { - String s = fileselector(path, SAVETXT); - if (s != null) { - // Add extension if needed - if (s.length() <= 2) s += ".txt"; - s = s + ".dummy.dummy"; - String[] l = split(s, '.'); - l[1] = "txt"; - if (g_spare == 0) { - exportemuname = l[0] + "." + l[1]; - machine_export(exportemuname, 1); - } - if (g_spare == 1) { - exportemuname = l[0] + "." + l[1]; - machine_export(exportemuname, 1); - } - } - exporttxt = false; - g_shift = false; - g_control = false; + + message("SAVED"); + if (kuva == 1) message("EXPORTED|PNG"); } - if (exportemu) { - String s = fileselector(path, SAVEEMU); - if (s != null) { - // Add extension if needed - if (s.length() <= 2) s += "." + g_expname; - s = s + ".dummy.dummy"; - String[] l = split(s, '.'); - l[1] = g_expname; - if (g_spare == 0) { - exportemuname = l[0] + "." + l[1]; - machine_export(exportemuname, 0); - //println(exportemuname); - } - if (g_spare == 1) { - exportemuname = l[0] + "." + l[1]; - machine_export(exportemuname, 0); - } + saveas = false; + g_shift = false; + g_control = false; + } + + if (exporttxt) { + if (g_spare == 0) { + exportemuname = filename + "." + l[1]; + } else { + exportemuname = sfilename + "." + l[1]; + } - //message("EXPORTED"); - } - exportemu = false; - g_shift = false; - g_control = false; + machine_export(exportemuname, 1); + + exporttxt = false; + g_shift = false; + g_control = false; + } + + if (exportemu) { + if (g_spare == 0) { + exportemuname = filename + "." + l[1]; + } else { + exportemuname = sfilename + "." + l[1]; } - if (importfmt) { - String s = fileselector(path, LOADFMT); - if (s != null) { - store_undo(); - format_import(s); - refresh(); - } - importfmt = false; - g_shift = false; - g_control = false; - } - if (exportfmt) { - String s = fileselector(path, SAVEFMT); - if (s != null) { - boolean koalakludge = false; - // Add extension if needed - if (s.indexOf(".kla") > -1 && machine == C64M) koalakludge = true; - if (s.length() <= 2) s += "." + g_fmtname; - s = s + ".dummy.dummy"; - String[] l = split(s, '.'); - l[1] = g_formatextension; + + machine_export(exportemuname, 0); + + exportemu = false; + g_shift = false; + g_control = false; + } - if (koalakludge) l[1] = "kla"; + if (importfmt) { + mpLoadFileSelector(".aas, .AAS", + function (fh, fdata) + { + store_undo(); + filename = fh.name; + format_import(fdata); + refresh(); + }); - if (g_spare == 0) { - exportfmtname = l[0] + "." + l[1]; - format_export(exportfmtname); - //println(exportemuname); - } - if (g_spare == 1) { - exportfmtname = l[0] + "." + l[1]; - format_export(exportfmtname); - } + importfmt = false; + g_shift = false; + g_control = false; + } - //message("EXPORTED"); - } - exportfmt = false; - g_shift = false; - g_control = false; - } + if (exportfmt) { + format_export(filename +"_"+ (g_spare ? "spare" : "main") +".aas"); + + exportfmt = false; + g_shift = false; + g_control = false; + } //if(g_framec==1){saveFrame("frames/out-######.png");} //g_framec++;if(g_framec>1)g_framec=0;