diff --git a/vendor/clouds3d.js b/vendor/clouds3d.js index c9fa510..5a772cf 100644 --- a/vendor/clouds3d.js +++ b/vendor/clouds3d.js @@ -345,14 +345,13 @@ function drawTileAt(lng, perp, dx, dz, centerTileX, centerTileY) { return Promise.resolve(false); } return fetchTileImage(tileX, tileY).then(function(img) { - // Draw image with normal orientation (no X-flip). The image - // content within each tile is readable (place names, streets - // not mirrored). The arrangement uses the X-swap formula - // (canvasX = -perp + ...) to place east tiles on the right of - // the screen, so the X arrangement reads naturally left to - // right. - groundCtx.drawImage(img, canvasX, canvasY, - GROUND_TILE_SIZE, GROUND_TILE_SIZE); + // NS-mirror: X-flip the image so the tile content matches + // the corridor orientation (east tiles have their image east + // on the left of the drawn area, west tiles on the right). + // Labels are drawn separately in normal orientation, so the + // X-coordinates labels read normally. + groundCtx.drawImage(img, canvasX + GROUND_TILE_SIZE, canvasY, + -GROUND_TILE_SIZE, GROUND_TILE_SIZE); groundLoadedTiles[tileX + '_' + tileY] = true; // Thin border so the user can see where one tile ends and the