changeset 157:cdfda0354332

Integrate changes from v1.8.2018.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 16 Aug 2018 15:29:01 +0300
parents 5d73681b97eb
children c9515fd7d897
files Interface.pde events.pde
diffstat 2 files changed, 261 insertions(+), 33 deletions(-) [+]
line wrap: on
line diff
--- a/Interface.pde	Thu Aug 16 15:04:39 2018 +0300
+++ b/Interface.pde	Thu Aug 16 15:29:01 2018 +0300
@@ -1356,6 +1356,39 @@
         winsuy = 0;
         fill(32, 32, 32);
     }
+    else
+    if (mmode == 110)
+    {
+        g_ofx = 0;
+        g_ofy = 0;
+        maxx = MX - 1;
+        mayy = MY - 1;
+        winsux = g_windowx;
+        winsuy = g_windowy;
+        mag = 16;
+    } //mini flat aspect
+    else
+    if (mmode == 100)
+    {
+        g_ofx = 0;
+        g_ofy = 0;
+        maxx = MX - 1;
+        mayy = MY - 1;
+        winsux = g_windowx;
+        winsuy = g_windowy;
+        mag = 24;
+    } //normal flat aspect
+    else
+    if (mmode == 120)
+    {
+        g_ofx = 0;
+        g_ofy = 0;
+        maxx = MX - 1;
+        mayy = MY - 1;
+        winsux = g_windowx;
+        winsuy = g_windowy;
+        mag = 32;
+    } //maxi flat aspect
 
     b = 0;
     c = 0;
@@ -1624,28 +1657,234 @@
                         case 22:
                             e_rect(xo * (64 * g_wzoom) + x * (8 * g_wzoom), yo * (64 * g_wzoom) + y * (8 * g_wzoom), 8 * g_wzoom, 8 * g_wzoom, g_rgb[fari]);
                             break;
+
+                        //flat NORMI
+                        case 100:
+                            raddr = (xo * 24 + x * 3) + (yo * 16 + y * 2) * width;
+                            raddr = raddr + g_windowx;
+                            raddr = raddr + (g_windowy) * width;
+
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            break;
+
+                        case 101:
+                            raddr = (xo * 72 + x * 9) + (yo * 48 + y * 6) * width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            pixels[raddr + 6] = ari;
+                            pixels[raddr + 7] = ari;
+                            pixels[raddr + 8] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            pixels[raddr + 6] = ari;
+                            pixels[raddr + 7] = ari;
+                            pixels[raddr + 8] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            pixels[raddr + 6] = ari;
+                            pixels[raddr + 7] = ari;
+                            pixels[raddr + 8] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            pixels[raddr + 6] = ari;
+                            pixels[raddr + 7] = ari;
+                            pixels[raddr + 8] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            pixels[raddr + 6] = ari;
+                            pixels[raddr + 7] = ari;
+                            pixels[raddr + 8] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            pixels[raddr + 6] = ari;
+                            pixels[raddr + 7] = ari;
+                            pixels[raddr + 8] = ari;
+                            break;
+
+                        case 102:
+                            e_rect(xo * (8 * psizex) + x * (psizex), yo * (8 * psizey) + y * (psizey), psizex, psizey, g_rgb[fari]);
+                            break;
+
+                            // flat mini modes = probably redundant
+                            // mini modes
+                        case 110:
+                            raddr = (xo * 24 + x * 3) + (yo * 16 + y * 2) * width;
+                            raddr = raddr + g_windowx;
+                            raddr = raddr + (g_windowy) * width;
+
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            break;
+
+                        case 111:
+                            raddr = (xo * 72 + x * 9) + (yo * 48 + y * 6) * width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            pixels[raddr + 6] = ari;
+                            pixels[raddr + 7] = ari;
+                            pixels[raddr + 8] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            pixels[raddr + 6] = ari;
+                            pixels[raddr + 7] = ari;
+                            pixels[raddr + 8] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            pixels[raddr + 6] = ari;
+                            pixels[raddr + 7] = ari;
+                            pixels[raddr + 8] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            pixels[raddr + 6] = ari;
+                            pixels[raddr + 7] = ari;
+                            pixels[raddr + 8] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            pixels[raddr + 6] = ari;
+                            pixels[raddr + 7] = ari;
+                            pixels[raddr + 8] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            pixels[raddr + 6] = ari;
+                            pixels[raddr + 7] = ari;
+                            pixels[raddr + 8] = ari;
+                            break;
+                        case 112:
+                            e_rect(xo * (8 * psizex) + x * (psizex), yo * (8 * psizey) + y * (psizey), psizex, psizey, g_rgb[fari]);
+                            break;
+
+                        // flat maxi modes
+                        case 120:
+                            raddr = (xo * (8 * 6) + x * 6) + (yo * (8 * 4) + y * 4) * width;
+                            raddr = raddr + g_windowx + g_windowy * width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            raddr = raddr + width;
+                            pixels[raddr] = ari;
+                            pixels[raddr + 1] = ari;
+                            pixels[raddr + 2] = ari;
+                            pixels[raddr + 3] = ari;
+                            pixels[raddr + 4] = ari;
+                            pixels[raddr + 5] = ari;
+                            break;
+                        case 121:
+                            e_rect(xo * (8 * psizex) + x * (psizex), yo * (8 * psizey) + y * (psizey), psizex, psizey, g_rgb[fari]);
+                            break;
+                        case 122:
+                            e_rect(xo * (8 * psizex) + x * (psizex), yo * (8 * psizey) + y * (psizey), psizex, psizey, g_rgb[fari]);
+                            break;
                     }
                 } //one pixel inside pixel row
             } //one pixel row inside char
 
             //draw grid
             //can in principle be non-square
