Loading…<\/div>";
+ document.body.appendChild(etc.oCurtain);
+ etc.aFncBodies = [null, null, null, null, null, null, null, null, null, null, null, null, null];
+ XHR("meshes/board.json", function() {
+ if (graphicsStatus === 0) { return; }
+ etc.tmp3DBoard = eval("(" + this.responseText + ")");
+ runComponents();
+ });
+ XHR("meshes/pawn.jscn", loadCom, 0);
+ XHR("meshes/king.jscn", loadCom, 1);
+ XHR("meshes/knight.jscn", loadCom, 2);
+ XHR("meshes/bishop.jscn", loadCom, 3);
+ XHR("meshes/rook.jscn", loadCom, 4);
+ XHR("meshes/queen.jscn", loadCom, 5);
+ XHR("canvas3dengine/scene.jsfb", loadCom, 6);
+ XHR("canvas3dengine/vec3.jsfb", loadCom, 7);
+ XHR("canvas3dengine/matrix3.jsfb", loadCom, 8);
+ XHR("canvas3dengine/camera.jsfb", loadCom, 9);
+ XHR("canvas3dengine/mesh.jsfb", loadCom, 10);
+ XHR("canvas3dengine/light.jsfb", loadCom, 11);
+ XHR("solidView.jsfb", loadCom, 12);
+ } else {
+ updateViewSize(true, true);
+ oSolidBoard.show();
+ }
+ }
+
+ function updatePGNHeader() {
+ sPGNHeader = new String();
+ for (var iHeadKey in oGameInfo) { sPGNHeader += "[" + iHeadKey + " \"" + oGameInfo[iHeadKey] + "\"]\n"; }
+ }
+
+ function updatePGNLink() { oPGNBtn.setAttribute("href", "data:application/x-chess-pgn;US-ASCII," + escape(sPGNHeader + "\n" + sMovesList.replace(/¶/g," ") + (aHistory.length > 0 ? " " : "") + oGameInfo.Result)); }
+
+ function runAlgebraic(sAlgMove, nColorFlag, bGraphRendrng) {
+ try {
+ var nAlgStartSq = 0, nAlgEndSq, nAlgPromo, nAlgPiece, nAlgTarget;
+ if (sAlgMove === "O-O" || sAlgMove === "O-O-O") {
+ nCastlType = sAlgMove === "O-O" ? 1 : -1;
+ nAlgStartSq = kings[nColorFlag >> 3];
+ nAlgPromo = nColorFlag + 2;
+ nAlgPiece = nAlgPromo | 16;
+ nAlgTarget = 0;
+ nAlgEndSq = nAlgStartSq + nCastlType * 2;
+ etc.aBoard[nAlgStartSq + 3 + (nCastlType - 1) * 7 / 2] = 0;
+ etc.aBoard[nAlgStartSq + nCastlType] = nColorFlag + 5;
+ kings[nColorFlag >> 3] = nAlgEndSq;
+ } else {
+ var nAlgPcType, nAlgStartX = nAlgStartY = 8, rPromo = /(\=.+)/, nAlgPcIndex = sAlgMove.replace(rPromo, "").search(/[A-Z]/), aYCoords = sAlgMove.match(/\d/g), aXCoords = sAlgMove.replace(/x/g, "").match(/[a-z]/g), nAlgEndX = aXCoords[aXCoords.length - 1].charCodeAt(0) - 97, nAlgEndY = aYCoords[aYCoords.length - 1] - 1;
+ if (aXCoords.length > 1) { nAlgStartX = aXCoords[0].charCodeAt(0) - 97; }
+ if (aYCoords.length > 1) { nAlgStartY = aYCoords[0] - 1; }
+ if (nAlgPcIndex > -1) { nAlgPcType = "PKNBRQ".indexOf(sAlgMove.substr(nAlgPcIndex, 1)) + 1; } else { nAlgPcType = 1; }
+ var nAlg4btsPiece = nAlgPcType | nColorFlag, nAlgPromoIndex = sAlgMove.search(rPromo);
+ nAlgEndSq = nAlgEndY * 10 + nAlgEndX + 21;
+ if (nAlgStartX < 8) {
+ if (nAlgStartY < 8) {
+ if (etc.lookAt(nAlgStartX, nAlgStartY) && etc.isValidMove(nAlgStartX, nAlgStartY, nAlgEndX, nAlgEndY)) {
+ nAlgStartSq = nAlgStartY * 10 + nAlgStartX + 21;
+ nAlgPiece = etc.aBoard[nAlgStartSq];
+ }
+ else { return(false); } // piece not found!!!
+ } else {
+ for (var iFoundY = 0; iFoundY < 8; iFoundY++) {
+ iFoundPc = etc.lookAt(nAlgStartX, iFoundY);
+ if ((iFoundPc & 15) === nAlg4btsPiece && etc.isValidMove(nAlgStartX, iFoundY, nAlgEndX, nAlgEndY)) {
+ nAlgStartY = iFoundY;
+ nAlgStartSq = iFoundY * 10 + nAlgStartX + 21;
+ nAlgPiece = iFoundPc;
+ break;
+ }
+ }
+ }
+ } else {
+ if (nAlgStartY < 8) {
+ for (var iFoundX = 0; iFoundX < 8; iFoundX++) {
+ iFoundPc = etc.aBoard[nAlgStartY * 10 + iFoundX + 21];
+ if ((iFoundPc & 15) === nAlg4btsPiece && etc.isValidMove(iFoundX, nAlgStartY, nAlgEndX, nAlgEndY)) {
+ nAlgStartX = iFoundX;
+ nAlgStartSq = nAlgStartY * 10 + iFoundX + 21;
+ nAlgPiece = iFoundPc;
+ break;
+ }
+
+ }
+ } else {
+ for (var iFoundSq = 21; iFoundSq < 99; iFoundSq += iFoundSq % 10 < 8 ? 1 : 3) {
+ iFoundPc = etc.aBoard[iFoundSq];
+ if ((iFoundPc & 15) === nAlg4btsPiece && etc.isValidMove(iFoundSq % 10 - 1, (iFoundSq - iFoundSq % 10) / 10 - 2, nAlgEndX, nAlgEndY)) {
+ nAlgStartX = iFoundSq % 10 - 1;
+ nAlgStartY = (iFoundSq - iFoundSq % 10) / 10 - 2;
+ nAlgStartSq = iFoundSq;
+ nAlgPiece = iFoundPc;
+ break;
+ }
+ }
+ }
+ }
+ if ((nAlgPiece & 7) === 1 && (nAlgEndY + 1 | 9) === 9) {
+ if (nAlgPromoIndex === -1) { nAlgPromo = 22 - etc.nPromotion ^ nColorFlag; }
+ else { nAlgPromo = "KNBRQ".indexOf(sAlgMove.substr(nAlgPromoIndex + 1, 1)) + nColorFlag + 18; }
+ }
+ else { nAlgPromo = nAlgPiece; }
+ nAlgTarget = etc.aBoard[nAlgEndSq];
+ }
+ if (nAlgStartSq === 0) { return(false); } // piece not found!!!
+ var hisKing = kings[nColorFlag >> 3 ^ 1];
+ if ((nAlgPiece & 7) === 1 && (nAlgStartSq + nAlgEndSq & 1) && nAlgTarget === 0) { etc.aBoard[nAlgStartSq - nAlgStartSq % 10 + nAlgEndSq % 10] = 0; } // en passant
+ etc.aBoard[nAlgStartSq] = 0;
+ etc.aBoard[nAlgEndSq] = nAlgPromo;
+ if ((nAlgPiece & 7) === 2) { kings[nColorFlag >> 3] = nAlgEndSq; }
+ bCheck = isThreatened(hisKing % 10 - 1, (hisKing - hisKing % 10) / 10 - 2, nColorFlag);
+ nFrstFocus = nAlgStartSq;
+ nScndFocus = nAlgEndSq;
+ nPawnStride = (nAlgPiece & 7) === 1 && (nAlgStartY - nAlgEndY + 2 | 4) === 4 ? nAlgEndSq : 0;
+ fourBtsLastPc = nAlgPiece & 15;
+ writeHistory(bGraphRendrng, nAlgStartSq, nAlgEndSq, nAlgPiece, nAlgTarget, nAlgPromo);
+ return(true);
+ }
+ catch (oErr1) { return(false); }
+ }
+
+ function readHistory(nRelPt, bSynchrList) {
+ var iSigned, nExprs1, nExprs2, iHistPiece, iHistTarg, iHistPromo, bitBackward = 0, nMvsDiff = Math.abs(nRelPt), iHistPts = [null, null];
+ if (nRelPt < 0) { bitBackward = 1; }
+ nFrstFocus = nScndFocus = 0;
+ flagWhoMoved ^= nMvsDiff << 3 & 8;
+ for (var iNav = 0; iNav < nMvsDiff; iNav++) {
+ iSigned = aHistory[iHistPointr + 1 - bitBackward];
+ iHistPts[0] = iSigned & 127;
+ iHistPts[1] = iSigned >> 7 & 127;
+ iHistPiece = iSigned >> 14;
+ iHistTarg = iSigned >> 19 & 31;
+ iHistPromo = iHistPiece > 1023 ? (bitBackward ? 9 - (iHistPts[1] - iHistPts[1] % 10 & 8) : iSigned >> 24) : false;
+ if ((iHistPiece & 7) === 2) {
+ if ((iHistPts[1] - iHistPts[0] + 2 | 4) === 4) { // castling
+ nExprs1 = iHistPts[1] - iHistPts[1] % 10 + (iHistPts[1] - iHistPts[0] > 0 ? 8 : 1);
+ nExprs2 = iHistPts[1] - iHistPts[1] % 10 + (iHistPts[1] - iHistPts[0] > 0 ? 6 : 4);
+ etc.aBoard[bitBackward ? nExprs1 : nExprs2] = 5 + (iHistPts[1] - iHistPts[1] % 10 & 8) + (bitBackward << 4);
+ etc.aBoard[bitBackward ? nExprs2 : nExprs1] = 0;
+ }
+ kings[iHistPointr + 1 + bitBackward & 1] = iHistPts[bitBackward ^ 1];
+ }
+ etc.aBoard[iHistPts[bitBackward ^ 1]] = iHistPromo || (iHistPiece & (15 + (bitBackward << 4)));
+ etc.aBoard[iHistPts[bitBackward]] = bitBackward === 1 ? iHistTarg : 0;
+ if ((iHistPiece & 7) === 1 && (iHistPts[1] - iHistPts[0] & 1) && iHistTarg === 0) { etc.aBoard[iHistPts[0] - iHistPts[0] % 10 + iHistPts[1] % 10] = bitBackward ? 1 | (iHistPiece & 8 ^ 8) : 0; } // en passant
+ iHistPointr += 1 - (bitBackward << 1);
+ if (iNav === nMvsDiff - 1) { getInCheckPieces(); }
+ if (etc.bSolidView) { oSolidBoard.move(bitBackward, iHistPts[0], iHistPts[1], iHistTarg, iHistPromo); }
+
+ }
+ if (iHistPointr === -1) {
+ fourBtsLastPc = nPawnStride = lastStart = lastEnd = 0;
+ } else {
+ if (bitBackward) {
+ iSigned = aHistory[iHistPointr];
+ iHistPts[0] = iSigned & 127;
+ iHistPts[1] = iSigned >> 7 & 127;
+ iHistPiece = iSigned >> 14;
+ }
+ nPawnStride = (iHistPiece & 7) === 1 && ((iHistPts[0] - iHistPts[1] - iHistPts[0] % 10 + iHistPts[1] % 10) / 10 + 2 | 4) === 4 ? iHistPts[1] : 0;
+ lastStart = iHistPts[0];
+ lastEnd = iHistPts[1];
+ fourBtsLastPc = iHistPiece & 15;
+ }
+ if (etc.bFlatView) { writeFlatPieces(); }
+ if (bSynchrList) { oMovesSelect.selectedIndex = iHistPointr + 2 >> 1; }
+ }
+
+ function histClearIter() {
+ if (!bMotion) { return; }
+ window.clearInterval(nMotionId);
+ oMovesSelect.disabled = bMotion = false;
+ if (bBoundLock) { bReady = true; }
+ }
+
+ function sendAlgebraic(sMove) {
+ if (!bReady) { return(false); }
+ if (iHistPointr + 1 < aHistory.length) {
+ if (confirm("Moving now all subsequent moves will be lost. Do you want try to move?")) { trimHistory(); } else { return(false); }
+ }
+ if (!runAlgebraic(sMove, flagWhoMoved ^ 8, true)) { return(false); }
+ if ((fourBtsLastPc & 7) === 1 & (nScndFocus < 29 | nScndFocus > 90)) { fourBtsLastPc = 14 - etc.nPromotion ^ flagWhoMoved; }
+ flagWhoMoved ^= 8;
+ if (etc.bFlatView) { writeFlatPieces(); }
+ if (bAI && flagWhoMoved === flagHumanBlack) { bReady = false; window.setTimeout(engineMove, 250); }
+ return(true);
+ }
+
+// DOM private APIs
+ function closeMsg(oMsgNode, nEventId) {
+ var iFrameA1 = 1;
+ for (var iFrameA2 = 1; iFrameA2 < 5; iFrameA2++) { window.setTimeout(function() { oMsgNode.style.opacity = "0." + String(85 - (17 * iFrameA1)); iFrameA1++; }, iFrameA2 * 50); }
+ window.setTimeout(function() { oMsgNode.style.opacity = "0"; oNtfArea.removeChild(oMsgNode); iNtfs--; if (iNtfs === 1) { oNtfClsAll.style.display = "none"; } if (iNtfs === 0) { document.body.removeChild(oNtfArea); oNtfArea = null; oNtfClsAll = null; aCloseCalls = []; } }, 250);
+ aCloseCalls[nEventId] = false;
+ }
+
+ function sendMsg(sMsgTitle, sMsgTxt, nDuration) {
+ var oNewMsg = document.createElement("div"), oMsgClose = document.createElement("div"), oMsgTitle = document.createElement("div"), oMsgBody = document.createElement("div"), iFrameB1 = 1, nEventId = aCloseCalls.length;
+ if (oNtfArea === null) {
+ oNtfClsAll = document.createElement("div");
+ oNtfArea = document.createElement("div");
+ setAttribs.call(oNtfArea, ["className", "top-right gnotify"], ["id", "gnotify"]);
+ setAttribs.call(oNtfClsAll, ["className", "gnotify-closer"], ["innerHTML", "[ close all ]"], ["onclick", function() {
+ var iFrameC1 = 1;
+ for (var iEventId = 0; iEventId < aCloseCalls.length; iEventId++) { if (aCloseCalls[iEventId] !== false) { window.clearTimeout(aCloseCalls[iEventId]); } }
+ for (var iFrameC2 = 1; iFrameC2 < 5; iFrameC2++) {
+ window.setTimeout(function() { oNtfArea.style.opacity = "0." + String(85 - (17 * iFrameC1)); iFrameC1++; }, iFrameC2 * 50);
+
+ }
+ window.setTimeout(function() { oNtfArea.style.opacity = "0"; document.body.removeChild(oNtfArea); oNtfArea = null; oNtfClsAll = null; iNtfs = 0; aCloseCalls = new Array(); }, 250);
+ }]);
+ document.body.appendChild(oNtfArea);
+ oNtfArea.appendChild(oNtfClsAll);
+ }
+ if (iNtfs > 0) { oNtfClsAll.style.display = "block"; }
+ for (var iFrameB2 = 1; iFrameB2 < 6; iFrameB2++) { window.setTimeout(function() { oNewMsg.style.opacity = "0." + String(17 * iFrameB1); iFrameB1++; }, iFrameB2*50); }
+ aCloseCalls.push(window.setTimeout(function() { closeMsg(oNewMsg, nEventId); oNewMsg = null; }, nDuration));
+ oNewMsg.className = "gnotify-notification default";
+ setAttribs.call(oMsgClose, ["className", "close"], ["onclick", function() { if (aCloseCalls[nEventId] !== false) { window.clearTimeout(aCloseCalls[nEventId]); closeMsg(oNewMsg,nEventId); } }], ["innerHTML", "×"]);
+ setAttribs.call(oMsgTitle, ["className", "header"], ["innerHTML", sMsgTitle]);
+ setAttribs.call(oMsgBody, ["className", "gnotify-message"], ["innerHTML", sMsgTxt]);
+ oNewMsg.appendChild(oMsgClose);
+ oNewMsg.appendChild(oMsgTitle);
+ oNewMsg.appendChild(oMsgBody);
+ setStyles.call(oNewMsg, ["display", "block"], ["opacity", "0"]);
+ oNtfArea.insertBefore(oNewMsg,oNtfClsAll);
+ iNtfs++;
+ }
+
+ function returnFalse() { return(false); }
+
+ function getSqFnc() {
+ var getId = parseFloat(this.id.substr(this.id.search(/\d+/)));
+ etc.makeSelection(etc.bBlackSide ? 119 - getId : getId, false);
+ }
+
+ function synchrMovesList() {
+ var nRelMoves = (this.selectedIndex << 1) - iHistPointr - (this.selectedIndex > 0 && flagHumanBlack ? 2 : 1);
+ if (bMotion || nRelMoves === 0) { return; }
+ readHistory(nRelMoves, false);
+ }
+
+ function resizeFilm(oMsEvnt2) {
+ if (!oMsEvnt2) { oMsEvnt2 = window.event; }
+ var iMsWidth = oMsEvnt2.clientX + nPageX + nDscrsX - iBoardsBoxX, iMsHeight = oMsEvnt2.clientY + nPageY + nDscrsY - iBoardsBoxY;
+ nDeskWidth = iMsWidth < nMinWidth ? nMinWidth : nDeskWidth = iMsWidth - 1 | 1;
+ nDeskHeight = iMsHeight < nMinHeight ? nMinHeight : iMsHeight - 1 | 1;
+ oFilm.style.width = nDeskWidth + "px";
+ oFilm.style.height = nDeskHeight + "px";
+ }
+
+ function updateViewSize(bCrushFlatWidth, bResizeSolidB) {
+ var eachViewWidth = bCrushFlatWidth ? nDeskWidth / 2 : nDeskWidth;
+ nFlatBoardSide = (eachViewWidth < nDeskHeight ? eachViewWidth : nDeskHeight) - nFlatBVMargin;
+ etc.i3DWidth = etc.bFlatView ? nDeskWidth / 2 : nDeskWidth;
+ if (etc.bFlatView) {
+ etc.oFlatVwArea.style.width = eachViewWidth + "px";
+ etc.oFlatVwArea.style.height = nDeskHeight + "px";
+ oBoardTable.style.marginTop = oBoardTable.style.marginBottom = String((nDeskHeight - nFlatBoardSide) / 2) + "px";
+ oBoardTable.style.width = nFlatBoardSide + "px";
+ oBoardTable.style.height = nFlatBoardSide + "px";
+ }
+ if (bCrushFlatWidth && bResizeSolidB) { oSolidBoard.updateSize(); }
+ }
+
+ function stopResizing() {
+ Canvas3D.removeEvent(document, "mousemove", resizeFilm);
+ Canvas3D.removeEvent(document, "mouseup", stopResizing);
+ etc.i3DHeight = nDeskHeight;
+ updateViewSize(etc.bSolidView, true);
+ oBoardsBox.style.width = nDeskWidth + "px";
+ oBoardsBox.style.height = nDeskHeight + "px";
+ document.body.removeChild(oFilm);
+ }
+
+ function startResizing(oMsEvnt1) {
+ var iParent = oBoardsBox;
+ nMinWidth = etc.bFlatView && etc.bSolidView ? nMinHeight << 1 : nMinHeight;
+ if (!oMsEvnt1) { oMsEvnt1 = window.event; }
+ nPageX = document.documentElement.scrollLeft || document.body.scrollLeft;
+ nPageY = document.documentElement.scrollTop || document.body.scrollTop;
+ iBoardsBoxX = 0;
+ iBoardsBoxY = 0;
+ while (iParent.offsetParent) {
+ iBoardsBoxX += iParent.offsetLeft;
+ iBoardsBoxY += iParent.offsetTop;
+ iParent = iParent.offsetParent;
+ }
+ setStyles.call(oFilm, ["width", nDeskWidth + "px"], ["height", nDeskHeight + "px"], ["left", iBoardsBoxX + "px"], ["top", iBoardsBoxY + "px"]);
+ document.body.appendChild(oFilm);
+ nDscrsX = iBoardsBoxX - nPageX + oBoardsBox.offsetWidth - oMsEvnt1.clientX;
+ nDscrsY = iBoardsBoxY - nPageY + oBoardsBox.offsetHeight - oMsEvnt1.clientY;
+ Canvas3D.addEvent(document, "mousemove", resizeFilm);
+ Canvas3D.addEvent(document, "mouseup", stopResizing);
+ return(false);
+ }
+
+ function capitalize(sText) { return(sText.toUpperCase()); }
+
+ function changeTagName() {
+ var sOldName = this.innerHTML;
+ if (sOldName === "Result") { alert("You can not change this key."); return; }
+ if (bCtrlIsDown) {
+ bCtrlIsDown = false;
+ if (confirm("Do you want to delete this tag?")) {
+ delete oGameInfo[this.innerHTML];
+ this.parentNode.removeChild(this.nextSibling);
+ this.parentNode.removeChild(this.nextSibling);
+ this.parentNode.removeChild(this.nextSibling);
+ this.parentNode.removeChild(this);
+ }
+ } else {
+
+
+ var sNewName = prompt("Write the new name of the key.", sOldName);
+ if (!sNewName) { return; }
+ sNewName = sNewName.replace(/^[a-z]/, capitalize);
+ if (sNewName === sOldName || sNewName.search(rDeniedTagChrs) > -1 || oGameInfo.hasOwnProperty(sNewName)) { return; }
+ var oCleanInfo;
+ for (var iInfoKey in oGameInfo) {
+ oNewInfo[iInfoKey === sOldName ? sNewName : iInfoKey] = oGameInfo[iInfoKey];
+ delete oGameInfo[iInfoKey];
+ }
+ oCleanInfo = oGameInfo;
+ oGameInfo = oNewInfo;
+ oNewInfo = oCleanInfo;
+ updatePGNHeader();
+ updatePGNLink();
+ this.innerHTML = sNewName;
+ }
+ }
+
+ function changeTagVal() {
+ var sParent = this.previousSibling.previousSibling.innerHTML;
+ if (sParent === "Result") { alert("You can not change the result of the game!"); return; }
+ var sNewValue = prompt("Write the new value.", this.innerHTML);
+ if (sNewValue === null) { return; }
+ oGameInfo[sParent] = this.innerHTML = sNewValue || "?";
+ updatePGNHeader();
+ updatePGNLink();
+ }
+
+ function addInfoTag() {
+ var newTagK = prompt("Write the name of the new tag.");
+ if (!newTagK || newTagK.search(rDeniedTagChrs) > -1) { return; }
+ newTagK = newTagK.replace(/^[a-z]/, capitalize);
+ var bExists = false;
+ for (var iExistTag in oGameInfo) {
+ if (iExistTag.toLowerCase() === newTagK.toLowerCase()) { bExists = iExistTag; break; }
+ }
+ if (bExists) { alert(iExistTag + " already exists!"); return; }
+ newTagV = prompt("Write the value of the new tag.");
+ if (!newTagV) { return; }
+ oGameInfo[newTagK] = newTagV;
+ updatePGNHeader();
+ updatePGNLink();
+ var oFocusNode = this.previousSibling;
+ this.parentNode.insertBefore(setAttribs.call(document.createElement("span"), ["className", "infoKey"], ["onclick", changeTagName], ["innerHTML", newTagK]), oFocusNode);
+ this.parentNode.insertBefore(document.createTextNode(": "), oFocusNode);
+ this.parentNode.insertBefore(setAttribs.call(document.createElement("span"), ["className", "infoVal"], ["onclick", changeTagVal], ["innerHTML", newTagV]), oFocusNode);
+ this.parentNode.insertBefore(document.createElement("br"), oFocusNode);
+ }
+
+ function showInfo() {
+ if (bInfoBox) { return; }
+ var oInfoPar = document.createElement("p"), oNewField = document.createElement("span"), oCloseInfo = document.createElement("span");
+ for (var iTagTxt in oGameInfo) {
+ oInfoPar.appendChild(setAttribs.call(document.createElement("span"), ["className", "infoKey"], ["onclick", changeTagName], ["innerHTML", iTagTxt]));
+ oInfoPar.appendChild(document.createTextNode(": "));
+ oInfoPar.appendChild(setAttribs.call(document.createElement("span"), ["className", "infoVal"], ["onclick", changeTagVal], ["innerHTML", oGameInfo[iTagTxt]]));
+ oInfoPar.appendChild(document.createElement("br"));
+ }
+ oInfoPar.title = "Hold down the ctrl button and click the tag name to remove all its contents.";
+ setAttribs.call(oNewField, ["className", "chessCtrlBtn"], ["onclick", addInfoTag], ["innerHTML", "Add tag"]);
+ setAttribs.call(oCloseInfo, ["className", "chessCtrlBtn"], ["onclick", hideInfo], ["innerHTML", "Close"]);
+ oInfoPar.appendChild(document.createElement("br"));
+ oInfoPar.appendChild(oNewField);
+ oInfoPar.appendChild(document.createTextNode(" "));
+ oInfoPar.appendChild(oCloseInfo);
+ oInfoBox.appendChild(oInfoPar);
+ bInfoBox = true;
+ }
+
+ function hideInfo() {
+ oInfoBox.innerHTML = "";
+ bInfoBox = false;
+ }
+
+ function algBoxListener(oKeyEvnt1) {
+ if (oKeyEvnt1.keyCode === 13 && sendAlgebraic(this.value)) { this.value = ""; }
+ }
+
+ function algBoxFocus() {
+ this.style.borderColor = "#ffff00";
+ if (this.value === sAlgBoxEmpty) { this.value = ""; }
+ if (bUseKeyboard) { etc.bKeyCtrl = false; }
+ }
+
+ function algBoxBlur() {
+ this.style.borderColor = "";
+ this.value = this.value || sAlgBoxEmpty;
+ if (bUseKeyboard) { etc.bKeyCtrl = true; }
+ }
+
+ function minMaxCtrl() {
+ if (oCtrlForm.style.display) {
+ oCtrlForm.style.display = "";
+ this.innerHTML = "–";
+ } else {
+ oCtrlForm.style.display = "none";
+ this.innerHTML = "+";
+ }
+ }
+
+ function getCtrlDown(oKeyEvnt2) { if (oKeyEvnt2.keyCode === 17) { bCtrlIsDown = true; } }
+
+ function getCtrlUp(oKeyEvnt3) { if (oKeyEvnt3.ctrlKey) { bCtrlIsDown = false; } }
+
+// Public APIs
+ return {
+ help: function() {
+ if (!bReady) { return; }
+ engineMove();
+ bReady = false;
+ window.setTimeout(engineMove, 250);
+ if (etc.bFlatView && nFrstFocus) { squareFocus(nFrstFocus, false); }
+ },
+ organize: function(bHB) {
+ resetBoard();
+ flagHumanBlack = bHB ? 8 : 0;
+ newPGNHeader();
+ if (bHumanSide) { etc.bBlackSide = bHB; }
+ if (bInfoBox) { hideInfo(); }
+ if (etc.bSolidView) { oSolidBoard.update(true); }
+ if (etc.bFlatView) { updateFlatCoords(); writeFlatPieces(); }
+ updatePGNLink();
+ if (bHB && bAI) { bReady = false; window.setTimeout(engineMove, 250); }
+ },
+ place: function(oWhere) {
+ if (oBoardsBox) { oBoardsBox.parentNode.removeChild(oBoardsBox); }
+ else {
+ var oSizeHandle = document.createElement("div"), oCtrlPanel = document.createElement("div"), oMnMxCtrl = document.createElement("div"), oAlgBox = document.createElement("input"), oMovesPar = document.createElement("p"), oPGNPar = document.createElement("p"), oInfoBtn = document.createElement("span");
+ etc.oFlatVwArea = document.createElement("div");
+ etc.oSolidVwArea = document.createElement("div");
+ oBoardsBox = document.createElement("div");
+ oPGNBtn = document.createElement("a");
+ oInfoBox = document.createElement("div");
+ oCtrlForm = document.createElement("form");
+ oMovesSelect = document.createElement("select");
+ oFilm = document.createElement("div");
+
+ setAttribs.call(oAlgBox, ["type", "text"], ["id", "chessAlgebraic"], ["value", sAlgBoxEmpty], ["onkeypress", algBoxListener], ["onfocus", algBoxFocus], ["onblur", algBoxBlur]);
+ setAttribs.call(oInfoBtn, ["className", "chessCtrlBtn"], ["onclick", showInfo], ["innerHTML", "Game info"]);
+ oInfoBox.id = "chessInfo";
+ oBoardsBox.id = "chessboardsBox";
+ oBoardsBox.onmousedown = returnFalse;
+ oBoardsBox.style.width = nDeskWidth + "px";
+ oBoardsBox.style.height = nDeskHeight + "px";
+ setAttribs.call(oSizeHandle, ["id", "chessSizeHandle"], ["innerHTML", "◢"], ["onmousedown", startResizing]);
+ setAttribs.call(oMnMxCtrl, ["id", "chessClosePanel"], ["onclick", minMaxCtrl], ["onmousedown", returnFalse], ["innerHTML", "–"]);
+ oPGNPar.className = "ctrlBtns";
+ etc.oFlatVwArea.id = "chess2DBox";
+ etc.oSolidVwArea.id = "chess3DBox";
+ oCtrlForm.onsubmit = returnFalse;
+ oFilm.className = "chessFilmBox";
+ setAttribs.call(oMovesSelect, ["id", "chessMoves"], ["size", 10], ["onchange", synchrMovesList]),
+ oPGNBtn.className = "chessCtrlBtn";
+ oPGNBtn.innerHTML = "Save as PGN";
+ oCtrlPanel.id = "chessCtrlPanel";
+
+ oMovesPar.appendChild(oMovesSelect);
+ oMovesPar.appendChild(document.createElement("br"));
+ oMovesPar.appendChild(oAlgBox);
+ oPGNPar.appendChild(oPGNBtn);
+ oPGNPar.appendChild(document.createTextNode(" "));
+ oPGNPar.appendChild(oInfoBtn);
+ oCtrlForm.appendChild(oMovesPar);
+ oCtrlForm.appendChild(oPGNPar);
+ oCtrlForm.appendChild(oInfoBox);
+ oCtrlPanel.appendChild(oMnMxCtrl);
+ oCtrlPanel.appendChild(oCtrlForm);
+ oBoardsBox.appendChild(etc.oSolidVwArea);
+ oBoardsBox.appendChild(etc.oFlatVwArea);
+ oBoardsBox.appendChild(oSizeHandle);
+ document.body.appendChild(oCtrlPanel);
+ Canvas3D.addEvent(document, "keydown", getCtrlDown);
+ Canvas3D.addEvent(document, "keyup", getCtrlUp);
+ }
+ oWhere.appendChild(oBoardsBox);
+ this.organize(false);
+ },
+ setView: function(nView) {
+ if (!bReady) { return(false); }
+ var bUpdateSize = false, bShow2D = Boolean(nView & 1), bShow3D = Boolean(nView & 2), bChanged2D = Boolean(nView & 1 ^ etc.bFlatView);
+ if (bShow2D && bShow3D && nDeskWidth < nMinHeight << 1) {
+ nDeskWidth = nMinWidth = nMinHeight << 1;
+ oBoardsBox.style.width = nDeskWidth + "px";
+ }
+ if (bShow2D) {
+ if (!etc.bFlatView) {
+ showFlatBoard();
+ bUpdateSize = true;
+ }
+ } else if (etc.bFlatView) {
+ etc.oFlatVwArea.style.width = "0";
+ etc.oFlatVwArea.removeChild(oBoardTable);
+ etc.bFlatView = false;
+ bUpdateSize = true;
+ }
+ if (bShow3D) { if (!etc.bSolidView) { showSolidBoard(); bUpdateSize = false; } }
+ else if (etc.bSolidView) { oSolidBoard.hide(); bUpdateSize = true; }
+ if (bUpdateSize) { updateViewSize(bShow3D, bChanged2D); }
+ return(true);
+ },
+ showHide2D: function() {
+ if (!bReady) { return(false); }
+ if (etc.bFlatView) {
+ etc.oFlatVwArea.style.width = "0";
+ etc.oFlatVwArea.removeChild(oBoardTable);
+ etc.bFlatView = false;
+ }
+ else {
+ if (etc.bSolidView && nDeskWidth < nMinHeight << 1) {
+ nDeskWidth = nMinWidth = nMinHeight << 1;
+ oBoardsBox.style.width = nDeskWidth + "px";
+ }
+ showFlatBoard();
+ }
+ updateViewSize(etc.bSolidView, true);
+ return(true);
+ },
+ showHide3D: function() {
+ if (!bReady) { return(false); }
+ if (etc.bSolidView) {
+ oSolidBoard.hide();
+ updateViewSize(false, false);
+ } else {
+ showSolidBoard();
+ if (etc.bFlatView && nDeskWidth < nMinHeight << 1) {
+ nDeskWidth = nMinWidth = nMinHeight << 1;
+ oBoardsBox.style.width = nDeskWidth + "px";
+ }
+ }
+ return(true);
+ },
+ lock: function() { if (bMotion) { bBoundLock = false; } else { bReady = false; } },
+ unlock: function() { histClearIter(); bReady = true; },
+ useAI: function(bMachine) { bAI = bMachine; },
+ placeById: function(sNodeId) { this.place(document.getElementById(sNodeId)); },
+ setPlyDepth: function(nLevel) {
+ var nDepth = new Number(nLevel);
+ if (isNaN(nDepth) || nDepth < 0) { return(false); }
+ nPlyDepth = nDepth + 2;
+ return(true);
+ },
+ setPromotion: function(nPromotion) { etc.nPromotion = nPromotion & 3; },
+ navigate: function (nHowMany, bIterate, nTmpSpeed) {
+ var nMoveFor = Number(nHowMany), bBackward = nMoveFor < 0, nHistLen1 = aHistory.length;
+ if (bMotion || nMoveFor === 0 || nHistLen1 === 0) { return; }
+ if (bIterate) {
+ oMovesSelect.disabled = bMotion = true;
+ if (bReady) { bBoundLock = true; bReady = false; }
+ nMotionId = window.setInterval(function() {
+ var nHistLen2 = aHistory.length;
+ if (iHistPointr + nMoveFor < -1 || nMoveFor + iHistPointr > nHistLen2 - 1) {
+ window.clearInterval(nMotionId);
+ oMovesSelect.disabled = bMotion = false;
+ if (bBackward && iHistPointr > -1) { readHistory(~iHistPointr, true); }
+ else if (!bBackward && iHistPointr < nHistLen2 - 1) { readHistory(nHistLen2 - iHistPointr - 1, true); }
+ if (bBoundLock) { bReady = true; }
+ return;
+ }
+ readHistory(nMoveFor, true);
+ }, nTmpSpeed || nFrameRate);
+ } else {
+ if (iHistPointr + nMoveFor < -1 || nMoveFor + iHistPointr + 1 > nHistLen1) {
+ if (bBackward && iHistPointr > -1) { readHistory(~iHistPointr, true); }
+ else if (!bBackward && iHistPointr < nHistLen1 - 1) { readHistory(nHistLen1 - iHistPointr - 1, true); }
+ return;
+ }
+ readHistory(nMoveFor, true);
+ }
+ },
+ stopMotion: histClearIter,
+ backToStart: function() {
+ if (bMotion || iHistPointr === -1) { return; }
+ readHistory(~iHistPointr, true);
+ },
+ returnToEnd: function() {
+ var nHistLen3 = aHistory.length;
+ if (bMotion || iHistPointr === nHistLen3 - 1) { return; }
+ readHistory(nHistLen3 - iHistPointr - 1, true);
+ },
+ // it's for developpers only: do not uncomment this function, please!
+ // runInside: function(sJSCode) { eval(sJSCode); },
+ readPGN: function(sPGNBody, bHumanBlack) {
+ var iInfoField, iAlgMoves, cleanPGN = sPGNBody.replace(/\{.*\}/g, "").replace(/\s*;[^\n]\s*|\s+/g, " "), sFieldFence = "\\[[^\\]]*\\]", aFlatHeadr = cleanPGN.match(new RegExp(sFieldFence, "g")), aMovesLoaded = cleanPGN.replace(new RegExp("^\\s*(" + sFieldFence + "\\s*)*(\\d+\\.\\s*)?|\\+|\\s*((#|(\\d+(\/\\d+)?\\-\\d+(\/\\d+)?)|\\*).*)?$", "g"), "").split(/\s+\d+\.\s*/);
+ resetBoard();
+ for (var iOldKey in oGameInfo) { delete oGameInfo[iOldKey]; }
+ if (aFlatHeadr) {
+ for (var iField = 0; iField < aFlatHeadr.length; iField++) {
+ iInfoField = aFlatHeadr[iField].replace(/^\[\s*|"\s*\]$/g, "").split(/\s*"\s*/);
+ if (iInfoField.length > 1) { oGameInfo[iInfoField[0]] = iInfoField[1]; }
+ }
+ }
+ for (var iDblMove = 0; iDblMove < aMovesLoaded.length; iDblMove++) {
+ iAlgMoves = aMovesLoaded[iDblMove].split(/\s+/);
+ if (!runAlgebraic(iAlgMoves[0], 0, false)) { break; }
+ if (iAlgMoves.length < 2 || !runAlgebraic(iAlgMoves[1], 8, false)) { flagWhoMoved = 0; break; }
+ }
+ flagHumanBlack = bHumanBlack ? 8 : 0;
+ if (bHumanSide) { etc.bBlackSide = bHumanBlack || false; }
+ getInCheckPieces();
+ updatePGNHeader();
+ updatePGNLink();
+ if (bInfoBox) { hideInfo(); }
+ if (etc.bSolidView) { oSolidBoard.update(false); }
+ if (etc.bFlatView) { writeFlatPieces(); }
+ if (bAI && bGameNotOver && flagWhoMoved === flagHumanBlack) { bReady = false; window.setTimeout(engineMove, 250); }
+ },
+ readAlgebraic: sendAlgebraic,
+ setFrameRate: function(nMilliseconds) { nFrameRate = nMilliseconds; },
+ setDimensions: function(nNewWidth, nNewHeight) {
+ nDeskWidth = nNewWidth < nMinWidth ? nMinWidth : nDeskWidth = nNewWidth - 1 | 1;
+ nDeskHeight = etc.i3DHeight = nNewHeight < nMinHeight ? nMinHeight : nNewHeight - 1 | 1;
+ updateViewSize(etc.bSolidView, true);
+ oBoardsBox.style.width = nDeskWidth + "px";
+ oBoardsBox.style.height = nDeskHeight + "px";
+ },
+ getDimensions: function() { return[nDeskWidth, nDeskHeight]; },
+ setSide: function(nSide) { // 0: white side, 1: black side, 2: human side.
+ var bWasBlack = etc.bBlackSide;
+ bHumanSide = Boolean(nSide >> 1);
+ if (bHumanSide) { etc.bBlackSide = Boolean(flagHumanBlack) }
+ else { etc.bBlackSide = Boolean(nSide & 1); }
+ if (etc.bBlackSide !== bWasBlack) {
+ if (etc.bFlatView) { updateFlatCoords(); writeFlatPieces(); }
+ if (etc.bSolidView) { oSolidBoard.updateView(); }
+ }
+ },
+ useKeyboard: function(bActive) { etc.bKeyCtrl = bUseKeyboard = bActive; }
+ };
+})(), Canvas3D = {
+ addEvent: function(oObject, strEvent, fncAction) {
+ if (oObject.addEventListener) { oObject.addEventListener(strEvent, fncAction, false); }
+ else if (oObject.attachEvent) { oObject.attachEvent("on" + strEvent, fncAction); }
+ },
+ removeEvent: function(oObject, strEvent, fncAction) {
+ if (oObject.removeEventListener) { oObject.removeEventListener(strEvent, fncAction, false); }
+ else if (oObject.detachEvent) { oObject.detachEvent("on" + strEvent, fncAction); }
+ }
+};
diff --git a/public/gfiles/html5games/chess/common/xhr.js b/public/gfiles/html5games/chess/common/xhr.js
new file mode 100644
index 00000000..e2b565ef
--- /dev/null
+++ b/public/gfiles/html5games/chess/common/xhr.js
@@ -0,0 +1,32 @@
+
+// retrieves a file via XMLHTTPRequest, calls fncCallback when done or fncError on error.
+
+function XHR(strURL, fncCallback /*, argumentToPass1, argumentToPass2, etc. */) {
+ var oHTTP, argsArr = Array.prototype.slice.call(arguments, 2);
+ if (window.XMLHttpRequest) { oHTTP = new XMLHttpRequest(); }
+ else if (window.ActiveXObject) { oHTTP = new ActiveXObject("Microsoft.XMLHTTP"); }
+ if (oHTTP) {
+ if (fncCallback) {
+ if (typeof(oHTTP.onload) !== "undefined")
+ oHTTP.onload = function() {
+ fncCallback.apply(oHTTP, argsArr);
+ oHTTP = null;
+ };
+ else {
+ oHTTP.onreadystatechange = function() {
+ if (oHTTP.readyState === 4) {
+ fncCallback.apply(oHTTP, argsArr);
+ oHTTP = null;
+ }
+ };
+ }
+ }
+ oHTTP.open("GET", strURL, true);
+ oHTTP.setRequestHeader("Content-Type", "text/plain");
+ oHTTP.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
+ oHTTP.send(null);
+ }
+}
+
+function setAttribs() { for (var iAttr = 0; iAttr < arguments.length; iAttr++) { this[arguments[iAttr][0]] = arguments[iAttr][1]; } return(this); }
+function setStyles() { for (var iPropr = 0; iPropr < arguments.length; iPropr++) { this.style[arguments[iPropr][0]] = arguments[iPropr][1]; } return(this); }
diff --git a/public/gfiles/html5games/chess/css/chess.css b/public/gfiles/html5games/chess/css/chess.css
new file mode 100644
index 00000000..e4cf5584
--- /dev/null
+++ b/public/gfiles/html5games/chess/css/chess.css
@@ -0,0 +1,339 @@
+body {
+ background-color: white;
+}
+
+span.intLink, #chessClosePanel {
+ cursor: pointer;
+}
+
+a.chessCtrlBtn:link, span.chessCtrlBtn {
+ margin: 0 20px;
+ text-decoration: none;
+ -moz-user-select: none;
+ color: #000000;
+ cursor: default;
+ height: 21px;
+ padding: 0 8px;
+ font: 13px / 20px "Lucida Grande", sans-serif;
+ -moz-border-radius: 10px;
+ -webkit-border-radius: 10px;
+ border-radius: 10px;
+ background: rgb(235, 235, 235);
+ -moz-box-shadow:
+ 0 1px 0 rgba(0, 0, 0, 0.15),
+ inset 0 1px 0 rgba(0, 0, 0, 0.2),
+ inset 0 0 1px rgba(0, 0, 0, 0.8),
+ inset 0 0 1px #000,
+ inset 0 10px 5px -5px rgba(255, 255, 255, 1),
+ inset 0 -20px 10px -10px rgba(255, 255, 255, 0.8),
+ inset 0 -13px rgba(0, 0, 0, 0.1);
+ -webkit-box-shadow:
+ 0 1px 0 rgba(0, 0, 0, 0.15),
+ inset 0 1px 0 rgba(0, 0, 0, 0.2),
+ inset 0 0 1px rgba(0, 0, 0, 0.8),
+ inset 0 0 1px #000,
+ inset 0 10px 5px -5px rgba(255, 255, 255, 1),
+ inset 0 -20px 10px -10px rgba(255, 255, 255, 0.8),
+ inset 0 -13px rgba(0, 0, 0, 0.1);
+ box-shadow:
+ 0 1px 0 rgba(0, 0, 0, 0.15),
+ inset 0 1px 0 rgba(0, 0, 0, 0.2),
+ inset 0 0 1px rgba(0, 0, 0, 0.8),
+ inset 0 0 1px #000,
+ inset 0 10px 5px -5px rgba(255, 255, 255, 1),
+ inset 0 -20px 10px -10px rgba(255, 255, 255, 0.8),
+ inset 0 -13px rgba(0, 0, 0, 0.1);
+}
+a.chessCtrlBtn:active:hover, span.chessCtrlBtn:active:hover {
+ background-color: #79A7D5;
+ -moz-box-shadow:
+ 0 1px 0 rgba(0, 0, 0, 0.15),
+ inset 0 1px 0 rgba(0, 0, 0, 0.2),
+ inset 0 0 1px rgba(0, 0, 0, 0.8),
+ inset 0 0 1px #000,
+ inset 0 10px 5px -5px rgba(255, 255, 255, 0.4),
+ inset 0 -20px 10px -10px #A4D6F1,
+ inset 0 -13px #387CC0;
+ -webkit-box-shadow:
+ 0 1px 0 rgba(0, 0, 0, 0.15),
+ inset 0 1px 0 rgba(0, 0, 0, 0.2),
+ inset 0 0 1px rgba(0, 0, 0, 0.8),
+ inset 0 0 1px #000,
+ inset 0 10px 5px -5px rgba(255, 255, 255, 0.4),
+ inset 0 -20px 10px -10px #A4D6F1,
+ inset 0 -13px #387CC0;
+ box-shadow:
+ 0 1px 0 rgba(0, 0, 0, 0.15),
+ inset 0 1px 0 rgba(0, 0, 0, 0.2),
+ inset 0 0 1px rgba(0, 0, 0, 0.8),
+ inset 0 0 1px #000,
+ inset 0 10px 5px -5px rgba(255, 255, 255, 0.4),
+ inset 0 -20px 10px -10px #A4D6F1,
+ inset 0 -13px #387CC0;
+}
+div.chessFilmBox {
+ position: absolute;
+ left: 0;
+ top: 0;
+ border: 1px #000000 solid;
+ background-color: #ffffaa;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+ border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ z-index: 10000000;
+}
+
+div.gnotify {
+ padding: 10px;
+ z-index: 10000001;
+}
+
+/** Normal Style Positions **/
+div.gnotify { position: fixed; }
+
+div.gnotify.top-left {
+ left: 0;
+ top: 0;
+}
+
+div.gnotify.top-right {
+ right: 0;
+ top: 0;
+}
+
+div.gnotify.bottom-left {
+ left: 0;
+ bottom: 0;
+}
+
+div.gnotify.bottom-right {
+ right: 0;
+ bottom: 0;
+}
+
+div.gnotify.center {
+ top: 0;
+ width: 50%;
+ left: 25%;
+}
+
+div.gnotify-message span.intLink, div.gnotify-message a, div.gnotify-message a:link, div.gnotify-message a:visited, div.gnotify-message a:hover {
+ font-weight: bold;
+ text-decoration: inherit;
+ color: inherit;
+}
+
+/** Cross Browser Styling **/
+div.center div.gnotify-notification, div.center div.gnotify-closer {
+ margin-left: auto;
+ margin-right: auto;
+}
+
+div.gnotify div.gnotify-notification, div.gnotify div.gnotify-closer {
+ background-color: #000000;
+ color: #ffffff;
+ opacity: 0.85;
+ filter: alpha(opacity=85);
+ width: 235px;
+ padding: 10px;
+ margin-top: 5px;
+ margin-bottom: 5px;
+ font-family: Tahoma, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ text-align: left;
+ display: none;
+ border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+}
+
+div.gnotify div.gnotify-notification { min-height: 40px; }
+
+div.gnotify div.gnotify-notification div.header {
+ font-weight: bold;
+ font-size: 10px;
+}
+
+div.gnotify div.gnotify-notification div.close {
+ float: right;
+ font-weight: bold;
+ font-size: 12px;
+ cursor: pointer;
+}
+
+div.gnotify div.gnotify-closer {
+ height: 15px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ cursor: pointer;
+ font-size: 11px;
+ font-weight: bold;
+ text-align: center;
+}
+
+#chessboardsBox {
+ position: relative;
+ margin-left: auto;
+ margin-right: auto;
+ left: 0;
+ top: 0;
+ clear: both;
+ overflow: visible;
+ background-color: #87a1c0;
+ border: 1px #76808C solid;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ /*
+ -moz-box-shadow:
+ 0 0 20px black,
+ 20px 15px 30px yellow,
+ -20px 15px 30px lime,
+ -20px -15px 30px blue,
+ 20px -15px 30px red;
+ -webkit-box-shadow:
+ 0 0 20px black,
+ 20px 15px 30px yellow,
+ -20px 15px 30px lime,
+ -20px -15px 30px blue,
+ 20px -15px 30px red;
+ box-shadow:
+ 0 0 20px black,
+ 20px 15px 30px yellow,
+ -20px 15px 30px lime,
+ -20px -15px 30px blue,
+ 20px -15px 30px red;
+ */
+}
+#chessSizeHandle {
+ background-color: transparent;
+ color: #333333;
+ font-size: 24px;
+ line-height: 24px;
+ width: auto;
+ height: auto;
+ position: absolute;
+ right: -12px;
+ bottom: -12px;
+ float: right;
+ margin-top: auto;
+ cursor: se-resize;
+}
+
+#chess3DBox {
+ /**
+ * width: [DYNAMIC VALUE];
+ * height: [DYNAMIC VALUE];
+ */
+ float: left;
+}
+
+#chess2DBox {
+ /**
+ * width: [DYNAMIC VALUE];
+ * height: [DYNAMIC VALUE];
+ */
+ float: right;
+}
+#chessCtrlPanel, #chessCtrlPanel select, #chessCtrlPanel input[type=text] {
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+
+#chessCtrlPanel {
+ position: fixed;
+ bottom: 0;
+ right: 0;
+ width: 140px;
+ height: auto;
+ overflow: hidden;
+ background-color: #404d4f;
+ color: #ffffff;
+ font-size: 12px;
+ font-family: Tahoma, Arial, Verdana, Helvetica;
+ -moz-box-shadow: 3px 3px red, -8px -2px 8px #2d3637;
+ -webkit-box-shadow: 3px 3px red, -8px -2px 8px #2d3637;
+ box-shadow: 3px 3px red, -8px -2px 8px #2d3637;
+}
+
+#chessCtrlPanel form {
+ clear: both;
+}
+
+#chessClosePanel {
+ width: auto;
+ height: auto;
+ margin: 0 12px 1px auto;
+ float: right;
+}
+
+#chessCtrlPanel p {
+ margin-top: 6px;
+ text-align: center;
+}
+
+#chessInfo span.intLink {
+ color: #ffffff;
+ text-decoration: underline;
+}
+
+span.infoKey, span.infoVal {
+ color: #ffffff;
+ cursor: pointer;
+}
+
+span.infoKey {
+ font-weight: bold;
+}
+
+#chessMoves {
+ width: 92%;
+ height: 120px;
+ padding: 4px;
+ font-family: Courier New, Courier;
+ font-size: 12px;
+}
+
+#chessMoves, #chessAlgebraic {
+ border: 1px solid #778284;
+ background-color: transparent;
+ color: #ffffff;
+ -moz-box-shadow: inset 2px 2px 5px black, 2px 2px 5px black;
+ -webkit-box-shadow: inset 2px 2px 5px black, 2px 2px 5px black;
+ box-shadow: inset 2px 2px 5px black, 2px 2px 5px black;
+}
+
+#chessAlgebraic {
+ width: 90%;
+ margin-top: 3px;
+ font-size: 11px;
+}
+
+#chessInfo p {
+ text-align: center;
+ margin: 6px 4px 6px 4px;
+}
+
+#chessCurtain {
+ display:table;
+ width: 100%;
+ height: 100%;
+ position: fixed;
+ left: 0;
+ top: 0;
+ background-color: #000000;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+ z-index: 10000002;
+}
+
+#chessLoading {
+ display: table-cell;
+ vertical-align: middle;
+ text-align: center;
+ border: 1px #000000 solid;
+ color: #ffff00;
+}
diff --git a/public/gfiles/html5games/chess/icons/backward.png b/public/gfiles/html5games/chess/icons/backward.png
new file mode 100644
index 00000000..007b7277
Binary files /dev/null and b/public/gfiles/html5games/chess/icons/backward.png differ
diff --git a/public/gfiles/html5games/chess/icons/forward.png b/public/gfiles/html5games/chess/icons/forward.png
new file mode 100644
index 00000000..e8fc9f59
Binary files /dev/null and b/public/gfiles/html5games/chess/icons/forward.png differ
diff --git a/public/gfiles/html5games/chess/icons/go-next.png b/public/gfiles/html5games/chess/icons/go-next.png
new file mode 100644
index 00000000..aadd5fd4
Binary files /dev/null and b/public/gfiles/html5games/chess/icons/go-next.png differ
diff --git a/public/gfiles/html5games/chess/icons/go-previous.png b/public/gfiles/html5games/chess/icons/go-previous.png
new file mode 100644
index 00000000..fe38ac12
Binary files /dev/null and b/public/gfiles/html5games/chess/icons/go-previous.png differ
diff --git a/public/gfiles/html5games/chess/icons/help-hint.png b/public/gfiles/html5games/chess/icons/help-hint.png
new file mode 100644
index 00000000..67c635f3
Binary files /dev/null and b/public/gfiles/html5games/chess/icons/help-hint.png differ
diff --git a/public/gfiles/html5games/chess/icons/play.png b/public/gfiles/html5games/chess/icons/play.png
new file mode 100644
index 00000000..021215b4
Binary files /dev/null and b/public/gfiles/html5games/chess/icons/play.png differ
diff --git a/public/gfiles/html5games/chess/icons/reverse-play.png b/public/gfiles/html5games/chess/icons/reverse-play.png
new file mode 100644
index 00000000..69d4e103
Binary files /dev/null and b/public/gfiles/html5games/chess/icons/reverse-play.png differ
diff --git a/public/gfiles/html5games/chess/icons/skip-backward.png b/public/gfiles/html5games/chess/icons/skip-backward.png
new file mode 100644
index 00000000..e40a6f8b
Binary files /dev/null and b/public/gfiles/html5games/chess/icons/skip-backward.png differ
diff --git a/public/gfiles/html5games/chess/icons/skip-forward.png b/public/gfiles/html5games/chess/icons/skip-forward.png
new file mode 100644
index 00000000..eab2ba17
Binary files /dev/null and b/public/gfiles/html5games/chess/icons/skip-forward.png differ
diff --git a/public/gfiles/html5games/chess/icons/stop.png b/public/gfiles/html5games/chess/icons/stop.png
new file mode 100644
index 00000000..513eaea6
Binary files /dev/null and b/public/gfiles/html5games/chess/icons/stop.png differ
diff --git a/public/gfiles/html5games/chess/index.html b/public/gfiles/html5games/chess/index.html
new file mode 100644
index 00000000..706daa38
--- /dev/null
+++ b/public/gfiles/html5games/chess/index.html
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+
Chess
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/public/gfiles/html5games/chess/meshes/bishop.jscn b/public/gfiles/html5games/chess/meshes/bishop.jscn
new file mode 100644
index 00000000..96cfed6f
--- /dev/null
+++ b/public/gfiles/html5games/chess/meshes/bishop.jscn
@@ -0,0 +1,833 @@
+this.obj = [{
+ "vrt": [
+ [2.6393, 0.1425, -2.6346],
+ [2.6459, 1.6177, -2.6412],
+ [1.3795, 2.7277, -1.3748],
+ [1.8809, 3.5641, -1.4595],
+ [0.8151, 7.6582, -0.8103],
+ [1.3146, 8.2446, -1.3098],
+ [0.7789, 9.0617, -0.7692],
+ [2.6393, 0.1425, 2.6394],
+ [2.6459, 1.6177, 2.646],
+ [1.3795, 2.7277, 1.3796],
+ [1.8809, 3.5641, 1.4643],
+ [0.8151, 7.6582, 0.8152],
+ [1.3146, 8.2446, 1.3146],
+ [0.7709, 9.0669, 0.7723],
+ [-2.6346, 0.1425, 2.6394],
+ [-2.6412, 1.6177, 2.646],
+ [-1.3748, 2.7277, 1.3796],
+ [-1.8762, 3.5641, 1.4643],
+ [-0.8104, 7.6582, 0.8152],
+ [-1.3098, 8.2446, 1.3146],
+ [-0.7647, 9.0659, 0.7767],
+ [-2.6346, 0.1425, -2.6346],
+ [-2.6412, 1.6177, -2.6412],
+ [-1.3748, 2.7277, -1.3748],
+ [-1.8762, 3.5641, -1.4595],
+ [-0.8104, 7.6582, -0.8103],
+ [-1.3098, 8.2446, -1.3098],
+ [-0.7614, 9.0669, -0.7681],
+ [-1.291, 11.103, 1.2177],
+ [0.0046, 11.103, 1.8867],
+ [1.3002, 11.103, 1.2177],
+ [-0.9301, 12.4285, 0.8711],
+ [0.0046, 12.9403, 1.2177],
+ [0.8991, 12.461, 0.8731],
+ [-1.291, 11.103, -1.2711],
+ [0.0046, 11.103, -1.9402],
+ [1.3002, 11.103, -1.2711],
+ [-0.9301, 12.4285, -0.9245],
+ [0.0046, 12.9403, -1.2711],
+ [0.8991, 12.461, -0.9265],
+ [1.9969, 11.103, -0.0267],
+ [1.14, 12.756, -0.0267],
+ [0.0011, 13.3749, -0.032],
+ [-1.1562, 12.7491, -0.0267],
+ [-1.9876, 11.103, -0.0267],
+ [0.5079, 11.6252, 1.5359],
+ [1.0116, 12.1284, 0.9614],
+ [1.0116, 12.1284, -1.0149],
+ [0.5079, 11.6252, -1.5894],
+ [1.3173, 12.4506, -0.0267],
+ [0.2755, 11.8212, -1.6275],
+ [0.2755, 11.8212, 1.574],
+ [-0.4713, 13.97, -0.3942],
+ [0.4614, 13.97, -0.3942],
+ [0.4614, 13.97, 0.3199],
+ [-0.4713, 13.97, 0.3199],
+ [-0.005, 14.3261, -0.0372]
+ ],
+ "fac": [
+ [0, 8, 1, 0],
+ [0, 7, 8, 0],
+ [1, 9, 2, 0],
+ [1, 8, 9, 0],
+ [2, 10, 3, 0],
+ [2, 9, 10, 0],
+ [3, 11, 4, 0],
+ [3, 10, 11, 0],
+ [4, 12, 5, 0],
+ [4, 11, 12, 0],
+ [5, 13, 6, 0],
+ [5, 12, 13, 0],
+ [7, 15, 8, 0],
+ [7, 14, 15, 0],
+ [8, 16, 9, 0],
+ [8, 15, 16, 0],
+ [9, 17, 10, 0],
+ [9, 16, 17, 0],
+ [10, 18, 11, 0],
+ [10, 17, 18, 0],
+ [11, 19, 12, 0],
+ [11, 18, 19, 0],
+ [12, 20, 13, 0],
+ [12, 19, 20, 0],
+ [7, 21, 14, 0],
+ [14, 22, 15, 0],
+ [14, 21, 22, 0],
+ [15, 23, 16, 0],
+ [15, 22, 23, 0],
+ [16, 24, 17, 0],
+ [16, 23, 24, 0],
+ [17, 25, 18, 0],
+ [17, 24, 25, 0],
+ [18, 26, 19, 0],
+ [18, 25, 26, 0],
+ [19, 27, 20, 0],
+ [19, 26, 27, 0],
+ [7, 0, 21, 0],
+ [21, 1, 22, 0],
+ [21, 0, 1, 0],
+ [22, 2, 23, 0],
+ [22, 1, 2, 0],
+ [23, 3, 24, 0],
+ [23, 2, 3, 0],
+ [24, 4, 25, 0],
+ [24, 3, 4, 0],
+ [25, 5, 26, 0],
+ [25, 4, 5, 0],
+ [26, 6, 27, 0],
+ [26, 5, 6, 0],
+ [20, 28, 29, 1],
+ [32, 29, 28, 1],
+ [28, 31, 32, 1],
+ [35, 34, 27, 0],
+ [27, 6, 35, 0],
+ [36, 35, 6, 0],
+ [38, 37, 34, 0],
+ [34, 35, 38, 0],
+ [50, 39, 38, 0],
+ [50, 38, 35, 0],
+ [48, 50, 35, 0],
+ [48, 35, 36, 0],
+ [48, 36, 47, 0],
+ [13, 30, 40, 0],
+ [46, 49, 40, 0],
+ [40, 30, 46, 0],
+ [42, 41, 33, 0],
+ [33, 32, 42, 0],
+ [37, 38, 42, 0],
+ [42, 43, 37, 0],
+ [34, 37, 43, 0],
+ [43, 44, 34, 0],
+ [27, 34, 44, 0],
+ [32, 33, 51, 1],
+ [45, 46, 30, 1],
+ [45, 30, 29, 1],
+ [51, 45, 29, 1],
+ [32, 51, 29, 1],
+ [47, 36, 40, 0],
+ [40, 49, 47, 0],
+ [53, 52, 42, 0],
+ [54, 53, 42, 0],
+ [55, 54, 42, 0],
+ [52, 55, 42, 0],
+ [53, 56, 52, 0],
+ [54, 56, 53, 0],
+ [55, 56, 54, 0],
+ [52, 56, 55, 0],
+ [13, 40, 6, 0],
+ [6, 40, 36, 0],
+ [20, 29, 13, 0],
+ [13, 29, 30, 0],
+ [27, 44, 20, 0],
+ [20, 44, 28, 0],
+ [44, 43, 28, 0],
+ [28, 43, 31, 0],
+ [31, 43, 42, 0],
+ [31, 42, 32, 0],
+ [41, 42, 39, 0],
+ [39, 42, 38, 0],
+ [51, 50, 45, 0],
+ [45, 50, 48, 0],
+ [51, 33, 50, 0],
+ [33, 41, 50, 0],
+ [41, 39, 50, 0],
+ [45, 48, 46, 0],
+ [46, 48, 49, 0],
+ [49, 48, 47, 0]
+ ],
+ "nrm": [
+ [0.7071, -0.7071, -0.0045],
+ [0.7071, -0.7071, -0.0045],
+ [0.4661, -0.4661, 0.752],
+ [0.4661, -0.4661, 0.752],
+ [0.6065, -0.6065, -0.5142],
+ [0.6065, -0.6065, -0.5142],
+ [0.6843, -0.6843, 0.2519],
+ [0.6843, -0.6843, 0.2519],
+ [0.5383, -0.5383, -0.6484],
+ [0.5383, -0.5383, -0.6484],
+ [0.5901, -0.5936, 0.5472],
+ [0.5898, -0.5898, 0.5515],
+ [-0.7071, -0.7071, -0.0045],
+ [-0.7071, -0.7071, -0.0045],
+ [-0.4661, -0.4661, 0.752],
+ [-0.4661, -0.4661, 0.752],
+ [-0.7035, -0.7035, -0.1008],
+ [-0.7035, -0.7035, -0.1008],
+ [-0.6984, -0.6984, 0.1566],
+ [-0.6984, -0.6984, 0.1566],
+ [-0.5383, -0.5383, -0.6484],
+ [-0.5383, -0.5383, -0.6484],
+ [-0.5884, -0.5913, 0.5515],
+ [-0.5915, -0.5915, 0.5479],
+ [-0, 0, -1],
+ [-0.7071, 0.7071, -0.0045],
+ [-0.7071, 0.7071, -0.0045],
+ [-0.4661, 0.4661, 0.752],
+ [-0.4661, 0.4661, 0.752],
+ [-0.6065, 0.6065, -0.5142],
+ [-0.6065, 0.6065, -0.5142],
+ [-0.6843, 0.6843, 0.2519],
+ [-0.6843, 0.6843, 0.2519],
+ [-0.5383, 0.5383, -0.6484],
+ [-0.5383, 0.5383, -0.6484],
+ [-0.5884, 0.5904, 0.5524],
+ [-0.5882, 0.5882, 0.5549],
+ [0, 0, -1],
+ [0.7071, 0.7071, -0.0045],
+ [0.7071, 0.7071, -0.0045],
+ [0.4661, 0.4661, 0.752],
+ [0.4661, 0.4661, 0.752],
+ [0.7035, 0.7035, -0.1008],
+ [0.7035, 0.7035, -0.1008],
+ [0.6984, 0.6984, 0.1566],
+ [0.6984, 0.6984, 0.1566],
+ [0.5383, 0.5383, -0.6484],
+ [0.5383, 0.5383, -0.6484],
+ [0.5917, 0.5899, 0.5496],
+ [0.5897, 0.5897, 0.5518],
+ [-0.9098, -0.2901, -0.2969],
+ [-0.9065, -0.2891, 0.3078],
+ [-0.9121, -0.2252, 0.3425],
+ [0.2878, 0.9023, -0.321],
+ [0.6114, 0.6147, -0.4983],
+ [0.9032, 0.288, -0.3182],
+ [0.2252, 0.9121, 0.3425],
+ [0.2891, 0.9065, 0.3078],
+ [0.9071, 0.2001, 0.3703],
+ [0.7778, 0.5306, 0.3369],
+ [0.8899, 0.3787, 0.2543],
+ [0.9415, 0.3003, 0.1528],
+ [0.9243, 0.1661, 0.3436],
+ [0.2576, -0.9129, -0.3166],
+ [0.306, -0.857, 0.4147],
+ [0.2549, -0.9033, 0.3451],
+ [0.0394, -0.5822, 0.8121],
+ [0.1825, -0.5733, 0.7988],
+ [-0.1829, 0.5791, 0.7945],
+ [-0.028, 0.591, 0.8062],
+ [-0.3833, 0.8632, 0.3287],
+ [-0.2485, 0.8807, 0.4033],
+ [-0.2565, 0.909, -0.3284],
+ [-0.2001, -0.9071, 0.3703],
+ [-0.1661, -0.9243, 0.3436],
+ [-0.3003, -0.9415, 0.1528],
+ [-0.3787, -0.8899, 0.2543],
+ [-0.5306, -0.7778, 0.3369],
+ [0.9033, -0.2549, 0.3451],
+ [0.857, -0.306, 0.4147],
+ [0.604, 0.604, -0.52],
+ [0.5593, -0.5593, -0.6118],
+ [-0.6087, -0.6087, -0.5089],
+ [-0.5538, 0.5538, -0.6218],
+ [0.4993, 0.4993, 0.708],
+ [0.4291, -0.4291, 0.7948],
+ [-0.4993, -0.4993, 0.708],
+ [-0.4291, 0.4291, 0.7948],
+ [0.6021, -0.6109, -0.514],
+ [0.9104, -0.2569, -0.3244],
+ [-0.6186, -0.6226, -0.4793],
+ [-0.2899, -0.9091, -0.2993],
+ [-0.6044, 0.6075, -0.5153],
+ [-0.9136, 0.2578, -0.3144],
+ [-0.8807, 0.2485, 0.4033],
+ [-0.8632, 0.3833, 0.3287],
+ [-0.589, 0.0261, 0.8077],
+ [-0.5775, 0.1841, 0.7954],
+ [0.5843, -0.0411, 0.8105],
+ [0.5749, -0.1813, 0.7979],
+ [0.4558, -0.4558, 0.7645],
+ [0.4558, -0.4558, 0.7645],
+ [0.5064, -0.5064, -0.698],
+ [0.5413, -0.5172, -0.663],
+ [0.4445, -0.5228, -0.7274],
+ [-0.4998, 0.4998, 0.7074],
+ [-0.5112, 0.5047, 0.6957],
+ [-0.4789, 0.5054, 0.7178]
+ ],
+ "tex": [
+ [
+ [7.2839, -24.849],
+ [-12.017, -17.2137],
+ [7.3321, -17.2137]
+ ],
+ [
+ [7.2839, -24.849],
+ [-12.017, -24.849],
+ [-12.017, -17.2137]
+ ],
+ [
+ [7.3321, -17.2137],
+ [-12.017, -11.4689],
+ [-1.9372, -11.4688]
+ ],
+ [
+ [7.3321, -17.2137],
+ [-12.017, -17.2137],
+ [-12.017, -11.4689]
+ ],
+ [
+ [-1.9372, -11.4688],
+ [-12.017, -5.1848],
+ [-1.3167, -5.1847]
+ ],
+ [
+ [-1.9372, -11.4688],
+ [-12.017, -11.4689],
+ [-12.017, -5.1848]
+ ],
+ [
+ [-1.3167, -5.1847],
+ [-12.017, 17.728],
+ [-6.0682, 17.728]
+ ],
+ [
+ [-1.3167, -5.1847],
+ [-12.017, -5.1848],
+ [-12.017, 17.728]
+ ],
+ [
+ [-6.0682, 17.728],
+ [-12.017, 20.7633],
+ [-2.4126, 20.7633]
+ ],
+ [
+ [-6.0682, 17.728],
+ [-12.017, 17.728],
+ [-12.017, 20.7633]
+ ],
+ [
+ [-2.4126, 20.7633],
+ [-12.017, 24.996],
+ [-4.9863, 24.996]
+ ],
+ [
+ [-2.4126, 20.7633],
+ [-12.017, 20.7633],
+ [-12.017, 24.996]
+ ],
+ [
+ [-12.017, -24.849],
+ [-31.3662, -17.2137],
+ [-12.017, -17.2137]
+ ],
+ [
+ [-12.017, -24.849],
+ [-31.318, -24.849],
+ [-31.3662, -17.2137]
+ ],
+ [
+ [-12.017, -17.2137],
+ [-22.0969, -11.4688],
+ [-12.017, -11.4689]
+ ],
+ [
+ [-12.017, -17.2137],
+ [-31.3662, -17.2137],
+ [-22.0969, -11.4688]
+ ],
+ [
+ [-12.017, -11.4689],
+ [-22.7174, -5.1847],
+ [-12.017, -5.1848]
+ ],
+ [
+ [-12.017, -11.4689],
+ [-22.0969, -11.4688],
+ [-22.7174, -5.1847]
+ ],
+ [
+ [-12.017, -5.1848],
+ [-17.9659, 17.728],
+ [-12.017, 17.728]
+ ],
+ [
+ [-12.017, -5.1848],
+ [-22.7174, -5.1847],
+ [-17.9659, 17.728]
+ ],
+ [
+ [-12.017, 17.728],
+ [-21.6214, 20.7633],
+ [-12.017, 20.7633]
+ ],
+ [
+ [-12.017, 17.728],
+ [-17.9659, 17.728],
+ [-21.6214, 20.7633]
+ ],
+ [
+ [-12.017, 20.7633],
+ [-19.0478, 24.996],
+ [-12.017, 24.996]
+ ],
+ [
+ [-12.017, 20.7633],
+ [-21.6214, 20.7633],
+ [-19.0478, 24.996]
+ ],
+ [
+ [-12.017, -24.849],
+ [-12.017, -24.849],
+ [-31.318, -24.849]
+ ],
+ [
+ [-31.318, -24.849],
+ [-12.017, -17.2137],
+ [-31.3662, -17.2137]
+ ],
+ [
+ [-31.318, -24.849],
+ [-12.017, -24.849],
+ [-12.017, -17.2137]
+ ],
+ [
+ [-31.3662, -17.2137],
+ [-12.017, -11.4688],
+ [-22.0969, -11.4688]
+ ],
+ [
+ [-31.3662, -17.2137],
+ [-12.017, -17.2137],
+ [-12.017, -11.4688]
+ ],
+ [
+ [-22.0969, -11.4688],
+ [-12.017, -5.1847],
+ [-22.7174, -5.1847]
+ ],
+ [
+ [-22.0969, -11.4688],
+ [-12.017, -11.4688],
+ [-12.017, -5.1847]
+ ],
+ [
+ [-22.7174, -5.1847],
+ [-12.017, 17.728],
+ [-17.9659, 17.728]
+ ],
+ [
+ [-22.7174, -5.1847],
+ [-12.017, -5.1847],
+ [-12.017, 17.728]
+ ],
+ [
+ [-17.9659, 17.728],
+ [-12.017, 20.7633],
+ [-21.6214, 20.7633]
+ ],
+ [
+ [-17.9659, 17.728],
+ [-12.017, 17.728],
+ [-12.017, 20.7633]
+ ],
+ [
+ [-21.6214, 20.7633],
+ [-12.017, 24.996],
+ [-19.0478, 24.996]
+ ],
+ [
+ [-21.6214, 20.7633],
+ [-12.017, 20.7633],
+ [-12.017, 24.996]
+ ],
+ [
+ [-12.017, -24.849],
+ [7.2839, -24.849],
+ [-12.017, -24.849]
+ ],
+ [
+ [-12.017, -24.849],
+ [7.3321, -17.2137],
+ [-12.017, -17.2137]
+ ],
+ [
+ [-12.017, -24.849],
+ [7.2839, -24.849],
+ [7.3321, -17.2137]
+ ],
+ [
+ [-12.017, -17.2137],
+ [-1.9372, -11.4688],
+ [-12.017, -11.4688]
+ ],
+ [
+ [-12.017, -17.2137],
+ [7.3321, -17.2137],
+ [-1.9372, -11.4688]
+ ],
+ [
+ [-12.017, -11.4688],
+ [-1.3167, -5.1847],
+ [-12.017, -5.1847]
+ ],
+ [
+ [-12.017, -11.4688],
+ [-1.9372, -11.4688],
+ [-1.3167, -5.1847]
+ ],
+ [
+ [-12.017, -5.1847],
+ [-6.0682, 17.728],
+ [-12.017, 17.728]
+ ],
+ [
+ [-12.017, -5.1847],
+ [-1.3167, -5.1847],
+ [-6.0682, 17.728]
+ ],
+ [
+ [-12.017, 17.728],
+ [-2.4126, 20.7633],
+ [-12.017, 20.7633]
+ ],
+ [
+ [-12.017, 17.728],
+ [-6.0682, 17.728],
+ [-2.4126, 20.7633]
+ ],
+ [
+ [-12.017, 20.7633],
+ [-4.9863, 24.996],
+ [-12.017, 24.996]
+ ],
+ [
+ [-12.017, 20.7633],
+ [-2.4126, 20.7633],
+ [-4.9863, 24.996]
+ ],
+ [
+ [1, 0],
+ [1, 0.5],
+ [0.5, 0.5]
+ ],
+ [
+ [0.5, 1],
+ [0.5, 0.5],
+ [1, 0.5]
+ ],
+ [
+ [1, 0.5],
+ [1, 1],
+ [0.5, 1]
+ ],
+ [
+ [0.5, 0.5],
+ [0, 0.5],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [0.5, 0],
+ [0.5, 0.5]
+ ],
+ [
+ [1, 0.5],
+ [0.5, 0.5],
+ [0.5, 0]
+ ],
+ [
+ [0.5, 1],
+ [0, 1],
+ [0, 0.5]
+ ],
+ [
+ [0, 0.5],
+ [0.5, 0.5],
+ [0.5, 1]
+ ],
+ [
+ [0.6018, 0.6679],
+ [1, 0.9941],
+ [0.5, 1]
+ ],
+ [
+ [0.6018, 0.6679],
+ [0.5, 1],
+ [0.5, 0.5]
+ ],
+ [
+ [0.7009, 0.6308],
+ [0.6018, 0.6679],
+ [0.5, 0.5]
+ ],
+ [
+ [0.7009, 0.6308],
+ [0.5, 0.5],
+ [1, 0.5]
+ ],
+ [
+ [0.7009, 0.6308],
+ [1, 0.5],
+ [1, 0.8697]
+ ],
+ [
+ [0, 0],
+ [0.5, 0],
+ [0.5, 0.5]
+ ],
+ [
+ [0.8697, 0],
+ [0.8955, 0.5],
+ [0.5, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [0.5, 0],
+ [0.8697, 0]
+ ],
+ [
+ [0.5, 0.5],
+ [0, 0.5],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [0.5, 0],
+ [0.5, 0.5]
+ ],
+ [
+ [1, 1],
+ [0.5, 1],
+ [0.5, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [1, 0.5],
+ [1, 1]
+ ],
+ [
+ [0.5, 1],
+ [0, 1],
+ [0, 0.5]
+ ],
+ [
+ [0, 0.5],
+ [0.5, 0.5],
+ [0.5, 1]
+ ],
+ [
+ [1, 1],
+ [0.5, 1],
+ [0.5, 0.5]
+ ],
+ [
+ [0.5, 1],
+ [0, 0.9941],
+ [0.3952, 0.6709]
+ ],
+ [
+ [0.2991, 0.6308],
+ [0, 0.8697],
+ [0, 0.5]
+ ],
+ [
+ [0.2991, 0.6308],
+ [0, 0.5],
+ [0.5, 0.5]
+ ],
+ [
+ [0.3952, 0.6709],
+ [0.2991, 0.6308],
+ [0.5, 0.5]
+ ],
+ [
+ [0.5, 1],
+ [0.3952, 0.6709],
+ [0.5, 0.5]
+ ],
+ [
+ [0.8697, 1],
+ [0.5, 1],
+ [0.5, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [0.8955, 0.5],
+ [0.8697, 1]
+ ],
+ [
+ [1, -0],
+ [0, -0],
+ [0.5, 1]
+ ],
+ [
+ [1, -0],
+ [0, -0],
+ [0.5, 1]
+ ],
+ [
+ [1, -0],
+ [0, -0],
+ [0.5, 1]
+ ],
+ [
+ [1, -0],
+ [0, -0],
+ [0.5, 1]
+ ],
+ [
+ [1, 1],
+ [0.5, 0.5],
+ [0, 1]
+ ],
+ [
+ [1, 0],
+ [0.5, 0.5],
+ [1, 1]
+ ],
+ [
+ [0, 0],
+ [0.5, 0.5],
+ [1, 0]
+ ],
+ [
+ [0, 1],
+ [0.5, 0.5],
+ [0, 0]
+ ],
+ [
+ [-12.017, 24.996],
+ [0.5, 0.5],
+ [-4.9863, 24.996]
+ ],
+ [
+ [-4.9863, 24.996],
+ [0.5, 0.5],
+ [1, 0.5]
+ ],
+ [
+ [-19.0478, 24.996],
+ [0.5, 0.5],
+ [-12.017, 24.996]
+ ],
+ [
+ [-12.017, 24.996],
+ [0.5, 0.5],
+ [0, 0.5]
+ ],
+ [
+ [-12.017, 24.996],
+ [0.5, 0.5],
+ [-19.0478, 24.996]
+ ],
+ [
+ [-19.0478, 24.996],
+ [0.5, 0.5],
+ [1, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [1, 0.5],
+ [1, 0.5]
+ ],
+ [
+ [1, 0.5],
+ [1, 0.5],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [1, 0.5],
+ [0.5, 0.5]
+ ],
+ [
+ [1, 1],
+ [0.5, 0.5],
+ [0.5, 1]
+ ],
+ [
+ [1, 0.5],
+ [0.5, 0.5],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0.5, 0.5],
+ [0.5, 1]
+ ],
+ [
+ [0.3952, 0.6709],
+ [0.6018, 0.6679],
+ [0.2991, 0.6308]
+ ],
+ [
+ [0.2991, 0.6308],
+ [0.6018, 0.6679],
+ [0.7009, 0.6308]
+ ],
+ [
+ [0.3952, 0.6709],
+ [0, 0],
+ [0.6018, 0.6679]
+ ],
+ [
+ [0, 0],
+ [1, 0.5],
+ [0.6018, 0.6679]
+ ],
+ [
+ [1, 0.5],
+ [1, 1],
+ [0.6018, 0.6679]
+ ],
+ [
+ [0.2991, 0.6308],
+ [0.7009, 0.6308],
+ [0.8697, 0]
+ ],
+ [
+ [0.8697, 0],
+ [0.7009, 0.6308],
+ [0.8955, 0.5]
+ ],
+ [
+ [0.8955, 0.5],
+ [0.7009, 0.6308],
+ [1, 0.8697]
+ ]
+ ]
+}];
+this.mat = [{
+ "r": 150,
+ "g": 150,
+ "b": 150
+},
+{
+ "r": 150,
+ "g": 150,
+ "b": 150
+}];
diff --git a/public/gfiles/html5games/chess/meshes/board.json b/public/gfiles/html5games/chess/meshes/board.json
new file mode 100644
index 00000000..71beab0d
--- /dev/null
+++ b/public/gfiles/html5games/chess/meshes/board.json
@@ -0,0 +1,999 @@
+{
+ "obj": [{
+ "vrt": [
+ [-40, 0, -40],
+ [-30, 0, -40],
+ [-20, 0, -40],
+ [-10, 0, -40],
+ [0, 0, -40],
+ [10, 0, -40],
+ [20, 0, -40],
+ [30, 0, -40],
+ [40, 0, -40],
+ [-40, 0, -30],
+ [-30, 0, -30],
+ [-20, 0, -30],
+ [-10, 0, -30],
+ [0, 0, -30],
+ [10, 0, -30],
+ [20, 0, -30],
+ [30, 0, -30],
+ [40, 0, -30],
+ [-40, 0, -20],
+ [-30, 0, -20],
+ [-20, 0, -20],
+ [-10, 0, -20],
+ [0, 0, -20],
+ [10, 0, -20],
+ [20, 0, -20],
+ [30, 0, -20],
+ [40, 0, -20],
+ [-40, 0, -10],
+ [-30, 0, -10],
+ [-20, 0, -10],
+ [-10, 0, -10],
+ [0, 0, -10],
+ [10, 0, -10],
+ [20, 0, -10],
+ [30, 0, -10],
+ [40, 0, -10],
+ [-40, 0, 0],
+ [-30, 0, 0],
+ [-20, 0, 0],
+ [-10, 0, 0],
+ [0, 0, 0],
+ [10, 0, 0],
+ [20, 0, 0],
+ [30, 0, 0],
+ [40, 0, 0],
+ [-40, 0, 10],
+ [-30, 0, 10],
+ [-20, 0, 10],
+ [-10, 0, 10],
+ [0, 0, 10],
+ [10, 0, 10],
+ [20, 0, 10],
+ [30, 0, 10],
+ [40, 0, 10],
+ [-40, 0, 20],
+ [-30, 0, 20],
+ [-20, 0, 20],
+ [-10, 0, 20],
+ [0, 0, 20],
+ [10, 0, 20],
+ [20, 0, 20],
+ [30, 0, 20],
+ [40, 0, 20],
+ [-40, 0, 30],
+ [-30, 0, 30],
+ [-20, 0, 30],
+ [-10, 0, 30],
+ [0, 0, 30],
+ [10, 0, 30],
+ [20, 0, 30],
+ [30, 0, 30],
+ [40, 0, 30],
+ [-40, 0, 40],
+ [-30, 0, 40],
+ [-20, 0, 40],
+ [-10, 0, 40],
+ [0, 0, 40],
+ [10, 0, 40],
+ [20, 0, 40],
+ [30, 0, 40],
+ [40, 0, 40]
+ ],
+ "fac": [
+ [9, 0, 10, 0],
+ [1, 10, 0, 0],
+ [10, 1, 11, 1],
+ [2, 11, 1, 1],
+ [11, 2, 12, 0],
+ [3, 12, 2, 0],
+ [12, 3, 13, 1],
+ [4, 13, 3, 1],
+ [13, 4, 14, 0],
+ [5, 14, 4, 0],
+ [14, 5, 15, 1],
+ [6, 15, 5, 1],
+ [15, 6, 16, 0],
+ [7, 16, 6, 0],
+ [16, 7, 17, 1],
+ [8, 17, 7, 1],
+ [18, 9, 19, 1],
+ [10, 19, 9, 1],
+ [19, 10, 20, 0],
+ [11, 20, 10, 0],
+ [20, 11, 21, 1],
+ [12, 21, 11, 1],
+ [21, 12, 22, 0],
+ [13, 22, 12, 0],
+ [22, 13, 23, 1],
+ [14, 23, 13, 1],
+ [23, 14, 24, 0],
+ [15, 24, 14, 0],
+ [24, 15, 25, 1],
+ [16, 25, 15, 1],
+ [25, 16, 26, 0],
+ [17, 26, 16, 0],
+ [27, 18, 28, 0],
+ [19, 28, 18, 0],
+ [28, 19, 29, 1],
+ [20, 29, 19, 1],
+ [29, 20, 30, 0],
+ [21, 30, 20, 0],
+ [30, 21, 31, 1],
+ [22, 31, 21, 1],
+ [31, 22, 32, 0],
+ [23, 32, 22, 0],
+ [32, 23, 33, 1],
+ [24, 33, 23, 1],
+ [33, 24, 34, 0],
+ [25, 34, 24, 0],
+ [34, 25, 35, 1],
+ [26, 35, 25, 1],
+ [36, 27, 37, 1],
+ [28, 37, 27, 1],
+ [37, 28, 38, 0],
+ [29, 38, 28, 0],
+ [38, 29, 39, 1],
+ [30, 39, 29, 1],
+ [39, 30, 40, 0],
+ [31, 40, 30, 0],
+ [40, 31, 41, 1],
+ [32, 41, 31, 1],
+ [41, 32, 42, 0],
+ [33, 42, 32, 0],
+ [42, 33, 43, 1],
+ [34, 43, 33, 1],
+ [43, 34, 44, 0],
+ [35, 44, 34, 0],
+ [45, 36, 46, 0],
+ [37, 46, 36, 0],
+ [46, 37, 47, 1],
+ [38, 47, 37, 1],
+ [47, 38, 48, 0],
+ [39, 48, 38, 0],
+ [48, 39, 49, 1],
+ [40, 49, 39, 1],
+ [49, 40, 50, 0],
+ [41, 50, 40, 0],
+ [50, 41, 51, 1],
+ [42, 51, 41, 1],
+ [51, 42, 52, 0],
+ [43, 52, 42, 0],
+ [52, 43, 53, 1],
+ [44, 53, 43, 1],
+ [54, 45, 55, 1],
+ [46, 55, 45, 1],
+ [55, 46, 56, 0],
+ [47, 56, 46, 0],
+ [56, 47, 57, 1],
+ [48, 57, 47, 1],
+ [57, 48, 58, 0],
+ [49, 58, 48, 0],
+ [58, 49, 59, 1],
+ [50, 59, 49, 1],
+ [59, 50, 60, 0],
+ [51, 60, 50, 0],
+ [60, 51, 61, 1],
+ [52, 61, 51, 1],
+ [61, 52, 62, 0],
+ [53, 62, 52, 0],
+ [63, 54, 64, 0],
+ [55, 64, 54, 0],
+ [64, 55, 65, 1],
+ [56, 65, 55, 1],
+ [65, 56, 66, 0],
+ [57, 66, 56, 0],
+ [66, 57, 67, 1],
+ [58, 67, 57, 1],
+ [67, 58, 68, 0],
+ [59, 68, 58, 0],
+ [68, 59, 69, 1],
+ [60, 69, 59, 1],
+ [69, 60, 70, 0],
+ [61, 70, 60, 0],
+ [70, 61, 71, 1],
+ [62, 71, 61, 1],
+ [72, 63, 73, 1],
+ [64, 73, 63, 1],
+ [73, 64, 74, 0],
+ [65, 74, 64, 0],
+ [74, 65, 75, 1],
+ [66, 75, 65, 1],
+ [75, 66, 76, 0],
+ [67, 76, 66, 0],
+ [76, 67, 77, 1],
+ [68, 77, 67, 1],
+ [77, 68, 78, 0],
+ [69, 78, 68, 0],
+ [78, 69, 79, 1],
+ [70, 79, 69, 1],
+ [79, 70, 80, 0],
+ [71, 80, 70, 0]
+ ],
+ "nrm": [
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0],
+ [0, 1, 0]
+ ],
+ "tex": [
+ [
+ [0, 0.125],
+ [0, 0],
+ [0.125, 0.125]
+ ],
+ [
+ [0.125, 0],
+ [0.125, 0.125],
+ [0, 0]
+ ],
+ [
+ [0.125, 0.125],
+ [0.125, 0],
+ [0.25, 0.125]
+ ],
+ [
+ [0.25, 0],
+ [0.25, 0.125],
+ [0.125, 0]
+ ],
+ [
+ [0.25, 0.125],
+ [0.25, 0],
+ [0.375, 0.125]
+ ],
+ [
+ [0.375, 0],
+ [0.375, 0.125],
+ [0.25, 0]
+ ],
+ [
+ [0.375, 0.125],
+ [0.375, 0],
+ [0.5, 0.125]
+ ],
+ [
+ [0.5, 0],
+ [0.5, 0.125],
+ [0.375, 0]
+ ],
+ [
+ [0.5, 0.125],
+ [0.5, 0],
+ [0.625, 0.125]
+ ],
+ [
+ [0.625, 0],
+ [0.625, 0.125],
+ [0.5, 0]
+ ],
+ [
+ [0.625, 0.125],
+ [0.625, 0],
+ [0.75, 0.125]
+ ],
+ [
+ [0.75, 0],
+ [0.75, 0.125],
+ [0.625, 0]
+ ],
+ [
+ [0.75, 0.125],
+ [0.75, 0],
+ [0.875, 0.125]
+ ],
+ [
+ [0.875, 0],
+ [0.875, 0.125],
+ [0.75, 0]
+ ],
+ [
+ [0.875, 0.125],
+ [0.875, 0],
+ [1, 0.125]
+ ],
+ [
+ [1, 0],
+ [1, 0.125],
+ [0.875, 0]
+ ],
+ [
+ [0, 0.25],
+ [0, 0.125],
+ [0.125, 0.25]
+ ],
+ [
+ [0.125, 0.125],
+ [0.125, 0.25],
+ [0, 0.125]
+ ],
+ [
+ [0.125, 0.25],
+ [0.125, 0.125],
+ [0.25, 0.25]
+ ],
+ [
+ [0.25, 0.125],
+ [0.25, 0.25],
+ [0.125, 0.125]
+ ],
+ [
+ [0.25, 0.25],
+ [0.25, 0.125],
+ [0.375, 0.25]
+ ],
+ [
+ [0.375, 0.125],
+ [0.375, 0.25],
+ [0.25, 0.125]
+ ],
+ [
+ [0.375, 0.25],
+ [0.375, 0.125],
+ [0.5, 0.25]
+ ],
+ [
+ [0.5, 0.125],
+ [0.5, 0.25],
+ [0.375, 0.125]
+ ],
+ [
+ [0.5, 0.25],
+ [0.5, 0.125],
+ [0.625, 0.25]
+ ],
+ [
+ [0.625, 0.125],
+ [0.625, 0.25],
+ [0.5, 0.125]
+ ],
+ [
+ [0.625, 0.25],
+ [0.625, 0.125],
+ [0.75, 0.25]
+ ],
+ [
+ [0.75, 0.125],
+ [0.75, 0.25],
+ [0.625, 0.125]
+ ],
+ [
+ [0.75, 0.25],
+ [0.75, 0.125],
+ [0.875, 0.25]
+ ],
+ [
+ [0.875, 0.125],
+ [0.875, 0.25],
+ [0.75, 0.125]
+ ],
+ [
+ [0.875, 0.25],
+ [0.875, 0.125],
+ [1, 0.25]
+ ],
+ [
+ [1, 0.125],
+ [1, 0.25],
+ [0.875, 0.125]
+ ],
+ [
+ [0, 0.375],
+ [0, 0.25],
+ [0.125, 0.375]
+ ],
+ [
+ [0.125, 0.25],
+ [0.125, 0.375],
+ [0, 0.25]
+ ],
+ [
+ [0.125, 0.375],
+ [0.125, 0.25],
+ [0.25, 0.375]
+ ],
+ [
+ [0.25, 0.25],
+ [0.25, 0.375],
+ [0.125, 0.25]
+ ],
+ [
+ [0.25, 0.375],
+ [0.25, 0.25],
+ [0.375, 0.375]
+ ],
+ [
+ [0.375, 0.25],
+ [0.375, 0.375],
+ [0.25, 0.25]
+ ],
+ [
+ [0.375, 0.375],
+ [0.375, 0.25],
+ [0.5, 0.375]
+ ],
+ [
+ [0.5, 0.25],
+ [0.5, 0.375],
+ [0.375, 0.25]
+ ],
+ [
+ [0.5, 0.375],
+ [0.5, 0.25],
+ [0.625, 0.375]
+ ],
+ [
+ [0.625, 0.25],
+ [0.625, 0.375],
+ [0.5, 0.25]
+ ],
+ [
+ [0.625, 0.375],
+ [0.625, 0.25],
+ [0.75, 0.375]
+ ],
+ [
+ [0.75, 0.25],
+ [0.75, 0.375],
+ [0.625, 0.25]
+ ],
+ [
+ [0.75, 0.375],
+ [0.75, 0.25],
+ [0.875, 0.375]
+ ],
+ [
+ [0.875, 0.25],
+ [0.875, 0.375],
+ [0.75, 0.25]
+ ],
+ [
+ [0.875, 0.375],
+ [0.875, 0.25],
+ [1, 0.375]
+ ],
+ [
+ [1, 0.25],
+ [1, 0.375],
+ [0.875, 0.25]
+ ],
+ [
+ [0, 0.5],
+ [0, 0.375],
+ [0.125, 0.5]
+ ],
+ [
+ [0.125, 0.375],
+ [0.125, 0.5],
+ [0, 0.375]
+ ],
+ [
+ [0.125, 0.5],
+ [0.125, 0.375],
+ [0.25, 0.5]
+ ],
+ [
+ [0.25, 0.375],
+ [0.25, 0.5],
+ [0.125, 0.375]
+ ],
+ [
+ [0.25, 0.5],
+ [0.25, 0.375],
+ [0.375, 0.5]
+ ],
+ [
+ [0.375, 0.375],
+ [0.375, 0.5],
+ [0.25, 0.375]
+ ],
+ [
+ [0.375, 0.5],
+ [0.375, 0.375],
+ [0.5, 0.5]
+ ],
+ [
+ [0.5, 0.375],
+ [0.5, 0.5],
+ [0.375, 0.375]
+ ],
+ [
+ [0.5, 0.5],
+ [0.5, 0.375],
+ [0.625, 0.5]
+ ],
+ [
+ [0.625, 0.375],
+ [0.625, 0.5],
+ [0.5, 0.375]
+ ],
+ [
+ [0.625, 0.5],
+ [0.625, 0.375],
+ [0.75, 0.5]
+ ],
+ [
+ [0.75, 0.375],
+ [0.75, 0.5],
+ [0.625, 0.375]
+ ],
+ [
+ [0.75, 0.5],
+ [0.75, 0.375],
+ [0.875, 0.5]
+ ],
+ [
+ [0.875, 0.375],
+ [0.875, 0.5],
+ [0.75, 0.375]
+ ],
+ [
+ [0.875, 0.5],
+ [0.875, 0.375],
+ [1, 0.5]
+ ],
+ [
+ [1, 0.375],
+ [1, 0.5],
+ [0.875, 0.375]
+ ],
+ [
+ [0, 0.625],
+ [0, 0.5],
+ [0.125, 0.625]
+ ],
+ [
+ [0.125, 0.5],
+ [0.125, 0.625],
+ [0, 0.5]
+ ],
+ [
+ [0.125, 0.625],
+ [0.125, 0.5],
+ [0.25, 0.625]
+ ],
+ [
+ [0.25, 0.5],
+ [0.25, 0.625],
+ [0.125, 0.5]
+ ],
+ [
+ [0.25, 0.625],
+ [0.25, 0.5],
+ [0.375, 0.625]
+ ],
+ [
+ [0.375, 0.5],
+ [0.375, 0.625],
+ [0.25, 0.5]
+ ],
+ [
+ [0.375, 0.625],
+ [0.375, 0.5],
+ [0.5, 0.625]
+ ],
+ [
+ [0.5, 0.5],
+ [0.5, 0.625],
+ [0.375, 0.5]
+ ],
+ [
+ [0.5, 0.625],
+ [0.5, 0.5],
+ [0.625, 0.625]
+ ],
+ [
+ [0.625, 0.5],
+ [0.625, 0.625],
+ [0.5, 0.5]
+ ],
+ [
+ [0.625, 0.625],
+ [0.625, 0.5],
+ [0.75, 0.625]
+ ],
+ [
+ [0.75, 0.5],
+ [0.75, 0.625],
+ [0.625, 0.5]
+ ],
+ [
+ [0.75, 0.625],
+ [0.75, 0.5],
+ [0.875, 0.625]
+ ],
+ [
+ [0.875, 0.5],
+ [0.875, 0.625],
+ [0.75, 0.5]
+ ],
+ [
+ [0.875, 0.625],
+ [0.875, 0.5],
+ [1, 0.625]
+ ],
+ [
+ [1, 0.5],
+ [1, 0.625],
+ [0.875, 0.5]
+ ],
+ [
+ [0, 0.75],
+ [0, 0.625],
+ [0.125, 0.75]
+ ],
+ [
+ [0.125, 0.625],
+ [0.125, 0.75],
+ [0, 0.625]
+ ],
+ [
+ [0.125, 0.75],
+ [0.125, 0.625],
+ [0.25, 0.75]
+ ],
+ [
+ [0.25, 0.625],
+ [0.25, 0.75],
+ [0.125, 0.625]
+ ],
+ [
+ [0.25, 0.75],
+ [0.25, 0.625],
+ [0.375, 0.75]
+ ],
+ [
+ [0.375, 0.625],
+ [0.375, 0.75],
+ [0.25, 0.625]
+ ],
+ [
+ [0.375, 0.75],
+ [0.375, 0.625],
+ [0.5, 0.75]
+ ],
+ [
+ [0.5, 0.625],
+ [0.5, 0.75],
+ [0.375, 0.625]
+ ],
+ [
+ [0.5, 0.75],
+ [0.5, 0.625],
+ [0.625, 0.75]
+ ],
+ [
+ [0.625, 0.625],
+ [0.625, 0.75],
+ [0.5, 0.625]
+ ],
+ [
+ [0.625, 0.75],
+ [0.625, 0.625],
+ [0.75, 0.75]
+ ],
+ [
+ [0.75, 0.625],
+ [0.75, 0.75],
+ [0.625, 0.625]
+ ],
+ [
+ [0.75, 0.75],
+ [0.75, 0.625],
+ [0.875, 0.75]
+ ],
+ [
+ [0.875, 0.625],
+ [0.875, 0.75],
+ [0.75, 0.625]
+ ],
+ [
+ [0.875, 0.75],
+ [0.875, 0.625],
+ [1, 0.75]
+ ],
+ [
+ [1, 0.625],
+ [1, 0.75],
+ [0.875, 0.625]
+ ],
+ [
+ [0, 0.875],
+ [0, 0.75],
+ [0.125, 0.875]
+ ],
+ [
+ [0.125, 0.75],
+ [0.125, 0.875],
+ [0, 0.75]
+ ],
+ [
+ [0.125, 0.875],
+ [0.125, 0.75],
+ [0.25, 0.875]
+ ],
+ [
+ [0.25, 0.75],
+ [0.25, 0.875],
+ [0.125, 0.75]
+ ],
+ [
+ [0.25, 0.875],
+ [0.25, 0.75],
+ [0.375, 0.875]
+ ],
+ [
+ [0.375, 0.75],
+ [0.375, 0.875],
+ [0.25, 0.75]
+ ],
+ [
+ [0.375, 0.875],
+ [0.375, 0.75],
+ [0.5, 0.875]
+ ],
+ [
+ [0.5, 0.75],
+ [0.5, 0.875],
+ [0.375, 0.75]
+ ],
+ [
+ [0.5, 0.875],
+ [0.5, 0.75],
+ [0.625, 0.875]
+ ],
+ [
+ [0.625, 0.75],
+ [0.625, 0.875],
+ [0.5, 0.75]
+ ],
+ [
+ [0.625, 0.875],
+ [0.625, 0.75],
+ [0.75, 0.875]
+ ],
+ [
+ [0.75, 0.75],
+ [0.75, 0.875],
+ [0.625, 0.75]
+ ],
+ [
+ [0.75, 0.875],
+ [0.75, 0.75],
+ [0.875, 0.875]
+ ],
+ [
+ [0.875, 0.75],
+ [0.875, 0.875],
+ [0.75, 0.75]
+ ],
+ [
+ [0.875, 0.875],
+ [0.875, 0.75],
+ [1, 0.875]
+ ],
+ [
+ [1, 0.75],
+ [1, 0.875],
+ [0.875, 0.75]
+ ],
+ [
+ [0, 1],
+ [0, 0.875],
+ [0.125, 1]
+ ],
+ [
+ [0.125, 0.875],
+ [0.125, 1],
+ [0, 0.875]
+ ],
+ [
+ [0.125, 1],
+ [0.125, 0.875],
+ [0.25, 1]
+ ],
+ [
+ [0.25, 0.875],
+ [0.25, 1],
+ [0.125, 0.875]
+ ],
+ [
+ [0.25, 1],
+ [0.25, 0.875],
+ [0.375, 1]
+ ],
+ [
+ [0.375, 0.875],
+ [0.375, 1],
+ [0.25, 0.875]
+ ],
+ [
+ [0.375, 1],
+ [0.375, 0.875],
+ [0.5, 1]
+ ],
+ [
+ [0.5, 0.875],
+ [0.5, 1],
+ [0.375, 0.875]
+ ],
+ [
+ [0.5, 1],
+ [0.5, 0.875],
+ [0.625, 1]
+ ],
+ [
+ [0.625, 0.875],
+ [0.625, 1],
+ [0.5, 0.875]
+ ],
+ [
+ [0.625, 1],
+ [0.625, 0.875],
+ [0.75, 1]
+ ],
+ [
+ [0.75, 0.875],
+ [0.75, 1],
+ [0.625, 0.875]
+ ],
+ [
+ [0.75, 1],
+ [0.75, 0.875],
+ [0.875, 1]
+ ],
+ [
+ [0.875, 0.875],
+ [0.875, 1],
+ [0.75, 0.875]
+ ],
+ [
+ [0.875, 1],
+ [0.875, 0.875],
+ [1, 1]
+ ],
+ [
+ [1, 0.875],
+ [1, 1],
+ [0.875, 0.875]
+ ]
+ ]
+ }],
+ "mat": [{
+ "r": 226,
+ "g": 226,
+ "b": 226
+ },
+ {
+ "r": 132,
+ "g": 74,
+ "b": 74
+ }]
+}
diff --git a/public/gfiles/html5games/chess/meshes/king.jscn b/public/gfiles/html5games/chess/meshes/king.jscn
new file mode 100644
index 00000000..ca8fbc1d
--- /dev/null
+++ b/public/gfiles/html5games/chess/meshes/king.jscn
@@ -0,0 +1,308 @@
+this.obj = [{
+ "vrt": [
+ [2.7897, 0.1612, -2.7847],
+ [2.7967, 1.7205, -2.7916],
+ [1.4581, 2.8937, -1.4531],
+ [1.9454, 3.4599, -1.5194],
+ [0.8431, 8.8174, -0.8434],
+ [2.0425, 9.5848, -2.0509],
+ [0.8057, 10.654, -0.8005],
+ [2.7897, 0.1612, 2.7897],
+ [2.7966, 1.7205, 2.7967],
+ [1.4581, 2.8937, 1.4581],
+ [1.9454, 3.4599, 1.5253],
+ [0.8431, 8.8174, 0.8493],
+ [2.0425, 9.5848, 2.0568],
+ [0.7974, 10.6608, 0.8046],
+ [-2.7847, 0.1612, 2.7897],
+ [-2.7917, 1.7205, 2.7967],
+ [-1.4531, 2.8937, 1.4581],
+ [-1.9403, 3.4599, 1.5253],
+ [-0.838, 8.8174, 0.8493],
+ [-2.0373, 9.5848, 2.0568],
+ [-0.7907, 10.6595, 0.8092],
+ [-2.7847, 0.1612, -2.7847],
+ [-2.7917, 1.7205, -2.7916],
+ [-1.4531, 2.8937, -1.4531],
+ [-1.9403, 3.4599, -1.5194],
+ [-0.838, 8.8174, -0.8434],
+ [-2.0373, 9.5848, -2.0509],
+ [-0.7873, 10.6608, -0.7993],
+ [-1.4205, 12.2998, 1.3925],
+ [0.0023, 12.2998, 2.0575],
+ [1.4251, 12.2998, 1.3925],
+ [-1.4205, 12.2998, -1.417],
+ [0.0023, 12.2998, -2.0821],
+ [1.4251, 12.2998, -1.417],
+ [2.1005, 12.2998, -0.0123],
+ [-2.0959, 12.2998, -0.0123],
+ [2.8745, 14.7876, -0.0007],
+ [2.0327, 14.7876, 2.0455],
+ [0.0003, 14.7876, 2.8931],
+ [-2.032, 14.7876, 2.0455],
+ [-2.8738, 14.7876, -0.0007],
+ [-2.032, 14.7876, -2.0469],
+ [0.0003, 14.7876, -2.8945],
+ [2.0327, 14.7876, -2.0469],
+ [-0.0003, 15.6364, 0.0008],
+ [-0.2099, 16.942, -0.2376],
+ [-0.0003, 15.6199, -0.0134],
+ [0.215, 16.942, -0.2376],
+ [-0.6387, 16.8372, -0.0134],
+ [0.6382, 16.8372, -0.0134],
+ [-0.6387, 17.4438, -0.0134],
+ [-0.2099, 17.3345, -0.2376],
+ [0.2097, 17.3345, -0.2376],
+ [0.6382, 17.4438, -0.0134],
+ [-0.2619, 17.8473, -0.0134],
+ [0.2614, 17.8473, -0.0134],
+ [-0.2099, 16.942, 0.2109],
+ [0.215, 16.942, 0.2109],
+ [-0.2099, 17.3345, 0.2109],
+ [0.2097, 17.3345, 0.2109]
+ ],
+ "fac": [
+ [0, 8, 1, 0],
+ [0, 7, 8, 0],
+ [1, 9, 2, 0],
+ [1, 8, 9, 0],
+ [2, 10, 3, 0],
+ [2, 9, 10, 0],
+ [3, 11, 4, 0],
+ [3, 10, 11, 0],
+ [4, 12, 5, 0],
+ [4, 11, 12, 0],
+ [5, 13, 6, 0],
+ [5, 12, 13, 0],
+ [7, 15, 8, 0],
+ [7, 14, 15, 0],
+ [8, 16, 9, 0],
+ [8, 15, 16, 0],
+ [9, 17, 10, 0],
+ [9, 16, 17, 0],
+ [10, 18, 11, 0],
+ [10, 17, 18, 0],
+ [11, 19, 12, 0],
+ [11, 18, 19, 0],
+ [12, 20, 13, 0],
+ [12, 19, 20, 0],
+ [7, 21, 14, 0],
+ [14, 22, 15, 0],
+ [14, 21, 22, 0],
+ [15, 23, 16, 0],
+ [15, 22, 23, 0],
+ [16, 24, 17, 0],
+ [16, 23, 24, 0],
+ [17, 25, 18, 0],
+ [17, 24, 25, 0],
+ [18, 26, 19, 0],
+ [18, 25, 26, 0],
+ [19, 27, 20, 0],
+ [19, 26, 27, 0],
+ [7, 0, 21, 0],
+ [21, 1, 22, 0],
+ [21, 0, 1, 0],
+ [22, 2, 23, 0],
+ [22, 1, 2, 0],
+ [23, 3, 24, 0],
+ [23, 2, 3, 0],
+ [24, 4, 25, 0],
+ [24, 3, 4, 0],
+ [25, 5, 26, 0],
+ [25, 4, 5, 0],
+ [26, 6, 27, 0],
+ [26, 5, 6, 0],
+ [20, 28, 29, 0],
+ [32, 31, 27, 0],
+ [27, 6, 32, 0],
+ [33, 32, 6, 0],
+ [13, 30, 34, 0],
+ [27, 31, 35, 0],
+ [34, 37, 36, 0],
+ [34, 30, 37, 0],
+ [30, 38, 37, 0],
+ [30, 29, 38, 0],
+ [29, 39, 38, 0],
+ [29, 28, 39, 0],
+ [28, 40, 39, 0],
+ [28, 35, 40, 0],
+ [35, 41, 40, 0],
+ [35, 31, 41, 0],
+ [31, 42, 41, 0],
+ [31, 32, 42, 0],
+ [32, 43, 42, 0],
+ [32, 33, 43, 0],
+ [33, 36, 43, 0],
+ [33, 34, 36, 0],
+ [36, 37, 44, 0],
+ [37, 38, 44, 0],
+ [38, 39, 44, 0],
+ [39, 40, 44, 0],
+ [40, 41, 44, 0],
+ [41, 42, 44, 0],
+ [42, 43, 44, 0],
+ [43, 36, 44, 0],
+ [45, 46, 47, 0],
+ [50, 48, 51, 0],
+ [45, 51, 48, 0],
+ [51, 45, 52, 0],
+ [47, 52, 45, 0],
+ [52, 47, 53, 0],
+ [49, 53, 47, 0],
+ [54, 51, 55, 0],
+ [52, 55, 51, 0],
+ [56, 57, 46, 0],
+ [56, 48, 58, 0],
+ [50, 58, 48, 0],
+ [57, 56, 59, 0],
+ [58, 59, 56, 0],
+ [49, 57, 53, 0],
+ [59, 53, 57, 0],
+ [59, 58, 55, 0],
+ [54, 55, 58, 0],
+ [56, 46, 45, 0],
+ [47, 46, 57, 0],
+ [57, 49, 47, 0],
+ [52, 53, 59, 0],
+ [59, 55, 52, 0],
+ [51, 54, 58, 0],
+ [58, 50, 51, 0],
+ [45, 48, 56, 0],
+ [13, 34, 6, 0],
+ [6, 34, 33, 0],
+ [20, 29, 13, 0],
+ [13, 29, 30, 0],
+ [27, 35, 20, 0],
+ [35, 28, 20, 0]
+ ],
+ "nrm": [
+ [0.7071, -0.7071, -0.0045],
+ [0.7071, -0.7071, -0.0045],
+ [0.4661, -0.4661, 0.752],
+ [0.4661, -0.4661, 0.752],
+ [0.5359, -0.5359, -0.6524],
+ [0.5359, -0.5359, -0.6524],
+ [0.6926, -0.6926, 0.2015],
+ [0.6926, -0.6926, 0.2015],
+ [0.3811, -0.3811, -0.8423],
+ [0.3811, -0.3811, -0.8423],
+ [0.4624, -0.4626, 0.7565],
+ [0.4624, -0.4624, 0.7566],
+ [-0.7071, -0.7071, -0.0045],
+ [-0.7071, -0.7071, -0.0045],
+ [-0.4661, -0.4661, 0.752],
+ [-0.4661, -0.4661, 0.752],
+ [-0.7022, -0.7022, -0.1177],
+ [-0.7022, -0.7022, -0.1177],
+ [-0.7015, -0.7015, 0.1252],
+ [-0.7015, -0.7015, 0.1252],
+ [-0.3793, -0.3793, -0.844],
+ [-0.3793, -0.3793, -0.844],
+ [-0.4595, -0.4612, 0.759],
+ [-0.4615, -0.4615, 0.7577],
+ [-0, 0, -1],
+ [-0.7071, 0.7071, -0.0045],
+ [-0.7071, 0.7071, -0.0045],
+ [-0.4661, 0.4661, 0.752],
+ [-0.4661, 0.4661, 0.752],
+ [-0.536, 0.536, -0.6523],
+ [-0.536, 0.536, -0.6523],
+ [-0.6926, 0.6926, 0.2015],
+ [-0.6926, 0.6926, 0.2015],
+ [-0.3811, 0.3811, -0.8423],
+ [-0.3811, 0.3811, -0.8423],
+ [-0.4615, 0.4625, 0.757],
+ [-0.4613, 0.4613, 0.7579],
+ [0, 0, -1],
+ [0.7071, 0.7071, -0.0045],
+ [0.7071, 0.7071, -0.0045],
+ [0.4661, 0.4661, 0.752],
+ [0.4661, 0.4661, 0.752],
+ [0.7023, 0.7023, -0.1163],
+ [0.7023, 0.7023, -0.1163],
+ [0.7015, 0.7015, 0.1252],
+ [0.7015, 0.7015, 0.1252],
+ [0.3793, 0.3793, -0.844],
+ [0.3793, 0.3793, -0.844],
+ [0.4641, 0.4601, 0.7569],
+ [0.4595, 0.4595, 0.76],
+ [-0.8459, -0.307, -0.4361],
+ [0.3045, 0.8391, -0.4508],
+ [0.5551, 0.5597, -0.6154],
+ [0.8412, 0.3053, -0.4463],
+ [0.2959, -0.8438, -0.4476],
+ [-0.2946, 0.8401, -0.4554],
+ [0.3697, -0.8866, -0.2781],
+ [0.3139, -0.8951, -0.3167],
+ [-0.3606, -0.8766, -0.3187],
+ [-0.3264, -0.8994, -0.2908],
+ [-0.8833, -0.3634, -0.2963],
+ [-0.8895, -0.3228, -0.3235],
+ [-0.8772, 0.3658, -0.311],
+ [-0.9078, 0.3183, -0.2731],
+ [-0.3699, 0.887, -0.2762],
+ [-0.3141, 0.8958, -0.3144],
+ [0.3615, 0.8787, -0.3119],
+ [0.3271, 0.9013, -0.284],
+ [0.8855, 0.3643, -0.2883],
+ [0.8919, 0.3237, -0.3158],
+ [0.8785, -0.3664, -0.3067],
+ [0.9091, -0.3188, -0.2682],
+ [0.1171, -0.2808, 0.9526],
+ [-0.1153, -0.2802, 0.953],
+ [-0.2803, -0.1153, 0.953],
+ [-0.2809, 0.1171, 0.9526],
+ [-0.1171, 0.2808, 0.9526],
+ [0.1152, 0.28, 0.9531],
+ [0.2799, 0.1152, 0.9531],
+ [0.2807, -0.117, 0.9526],
+ [0.6972, 0.6972, -0.1672],
+ [0.2989, 0.9543, -0],
+ [0.2989, 0.9543, 0],
+ [0.7071, 0.7071, -0],
+ [0.7071, 0.7071, -0],
+ [0.9539, 0.3, 0.0062],
+ [0.9559, 0.2938, 0],
+ [0.6479, 0.6479, 0.4007],
+ [0.6479, 0.6479, 0.4007],
+ [-0.6972, -0.6972, -0.1672],
+ [-0.9543, -0.2989, 0],
+ [-0.9543, -0.2989, -0],
+ [-0.7071, -0.7071, -0],
+ [-0.7071, -0.7071, 0],
+ [-0.2938, -0.9559, -0],
+ [-0.3, -0.9539, 0.0062],
+ [-0.6479, -0.6479, 0.4007],
+ [-0.6479, -0.6479, 0.4007],
+ [-0.6984, 0.6984, -0.1566],
+ [0.6979, -0.6979, -0.1607],
+ [-0.1699, 0.1699, -0.9707],
+ [-0.1747, 0.1747, 0.969],
+ [0.7035, -0.7035, -0.1003],
+ [-0.7035, 0.7035, -0.1009],
+ [0.1746, -0.1746, 0.969],
+ [0.1679, -0.1679, -0.9714],
+ [0.5499, -0.5594, -0.6203],
+ [0.8435, -0.2958, -0.4483],
+ [-0.5602, -0.5642, -0.6065],
+ [-0.3067, -0.8451, -0.4379],
+ [-0.5514, 0.5545, -0.6233],
+ [-0.844, 0.296, -0.4472]
+ ],
+ "tex": []
+ }];
+this.mat = [{
+ "r": 150,
+ "g": 150,
+ "b": 150
+ },
+ {
+ "r": 150,
+ "g": 150,
+ "b": 150
+ },
+ {
+ "r": 150,
+ "g": 150,
+ "b": 150
+ }];
diff --git a/public/gfiles/html5games/chess/meshes/knight.jscn b/public/gfiles/html5games/chess/meshes/knight.jscn
new file mode 100644
index 00000000..8f0ab7d8
--- /dev/null
+++ b/public/gfiles/html5games/chess/meshes/knight.jscn
@@ -0,0 +1,803 @@
+this.obj = [{
+ "vrt": [
+ [2.3018, 0.1682, -2.3073],
+ [2.308, 1.544, -2.3135],
+ [1.1022, 2.5891, -1.127],
+ [2.3018, 0.1682, 2.6109],
+ [2.308, 1.544, 2.6171],
+ [1.1022, 2.5891, 1.4138],
+ [-2.6164, 0.1682, 2.6109],
+ [-2.6226, 1.544, 2.6171],
+ [-1.4316, 2.5891, 1.4138],
+ [-2.6164, 0.1682, -2.3073],
+ [-2.6226, 1.544, -2.3135],
+ [-1.4316, 2.5891, -1.127],
+ [2.8253, 2.659, 0.135],
+ [-2.5136, 4.2087, -1.0635],
+ [0.7837, 4.296, -0.6588],
+ [1.1833, 4.3186, 0.135],
+ [-2.5331, 6.0538, -1.0635],
+ [0.7896, 6.1572, -0.6588],
+ [1.2145, 6.123, 0.135],
+ [2.1204, 6.038, 0.135],
+ [-0.3684, 9.6308, -0.8447],
+ [0.5998, 8.5154, -0.8447],
+ [1.6342, 8.1577, 0.135],
+ [2.8912, 7.7575, 0.135],
+ [-3.2541, 9.4769, 0.135],
+ [1.6342, 9.4769, 0.135],
+ [3.531, 10.3924, 0.135],
+ [-3.0046, 9.9761, -0.5044],
+ [0.0672, 10.8094, -0.8447],
+ [1.6342, 11.1963, 0.135],
+ [2.9312, 12.627, 0.135],
+ [-1.5947, 10.9615, 0.1342],
+ [-0.1483, 11.8729, 0.1314],
+ [0.6966, 12.009, -0.1456],
+ [1.2014, 13.4221, -0.3015],
+ [-2.5136, 4.2087, 1.3336],
+ [0.7837, 4.296, 0.9288],
+ [-2.5331, 6.0538, 1.3336],
+ [0.7896, 6.1572, 0.9288],
+ [-0.3684, 9.6308, 1.1147],
+ [0.5998, 8.5154, 1.1147],
+ [-3.0046, 9.9761, 0.8389],
+ [0.0672, 10.8094, 1.1147],
+ [0.6966, 12.009, 0.4148],
+ [1.2014, 13.4221, 0.567],
+ [-2.2913, 2.5992, 0.135],
+ [-3.7136, 10.1352, 0.135],
+ [-1.0793, 8.9545, 0.135],
+ [-3.4963, 6.038, 0.135],
+ [-3.4963, 4.3186, 0.135]
+ ],
+ "fac": [
+ [0, 4, 1, 0],
+ [0, 3, 4, 0],
+ [1, 5, 2, 0],
+ [1, 4, 5, 0],
+ [3, 7, 4, 0],
+ [3, 6, 7, 0],
+ [4, 8, 5, 0],
+ [4, 7, 8, 0],
+ [3, 9, 6, 0],
+ [6, 10, 7, 0],
+ [6, 9, 10, 0],
+ [7, 11, 8, 0],
+ [7, 10, 11, 0],
+ [3, 0, 9, 0],
+ [9, 1, 10, 0],
+ [9, 0, 1, 0],
+ [10, 2, 11, 0],
+ [10, 1, 2, 0],
+ [13, 11, 14, 1],
+ [2, 14, 11, 1],
+ [14, 2, 15, 1],
+ [15, 2, 12, 1],
+ [16, 13, 17, 1],
+ [14, 17, 13, 1],
+ [17, 14, 18, 1],
+ [15, 18, 14, 1],
+ [18, 15, 19, 1],
+ [12, 19, 15, 1],
+ [20, 16, 21, 1],
+ [17, 21, 16, 1],
+ [21, 17, 22, 1],
+ [18, 22, 17, 1],
+ [22, 18, 23, 1],
+ [19, 23, 18, 1],
+ [20, 21, 25, 1],
+ [22, 25, 21, 1],
+ [25, 22, 26, 1],
+ [23, 26, 22, 1],
+ [27, 24, 28, 1],
+ [20, 28, 24, 1],
+ [28, 20, 29, 1],
+ [25, 29, 20, 1],
+ [29, 25, 30, 1],
+ [26, 30, 25, 1],
+ [28, 31, 27, 1],
+ [31, 28, 32, 1],
+ [32, 28, 33, 1],
+ [29, 33, 28, 1],
+ [33, 29, 34, 1],
+ [30, 34, 29, 1],
+ [5, 8, 36, 1],
+ [35, 36, 8, 1],
+ [36, 15, 5, 1],
+ [15, 12, 5, 1],
+ [36, 35, 38, 1],
+ [37, 38, 35, 1],
+ [15, 36, 18, 1],
+ [38, 18, 36, 1],
+ [12, 15, 19, 1],
+ [18, 19, 15, 1],
+ [38, 37, 40, 1],
+ [39, 40, 37, 1],
+ [18, 38, 22, 1],
+ [40, 22, 38, 1],
+ [19, 18, 23, 1],
+ [22, 23, 18, 1],
+ [22, 40, 25, 1],
+ [39, 25, 40, 1],
+ [23, 22, 26, 1],
+ [25, 26, 22, 1],
+ [39, 24, 42, 1],
+ [41, 42, 24, 1],
+ [25, 39, 29, 1],
+ [42, 29, 39, 1],
+ [26, 25, 30, 1],
+ [29, 30, 25, 1],
+ [42, 41, 31, 1],
+ [31, 32, 42, 1],
+ [29, 42, 43, 1],
+ [32, 43, 42, 1],
+ [30, 29, 44, 1],
+ [43, 44, 29, 1],
+ [34, 30, 44, 1],
+ [33, 34, 43, 1],
+ [44, 43, 34, 1],
+ [43, 32, 33, 1],
+ [27, 31, 46, 1],
+ [46, 24, 27, 1],
+ [20, 24, 47, 1],
+ [16, 20, 48, 1],
+ [47, 48, 20, 1],
+ [13, 16, 49, 1],
+ [48, 49, 16, 1],
+ [11, 13, 45, 1],
+ [49, 45, 13, 1],
+ [46, 31, 41, 1],
+ [41, 24, 46, 1],
+ [47, 24, 39, 1],
+ [48, 47, 37, 1],
+ [39, 37, 47, 1],
+ [49, 48, 35, 1],
+ [37, 35, 48, 1],
+ [45, 49, 8, 1],
+ [35, 8, 49, 1]
+ ],
+ "nrm": [
+ [0.7071, -0.7071, -0.0045],
+ [0.7071, -0.7071, -0.0045],
+ [0.4631, -0.4631, 0.7556],
+ [0.4631, -0.4631, 0.7556],
+ [-0.7071, -0.7071, -0.0045],
+ [-0.7071, -0.7071, -0.0045],
+ [-0.4637, -0.4637, 0.7549],
+ [-0.4637, -0.4637, 0.755],
+ [0, 0, -1],
+ [-0.7071, 0.7071, -0.0045],
+ [-0.7071, 0.7071, -0.0045],
+ [-0.4664, 0.4664, 0.7516],
+ [-0.4664, 0.4664, 0.7516],
+ [0, 0, -1],
+ [0.7071, 0.7071, -0.0045],
+ [0.7071, 0.7071, -0.0045],
+ [0.4674, 0.4674, 0.7504],
+ [0.4674, 0.4674, 0.7504],
+ [0.7806, 0.6139, 0.1174],
+ [0.6819, 0.6819, 0.2646],
+ [0.9139, -0.2944, 0.2796],
+ [0.8561, 0.1486, 0.495],
+ [0.7874, 0.6164, 0.0013],
+ [0.788, 0.6157, -0.0004],
+ [0.9571, -0.2896, -0.0028],
+ [0.9493, -0.314, -0.0155],
+ [0.7071, 0.7071, 0],
+ [0.7071, 0.7071, -0],
+ [0.7354, 0.6767, 0.036],
+ [0.7869, 0.6133, -0.0682],
+ [0.9996, 0.0277, -0.0019],
+ [0.9437, -0.2786, -0.1783],
+ [0.7071, 0.7071, -0],
+ [0.7071, 0.7071, 0],
+ [0.8854, 0.2764, 0.3738],
+ [0.9996, 0.0272, -0],
+ [0.7071, 0.7071, -0],
+ [0.7071, 0.7071, -0],
+ [0.5128, 0.2923, -0.8072],
+ [0.4336, 0.8931, 0.1201],
+ [0.9625, 0.178, -0.205],
+ [0.9459, 0.3245, -0],
+ [0.7071, 0.7071, 0],
+ [0.7071, 0.7071, -0],
+ [0.2186, 0.6038, 0.7666],
+ [0.2473, 0.7716, 0.5861],
+ [0.2773, 0.7509, 0.5994],
+ [0.9309, 0.268, 0.2481],
+ [0.7967, 0.5823, -0.1618],
+ [0.81, 0.565, -0.157],
+ [-0.6802, -0.6802, 0.2733],
+ [-0.6133, -0.7795, 0.1273],
+ [0.2939, -0.9128, 0.2836],
+ [-0.1429, -0.8552, 0.4982],
+ [-0.6157, -0.788, -0.0004],
+ [-0.6164, -0.7874, 0.0013],
+ [0.314, -0.9493, -0.0155],
+ [0.2896, -0.9571, -0.0028],
+ [-0.7071, -0.7071, 0],
+ [-0.7071, -0.7071, -0],
+ [-0.6133, -0.7869, -0.0682],
+ [-0.6767, -0.7354, 0.036],
+ [0.2786, -0.9437, -0.1783],
+ [-0.0277, -0.9996, -0.0019],
+ [-0.7071, -0.7071, -0],
+ [-0.7071, -0.7071, 0],
+ [-0.0272, -0.9996, 0],
+ [-0.2764, -0.8854, 0.3738],
+ [-0.7071, -0.7071, 0],
+ [-0.7071, -0.7071, 0],
+ [-0.8931, -0.4336, 0.1201],
+ [-0.2462, -0.4983, -0.8313],
+ [-0.3245, -0.9459, -0],
+ [-0.178, -0.9625, -0.205],
+ [-0.7071, -0.7071, 0],
+ [-0.7071, -0.7071, -0],
+ [-0.5864, -0.2148, 0.7811],
+ [-0.7695, -0.2464, 0.5892],
+ [-0.2681, -0.9307, 0.2487],
+ [-0.752, -0.2717, 0.6005],
+ [-0.5667, -0.8092, -0.1554],
+ [-0.5816, -0.7976, -0.1596],
+ [0.2953, -0.2953, 0.9086],
+ [-0.6659, 0.6659, 0.3364],
+ [-0.6659, 0.6659, 0.3364],
+ [-0.1125, 0.1125, 0.9873],
+ [0.162, 0.596, 0.7864],
+ [-0.0299, 0.8904, -0.4542],
+ [0.3286, 0.5815, -0.7443],
+ [-0.101, 0.8844, 0.4556],
+ [-0.4577, 0.6237, 0.6337],
+ [-0.0991, 0.995, -0.0082],
+ [-0.1083, 0.9941, 0],
+ [-0.1675, 0.867, -0.4694],
+ [-0.1204, 0.8645, -0.488],
+ [-0.5756, -0.1307, 0.8072],
+ [-0.88, 0.0716, -0.4696],
+ [-0.5815, -0.3286, -0.7442],
+ [-0.8331, 0.0964, 0.5447],
+ [-0.754, 0.4101, 0.5131],
+ [-0.9951, 0.0985, 0],
+ [-0.9941, 0.1082, -0.0082],
+ [-0.8471, 0.1694, -0.5037],
+ [-0.8859, 0.1196, -0.4482]
+ ],
+ "tex": [
+ [
+ [7.2839, -24.849],
+ [-12.017, -17.2137],
+ [7.3321, -17.2137]
+ ],
+ [
+ [7.2839, -24.849],
+ [-12.017, -24.849],
+ [-12.017, -17.2137]
+ ],
+ [
+ [7.3321, -17.2137],
+ [-12.017, -11.4689],
+ [-1.9372, -11.4688]
+ ],
+ [
+ [7.3321, -17.2137],
+ [-12.017, -17.2137],
+ [-12.017, -11.4689]
+ ],
+ [
+ [-12.017, -24.849],
+ [-31.3662, -17.2137],
+ [-12.017, -17.2137]
+ ],
+ [
+ [-12.017, -24.849],
+ [-31.318, -24.849],
+ [-31.3662, -17.2137]
+ ],
+ [
+ [-12.017, -17.2137],
+ [-22.0969, -11.4688],
+ [-12.017, -11.4689]
+ ],
+ [
+ [-12.017, -17.2137],
+ [-31.3662, -17.2137],
+ [-22.0969, -11.4688]
+ ],
+ [
+ [-12.017, -24.849],
+ [-12.017, -24.849],
+ [-31.318, -24.849]
+ ],
+ [
+ [-31.318, -24.849],
+ [-12.017, -17.2137],
+ [-31.3662, -17.2137]
+ ],
+ [
+ [-31.318, -24.849],
+ [-12.017, -24.849],
+ [-12.017, -17.2137]
+ ],
+ [
+ [-31.3662, -17.2137],
+ [-12.017, -11.4688],
+ [-22.0969, -11.4688]
+ ],
+ [
+ [-31.3662, -17.2137],
+ [-12.017, -17.2137],
+ [-12.017, -11.4688]
+ ],
+ [
+ [-12.017, -24.849],
+ [7.2839, -24.849],
+ [-12.017, -24.849]
+ ],
+ [
+ [-12.017, -24.849],
+ [7.3321, -17.2137],
+ [-12.017, -17.2137]
+ ],
+ [
+ [-12.017, -24.849],
+ [7.2839, -24.849],
+ [7.3321, -17.2137]
+ ],
+ [
+ [-12.017, -17.2137],
+ [-1.9372, -11.4688],
+ [-12.017, -11.4688]
+ ],
+ [
+ [-12.017, -17.2137],
+ [7.3321, -17.2137],
+ [-1.9372, -11.4688]
+ ],
+ [
+ [0.25, 0.1667],
+ [0.25, 0],
+ [0.5, 0.1667]
+ ],
+ [
+ [0.5, 0],
+ [0.5, 0.1667],
+ [0.25, 0]
+ ],
+ [
+ [0.5, 0.1667],
+ [0.5, 0],
+ [0.75, 0.1667]
+ ],
+ [
+ [0.75, 0.1667],
+ [0.75, 0],
+ [1, 0.1667]
+ ],
+ [
+ [0.25, 0.3333],
+ [0.25, 0.1667],
+ [0.5, 0.3333]
+ ],
+ [
+ [0.5, 0.1667],
+ [0.5, 0.3333],
+ [0.25, 0.1667]
+ ],
+ [
+ [0.5, 0.3333],
+ [0.5, 0.1667],
+ [0.75, 0.3333]
+ ],
+ [
+ [0.75, 0.1667],
+ [0.75, 0.3333],
+ [0.5, 0.1667]
+ ],
+ [
+ [0.75, 0.3333],
+ [0.75, 0.1667],
+ [1, 0.3333]
+ ],
+ [
+ [1, 0.1667],
+ [1, 0.3333],
+ [0.75, 0.1667]
+ ],
+ [
+ [0.25, 0.5],
+ [0.25, 0.3333],
+ [0.5, 0.5]
+ ],
+ [
+ [0.5, 0.3333],
+ [0.5, 0.5],
+ [0.25, 0.3333]
+ ],
+ [
+ [0.5, 0.5],
+ [0.5, 0.3333],
+ [0.75, 0.5]
+ ],
+ [
+ [0.75, 0.3333],
+ [0.75, 0.5],
+ [0.5, 0.3333]
+ ],
+ [
+ [0.75, 0.5],
+ [0.75, 0.3333],
+ [1, 0.5]
+ ],
+ [
+ [1, 0.3333],
+ [1, 0.5],
+ [0.75, 0.3333]
+ ],
+ [
+ [0.5, 0.6667],
+ [0.5, 0.5],
+ [0.75, 0.6667]
+ ],
+ [
+ [0.75, 0.5],
+ [0.75, 0.6667],
+ [0.5, 0.5]
+ ],
+ [
+ [0.75, 0.6667],
+ [0.75, 0.5],
+ [1, 0.6667]
+ ],
+ [
+ [1, 0.5],
+ [1, 0.6667],
+ [0.75, 0.5]
+ ],
+ [
+ [0, 0.8333],
+ [0, 0.6667],
+ [0.25, 0.8333]
+ ],
+ [
+ [0.25, 0.6667],
+ [0.25, 0.8333],
+ [0, 0.6667]
+ ],
+ [
+ [0.5, 0.8333],
+ [0.5, 0.6667],
+ [0.75, 0.8333]
+ ],
+ [
+ [0.75, 0.6667],
+ [0.75, 0.8333],
+ [0.5, 0.6667]
+ ],
+ [
+ [0.75, 0.8333],
+ [0.75, 0.6667],
+ [1, 0.8333]
+ ],
+ [
+ [1, 0.6667],
+ [1, 0.8333],
+ [0.75, 0.6667]
+ ],
+ [
+ [0.25, 0.8333],
+ [0.25, 1],
+ [0, 0.8333]
+ ],
+ [
+ [0.25, 1],
+ [0.25, 0.8333],
+ [0.5, 1]
+ ],
+ [
+ [0.5, 1],
+ [0.5, 0.8333],
+ [0.75, 1]
+ ],
+ [
+ [0.75, 0.8333],
+ [0.75, 1],
+ [0.5, 0.8333]
+ ],
+ [
+ [0.75, 1],
+ [0.75, 0.8333],
+ [1, 1]
+ ],
+ [
+ [1, 0.8333],
+ [1, 1],
+ [0.75, 0.8333]
+ ],
+ [
+ [0.5, 0],
+ [0.75, 0],
+ [0.5, 0.1667]
+ ],
+ [
+ [0.75, 0.1667],
+ [0.5, 0.1667],
+ [0.75, 0]
+ ],
+ [
+ [0.5, 0.1667],
+ [0.25, 0.1667],
+ [0.5, 0]
+ ],
+ [
+ [0.25, 0.1667],
+ [0, 0.1667],
+ [0.25, 0]
+ ],
+ [
+ [0.5, 0.1667],
+ [0.75, 0.1667],
+ [0.5, 0.3333]
+ ],
+ [
+ [0.75, 0.3333],
+ [0.5, 0.3333],
+ [0.75, 0.1667]
+ ],
+ [
+ [0.25, 0.1667],
+ [0.5, 0.1667],
+ [0.25, 0.3333]
+ ],
+ [
+ [0.5, 0.3333],
+ [0.25, 0.3333],
+ [0.5, 0.1667]
+ ],
+ [
+ [0, 0.1667],
+ [0.25, 0.1667],
+ [0, 0.3333]
+ ],
+ [
+ [0.25, 0.3333],
+ [0, 0.3333],
+ [0.25, 0.1667]
+ ],
+ [
+ [0.5, 0.3333],
+ [0.75, 0.3333],
+ [0.5, 0.5]
+ ],
+ [
+ [0.75, 0.5],
+ [0.5, 0.5],
+ [0.75, 0.3333]
+ ],
+ [
+ [0.25, 0.3333],
+ [0.5, 0.3333],
+ [0.25, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [0.25, 0.5],
+ [0.5, 0.3333]
+ ],
+ [
+ [0, 0.3333],
+ [0.25, 0.3333],
+ [0, 0.5]
+ ],
+ [
+ [0.25, 0.5],
+ [0, 0.5],
+ [0.25, 0.3333]
+ ],
+ [
+ [0.25, 0.5],
+ [0.5, 0.5],
+ [0.25, 0.6667]
+ ],
+ [
+ [0.5, 0.6667],
+ [0.25, 0.6667],
+ [0.5, 0.5]
+ ],
+ [
+ [0, 0.5],
+ [0.25, 0.5],
+ [0, 0.6667]
+ ],
+ [
+ [0.25, 0.6667],
+ [0, 0.6667],
+ [0.25, 0.5]
+ ],
+ [
+ [0.75, 0.6667],
+ [1, 0.6667],
+ [0.75, 0.8333]
+ ],
+ [
+ [1, 0.8333],
+ [0.75, 0.8333],
+ [1, 0.6667]
+ ],
+ [
+ [0.25, 0.6667],
+ [0.5, 0.6667],
+ [0.25, 0.8333]
+ ],
+ [
+ [0.5, 0.8333],
+ [0.25, 0.8333],
+ [0.5, 0.6667]
+ ],
+ [
+ [0, 0.6667],
+ [0.25, 0.6667],
+ [0, 0.8333]
+ ],
+ [
+ [0.25, 0.8333],
+ [0, 0.8333],
+ [0.25, 0.6667]
+ ],
+ [
+ [0.75, 0.8333],
+ [1, 0.8333],
+ [0.75, 1]
+ ],
+ [
+ [0.75, 1],
+ [0.5, 1],
+ [0.75, 0.8333]
+ ],
+ [
+ [0.25, 0.8333],
+ [0.5, 0.8333],
+ [0.25, 1]
+ ],
+ [
+ [0.5, 1],
+ [0.25, 1],
+ [0.5, 0.8333]
+ ],
+ [
+ [0, 0.8333],
+ [0.25, 0.8333],
+ [0, 1]
+ ],
+ [
+ [0.25, 1],
+ [0, 1],
+ [0.25, 0.8333]
+ ],
+ [
+ [1, 0],
+ [0.8333, 0],
+ [1, 0.25]
+ ],
+ [
+ [0.25, 0],
+ [0, 0],
+ [0.25, 0.25]
+ ],
+ [
+ [0, 0.25],
+ [0.25, 0.25],
+ [0, 0]
+ ],
+ [
+ [0.25, 0.25],
+ [0.5, 0.25],
+ [0.25, 0]
+ ],
+ [
+ [0.1667, 0],
+ [0, 0],
+ [0.1667, 0.25]
+ ],
+ [
+ [0.1667, 0.25],
+ [0.3333, 0.25],
+ [0.1667, 0]
+ ],
+ [
+ [0.5, 0],
+ [0.3333, 0],
+ [0.5, 0.25]
+ ],
+ [
+ [0.6667, 0],
+ [0.5, 0],
+ [0.6667, 0.25]
+ ],
+ [
+ [0.5, 0.25],
+ [0.6667, 0.25],
+ [0.5, 0]
+ ],
+ [
+ [0.8333, 0],
+ [0.6667, 0],
+ [0.8333, 0.25]
+ ],
+ [
+ [0.6667, 0.25],
+ [0.8333, 0.25],
+ [0.6667, 0]
+ ],
+ [
+ [1, 0],
+ [0.8333, 0],
+ [1, 0.25]
+ ],
+ [
+ [0.8333, 0.25],
+ [1, 0.25],
+ [0.8333, 0]
+ ],
+ [
+ [0.1667, 0.75],
+ [0, 0.75],
+ [0.1667, 1]
+ ],
+ [
+ [0.1667, 1],
+ [0.3333, 1],
+ [0.1667, 0.75]
+ ],
+ [
+ [0.5, 0.75],
+ [0.3333, 0.75],
+ [0.5, 1]
+ ],
+ [
+ [0.6667, 0.75],
+ [0.5, 0.75],
+ [0.6667, 1]
+ ],
+ [
+ [0.5, 1],
+ [0.6667, 1],
+ [0.5, 0.75]
+ ],
+ [
+ [0.8333, 0.75],
+ [0.6667, 0.75],
+ [0.8333, 1]
+ ],
+ [
+ [0.6667, 1],
+ [0.8333, 1],
+ [0.6667, 0.75]
+ ],
+ [
+ [1, 0.75],
+ [0.8333, 0.75],
+ [1, 1]
+ ],
+ [
+ [0.8333, 1],
+ [1, 1],
+ [0.8333, 0.75]
+ ]
+ ]
+ }];
+this.mat = [{
+ "r": 150,
+ "g": 150,
+ "b": 150
+ },
+ {
+ "r": 150,
+ "g": 150,
+ "b": 150
+ },
+ {
+ "r": 150,
+ "g": 150,
+ "b": 150
+ }];
diff --git a/public/gfiles/html5games/chess/meshes/pawn.jscn b/public/gfiles/html5games/chess/meshes/pawn.jscn
new file mode 100644
index 00000000..aa8c00c1
--- /dev/null
+++ b/public/gfiles/html5games/chess/meshes/pawn.jscn
@@ -0,0 +1,221 @@
+this.obj = [{
+ "vrt": [
+ [1.9769, 0.1642, -1.9734],
+ [1.9819, 1.2692, -1.9783],
+ [1.0333, 2.1006, -1.0297],
+ [1.0968, 3.01, -1.0932],
+ [0.6105, 6.3261, -0.607],
+ [0.9846, 6.7653, -0.9811],
+ [0.7213, 7.3779, -0.7177],
+ [1.0163, 8.0204, -1.0128],
+ [0.0017, 10.1568, 0.0018],
+ [1.9769, 0.1642, 1.977],
+ [1.9819, 1.2692, 1.9819],
+ [1.0333, 2.1006, 1.0333],
+ [1.0968, 3.01, 1.0968],
+ [0.6105, 6.3261, 0.6106],
+ [0.9846, 6.7653, 0.9847],
+ [0.7213, 7.3779, 0.7213],
+ [1.0384, 8.0204, 1.0385],
+ [-1.9734, 0.1642, 1.977],
+ [-1.9783, 1.2692, 1.9819],
+ [-1.0298, 2.1006, 1.0333],
+ [-1.0933, 3.01, 1.0968],
+ [-0.607, 6.3261, 0.6106],
+ [-0.9811, 6.7653, 0.9847],
+ [-0.7177, 7.3779, 0.7213],
+ [-1.0128, 8.0204, 1.0164],
+ [-1.9734, 0.1642, -1.9734],
+ [-1.9783, 1.2692, -1.9783],
+ [-1.0298, 2.1006, -1.0297],
+ [-1.0933, 3.01, -1.0932],
+ [-0.607, 6.3261, -0.607],
+ [-0.9811, 6.7653, -0.9811],
+ [-0.7177, 7.3779, -0.7177],
+ [-1.0348, 8.0204, -1.0348],
+ [1.1677, 8.8898, -1.1642],
+ [1.1843, 8.8951, 1.1844],
+ [-1.1641, 8.8898, 1.1678],
+ [-1.1807, 8.8951, -1.1808],
+ [0.9621, 9.5788, -0.9586],
+ [0.9716, 9.5879, 0.9717],
+ [-0.9586, 9.5788, 0.9622],
+ [-0.9681, 9.5878, -0.9681]
+ ],
+ "fac": [
+ [0, 10, 1, 0],
+ [0, 9, 10, 0],
+ [1, 11, 2, 0],
+ [1, 10, 11, 0],
+ [2, 12, 3, 0],
+ [2, 11, 12, 0],
+ [3, 13, 4, 0],
+ [3, 12, 13, 0],
+ [4, 14, 5, 0],
+ [4, 13, 14, 0],
+ [5, 15, 6, 0],
+ [5, 14, 15, 0],
+ [6, 16, 7, 0],
+ [6, 15, 16, 0],
+ [37, 38, 8, 0],
+ [9, 18, 10, 0],
+ [9, 17, 18, 0],
+ [10, 19, 11, 0],
+ [10, 18, 19, 0],
+ [11, 20, 12, 0],
+ [11, 19, 20, 0],
+ [12, 21, 13, 0],
+ [12, 20, 21, 0],
+ [13, 22, 14, 0],
+ [13, 21, 22, 0],
+ [14, 23, 15, 0],
+ [14, 22, 23, 0],
+ [15, 24, 16, 0],
+ [15, 23, 24, 0],
+ [38, 39, 8, 0],
+ [9, 25, 17, 0],
+ [17, 26, 18, 0],
+ [17, 25, 26, 0],
+ [18, 27, 19, 0],
+ [18, 26, 27, 0],
+ [19, 28, 20, 0],
+ [19, 27, 28, 0],
+ [20, 29, 21, 0],
+ [20, 28, 29, 0],
+ [21, 30, 22, 0],
+ [21, 29, 30, 0],
+ [22, 31, 23, 0],
+ [22, 30, 31, 0],
+ [23, 32, 24, 0],
+ [23, 31, 32, 0],
+ [39, 40, 8, 0],
+ [9, 0, 25, 0],
+ [25, 1, 26, 0],
+ [25, 0, 1, 0],
+ [26, 2, 27, 0],
+ [26, 1, 2, 0],
+ [27, 3, 28, 0],
+ [27, 2, 3, 0],
+ [28, 4, 29, 0],
+ [28, 3, 4, 0],
+ [29, 5, 30, 0],
+ [29, 4, 5, 0],
+ [30, 6, 31, 0],
+ [30, 5, 6, 0],
+ [31, 7, 32, 0],
+ [31, 6, 7, 0],
+ [40, 37, 8, 0],
+ [7, 16, 34, 0],
+ [34, 33, 7, 0],
+ [16, 24, 35, 0],
+ [35, 34, 16, 0],
+ [24, 32, 36, 0],
+ [36, 35, 24, 0],
+ [32, 7, 33, 0],
+ [33, 36, 32, 0],
+ [33, 34, 38, 0],
+ [38, 37, 33, 0],
+ [34, 35, 39, 0],
+ [39, 38, 34, 0],
+ [35, 36, 40, 0],
+ [40, 39, 35, 0],
+ [36, 33, 37, 0],
+ [37, 40, 36, 0]
+ ],
+ "nrm": [
+ [0.7071, -0.7071, -0.0045],
+ [0.7071, -0.7071, -0.0045],
+ [0.4661, -0.4661, 0.752],
+ [0.4661, -0.4661, 0.752],
+ [0.7054, -0.7054, -0.0697],
+ [0.7054, -0.7054, -0.0697],
+ [0.6996, -0.6996, 0.1451],
+ [0.6996, -0.6996, 0.1451],
+ [0.5383, -0.5383, -0.6484],
+ [0.5383, -0.5383, -0.6484],
+ [0.6496, -0.6496, 0.395],
+ [0.6496, -0.6496, 0.395],
+ [0.6482, -0.6345, -0.421],
+ [0.6341, -0.6341, -0.4426],
+ [0.3659, -0.3566, 0.8597],
+ [-0.7071, -0.7071, -0.0045],
+ [-0.7071, -0.7071, -0.0045],
+ [-0.4661, -0.4661, 0.752],
+ [-0.4661, -0.4661, 0.752],
+ [-0.7054, -0.7054, -0.0697],
+ [-0.7054, -0.7054, -0.0697],
+ [-0.6996, -0.6996, 0.1451],
+ [-0.6996, -0.6996, 0.1451],
+ [-0.5383, -0.5383, -0.6484],
+ [-0.5383, -0.5383, -0.6484],
+ [-0.6496, -0.6496, 0.395],
+ [-0.6496, -0.6496, 0.395],
+ [-0.6422, -0.6285, -0.4388],
+ [-0.6426, -0.6426, -0.4174],
+ [-0.3659, -0.3566, 0.8597],
+ [-0, 0, -1],
+ [-0.7071, 0.7071, -0.0045],
+ [-0.7071, 0.7071, -0.0045],
+ [-0.4661, 0.4661, 0.752],
+ [-0.4661, 0.4661, 0.752],
+ [-0.7054, 0.7054, -0.0697],
+ [-0.7054, 0.7054, -0.0697],
+ [-0.6996, 0.6996, 0.1451],
+ [-0.6996, 0.6996, 0.1451],
+ [-0.5383, 0.5383, -0.6484],
+ [-0.5383, 0.5383, -0.6484],
+ [-0.6496, 0.6496, 0.395],
+ [-0.6496, 0.6496, 0.395],
+ [-0.6482, 0.6345, -0.421],
+ [-0.6341, 0.6341, -0.4426],
+ [-0.3659, 0.3566, 0.8596],
+ [0, 0, -1],
+ [0.7071, 0.7071, -0.0045],
+ [0.7071, 0.7071, -0.0045],
+ [0.4661, 0.4661, 0.752],
+ [0.4661, 0.4661, 0.752],
+ [0.7054, 0.7054, -0.0697],
+ [0.7054, 0.7054, -0.0697],
+ [0.6996, 0.6996, 0.1451],
+ [0.6996, 0.6996, 0.1451],
+ [0.5383, 0.5383, -0.6484],
+ [0.5383, 0.5383, -0.6484],
+ [0.6496, 0.6496, 0.395],
+ [0.6496, 0.6496, 0.395],
+ [0.6422, 0.6285, -0.4388],
+ [0.6426, 0.6426, -0.4174],
+ [0.3658, 0.3566, 0.8597],
+ [0.7051, -0.6901, -0.1628],
+ [0.7011, -0.6918, -0.1726],
+ [-0.7039, -0.6889, -0.1733],
+ [-0.7022, -0.6929, -0.1635],
+ [-0.7051, 0.6901, -0.1628],
+ [-0.7011, 0.6918, -0.1726],
+ [0.7039, 0.6889, -0.1733],
+ [0.7022, 0.6929, -0.1635],
+ [0.6817, -0.6712, 0.2913],
+ [0.6815, -0.6729, 0.2876],
+ [-0.6824, -0.6719, 0.288],
+ [-0.6806, -0.672, 0.2917],
+ [-0.6817, 0.6712, 0.2913],
+ [-0.6815, 0.6729, 0.2876],
+ [0.6824, 0.6719, 0.288],
+ [0.6806, 0.672, 0.2917]
+ ],
+ "tex": []
+ }];
+this.mat = [{
+ "r": 150,
+ "g": 150,
+ "b": 150
+ },
+ {
+ "r": 150,
+ "g": 150,
+ "b": 150
+ },
+ {
+ "r": 150,
+ "g": 150,
+ "b": 150
+ }];
diff --git a/public/gfiles/html5games/chess/meshes/queen.jscn b/public/gfiles/html5games/chess/meshes/queen.jscn
new file mode 100644
index 00000000..cdf61c85
--- /dev/null
+++ b/public/gfiles/html5games/chess/meshes/queen.jscn
@@ -0,0 +1,853 @@
+this.obj = [{
+ "vrt": [
+ [2.8, 0.1424, -2.795],
+ [2.807, 1.7075, -2.802],
+ [1.1264, 2.9507, -1.1213],
+ [1.5027, 3.3878, -1.1725],
+ [0.8463, 8.8307, -0.8465],
+ [1.5432, 9.601, -1.5482],
+ [0.7375, 10.8789, -0.733],
+ [2.8, 0.1424, 2.8001],
+ [2.807, 1.7075, 2.8071],
+ [1.1264, 2.9507, 1.1265],
+ [1.5027, 3.3878, 1.1783],
+ [0.8463, 8.8307, 0.8524],
+ [1.5432, 9.601, 1.5541],
+ [0.73, 10.8852, 0.7359],
+ [-2.795, 0.1424, 2.8001],
+ [-2.802, 1.7075, 2.8071],
+ [-1.1214, 2.9507, 1.1265],
+ [-1.4976, 3.3878, 1.1783],
+ [-0.8411, 8.8307, 0.8524],
+ [-1.5381, 9.601, 1.5541],
+ [-0.7235, 10.8839, 0.7402],
+ [-2.795, 0.1424, -2.795],
+ [-2.802, 1.7075, -2.802],
+ [-1.1214, 2.9507, -1.1213],
+ [-1.4976, 3.3878, -1.1725],
+ [-0.8411, 8.8307, -0.8465],
+ [-1.5381, 9.601, -1.5482],
+ [-0.7203, 10.8852, -0.7319],
+ [-1.2998, 12.3851, 1.2739],
+ [0.0023, 12.3851, 1.8826],
+ [1.3044, 12.3851, 1.2739],
+ [-1.2998, 12.3851, -1.2972],
+ [0.0023, 12.3851, -1.9059],
+ [1.3044, 12.3851, -1.2972],
+ [1.9225, 12.3851, -0.0116],
+ [-1.9178, 12.3851, -0.0116],
+ [3.3433, 14.6619, -0.0011],
+ [1.054, 14.6619, 1.0597],
+ [0.0005, 14.6619, 3.3645],
+ [-1.053, 14.6619, 1.0597],
+ [-3.3422, 14.6619, -0.0011],
+ [-1.053, 14.6619, -1.0618],
+ [0.0005, 14.6619, -3.3666],
+ [1.054, 14.6619, -1.0618],
+ [-0.0001, 15.3165, 0.0002],
+ [1.8986, 14.1137, -0.0011],
+ [0.529, 14.0998, 0.5323],
+ [0.0005, 14.1138, 1.9107],
+ [-0.5279, 14.0998, 0.5322],
+ [-1.8976, 14.1137, -0.0011],
+ [-0.5281, 14.0999, -0.5345],
+ [0.0005, 14.1138, -1.9129],
+ [0.5292, 14.0999, -0.5345],
+ [-0.3454, 15.9818, -0.3454],
+ [0.3454, 15.9818, -0.3454],
+ [0.3454, 15.9818, 0.3454],
+ [-0.3454, 15.9818, 0.3454],
+ [0, 16.552, -0]
+ ],
+ "fac": [
+ [0, 8, 1, 0],
+ [0, 7, 8, 0],
+ [1, 9, 2, 0],
+ [1, 8, 9, 0],
+ [2, 10, 3, 0],
+ [2, 9, 10, 0],
+ [3, 11, 4, 0],
+ [3, 10, 11, 0],
+ [4, 12, 5, 0],
+ [4, 11, 12, 0],
+ [5, 13, 6, 0],
+ [5, 12, 13, 0],
+ [7, 15, 8, 0],
+ [7, 14, 15, 0],
+ [8, 16, 9, 0],
+ [8, 15, 16, 0],
+ [9, 17, 10, 0],
+ [9, 16, 17, 0],
+ [10, 18, 11, 0],
+ [10, 17, 18, 0],
+ [11, 19, 12, 0],
+ [11, 18, 19, 0],
+ [12, 20, 13, 0],
+ [12, 19, 20, 0],
+ [7, 21, 14, 0],
+ [14, 22, 15, 0],
+ [14, 21, 22, 0],
+ [15, 23, 16, 0],
+ [15, 22, 23, 0],
+ [16, 24, 17, 0],
+ [16, 23, 24, 0],
+ [17, 25, 18, 0],
+ [17, 24, 25, 0],
+ [18, 26, 19, 0],
+ [18, 25, 26, 0],
+ [19, 27, 20, 0],
+ [19, 26, 27, 0],
+ [7, 0, 21, 0],
+ [21, 1, 22, 0],
+ [21, 0, 1, 0],
+ [22, 2, 23, 0],
+ [22, 1, 2, 0],
+ [23, 3, 24, 0],
+ [23, 2, 3, 0],
+ [24, 4, 25, 0],
+ [24, 3, 4, 0],
+ [25, 5, 26, 0],
+ [25, 4, 5, 0],
+ [26, 6, 27, 0],
+ [26, 5, 6, 0],
+ [20, 28, 29, 1],
+ [32, 31, 27, 0],
+ [27, 6, 32, 0],
+ [33, 32, 6, 0],
+ [13, 30, 34, 3],
+ [27, 31, 35, 2],
+ [34, 37, 36, 0],
+ [34, 30, 37, 0],
+ [29, 39, 38, 0],
+ [29, 28, 39, 0],
+ [35, 41, 40, 0],
+ [35, 31, 41, 0],
+ [32, 43, 42, 0],
+ [32, 33, 43, 0],
+ [45, 46, 44, 0],
+ [46, 47, 44, 0],
+ [47, 48, 44, 0],
+ [48, 49, 44, 0],
+ [49, 50, 44, 0],
+ [50, 51, 44, 0],
+ [51, 52, 44, 0],
+ [52, 45, 44, 0],
+ [36, 37, 46, 0],
+ [46, 45, 36, 0],
+ [37, 38, 47, 0],
+ [47, 46, 37, 0],
+ [38, 39, 48, 0],
+ [48, 47, 38, 0],
+ [39, 40, 49, 0],
+ [49, 48, 39, 0],
+ [40, 41, 50, 0],
+ [50, 49, 40, 0],
+ [41, 42, 51, 0],
+ [51, 50, 41, 0],
+ [42, 43, 52, 0],
+ [52, 51, 42, 0],
+ [43, 36, 45, 0],
+ [45, 52, 43, 0],
+ [54, 53, 44, 0],
+ [55, 54, 44, 0],
+ [56, 55, 44, 0],
+ [53, 56, 44, 0],
+ [54, 57, 53, 0],
+ [55, 57, 54, 0],
+ [56, 57, 55, 0],
+ [53, 57, 56, 0],
+ [35, 40, 39, 0],
+ [35, 39, 28, 0],
+ [35, 20, 27, 0],
+ [35, 28, 20, 0],
+ [32, 42, 41, 0],
+ [32, 41, 31, 0],
+ [34, 36, 43, 0],
+ [34, 43, 33, 0],
+ [13, 34, 6, 0],
+ [6, 34, 33, 0],
+ [29, 38, 37, 0],
+ [29, 37, 30, 0],
+ [20, 29, 13, 0],
+ [29, 30, 13, 0]
+ ],
+ "nrm": [
+ [0.7071, -0.7071, -0.0045],
+ [0.7071, -0.7071, -0.0045],
+ [0.4205, -0.4205, 0.804],
+ [0.4205, -0.4205, 0.804],
+ [0.5359, -0.5359, -0.6524],
+ [0.5359, -0.5359, -0.6524],
+ [0.702, -0.702, 0.1197],
+ [0.702, -0.702, 0.1197],
+ [0.5243, -0.5243, -0.6709],
+ [0.5243, -0.5243, -0.6709],
+ [0.5971, -0.6, 0.5324],
+ [0.5974, -0.5974, 0.535],
+ [-0.7071, -0.7071, -0.0045],
+ [-0.7071, -0.7071, -0.0045],
+ [-0.4205, -0.4205, 0.804],
+ [-0.4205, -0.4205, 0.804],
+ [-0.7022, -0.7022, -0.1177],
+ [-0.7022, -0.7022, -0.1177],
+ [-0.7058, -0.7058, 0.0598],
+ [-0.7058, -0.7058, 0.0598],
+ [-0.5227, -0.5227, -0.6734],
+ [-0.5227, -0.5227, -0.6734],
+ [-0.5945, -0.5974, 0.5382],
+ [-0.5971, -0.5971, 0.5357],
+ [-0, 0, -1],
+ [-0.7071, 0.7071, -0.0045],
+ [-0.7071, 0.7071, -0.0045],
+ [-0.4205, 0.4205, 0.804],
+ [-0.4205, 0.4205, 0.804],
+ [-0.536, 0.536, -0.6523],
+ [-0.536, 0.536, -0.6523],
+ [-0.702, 0.702, 0.1197],
+ [-0.702, 0.702, 0.1197],
+ [-0.5243, 0.5243, -0.6709],
+ [-0.5243, 0.5243, -0.6709],
+ [-0.5963, 0.5982, 0.5354],
+ [-0.5964, 0.5964, 0.5371],
+ [0, 0, -1],
+ [0.7071, 0.7071, -0.0045],
+ [0.7071, 0.7071, -0.0045],
+ [0.4205, 0.4205, 0.804],
+ [0.4205, 0.4205, 0.804],
+ [0.7023, 0.7023, -0.1163],
+ [0.7023, 0.7023, -0.1163],
+ [0.7058, 0.7058, 0.0598],
+ [0.7058, 0.7058, 0.0598],
+ [0.5227, 0.5227, -0.6734],
+ [0.5227, 0.5227, -0.6734],
+ [0.5983, 0.5959, 0.5357],
+ [0.5961, 0.5961, 0.5378],
+ [-0.8459, -0.307, -0.4361],
+ [0.3045, 0.8391, -0.4508],
+ [0.5551, 0.5597, -0.6154],
+ [0.8412, 0.3053, -0.4463],
+ [0.2959, -0.8438, -0.4476],
+ [-0.2946, 0.8401, -0.4554],
+ [-0.3327, -0.9072, -0.2576],
+ [0.3277, -0.9346, 0.1385],
+ [-0.9044, 0.337, -0.2619],
+ [-0.932, -0.3382, 0.13],
+ [0.3333, 0.9089, -0.2506],
+ [-0.3276, 0.9342, 0.1411],
+ [0.9056, -0.3374, -0.2571],
+ [0.9309, 0.3378, 0.1389],
+ [-0.3547, -0.7955, 0.4912],
+ [0.3592, -0.7946, 0.4894],
+ [-0.7949, 0.3594, 0.4888],
+ [-0.7957, -0.3548, 0.491],
+ [0.3544, 0.795, 0.4924],
+ [-0.3592, 0.7946, 0.4894],
+ [0.7943, -0.359, 0.4901],
+ [0.7948, 0.3543, 0.4927],
+ [0.2157, 0.5882, 0.7794],
+ [0.2814, 0.6568, 0.6996],
+ [-0.2345, 0.6295, 0.7408],
+ [-0.2521, 0.5836, 0.7719],
+ [0.5883, -0.2192, 0.7784],
+ [0.6575, -0.2859, 0.6971],
+ [0.629, 0.2307, 0.7424],
+ [0.5834, 0.2484, 0.7733],
+ [-0.2157, -0.5882, 0.7794],
+ [-0.2814, -0.6568, 0.6996],
+ [0.2346, -0.6295, 0.7408],
+ [0.2521, -0.5836, 0.7719],
+ [-0.5884, 0.2192, 0.7783],
+ [-0.6575, 0.2858, 0.6972],
+ [-0.629, -0.2307, 0.7424],
+ [-0.5835, -0.2484, 0.7732],
+ [0.6275, 0.6275, -0.461],
+ [0.6276, -0.6276, -0.4608],
+ [-0.6277, -0.6277, -0.4605],
+ [-0.6276, 0.6276, -0.4607],
+ [0.6048, 0.6048, 0.518],
+ [0.6048, -0.6048, 0.518],
+ [-0.6048, -0.6048, 0.518],
+ [-0.6048, 0.6048, 0.518],
+ [-0.907, -0.3326, -0.2582],
+ [-0.9348, 0.3278, 0.1372],
+ [-0.5514, 0.5545, -0.6233],
+ [-0.844, 0.296, -0.4472],
+ [-0.3373, 0.9052, -0.2584],
+ [0.3379, 0.931, 0.1382],
+ [0.9091, 0.3334, -0.2499],
+ [0.934, -0.3275, 0.1425],
+ [0.5499, -0.5594, -0.6203],
+ [0.8435, -0.2958, -0.4483],
+ [0.3371, -0.9047, -0.2605],
+ [-0.3382, -0.9319, 0.1307],
+ [-0.5602, -0.5642, -0.6065],
+ [-0.3067, -0.8451, -0.4379]
+ ],
+ "tex": [
+ [
+ [7.2839, -24.849],
+ [-12.017, -17.2137],
+ [7.3321, -17.2137]
+ ],
+ [
+ [7.2839, -24.849],
+ [-12.017, -24.849],
+ [-12.017, -17.2137]
+ ],
+ [
+ [7.3321, -17.2137],
+ [-12.017, -11.4689],
+ [-1.9372, -11.4688]
+ ],
+ [
+ [7.3321, -17.2137],
+ [-12.017, -17.2137],
+ [-12.017, -11.4689]
+ ],
+ [
+ [-1.9372, -11.4688],
+ [-12.017, -5.1848],
+ [-1.3167, -5.1847]
+ ],
+ [
+ [-1.9372, -11.4688],
+ [-12.017, -11.4689],
+ [-12.017, -5.1848]
+ ],
+ [
+ [-1.3167, -5.1847],
+ [-12.017, 17.728],
+ [-6.0682, 17.728]
+ ],
+ [
+ [-1.3167, -5.1847],
+ [-12.017, -5.1848],
+ [-12.017, 17.728]
+ ],
+ [
+ [-6.0682, 17.728],
+ [-12.017, 20.7633],
+ [-2.4126, 20.7633]
+ ],
+ [
+ [-6.0682, 17.728],
+ [-12.017, 17.728],
+ [-12.017, 20.7633]
+ ],
+ [
+ [-2.4126, 20.7633],
+ [-12.017, 24.996],
+ [-4.9863, 24.996]
+ ],
+ [
+ [-2.4126, 20.7633],
+ [-12.017, 20.7633],
+ [-12.017, 24.996]
+ ],
+ [
+ [-12.017, -24.849],
+ [-31.3662, -17.2137],
+ [-12.017, -17.2137]
+ ],
+ [
+ [-12.017, -24.849],
+ [-31.318, -24.849],
+ [-31.3662, -17.2137]
+ ],
+ [
+ [-12.017, -17.2137],
+ [-22.0969, -11.4688],
+ [-12.017, -11.4689]
+ ],
+ [
+ [-12.017, -17.2137],
+ [-31.3662, -17.2137],
+ [-22.0969, -11.4688]
+ ],
+ [
+ [-12.017, -11.4689],
+ [-22.7174, -5.1847],
+ [-12.017, -5.1848]
+ ],
+ [
+ [-12.017, -11.4689],
+ [-22.0969, -11.4688],
+ [-22.7174, -5.1847]
+ ],
+ [
+ [-12.017, -5.1848],
+ [-17.9659, 17.728],
+ [-12.017, 17.728]
+ ],
+ [
+ [-12.017, -5.1848],
+ [-22.7174, -5.1847],
+ [-17.9659, 17.728]
+ ],
+ [
+ [-12.017, 17.728],
+ [-21.6214, 20.7633],
+ [-12.017, 20.7633]
+ ],
+ [
+ [-12.017, 17.728],
+ [-17.9659, 17.728],
+ [-21.6214, 20.7633]
+ ],
+ [
+ [-12.017, 20.7633],
+ [-19.0478, 24.996],
+ [-12.017, 24.996]
+ ],
+ [
+ [-12.017, 20.7633],
+ [-21.6214, 20.7633],
+ [-19.0478, 24.996]
+ ],
+ [
+ [-12.017, -24.849],
+ [-12.017, -24.849],
+ [-31.318, -24.849]
+ ],
+ [
+ [-31.318, -24.849],
+ [-12.017, -17.2137],
+ [-31.3662, -17.2137]
+ ],
+ [
+ [-31.318, -24.849],
+ [-12.017, -24.849],
+ [-12.017, -17.2137]
+ ],
+ [
+ [-31.3662, -17.2137],
+ [-12.017, -11.4688],
+ [-22.0969, -11.4688]
+ ],
+ [
+ [-31.3662, -17.2137],
+ [-12.017, -17.2137],
+ [-12.017, -11.4688]
+ ],
+ [
+ [-22.0969, -11.4688],
+ [-12.017, -5.1847],
+ [-22.7174, -5.1847]
+ ],
+ [
+ [-22.0969, -11.4688],
+ [-12.017, -11.4688],
+ [-12.017, -5.1847]
+ ],
+ [
+ [-22.7174, -5.1847],
+ [-12.017, 17.728],
+ [-17.9659, 17.728]
+ ],
+ [
+ [-22.7174, -5.1847],
+ [-12.017, -5.1847],
+ [-12.017, 17.728]
+ ],
+ [
+ [-17.9659, 17.728],
+ [-12.017, 20.7633],
+ [-21.6214, 20.7633]
+ ],
+ [
+ [-17.9659, 17.728],
+ [-12.017, 17.728],
+ [-12.017, 20.7633]
+ ],
+ [
+ [-21.6214, 20.7633],
+ [-12.017, 24.996],
+ [-19.0478, 24.996]
+ ],
+ [
+ [-21.6214, 20.7633],
+ [-12.017, 20.7633],
+ [-12.017, 24.996]
+ ],
+ [
+ [-12.017, -24.849],
+ [7.2839, -24.849],
+ [-12.017, -24.849]
+ ],
+ [
+ [-12.017, -24.849],
+ [7.3321, -17.2137],
+ [-12.017, -17.2137]
+ ],
+ [
+ [-12.017, -24.849],
+ [7.2839, -24.849],
+ [7.3321, -17.2137]
+ ],
+ [
+ [-12.017, -17.2137],
+ [-1.9372, -11.4688],
+ [-12.017, -11.4688]
+ ],
+ [
+ [-12.017, -17.2137],
+ [7.3321, -17.2137],
+ [-1.9372, -11.4688]
+ ],
+ [
+ [-12.017, -11.4688],
+ [-1.3167, -5.1847],
+ [-12.017, -5.1847]
+ ],
+ [
+ [-12.017, -11.4688],
+ [-1.9372, -11.4688],
+ [-1.3167, -5.1847]
+ ],
+ [
+ [-12.017, -5.1847],
+ [-6.0682, 17.728],
+ [-12.017, 17.728]
+ ],
+ [
+ [-12.017, -5.1847],
+ [-1.3167, -5.1847],
+ [-6.0682, 17.728]
+ ],
+ [
+ [-12.017, 17.728],
+ [-2.4126, 20.7633],
+ [-12.017, 20.7633]
+ ],
+ [
+ [-12.017, 17.728],
+ [-6.0682, 17.728],
+ [-2.4126, 20.7633]
+ ],
+ [
+ [-12.017, 20.7633],
+ [-4.9863, 24.996],
+ [-12.017, 24.996]
+ ],
+ [
+ [-12.017, 20.7633],
+ [-2.4126, 20.7633],
+ [-4.9863, 24.996]
+ ],
+ [
+ [1, 0],
+ [1, 0.5],
+ [0.5, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [0, 0.5],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [0.5, 0],
+ [0.5, 0.5]
+ ],
+ [
+ [1, 0.5],
+ [0.5, 0.5],
+ [0.5, 0]
+ ],
+ [
+ [0, 0],
+ [0.5, 0],
+ [0.5, 0.5]
+ ],
+ [
+ [1, 1],
+ [0.5, 1],
+ [0.5, 0.5]
+ ],
+ [
+ [0.75, 0],
+ [0.875, 0.5],
+ [0.75, 0.5]
+ ],
+ [
+ [0.75, 0],
+ [0.875, 0],
+ [0.875, 0.5]
+ ],
+ [
+ [0, 0],
+ [0.125, 0.5],
+ [0, 0.5]
+ ],
+ [
+ [0, 0],
+ [0.125, 0],
+ [0.125, 0.5]
+ ],
+ [
+ [0.25, 0],
+ [0.375, 0.5],
+ [0.25, 0.5]
+ ],
+ [
+ [0.25, 0],
+ [0.375, 0],
+ [0.375, 0.5]
+ ],
+ [
+ [0.5, 0],
+ [0.625, 0.5],
+ [0.5, 0.5]
+ ],
+ [
+ [0.5, 0],
+ [0.625, 0],
+ [0.625, 0.5]
+ ],
+ [
+ [0.75, 0.5],
+ [0.875, 0.5],
+ [0.875, 1]
+ ],
+ [
+ [-0.125, 0.5],
+ [0, 0.5],
+ [0, 1]
+ ],
+ [
+ [0, 0.5],
+ [0.125, 0.5],
+ [0.125, 1]
+ ],
+ [
+ [0.125, 0.5],
+ [0.25, 0.5],
+ [0.25, 1]
+ ],
+ [
+ [0.25, 0.5],
+ [0.375, 0.5],
+ [0.375, 1]
+ ],
+ [
+ [0.375, 0.5],
+ [0.5, 0.5],
+ [0.5, 1]
+ ],
+ [
+ [0.5, 0.5],
+ [0.625, 0.5],
+ [0.625, 1]
+ ],
+ [
+ [0.625, 0.5],
+ [0.75, 0.5],
+ [0.75, 1]
+ ],
+ [
+ [0.75, 0.5],
+ [0.875, 0.5],
+ [0.875, 0.5]
+ ],
+ [
+ [0.875, 0.5],
+ [0.75, 0.5],
+ [0.75, 0.5]
+ ],
+ [
+ [-0.125, 0.5],
+ [0, 0.5],
+ [0, 0.5]
+ ],
+ [
+ [0, 0.5],
+ [-0.125, 0.5],
+ [-0.125, 0.5]
+ ],
+ [
+ [0, 0.5],
+ [0.125, 0.5],
+ [0.125, 0.5]
+ ],
+ [
+ [0.125, 0.5],
+ [0, 0.5],
+ [0, 0.5]
+ ],
+ [
+ [0.125, 0.5],
+ [0.25, 0.5],
+ [0.25, 0.5]
+ ],
+ [
+ [0.25, 0.5],
+ [0.125, 0.5],
+ [0.125, 0.5]
+ ],
+ [
+ [0.25, 0.5],
+ [0.375, 0.5],
+ [0.375, 0.5]
+ ],
+ [
+ [0.375, 0.5],
+ [0.25, 0.5],
+ [0.25, 0.5]
+ ],
+ [
+ [0.375, 0.5],
+ [0.5, 0.5],
+ [0.5, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [0.375, 0.5],
+ [0.375, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [0.625, 0.5],
+ [0.625, 0.5]
+ ],
+ [
+ [0.625, 0.5],
+ [0.5, 0.5],
+ [0.5, 0.5]
+ ],
+ [
+ [0.625, 0.5],
+ [0.75, 0.5],
+ [0.75, 0.5]
+ ],
+ [
+ [0.75, 0.5],
+ [0.625, 0.5],
+ [0.625, 0.5]
+ ],
+ [
+ [1, -0],
+ [0, -0],
+ [0.5, 1]
+ ],
+ [
+ [1, -0],
+ [0, -0],
+ [0.5, 1]
+ ],
+ [
+ [1, -0],
+ [0, -0],
+ [0.5, 1]
+ ],
+ [
+ [1, -0],
+ [0, -0],
+ [0.5, 1]
+ ],
+ [
+ [1, 1],
+ [0.5, 0.5],
+ [0, 1]
+ ],
+ [
+ [1, 0],
+ [0.5, 0.5],
+ [1, 1]
+ ],
+ [
+ [0, 0],
+ [0.5, 0.5],
+ [1, 0]
+ ],
+ [
+ [0, 1],
+ [0.5, 0.5],
+ [0, 0]
+ ],
+ [
+ [0.5, 0.5],
+ [0.25, 0.5],
+ [0.125, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [0.125, 0.5],
+ [1, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [-19.0478, 24.996],
+ [-12.017, 24.996]
+ ],
+ [
+ [0.5, 0.5],
+ [1, 0.5],
+ [-19.0478, 24.996]
+ ],
+ [
+ [0.5, 0.5],
+ [0.5, 0.5],
+ [0.375, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [0.375, 0.5],
+ [0, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [0.75, 0.5],
+ [0.625, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [0.625, 0.5],
+ [1, 0.5]
+ ],
+ [
+ [-12.017, 24.996],
+ [0.5, 0.5],
+ [-4.9863, 24.996]
+ ],
+ [
+ [-4.9863, 24.996],
+ [0.5, 0.5],
+ [1, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [0, 0.5],
+ [0.875, 0.5]
+ ],
+ [
+ [0.5, 0.5],
+ [0.875, 0.5],
+ [0, 0.5]
+ ],
+ [
+ [-19.0478, 24.996],
+ [0.5, 0.5],
+ [-12.017, 24.996]
+ ],
+ [
+ [0.5, 0.5],
+ [0, 0.5],
+ [-12.017, 24.996]
+ ]
+ ]
+ }];
+this.mat = [{
+ "r": 150,
+ "g": 150,
+ "b": 150
+ },
+ {
+ "r": 150,
+ "g": 150,
+ "b": 150
+ },
+ {
+ "r": 150,
+ "g": 150,
+ "b": 150
+ }];
diff --git a/public/gfiles/html5games/chess/meshes/rook.jscn b/public/gfiles/html5games/chess/meshes/rook.jscn
new file mode 100644
index 00000000..74835893
--- /dev/null
+++ b/public/gfiles/html5games/chess/meshes/rook.jscn
@@ -0,0 +1,1299 @@
+this.obj = [{
+ "vrt": [
+ [2.6443, 0.185, -2.4996],
+ [2.6509, 1.663, -2.5058],
+ [1.3821, 2.7751, -1.3043],
+ [1.8844, 3.6131, -1.7788],
+ [1.6192, 8.6795, -1.526],
+ [2.6443, 0.185, 2.5041],
+ [2.6509, 1.663, 2.5104],
+ [1.3821, 2.7751, 1.3089],
+ [1.8844, 3.6131, 1.7834],
+ [1.6192, 8.6795, 1.5289],
+ [-2.6396, 0.185, 2.5041],
+ [-2.6462, 1.663, 2.5104],
+ [-1.3774, 2.7751, 1.3089],
+ [-1.8797, 3.6131, 1.7834],
+ [-1.6205, 8.6795, 1.5289],
+ [-2.6396, 0.185, -2.4996],
+ [-2.6462, 1.663, -2.5058],
+ [-1.3774, 2.7751, -1.3043],
+ [-1.8797, 3.6131, -1.7788],
+ [-1.6205, 8.6795, -1.526],
+ [-2.2589, 10.6678, -2.1367],
+ [-1.3559, 10.6678, -2.1367],
+ [-0.4528, 10.6678, -2.1367],
+ [0.4503, 10.6678, -2.1367],
+ [1.3533, 10.6678, -2.1367],
+ [2.2564, 10.6678, -2.1367],
+ [-2.2589, 10.6678, -1.2815],
+ [-1.3559, 10.6678, -1.2815],
+ [-0.4528, 10.6678, -1.2815],
+ [0.4503, 10.6678, -1.2815],
+ [1.3533, 10.6678, -1.2815],
+ [2.2564, 10.6678, -1.2815],
+ [-2.2589, 10.6678, -0.4263],
+ [-1.3559, 10.6678, -0.4263],
+ [-0.0013, 8.1449, 0.0013],
+ [1.3533, 10.6678, -0.4263],
+ [2.2564, 10.6678, -0.4263],
+ [-2.2589, 10.6678, 0.4289],
+ [-1.3559, 10.6678, 0.4289],
+ [1.3533, 10.6678, 0.4289],
+ [2.2564, 10.6678, 0.4289],
+ [-2.2589, 10.6678, 1.284],
+ [-1.3559, 10.6678, 1.284],
+ [-0.4528, 10.6678, 1.284],
+ [0.4503, 10.6678, 1.284],
+ [1.3533, 10.6678, 1.284],
+ [2.2564, 10.6678, 1.284],
+ [-2.2589, 10.6678, 2.1392],
+ [-1.3559, 10.6678, 2.1392],
+ [-0.4528, 10.6678, 2.1392],
+ [0.4503, 10.6678, 2.1392],
+ [1.3533, 10.6678, 2.1392],
+ [2.2564, 10.6678, 2.1392],
+ [-2.2589, 10.6678, -2.1367],
+ [-1.3559, 10.6678, -2.1367],
+ [-2.2589, 10.6678, -1.2815],
+ [-1.3559, 10.6678, -1.2815],
+ [-2.2589, 11.5472, -2.1367],
+ [-1.3559, 11.5472, -2.1367],
+ [-2.2589, 11.5472, -1.2815],
+ [-1.3559, 11.5472, -1.2815],
+ [-0.4528, 10.6678, -2.1367],
+ [0.4503, 10.6678, -2.1367],
+ [-0.4528, 10.6678, -1.2815],
+ [0.4503, 10.6678, -1.2815],
+ [-0.4528, 11.5472, -2.1367],
+ [0.4503, 11.5472, -2.1367],
+ [-0.4528, 11.5472, -1.2815],
+ [0.4503, 11.5472, -1.2815],
+ [1.3533, 10.6678, -2.1367],
+ [2.2564, 10.6678, -2.1367],
+ [1.3533, 10.6678, -1.2815],
+ [2.2564, 10.6678, -1.2815],
+ [1.3533, 11.5472, -2.1367],
+ [2.2564, 11.5472, -2.1367],
+ [1.3533, 11.5472, -1.2815],
+ [2.2564, 11.5472, -1.2815],
+ [1.3533, 10.6678, -0.4263],
+ [2.2564, 10.6678, -0.4263],
+ [1.3533, 10.6678, 0.4289],
+ [2.2564, 10.6678, 0.4289],
+ [1.3533, 11.5472, -0.4263],
+ [2.2564, 11.5472, -0.4263],
+ [1.3533, 11.5472, 0.4289],
+ [2.2564, 11.5472, 0.4289],
+ [-2.2589, 10.6678, -0.4263],
+ [-1.3559, 10.6678, -0.4263],
+ [-2.2589, 10.6678, 0.4289],
+ [-1.3559, 10.6678, 0.4289],
+ [-2.2589, 11.5472, -0.4263],
+ [-1.3559, 11.5472, -0.4263],
+ [-2.2589, 11.5472, 0.4289],
+ [-1.3559, 11.5472, 0.4289],
+ [-2.2589, 10.6678, 1.284],
+ [-1.3559, 10.6678, 1.284],
+ [-2.2589, 10.6678, 2.1392],
+ [-1.3559, 10.6678, 2.1392],
+ [-2.2589, 11.5472, 1.284],
+ [-1.3559, 11.5472, 1.284],
+ [-2.2589, 11.5472, 2.1392],
+ [-1.3559, 11.5472, 2.1392],
+ [-0.4528, 10.6678, 1.284],
+ [0.4503, 10.6678, 1.284],
+ [-0.4528, 10.6678, 2.1392],
+ [0.4503, 10.6678, 2.1392],
+ [-0.4528, 11.5472, 1.284],
+ [0.4503, 11.5472, 1.284],
+ [-0.4528, 11.5472, 2.1392],
+ [0.4503, 11.5472, 2.1392],
+ [1.3533, 10.6678, 1.284],
+ [2.2564, 10.6678, 1.284],
+ [1.3533, 10.6678, 2.1392],
+ [2.2564, 10.6678, 2.1392],
+ [1.3533, 11.5472, 1.284],
+ [2.2564, 11.5472, 1.284],
+ [1.3533, 11.5472, 2.1392],
+ [2.2564, 11.5472, 2.1392]
+ ],
+ "fac": [
+ [0, 5, 6, 0],
+ [6, 1, 0, 0],
+ [1, 6, 7, 0],
+ [7, 2, 1, 0],
+ [2, 7, 8, 0],
+ [8, 3, 2, 0],
+ [3, 8, 9, 0],
+ [9, 4, 3, 0],
+ [5, 10, 11, 0],
+ [11, 6, 5, 0],
+ [6, 11, 12, 0],
+ [12, 7, 6, 0],
+ [7, 12, 13, 0],
+ [13, 8, 7, 0],
+ [8, 13, 14, 0],
+ [14, 9, 8, 0],
+ [5, 15, 10, 0],
+ [10, 15, 16, 0],
+ [16, 11, 10, 0],
+ [11, 16, 17, 0],
+ [17, 12, 11, 0],
+ [12, 17, 18, 0],
+ [18, 13, 12, 0],
+ [13, 18, 19, 0],
+ [19, 14, 13, 0],
+ [5, 0, 15, 0],
+ [15, 0, 1, 0],
+ [1, 16, 15, 0],
+ [16, 1, 2, 0],
+ [2, 17, 16, 0],
+ [17, 2, 3, 0],
+ [3, 18, 17, 0],
+ [18, 3, 4, 0],
+ [4, 19, 18, 0],
+ [21, 22, 28, 0],
+ [28, 27, 21, 0],
+ [23, 24, 30, 0],
+ [30, 29, 23, 0],
+ [26, 27, 33, 0],
+ [33, 32, 26, 0],
+ [27, 28, 34, 0],
+ [34, 33, 27, 0],
+ [28, 29, 34, 0],
+ [30, 31, 36, 0],
+ [36, 35, 30, 0],
+ [34, 38, 33, 0],
+ [34, 35, 39, 0],
+ [37, 38, 42, 0],
+ [42, 41, 37, 0],
+ [44, 43, 34, 0],
+ [34, 39, 45, 0],
+ [45, 44, 34, 0],
+ [39, 40, 46, 0],
+ [46, 45, 39, 0],
+ [42, 43, 49, 0],
+ [49, 48, 42, 0],
+ [44, 45, 51, 0],
+ [51, 50, 44, 0],
+ [21, 20, 19, 0],
+ [22, 21, 19, 0],
+ [19, 4, 23, 0],
+ [23, 22, 19, 0],
+ [24, 23, 4, 0],
+ [25, 24, 4, 0],
+ [31, 25, 4, 0],
+ [36, 31, 4, 0],
+ [4, 9, 40, 0],
+ [40, 36, 4, 0],
+ [46, 40, 9, 0],
+ [52, 46, 9, 0],
+ [51, 52, 9, 0],
+ [50, 51, 9, 0],
+ [9, 14, 49, 0],
+ [49, 50, 9, 0],
+ [48, 49, 14, 0],
+ [47, 48, 14, 0],
+ [41, 47, 14, 0],
+ [37, 41, 14, 0],
+ [14, 19, 32, 0],
+ [32, 37, 14, 0],
+ [26, 32, 19, 0],
+ [20, 26, 19, 0],
+ [57, 58, 60, 0],
+ [60, 59, 57, 0],
+ [53, 54, 58, 0],
+ [58, 57, 53, 0],
+ [54, 56, 60, 0],
+ [60, 58, 54, 0],
+ [56, 55, 59, 0],
+ [59, 60, 56, 0],
+ [55, 53, 57, 0],
+ [57, 59, 55, 0],
+ [65, 66, 68, 0],
+ [68, 67, 65, 0],
+ [61, 62, 66, 0],
+ [66, 65, 61, 0],
+ [62, 64, 68, 0],
+ [68, 66, 62, 0],
+ [64, 63, 67, 0],
+ [67, 68, 64, 0],
+ [63, 61, 65, 0],
+ [65, 67, 63, 0],
+ [73, 74, 76, 0],
+ [76, 75, 73, 0],
+ [69, 70, 74, 0],
+ [74, 73, 69, 0],
+ [70, 72, 76, 0],
+ [76, 74, 70, 0],
+ [72, 71, 75, 0],
+ [75, 76, 72, 0],
+ [71, 69, 73, 0],
+ [73, 75, 71, 0],
+ [81, 82, 84, 0],
+ [84, 83, 81, 0],
+ [77, 78, 82, 0],
+ [82, 81, 77, 0],
+ [78, 80, 84, 0],
+ [84, 82, 78, 0],
+ [80, 79, 83, 0],
+ [83, 84, 80, 0],
+ [79, 77, 81, 0],
+ [81, 83, 79, 0],
+ [89, 90, 92, 0],
+ [92, 91, 89, 0],
+ [85, 86, 90, 0],
+ [90, 89, 85, 0],
+ [86, 88, 92, 0],
+ [92, 90, 86, 0],
+ [88, 87, 91, 0],
+ [91, 92, 88, 0],
+ [87, 85, 89, 0],
+ [89, 91, 87, 0],
+ [97, 98, 100, 0],
+ [100, 99, 97, 0],
+ [93, 94, 98, 0],
+ [98, 97, 93, 0],
+ [94, 96, 100, 0],
+ [100, 98, 94, 0],
+ [96, 95, 99, 0],
+ [99, 100, 96, 0],
+ [95, 93, 97, 0],
+ [97, 99, 95, 0],
+ [105, 106, 108, 0],
+ [108, 107, 105, 0],
+ [101, 102, 106, 0],
+ [106, 105, 101, 0],
+ [102, 104, 108, 0],
+ [108, 106, 102, 0],
+ [104, 103, 107, 0],
+ [107, 108, 104, 0],
+ [103, 101, 105, 0],
+ [105, 107, 103, 0],
+ [113, 114, 116, 0],
+ [116, 115, 113, 0],
+ [109, 110, 114, 0],
+ [114, 113, 109, 0],
+ [110, 112, 116, 0],
+ [116, 114, 110, 0],
+ [112, 111, 115, 0],
+ [115, 116, 112, 0],
+ [111, 109, 113, 0],
+ [113, 115, 111, 0],
+ [34, 29, 30, 0],
+ [30, 35, 34, 0],
+ [34, 43, 42, 0],
+ [42, 38, 34, 0]
+ ],
+ "nrm": [
+ [0.7071, -0.7071, -0.0045],
+ [0.7071, -0.7071, -0.0045],
+ [0.4661, -0.4661, 0.752],
+ [0.4661, -0.4661, 0.752],
+ [0.6065, -0.6065, -0.5142],
+ [0.6065, -0.6065, -0.5142],
+ [0.7061, -0.7061, 0.0523],
+ [0.7061, -0.7061, 0.0523],
+ [-0.7071, -0.7071, -0.0045],
+ [-0.7071, -0.7071, -0.0045],
+ [-0.4661, -0.4661, 0.752],
+ [-0.4661, -0.4661, 0.752],
+ [-0.6069, -0.6069, -0.5132],
+ [-0.6069, -0.6069, -0.5132],
+ [-0.7061, -0.7061, 0.053],
+ [-0.7061, -0.7061, 0.053],
+ [-0, 0, -1],
+ [-0.7071, 0.7071, -0.0045],
+ [-0.7071, 0.7071, -0.0045],
+ [-0.4661, 0.4661, 0.752],
+ [-0.4661, 0.4661, 0.752],
+ [-0.6065, 0.6065, -0.5142],
+ [-0.6065, 0.6065, -0.5142],
+ [-0.7062, 0.7062, 0.0511],
+ [-0.7062, 0.7062, 0.0511],
+ [0, 0, -1],
+ [0.7071, 0.7071, -0.0045],
+ [0.7071, 0.7071, -0.0045],
+ [0.4661, 0.4661, 0.752],
+ [0.4661, 0.4661, 0.752],
+ [0.6069, 0.6069, -0.5132],
+ [0.6069, 0.6069, -0.5132],
+ [0.7061, 0.7061, 0.0526],
+ [0.7061, 0.7061, 0.0526],
+ [0, 0, 1],
+ [-0, 0, 1],
+ [0, 0, 1],
+ [-0, 0, 1],
+ [0, 0, 1],
+ [-0, 0, 1],
+ [-0.623, -0.623, 0.473],
+ [0.623, -0.623, 0.473],
+ [-0.623, -0.623, 0.473],
+ [0, 0, 1],
+ [-0, 0, 1],
+ [0.623, -0.623, 0.473],
+ [-0.623, 0.623, 0.473],
+ [0, 0, 1],
+ [-0, 0, 1],
+ [0.623, 0.623, 0.473],
+ [-0.623, 0.623, 0.473],
+ [0.623, 0.623, 0.473],
+ [0, 0, 1],
+ [-0, 0, 1],
+ [0, 0, 1],
+ [0, 0, 1],
+ [-0, -0, 1],
+ [0, -0, 1],
+ [0.6726, 0.6726, -0.3085],
+ [0.6726, 0.6726, -0.3085],
+ [0.6726, 0.6726, -0.3085],
+ [0.6726, 0.6726, -0.3085],
+ [0.6726, 0.6726, -0.3085],
+ [0.6726, 0.6726, -0.3085],
+ [0.6734, -0.6734, -0.3052],
+ [0.6734, -0.6734, -0.3052],
+ [0.6734, -0.6734, -0.3052],
+ [0.6734, -0.6734, -0.3052],
+ [0.6734, -0.6734, -0.3052],
+ [0.6734, -0.6734, -0.3052],
+ [-0.6727, -0.6727, -0.3083],
+ [-0.6727, -0.6727, -0.3083],
+ [-0.6727, -0.6727, -0.3083],
+ [-0.6727, -0.6727, -0.3083],
+ [-0.6727, -0.6727, -0.3083],
+ [-0.6727, -0.6727, -0.3083],
+ [-0.6733, 0.6733, -0.3057],
+ [-0.6733, 0.6733, -0.3057],
+ [-0.6733, 0.6733, -0.3057],
+ [-0.6733, 0.6733, -0.3057],
+ [-0.6733, 0.6733, -0.3057],
+ [-0.6733, 0.6733, -0.3057],
+ [0, 0, 1],
+ [0, 0, 1],
+ [0.7071, 0.7071, -0],
+ [0.7071, 0.7071, -0],
+ [0.7071, -0.7071, -0],
+ [0.7071, -0.7071, -0],
+ [-0.7071, -0.7071, 0],
+ [-0.7071, -0.7071, 0],
+ [-0.7071, 0.7071, -0],
+ [-0.7071, 0.7071, 0],
+ [0, 0, 1],
+ [0, 0, 1],
+ [0.7071, 0.7071, -0],
+ [0.7071, 0.7071, 0],
+ [0.7071, -0.7071, 0],
+ [0.7071, -0.7071, -0],
+ [-0.7071, -0.7071, -0],
+ [-0.7071, -0.7071, 0],
+ [-0.7071, 0.7071, -0],
+ [-0.7071, 0.7071, 0],
+ [0, 0, 1],
+ [0, 0, 1],
+ [0.7071, 0.7071, -0],
+ [0.7071, 0.7071, -0],
+ [0.7071, -0.7071, 0],
+ [0.7071, -0.7071, -0],
+ [-0.7071, -0.7071, -0],
+ [-0.7071, -0.7071, -0],
+ [-0.7071, 0.7071, 0],
+ [-0.7071, 0.7071, -0],
+ [0, 0, 1],
+ [-0, 0, 1],
+ [0.7071, 0.7071, 0],
+ [0.7071, 0.7071, -0],
+ [0.7071, -0.7071, -0],
+ [0.7071, -0.7071, 0],
+ [-0.7071, -0.7071, 0],
+ [-0.7071, -0.7071, 0],
+ [-0.7071, 0.7071, -0],
+ [-0.7071, 0.7071, -0],
+ [0, 0, 1],
+ [-0, 0, 1],
+ [0.7071, 0.7071, 0],
+ [0.7071, 0.7071, -0],
+ [0.7071, -0.7071, -0],
+ [0.7071, -0.7071, 0],
+ [-0.7071, -0.7071, 0],
+ [-0.7071, -0.7071, -0],
+ [-0.7071, 0.7071, 0],
+ [-0.7071, 0.7071, -0],
+ [0, 0, 1],
+ [-0, 0, 1],
+ [0.7071, 0.7071, -0],
+ [0.7071, 0.7071, 0],
+ [0.7071, -0.7071, 0],
+ [0.7071, -0.7071, 0],
+ [-0.7071, -0.7071, 0],
+ [-0.7071, -0.7071, 0],
+ [-0.7071, 0.7071, -0],
+ [-0.7071, 0.7071, 0],
+ [0, 0, 1],
+ [-0, 0, 1],
+ [0.7071, 0.7071, -0],
+ [0.7071, 0.7071, -0],
+ [0.7071, -0.7071, 0],
+ [0.7071, -0.7071, 0],
+ [-0.7071, -0.7071, -0],
+ [-0.7071, -0.7071, 0],
+ [-0.7071, 0.7071, -0],
+ [-0.7071, 0.7071, -0],
+ [0, 0, 1],
+ [-0, 0, 1],
+ [0.7071, 0.7071, -0],
+ [0.7071, 0.7071, -0],
+ [0.7071, -0.7071, 0],
+ [0.7071, -0.7071, 0],
+ [-0.7071, -0.7071, 0],
+ [-0.7071, -0.7071, -0],
+ [-0.7071, 0.7071, 0],
+ [-0.7071, 0.7071, 0],
+ [-0.623, -0.623, 0.473],
+ [-0.623, 0.623, 0.473],
+ [0.623, 0.623, 0.473],
+ [0.623, -0.623, 0.473]
+ ],
+ "tex": [
+ [
+ [7.2839, -24.849],
+ [-12.017, -24.849],
+ [-12.017, -17.2137]
+ ],
+ [
+ [-12.017, -17.2137],
+ [7.3321, -17.2137],
+ [7.2839, -24.849]
+ ],
+ [
+ [7.3321, -17.2137],
+ [-12.017, -17.2137],
+ [-12.017, -11.4689]
+ ],
+ [
+ [-12.017, -11.4689],
+ [-1.9372, -11.4688],
+ [7.3321, -17.2137]
+ ],
+ [
+ [-1.9372, -11.4688],
+ [-12.017, -11.4689],
+ [-12.017, -5.1848]
+ ],
+ [
+ [-12.017, -5.1848],
+ [-1.3167, -5.1847],
+ [-1.9372, -11.4688]
+ ],
+ [
+ [-1.3167, -5.1847],
+ [-12.017, -5.1848],
+ [-12.017, 17.728]
+ ],
+ [
+ [-12.017, 17.728],
+ [-6.0682, 17.728],
+ [-1.3167, -5.1847]
+ ],
+ [
+ [-12.017, -24.849],
+ [-31.318, -24.849],
+ [-31.3662, -17.2137]
+ ],
+ [
+ [-31.3662, -17.2137],
+ [-12.017, -17.2137],
+ [-12.017, -24.849]
+ ],
+ [
+ [-12.017, -17.2137],
+ [-31.3662, -17.2137],
+ [-22.0969, -11.4688]
+ ],
+ [
+ [-22.0969, -11.4688],
+ [-12.017, -11.4689],
+ [-12.017, -17.2137]
+ ],
+ [
+ [-12.017, -11.4689],
+ [-22.0969, -11.4688],
+ [-22.7174, -5.1847]
+ ],
+ [
+ [-22.7174, -5.1847],
+ [-12.017, -5.1848],
+ [-12.017, -11.4689]
+ ],
+ [
+ [-12.017, -5.1848],
+ [-22.7174, -5.1847],
+ [-17.9659, 17.728]
+ ],
+ [
+ [-17.9659, 17.728],
+ [-12.017, 17.728],
+ [-12.017, -5.1848]
+ ],
+ [
+ [-12.017, -24.849],
+ [-12.017, -24.849],
+ [-31.318, -24.849]
+ ],
+ [
+ [-31.318, -24.849],
+ [-12.017, -24.849],
+ [-12.017, -17.2137]
+ ],
+ [
+ [-12.017, -17.2137],
+ [-31.3662, -17.2137],
+ [-31.318, -24.849]
+ ],
+ [
+ [-31.3662, -17.2137],
+ [-12.017, -17.2137],
+ [-12.017, -11.4688]
+ ],
+ [
+ [-12.017, -11.4688],
+ [-22.0969, -11.4688],
+ [-31.3662, -17.2137]
+ ],
+ [
+ [-22.0969, -11.4688],
+ [-12.017, -11.4688],
+ [-12.017, -5.1847]
+ ],
+ [
+ [-12.017, -5.1847],
+ [-22.7174, -5.1847],
+ [-22.0969, -11.4688]
+ ],
+ [
+ [-22.7174, -5.1847],
+ [-12.017, -5.1847],
+ [-12.017, 17.728]
+ ],
+ [
+ [-12.017, 17.728],
+ [-17.9659, 17.728],
+ [-22.7174, -5.1847]
+ ],
+ [
+ [-12.017, -24.849],
+ [7.2839, -24.849],
+ [-12.017, -24.849]
+ ],
+ [
+ [-12.017, -24.849],
+ [7.2839, -24.849],
+ [7.3321, -17.2137]
+ ],
+ [
+ [7.3321, -17.2137],
+ [-12.017, -17.2137],
+ [-12.017, -24.849]
+ ],
+ [
+ [-12.017, -17.2137],
+ [7.3321, -17.2137],
+ [-1.9372, -11.4688]
+ ],
+ [
+ [-1.9372, -11.4688],
+ [-12.017, -11.4688],
+ [-12.017, -17.2137]
+ ],
+ [
+ [-12.017, -11.4688],
+ [-1.9372, -11.4688],
+ [-1.3167, -5.1847]
+ ],
+ [
+ [-1.3167, -5.1847],
+ [-12.017, -5.1847],
+ [-12.017, -11.4688]
+ ],
+ [
+ [-12.017, -5.1847],
+ [-1.3167, -5.1847],
+ [-6.0682, 17.728]
+ ],
+ [
+ [-6.0682, 17.728],
+ [-12.017, 17.728],
+ [-12.017, -5.1847]
+ ],
+ [
+ [0.2, 0],
+ [0.4, 0],
+ [0.4, 0.2]
+ ],
+ [
+ [0.4, 0.2],
+ [0.2, 0.2],
+ [0.2, 0]
+ ],
+ [
+ [0.6, 0],
+ [0.8, 0],
+ [0.8, 0.2]
+ ],
+ [
+ [0.8, 0.2],
+ [0.6, 0.2],
+ [0.6, 0]
+ ],
+ [
+ [0, 0.2],
+ [0.2, 0.2],
+ [0.2, 0.4]
+ ],
+ [
+ [0.2, 0.4],
+ [0, 0.4],
+ [0, 0.2]
+ ],
+ [
+ [0.2, 0.2],
+ [0.4, 0.2],
+ [0.4, 0.4]
+ ],
+ [
+ [0.4, 0.4],
+ [0.2, 0.4],
+ [0.2, 0.2]
+ ],
+ [
+ [0.4, 0.2],
+ [0.6, 0.2],
+ [0.6, 0.4]
+ ],
+ [
+ [0.8, 0.2],
+ [1, 0.2],
+ [1, 0.4]
+ ],
+ [
+ [1, 0.4],
+ [0.8, 0.4],
+ [0.8, 0.2]
+ ],
+ [
+ [0.4, 0.6],
+ [0.2, 0.6],
+ [0.2, 0.4]
+ ],
+ [
+ [0.6, 0.4],
+ [0.8, 0.4],
+ [0.8, 0.6]
+ ],
+ [
+ [0, 0.6],
+ [0.2, 0.6],
+ [0.2, 0.8]
+ ],
+ [
+ [0.2, 0.8],
+ [0, 0.8],
+ [0, 0.6]
+ ],
+ [
+ [0.6, 0.8],
+ [0.4, 0.8],
+ [0.4, 0.6]
+ ],
+ [
+ [0.6, 0.6],
+ [0.8, 0.6],
+ [0.8, 0.8]
+ ],
+ [
+ [0.8, 0.8],
+ [0.6, 0.8],
+ [0.6, 0.6]
+ ],
+ [
+ [0.8, 0.6],
+ [1, 0.6],
+ [1, 0.8]
+ ],
+ [
+ [1, 0.8],
+ [0.8, 0.8],
+ [0.8, 0.6]
+ ],
+ [
+ [0.2, 0.8],
+ [0.4, 0.8],
+ [0.4, 1]
+ ],
+ [
+ [0.4, 1],
+ [0.2, 1],
+ [0.2, 0.8]
+ ],
+ [
+ [0.6, 0.8],
+ [0.8, 0.8],
+ [0.8, 1]
+ ],
+ [
+ [0.8, 1],
+ [0.6, 1],
+ [0.6, 0.8]
+ ],
+ [
+ [0.2, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0.4, 1],
+ [0.2, 1],
+ [0.2, 0]
+ ],
+ [
+ [0.4, 0],
+ [0.6, 0],
+ [0.6, 1]
+ ],
+ [
+ [0.6, 1],
+ [0.4, 1],
+ [0.4, 0]
+ ],
+ [
+ [0.8, 1],
+ [0.6, 1],
+ [0.6, 0]
+ ],
+ [
+ [1, 1],
+ [0.8, 1],
+ [0.8, 0]
+ ],
+ [
+ [0.2, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0.4, 1],
+ [0.2, 1],
+ [0.2, 0]
+ ],
+ [
+ [0.4, 0],
+ [0.6, 0],
+ [0.6, 1]
+ ],
+ [
+ [0.6, 1],
+ [0.4, 1],
+ [0.4, 0]
+ ],
+ [
+ [0.8, 1],
+ [0.6, 1],
+ [0.6, 0]
+ ],
+ [
+ [1, 1],
+ [0.8, 1],
+ [0.8, 0]
+ ],
+ [
+ [0.2, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0.4, 1],
+ [0.2, 1],
+ [0.2, 0]
+ ],
+ [
+ [0.4, 0],
+ [0.6, 0],
+ [0.6, 1]
+ ],
+ [
+ [0.6, 1],
+ [0.4, 1],
+ [0.4, 0]
+ ],
+ [
+ [0.8, 1],
+ [0.6, 1],
+ [0.6, 0]
+ ],
+ [
+ [1, 1],
+ [0.8, 1],
+ [0.8, 0]
+ ],
+ [
+ [0.2, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0.4, 1],
+ [0.2, 1],
+ [0.2, 0]
+ ],
+ [
+ [0.4, 0],
+ [0.6, 0],
+ [0.6, 1]
+ ],
+ [
+ [0.6, 1],
+ [0.4, 1],
+ [0.4, 0]
+ ],
+ [
+ [0.8, 1],
+ [0.6, 1],
+ [0.6, 0]
+ ],
+ [
+ [1, 1],
+ [0.8, 1],
+ [0.8, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0, 0],
+ [1, 0],
+ [1, 1]
+ ],
+ [
+ [1, 1],
+ [0, 1],
+ [0, 0]
+ ],
+ [
+ [0.4, 0.4],
+ [0.6, 0.2],
+ [0.8, 0.2]
+ ],
+ [
+ [0.8, 0.2],
+ [0.8, 0.4],
+ [0.4, 0.4]
+ ],
+ [
+ [0.4, 0.4],
+ [0.4, 0.8],
+ [0.2, 0.8]
+ ],
+ [
+ [0.2, 0.8],
+ [0.2, 0.6],
+ [0.4, 0.4]
+ ]
+ ]
+ }];
+this.mat = [{
+ "r": 150,
+ "g": 150,
+ "b": 150
+ },
+ {
+ "r": 150,
+ "g": 150,
+ "b": 150
+ }];
diff --git a/public/gfiles/html5games/chess/sample.pgn b/public/gfiles/html5games/chess/sample.pgn
new file mode 100644
index 00000000..976bc7b3
--- /dev/null
+++ b/public/gfiles/html5games/chess/sample.pgn
@@ -0,0 +1,16 @@
+[Event "ICS Unrated Chess Match"]
+[Site "?"]
+[Date "2010.07.18"]
+[Round "?"]
+[White "GuestSXJG"]
+[Black "GuestRBZS"]
+[TimeControl "300+0"]
+[Result "1-0"]
+
+1. e4 e6 2. d4 g6 3. d5 Bg7 4. dxe6 fxe6 5. Nf3 Ne7 6. Bg5 c6 7. e5 Qa5+
+8. Qd2 Qb6 9. Bxe7 Kxe7 10. Qg5+ Ke8 11. b3 Rf8 12. Bd3 d6 13. c3 dxe5
+14. Nxe5 Qxf2+ 15. Kd1 Bxe5 16. Qxe5 Qxg2 17. Be4 Rf1+ 18. Rxf1 Qxf1+ 19. Kc2
+Nd7 20. Qh8+ Qf8 21. Qxh7 Ne5 22. Nd2 Bd7 23. Nc4 Qf2+ 24. Nd2 Rd8 25. Rf1
+Qe3 26. Bxg6+ Nxg6 27. Qf7#
+{GuestRBZS checkmated} 1-0
+
diff --git a/public/gfiles/html5games/chess/skins/gnomechess.css b/public/gfiles/html5games/chess/skins/gnomechess.css
new file mode 100644
index 00000000..53443e17
--- /dev/null
+++ b/public/gfiles/html5games/chess/skins/gnomechess.css
@@ -0,0 +1,53 @@
+#flatChessboard { /* Table element */
+ /**
+ * margin-top: [DYNAMIC VALUE];
+ * margin-bottom: [DYNAMIC VALUE];
+ */
+ margin-left: auto;
+ margin-right: auto;
+ border-collapse: collapse;
+ border: 0;
+}
+#flatChessboard tr td.blackSquares, #flatChessboard tr td.whiteSquares {
+ width: 11%;
+ height: 11%;
+ font-size: 52px;
+ line-height: 42px;
+ text-align: center;
+ font-family: Times New Roman;
+}
+
+#flatChessboard tr td.blackSquares span, #flatChessboard tr td.whiteSquares span { cursor: pointer; }
+
+#flatChessboard tr th.horizCoords {
+ width: 11%;
+ height: 6%;
+}
+
+#flatChessboard tr th.vertCoords {
+ width: 6%;
+ height: 11%;
+}
+
+#flatChessboard tr td.blackSquares { background-color: #cccccc; }
+
+/* #flatChessboard tr td.blackSquares:hover { background-color: #ccccaa; } */
+
+#flatChessboard tr td.whiteSquares { background-color: #ffffff; }
+
+/* #flatChessboard tr td.whiteSquares:hover { background-color: #ddddaa; } */
+
+#flatChessboard tr td.boardAngle /*, #bottomBorder */ { height: 6%; }
+
+#flatChessboard tr td.boardAngle { background-color: #ffffff;}
+
+#flatChessboard tr td.boardAngle /*, #rightBorder */ {
+ width: 6%;
+}
+#flatChessboard tr th, #flatChessboard tr td.boardAngle /*, #rightBorder, #bottomBorder */ {
+ overflow: visible;
+ background-color: #ce5c00;
+ color: #f9ac6d;
+ font-family: Arial;
+ font-size: 100%;
+}
diff --git a/public/gfiles/html5games/chess/solidView.jsfb b/public/gfiles/html5games/chess/solidView.jsfb
new file mode 100644
index 00000000..a775c0dc
--- /dev/null
+++ b/public/gfiles/html5games/chess/solidView.jsfb
@@ -0,0 +1,671 @@
+/**
+* @package HTML Chess
+* http://htmlchess.sourceforge.net/
+* Pieces types in this function are so defined: 0 = pawn, 1 = king, 2 = knight, 3 = bishop, 4 = rook, 5 = queen.
+* Colors are: zero for white, one for black.
+*/
+var oCnf = this, fDegRad = Math.PI / 180,
+ oSelectorCanvas = document.createElement("canvas"),
+ oValidCanvas = document.createElement("canvas"),
+ oInCheckCanvas = document.createElement("canvas"),
+ oScene = new Canvas3D.Scene(this.oSolidVwArea, this.i3DWidth, this.i3DHeight, true),
+ oCam = new Canvas3D.Camera(),
+ iSelectorY = 0, iSelectorX = 0, bPieceSelected, oSelectedPiece = null, bPiecesHidden = false, bSelectorAct = true,
+ aMouseRegions, iLastMouseRegionX = -1, iLastMouseRegionY = -1,
+ bIsRotating = false, iMouseDownX = 0, iMouseDownY = 0, bMouseIsDown = false, bUnhideOrdered = false,
+ aPieces = [], aPiecesCasing = [[],[],[],[],[],[]], aRots = [0,0,-90,90,0,180,0,180,0,0,0,0],
+ oLight1 = new Canvas3D.Light(), oLight2 = new Canvas3D.Light(), oLight3 = new Canvas3D.Light(),
+ oBoardMesh = createMesh(this.tmp3DBoard);
+
+delete this.tmp3DBoard;
+oBoardMesh.setForcedZ(64);
+oScene.addObject(oBoardMesh);
+
+function getElementPos(oElement) {
+ var nElPosX = -(document.body.scrollLeft+document.documentElement.scrollLeft), nElPosY = -(document.body.scrollTop+document.documentElement.scrollTop);
+ while (oElement && oElement.nodeName != "BODY") {
+ nElPosX += oElement.offsetLeft;
+ nElPosY += oElement.offsetTop;
+ oElement = oElement.offsetParent;
+ }
+ return {xAxis: nElPosX, yAxis: nElPosY};
+}
+
+// stand by selector
+function selectorListener(oMsEvnt1) {
+ if (!oMsEvnt1) { oMsEvnt1 = window.event; }
+ var oPos = getElementPos(oScene.getInputLayer()), oRegion = checkMouseRegions(oMsEvnt1.clientX - oPos.xAxis, oMsEvnt1.clientY - oPos.yAxis);
+ if (oRegion) {
+ showSelector();
+ showValidMoves();
+ showInCheckPieces();
+ bSelectorAct = true;
+ Canvas3D.removeEvent(oScene.getInputLayer(), "mousemove", selectorListener);
+ }
+}
+
+function standbySelector() {
+ if (bSelectorAct) {
+ hideSelector();
+ hideValidMoves();
+ hideInCheckPieces();
+ bSelectorAct = false;
+ Canvas3D.addEvent(oScene.getInputLayer(), "mousemove", selectorListener);
+ }
+}
+// end
+
+function moveZoom(bZoomIn) {
+ if (oCam = oScene.getActiveCamera()) {
+ var oTarget = oCam.getLookAt(), fDist = oTarget.dist(oCam.getPosition());
+ standbySelector();
+ hidePieces();
+ oCam.moveForward(bZoomIn ? (fDist - 50 < 40 ? fDist - 40 : 50) : -50);
+ updateMouseRegions();
+ updateSelector();
+ updateValidMoves();
+ updateInCheckPieces();
+ showPieces();
+ }
+}
+
+// setup polygons for board squares, used to check which piece mouse is hovering over
+function updateMouseRegions() {
+ //var oCam = oScene.getActiveCamera();
+
+ var iPosX, iPosY, iPosZ, oP1, oP2, oP3, oP4, iOffsetX = oCnf.i3DWidth >> 1, iOffsetY = oCnf.i3DHeight >> 1, aPaths = [];
+ for (var nRegX = 0; nRegX < 8; nRegX++) {
+ aPaths[nRegX] = [];
+ for (var nRegY = 0; nRegY < 8; nRegY++) {
+ iPosX = -(nRegX - 3) * 10;
+ iPosY = 0;
+ iPosZ = (nRegY - 4) * 10;
+
+ oP1 = oCam.project(oCam.transformPoint(new Canvas3D.Vec3(iPosX, iPosY, iPosZ)));
+ oP2 = oCam.project(oCam.transformPoint(new Canvas3D.Vec3(iPosX + 10, iPosY, iPosZ)));
+ oP3 = oCam.project(oCam.transformPoint(new Canvas3D.Vec3(iPosX + 10, iPosY, iPosZ + 10)));
+ oP4 = oCam.project(oCam.transformPoint(new Canvas3D.Vec3(iPosX, iPosY, iPosZ + 10)));
+
+ aPaths[nRegX][nRegY] = [
+ [oP1.x + iOffsetX, oP1.y + iOffsetY],
+ [oP2.x + iOffsetX, oP2.y + iOffsetY],
+ [oP3.x + iOffsetX, oP3.y + iOffsetY],
+ [oP4.x + iOffsetX, oP4.y + iOffsetY]
+ ];
+ }
+ }
+ aMouseRegions = aPaths;
+}
+
+function checkMouseRegions(iMouseX, iMouseY) {
+ var bIsLast = false, bFound = false, iRegionY = -1, iRegionX = -1, oCtx = oSelectorCanvas.getContext("2d");
+
+ if (iLastMouseRegionX > -1 && iLastMouseRegionY > -1 && checkSingleMouseRegion(oCtx, aMouseRegions[iLastMouseRegionX][iLastMouseRegionY], iMouseX, iMouseY)) { bIsLast = true; }
+ if (!bIsLast) {
+ for (var iCheckY = 0; iCheckY < 8 && !bFound; iCheckY++) {
+ for (var iCheckX = 0; iCheckX < 8 && !bFound; iCheckX++) {
+ if (checkSingleMouseRegion(oCtx, aMouseRegions[iCheckY][iCheckX], iMouseX, iMouseY)) {
+ iRegionY = iCheckY;
+ iRegionX = iCheckX;
+ bFound = true;
+ }
+ }
+ }
+ }
+ return(iRegionY > -1 && iRegionX > -1 ? {regX: iRegionX, regY: iRegionY} : false);
+}
+
+function checkSingleMouseRegion(oCtx, aRegion, nX, nY) {
+ oCtx.beginPath();
+ oCtx.moveTo(aRegion[0][0], aRegion[0][1]);
+ oCtx.lineTo(aRegion[1][0], aRegion[1][1]);
+ oCtx.lineTo(aRegion[2][0], aRegion[2][1]);
+ oCtx.lineTo(aRegion[3][0], aRegion[3][1]);
+ oCtx.closePath();
+ return(oCtx.isPointInPath(nX, nY));
+}
+
+function moveSelector(iDeltaX, iDeltaY) {
+ var fAngle = Math.atan2(oCam.getPosition().x,oCam.getPosition().z) / fDegRad;
+ // four scenarios for how to move the selector, depending on camera angle
+ if (fAngle >= 135 || fAngle <= -135) {
+ iSelectorX = iSelectorX + iDeltaX & 7;
+ iSelectorY = iSelectorY + iDeltaY & 7;
+ } else if (fAngle >= -45 && fAngle <= 45) {
+ iSelectorX = iSelectorX - iDeltaX & 7;
+ iSelectorY = iSelectorY - iDeltaY & 7;
+ } else if (fAngle >= -135 && fAngle <= -45) {
+ iSelectorY = iSelectorY - iDeltaX & 7;
+ iSelectorX = iSelectorX + iDeltaY & 7;
+ } else if (fAngle >= 45 && fAngle <= 135) {
+ iSelectorY = iSelectorY + iDeltaX & 7;
+ iSelectorX = iSelectorX - iDeltaY & 7;
+ }
+ updateSelector();
+}
+
+function hideSelector() { oSelectorCanvas.style.display = "none"; }
+function showSelector() { oSelectorCanvas.style.display = "block"; }
+function hideValidMoves() { oValidCanvas.style.display = "none"; }
+function showValidMoves() { oValidCanvas.style.display = "block"; }
+function hideInCheckPieces() { oInCheckCanvas.style.display = "none"; }
+function showInCheckPieces() { oInCheckCanvas.style.display = "block"; }
+
+function hidePieces() {
+ if (!bPiecesHidden) {
+ for (var iHide = 0; iHide < aPieces.length; iHide++) { aPieces[iHide].mesh.hide(); }
+ bPiecesHidden = true;
+ }
+}
+
+function showPieces() {
+ if (bPiecesHidden) {
+ for (var iShow = 0; iShow < aPieces.length; iShow++) { aPieces[iShow].mesh.show(); }
+ bPiecesHidden = false;
+ }
+}
+
+function updateSelector() {
+ var iOffsetX = oCnf.i3DWidth >> 1, iOffsetY = oCnf.i3DHeight >> 1, oCtx = oSelectorCanvas.getContext("2d");
+
+ oCtx.clearRect(0,0,oCnf.i3DWidth,oCnf.i3DHeight);
+
+ // draw active selector square
+ makeRegionPath(oCtx, iSelectorX, iSelectorY);
+ oCtx.fillStyle = "rgba(255,255,0,0.5)";
+ oCtx.fill();
+
+ if (bPieceSelected) {
+ // draw border around selected square
+ makeRegionPath(oCtx, oSelectedPiece.posX, oSelectedPiece.posY);
+ oCtx.lineWidth = 2;
+ oCtx.strokeStyle = "rgba(255,0,0,1)";
+ oCtx.stroke();
+ }
+}
+
+function makeRegionPath(oCtx, nMakeX, nMakeY) {
+ var aRegion = aMouseRegions[nMakeY][nMakeX];
+ oCtx.beginPath();
+ oCtx.moveTo(aRegion[0][0], aRegion[0][1]);
+ oCtx.lineTo(aRegion[1][0], aRegion[1][1]);
+ oCtx.lineTo(aRegion[2][0], aRegion[2][1]);
+ oCtx.lineTo(aRegion[3][0], aRegion[3][1]);
+ oCtx.closePath();
+}
+
+function updateValidMoves() {
+ var oCtx = oValidCanvas.getContext("2d");
+ oCtx.clearRect(0, 0, oCnf.i3DWidth, oCnf.i3DHeight);
+ oCtx.fillStyle = "rgba(0,255,0,0.2)";
+
+ if (!oSelectedPiece) { return; }
+
+ for (var iValidY = 0; iValidY < 8; iValidY++) {
+ for (var iValidX = 0; iValidX < 8; iValidX++) {
+ if (oCnf.isValidMove(oSelectedPiece.posX, oSelectedPiece.posY, iValidX, iValidY)) {
+ makeRegionPath(oCtx, iValidX, iValidY);
+ oCtx.fill();
+ }
+ }
+ }
+}
+
+function updateInCheckPieces() {
+ var oInCheck = oInCheckCanvas.getContext("2d");
+ oInCheck.clearRect(0,0,oCnf.i3DWidth,oCnf.i3DHeight);
+ oInCheck.fillStyle = "rgba(0,0,255,0.2)";
+ for (var iSquare = 0; iSquare < oCnf.aThreats.length; iSquare++) {
+ iThrtndSq = oCnf.aThreats[iSquare]
+ makeRegionPath(oInCheck, iThrtndSq % 10 - 1, (iThrtndSq - iThrtndSq % 10) / 10 - 2);
+ oInCheck.fill();
+ }
+}
+
+// removes a piece from the board
+function removePiece(oPiece) {
+ var iPiece;
+ for (var iPieceId = 0; iPieceId < aPieces.length; iPieceId++) {
+ iPiece = aPieces[iPieceId];
+ if (iPiece === oPiece) { Array.prototype.push.apply(aPiecesCasing[iPiece.type], aPieces.splice(iPieceId, 1)); }
+ }
+ oScene.removeObject(oPiece.mesh);
+}
+
+function pieceByCoords(nHasX, nHasY) {
+ for (var iId = 0; iId < aPieces.length; iId++) {
+ if (aPieces[iId].posY === nHasY && aPieces[iId].posX === nHasX) { return(aPieces[iId]); }
+ }
+}
+
+function movePieceTo(oPiece, nToX, nToY) {
+ var oPos = getBoardPos(nToX, nToY);
+ oPiece.mesh.setPosition(new Canvas3D.Vec3(oPos.posY, 0, oPos.posX));
+ oPiece.posX = nToX;
+ oPiece.posY = nToY;
+}
+
+function getBoardPos(posX, posY) { return {posX: posX * 10 - 35, posY: 35 - posY * 10}; }
+
+function clearPieceSelection() {
+ oSelectedPiece = null;
+ bPieceSelected = false;
+ updateSelector();
+ updateValidMoves();
+}
+
+function snapClick(oMsEvnt2) {
+ if (!oMsEvnt2) { oMsEvnt2 = window.event; }
+ iMouseDownX = oMsEvnt2.clientX;
+ iMouseDownY = oMsEvnt2.clientY;
+ bMouseIsDown = true;
+}
+
+function snapDOMScroll(oMsEvnt3) {
+ if (!oMsEvnt3) { oMsEvnt3 = window.event; }
+ if (!oMsEvnt3.shiftKey) { return; }
+ if (oMsEvnt3.detail) { oMsEvnt3.wheelDelta = oMsEvnt3.detail * -40; }
+
+ hidePieces();
+ hideSelector();
+ hideValidMoves();
+ oCam.setScale(oMsEvnt3.wheelDelta > 0 ? oCam.getScale() * 1.5 : oCam.getScale() / 1.5)
+
+ if (!bUnhideOrdered) {
+ setTimeout( function() {
+ showPieces();
+
+ bIsRotating = false;
+ oScene.setDirty(true);
+
+ updateMouseRegions();
+ updateSelector();
+ updateValidMoves();
+
+ showSelector();
+ showValidMoves();
+ bUnhideOrdered = false;
+ }, 100);
+ bUnhideOrdered = true;
+ }
+
+ if (oMsEvnt3.preventDefault) { oMsEvnt3.preventDefault(); } else { oMsEvnt3.returnValue = false; }
+}
+
+function snapMsBtnUp(oMsEvnt4) {
+ if (!oMsEvnt4) { oMsEvnt4 = window.event; }
+ bMouseIsDown = false;
+
+ if (bIsRotating) {
+ showPieces();
+
+ bIsRotating = false;
+ oScene.setDirty(true);
+
+ updateMouseRegions();
+ updateSelector();
+ updateValidMoves();
+ updateInCheckPieces();
+
+ setTimeout(function() { showSelector(); showValidMoves(); showInCheckPieces(); }, 10);
+ } else {
+ var oPos = getElementPos(oScene.getInputLayer());
+ iMouseDownX = oMsEvnt4.clientX - oPos.xAxis;
+ iMouseDownY = oMsEvnt4.clientY - oPos.yAxis;
+ var oRegion = checkMouseRegions(oMsEvnt4.clientX - oPos.xAxis, oMsEvnt4.clientY - oPos.yAxis);
+ if (oRegion) { oCnf.makeSelection(iSelectorY * 10 + iSelectorX + 21, true); }
+ }
+}
+
+function snapMsMove(oMsEvnt5) {
+ if (!oMsEvnt5) { oMsEvnt5 = window.event; }
+ if (bMouseIsDown) {
+ hidePieces();
+ hideSelector();
+ hideValidMoves();
+ hideInCheckPieces();
+
+ bIsRotating = true;
+
+ var iMouseX = oMsEvnt5.clientX, iMouseY = oMsEvnt5.clientY, fDeltaX = (iMouseX - iMouseDownX) / 3, fDeltaY = -((iMouseY - iMouseDownY) / 3),
+ // save the old camera position
+ oOldCamPos = new Canvas3D.Vec3(oCam.getPosition().x, oCam.getPosition().y, oCam.getPosition().z);
+
+ // pitch the camera, but if we're not too low or if we're moving the camera up
+ oCam.pitchAroundTarget(fDeltaY);
+ if (!((oCam.getPosition().y > 15 || fDeltaY < 0) && (oCam.getPosition().y < 100 || fDeltaY > 0))) { oCam.setPosition(oOldCamPos); }
+
+ oCam.yawAroundTarget(fDeltaX);
+ oCam.lookAt(oCam.getLookAt(), oScene.getUpVector());
+ oCam.updateRotationMatrix();
+ iMouseDownX = oMsEvnt5.clientX;
+ iMouseDownY = oMsEvnt5.clientY;
+
+ } else {
+ var oPos = getElementPos(oScene.getInputLayer()), oRegion = checkMouseRegions(oMsEvnt5.clientX - oPos.xAxis, oMsEvnt5.clientY - oPos.yAxis);
+ if (oRegion) {
+ var bNewRegion = false;
+ if (iSelectorY !== oRegion.regY || iSelectorX !== oRegion.regX) { bNewRegion = true; }
+
+ iSelectorX = oRegion.regX;
+ iSelectorY = oRegion.regY;
+
+ if (bNewRegion) { updateSelector(); }
+ }
+ }
+}
+
+function snapKeyDown(oKeyEvnt2) {
+ if (!oCnf.bKeyCtrl) { return; }
+ if (!oKeyEvnt2) { oKeyEvnt2 = window.event; }
+ var iKeyCode = oKeyEvnt2.keyCode;
+ if (iKeyCode === 107) { moveZoom(true); } // "+"
+ else if (iKeyCode === 109) { moveZoom(false); } // "-"
+}
+
+
+function snapKeyPress(oKeyEvnt3) {
+ if (!oCnf.bKeyCtrl) { return; }
+ if (!oKeyEvnt3) { oKeyEvnt3 = window.event; }
+ var iKeyCode = oKeyEvnt3.charCode;
+ switch (iKeyCode) {
+ case 49: moveSelector(-1,1); break; // numpad 1
+ case 50: moveSelector(-1,0); break; // numpad 2
+ case 51: moveSelector(-1,-1); break; // numpad 3
+ case 52: moveSelector(0,1); break; // numpad 4
+ case 53: oCnf.makeSelection(iSelectorY * 10 + iSelectorX + 21, true); break; // numpad 5
+ case 54: moveSelector(0,-1); break; // numpad 6
+ case 55: moveSelector(1,1); break; // numpad 7
+ case 56: moveSelector(1,0); break; // numpad 8
+ case 57: moveSelector(1,-1); break; // numpad 9
+ }
+}
+
+function createMesh(oMeshData) {
+ var oMesh = new Canvas3D.Mesh();
+ oMesh._bShading = true;
+ oMesh._bWire = false;
+ oMesh._bFill = true;
+ oMesh._bZSort = true;
+ oMesh._bBackfaceCull = true;
+ oMesh._bTexture = false;
+ oMesh._bTextureShading = false;
+ oMesh.setMeshData(oMeshData, oScene);
+ return(oMesh);
+}
+
+function setPieceColor(oPieceMesh, nColor) {
+ for (var iMat = 0; iMat < oPieceMesh._aMaterials.length; iMat++) {
+ if (nColor === 0) {
+ oPieceMesh._aMaterials[iMat].r = 220;
+ oPieceMesh._aMaterials[iMat].g = 220;
+ oPieceMesh._aMaterials[iMat].b = 220;
+ } else {
+ oPieceMesh._aMaterials[iMat].r = 100;
+ oPieceMesh._aMaterials[iMat].g = 80;
+ oPieceMesh._aMaterials[iMat].b = 80;
+ }
+ }
+}
+
+function getPiece(nType, flagColor, nPutX, nPutY) {
+ var oNewPiece, nRot = aRots[flagColor | nType << 1], oPos = getBoardPos(nPutX, nPutY);
+ if (aPiecesCasing[nType].length > 0) {
+ oNewPiece = aPiecesCasing[nType].pop();
+ if (oNewPiece.color !== flagColor) {
+ setPieceColor(oNewPiece.mesh, flagColor);
+ oNewPiece.color = flagColor;
+ }
+ oNewPiece.posX = nPutX;
+ oNewPiece.posY = nPutY;
+ } else {
+ var oNewMesh = createMesh(new oCnf.aPiecesLab[nType]());
+ setPieceColor(oNewMesh, flagColor);
+ oNewPiece = {
+ mesh: oNewMesh,
+ color: flagColor,
+ type: nType,
+ posX: nPutX,
+ posY: nPutY,
+ };
+ }
+ if (nRot !== 0) { oNewPiece.mesh.setRotation(new Canvas3D.Vec3(0, nRot * fDegRad, 0)); }
+ oNewPiece.mesh.setPosition(new Canvas3D.Vec3(oPos.posY, 0, oPos.posX));
+ aPieces.push(oNewPiece);
+ oScene.addObject(oNewPiece.mesh);
+ return(oNewPiece);
+}
+
+function setupGame() {
+ var iTypeORColor;
+ for (var iPieceY = 0; iPieceY < 8; iPieceY++) {
+ for (var iPieceX = 0; iPieceX < 8; iPieceX++) {
+ iTypeORColor = oCnf.aBoard[iPieceY * 10 + iPieceX + 21];
+ if (iTypeORColor > 0) {
+ getPiece(iTypeORColor - 1 & 7, iTypeORColor >> 3 & 1, iPieceX, iPieceY);
+ }
+ }
+ }
+}
+
+function resetCamera() {
+ var nSize = oCnf.i3DWidth < oCnf.i3DHeight ? oCnf.i3DWidth : oCnf.i3DHeight; // min 200, max 900
+ oCam.setPosition(new Canvas3D.Vec3(oCnf.bBlackSide ? -50 : 50, nSize > 900 ? 45 : Math.round((nSize * (nSize * 67 - 118700) + 56340000) / 84000), 0));
+ oCam.lookAt(new Canvas3D.Vec3(0,0,0), oScene.getUpVector());
+ oCam.updateRotationMatrix();
+}
+
+function updateCamera() {
+ hidePieces();
+ standbySelector();
+ resetCamera();
+ updateMouseRegions();
+ updateSelector();
+ updateValidMoves();
+ updateInCheckPieces();
+ showPieces();
+}
+
+this.oSolidVwArea.style.width = this.i3DWidth + "px";
+this.oSolidVwArea.style.height = this.i3DHeight + "px";
+
+oInCheckCanvas.width = this.i3DWidth;
+oInCheckCanvas.height = this.i3DHeight;
+oInCheckCanvas.style.width = this.i3DWidth + "px";
+oInCheckCanvas.style.height = this.i3DHeight + "px";
+oInCheckCanvas.style.zIndex = 65;
+oInCheckCanvas.style.position = "absolute";
+
+oValidCanvas.width = this.i3DWidth;
+oValidCanvas.height = this.i3DHeight;
+oValidCanvas.style.width = this.i3DWidth + "px";
+oValidCanvas.style.height = this.i3DHeight + "px";
+oValidCanvas.style.zIndex = 66;
+oValidCanvas.style.position = "absolute";
+
+oSelectorCanvas.width = this.i3DWidth;
+oSelectorCanvas.height = this.i3DHeight;
+oSelectorCanvas.style.width = this.i3DWidth + "px";
+oSelectorCanvas.style.height = this.i3DHeight + "px";
+oSelectorCanvas.style.zIndex = 67;
+oSelectorCanvas.style.position = "absolute";
+
+oLight1.setPosition(new Canvas3D.Vec3(0,30,0));
+oLight1.setIntensity(0.8);
+oScene.addLight(oLight1);
+
+oLight2.setPosition(new Canvas3D.Vec3(100,30,100));
+oLight2.setIntensity(0.3);
+oScene.addLight(oLight2);
+
+oLight3.setPosition(new Canvas3D.Vec3(-100,30,-100));
+oLight3.setIntensity(0.3);
+oScene.addLight(oLight3);
+
+setupGame();
+
+oCam.setScale(18);
+oCam.setFOV(110);
+oCam.setFocalDistance(50);
+
+oCam.setReverseX(true);
+
+resetCamera();
+
+oScene.setActiveCamera(oCam);
+
+//oScene.setUpVector(new Canvas3D.Vec3(0,-1,0));
+
+this.oSolidVwArea.appendChild(oSelectorCanvas);
+this.oSolidVwArea.appendChild(oValidCanvas);
+this.oSolidVwArea.appendChild(oInCheckCanvas);
+
+Canvas3D.addEvent(oScene.getInputLayer(), "mousedown", snapClick);
+Canvas3D.addEvent(document.body, "DOMMouseScroll", snapDOMScroll);
+Canvas3D.addEvent(document.body, "mouseup", snapMsBtnUp);
+Canvas3D.addEvent(document.body, "mousemove", snapMsMove);
+Canvas3D.addEvent(document, "keypress", snapKeyPress);
+Canvas3D.addEvent(document, "keydown", snapKeyDown);
+oScene.begin();
+updateMouseRegions();
+updateInCheckPieces();
+this.bSolidView = true;
+
+return {
+ show: function() {
+ oCnf.oSolidVwArea.appendChild(oScene._oDrawCanvas);
+ oCnf.oSolidVwArea.appendChild(oScene._oInputOverlay);
+ oCnf.oSolidVwArea.appendChild(oSelectorCanvas);
+ oCnf.oSolidVwArea.appendChild(oValidCanvas);
+ oCnf.oSolidVwArea.appendChild(oInCheckCanvas);
+ oScene.addObject(oBoardMesh);
+ setupGame();
+ Canvas3D.addEvent(oScene.getInputLayer(), "mousedown", snapClick);
+ Canvas3D.addEvent(document.body, "DOMMouseScroll", snapDOMScroll);
+ Canvas3D.addEvent(document.body, "mouseup", snapMsBtnUp);
+ Canvas3D.addEvent(document.body, "mousemove", snapMsMove);
+ Canvas3D.addEvent(document, "keypress", snapKeyPress);
+ Canvas3D.addEvent(document, "keydown", snapKeyDown);
+ updateCamera();
+ oScene.begin();
+ oCnf.bSolidView = true;
+ },
+ hide: function() {
+ Canvas3D.removeEvent(oScene.getInputLayer(), "mousedown", snapClick);
+ Canvas3D.removeEvent(document.body, "DOMMouseScroll", snapDOMScroll);
+ Canvas3D.removeEvent(document.body, "mouseup", snapMsBtnUp);
+ Canvas3D.removeEvent(document.body, "mousemove", snapMsMove);
+ Canvas3D.removeEvent(document, "keypress", snapKeyPress);
+ Canvas3D.removeEvent(document, "keydown", snapKeyDown);
+ oScene.end();
+ oCnf.oSolidVwArea.removeChild(oInCheckCanvas);
+ oCnf.oSolidVwArea.removeChild(oValidCanvas);
+ oCnf.oSolidVwArea.removeChild(oSelectorCanvas);
+ oScene.removeAllObjects();
+ for (var iStop = aPieces.length; iStop > 0; iStop--) {
+ oPiece = aPieces[iStop - 1];
+ aPiecesCasing[oPiece.type].push(aPieces.pop());
+ }
+ oCnf.oSolidVwArea.removeChild(oScene._oInputOverlay);
+ oCnf.oSolidVwArea.removeChild(oScene._oDrawCanvas);
+ oCnf.oSolidVwArea.style.width = "0";
+ oCnf.bSolidView = false;
+ },
+ update: function(bUpdateCamera) {
+ clearPieceSelection();
+ for (var iCase = aPieces.length; iCase > 0; iCase--) {
+ oPiece = aPieces[iCase - 1];
+ aPiecesCasing[oPiece.type].push(aPieces.pop());
+ oScene.removeObject(oPiece.mesh);
+ }
+ setupGame();
+ if (bUpdateCamera) { updateCamera(); }
+ else {
+ updateValidMoves();
+ updateInCheckPieces();
+ }
+ },
+ selectPiece: function(nSquareId, bUnselect, bEmph) {
+ iSelectorX = nSquareId % 10 - 1;
+ iSelectorY = (nSquareId - nSquareId % 10) / 10 - 2;
+
+ if (bUnselect) {
+ for (var iSel = 0; iSel < aPieces.length; iSel++) {
+ if (aPieces[iSel].posY === iSelectorY && aPieces[iSel].posX === iSelectorX) {
+ oPiece = aPieces[iSel];
+ oSelectedPiece = aPieces[iSel];
+ bPieceSelected = true;
+ }
+ }
+ if (bEmph) {
+ updateSelector();
+ updateValidMoves();
+ } else {
+ standbySelector();
+ var oSCtx = oSelectorCanvas.getContext("2d"), oVCtx = oValidCanvas.getContext("2d");
+ oSCtx.clearRect(0,0,oCnf.i3DWidth,oCnf.i3DHeight);
+ oVCtx.clearRect(0,0,oCnf.i3DWidth,oCnf.i3DHeight);
+ }
+ } else {
+ clearPieceSelection();
+ updateInCheckPieces();
+ }
+ },
+ updateSize: function() {
+ oCnf.oSolidVwArea.style.width = oCnf.i3DWidth + "px";
+ oCnf.oSolidVwArea.style.height = oCnf.i3DHeight + "px";
+
+ oSelectorCanvas.width = oCnf.i3DWidth;
+ oSelectorCanvas.height = oCnf.i3DHeight;
+ oSelectorCanvas.style.width = oCnf.i3DWidth + "px";
+ oSelectorCanvas.style.height = oCnf.i3DHeight + "px";
+
+ oValidCanvas.width = oCnf.i3DWidth;
+ oValidCanvas.height = oCnf.i3DHeight;
+ oValidCanvas.style.width = oCnf.i3DWidth + "px";
+ oValidCanvas.style.height = oCnf.i3DHeight + "px";
+
+ oInCheckCanvas.width = oCnf.i3DWidth;
+ oInCheckCanvas.height = oCnf.i3DHeight;
+ oInCheckCanvas.style.width = oCnf.i3DWidth + "px";
+ oInCheckCanvas.style.height = oCnf.i3DHeight + "px";
+
+ oScene.setDimensions(oCnf.i3DWidth, oCnf.i3DHeight);
+
+ updateCamera();
+ },
+ move: function(bBackward, nStartPt, nEndPt, nTarget, nPromoPiece) {
+ var nStartX = nStartPt % 10 - 1, nStartY = (nStartPt - nStartPt % 10) / 10 - 2, nEndX = nEndPt % 10 - 1, nEndY = (nEndPt - nEndPt % 10) / 10 - 2;
+ if (bBackward) {
+ var oSelPiece = pieceByCoords(nEndX, nEndY);
+ if (nTarget) { getPiece(nTarget - 1 & 7, nTarget >> 3 & 1, nEndX, nEndY); }
+ else if (oSelPiece.type === 0 && (nStartPt + nEndPt & 1)) { // en passant
+ getPiece(0, oSelPiece.color ^ 1, nEndX, nStartY);
+ } else if (oSelPiece.type === 1 && (nEndPt - nStartPt + 2 | 4) === 4) { // castling
+ var chosenRook = pieceByCoords(nEndPt - nStartPt + 8 >> 1, nEndY);
+ movePieceTo(chosenRook, 30 - nEndPt + nStartPt >> 2 & 7, nEndY);
+ chosenRook.posX = 30 - nEndPt + nStartPt >> 2 & 7;
+ }
+ if (nPromoPiece) {
+ removePiece(oSelPiece);
+ getPiece(0, nEndY >> 2 ^ 1, nStartX, nStartY);
+ } else { movePieceTo(oSelPiece, nStartX, nStartY); }
+ } else {
+ var oSelPiece = pieceByCoords(nStartX, nStartY);
+ if (nTarget) { removePiece(pieceByCoords(nEndX, nEndY)); }
+ else if (oSelPiece.type === 0 && (nStartPt + nEndPt & 1)) { // en passant
+ removePiece(pieceByCoords(nEndX, nStartY));
+ } else if (oSelPiece.type === 1 && (nEndPt - nStartPt + 2 | 4) === 4) { // castling
+ var chosenRook = pieceByCoords(30 - nEndPt + nStartPt >> 2 & 7, nEndY);
+ movePieceTo(chosenRook, nEndPt - nStartPt + 8 >> 1, nEndY);
+ chosenRook.posX = nEndPt - nStartPt + 8 >> 1;
+ }
+ if (nPromoPiece) {
+ removePiece(oSelPiece);
+ oSelPiece = getPiece(nPromoPiece - 1 & 7, nEndY >> 2 ^ 1, nEndX, nEndY); }
+ else { movePieceTo(oSelPiece, nEndX, nEndY); }
+ }
+ updateInCheckPieces();
+ },
+ updateView: updateCamera
+};
diff --git a/public/gfiles/html5games/chromaincident/index.html b/public/gfiles/html5games/chromaincident/index.html
new file mode 100644
index 00000000..ef16a659
--- /dev/null
+++ b/public/gfiles/html5games/chromaincident/index.html
@@ -0,0 +1 @@
+
JS13k
\ No newline at end of file
diff --git a/public/gfiles/html5games/connect3/index.html b/public/gfiles/html5games/connect3/index.html
new file mode 100644
index 00000000..2459c333
--- /dev/null
+++ b/public/gfiles/html5games/connect3/index.html
@@ -0,0 +1,115 @@
+
+
+
+
Connect 3
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/gfiles/html5games/cookieclicker/img/BGgarden.jpg b/public/gfiles/html5games/cookieclicker/img/BGgarden.jpg
new file mode 100644
index 00000000..4b37afda
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/BGgarden.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/BGgrimoire.jpg b/public/gfiles/html5games/cookieclicker/img/BGgrimoire.jpg
new file mode 100644
index 00000000..4150eb6d
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/BGgrimoire.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/BGpantheon.jpg b/public/gfiles/html5games/cookieclicker/img/BGpantheon.jpg
new file mode 100644
index 00000000..4c19974c
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/BGpantheon.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/alarmTurret.png b/public/gfiles/html5games/cookieclicker/img/alarmTurret.png
new file mode 100644
index 00000000..df85713f
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/alarmTurret.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/alchemylab.png b/public/gfiles/html5games/cookieclicker/img/alchemylab.png
new file mode 100644
index 00000000..1d0ae000
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/alchemylab.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/alchemylabBackground.png b/public/gfiles/html5games/cookieclicker/img/alchemylabBackground.png
new file mode 100644
index 00000000..2cd0cce1
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/alchemylabBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/alchemylabIcon.png b/public/gfiles/html5games/cookieclicker/img/alchemylabIcon.png
new file mode 100644
index 00000000..69285e3a
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/alchemylabIcon.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/alchemylabIconOff.png b/public/gfiles/html5games/cookieclicker/img/alchemylabIconOff.png
new file mode 100644
index 00000000..8e2733bf
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/alchemylabIconOff.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/alteredGrandma.png b/public/gfiles/html5games/cookieclicker/img/alteredGrandma.png
new file mode 100644
index 00000000..938fe151
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/alteredGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/angrySentientCookie.png b/public/gfiles/html5games/cookieclicker/img/angrySentientCookie.png
new file mode 100644
index 00000000..47497299
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/angrySentientCookie.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/antiGrandma.png b/public/gfiles/html5games/cookieclicker/img/antiGrandma.png
new file mode 100644
index 00000000..0a40d2d9
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/antiGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/antimattercondenser.png b/public/gfiles/html5games/cookieclicker/img/antimattercondenser.png
new file mode 100644
index 00000000..50a87603
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/antimattercondenser.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/antimattercondenserBackground.png b/public/gfiles/html5games/cookieclicker/img/antimattercondenserBackground.png
new file mode 100644
index 00000000..ae90cb63
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/antimattercondenserBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/antimattercondenserIcon.png b/public/gfiles/html5games/cookieclicker/img/antimattercondenserIcon.png
new file mode 100644
index 00000000..25cd7abf
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/antimattercondenserIcon.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/antimattercondenserIconOff.png b/public/gfiles/html5games/cookieclicker/img/antimattercondenserIconOff.png
new file mode 100644
index 00000000..69ff0eae
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/antimattercondenserIconOff.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/aqworldsbanner.jpg b/public/gfiles/html5games/cookieclicker/img/aqworldsbanner.jpg
new file mode 100644
index 00000000..f115cd3d
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/aqworldsbanner.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/ascendBox.png b/public/gfiles/html5games/cookieclicker/img/ascendBox.png
new file mode 100644
index 00000000..8d962157
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/ascendBox.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/ascendInfo.png b/public/gfiles/html5games/cookieclicker/img/ascendInfo.png
new file mode 100644
index 00000000..a8d023f8
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/ascendInfo.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/ascendSlot.png b/public/gfiles/html5games/cookieclicker/img/ascendSlot.png
new file mode 100644
index 00000000..26d1cc1e
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/ascendSlot.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/ascendWisp.png b/public/gfiles/html5games/cookieclicker/img/ascendWisp.png
new file mode 100644
index 00000000..6eb0c4c1
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/ascendWisp.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/ascendedBakingPod.png b/public/gfiles/html5games/cookieclicker/img/ascendedBakingPod.png
new file mode 100644
index 00000000..cd21dc57
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/ascendedBakingPod.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/babySentientCookie.png b/public/gfiles/html5games/cookieclicker/img/babySentientCookie.png
new file mode 100644
index 00000000..69acc2b1
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/babySentientCookie.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bank.png b/public/gfiles/html5games/cookieclicker/img/bank.png
new file mode 100644
index 00000000..804dfec1
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bank.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bankBackground.png b/public/gfiles/html5games/cookieclicker/img/bankBackground.png
new file mode 100644
index 00000000..4d23283a
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bankBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bankGrandma.png b/public/gfiles/html5games/cookieclicker/img/bankGrandma.png
new file mode 100644
index 00000000..a61fca59
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bankGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bgBlack.jpg b/public/gfiles/html5games/cookieclicker/img/bgBlack.jpg
new file mode 100644
index 00000000..59d9a324
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bgBlack.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bgBlue.jpg b/public/gfiles/html5games/cookieclicker/img/bgBlue.jpg
new file mode 100644
index 00000000..8c61da16
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bgBlue.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bgGold.jpg b/public/gfiles/html5games/cookieclicker/img/bgGold.jpg
new file mode 100644
index 00000000..b4473dbb
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bgGold.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bgMoney.jpg b/public/gfiles/html5games/cookieclicker/img/bgMoney.jpg
new file mode 100644
index 00000000..ecd13446
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bgMoney.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bgMoneyChart.jpg b/public/gfiles/html5games/cookieclicker/img/bgMoneyChart.jpg
new file mode 100644
index 00000000..22b5d79e
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bgMoneyChart.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bgRed.jpg b/public/gfiles/html5games/cookieclicker/img/bgRed.jpg
new file mode 100644
index 00000000..4ff40463
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bgRed.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bgWhite.jpg b/public/gfiles/html5games/cookieclicker/img/bgWhite.jpg
new file mode 100644
index 00000000..3cb7e494
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bgWhite.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/blackGradient.png b/public/gfiles/html5games/cookieclicker/img/blackGradient.png
new file mode 100644
index 00000000..8cfab388
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/blackGradient.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/blackGradientLeft.png b/public/gfiles/html5games/cookieclicker/img/blackGradientLeft.png
new file mode 100644
index 00000000..69958a78
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/blackGradientLeft.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/blackGradientSmallTop.png b/public/gfiles/html5games/cookieclicker/img/blackGradientSmallTop.png
new file mode 100644
index 00000000..1e3ffbfc
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/blackGradientSmallTop.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bracketPanelLeftS.png b/public/gfiles/html5games/cookieclicker/img/bracketPanelLeftS.png
new file mode 100644
index 00000000..532cc7b2
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bracketPanelLeftS.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bracketPanelRightS.png b/public/gfiles/html5games/cookieclicker/img/bracketPanelRightS.png
new file mode 100644
index 00000000..a0be91f5
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bracketPanelRightS.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/brokenCookie.png b/public/gfiles/html5games/cookieclicker/img/brokenCookie.png
new file mode 100644
index 00000000..37c0a7a1
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/brokenCookie.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/brokenCookieHalo.png b/public/gfiles/html5games/cookieclicker/img/brokenCookieHalo.png
new file mode 100644
index 00000000..769348f4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/brokenCookieHalo.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/brownStripes.png b/public/gfiles/html5games/cookieclicker/img/brownStripes.png
new file mode 100644
index 00000000..bb974856
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/brownStripes.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/brownStripesLeftEdge.png b/public/gfiles/html5games/cookieclicker/img/brownStripesLeftEdge.png
new file mode 100644
index 00000000..4b15e462
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/brownStripesLeftEdge.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/buildings.png b/public/gfiles/html5games/cookieclicker/img/buildings.png
new file mode 100644
index 00000000..95ab9946
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/buildings.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bunnies.png b/public/gfiles/html5games/cookieclicker/img/bunnies.png
new file mode 100644
index 00000000..2138caae
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bunnies.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/bunnyGrandma.png b/public/gfiles/html5games/cookieclicker/img/bunnyGrandma.png
new file mode 100644
index 00000000..d3ae5ec3
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/bunnyGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/burntSentientCookie.png b/public/gfiles/html5games/cookieclicker/img/burntSentientCookie.png
new file mode 100644
index 00000000..49cd86c7
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/burntSentientCookie.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/buttonTile.jpg b/public/gfiles/html5games/cookieclicker/img/buttonTile.jpg
new file mode 100644
index 00000000..26f79c67
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/buttonTile.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/caramelWave.png b/public/gfiles/html5games/cookieclicker/img/caramelWave.png
new file mode 100644
index 00000000..91795b0b
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/caramelWave.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/chancemaker.png b/public/gfiles/html5games/cookieclicker/img/chancemaker.png
new file mode 100644
index 00000000..4cdb93b5
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/chancemaker.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/chancemakerBackground.png b/public/gfiles/html5games/cookieclicker/img/chancemakerBackground.png
new file mode 100644
index 00000000..64b9869c
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/chancemakerBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/chirpy.png b/public/gfiles/html5games/cookieclicker/img/chirpy.png
new file mode 100644
index 00000000..886020c4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/chirpy.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/chocolateMilkWave.png b/public/gfiles/html5games/cookieclicker/img/chocolateMilkWave.png
new file mode 100644
index 00000000..ec2fc5fe
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/chocolateMilkWave.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/clayBG.jpg b/public/gfiles/html5games/cookieclicker/img/clayBG.jpg
new file mode 100644
index 00000000..e24bf0f4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/clayBG.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/contract.png b/public/gfiles/html5games/cookieclicker/img/contract.png
new file mode 100644
index 00000000..e1a4f7ac
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/contract.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/control.png b/public/gfiles/html5games/cookieclicker/img/control.png
new file mode 100644
index 00000000..6a18fe74
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/control.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/cookieShower1.png b/public/gfiles/html5games/cookieclicker/img/cookieShower1.png
new file mode 100644
index 00000000..dcd2c66b
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/cookieShower1.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/cookieShower2.png b/public/gfiles/html5games/cookieclicker/img/cookieShower2.png
new file mode 100644
index 00000000..44e6f8a0
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/cookieShower2.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/cookieShower3.png b/public/gfiles/html5games/cookieclicker/img/cookieShower3.png
new file mode 100644
index 00000000..d44ee423
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/cookieShower3.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/cosmicGrandma.png b/public/gfiles/html5games/cookieclicker/img/cosmicGrandma.png
new file mode 100644
index 00000000..8c06dc43
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/cosmicGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/crazedDoughSpurter.png b/public/gfiles/html5games/cookieclicker/img/crazedDoughSpurter.png
new file mode 100644
index 00000000..ac0fb2c8
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/crazedDoughSpurter.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/crazedKneader.png b/public/gfiles/html5games/cookieclicker/img/crazedKneader.png
new file mode 100644
index 00000000..e3f39db4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/crazedKneader.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/cursor.png b/public/gfiles/html5games/cookieclicker/img/cursor.png
new file mode 100644
index 00000000..0cca1e04
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/cursor.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/cursoricon.png b/public/gfiles/html5games/cookieclicker/img/cursoricon.png
new file mode 100644
index 00000000..bd957dd7
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/cursoricon.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/cursoriconOff.png b/public/gfiles/html5games/cookieclicker/img/cursoriconOff.png
new file mode 100644
index 00000000..99e7c71d
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/cursoriconOff.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/darkNoise.jpg b/public/gfiles/html5games/cookieclicker/img/darkNoise.jpg
new file mode 100644
index 00000000..1111b9e8
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/darkNoise.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/darkNoise.png b/public/gfiles/html5games/cookieclicker/img/darkNoise.png
new file mode 100644
index 00000000..a8821f74
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/darkNoise.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/darkNoiseTopBar.jpg b/public/gfiles/html5games/cookieclicker/img/darkNoiseTopBar.jpg
new file mode 100644
index 00000000..26155a0a
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/darkNoiseTopBar.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/discord.png b/public/gfiles/html5games/cookieclicker/img/discord.png
new file mode 100644
index 00000000..92efeef7
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/discord.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/disgruntledCleaningLady.png b/public/gfiles/html5games/cookieclicker/img/disgruntledCleaningLady.png
new file mode 100644
index 00000000..df8822de
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/disgruntledCleaningLady.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/disgruntledOverseer.png b/public/gfiles/html5games/cookieclicker/img/disgruntledOverseer.png
new file mode 100644
index 00000000..be77ab58
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/disgruntledOverseer.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/disgruntledWorker.png b/public/gfiles/html5games/cookieclicker/img/disgruntledWorker.png
new file mode 100644
index 00000000..6694ba2a
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/disgruntledWorker.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/doughling.png b/public/gfiles/html5games/cookieclicker/img/doughling.png
new file mode 100644
index 00000000..e659bb92
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/doughling.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/dragon.png b/public/gfiles/html5games/cookieclicker/img/dragon.png
new file mode 100644
index 00000000..e0dcc826
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/dragon.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/dragonBG.png b/public/gfiles/html5games/cookieclicker/img/dragonBG.png
new file mode 100644
index 00000000..656ec091
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/dragonBG.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/dragonFrame.png b/public/gfiles/html5games/cookieclicker/img/dragonFrame.png
new file mode 100644
index 00000000..13fd72d3
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/dragonFrame.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/dungeonDot.png b/public/gfiles/html5games/cookieclicker/img/dungeonDot.png
new file mode 100644
index 00000000..7eb76971
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/dungeonDot.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/dungeonFactory.png b/public/gfiles/html5games/cookieclicker/img/dungeonFactory.png
new file mode 100644
index 00000000..54d97a7a
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/dungeonFactory.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/dungeonFoes.png b/public/gfiles/html5games/cookieclicker/img/dungeonFoes.png
new file mode 100644
index 00000000..c48d686c
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/dungeonFoes.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/dungeonHeroes.png b/public/gfiles/html5games/cookieclicker/img/dungeonHeroes.png
new file mode 100644
index 00000000..c3eff486
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/dungeonHeroes.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/dungeonIcons.png b/public/gfiles/html5games/cookieclicker/img/dungeonIcons.png
new file mode 100644
index 00000000..88e8d123
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/dungeonIcons.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/dungeonItems.png b/public/gfiles/html5games/cookieclicker/img/dungeonItems.png
new file mode 100644
index 00000000..d23b9517
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/dungeonItems.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/dungeonMapFactory.jpg b/public/gfiles/html5games/cookieclicker/img/dungeonMapFactory.jpg
new file mode 100644
index 00000000..e2d9b199
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/dungeonMapFactory.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/dungeonOverlay.png b/public/gfiles/html5games/cookieclicker/img/dungeonOverlay.png
new file mode 100644
index 00000000..9a9eefb6
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/dungeonOverlay.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/dungeonPictos.png b/public/gfiles/html5games/cookieclicker/img/dungeonPictos.png
new file mode 100644
index 00000000..fbe48848
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/dungeonPictos.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/dungeonTiles.png b/public/gfiles/html5games/cookieclicker/img/dungeonTiles.png
new file mode 100644
index 00000000..1d306920
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/dungeonTiles.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/easterEggs.png b/public/gfiles/html5games/cookieclicker/img/easterEggs.png
new file mode 100644
index 00000000..a77afcaa
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/easterEggs.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/elderDoughling.png b/public/gfiles/html5games/cookieclicker/img/elderDoughling.png
new file mode 100644
index 00000000..8d53bed4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/elderDoughling.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/elfGrandma.png b/public/gfiles/html5games/cookieclicker/img/elfGrandma.png
new file mode 100644
index 00000000..75edd6a6
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/elfGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/empty.png b/public/gfiles/html5games/cookieclicker/img/empty.png
new file mode 100644
index 00000000..c2da5b88
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/empty.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/emptyFrame.png b/public/gfiles/html5games/cookieclicker/img/emptyFrame.png
new file mode 100644
index 00000000..c6a60668
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/emptyFrame.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/factory.png b/public/gfiles/html5games/cookieclicker/img/factory.png
new file mode 100644
index 00000000..3cdd9505
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/factory.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/factoryBackground.png b/public/gfiles/html5games/cookieclicker/img/factoryBackground.png
new file mode 100644
index 00000000..e96ea550
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/factoryBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/factoryIcon.png b/public/gfiles/html5games/cookieclicker/img/factoryIcon.png
new file mode 100644
index 00000000..c8b748aa
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/factoryIcon.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/factoryIconOff.png b/public/gfiles/html5games/cookieclicker/img/factoryIconOff.png
new file mode 100644
index 00000000..7b52b8f4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/factoryIconOff.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/farm.png b/public/gfiles/html5games/cookieclicker/img/farm.png
new file mode 100644
index 00000000..45805562
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/farm.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/farmBackground.png b/public/gfiles/html5games/cookieclicker/img/farmBackground.png
new file mode 100644
index 00000000..fe6acf9a
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/farmBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/farmIcon.png b/public/gfiles/html5games/cookieclicker/img/farmIcon.png
new file mode 100644
index 00000000..36cbf3e3
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/farmIcon.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/farmIconOff.png b/public/gfiles/html5games/cookieclicker/img/farmIconOff.png
new file mode 100644
index 00000000..94fa896b
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/farmIconOff.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/farmerGrandma.png b/public/gfiles/html5games/cookieclicker/img/farmerGrandma.png
new file mode 100644
index 00000000..abde9b80
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/farmerGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/favicon.ico b/public/gfiles/html5games/cookieclicker/img/favicon.ico
new file mode 100644
index 00000000..3846c2cf
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/favicon.ico differ
diff --git a/public/gfiles/html5games/cookieclicker/img/featherLeft.png b/public/gfiles/html5games/cookieclicker/img/featherLeft.png
new file mode 100644
index 00000000..48476824
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/featherLeft.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/featherRight.png b/public/gfiles/html5games/cookieclicker/img/featherRight.png
new file mode 100644
index 00000000..36e98ee6
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/featherRight.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/filler.png b/public/gfiles/html5games/cookieclicker/img/filler.png
new file mode 100644
index 00000000..a540a813
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/filler.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/fractalEngine.png b/public/gfiles/html5games/cookieclicker/img/fractalEngine.png
new file mode 100644
index 00000000..c5326930
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/fractalEngine.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/fractalEngineBackground.png b/public/gfiles/html5games/cookieclicker/img/fractalEngineBackground.png
new file mode 100644
index 00000000..f0dda756
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/fractalEngineBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/frameBorder.png b/public/gfiles/html5games/cookieclicker/img/frameBorder.png
new file mode 100644
index 00000000..1bfb8443
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/frameBorder.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/frostedReindeer.png b/public/gfiles/html5games/cookieclicker/img/frostedReindeer.png
new file mode 100644
index 00000000..0795ec6e
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/frostedReindeer.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/gardenPlants.png b/public/gfiles/html5games/cookieclicker/img/gardenPlants.png
new file mode 100644
index 00000000..675208bd
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/gardenPlants.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/gardenPlots.png b/public/gfiles/html5games/cookieclicker/img/gardenPlots.png
new file mode 100644
index 00000000..88de74b9
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/gardenPlots.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/gardenTip.png b/public/gfiles/html5games/cookieclicker/img/gardenTip.png
new file mode 100644
index 00000000..dca82d84
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/gardenTip.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/girlscoutChip.png b/public/gfiles/html5games/cookieclicker/img/girlscoutChip.png
new file mode 100644
index 00000000..46ab9931
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/girlscoutChip.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/girlscoutCrumb.png b/public/gfiles/html5games/cookieclicker/img/girlscoutCrumb.png
new file mode 100644
index 00000000..41899111
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/girlscoutCrumb.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/girlscoutDoe.png b/public/gfiles/html5games/cookieclicker/img/girlscoutDoe.png
new file mode 100644
index 00000000..448b87ef
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/girlscoutDoe.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/girlscoutLucky.png b/public/gfiles/html5games/cookieclicker/img/girlscoutLucky.png
new file mode 100644
index 00000000..d840a143
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/girlscoutLucky.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/glint.jpg b/public/gfiles/html5games/cookieclicker/img/glint.jpg
new file mode 100644
index 00000000..efa7ac44
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/glint.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/goldCookie.png b/public/gfiles/html5games/cookieclicker/img/goldCookie.png
new file mode 100644
index 00000000..e1fc3799
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/goldCookie.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/grandma.png b/public/gfiles/html5games/cookieclicker/img/grandma.png
new file mode 100644
index 00000000..872a44be
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/grandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/grandmaBackground.png b/public/gfiles/html5games/cookieclicker/img/grandmaBackground.png
new file mode 100644
index 00000000..dba0b3d2
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/grandmaBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/grandmaIcon.png b/public/gfiles/html5games/cookieclicker/img/grandmaIcon.png
new file mode 100644
index 00000000..7d9f5879
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/grandmaIcon.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/grandmaIconB.png b/public/gfiles/html5games/cookieclicker/img/grandmaIconB.png
new file mode 100644
index 00000000..7e0323a4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/grandmaIconB.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/grandmaIconC.png b/public/gfiles/html5games/cookieclicker/img/grandmaIconC.png
new file mode 100644
index 00000000..fb3e6874
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/grandmaIconC.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/grandmaIconD.png b/public/gfiles/html5games/cookieclicker/img/grandmaIconD.png
new file mode 100644
index 00000000..fb2e6fd5
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/grandmaIconD.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/grandmaIconOff.png b/public/gfiles/html5games/cookieclicker/img/grandmaIconOff.png
new file mode 100644
index 00000000..8b0900ac
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/grandmaIconOff.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/grandmas1.jpg b/public/gfiles/html5games/cookieclicker/img/grandmas1.jpg
new file mode 100644
index 00000000..581553da
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/grandmas1.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/grandmas2.jpg b/public/gfiles/html5games/cookieclicker/img/grandmas2.jpg
new file mode 100644
index 00000000..efbed261
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/grandmas2.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/grandmas3.jpg b/public/gfiles/html5games/cookieclicker/img/grandmas3.jpg
new file mode 100644
index 00000000..676b3369
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/grandmas3.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/grandmasGrandma.png b/public/gfiles/html5games/cookieclicker/img/grandmasGrandma.png
new file mode 100644
index 00000000..7781ad20
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/grandmasGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/grimoireBG.png b/public/gfiles/html5games/cookieclicker/img/grimoireBG.png
new file mode 100644
index 00000000..ea9a86c5
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/grimoireBG.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/heartStorm.png b/public/gfiles/html5games/cookieclicker/img/heartStorm.png
new file mode 100644
index 00000000..391d57a6
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/heartStorm.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/hearts.png b/public/gfiles/html5games/cookieclicker/img/hearts.png
new file mode 100644
index 00000000..6e6a2258
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/hearts.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/heavenRing1.jpg b/public/gfiles/html5games/cookieclicker/img/heavenRing1.jpg
new file mode 100644
index 00000000..829d240e
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/heavenRing1.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/heavenRing2.jpg b/public/gfiles/html5games/cookieclicker/img/heavenRing2.jpg
new file mode 100644
index 00000000..9db16d18
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/heavenRing2.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/heavenlyMoney.png b/public/gfiles/html5games/cookieclicker/img/heavenlyMoney.png
new file mode 100644
index 00000000..f905d801
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/heavenlyMoney.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/heraldFlag.png b/public/gfiles/html5games/cookieclicker/img/heraldFlag.png
new file mode 100644
index 00000000..9112a537
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/heraldFlag.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/hpBar.png b/public/gfiles/html5games/cookieclicker/img/hpBar.png
new file mode 100644
index 00000000..09653ed7
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/hpBar.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/hpmBar.png b/public/gfiles/html5games/cookieclicker/img/hpmBar.png
new file mode 100644
index 00000000..300a2912
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/hpmBar.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/icons.png b/public/gfiles/html5games/cookieclicker/img/icons.png
new file mode 100644
index 00000000..3ac6e069
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/icons.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/imperfectCookie.png b/public/gfiles/html5games/cookieclicker/img/imperfectCookie.png
new file mode 100644
index 00000000..afa7bc0c
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/imperfectCookie.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/index.html b/public/gfiles/html5games/cookieclicker/img/index.html
new file mode 100644
index 00000000..c695b2f1
--- /dev/null
+++ b/public/gfiles/html5games/cookieclicker/img/index.html
@@ -0,0 +1,259 @@
+
+
+
+
Index of /cookieclicker/img
+
+
+
Index of /cookieclicker/img
+
Name Last modified Size Description
Parent Directory -
+
BGgarden.jpg 2018-03-08 23:42 21K
+
BGgrimoire.jpg 2018-03-08 21:17 20K
+
BGpantheon.jpg 2018-03-08 21:13 25K
+
Thumbs.db 2017-11-24 00:23 1.9M
+
alchemylab.png 2013-12-28 23:56 820
+
alchemylabBackground..> 2013-12-28 23:56 472
+
alteredGrandma.png 2013-12-28 23:56 470
+
antiGrandma.png 2013-12-28 23:56 526
+
antimattercondenser.png 2013-12-28 23:56 666
+
antimattercondenserB..> 2013-12-28 23:56 966
+
aqworldsbanner.jpg 2013-12-29 16:33 29K
+
ascendBox.png 2015-12-20 11:28 22K
+
ascendInfo.png 2015-12-20 11:29 11K
+
ascendSlot.png 2015-04-17 10:36 14K
+
ascendWisp.png 2014-08-25 07:44 42K
+
ascendedBakingPod.png 2013-12-28 23:56 1.7K
+
bank.png 2014-08-08 16:58 501
+
bankBackground.png 2014-08-08 12:53 2.2K
+
bankGrandma.png 2014-08-08 17:59 614
+
bgBlack.jpg 2017-06-30 05:53 28K
+
bgBlue.jpg 2017-06-30 05:48 60K
+
bgGold.jpg 2017-06-30 05:54 72K
+
bgMoney.jpg 2014-03-31 23:00 69K
+
bgMoneyChart.jpg 2014-03-31 23:40 9.7K
+
bgRed.jpg 2017-06-30 05:51 32K
+
bgWhite.jpg 2017-06-30 05:53 56K
+
blackGradient.png 2013-12-28 23:56 561
+
blackGradientLeft.png 2015-12-20 14:19 1.2K
+
blackGradientSmallTo..> 2014-08-14 22:21 971
+
bracketPanelLeftS.png 2015-12-12 19:05 2.2K
+
bracketPanelRightS.png 2015-12-12 19:05 2.3K
+
brokenCookie.png 2015-10-25 03:35 36K
+
brokenCookieHalo.png 2014-08-15 01:04 22K
+
brownStripes.png 2018-08-06 05:35 2.0K
+
brownStripesLeftEdge..> 2018-08-06 04:57 1.1K
+
buildings.png 2019-09-01 23:36 37K
+
bunnies.png 2014-04-23 01:46 23K
+
bunnyGrandma.png 2014-05-15 22:13 713
+
buttonTile.jpg 2013-12-29 16:33 7.6K
+
caramelWave.png 2013-12-28 23:56 11K
+
chancemaker.png 2017-07-30 21:16 1.5K
+
chancemakerBackgroun..> 2017-07-30 21:15 2.6K
+
chocolateMilkWave.png 2013-12-28 23:57 10K
+
clayBG.jpg 2017-06-12 06:40 21K
+
contract.png 2014-03-31 21:50 4.8K
+
control.png 2013-12-28 23:57 48K
+
cookieShower1.png 2013-12-28 23:57 29K
+
cookieShower2.png 2013-12-28 23:57 55K
+
cookieShower3.png 2013-12-28 23:58 76K
+
cosmicGrandma.png 2013-12-28 23:58 616
+
cursor.png 2015-10-19 00:01 2.2K
+
darkNoise.jpg 2014-08-13 22:11 53K
+
darkNoise.png 2013-12-28 23:58 1.7K
+
darkNoiseTopBar.jpg 2014-08-14 02:22 8.3K
+
discord.png 2018-02-20 22:15 2.3K
+
dragon.png 2018-10-17 02:45 6.1K
+
dragonBG.png 2015-09-25 22:02 21K
+
dragonFrame.png 2015-03-31 02:41 2.0K
+
dungeonDot.png 2018-09-11 17:06 3.2K
+
dungeonFactory.png 2013-12-28 23:58 2.3K
+
dungeonFoes.png 2018-10-06 20:37 1.9K
+
dungeonHeroes.png 2018-10-06 15:56 2.4K
+
dungeonIcons.png 2013-12-28 23:58 4.3K
+
dungeonItems.png 2018-09-18 21:38 1.4K
+
dungeonMapFactory.jpg 2018-08-06 00:43 14K
+
dungeonOverlay.png 2013-12-28 23:58 13K
+
dungeonPictos.png 2018-10-07 11:21 1.9K
+
dungeonTiles.png 2013-12-28 23:58 3.4K
+
easterEggs.png 2014-04-23 02:06 6.4K
+
elfGrandma.png 2013-12-28 23:58 622
+
empty.png 2013-12-28 23:58 95
+
emptyFrame.png 2015-08-28 07:01 3.5K
+
factory.png 2013-12-28 23:58 477
+
factoryBackground.png 2013-12-28 23:58 1.3K
+
farm.png 2013-12-28 23:58 765
+
farmBackground.png 2013-12-28 23:58 812
+
farmerGrandma.png 2013-12-28 23:58 615
+
favicon.ico 2013-09-02 18:44 318
+
featherLeft.png 2015-12-13 00:27 2.9K
+
featherRight.png 2015-12-13 00:27 2.9K
+
filler.png 2014-04-11 22:27 953
+
fractalEngine.png 2018-10-17 19:44 1.3K
+
fractalEngineBackgro..> 2018-10-17 19:47 4.4K
+
frameBorder.png 2015-08-27 05:33 1.0K
+
frostedReindeer.png 2013-12-28 23:58 9.7K
+
gardenPlants.png 2018-04-15 07:14 20K
+
gardenPlots.png 2018-04-08 20:41 9.6K
+
gardenTip.png 2018-07-20 08:47 14K
+
girlscoutChip.png 2013-12-28 23:58 751
+
girlscoutCrumb.png 2013-12-28 23:58 738
+
girlscoutDoe.png 2013-12-28 23:58 762
+
girlscoutLucky.png 2013-12-28 23:58 754
+
glint.jpg 2015-12-23 11:41 1.8K
+
goldCookie.png 2013-12-28 23:58 4.0K
+
grandma.png 2013-12-28 23:58 571
+
grandmaBackground.png 2013-12-28 23:58 837
+
grandmas1.jpg 2013-12-29 16:33 21K
+
grandmas2.jpg 2013-12-29 16:33 17K
+
grandmas3.jpg 2013-12-29 16:33 26K
+
grandmasGrandma.png 2013-12-28 23:58 619
+
grimoireBG.png 2017-06-30 07:29 25K
+
heartStorm.png 2014-02-10 02:59 64K
+
hearts.png 2014-02-10 02:54 23K
+
heavenRing1.jpg 2015-12-20 08:37 4.0K
+
heavenRing2.jpg 2015-12-20 08:37 4.0K
+
heavenlyMoney.png 2015-05-14 09:16 1.1K
+
heraldFlag.png 2018-10-09 18:47 3.6K
+
icons.png 2019-09-22 18:07 148K
+
imperfectCookie.png 2013-12-28 23:59 94K
+
infoBG.png 2013-12-28 23:59 94
+
infoBGfade.png 2013-12-28 23:59 276
+
javascriptconsole.png 2019-09-16 04:40 1.4K
+
javascriptconsoleBac..> 2019-09-16 04:35 6.7K
+
levelUp.png 2017-06-05 05:50 2.0K
+
linkDash.png 2018-08-06 03:23 1.0K
+
linkPulse.gif 2016-02-03 18:16 4.2K
+
linkPulse.png 2014-08-24 11:41 1.6K
+
lockOff.png 2019-09-16 05:06 1.2K
+
lockOn.png 2019-09-16 05:06 1.2K
+
luckyGrandma.png 2017-07-29 23:28 713
+
mapBG.jpg 2013-12-29 16:33 13K
+
mapIcons.png 2013-12-28 23:59 664
+
marbleBG.jpg 2017-06-12 11:05 31K
+
marshmallows.png 2013-12-28 23:59 2.6K
+
metaGrandma.png 2018-10-18 22:00 1.6K
+
milk.png 2013-12-29 00:00 6.3K
+
milkBanana.png 2015-09-20 13:09 43K
+
milkBlack.png 2015-10-14 12:19 47K
+
milkBlood.png 2015-10-14 12:13 62K
+
milkBlueFire.png 2015-10-15 13:32 78K
+
milkBlueberry.png 2015-09-20 13:09 42K
+
milkCaramel.png 2015-09-20 13:09 41K
+
milkCherry.png 2018-03-31 09:34 24K
+
milkChocolate.png 2015-09-20 13:08 40K
+
milkCoconut.png 2018-03-31 09:34 30K
+
milkCoffee.png 2018-03-31 08:59 19K
+
milkFire.png 2015-10-14 12:53 67K
+
milkGold.png 2015-10-14 12:17 58K
+
milkGreenFire.png 2015-10-15 13:31 71K
+
milkHoney.png 2017-07-30 02:14 21K
+
milkLime.png 2015-09-20 13:09 42K
+
milkMaple.png 2018-10-21 21:02 20K
+
milkMint.png 2019-09-11 03:06 40K
+
milkOrange.png 2015-09-20 13:08 42K
+
milkPlain.png 2015-09-20 13:08 43K
+
milkRaspberry.png 2015-09-20 13:08 40K
+
milkSoy.png 2018-03-31 09:34 22K
+
milkSpiced.png 2018-04-16 18:17 75K
+
milkStars.png 2015-10-13 23:08 52K
+
milkStrawberry.png 2015-09-20 13:10 40K
+
milkTea.png 2018-03-31 09:06 19K
+
milkVanilla.png 2015-09-20 13:11 43K
+
milkWave.png 2013-12-29 00:00 16K
+
milkZebra.png 2015-10-14 21:48 69K
+
mine.png 2013-12-29 00:00 668
+
mineBackground.png 2013-12-29 00:00 1.0K
+
minerGrandma.png 2013-12-29 00:00 626
+
money.png 2013-12-29 00:00 280
+
mysticBG.jpg 2017-06-12 11:19 22K
+
nest.png 2014-05-16 17:44 15K
+
orangeWave.png 2013-12-29 00:01 11K
+
panelBG.png 2015-04-02 16:57 27K
+
panelGradientBottom.png 2015-10-08 08:43 1.0K
+
panelGradientLeft.png 2015-10-08 08:43 1.0K
+
panelGradientRight.png 2015-10-08 08:44 1.0K
+
panelGradientTop.png 2015-10-08 08:43 1.0K
+
panelHorizontal.png 2015-08-28 06:14 6.6K
+
panelMenu.png 2014-08-24 01:03 19K
+
panelMenu2.png 2015-04-18 11:59 36K
+
panelMenu3.png 2015-08-28 15:07 49K
+
panelVertical.png 2015-08-28 06:14 7.0K
+
pantheonBG.png 2017-06-30 07:51 25K
+
patreon.png 2018-10-10 10:03 2.4K
+
perfectCookie.png 2013-12-29 00:01 96K
+
pieFill.png 2015-10-16 01:43 11K
+
pointyLad.png 2018-04-14 20:55 1.8K
+
portal.png 2013-12-29 00:01 1.0K
+
portalBackground.png 2013-12-29 00:01 3.6K
+
portraitChip.png 2013-12-29 00:01 940
+
portraitCrumb.png 2013-12-29 00:01 967
+
portraitDoe.png 2013-12-29 00:01 1.0K
+
portraitLucky.png 2013-12-29 00:01 1.0K
+
prestigeBar.jpg 2015-12-20 17:56 2.4K
+
prestigeBarCap.png 2015-12-20 17:58 1.0K
+
prism.png 2014-02-13 12:48 782
+
prismBackground.png 2014-02-13 10:31 701
+
rainbowGrandma.png 2014-02-13 11:07 626
+
raspberryWave.png 2013-12-29 00:02 10K
+
roundFrameBorder.png 2015-08-27 08:49 1.1K
+
roundedPanelBG.png 2015-12-11 01:01 7.1K
+
roundedPanelBGS.png 2015-12-12 18:45 21K
+
roundedPanelLeft.png 2015-12-11 00:59 2.5K
+
roundedPanelLeftS.png 2015-12-12 18:44 2.4K
+
roundedPanelRight.png 2015-12-11 01:00 2.5K
+
roundedPanelRightS.png 2015-12-12 18:44 2.6K
+
santa.png 2013-12-29 00:02 9.3K
+
scriptGrandma.png 2019-09-03 16:43 693
+
sentientFurnace.png 2013-12-29 00:02 1.6K
+
shadedBorders.png 2015-11-01 19:55 12K
+
shadedBordersGold.png 2013-12-29 00:02 2.3K
+
shadedBordersRed.png 2013-12-29 00:02 2.3K
+
shadedBordersSoft.png 2015-11-11 06:51 3.4K
+
shine.png 2013-12-29 00:02 6.0K
+
shineGold.png 2017-06-30 18:07 7.8K
+
shineRed.png 2017-06-30 18:09 7.8K
+
shineSpoke.png 2015-10-31 12:28 6.2K
+
shinyWrinkler.png 2015-04-15 07:11 5.8K
+
shinyWrinklerBits.png 2015-04-15 07:10 7.9K
+
shipment.png 2013-12-29 00:02 507
+
shipmentBackground.png 2013-12-29 00:02 923
+
smallCookies.png 2013-12-29 00:02 14K
+
smallDollars.png 2014-04-01 18:15 5.5K
+
snow.jpg 2013-12-29 16:33 47K
+
snow2.jpg 2013-12-29 16:33 71K
+
sparkles.jpg 2015-10-13 12:54 16K
+
spellBG.png 2017-06-08 09:54 33K
+
spinnyBig.png 2015-10-24 02:38 5.3K
+
spinnySmall.png 2015-10-24 02:38 2.7K
+
spookyCookie.png 2013-12-29 00:02 4.3K
+
starbg.jpg 2014-08-03 05:54 188K
+
storeTile.jpg 2013-12-29 16:33 18K
+
sugarLump.png 2017-06-05 05:27 1.1K
+
temple.png 2014-08-08 16:59 752
+
templeBackground.png 2014-08-08 11:02 2.5K
+
templeGrandma.png 2014-08-08 18:00 742
+
timemachine.png 2013-12-29 00:02 773
+
timemachineBackgroun..> 2013-12-29 00:02 1.2K
+
timerBars.png 2014-02-10 05:26 2.3K
+
transmutedGrandma.png 2013-12-29 00:02 449
+
turnInto.png 2018-03-13 16:34 1.5K
+
upgradeFrame.png 2016-04-19 07:17 20K
+
upgradeFrameHeavenly..> 2014-08-24 08:51 2.7K
+
upgradeFrameOld.png 2015-04-18 10:45 7.3K
+
upgradeFrameShadowOl..> 2015-05-14 09:06 7.0K
+
upgradeHighlight.jpg 2015-10-15 18:08 4.3K
+
upgradeHighlight.png 2015-10-15 18:08 5.4K
+
upgradeSelector.png 2015-10-14 22:52 1.0K
+
weeHoodie.png 2015-10-24 09:51 2.6K
+
winterFrame.png 2015-03-30 23:49 1.9K
+
winterWrinkler.png 2013-12-29 00:02 5.8K
+
witchGrandma.png 2014-08-08 18:00 779
+
wizardtower.png 2014-08-08 16:59 864
+
wizardtowerBackgroun..> 2014-08-08 18:10 1.6K
+
workerGrandma.png 2013-12-29 00:02 534
+
wrathContract.png 2014-03-31 21:57 5.1K
+
wrathCookie.png 2013-12-29 00:02 4.8K
+
wrinkler.png 2013-12-29 00:02 5.8K
+
wrinklerBits.png 2015-04-15 03:51 8.1K
+
wrinklerBitsOld.png 2013-12-29 00:02 6.4K
+
+
diff --git a/public/gfiles/html5games/cookieclicker/img/infoBG.png b/public/gfiles/html5games/cookieclicker/img/infoBG.png
new file mode 100644
index 00000000..eff05e6b
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/infoBG.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/infoBGfade.png b/public/gfiles/html5games/cookieclicker/img/infoBGfade.png
new file mode 100644
index 00000000..23cb233c
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/infoBGfade.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/javascriptconsole.png b/public/gfiles/html5games/cookieclicker/img/javascriptconsole.png
new file mode 100644
index 00000000..bfae81aa
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/javascriptconsole.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/javascriptconsoleBackground.png b/public/gfiles/html5games/cookieclicker/img/javascriptconsoleBackground.png
new file mode 100644
index 00000000..f5fdf9e9
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/javascriptconsoleBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/levelUp.png b/public/gfiles/html5games/cookieclicker/img/levelUp.png
new file mode 100644
index 00000000..68a0134f
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/levelUp.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/linkDash.png b/public/gfiles/html5games/cookieclicker/img/linkDash.png
new file mode 100644
index 00000000..098016a1
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/linkDash.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/linkPulse.gif b/public/gfiles/html5games/cookieclicker/img/linkPulse.gif
new file mode 100644
index 00000000..3904b993
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/linkPulse.gif differ
diff --git a/public/gfiles/html5games/cookieclicker/img/linkPulse.png b/public/gfiles/html5games/cookieclicker/img/linkPulse.png
new file mode 100644
index 00000000..c55fe0b9
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/linkPulse.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/list.txt b/public/gfiles/html5games/cookieclicker/img/list.txt
new file mode 100644
index 00000000..d2ff7615
--- /dev/null
+++ b/public/gfiles/html5games/cookieclicker/img/list.txt
@@ -0,0 +1,248 @@
+BGgarden.jpg
+BGgrimoire.jpg
+BGpantheon.jpg
+alchemylab.png
+alchemylabBackground.png
+alteredGrandma.png
+antiGrandma.png
+antimattercondenser.png
+antimattercondenserBackground.png
+aqworldsbanner.jpg
+ascendBox.png
+ascendInfo.png
+ascendSlot.png
+ascendWisp.png
+ascendedBakingPod.png
+bank.png
+bankBackground.png
+bankGrandma.png
+bgBlack.jpg
+bgBlue.jpg
+bgGold.jpg
+bgMoney.jpg
+bgMoneyChart.jpg
+bgRed.jpg
+bgWhite.jpg
+blackGradient.png
+blackGradientLeft.png
+blackGradientSmallTop.png
+bracketPanelLeftS.png
+bracketPanelRightS.png
+brokenCookie.png
+brokenCookieHalo.png
+brownStripes.png
+brownStripesLeftEdge.png
+buildings.png
+bunnies.png
+bunnyGrandma.png
+buttonTile.jpg
+caramelWave.png
+chancemaker.png
+chancemakerBackground.png
+chocolateMilkWave.png
+clayBG.jpg
+contract.png
+control.png
+cookieShower1.png
+cookieShower2.png
+cookieShower3.png
+cosmicGrandma.png
+cursor.png
+darkNoise.jpg
+darkNoise.png
+darkNoiseTopBar.jpg
+discord.png
+dragon.png
+dragonBG.png
+dragonFrame.png
+dungeonDot.png
+dungeonFactory.png
+dungeonFoes.png
+dungeonHeroes.png
+dungeonIcons.png
+dungeonItems.png
+dungeonMapFactory.jpg
+dungeonOverlay.png
+dungeonPictos.png
+dungeonTiles.png
+easterEggs.png
+elfGrandma.png
+empty.png
+emptyFrame.png
+factory.png
+factoryBackground.png
+farm.png
+farmBackground.png
+farmerGrandma.png
+favicon.ico
+featherLeft.png
+featherRight.png
+filler.png
+fractalEngine.png
+fractalEngineBackground.png
+frameBorder.png
+frostedReindeer.png
+gardenPlants.png
+gardenPlots.png
+gardenTip.png
+girlscoutChip.png
+girlscoutCrumb.png
+girlscoutDoe.png
+girlscoutLucky.png
+glint.jpg
+goldCookie.png
+grandma.png
+grandmaBackground.png
+grandmas1.jpg
+grandmas2.jpg
+grandmas3.jpg
+grandmasGrandma.png
+grimoireBG.png
+heartStorm.png
+hearts.png
+heavenRing1.jpg
+heavenRing2.jpg
+heavenlyMoney.png
+heraldFlag.png
+icons.png
+imperfectCookie.png
+infoBG.png
+infoBGfade.png
+javascriptconsole.png
+javascriptconsoleBackground.png
+levelUp.png
+linkDash.png
+linkPulse.gif
+linkPulse.png
+lockOff.png
+lockOn.png
+luckyGrandma.png
+mapBG.jpg
+mapIcons.png
+marbleBG.jpg
+marshmallows.png
+metaGrandma.png
+milk.png
+milkBanana.png
+milkBlack.png
+milkBlood.png
+milkBlueFire.png
+milkBlueberry.png
+milkCaramel.png
+milkCherry.png
+milkChocolate.png
+milkCoconut.png
+milkCoffee.png
+milkFire.png
+milkGold.png
+milkGreenFire.png
+milkHoney.png
+milkLime.png
+milkMaple.png
+milkMint.png
+milkOrange.png
+milkPlain.png
+milkRaspberry.png
+milkSoy.png
+milkSpiced.png
+milkStars.png
+milkStrawberry.png
+milkTea.png
+milkVanilla.png
+milkWave.png
+milkZebra.png
+mine.png
+mineBackground.png
+minerGrandma.png
+money.png
+mysticBG.jpg
+nest.png
+orangeWave.png
+panelBG.png
+panelGradientBottom.png
+panelGradientLeft.png
+panelGradientRight.png
+panelGradientTop.png
+panelHorizontal.png
+panelMenu.png
+panelMenu2.png
+panelMenu3.png
+panelVertical.png
+pantheonBG.png
+patreon.png
+perfectCookie.png
+pieFill.png
+pointyLad.png
+portal.png
+portalBackground.png
+portraitChip.png
+portraitCrumb.png
+portraitDoe.png
+portraitLucky.png
+prestigeBar.jpg
+prestigeBarCap.png
+prism.png
+prismBackground.png
+rainbowGrandma.png
+raspberryWave.png
+roundFrameBorder.png
+roundedPanelBG.png
+roundedPanelBGS.png
+roundedPanelLeft.png
+roundedPanelLeftS.png
+roundedPanelRight.png
+roundedPanelRightS.png
+santa.png
+scriptGrandma.png
+sentientFurnace.png
+shadedBorders.png
+shadedBordersGold.png
+shadedBordersRed.png
+shadedBordersSoft.png
+shine.png
+shineGold.png
+shineRed.png
+shineSpoke.png
+shinyWrinkler.png
+shinyWrinklerBits.png
+shipment.png
+shipmentBackground.png
+smallCookies.png
+smallDollars.png
+snow.jpg
+snow2.jpg
+sparkles.jpg
+spellBG.png
+spinnyBig.png
+spinnySmall.png
+spookyCookie.png
+starbg.jpg
+storeTile.jpg
+sugarLump.png
+temple.png
+templeBackground.png
+templeGrandma.png
+timemachine.png
+timemachineBackground.png
+timerBars.png
+transmutedGrandma.png
+turnInto.png
+upgradeFrame.png
+upgradeFrameHeavenly.png
+upgradeFrameOld.png
+upgradeFrameShadowOld.png
+upgradeHighlight.jpg
+upgradeHighlight.png
+upgradeSelector.png
+weeHoodie.png
+winterFrame.png
+winterWrinkler.png
+witchGrandma.png
+wizardtower.png
+wizardtowerBackground.png
+workerGrandma.png
+wrathContract.png
+wrathCookie.png
+wrinkler.png
+wrinklerBits.png
+wrinklerBitsOld.png
diff --git a/public/gfiles/html5games/cookieclicker/img/lockOff.png b/public/gfiles/html5games/cookieclicker/img/lockOff.png
new file mode 100644
index 00000000..ac153eb6
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/lockOff.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/lockOn.png b/public/gfiles/html5games/cookieclicker/img/lockOn.png
new file mode 100644
index 00000000..f438ecc9
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/lockOn.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/luckyGrandma.png b/public/gfiles/html5games/cookieclicker/img/luckyGrandma.png
new file mode 100644
index 00000000..038534c0
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/luckyGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/mapBG.jpg b/public/gfiles/html5games/cookieclicker/img/mapBG.jpg
new file mode 100644
index 00000000..c7728a36
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/mapBG.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/mapIcons.png b/public/gfiles/html5games/cookieclicker/img/mapIcons.png
new file mode 100644
index 00000000..ac909e76
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/mapIcons.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/mapTiles.png b/public/gfiles/html5games/cookieclicker/img/mapTiles.png
new file mode 100644
index 00000000..3971ce09
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/mapTiles.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/marbleBG.jpg b/public/gfiles/html5games/cookieclicker/img/marbleBG.jpg
new file mode 100644
index 00000000..825c3f83
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/marbleBG.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/marshmallows.png b/public/gfiles/html5games/cookieclicker/img/marshmallows.png
new file mode 100644
index 00000000..789771ff
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/marshmallows.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/metaGrandma.png b/public/gfiles/html5games/cookieclicker/img/metaGrandma.png
new file mode 100644
index 00000000..6c2e50ff
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/metaGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milk.png b/public/gfiles/html5games/cookieclicker/img/milk.png
new file mode 100644
index 00000000..d3af479c
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milk.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkBanana.png b/public/gfiles/html5games/cookieclicker/img/milkBanana.png
new file mode 100644
index 00000000..ca847178
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkBanana.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkBlack.png b/public/gfiles/html5games/cookieclicker/img/milkBlack.png
new file mode 100644
index 00000000..24844dd9
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkBlack.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkBlood.png b/public/gfiles/html5games/cookieclicker/img/milkBlood.png
new file mode 100644
index 00000000..9d06bf61
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkBlood.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkBlueFire.png b/public/gfiles/html5games/cookieclicker/img/milkBlueFire.png
new file mode 100644
index 00000000..fb6b5397
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkBlueFire.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkBlueberry.png b/public/gfiles/html5games/cookieclicker/img/milkBlueberry.png
new file mode 100644
index 00000000..25d87a25
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkBlueberry.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkCaramel.png b/public/gfiles/html5games/cookieclicker/img/milkCaramel.png
new file mode 100644
index 00000000..b416d1c2
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkCaramel.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkCherry.png b/public/gfiles/html5games/cookieclicker/img/milkCherry.png
new file mode 100644
index 00000000..f14b03fd
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkCherry.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkChocolate.png b/public/gfiles/html5games/cookieclicker/img/milkChocolate.png
new file mode 100644
index 00000000..e822d87a
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkChocolate.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkCoconut.png b/public/gfiles/html5games/cookieclicker/img/milkCoconut.png
new file mode 100644
index 00000000..6657a744
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkCoconut.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkCoffee.png b/public/gfiles/html5games/cookieclicker/img/milkCoffee.png
new file mode 100644
index 00000000..7df56fdc
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkCoffee.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkFire.png b/public/gfiles/html5games/cookieclicker/img/milkFire.png
new file mode 100644
index 00000000..48741dd7
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkFire.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkGold.png b/public/gfiles/html5games/cookieclicker/img/milkGold.png
new file mode 100644
index 00000000..b2b9f148
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkGold.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkGreenFire.png b/public/gfiles/html5games/cookieclicker/img/milkGreenFire.png
new file mode 100644
index 00000000..5e61b9af
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkGreenFire.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkHoney.png b/public/gfiles/html5games/cookieclicker/img/milkHoney.png
new file mode 100644
index 00000000..e4dddb21
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkHoney.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkLime.png b/public/gfiles/html5games/cookieclicker/img/milkLime.png
new file mode 100644
index 00000000..1a73a891
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkLime.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkMaple.png b/public/gfiles/html5games/cookieclicker/img/milkMaple.png
new file mode 100644
index 00000000..22e175ee
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkMaple.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkMint.png b/public/gfiles/html5games/cookieclicker/img/milkMint.png
new file mode 100644
index 00000000..6c0ef505
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkMint.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkOrange.png b/public/gfiles/html5games/cookieclicker/img/milkOrange.png
new file mode 100644
index 00000000..c1cf9760
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkOrange.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkPlain.png b/public/gfiles/html5games/cookieclicker/img/milkPlain.png
new file mode 100644
index 00000000..0bc190c5
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkPlain.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkRaspberry.png b/public/gfiles/html5games/cookieclicker/img/milkRaspberry.png
new file mode 100644
index 00000000..3affaeca
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkRaspberry.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkSoy.png b/public/gfiles/html5games/cookieclicker/img/milkSoy.png
new file mode 100644
index 00000000..e5238ce4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkSoy.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkSpiced.png b/public/gfiles/html5games/cookieclicker/img/milkSpiced.png
new file mode 100644
index 00000000..77ae350e
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkSpiced.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkStars.png b/public/gfiles/html5games/cookieclicker/img/milkStars.png
new file mode 100644
index 00000000..661f67e5
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkStars.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkStrawberry.png b/public/gfiles/html5games/cookieclicker/img/milkStrawberry.png
new file mode 100644
index 00000000..cd976f47
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkStrawberry.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkTea.png b/public/gfiles/html5games/cookieclicker/img/milkTea.png
new file mode 100644
index 00000000..2f3696b0
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkTea.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkVanilla.png b/public/gfiles/html5games/cookieclicker/img/milkVanilla.png
new file mode 100644
index 00000000..7d25f5e2
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkVanilla.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkWave.png b/public/gfiles/html5games/cookieclicker/img/milkWave.png
new file mode 100644
index 00000000..5ac25cef
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkWave.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/milkZebra.png b/public/gfiles/html5games/cookieclicker/img/milkZebra.png
new file mode 100644
index 00000000..2515e2ca
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/milkZebra.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/mine.png b/public/gfiles/html5games/cookieclicker/img/mine.png
new file mode 100644
index 00000000..372ea7e8
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/mine.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/mineBackground.png b/public/gfiles/html5games/cookieclicker/img/mineBackground.png
new file mode 100644
index 00000000..7986c4ce
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/mineBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/mineIcon.png b/public/gfiles/html5games/cookieclicker/img/mineIcon.png
new file mode 100644
index 00000000..f63a6df1
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/mineIcon.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/mineIconOff.png b/public/gfiles/html5games/cookieclicker/img/mineIconOff.png
new file mode 100644
index 00000000..bca22a04
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/mineIconOff.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/minerGrandma.png b/public/gfiles/html5games/cookieclicker/img/minerGrandma.png
new file mode 100644
index 00000000..a58d9b91
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/minerGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/money.png b/public/gfiles/html5games/cookieclicker/img/money.png
new file mode 100644
index 00000000..5908aa70
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/money.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/mysteriousHero.png b/public/gfiles/html5games/cookieclicker/img/mysteriousHero.png
new file mode 100644
index 00000000..ecd58737
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/mysteriousHero.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/mysteriousOpponent.png b/public/gfiles/html5games/cookieclicker/img/mysteriousOpponent.png
new file mode 100644
index 00000000..52cadb53
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/mysteriousOpponent.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/mysticBG.jpg b/public/gfiles/html5games/cookieclicker/img/mysticBG.jpg
new file mode 100644
index 00000000..0071fb8d
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/mysticBG.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/nest.png b/public/gfiles/html5games/cookieclicker/img/nest.png
new file mode 100644
index 00000000..8cdabbeb
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/nest.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/orangeWave.png b/public/gfiles/html5games/cookieclicker/img/orangeWave.png
new file mode 100644
index 00000000..cc3ba498
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/orangeWave.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/panelBG.png b/public/gfiles/html5games/cookieclicker/img/panelBG.png
new file mode 100644
index 00000000..92e4f7ca
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/panelBG.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/panelGradientBottom.png b/public/gfiles/html5games/cookieclicker/img/panelGradientBottom.png
new file mode 100644
index 00000000..e85961fc
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/panelGradientBottom.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/panelGradientLeft.png b/public/gfiles/html5games/cookieclicker/img/panelGradientLeft.png
new file mode 100644
index 00000000..79c98f4f
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/panelGradientLeft.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/panelGradientRight.png b/public/gfiles/html5games/cookieclicker/img/panelGradientRight.png
new file mode 100644
index 00000000..a9ac1e96
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/panelGradientRight.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/panelGradientTop.png b/public/gfiles/html5games/cookieclicker/img/panelGradientTop.png
new file mode 100644
index 00000000..036fe58d
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/panelGradientTop.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/panelHorizontal.png b/public/gfiles/html5games/cookieclicker/img/panelHorizontal.png
new file mode 100644
index 00000000..6bdab861
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/panelHorizontal.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/panelMenu.png b/public/gfiles/html5games/cookieclicker/img/panelMenu.png
new file mode 100644
index 00000000..f89697ef
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/panelMenu.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/panelMenu2.png b/public/gfiles/html5games/cookieclicker/img/panelMenu2.png
new file mode 100644
index 00000000..bc29bdfb
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/panelMenu2.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/panelMenu3.png b/public/gfiles/html5games/cookieclicker/img/panelMenu3.png
new file mode 100644
index 00000000..d35144f4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/panelMenu3.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/panelVertical.png b/public/gfiles/html5games/cookieclicker/img/panelVertical.png
new file mode 100644
index 00000000..f3d6ceae
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/panelVertical.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/pantheonBG.png b/public/gfiles/html5games/cookieclicker/img/pantheonBG.png
new file mode 100644
index 00000000..33c5b623
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/pantheonBG.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/patreon.png b/public/gfiles/html5games/cookieclicker/img/patreon.png
new file mode 100644
index 00000000..dc97ff05
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/patreon.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/perfectCookie.png b/public/gfiles/html5games/cookieclicker/img/perfectCookie.png
new file mode 100644
index 00000000..bc6282c0
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/perfectCookie.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/pieFill.png b/public/gfiles/html5games/cookieclicker/img/pieFill.png
new file mode 100644
index 00000000..20d9ae31
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/pieFill.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/pointyLad.png b/public/gfiles/html5games/cookieclicker/img/pointyLad.png
new file mode 100644
index 00000000..020d35b1
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/pointyLad.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/portal.png b/public/gfiles/html5games/cookieclicker/img/portal.png
new file mode 100644
index 00000000..0dd3ca56
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/portal.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/portalBackground.png b/public/gfiles/html5games/cookieclicker/img/portalBackground.png
new file mode 100644
index 00000000..441de2ae
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/portalBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/portalIcon.png b/public/gfiles/html5games/cookieclicker/img/portalIcon.png
new file mode 100644
index 00000000..224159d6
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/portalIcon.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/portalIconOff.png b/public/gfiles/html5games/cookieclicker/img/portalIconOff.png
new file mode 100644
index 00000000..99cbe9fa
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/portalIconOff.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/portraitChip.png b/public/gfiles/html5games/cookieclicker/img/portraitChip.png
new file mode 100644
index 00000000..ca0263fa
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/portraitChip.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/portraitCrumb.png b/public/gfiles/html5games/cookieclicker/img/portraitCrumb.png
new file mode 100644
index 00000000..5bb54ef4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/portraitCrumb.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/portraitDoe.png b/public/gfiles/html5games/cookieclicker/img/portraitDoe.png
new file mode 100644
index 00000000..a6c62f32
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/portraitDoe.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/portraitLucky.png b/public/gfiles/html5games/cookieclicker/img/portraitLucky.png
new file mode 100644
index 00000000..34e33bfb
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/portraitLucky.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/prestigeBar.jpg b/public/gfiles/html5games/cookieclicker/img/prestigeBar.jpg
new file mode 100644
index 00000000..d2491fa4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/prestigeBar.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/prestigeBarCap.png b/public/gfiles/html5games/cookieclicker/img/prestigeBarCap.png
new file mode 100644
index 00000000..1cc70dd0
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/prestigeBarCap.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/prism.png b/public/gfiles/html5games/cookieclicker/img/prism.png
new file mode 100644
index 00000000..9b7ca674
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/prism.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/prismBackground.png b/public/gfiles/html5games/cookieclicker/img/prismBackground.png
new file mode 100644
index 00000000..ecb4eb59
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/prismBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/prismIcon.png b/public/gfiles/html5games/cookieclicker/img/prismIcon.png
new file mode 100644
index 00000000..d3c9f570
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/prismIcon.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/prismIconOff.png b/public/gfiles/html5games/cookieclicker/img/prismIconOff.png
new file mode 100644
index 00000000..934d3eca
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/prismIconOff.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/rainbowGrandma.png b/public/gfiles/html5games/cookieclicker/img/rainbowGrandma.png
new file mode 100644
index 00000000..6424bb8c
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/rainbowGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/raspberryWave.png b/public/gfiles/html5games/cookieclicker/img/raspberryWave.png
new file mode 100644
index 00000000..0893d351
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/raspberryWave.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/rawSentientCookie.png b/public/gfiles/html5games/cookieclicker/img/rawSentientCookie.png
new file mode 100644
index 00000000..448b909b
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/rawSentientCookie.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/roundFrameBorder.png b/public/gfiles/html5games/cookieclicker/img/roundFrameBorder.png
new file mode 100644
index 00000000..0ce3b4d5
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/roundFrameBorder.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/roundedPanelBG.png b/public/gfiles/html5games/cookieclicker/img/roundedPanelBG.png
new file mode 100644
index 00000000..49ec94b1
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/roundedPanelBG.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/roundedPanelBGS.png b/public/gfiles/html5games/cookieclicker/img/roundedPanelBGS.png
new file mode 100644
index 00000000..e63d5588
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/roundedPanelBGS.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/roundedPanelLeft.png b/public/gfiles/html5games/cookieclicker/img/roundedPanelLeft.png
new file mode 100644
index 00000000..60aaa01c
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/roundedPanelLeft.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/roundedPanelLeftS.png b/public/gfiles/html5games/cookieclicker/img/roundedPanelLeftS.png
new file mode 100644
index 00000000..97d6e366
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/roundedPanelLeftS.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/roundedPanelRight.png b/public/gfiles/html5games/cookieclicker/img/roundedPanelRight.png
new file mode 100644
index 00000000..f7d5fdee
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/roundedPanelRight.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/roundedPanelRightS.png b/public/gfiles/html5games/cookieclicker/img/roundedPanelRightS.png
new file mode 100644
index 00000000..f71e60c3
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/roundedPanelRightS.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/santa.png b/public/gfiles/html5games/cookieclicker/img/santa.png
new file mode 100644
index 00000000..69c98323
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/santa.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/scriptGrandma.png b/public/gfiles/html5games/cookieclicker/img/scriptGrandma.png
new file mode 100644
index 00000000..d3d431e7
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/scriptGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/sentientFurnace.png b/public/gfiles/html5games/cookieclicker/img/sentientFurnace.png
new file mode 100644
index 00000000..e0e361a4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/sentientFurnace.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shadedBorders.png b/public/gfiles/html5games/cookieclicker/img/shadedBorders.png
new file mode 100644
index 00000000..4a1513b9
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shadedBorders.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shadedBordersGold.png b/public/gfiles/html5games/cookieclicker/img/shadedBordersGold.png
new file mode 100644
index 00000000..7a8c1985
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shadedBordersGold.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shadedBordersRed.png b/public/gfiles/html5games/cookieclicker/img/shadedBordersRed.png
new file mode 100644
index 00000000..bc9cab2e
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shadedBordersRed.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shadedBordersSoft.png b/public/gfiles/html5games/cookieclicker/img/shadedBordersSoft.png
new file mode 100644
index 00000000..dd1b5ca7
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shadedBordersSoft.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shine.png b/public/gfiles/html5games/cookieclicker/img/shine.png
new file mode 100644
index 00000000..f48e14a1
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shine.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shineGold.png b/public/gfiles/html5games/cookieclicker/img/shineGold.png
new file mode 100644
index 00000000..96a77cf2
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shineGold.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shineRed.png b/public/gfiles/html5games/cookieclicker/img/shineRed.png
new file mode 100644
index 00000000..adc34e73
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shineRed.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shineSpoke.png b/public/gfiles/html5games/cookieclicker/img/shineSpoke.png
new file mode 100644
index 00000000..d3cf0dbb
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shineSpoke.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shinyWrinkler.png b/public/gfiles/html5games/cookieclicker/img/shinyWrinkler.png
new file mode 100644
index 00000000..d07faf63
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shinyWrinkler.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shinyWrinklerBits.png b/public/gfiles/html5games/cookieclicker/img/shinyWrinklerBits.png
new file mode 100644
index 00000000..ba15df08
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shinyWrinklerBits.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shipment.png b/public/gfiles/html5games/cookieclicker/img/shipment.png
new file mode 100644
index 00000000..89f7f6da
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shipment.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shipmentBackground.png b/public/gfiles/html5games/cookieclicker/img/shipmentBackground.png
new file mode 100644
index 00000000..210c66a4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shipmentBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shipmentIcon.png b/public/gfiles/html5games/cookieclicker/img/shipmentIcon.png
new file mode 100644
index 00000000..f8fbb887
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shipmentIcon.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/shipmentIconOff.png b/public/gfiles/html5games/cookieclicker/img/shipmentIconOff.png
new file mode 100644
index 00000000..e0d55964
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/shipmentIconOff.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/smallCookies.png b/public/gfiles/html5games/cookieclicker/img/smallCookies.png
new file mode 100644
index 00000000..9ecee5a3
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/smallCookies.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/smallDollars.png b/public/gfiles/html5games/cookieclicker/img/smallDollars.png
new file mode 100644
index 00000000..c61308cb
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/smallDollars.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/snow.jpg b/public/gfiles/html5games/cookieclicker/img/snow.jpg
new file mode 100644
index 00000000..230b4fcd
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/snow.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/snow2.jpg b/public/gfiles/html5games/cookieclicker/img/snow2.jpg
new file mode 100644
index 00000000..ce092311
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/snow2.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/sparkles.jpg b/public/gfiles/html5games/cookieclicker/img/sparkles.jpg
new file mode 100644
index 00000000..4b5cd960
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/sparkles.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/spellBG.png b/public/gfiles/html5games/cookieclicker/img/spellBG.png
new file mode 100644
index 00000000..93e48911
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/spellBG.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/spinnyBig.png b/public/gfiles/html5games/cookieclicker/img/spinnyBig.png
new file mode 100644
index 00000000..c6670dc2
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/spinnyBig.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/spinnySmall.png b/public/gfiles/html5games/cookieclicker/img/spinnySmall.png
new file mode 100644
index 00000000..8c944d5e
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/spinnySmall.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/spookyCookie.png b/public/gfiles/html5games/cookieclicker/img/spookyCookie.png
new file mode 100644
index 00000000..3aeeeda1
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/spookyCookie.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/starbg.jpg b/public/gfiles/html5games/cookieclicker/img/starbg.jpg
new file mode 100644
index 00000000..75b323f9
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/starbg.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/storeTile.jpg b/public/gfiles/html5games/cookieclicker/img/storeTile.jpg
new file mode 100644
index 00000000..3c10245c
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/storeTile.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/sugarBunny.png b/public/gfiles/html5games/cookieclicker/img/sugarBunny.png
new file mode 100644
index 00000000..b55754c4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/sugarBunny.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/sugarLump.png b/public/gfiles/html5games/cookieclicker/img/sugarLump.png
new file mode 100644
index 00000000..2eca4d5c
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/sugarLump.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/temple.png b/public/gfiles/html5games/cookieclicker/img/temple.png
new file mode 100644
index 00000000..6d6bffc8
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/temple.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/templeBackground.png b/public/gfiles/html5games/cookieclicker/img/templeBackground.png
new file mode 100644
index 00000000..613917e2
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/templeBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/templeGrandma.png b/public/gfiles/html5games/cookieclicker/img/templeGrandma.png
new file mode 100644
index 00000000..f1f142cd
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/templeGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/timemachine.png b/public/gfiles/html5games/cookieclicker/img/timemachine.png
new file mode 100644
index 00000000..07bf3442
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/timemachine.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/timemachineBackground.png b/public/gfiles/html5games/cookieclicker/img/timemachineBackground.png
new file mode 100644
index 00000000..01b50a26
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/timemachineBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/timemachineIcon.png b/public/gfiles/html5games/cookieclicker/img/timemachineIcon.png
new file mode 100644
index 00000000..9017b4fe
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/timemachineIcon.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/timemachineIconOff.png b/public/gfiles/html5games/cookieclicker/img/timemachineIconOff.png
new file mode 100644
index 00000000..25988c9a
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/timemachineIconOff.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/timerBars.png b/public/gfiles/html5games/cookieclicker/img/timerBars.png
new file mode 100644
index 00000000..04b5910f
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/timerBars.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/transmutedGrandma.png b/public/gfiles/html5games/cookieclicker/img/transmutedGrandma.png
new file mode 100644
index 00000000..07755afb
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/transmutedGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/turnInto.png b/public/gfiles/html5games/cookieclicker/img/turnInto.png
new file mode 100644
index 00000000..a1b10589
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/turnInto.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/upgradeFrame.png b/public/gfiles/html5games/cookieclicker/img/upgradeFrame.png
new file mode 100644
index 00000000..f9f0c94f
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/upgradeFrame.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/upgradeFrameHeavenly.png b/public/gfiles/html5games/cookieclicker/img/upgradeFrameHeavenly.png
new file mode 100644
index 00000000..2e260069
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/upgradeFrameHeavenly.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/upgradeFrameOld.png b/public/gfiles/html5games/cookieclicker/img/upgradeFrameOld.png
new file mode 100644
index 00000000..38480577
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/upgradeFrameOld.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/upgradeFrameShadowOld.png b/public/gfiles/html5games/cookieclicker/img/upgradeFrameShadowOld.png
new file mode 100644
index 00000000..4f62df7a
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/upgradeFrameShadowOld.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/upgradeHighlight.jpg b/public/gfiles/html5games/cookieclicker/img/upgradeHighlight.jpg
new file mode 100644
index 00000000..0534d673
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/upgradeHighlight.jpg differ
diff --git a/public/gfiles/html5games/cookieclicker/img/upgradeHighlight.png b/public/gfiles/html5games/cookieclicker/img/upgradeHighlight.png
new file mode 100644
index 00000000..04fb65be
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/upgradeHighlight.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/upgradeSelector.png b/public/gfiles/html5games/cookieclicker/img/upgradeSelector.png
new file mode 100644
index 00000000..1ca9eaa4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/upgradeSelector.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/weeHoodie.png b/public/gfiles/html5games/cookieclicker/img/weeHoodie.png
new file mode 100644
index 00000000..e2c4e429
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/weeHoodie.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/winterFrame.png b/public/gfiles/html5games/cookieclicker/img/winterFrame.png
new file mode 100644
index 00000000..d5e8ee06
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/winterFrame.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/winterWrinkler.png b/public/gfiles/html5games/cookieclicker/img/winterWrinkler.png
new file mode 100644
index 00000000..4abadae2
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/winterWrinkler.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/witchGrandma.png b/public/gfiles/html5games/cookieclicker/img/witchGrandma.png
new file mode 100644
index 00000000..d3fbc7d7
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/witchGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/wizardtower.png b/public/gfiles/html5games/cookieclicker/img/wizardtower.png
new file mode 100644
index 00000000..2e19a095
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/wizardtower.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/wizardtowerBackground.png b/public/gfiles/html5games/cookieclicker/img/wizardtowerBackground.png
new file mode 100644
index 00000000..e8cfeb46
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/wizardtowerBackground.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/workerGrandma.png b/public/gfiles/html5games/cookieclicker/img/workerGrandma.png
new file mode 100644
index 00000000..fac73e14
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/workerGrandma.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/wrathContract.png b/public/gfiles/html5games/cookieclicker/img/wrathContract.png
new file mode 100644
index 00000000..d1ad50ba
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/wrathContract.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/wrathCookie.png b/public/gfiles/html5games/cookieclicker/img/wrathCookie.png
new file mode 100644
index 00000000..f3599a1b
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/wrathCookie.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/wrinkler.png b/public/gfiles/html5games/cookieclicker/img/wrinkler.png
new file mode 100644
index 00000000..39d1f0f7
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/wrinkler.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/wrinklerBits.png b/public/gfiles/html5games/cookieclicker/img/wrinklerBits.png
new file mode 100644
index 00000000..aee20d34
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/wrinklerBits.png differ
diff --git a/public/gfiles/html5games/cookieclicker/img/wrinklerBitsOld.png b/public/gfiles/html5games/cookieclicker/img/wrinklerBitsOld.png
new file mode 100644
index 00000000..85c83155
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/img/wrinklerBitsOld.png differ
diff --git a/public/gfiles/html5games/cookieclicker/index.html b/public/gfiles/html5games/cookieclicker/index.html
new file mode 100644
index 00000000..b6826786
--- /dev/null
+++ b/public/gfiles/html5games/cookieclicker/index.html
@@ -0,0 +1,170 @@
+
+
+
+
+
Cookie Clicker
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loading...
+
This is taking longer than expected.
+
Slow connection? If not, please make sure your javascript is enabled, then refresh.
+ If problems persist, this might be on our side - wait a few minutes, then hit ctrl+f5!
+
Your browser may not be recent enough to run Cookie Clicker.
You might want to update, or switch to a more modern browser such as Chrome or Firefox.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/gfiles/html5games/cookieclicker/snd/buy1.mp3 b/public/gfiles/html5games/cookieclicker/snd/buy1.mp3
new file mode 100644
index 00000000..b15a3d19
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/buy1.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/buy2.mp3 b/public/gfiles/html5games/cookieclicker/snd/buy2.mp3
new file mode 100644
index 00000000..7e53d31d
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/buy2.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/buy3.mp3 b/public/gfiles/html5games/cookieclicker/snd/buy3.mp3
new file mode 100644
index 00000000..f361c67e
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/buy3.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/buy4.mp3 b/public/gfiles/html5games/cookieclicker/snd/buy4.mp3
new file mode 100644
index 00000000..d64dacbd
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/buy4.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/buyHeavenly.mp3 b/public/gfiles/html5games/cookieclicker/snd/buyHeavenly.mp3
new file mode 100644
index 00000000..25829271
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/buyHeavenly.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/charging.mp3 b/public/gfiles/html5games/cookieclicker/snd/charging.mp3
new file mode 100644
index 00000000..9994bcbd
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/charging.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/chime.mp3 b/public/gfiles/html5games/cookieclicker/snd/chime.mp3
new file mode 100644
index 00000000..3f49b1be
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/chime.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/choir.mp3 b/public/gfiles/html5games/cookieclicker/snd/choir.mp3
new file mode 100644
index 00000000..c606c717
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/choir.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/click1.mp3 b/public/gfiles/html5games/cookieclicker/snd/click1.mp3
new file mode 100644
index 00000000..64ba1386
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/click1.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/click2.mp3 b/public/gfiles/html5games/cookieclicker/snd/click2.mp3
new file mode 100644
index 00000000..9b26f286
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/click2.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/click3.mp3 b/public/gfiles/html5games/cookieclicker/snd/click3.mp3
new file mode 100644
index 00000000..51c17eab
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/click3.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/click4.mp3 b/public/gfiles/html5games/cookieclicker/snd/click4.mp3
new file mode 100644
index 00000000..4c51eeb8
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/click4.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/click5.mp3 b/public/gfiles/html5games/cookieclicker/snd/click5.mp3
new file mode 100644
index 00000000..f6886ee4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/click5.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/click6.mp3 b/public/gfiles/html5games/cookieclicker/snd/click6.mp3
new file mode 100644
index 00000000..b28738f9
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/click6.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/click7.mp3 b/public/gfiles/html5games/cookieclicker/snd/click7.mp3
new file mode 100644
index 00000000..8d1e7c9f
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/click7.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/clickOff.mp3 b/public/gfiles/html5games/cookieclicker/snd/clickOff.mp3
new file mode 100644
index 00000000..08ac7c45
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/clickOff.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/clickOn.mp3 b/public/gfiles/html5games/cookieclicker/snd/clickOn.mp3
new file mode 100644
index 00000000..1228ddcb
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/clickOn.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/clickb1.mp3 b/public/gfiles/html5games/cookieclicker/snd/clickb1.mp3
new file mode 100644
index 00000000..c0968815
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/clickb1.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/clickb2.mp3 b/public/gfiles/html5games/cookieclicker/snd/clickb2.mp3
new file mode 100644
index 00000000..5536f9a4
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/clickb2.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/clickb3.mp3 b/public/gfiles/html5games/cookieclicker/snd/clickb3.mp3
new file mode 100644
index 00000000..e51d221d
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/clickb3.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/clickb4.mp3 b/public/gfiles/html5games/cookieclicker/snd/clickb4.mp3
new file mode 100644
index 00000000..74e97111
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/clickb4.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/clickb5.mp3 b/public/gfiles/html5games/cookieclicker/snd/clickb5.mp3
new file mode 100644
index 00000000..9fd11796
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/clickb5.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/clickb6.mp3 b/public/gfiles/html5games/cookieclicker/snd/clickb6.mp3
new file mode 100644
index 00000000..eb3ab3b6
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/clickb6.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/clickb7.mp3 b/public/gfiles/html5games/cookieclicker/snd/clickb7.mp3
new file mode 100644
index 00000000..3f2e6340
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/clickb7.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/cookieBreak.mp3 b/public/gfiles/html5games/cookieclicker/snd/cookieBreak.mp3
new file mode 100644
index 00000000..18a9b309
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/cookieBreak.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/cymbalCrash.mp3 b/public/gfiles/html5games/cookieclicker/snd/cymbalCrash.mp3
new file mode 100644
index 00000000..ad94a52d
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/cymbalCrash.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/cymbalRev.mp3 b/public/gfiles/html5games/cookieclicker/snd/cymbalRev.mp3
new file mode 100644
index 00000000..90f39f38
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/cymbalRev.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/fortune.mp3 b/public/gfiles/html5games/cookieclicker/snd/fortune.mp3
new file mode 100644
index 00000000..bb03655a
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/fortune.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/freezeGarden.mp3 b/public/gfiles/html5games/cookieclicker/snd/freezeGarden.mp3
new file mode 100644
index 00000000..3b61ab9c
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/freezeGarden.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/harvest1.mp3 b/public/gfiles/html5games/cookieclicker/snd/harvest1.mp3
new file mode 100644
index 00000000..a5b07ed0
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/harvest1.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/harvest2.mp3 b/public/gfiles/html5games/cookieclicker/snd/harvest2.mp3
new file mode 100644
index 00000000..89d13591
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/harvest2.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/harvest3.mp3 b/public/gfiles/html5games/cookieclicker/snd/harvest3.mp3
new file mode 100644
index 00000000..2009ccdc
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/harvest3.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/index.html b/public/gfiles/html5games/cookieclicker/snd/index.html
new file mode 100644
index 00000000..fd38c83d
--- /dev/null
+++ b/public/gfiles/html5games/cookieclicker/snd/index.html
@@ -0,0 +1,77 @@
+
+
+
+
Index of /cookieclicker/snd
+
+
+
Index of /cookieclicker/snd
+
Name Last modified Size Description
Parent Directory -
+
buy1.mp3 2015-11-05 14:28 3.1K
+
buy2.mp3 2015-11-05 14:28 3.1K
+
buy3.mp3 2015-11-05 14:28 3.1K
+
buy4.mp3 2015-11-05 14:28 3.1K
+
buyHeavenly.mp3 2015-11-05 17:22 9.1K
+
charging.mp3 2015-12-20 15:56 34K
+
chime.mp3 2016-02-03 12:45 30K
+
choir.mp3 2015-11-03 19:55 32K
+
click1.mp3 2015-10-30 22:47 2.5K
+
click2.mp3 2015-10-30 22:47 2.5K
+
click3.mp3 2015-10-30 22:47 2.5K
+
click4.mp3 2015-10-30 22:57 2.5K
+
click5.mp3 2015-10-30 22:47 2.5K
+
click6.mp3 2015-10-30 22:57 2.5K
+
click7.mp3 2015-10-30 22:57 2.5K
+
clickOff.mp3 2015-11-02 07:04 3.1K
+
clickOn.mp3 2015-11-02 07:04 2.6K
+
clickb1.mp3 2016-02-03 18:56 1.1K
+
clickb2.mp3 2016-02-03 18:56 1.1K
+
clickb3.mp3 2016-02-03 18:56 1.1K
+
clickb4.mp3 2016-02-03 18:56 1.1K
+
clickb5.mp3 2016-02-03 18:56 1.1K
+
clickb6.mp3 2016-02-03 18:56 1.1K
+
clickb7.mp3 2016-02-03 18:56 1.1K
+
cookieBreak.mp3 2015-10-30 21:08 34K
+
cymbalCrash.mp3 2015-11-05 15:44 21K
+
cymbalRev.mp3 2015-11-05 16:09 25K
+
fortune.mp3 2019-09-23 14:07 20K
+
freezeGarden.mp3 2018-03-29 22:55 16K
+
harvest1.mp3 2018-03-29 22:33 6.1K
+
harvest2.mp3 2018-03-29 22:33 6.1K
+
harvest3.mp3 2018-03-29 22:33 5.6K
+
jingle.mp3 2015-10-30 21:32 27K
+
jingleClick.mp3 2015-10-30 21:32 12K
+
levelPrestige.mp3 2015-12-17 02:03 7.1K
+
page.mp3 2015-10-30 09:53 5.1K
+
pop1.mp3 2015-11-02 08:09 3.1K
+
pop2.mp3 2015-11-02 08:09 3.1K
+
pop3.mp3 2015-11-02 08:09 3.1K
+
press.mp3 2015-10-30 09:37 3.6K
+
sell1.mp3 2015-11-05 14:32 3.1K
+
sell2.mp3 2015-11-05 14:32 3.1K
+
sell3.mp3 2015-11-05 14:32 3.1K
+
sell4.mp3 2015-11-05 14:32 3.1K
+
shimmerClick.mp3 2015-10-30 21:10 11K
+
smallCymbalCrash.mp3 2015-11-05 16:10 20K
+
smallTick.mp3 2015-11-02 07:09 2.1K
+
spell.mp3 2017-07-06 14:15 15K
+
spellFail.mp3 2017-07-06 14:29 9.8K
+
spirit.mp3 2017-07-06 14:16 11K
+
squish1.mp3 2015-11-02 07:58 7.6K
+
squish2.mp3 2015-11-02 07:58 7.1K
+
squish3.mp3 2015-11-02 07:58 8.1K
+
squish4.mp3 2015-11-02 07:58 5.6K
+
switch.mp3 2017-07-06 14:40 2.9K
+
swooshIn.mp3 2015-11-02 07:16 4.6K
+
swooshOut.mp3 2015-11-02 07:16 4.1K
+
thud.mp3 2015-12-20 15:42 19K
+
tick.mp3 2015-10-30 08:50 2.6K
+
till1.mp3 2018-03-29 22:10 5.6K
+
till2.mp3 2018-03-29 22:10 5.1K
+
till3.mp3 2018-03-29 22:10 5.6K
+
tillb1.mp3 2018-03-29 22:10 4.9K
+
tillb2.mp3 2018-03-29 22:10 5.1K
+
tillb3.mp3 2018-03-29 22:10 6.1K
+
toneTick.mp3 2018-03-29 22:43 3.6K
+
upgrade.mp3 2017-06-05 09:26 4.3K
+
+
diff --git a/public/gfiles/html5games/cookieclicker/snd/jingle.mp3 b/public/gfiles/html5games/cookieclicker/snd/jingle.mp3
new file mode 100644
index 00000000..ec37acdb
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/jingle.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/jingleClick.mp3 b/public/gfiles/html5games/cookieclicker/snd/jingleClick.mp3
new file mode 100644
index 00000000..6f955668
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/jingleClick.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/levelPrestige.mp3 b/public/gfiles/html5games/cookieclicker/snd/levelPrestige.mp3
new file mode 100644
index 00000000..4201126c
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/levelPrestige.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/list.txt b/public/gfiles/html5games/cookieclicker/snd/list.txt
new file mode 100644
index 00000000..61f0ce79
--- /dev/null
+++ b/public/gfiles/html5games/cookieclicker/snd/list.txt
@@ -0,0 +1,67 @@
+buy1.mp3
+buy2.mp3
+buy3.mp3
+buy4.mp3
+buyHeavenly.mp3
+charging.mp3
+chime.mp3
+choir.mp3
+click1.mp3
+click2.mp3
+click3.mp3
+click4.mp3
+click5.mp3
+click6.mp3
+click7.mp3
+clickOff.mp3
+clickOn.mp3
+clickb1.mp3
+clickb2.mp3
+clickb3.mp3
+clickb4.mp3
+clickb5.mp3
+clickb6.mp3
+clickb7.mp3
+cookieBreak.mp3
+cymbalCrash.mp3
+cymbalRev.mp3
+fortune.mp3
+freezeGarden.mp3
+harvest1.mp3
+harvest2.mp3
+harvest3.mp3
+jingle.mp3
+jingleClick.mp3
+levelPrestige.mp3
+page.mp3
+pop1.mp3
+pop2.mp3
+pop3.mp3
+press.mp3
+sell1.mp3
+sell2.mp3
+sell3.mp3
+sell4.mp3
+shimmerClick.mp3
+smallCymbalCrash.mp3
+smallTick.mp3
+spell.mp3
+spellFail.mp3
+spirit.mp3
+squish1.mp3
+squish2.mp3
+squish3.mp3
+squish4.mp3
+switch.mp3
+swooshIn.mp3
+swooshOut.mp3
+thud.mp3
+tick.mp3
+till1.mp3
+till2.mp3
+till3.mp3
+tillb1.mp3
+tillb2.mp3
+tillb3.mp3
+toneTick.mp3
+upgrade.mp3
diff --git a/public/gfiles/html5games/cookieclicker/snd/page.mp3 b/public/gfiles/html5games/cookieclicker/snd/page.mp3
new file mode 100644
index 00000000..5ed2d7e6
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/page.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/pop1.mp3 b/public/gfiles/html5games/cookieclicker/snd/pop1.mp3
new file mode 100644
index 00000000..dbbd28ad
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/pop1.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/pop2.mp3 b/public/gfiles/html5games/cookieclicker/snd/pop2.mp3
new file mode 100644
index 00000000..10913d4f
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/pop2.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/pop3.mp3 b/public/gfiles/html5games/cookieclicker/snd/pop3.mp3
new file mode 100644
index 00000000..e9eb3bfe
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/pop3.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/press.mp3 b/public/gfiles/html5games/cookieclicker/snd/press.mp3
new file mode 100644
index 00000000..a322e8f8
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/press.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/sell1.mp3 b/public/gfiles/html5games/cookieclicker/snd/sell1.mp3
new file mode 100644
index 00000000..719aa614
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/sell1.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/sell2.mp3 b/public/gfiles/html5games/cookieclicker/snd/sell2.mp3
new file mode 100644
index 00000000..d52fe7b0
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/sell2.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/sell3.mp3 b/public/gfiles/html5games/cookieclicker/snd/sell3.mp3
new file mode 100644
index 00000000..454aa1df
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/sell3.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/sell4.mp3 b/public/gfiles/html5games/cookieclicker/snd/sell4.mp3
new file mode 100644
index 00000000..1d9a8487
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/sell4.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/shimmerClick.mp3 b/public/gfiles/html5games/cookieclicker/snd/shimmerClick.mp3
new file mode 100644
index 00000000..ad7c9ada
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/shimmerClick.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/smallCymbalCrash.mp3 b/public/gfiles/html5games/cookieclicker/snd/smallCymbalCrash.mp3
new file mode 100644
index 00000000..40c74a50
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/smallCymbalCrash.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/smallTick.mp3 b/public/gfiles/html5games/cookieclicker/snd/smallTick.mp3
new file mode 100644
index 00000000..c42ed98a
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/smallTick.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/spell.mp3 b/public/gfiles/html5games/cookieclicker/snd/spell.mp3
new file mode 100644
index 00000000..4e7d1331
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/spell.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/spellFail.mp3 b/public/gfiles/html5games/cookieclicker/snd/spellFail.mp3
new file mode 100644
index 00000000..d1691dbd
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/spellFail.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/spirit.mp3 b/public/gfiles/html5games/cookieclicker/snd/spirit.mp3
new file mode 100644
index 00000000..bff6b49d
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/spirit.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/squish1.mp3 b/public/gfiles/html5games/cookieclicker/snd/squish1.mp3
new file mode 100644
index 00000000..a22da72a
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/squish1.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/squish2.mp3 b/public/gfiles/html5games/cookieclicker/snd/squish2.mp3
new file mode 100644
index 00000000..94ae7f39
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/squish2.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/squish3.mp3 b/public/gfiles/html5games/cookieclicker/snd/squish3.mp3
new file mode 100644
index 00000000..52c2b21a
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/squish3.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/squish4.mp3 b/public/gfiles/html5games/cookieclicker/snd/squish4.mp3
new file mode 100644
index 00000000..5efce979
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/squish4.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/switch.mp3 b/public/gfiles/html5games/cookieclicker/snd/switch.mp3
new file mode 100644
index 00000000..1b1bc640
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/switch.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/swooshIn.mp3 b/public/gfiles/html5games/cookieclicker/snd/swooshIn.mp3
new file mode 100644
index 00000000..5d29d612
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/swooshIn.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/swooshOut.mp3 b/public/gfiles/html5games/cookieclicker/snd/swooshOut.mp3
new file mode 100644
index 00000000..60e95418
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/swooshOut.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/thud.mp3 b/public/gfiles/html5games/cookieclicker/snd/thud.mp3
new file mode 100644
index 00000000..2b66148f
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/thud.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/tick.mp3 b/public/gfiles/html5games/cookieclicker/snd/tick.mp3
new file mode 100644
index 00000000..19b21c01
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/tick.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/till1.mp3 b/public/gfiles/html5games/cookieclicker/snd/till1.mp3
new file mode 100644
index 00000000..05d43176
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/till1.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/till2.mp3 b/public/gfiles/html5games/cookieclicker/snd/till2.mp3
new file mode 100644
index 00000000..de5576d0
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/till2.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/till3.mp3 b/public/gfiles/html5games/cookieclicker/snd/till3.mp3
new file mode 100644
index 00000000..51942b78
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/till3.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/tillb1.mp3 b/public/gfiles/html5games/cookieclicker/snd/tillb1.mp3
new file mode 100644
index 00000000..1ab21f39
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/tillb1.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/tillb2.mp3 b/public/gfiles/html5games/cookieclicker/snd/tillb2.mp3
new file mode 100644
index 00000000..3bbc9394
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/tillb2.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/tillb3.mp3 b/public/gfiles/html5games/cookieclicker/snd/tillb3.mp3
new file mode 100644
index 00000000..3b531ab0
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/tillb3.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/toneTick.mp3 b/public/gfiles/html5games/cookieclicker/snd/toneTick.mp3
new file mode 100644
index 00000000..e6553ab2
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/toneTick.mp3 differ
diff --git a/public/gfiles/html5games/cookieclicker/snd/upgrade.mp3 b/public/gfiles/html5games/cookieclicker/snd/upgrade.mp3
new file mode 100644
index 00000000..a008ac7c
Binary files /dev/null and b/public/gfiles/html5games/cookieclicker/snd/upgrade.mp3 differ
diff --git a/public/gfiles/html5games/evilglitch/index.html b/public/gfiles/html5games/evilglitch/index.html
new file mode 100644
index 00000000..3ca50320
--- /dev/null
+++ b/public/gfiles/html5games/evilglitch/index.html
@@ -0,0 +1 @@
+
Evil GlitchFullScreen
\ No newline at end of file
diff --git a/public/gfiles/html5games/factoryballsforever/index.html b/public/gfiles/html5games/factoryballsforever/index.html
new file mode 100644
index 00000000..418695cf
--- /dev/null
+++ b/public/gfiles/html5games/factoryballsforever/index.html
@@ -0,0 +1 @@
+