# HG changeset patch # User Matti Hamalainen # Date 1530826781 -10800 # Node ID dffafe05d5208e42b975d89e2306045dc3057134 # Parent 09c1a4aba3054ac470ae46fc213401f31acf5c23 Refactor mpExportFormat() a bit. diff -r 09c1a4aba305 -r dffafe05d520 exporters.pde --- a/exporters.pde Fri Jul 06 00:27:38 2018 +0300 +++ b/exporters.pde Fri Jul 06 00:39:41 2018 +0300 @@ -253,7 +253,7 @@ } -void format_export(String fname) +byte[] mpExportFormat(int subformat) { int val1, val2, val3; int y, y2, yy, x, yp, xp, ad, valu, valu2, bri; @@ -266,7 +266,6 @@ mpExportColorData(40, 25, 65536, 4); //colors mpSetDataOffs(2050); mpExportBitmapData(40, 25); - export_program(fname); } else if (machine == PLUS4M) { // multi botticelli multicolor @@ -287,7 +286,6 @@ mpExportColorData(40, 25, 65536, 7); //lumis mpSetDataOffs(2050); mpExportBitmapData(40, 25); - export_program(fname); } else if (machine == C64) { @@ -297,12 +295,26 @@ mpSetDataOffs(0x1f42); mpExportColorData(40, 25, 65536, 0); mpSetDataOffs(0x232a); - mpWriteByte(int(g_map[0])); - export_program(fname); + mpWriteByte(g_map[0]); } else if (machine == C64M) { - if (fname.indexOf(".kla") >= 0) + if (subformat == 0) + { + // Advanced Art Studio + mpLoadTemplate("multic.ocp"); + mpSetDataOffs(2); + mpExportBitmapData(40, 25); + mpSetDataOffs(0x1f42); + mpExportColorData(40, 25, 65536, 1); + mpSetDataOffs(0x233a); + mpExportColorData(40, 25, 65536 + 2000, 2); + mpSetDataOffs(0x232a); + mpWriteByte(g_map[0]); + mpSetDataOffs(0x232b); + mpWriteByte(g_map[1]); + } + else { // Koala Painter mpLoadTemplate("multic.kla"); @@ -313,24 +325,8 @@ mpSetDataOffs(0x232a); mpExportColorData(40, 25, 65536 + 2000, 2); mpSetDataOffs(0x2712); - mpWriteByte(int(g_map[1] & 0x0f)); + mpWriteByte(g_map[1] & 0x0f); } - else - { - // Advanced Art Studio - mpLoadTemplate("multic.ocp"); - mpSetDataOffs(2); - mpExportBitmapData(40, 25); - mpSetDataOffs(0x1f42); - mpExportColorData(40, 25, 65536, 1); - mpSetDataOffs(0x233a); - mpExportColorData(40, 25, 65536 + 2000, 2); - mpSetDataOffs(0x232a); - mpWriteByte(int(g_map[0])); - mpSetDataOffs(0x232b); - mpWriteByte(int(g_map[1])); - } - export_program(fname); } else if (machine == MSX) { @@ -339,7 +335,6 @@ mpExportBitmapData(32, 24); mpSetDataOffs(7 + (32 * 24 * 8) + 768 + 1280); mpExportColorData(32, 24, 65536, 3); //there's an exception for msx-style - export_program(fname); } else if (machine == SPECTRUM) { @@ -362,11 +357,12 @@ g_map[ad + 6] * 2 + g_map[ad + 7] * 1; - mpWriteByte(int(valu)); + mpWriteByte(valu); } for (y = 0; y < 24; y++) - for (x = 0; x <= 31; x++) { + for (x = 0; x <= 31; x++) + { ad = 65536 + x + y * 256; valu = int(g_map[ad]); valu2 = int(g_map[ad + MX * MY * 8]); @@ -382,10 +378,13 @@ if (bri == 1) { valu += 64; } - mpWriteByte(int(valu + valu2 * 8)); + mpWriteByte(valu + valu2 * 8); } - export_program(fname); } + else + return null; + + return g_template; } diff -r 09c1a4aba305 -r dffafe05d520 multipaint.pde --- a/multipaint.pde Fri Jul 06 00:27:38 2018 +0300 +++ b/multipaint.pde Fri Jul 06 00:39:41 2018 +0300 @@ -534,9 +534,16 @@ if (exportfmt) { - format_export(filename +"_"+ - (g_spare ? "spare" : "main") + - "."+ g_formatext); + tmp = mpExportFormat(0); // XXX TODO + if (tmp != null) + { + mpSaveBinaryFile(filename +"_"+ + (g_spare ? "spare" : "main") +"."+ g_formatext, + tmp); + message("EXPORTED"); + } + else + message("COULD NOT|EXPORT"); exportfmt = false; g_shift = false;