A bit more flexibility in boards drawing
[vchess.git] / client / src / utils / printDiagram.js
index aee1e96..ebc4d11 100644 (file)
@@ -19,7 +19,7 @@ function getShadowArray(shadow) {
   let shadowArray = ArrayFun.init(V.size.x, V.size.y, false);
   const squares = shadow.split(",");
   for (let i = 0; i < squares.length; i++) {
-    const rownum = V.size.x - parseInt(squares[i]);
+    const rownum = V.size.x - parseInt(squares[i], 10);
     if (!isNaN(rownum)) {
       // Shadow a full row
       for (let i = 0; i < V.size.y; i++) shadowArray[rownum][i] = true;
@@ -90,8 +90,16 @@ export function getDiagram(args) {
           (V.Notoodark ? "middle-square" : "dark-square");
         if (j == startY) boardDiv += " border-left";
       }
-      else if ((i + j) % 2 == 0) boardDiv += "light-square";
-      else boardDiv += "dark-square";
+      else {
+        const oddity = (i + j) % 2;
+        if (
+          (oddity == 0 && !V.DarkBottomRight) ||
+          (oddity == 1 && V.DarkBottomRight)
+        ) {
+          boardDiv += "light-square";
+        }
+        else boardDiv += "dark-square";
+      }
       boardDiv += " " + store.state.settings.bcolor;
       if (shadowArray.length > 0 && shadowArray[i][j])
         boardDiv += " in-shadow";