Fix squares colors on diagrams
authorBenjamin Auder <benjamin.auder@somewhere>
Mon, 19 Apr 2021 13:26:27 +0000 (15:26 +0200)
committerBenjamin Auder <benjamin.auder@somewhere>
Mon, 19 Apr 2021 13:26:27 +0000 (15:26 +0200)
client/src/utils/printDiagram.js
client/src/views/Game.vue

index ef0d2b5..4a3a50e 100644 (file)
@@ -73,13 +73,14 @@ export function getDiagram(args) {
   // Obtain the array of pieces images names:
   const board = V.GetBoard(args.position);
   const orientation = args.orientation || "w";
-  const darkBottomRight = !!args.darkBottomRight;
   const markArray = getMarkArray(args.marks);
   const shadowArray = getShadowArray(args.shadow);
-  const vr = new V(); //just for pieces images paths
+  const vr = new V(); //TODO: just for pieces images paths
   let boardDiv = "";
   const [startX, startY, inc] =
     orientation == "w" ? [0, 0, 1] : [V.size.x - 1, V.size.y - 1, -1];
+  let lightOddity = (V.size.x + V.size.y) % 2;
+  if (V.DarkBottomRight) lightOddity = 1 - lightOddity;
   for (let i = startX; i >= 0 && i < V.size.x; i += inc) {
     boardDiv += "<div class='row";
     if (i == startX && V.Monochrome) boardDiv += " border-top";
@@ -91,16 +92,8 @@ export function getDiagram(args) {
           (V.Notoodark ? "middle-square" : "dark-square");
         if (j == startY) boardDiv += " border-left";
       }
-      else {
-        const oddity = (i + j) % 2;
-        if (
-          (oddity == 0 && !V.DarkBottomRight) ||
-          (oddity == 1 && V.DarkBottomRight)
-        ) {
-          boardDiv += "light-square";
-        }
-        else boardDiv += "dark-square";
-      }
+      else if ((i + j) % 2 == lightOddity) boardDiv += "light-square";
+      else boardDiv += "dark-square";
       boardDiv += " " + store.state.settings.bcolor;
       if (shadowArray.length > 0 && shadowArray[i][j])
         boardDiv += " in-shadow";
index 2968b8f..0e430fe 100644 (file)
@@ -1618,8 +1618,7 @@ export default {
         if (["all","byrow"].includes(V.ShowMoves)) {
           this.curDiag = getDiagram({
             position: position,
-            orientation: V.CanFlip ? this.game.mycolor : "w",
-            darkBottomRight: V.DarkBottomRight
+            orientation: V.CanFlip ? this.game.mycolor : "w"
           });
           document.querySelector("#confirmDiv > .card").style.width =
             boardDiv.offsetWidth + "px";