From cd991e8b24db1215e6a935ab0b305fb90ed44aa4 Mon Sep 17 00:00:00 2001 From: pommicket Date: Fri, 9 Aug 2024 16:40:23 -0400 Subject: various fixes --- game.js | 15 +++++++-------- upload.sh | 5 +++++ 2 files changed, 12 insertions(+), 8 deletions(-) create mode 100755 upload.sh diff --git a/game.js b/game.js index 48b0560..5ad887e 100644 --- a/game.js +++ b/game.js @@ -15,11 +15,11 @@ window.addEventListener('load', function () { const connectRadius = 5; let pieceZIndexCounter = 1; let draggingPiece = null; - let nibSize = 12; + let nibSize = 24; let pieceWidth; let pieceHeight; let receivedAck = true; - if (imageUrl.startsWith('http')) { + if (imageUrl && imageUrl.startsWith('http')) { // make sure we use https let url = new URL(imageUrl); url.protocol = 'https:'; @@ -356,7 +356,7 @@ window.addEventListener('load', function () { const imageUrlOffset = nibTypesOffset + nibTypeCount * 2; const imageUrlLen = new Uint8Array(payload, imageUrlOffset, data.length - imageUrlOffset).indexOf(0); const imageUrlBytes = new Uint8Array(payload, imageUrlOffset, imageUrlLen); - let piecePositionsOffset = imageUrlOffset + imageUrlLen; + let piecePositionsOffset = imageUrlOffset + imageUrlLen + 1; piecePositionsOffset = Math.floor((piecePositionsOffset + 7) / 8) * 8; // align to 8 bytes const piecePositions = new Float32Array(payload, piecePositionsOffset, puzzleWidth * puzzleHeight * 2); const connectivityOffset = piecePositionsOffset + piecePositions.length * 4; @@ -366,7 +366,7 @@ window.addEventListener('load', function () { await loadImage(); } let nibTypeIndex = 0; - pieceWidth = 0.75 * playArea.clientWidth / puzzleWidth; + pieceWidth = 0.5 * playArea.clientWidth / puzzleWidth; pieceHeight = pieceWidth * puzzleWidth * image.height / (puzzleHeight * image.width); document.body.style.setProperty('--piece-width', (pieceWidth) + 'px'); document.body.style.setProperty('--piece-height', (pieceHeight) + 'px'); @@ -483,7 +483,7 @@ window.addEventListener('load', function () { throw new Error("bad image URL"); } }); - socket.addEventListener('message', (e) => { + socket.addEventListener('message', async (e) => { if (typeof e.data === 'string') { if (e.data.startsWith('id: ')) { let puzzleID = e.data.split(' ')[1]; @@ -494,14 +494,13 @@ window.addEventListener('load', function () { } receivedAck = true; } else if (e.data.startsWith('wikimediaImage ')) { - console.log(e.data); - imageUrl = e.data.substring('wikimediaImage '.length); + imageUrl = decodeURI(e.data.substring('wikimediaImage '.length)); hostPuzzle(); } } else { const opcode = new Uint8Array(e.data, 0, 1)[0]; if (opcode === 1 && !pieces.length) { // init puzzle - initPuzzle(e.data); + await initPuzzle(e.data); setInterval(() => socket.send('poll'), 1000); setInterval(sendServerUpdate, 1000); } else if (opcode === 2) { // update puzzle diff --git a/upload.sh b/upload.sh new file mode 100755 index 0000000..f0ec739 --- /dev/null +++ b/upload.sh @@ -0,0 +1,5 @@ +#!/bin/sh +for file in *.html *.js *.css *.mp3; do + echo "upload $file" + rclone copy --s3-acl=public-read $file linode:/s.pommicket.com/jigsaw +done -- cgit v1.2.3