-            if (int(g_data[int('g')]) == 1) {
-                int lapx = chopv(xx * 8, g_gridx);
-                if (lapx == (xx * 8)) {
-                    t_rect(xo * xcmag + winsux, yo * xcmag + winsuy, 1, xcmag, g_rgb[257]);
-                    if (g_gridx == 4) {
-                        t_rect(xo * xcmag + winsux + 4 * psizex, yo * xcmag + winsuy + 1, 1, int(xcmag / 2) - 2, g_rgb[257]);
-                        t_rect(xo * xcmag + winsux + 4 * psizex, yo * xcmag + winsuy + xcmag - int(xcmag / 2) + 2, 1, int(xcmag / 2) - 2, g_rgb[257]);
+            if (int(g_data[int('g')]) == 1)
+            {
+                if (chopv(xx * 8, g_gridx) == (xx * 8))
+                {
+                    t_rect(xo * psizex * 8 + winsux, yo * ycmag + winsuy, 1, ycmag, g_rgb[257]);
+                    if (g_gridx == 4)
+                    {
+                        t_rect(xo * psizex * 8 + winsux + 4 * psizex, yo * ycmag + winsuy + 1, 1, ycmag / 2 - 2, g_rgb[257]);
+                        t_rect(xo * psizex * 8 + winsux + 4 * psizex, yo * ycmag + winsuy + ycmag - ycmag / 2 + 2, 1, ycmag / 2 - 2, g_rgb[257]);
                     }
                 }
-                lapx = chopv(yy * 8, g_gridy);
 
-                if (lapx == (yy * 8)) {
-                    t_rect(xo * xcmag + winsux + 1, yo * xcmag + winsuy, xcmag - 1, 1, g_rgb[257]);
-                    if (g_gridy == 4) {
-                        t_rect(xo * xcmag + winsux + 1, yo * xcmag + winsuy + 4 * psizex, int(xcmag / 2) - 2, 1, g_rgb[257]);
-                        t_rect(xo * xcmag + winsux + 2 + xcmag - int(xcmag / 2), yo * xcmag + winsuy + 4 * psizex, int(xcmag / 2) - 2, 1, g_rgb[257]);
+                if (chopv(yy * 8, g_gridy) == (yy * 8))
+                {
+                    t_rect(xo * psizex * 8 + winsux + 1, yo * ycmag + winsuy, psizex * 8 - 1, 1, g_rgb[257]);
+                    if (g_gridy == 4)
+                    {
+                        t_rect(xo * psizex * 8 + winsux + 1, yo * ycmag + winsuy + 4 * psizex, xcmag / 2 - 2, 1, g_rgb[257]);
+                        t_rect(xo * psizex * 8 + winsux + 2 + xcmag - xcmag / 2, yo * ycmag + winsuy + 4 * psizex, xcmag / 2 - 2, 1, g_rgb[257]);
                     }
                 }
             }
--- a/events.pde	Thu Aug 16 15:04:39 2018 +0300
+++ b/events.pde	Thu Aug 16 15:29:01 2018 +0300
@@ -614,17 +614,10 @@
             }
         }
         if (g_data[int('B')] == 1) {
-            g_data[int('B')] = 0;
-            if (machine != MSX) {
-                store_undo();
-                g_map[0] = byte(zxcolor(g_farge));
-                sussborder();
-                message("Set border");
-            }
-            if (machine == MSX) {
-                g_data[int('C')] = 1;
-            }
+            changeborder(LEFT);
+            if (machine == MSX) g_data['C'] = 1;
         }
+
         if (g_data[int('C')] == 1) {
             g_data[int('C')] = 0;
             if (int(g_map[1]) != 255) {
@@ -677,9 +670,8 @@
             g_data[ckey] = 0;
         }
 
-        if (g_data[int('t')] == 1) {
-            if (ckey == 't') message("Tile mode");
-        }
+        if (g_data['t'] == 1 && ckey == 't')
+            message("Tile mode");
 
         if (ckey == 'n') {
             if (g_data[int('n')] == 1) {
@@ -760,6 +752,7 @@
                 g_data[int('m')] = 0;
                 ckey = 0;
                 g_boxreconstruct = 2;
+                refresh();
             }
             g_data[int('M')] = 0;
         }
@@ -767,11 +760,8 @@
         if (g_data[int('m')] == 1) {
             if (ckey == 'm') {
                 g_data[int('M')] = 0;
-                int moux, mouy;
-                moux = int(g_mx / g_wzoom);
-                mouy = int(g_my / g_wzoom);
-                g_ofx = int(moux / 8) - int(magx() / 2);
-                g_ofy = int(mouy / 8) - int(magy() / 2);
+                g_ofx = int(g_storedcoordx / 8) - int(magx() / 2);
+                g_ofy = int(g_storedcoordy / 8) - int(magy() / 2);
                 message("Magnify");
                 if (tool() == 0) {
                     set_tool(g_prevtool);
@@ -841,9 +831,8 @@
         restoreparameters();
     }
 
-    if (g_data[int('e')] == 1) {
+    if (g_data[int('e')] == 1)
         g_data[int('e')] = 0;
-    }
 
     if (g_data[int('h')] == 1) {
         g_data[int('h')] = 0;