From 7eeabb161fe488e2e7959a3fff2c4614835898aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90=E1=BA=B7ng=20Minh=20Quang?= Date: Mon, 23 Feb 2026 19:02:02 +0700 Subject: [PATCH] Initial commit of SQ_Word_Hint-Audio-Teacher project --- .gitea/workflows/deploy.yml | 90 + SQ_Word_Hint-Audio-Teacher/appmanifest.json | 28 + SQ_Word_Hint-Audio-Teacher/c2runtime.js | 26594 ++++++++++++++++ SQ_Word_Hint-Audio-Teacher/data.js | 1 + SQ_Word_Hint-Audio-Teacher/icon-114.png | Bin 0 -> 25223 bytes SQ_Word_Hint-Audio-Teacher/icon-128.png | Bin 0 -> 33382 bytes SQ_Word_Hint-Audio-Teacher/icon-16.png | Bin 0 -> 1041 bytes SQ_Word_Hint-Audio-Teacher/icon-256.png | Bin 0 -> 98347 bytes SQ_Word_Hint-Audio-Teacher/icon-32.png | Bin 0 -> 2967 bytes .../images/answers-sheet0.png | Bin 0 -> 12383 bytes .../images/black-sheet0.png | Bin 0 -> 2935 bytes .../images/button2-sheet0.png | Bin 0 -> 6124 bytes .../images/correct-sheet0.png | Bin 0 -> 31182 bytes .../images/newwords-sheet0.png | Bin 0 -> 32993 bytes .../images/slot-sheet0.png | Bin 0 -> 11183 bytes .../images/sound_question-sheet0.png | Bin 0 -> 48496 bytes .../images/sprite-sheet0.png | Bin 0 -> 168 bytes .../images/submit-sheet0.png | Bin 0 -> 146996 bytes .../images/wrong-sheet0.png | Bin 0 -> 27271 bytes SQ_Word_Hint-Audio-Teacher/index.html | 140 + .../jquery-3.4.1.min.js | 2 + SQ_Word_Hint-Audio-Teacher/loading-logo.png | Bin 0 -> 385085 bytes .../media/alert-234711.ogg | Bin 0 -> 23907 bytes .../media/card_drag.ogg | Bin 0 -> 7213 bytes .../media/card_flips.ogg | Bin 0 -> 8015 bytes .../media/card_swipe.ogg | Bin 0 -> 9018 bytes .../media/click-234708.ogg | Bin 0 -> 6353 bytes SQ_Word_Hint-Audio-Teacher/media/click.m4a | Bin 0 -> 2444 bytes SQ_Word_Hint-Audio-Teacher/media/click.ogg | Bin 0 -> 5621 bytes .../media/error-010-206498.ogg | Bin 0 -> 11425 bytes .../media/pick-92276.ogg | Bin 0 -> 16164 bytes .../media/pop-reverb-423718.ogg | Bin 0 -> 23653 bytes SQ_Word_Hint-Audio-Teacher/offline.js | 36 + SQ_Word_Hint-Audio-Teacher/offlineClient.js | 53 + SQ_Word_Hint-Audio-Teacher/sena_sdk.js | 1907 ++ SQ_Word_Hint-Audio-Teacher/sw.js | 403 + readme.md | 4 + source/SQ_Word_Hint-Audio-Teacher.capx | Bin 0 -> 659143 bytes 38 files changed, 29258 insertions(+) create mode 100644 .gitea/workflows/deploy.yml create mode 100644 SQ_Word_Hint-Audio-Teacher/appmanifest.json create mode 100644 SQ_Word_Hint-Audio-Teacher/c2runtime.js create mode 100644 SQ_Word_Hint-Audio-Teacher/data.js create mode 100644 SQ_Word_Hint-Audio-Teacher/icon-114.png create mode 100644 SQ_Word_Hint-Audio-Teacher/icon-128.png create mode 100644 SQ_Word_Hint-Audio-Teacher/icon-16.png create mode 100644 SQ_Word_Hint-Audio-Teacher/icon-256.png create mode 100644 SQ_Word_Hint-Audio-Teacher/icon-32.png create mode 100644 SQ_Word_Hint-Audio-Teacher/images/answers-sheet0.png create mode 100644 SQ_Word_Hint-Audio-Teacher/images/black-sheet0.png create mode 100644 SQ_Word_Hint-Audio-Teacher/images/button2-sheet0.png create mode 100644 SQ_Word_Hint-Audio-Teacher/images/correct-sheet0.png create mode 100644 SQ_Word_Hint-Audio-Teacher/images/newwords-sheet0.png create mode 100644 SQ_Word_Hint-Audio-Teacher/images/slot-sheet0.png create mode 100644 SQ_Word_Hint-Audio-Teacher/images/sound_question-sheet0.png create mode 100644 SQ_Word_Hint-Audio-Teacher/images/sprite-sheet0.png create mode 100644 SQ_Word_Hint-Audio-Teacher/images/submit-sheet0.png create mode 100644 SQ_Word_Hint-Audio-Teacher/images/wrong-sheet0.png create mode 100644 SQ_Word_Hint-Audio-Teacher/index.html create mode 100644 SQ_Word_Hint-Audio-Teacher/jquery-3.4.1.min.js create mode 100644 SQ_Word_Hint-Audio-Teacher/loading-logo.png create mode 100644 SQ_Word_Hint-Audio-Teacher/media/alert-234711.ogg create mode 100644 SQ_Word_Hint-Audio-Teacher/media/card_drag.ogg create mode 100644 SQ_Word_Hint-Audio-Teacher/media/card_flips.ogg create mode 100644 SQ_Word_Hint-Audio-Teacher/media/card_swipe.ogg create mode 100644 SQ_Word_Hint-Audio-Teacher/media/click-234708.ogg create mode 100644 SQ_Word_Hint-Audio-Teacher/media/click.m4a create mode 100644 SQ_Word_Hint-Audio-Teacher/media/click.ogg create mode 100644 SQ_Word_Hint-Audio-Teacher/media/error-010-206498.ogg create mode 100644 SQ_Word_Hint-Audio-Teacher/media/pick-92276.ogg create mode 100644 SQ_Word_Hint-Audio-Teacher/media/pop-reverb-423718.ogg create mode 100644 SQ_Word_Hint-Audio-Teacher/offline.js create mode 100644 SQ_Word_Hint-Audio-Teacher/offlineClient.js create mode 100644 SQ_Word_Hint-Audio-Teacher/sena_sdk.js create mode 100644 SQ_Word_Hint-Audio-Teacher/sw.js create mode 100644 readme.md create mode 100644 source/SQ_Word_Hint-Audio-Teacher.capx diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..4a2771a --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,90 @@ +name: Deploy to Production + +on: + push: + branches: + - main + - master + +jobs: + deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Deploy to server + run: | + echo "๐Ÿš€ Deploying to /var/www/html/games" + echo "๐Ÿ“ Current directory: $(pwd)" + echo "๐Ÿ“ GITHUB_WORKSPACE: $GITHUB_WORKSPACE" + + # Read game info from readme.md + if [ -f "$GITHUB_WORKSPACE/readme.md" ]; then + GAME_TITLE=$(sed -n '1p' "$GITHUB_WORKSPACE/readme.md") + GAME_DESC=$(sed -n '2p' "$GITHUB_WORKSPACE/readme.md") + GAME_TYPE=$(sed -n '3p' "$GITHUB_WORKSPACE/readme.md") + else + GAME_TITLE="Untitled Game" + GAME_DESC="No description" + GAME_TYPE="quiz" + fi + + # Create base directory + mkdir -p /var/www/html/games/ + + # Find and deploy all game folders (exclude source, .git, .gitea, etc.) + DEPLOYED_FOLDERS="" + DEPLOYED_URLS="" + for folder in $GITHUB_WORKSPACE/*/; do + folder_name=$(basename "$folder") + + # Skip excluded folders + if [[ "$folder_name" == "source" ]] || \ + [[ "$folder_name" == ".git" ]] || \ + [[ "$folder_name" == ".gitea" ]] || \ + [[ "$folder_name" == "node_modules" ]] || \ + [[ "$folder_name" == "logs" ]] || \ + [[ "$folder_name" == "uploads" ]]; then + echo "โญ๏ธ Skipping: $folder_name" + continue + fi + + # Deploy the folder + echo "๐Ÿ“ฆ Deploying: $folder_name" + rsync -av --delete "$folder" "/var/www/html/games/$folder_name/" + DEPLOYED_FOLDERS="$DEPLOYED_FOLDERS $folder_name" + GAME_URL="https://senaai.tech/games/$folder_name/" + DEPLOYED_URLS="$DEPLOYED_URLS\n ๐Ÿ”— $GAME_URL" + + # Get thumbnail (first image found or default) + THUMBNAIL=$(find "$folder" -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" \) 2>/dev/null | head -n 1 || true) + if [ -z "$THUMBNAIL" ]; then + THUMBNAIL="https://senaai.tech/games/$folder_name/images/default.png" + else + THUMBNAIL="https://senaai.tech/games/$folder_name/$(basename "$THUMBNAIL")" + fi + + # Submit game info to API + echo "๐Ÿ“ค Submitting game info to API..." + curl --location 'http://senaai.tech:10000/api/games/save-with-check' \ + --header 'Content-Type: application/x-www-form-urlencoded' \ + --data-urlencode "title=$GAME_TITLE" \ + --data-urlencode "description=$GAME_DESC" \ + --data-urlencode "url=$GAME_URL" \ + --data-urlencode "thumbnail=$THUMBNAIL" \ + --data-urlencode "type=$GAME_TYPE" || true + echo "" + done + + # Show deployment summary + echo "" + echo "==========================================" + echo "๐ŸŽ‰ Deployment Completed Successfully!" + echo "==========================================" + echo "" + echo "๐Ÿ“ Deployed URLs:" + echo -e "$DEPLOYED_URLS" + echo "" + echo "==========================================" \ No newline at end of file diff --git a/SQ_Word_Hint-Audio-Teacher/appmanifest.json b/SQ_Word_Hint-Audio-Teacher/appmanifest.json new file mode 100644 index 0000000..72d4a22 --- /dev/null +++ b/SQ_Word_Hint-Audio-Teacher/appmanifest.json @@ -0,0 +1,28 @@ +๏ปฟ{ + "name": "SQ_Word_Hint-Audio", + "short_name": "SQ_Word_Hint-Audio", + "start_url": "index.html", + "display": "fullscreen", + "orientation": "any", + "icons": [{ + "src": "icon-16.png", + "sizes": "16x16", + "type": "image/png" + }, { + "src": "icon-32.png", + "sizes": "32x32", + "type": "image/png" + }, { + "src": "icon-128.png", + "sizes": "128x128", + "type": "image/png" + }, { + "src": "icon-256.png", + "sizes": "144x144", + "type": "image/png" + }, { + "src": "icon-256.png", + "sizes": "256x256", + "type": "image/png" + }] +} diff --git a/SQ_Word_Hint-Audio-Teacher/c2runtime.js b/SQ_Word_Hint-Audio-Teacher/c2runtime.js new file mode 100644 index 0000000..4c95fd5 --- /dev/null +++ b/SQ_Word_Hint-Audio-Teacher/c2runtime.js @@ -0,0 +1,26594 @@ +๏ปฟ// Generated by Construct 2, the HTML5 game and app creator :: https://www.construct.net +var cr = {}; +cr.plugins_ = {}; +cr.behaviors = {}; +if (typeof Object.getPrototypeOf !== "function") +{ + if (typeof "test".__proto__ === "object") + { + Object.getPrototypeOf = function(object) { + return object.__proto__; + }; + } + else + { + Object.getPrototypeOf = function(object) { + return object.constructor.prototype; + }; + } +} +(function(){ + cr.logexport = function (msg) + { + if (window.console && window.console.log) + window.console.log(msg); + }; + cr.logerror = function (msg) + { + if (window.console && window.console.error) + window.console.error(msg); + }; + cr.seal = function(x) + { + return x; + }; + cr.freeze = function(x) + { + return x; + }; + cr.is_undefined = function (x) + { + return typeof x === "undefined"; + }; + cr.is_number = function (x) + { + return typeof x === "number"; + }; + cr.is_string = function (x) + { + return typeof x === "string"; + }; + cr.isPOT = function (x) + { + return x > 0 && ((x - 1) & x) === 0; + }; + cr.nextHighestPowerOfTwo = function(x) { + --x; + for (var i = 1; i < 32; i <<= 1) { + x = x | x >> i; + } + return x + 1; + } + cr.abs = function (x) + { + return (x < 0 ? -x : x); + }; + cr.max = function (a, b) + { + return (a > b ? a : b); + }; + cr.min = function (a, b) + { + return (a < b ? a : b); + }; + cr.PI = Math.PI; + cr.round = function (x) + { + return (x + 0.5) | 0; + }; + cr.floor = function (x) + { + if (x >= 0) + return x | 0; + else + return (x | 0) - 1; // correctly round down when negative + }; + cr.ceil = function (x) + { + var f = x | 0; + return (f === x ? f : f + 1); + }; + function Vector2(x, y) + { + this.x = x; + this.y = y; + cr.seal(this); + }; + Vector2.prototype.offset = function (px, py) + { + this.x += px; + this.y += py; + return this; + }; + Vector2.prototype.mul = function (px, py) + { + this.x *= px; + this.y *= py; + return this; + }; + cr.vector2 = Vector2; + cr.segments_intersect = function(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) + { + var max_ax, min_ax, max_ay, min_ay, max_bx, min_bx, max_by, min_by; + if (a1x < a2x) + { + min_ax = a1x; + max_ax = a2x; + } + else + { + min_ax = a2x; + max_ax = a1x; + } + if (b1x < b2x) + { + min_bx = b1x; + max_bx = b2x; + } + else + { + min_bx = b2x; + max_bx = b1x; + } + if (max_ax < min_bx || min_ax > max_bx) + return false; + if (a1y < a2y) + { + min_ay = a1y; + max_ay = a2y; + } + else + { + min_ay = a2y; + max_ay = a1y; + } + if (b1y < b2y) + { + min_by = b1y; + max_by = b2y; + } + else + { + min_by = b2y; + max_by = b1y; + } + if (max_ay < min_by || min_ay > max_by) + return false; + var dpx = b1x - a1x + b2x - a2x; + var dpy = b1y - a1y + b2y - a2y; + var qax = a2x - a1x; + var qay = a2y - a1y; + var qbx = b2x - b1x; + var qby = b2y - b1y; + var d = cr.abs(qay * qbx - qby * qax); + var la = qbx * dpy - qby * dpx; + if (cr.abs(la) > d) + return false; + var lb = qax * dpy - qay * dpx; + return cr.abs(lb) <= d; + }; + function Rect(left, top, right, bottom) + { + this.set(left, top, right, bottom); + cr.seal(this); + }; + Rect.prototype.set = function (left, top, right, bottom) + { + this.left = left; + this.top = top; + this.right = right; + this.bottom = bottom; + }; + Rect.prototype.copy = function (r) + { + this.left = r.left; + this.top = r.top; + this.right = r.right; + this.bottom = r.bottom; + }; + Rect.prototype.width = function () + { + return this.right - this.left; + }; + Rect.prototype.height = function () + { + return this.bottom - this.top; + }; + Rect.prototype.offset = function (px, py) + { + this.left += px; + this.top += py; + this.right += px; + this.bottom += py; + return this; + }; + Rect.prototype.normalize = function () + { + var temp = 0; + if (this.left > this.right) + { + temp = this.left; + this.left = this.right; + this.right = temp; + } + if (this.top > this.bottom) + { + temp = this.top; + this.top = this.bottom; + this.bottom = temp; + } + }; + Rect.prototype.intersects_rect = function (rc) + { + return !(rc.right < this.left || rc.bottom < this.top || rc.left > this.right || rc.top > this.bottom); + }; + Rect.prototype.intersects_rect_off = function (rc, ox, oy) + { + return !(rc.right + ox < this.left || rc.bottom + oy < this.top || rc.left + ox > this.right || rc.top + oy > this.bottom); + }; + Rect.prototype.contains_pt = function (x, y) + { + return (x >= this.left && x <= this.right) && (y >= this.top && y <= this.bottom); + }; + Rect.prototype.equals = function (r) + { + return this.left === r.left && this.top === r.top && this.right === r.right && this.bottom === r.bottom; + }; + cr.rect = Rect; + function Quad() + { + this.tlx = 0; + this.tly = 0; + this.trx = 0; + this.try_ = 0; // is a keyword otherwise! + this.brx = 0; + this.bry = 0; + this.blx = 0; + this.bly = 0; + cr.seal(this); + }; + Quad.prototype.set_from_rect = function (rc) + { + this.tlx = rc.left; + this.tly = rc.top; + this.trx = rc.right; + this.try_ = rc.top; + this.brx = rc.right; + this.bry = rc.bottom; + this.blx = rc.left; + this.bly = rc.bottom; + }; + Quad.prototype.set_from_rotated_rect = function (rc, a) + { + if (a === 0) + { + this.set_from_rect(rc); + } + else + { + var sin_a = Math.sin(a); + var cos_a = Math.cos(a); + var left_sin_a = rc.left * sin_a; + var top_sin_a = rc.top * sin_a; + var right_sin_a = rc.right * sin_a; + var bottom_sin_a = rc.bottom * sin_a; + var left_cos_a = rc.left * cos_a; + var top_cos_a = rc.top * cos_a; + var right_cos_a = rc.right * cos_a; + var bottom_cos_a = rc.bottom * cos_a; + this.tlx = left_cos_a - top_sin_a; + this.tly = top_cos_a + left_sin_a; + this.trx = right_cos_a - top_sin_a; + this.try_ = top_cos_a + right_sin_a; + this.brx = right_cos_a - bottom_sin_a; + this.bry = bottom_cos_a + right_sin_a; + this.blx = left_cos_a - bottom_sin_a; + this.bly = bottom_cos_a + left_sin_a; + } + }; + Quad.prototype.offset = function (px, py) + { + this.tlx += px; + this.tly += py; + this.trx += px; + this.try_ += py; + this.brx += px; + this.bry += py; + this.blx += px; + this.bly += py; + return this; + }; + var minresult = 0; + var maxresult = 0; + function minmax4(a, b, c, d) + { + if (a < b) + { + if (c < d) + { + if (a < c) + minresult = a; + else + minresult = c; + if (b > d) + maxresult = b; + else + maxresult = d; + } + else + { + if (a < d) + minresult = a; + else + minresult = d; + if (b > c) + maxresult = b; + else + maxresult = c; + } + } + else + { + if (c < d) + { + if (b < c) + minresult = b; + else + minresult = c; + if (a > d) + maxresult = a; + else + maxresult = d; + } + else + { + if (b < d) + minresult = b; + else + minresult = d; + if (a > c) + maxresult = a; + else + maxresult = c; + } + } + }; + Quad.prototype.bounding_box = function (rc) + { + minmax4(this.tlx, this.trx, this.brx, this.blx); + rc.left = minresult; + rc.right = maxresult; + minmax4(this.tly, this.try_, this.bry, this.bly); + rc.top = minresult; + rc.bottom = maxresult; + }; + Quad.prototype.contains_pt = function (x, y) + { + var tlx = this.tlx; + var tly = this.tly; + var v0x = this.trx - tlx; + var v0y = this.try_ - tly; + var v1x = this.brx - tlx; + var v1y = this.bry - tly; + var v2x = x - tlx; + var v2y = y - tly; + var dot00 = v0x * v0x + v0y * v0y + var dot01 = v0x * v1x + v0y * v1y + var dot02 = v0x * v2x + v0y * v2y + var dot11 = v1x * v1x + v1y * v1y + var dot12 = v1x * v2x + v1y * v2y + var invDenom = 1.0 / (dot00 * dot11 - dot01 * dot01); + var u = (dot11 * dot02 - dot01 * dot12) * invDenom; + var v = (dot00 * dot12 - dot01 * dot02) * invDenom; + if ((u >= 0.0) && (v > 0.0) && (u + v < 1)) + return true; + v0x = this.blx - tlx; + v0y = this.bly - tly; + var dot00 = v0x * v0x + v0y * v0y + var dot01 = v0x * v1x + v0y * v1y + var dot02 = v0x * v2x + v0y * v2y + invDenom = 1.0 / (dot00 * dot11 - dot01 * dot01); + u = (dot11 * dot02 - dot01 * dot12) * invDenom; + v = (dot00 * dot12 - dot01 * dot02) * invDenom; + return (u >= 0.0) && (v > 0.0) && (u + v < 1); + }; + Quad.prototype.at = function (i, xory) + { + if (xory) + { + switch (i) + { + case 0: return this.tlx; + case 1: return this.trx; + case 2: return this.brx; + case 3: return this.blx; + case 4: return this.tlx; + default: return this.tlx; + } + } + else + { + switch (i) + { + case 0: return this.tly; + case 1: return this.try_; + case 2: return this.bry; + case 3: return this.bly; + case 4: return this.tly; + default: return this.tly; + } + } + }; + Quad.prototype.midX = function () + { + return (this.tlx + this.trx + this.brx + this.blx) / 4; + }; + Quad.prototype.midY = function () + { + return (this.tly + this.try_ + this.bry + this.bly) / 4; + }; + Quad.prototype.intersects_segment = function (x1, y1, x2, y2) + { + if (this.contains_pt(x1, y1) || this.contains_pt(x2, y2)) + return true; + var a1x, a1y, a2x, a2y; + var i; + for (i = 0; i < 4; i++) + { + a1x = this.at(i, true); + a1y = this.at(i, false); + a2x = this.at(i + 1, true); + a2y = this.at(i + 1, false); + if (cr.segments_intersect(x1, y1, x2, y2, a1x, a1y, a2x, a2y)) + return true; + } + return false; + }; + Quad.prototype.intersects_quad = function (rhs) + { + var midx = rhs.midX(); + var midy = rhs.midY(); + if (this.contains_pt(midx, midy)) + return true; + midx = this.midX(); + midy = this.midY(); + if (rhs.contains_pt(midx, midy)) + return true; + var a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y; + var i, j; + for (i = 0; i < 4; i++) + { + for (j = 0; j < 4; j++) + { + a1x = this.at(i, true); + a1y = this.at(i, false); + a2x = this.at(i + 1, true); + a2y = this.at(i + 1, false); + b1x = rhs.at(j, true); + b1y = rhs.at(j, false); + b2x = rhs.at(j + 1, true); + b2y = rhs.at(j + 1, false); + if (cr.segments_intersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y)) + return true; + } + } + return false; + }; + cr.quad = Quad; + cr.RGB = function (red, green, blue) + { + return Math.max(Math.min(red, 255), 0) + | (Math.max(Math.min(green, 255), 0) << 8) + | (Math.max(Math.min(blue, 255), 0) << 16); + }; + cr.GetRValue = function (rgb) + { + return rgb & 0xFF; + }; + cr.GetGValue = function (rgb) + { + return (rgb & 0xFF00) >> 8; + }; + cr.GetBValue = function (rgb) + { + return (rgb & 0xFF0000) >> 16; + }; + cr.shallowCopy = function (a, b, allowOverwrite) + { + var attr; + for (attr in b) + { + if (b.hasOwnProperty(attr)) + { +; + a[attr] = b[attr]; + } + } + return a; + }; + cr.arrayRemove = function (arr, index) + { + var i, len; + index = cr.floor(index); + if (index < 0 || index >= arr.length) + return; // index out of bounds + for (i = index, len = arr.length - 1; i < len; i++) + arr[i] = arr[i + 1]; + cr.truncateArray(arr, len); + }; + cr.truncateArray = function (arr, index) + { + arr.length = index; + }; + cr.clearArray = function (arr) + { + cr.truncateArray(arr, 0); + }; + cr.shallowAssignArray = function (dest, src) + { + cr.clearArray(dest); + var i, len; + for (i = 0, len = src.length; i < len; ++i) + dest[i] = src[i]; + }; + cr.appendArray = function (a, b) + { + a.push.apply(a, b); + }; + cr.fastIndexOf = function (arr, item) + { + var i, len; + for (i = 0, len = arr.length; i < len; ++i) + { + if (arr[i] === item) + return i; + } + return -1; + }; + cr.arrayFindRemove = function (arr, item) + { + var index = cr.fastIndexOf(arr, item); + if (index !== -1) + cr.arrayRemove(arr, index); + }; + cr.clamp = function(x, a, b) + { + if (x < a) + return a; + else if (x > b) + return b; + else + return x; + }; + cr.to_radians = function(x) + { + return x / (180.0 / cr.PI); + }; + cr.to_degrees = function(x) + { + return x * (180.0 / cr.PI); + }; + cr.clamp_angle_degrees = function (a) + { + a %= 360; // now in (-360, 360) range + if (a < 0) + a += 360; // now in [0, 360) range + return a; + }; + cr.clamp_angle = function (a) + { + a %= 2 * cr.PI; // now in (-2pi, 2pi) range + if (a < 0) + a += 2 * cr.PI; // now in [0, 2pi) range + return a; + }; + cr.to_clamped_degrees = function (x) + { + return cr.clamp_angle_degrees(cr.to_degrees(x)); + }; + cr.to_clamped_radians = function (x) + { + return cr.clamp_angle(cr.to_radians(x)); + }; + cr.angleTo = function(x1, y1, x2, y2) + { + var dx = x2 - x1; + var dy = y2 - y1; + return Math.atan2(dy, dx); + }; + cr.angleDiff = function (a1, a2) + { + if (a1 === a2) + return 0; + var s1 = Math.sin(a1); + var c1 = Math.cos(a1); + var s2 = Math.sin(a2); + var c2 = Math.cos(a2); + var n = s1 * s2 + c1 * c2; + if (n >= 1) + return 0; + if (n <= -1) + return cr.PI; + return Math.acos(n); + }; + cr.angleRotate = function (start, end, step) + { + var ss = Math.sin(start); + var cs = Math.cos(start); + var se = Math.sin(end); + var ce = Math.cos(end); + if (Math.acos(ss * se + cs * ce) > step) + { + if (cs * se - ss * ce > 0) + return cr.clamp_angle(start + step); + else + return cr.clamp_angle(start - step); + } + else + return cr.clamp_angle(end); + }; + cr.angleClockwise = function (a1, a2) + { + var s1 = Math.sin(a1); + var c1 = Math.cos(a1); + var s2 = Math.sin(a2); + var c2 = Math.cos(a2); + return c1 * s2 - s1 * c2 <= 0; + }; + cr.rotatePtAround = function (px, py, a, ox, oy, getx) + { + if (a === 0) + return getx ? px : py; + var sin_a = Math.sin(a); + var cos_a = Math.cos(a); + px -= ox; + py -= oy; + var left_sin_a = px * sin_a; + var top_sin_a = py * sin_a; + var left_cos_a = px * cos_a; + var top_cos_a = py * cos_a; + px = left_cos_a - top_sin_a; + py = top_cos_a + left_sin_a; + px += ox; + py += oy; + return getx ? px : py; + } + cr.distanceTo = function(x1, y1, x2, y2) + { + var dx = x2 - x1; + var dy = y2 - y1; + return Math.sqrt(dx*dx + dy*dy); + }; + cr.xor = function (x, y) + { + return !x !== !y; + }; + cr.lerp = function (a, b, x) + { + return a + (b - a) * x; + }; + cr.unlerp = function (a, b, c) + { + if (a === b) + return 0; // avoid divide by 0 + return (c - a) / (b - a); + }; + cr.anglelerp = function (a, b, x) + { + var diff = cr.angleDiff(a, b); + if (cr.angleClockwise(b, a)) + { + return a + diff * x; + } + else + { + return a - diff * x; + } + }; + cr.qarp = function (a, b, c, x) + { + return cr.lerp(cr.lerp(a, b, x), cr.lerp(b, c, x), x); + }; + cr.cubic = function (a, b, c, d, x) + { + return cr.lerp(cr.qarp(a, b, c, x), cr.qarp(b, c, d, x), x); + }; + cr.cosp = function (a, b, x) + { + return (a + b + (a - b) * Math.cos(x * Math.PI)) / 2; + }; + cr.hasAnyOwnProperty = function (o) + { + var p; + for (p in o) + { + if (o.hasOwnProperty(p)) + return true; + } + return false; + }; + cr.wipe = function (obj) + { + var p; + for (p in obj) + { + if (obj.hasOwnProperty(p)) + delete obj[p]; + } + }; + var startup_time = +(new Date()); + cr.performance_now = function() + { + if (typeof window["performance"] !== "undefined") + { + var winperf = window["performance"]; + if (typeof winperf.now !== "undefined") + return winperf.now(); + else if (typeof winperf["webkitNow"] !== "undefined") + return winperf["webkitNow"](); + else if (typeof winperf["mozNow"] !== "undefined") + return winperf["mozNow"](); + else if (typeof winperf["msNow"] !== "undefined") + return winperf["msNow"](); + } + return Date.now() - startup_time; + }; + var isChrome = false; + var isSafari = false; + var isiOS = false; + var isEjecta = false; + if (typeof window !== "undefined") // not c2 editor + { + isChrome = /chrome/i.test(navigator.userAgent) || /chromium/i.test(navigator.userAgent); + isSafari = !isChrome && /safari/i.test(navigator.userAgent); + isiOS = /(iphone|ipod|ipad)/i.test(navigator.userAgent); + isEjecta = window["c2ejecta"]; + } + var supports_set = ((!isSafari && !isEjecta && !isiOS) && (typeof Set !== "undefined" && typeof Set.prototype["forEach"] !== "undefined")); + function ObjectSet_() + { + this.s = null; + this.items = null; // lazy allocated (hopefully results in better GC performance) + this.item_count = 0; + if (supports_set) + { + this.s = new Set(); + } + this.values_cache = []; + this.cache_valid = true; + cr.seal(this); + }; + ObjectSet_.prototype.contains = function (x) + { + if (this.isEmpty()) + return false; + if (supports_set) + return this.s["has"](x); + else + return (this.items && this.items.hasOwnProperty(x)); + }; + ObjectSet_.prototype.add = function (x) + { + if (supports_set) + { + if (!this.s["has"](x)) + { + this.s["add"](x); + this.cache_valid = false; + } + } + else + { + var str = x.toString(); + var items = this.items; + if (!items) + { + this.items = {}; + this.items[str] = x; + this.item_count = 1; + this.cache_valid = false; + } + else if (!items.hasOwnProperty(str)) + { + items[str] = x; + this.item_count++; + this.cache_valid = false; + } + } + }; + ObjectSet_.prototype.remove = function (x) + { + if (this.isEmpty()) + return; + if (supports_set) + { + if (this.s["has"](x)) + { + this.s["delete"](x); + this.cache_valid = false; + } + } + else if (this.items) + { + var str = x.toString(); + var items = this.items; + if (items.hasOwnProperty(str)) + { + delete items[str]; + this.item_count--; + this.cache_valid = false; + } + } + }; + ObjectSet_.prototype.clear = function (/*wipe_*/) + { + if (this.isEmpty()) + return; + if (supports_set) + { + this.s["clear"](); // best! + } + else + { + this.items = null; // creates garbage; will lazy allocate on next add() + this.item_count = 0; + } + cr.clearArray(this.values_cache); + this.cache_valid = true; + }; + ObjectSet_.prototype.isEmpty = function () + { + return this.count() === 0; + }; + ObjectSet_.prototype.count = function () + { + if (supports_set) + return this.s["size"]; + else + return this.item_count; + }; + var current_arr = null; + var current_index = 0; + function set_append_to_arr(x) + { + current_arr[current_index++] = x; + }; + ObjectSet_.prototype.update_cache = function () + { + if (this.cache_valid) + return; + if (supports_set) + { + cr.clearArray(this.values_cache); + current_arr = this.values_cache; + current_index = 0; + this.s["forEach"](set_append_to_arr); +; + current_arr = null; + current_index = 0; + } + else + { + var values_cache = this.values_cache; + cr.clearArray(values_cache); + var p, n = 0, items = this.items; + if (items) + { + for (p in items) + { + if (items.hasOwnProperty(p)) + values_cache[n++] = items[p]; + } + } +; + } + this.cache_valid = true; + }; + ObjectSet_.prototype.valuesRef = function () + { + this.update_cache(); + return this.values_cache; + }; + cr.ObjectSet = ObjectSet_; + var tmpSet = new cr.ObjectSet(); + cr.removeArrayDuplicates = function (arr) + { + var i, len; + for (i = 0, len = arr.length; i < len; ++i) + { + tmpSet.add(arr[i]); + } + cr.shallowAssignArray(arr, tmpSet.valuesRef()); + tmpSet.clear(); + }; + cr.arrayRemoveAllFromObjectSet = function (arr, remset) + { + if (supports_set) + cr.arrayRemoveAll_set(arr, remset.s); + else + cr.arrayRemoveAll_arr(arr, remset.valuesRef()); + }; + cr.arrayRemoveAll_set = function (arr, s) + { + var i, j, len, item; + for (i = 0, j = 0, len = arr.length; i < len; ++i) + { + item = arr[i]; + if (!s["has"](item)) // not an item to remove + arr[j++] = item; // keep it + } + cr.truncateArray(arr, j); + }; + cr.arrayRemoveAll_arr = function (arr, rem) + { + var i, j, len, item; + for (i = 0, j = 0, len = arr.length; i < len; ++i) + { + item = arr[i]; + if (cr.fastIndexOf(rem, item) === -1) // not an item to remove + arr[j++] = item; // keep it + } + cr.truncateArray(arr, j); + }; + function KahanAdder_() + { + this.c = 0; + this.y = 0; + this.t = 0; + this.sum = 0; + cr.seal(this); + }; + KahanAdder_.prototype.add = function (v) + { + this.y = v - this.c; + this.t = this.sum + this.y; + this.c = (this.t - this.sum) - this.y; + this.sum = this.t; + }; + KahanAdder_.prototype.reset = function () + { + this.c = 0; + this.y = 0; + this.t = 0; + this.sum = 0; + }; + cr.KahanAdder = KahanAdder_; + cr.regexp_escape = function(text) + { + return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + }; + function CollisionPoly_(pts_array_) + { + this.pts_cache = []; + this.bboxLeft = 0; + this.bboxTop = 0; + this.bboxRight = 0; + this.bboxBottom = 0; + this.convexpolys = null; // for physics behavior to cache separated polys + this.set_pts(pts_array_); + cr.seal(this); + }; + CollisionPoly_.prototype.set_pts = function(pts_array_) + { + this.pts_array = pts_array_; + this.pts_count = pts_array_.length / 2; // x, y, x, y... in array + this.pts_cache.length = pts_array_.length; + this.cache_width = -1; + this.cache_height = -1; + this.cache_angle = 0; + }; + CollisionPoly_.prototype.is_empty = function() + { + return !this.pts_array.length; + }; + CollisionPoly_.prototype.update_bbox = function () + { + var myptscache = this.pts_cache; + var bboxLeft_ = myptscache[0]; + var bboxRight_ = bboxLeft_; + var bboxTop_ = myptscache[1]; + var bboxBottom_ = bboxTop_; + var x, y, i = 1, i2, len = this.pts_count; + for ( ; i < len; ++i) + { + i2 = i*2; + x = myptscache[i2]; + y = myptscache[i2+1]; + if (x < bboxLeft_) + bboxLeft_ = x; + if (x > bboxRight_) + bboxRight_ = x; + if (y < bboxTop_) + bboxTop_ = y; + if (y > bboxBottom_) + bboxBottom_ = y; + } + this.bboxLeft = bboxLeft_; + this.bboxRight = bboxRight_; + this.bboxTop = bboxTop_; + this.bboxBottom = bboxBottom_; + }; + CollisionPoly_.prototype.set_from_rect = function(rc, offx, offy) + { + this.pts_cache.length = 8; + this.pts_count = 4; + var myptscache = this.pts_cache; + myptscache[0] = rc.left - offx; + myptscache[1] = rc.top - offy; + myptscache[2] = rc.right - offx; + myptscache[3] = rc.top - offy; + myptscache[4] = rc.right - offx; + myptscache[5] = rc.bottom - offy; + myptscache[6] = rc.left - offx; + myptscache[7] = rc.bottom - offy; + this.cache_width = rc.right - rc.left; + this.cache_height = rc.bottom - rc.top; + this.update_bbox(); + }; + CollisionPoly_.prototype.set_from_quad = function(q, offx, offy, w, h) + { + this.pts_cache.length = 8; + this.pts_count = 4; + var myptscache = this.pts_cache; + myptscache[0] = q.tlx - offx; + myptscache[1] = q.tly - offy; + myptscache[2] = q.trx - offx; + myptscache[3] = q.try_ - offy; + myptscache[4] = q.brx - offx; + myptscache[5] = q.bry - offy; + myptscache[6] = q.blx - offx; + myptscache[7] = q.bly - offy; + this.cache_width = w; + this.cache_height = h; + this.update_bbox(); + }; + CollisionPoly_.prototype.set_from_poly = function (r) + { + this.pts_count = r.pts_count; + cr.shallowAssignArray(this.pts_cache, r.pts_cache); + this.bboxLeft = r.bboxLeft; + this.bboxTop = r.bboxTop; + this.bboxRight = r.bboxRight; + this.bboxBottom = r.bboxBottom; + }; + CollisionPoly_.prototype.cache_poly = function(w, h, a) + { + if (this.cache_width === w && this.cache_height === h && this.cache_angle === a) + return; // cache up-to-date + this.cache_width = w; + this.cache_height = h; + this.cache_angle = a; + var i, i2, i21, len, x, y; + var sina = 0; + var cosa = 1; + var myptsarray = this.pts_array; + var myptscache = this.pts_cache; + if (a !== 0) + { + sina = Math.sin(a); + cosa = Math.cos(a); + } + for (i = 0, len = this.pts_count; i < len; i++) + { + i2 = i*2; + i21 = i2+1; + x = myptsarray[i2] * w; + y = myptsarray[i21] * h; + myptscache[i2] = (x * cosa) - (y * sina); + myptscache[i21] = (y * cosa) + (x * sina); + } + this.update_bbox(); + }; + CollisionPoly_.prototype.contains_pt = function (a2x, a2y) + { + var myptscache = this.pts_cache; + if (a2x === myptscache[0] && a2y === myptscache[1]) + return true; + var i, i2, imod, len = this.pts_count; + var a1x = this.bboxLeft - 110; + var a1y = this.bboxTop - 101; + var a3x = this.bboxRight + 131 + var a3y = this.bboxBottom + 120; + var b1x, b1y, b2x, b2y; + var count1 = 0, count2 = 0; + for (i = 0; i < len; i++) + { + i2 = i*2; + imod = ((i+1)%len)*2; + b1x = myptscache[i2]; + b1y = myptscache[i2+1]; + b2x = myptscache[imod]; + b2y = myptscache[imod+1]; + if (cr.segments_intersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y)) + count1++; + if (cr.segments_intersect(a3x, a3y, a2x, a2y, b1x, b1y, b2x, b2y)) + count2++; + } + return (count1 % 2 === 1) || (count2 % 2 === 1); + }; + CollisionPoly_.prototype.intersects_poly = function (rhs, offx, offy) + { + var rhspts = rhs.pts_cache; + var mypts = this.pts_cache; + if (this.contains_pt(rhspts[0] + offx, rhspts[1] + offy)) + return true; + if (rhs.contains_pt(mypts[0] - offx, mypts[1] - offy)) + return true; + var i, i2, imod, leni, j, j2, jmod, lenj; + var a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y; + for (i = 0, leni = this.pts_count; i < leni; i++) + { + i2 = i*2; + imod = ((i+1)%leni)*2; + a1x = mypts[i2]; + a1y = mypts[i2+1]; + a2x = mypts[imod]; + a2y = mypts[imod+1]; + for (j = 0, lenj = rhs.pts_count; j < lenj; j++) + { + j2 = j*2; + jmod = ((j+1)%lenj)*2; + b1x = rhspts[j2] + offx; + b1y = rhspts[j2+1] + offy; + b2x = rhspts[jmod] + offx; + b2y = rhspts[jmod+1] + offy; + if (cr.segments_intersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y)) + return true; + } + } + return false; + }; + CollisionPoly_.prototype.intersects_segment = function (offx, offy, x1, y1, x2, y2) + { + var mypts = this.pts_cache; + if (this.contains_pt(x1 - offx, y1 - offy)) + return true; + var i, leni, i2, imod; + var a1x, a1y, a2x, a2y; + for (i = 0, leni = this.pts_count; i < leni; i++) + { + i2 = i*2; + imod = ((i+1)%leni)*2; + a1x = mypts[i2] + offx; + a1y = mypts[i2+1] + offy; + a2x = mypts[imod] + offx; + a2y = mypts[imod+1] + offy; + if (cr.segments_intersect(x1, y1, x2, y2, a1x, a1y, a2x, a2y)) + return true; + } + return false; + }; + CollisionPoly_.prototype.mirror = function (px) + { + var i, leni, i2; + for (i = 0, leni = this.pts_count; i < leni; ++i) + { + i2 = i*2; + this.pts_cache[i2] = px * 2 - this.pts_cache[i2]; + } + }; + CollisionPoly_.prototype.flip = function (py) + { + var i, leni, i21; + for (i = 0, leni = this.pts_count; i < leni; ++i) + { + i21 = i*2+1; + this.pts_cache[i21] = py * 2 - this.pts_cache[i21]; + } + }; + CollisionPoly_.prototype.diag = function () + { + var i, leni, i2, i21, temp; + for (i = 0, leni = this.pts_count; i < leni; ++i) + { + i2 = i*2; + i21 = i2+1; + temp = this.pts_cache[i2]; + this.pts_cache[i2] = this.pts_cache[i21]; + this.pts_cache[i21] = temp; + } + }; + cr.CollisionPoly = CollisionPoly_; + function SparseGrid_(cellwidth_, cellheight_) + { + this.cellwidth = cellwidth_; + this.cellheight = cellheight_; + this.cells = {}; + }; + SparseGrid_.prototype.totalCellCount = 0; + SparseGrid_.prototype.getCell = function (x_, y_, create_if_missing) + { + var ret; + var col = this.cells[x_]; + if (!col) + { + if (create_if_missing) + { + ret = allocGridCell(this, x_, y_); + this.cells[x_] = {}; + this.cells[x_][y_] = ret; + return ret; + } + else + return null; + } + ret = col[y_]; + if (ret) + return ret; + else if (create_if_missing) + { + ret = allocGridCell(this, x_, y_); + this.cells[x_][y_] = ret; + return ret; + } + else + return null; + }; + SparseGrid_.prototype.XToCell = function (x_) + { + return cr.floor(x_ / this.cellwidth); + }; + SparseGrid_.prototype.YToCell = function (y_) + { + return cr.floor(y_ / this.cellheight); + }; + SparseGrid_.prototype.update = function (inst, oldrange, newrange) + { + var x, lenx, y, leny, cell; + if (oldrange) + { + for (x = oldrange.left, lenx = oldrange.right; x <= lenx; ++x) + { + for (y = oldrange.top, leny = oldrange.bottom; y <= leny; ++y) + { + if (newrange && newrange.contains_pt(x, y)) + continue; // is still in this cell + cell = this.getCell(x, y, false); // don't create if missing + if (!cell) + continue; // cell does not exist yet + cell.remove(inst); + if (cell.isEmpty()) + { + freeGridCell(cell); + this.cells[x][y] = null; + } + } + } + } + if (newrange) + { + for (x = newrange.left, lenx = newrange.right; x <= lenx; ++x) + { + for (y = newrange.top, leny = newrange.bottom; y <= leny; ++y) + { + if (oldrange && oldrange.contains_pt(x, y)) + continue; // is still in this cell + this.getCell(x, y, true).insert(inst); + } + } + } + }; + SparseGrid_.prototype.queryRange = function (rc, result) + { + var x, lenx, ystart, y, leny, cell; + x = this.XToCell(rc.left); + ystart = this.YToCell(rc.top); + lenx = this.XToCell(rc.right); + leny = this.YToCell(rc.bottom); + for ( ; x <= lenx; ++x) + { + for (y = ystart; y <= leny; ++y) + { + cell = this.getCell(x, y, false); + if (!cell) + continue; + cell.dump(result); + } + } + }; + cr.SparseGrid = SparseGrid_; + function RenderGrid_(cellwidth_, cellheight_) + { + this.cellwidth = cellwidth_; + this.cellheight = cellheight_; + this.cells = {}; + }; + RenderGrid_.prototype.totalCellCount = 0; + RenderGrid_.prototype.getCell = function (x_, y_, create_if_missing) + { + var ret; + var col = this.cells[x_]; + if (!col) + { + if (create_if_missing) + { + ret = allocRenderCell(this, x_, y_); + this.cells[x_] = {}; + this.cells[x_][y_] = ret; + return ret; + } + else + return null; + } + ret = col[y_]; + if (ret) + return ret; + else if (create_if_missing) + { + ret = allocRenderCell(this, x_, y_); + this.cells[x_][y_] = ret; + return ret; + } + else + return null; + }; + RenderGrid_.prototype.XToCell = function (x_) + { + return cr.floor(x_ / this.cellwidth); + }; + RenderGrid_.prototype.YToCell = function (y_) + { + return cr.floor(y_ / this.cellheight); + }; + RenderGrid_.prototype.update = function (inst, oldrange, newrange) + { + var x, lenx, y, leny, cell; + if (oldrange) + { + for (x = oldrange.left, lenx = oldrange.right; x <= lenx; ++x) + { + for (y = oldrange.top, leny = oldrange.bottom; y <= leny; ++y) + { + if (newrange && newrange.contains_pt(x, y)) + continue; // is still in this cell + cell = this.getCell(x, y, false); // don't create if missing + if (!cell) + continue; // cell does not exist yet + cell.remove(inst); + if (cell.isEmpty()) + { + freeRenderCell(cell); + this.cells[x][y] = null; + } + } + } + } + if (newrange) + { + for (x = newrange.left, lenx = newrange.right; x <= lenx; ++x) + { + for (y = newrange.top, leny = newrange.bottom; y <= leny; ++y) + { + if (oldrange && oldrange.contains_pt(x, y)) + continue; // is still in this cell + this.getCell(x, y, true).insert(inst); + } + } + } + }; + RenderGrid_.prototype.queryRange = function (left, top, right, bottom, result) + { + var x, lenx, ystart, y, leny, cell; + x = this.XToCell(left); + ystart = this.YToCell(top); + lenx = this.XToCell(right); + leny = this.YToCell(bottom); + for ( ; x <= lenx; ++x) + { + for (y = ystart; y <= leny; ++y) + { + cell = this.getCell(x, y, false); + if (!cell) + continue; + cell.dump(result); + } + } + }; + RenderGrid_.prototype.markRangeChanged = function (rc) + { + var x, lenx, ystart, y, leny, cell; + x = rc.left; + ystart = rc.top; + lenx = rc.right; + leny = rc.bottom; + for ( ; x <= lenx; ++x) + { + for (y = ystart; y <= leny; ++y) + { + cell = this.getCell(x, y, false); + if (!cell) + continue; + cell.is_sorted = false; + } + } + }; + cr.RenderGrid = RenderGrid_; + var gridcellcache = []; + function allocGridCell(grid_, x_, y_) + { + var ret; + SparseGrid_.prototype.totalCellCount++; + if (gridcellcache.length) + { + ret = gridcellcache.pop(); + ret.grid = grid_; + ret.x = x_; + ret.y = y_; + return ret; + } + else + return new cr.GridCell(grid_, x_, y_); + }; + function freeGridCell(c) + { + SparseGrid_.prototype.totalCellCount--; + c.objects.clear(); + if (gridcellcache.length < 1000) + gridcellcache.push(c); + }; + function GridCell_(grid_, x_, y_) + { + this.grid = grid_; + this.x = x_; + this.y = y_; + this.objects = new cr.ObjectSet(); + }; + GridCell_.prototype.isEmpty = function () + { + return this.objects.isEmpty(); + }; + GridCell_.prototype.insert = function (inst) + { + this.objects.add(inst); + }; + GridCell_.prototype.remove = function (inst) + { + this.objects.remove(inst); + }; + GridCell_.prototype.dump = function (result) + { + cr.appendArray(result, this.objects.valuesRef()); + }; + cr.GridCell = GridCell_; + var rendercellcache = []; + function allocRenderCell(grid_, x_, y_) + { + var ret; + RenderGrid_.prototype.totalCellCount++; + if (rendercellcache.length) + { + ret = rendercellcache.pop(); + ret.grid = grid_; + ret.x = x_; + ret.y = y_; + return ret; + } + else + return new cr.RenderCell(grid_, x_, y_); + }; + function freeRenderCell(c) + { + RenderGrid_.prototype.totalCellCount--; + c.reset(); + if (rendercellcache.length < 1000) + rendercellcache.push(c); + }; + function RenderCell_(grid_, x_, y_) + { + this.grid = grid_; + this.x = x_; + this.y = y_; + this.objects = []; // array which needs to be sorted by Z order + this.is_sorted = true; // whether array is in correct sort order or not + this.pending_removal = new cr.ObjectSet(); + this.any_pending_removal = false; + }; + RenderCell_.prototype.isEmpty = function () + { + if (!this.objects.length) + { +; +; + return true; + } + if (this.objects.length > this.pending_removal.count()) + return false; +; + this.flush_pending(); // takes fast path and just resets state + return true; + }; + RenderCell_.prototype.insert = function (inst) + { + if (this.pending_removal.contains(inst)) + { + this.pending_removal.remove(inst); + if (this.pending_removal.isEmpty()) + this.any_pending_removal = false; + return; + } + if (this.objects.length) + { + var top = this.objects[this.objects.length - 1]; + if (top.get_zindex() > inst.get_zindex()) + this.is_sorted = false; // 'inst' should be somewhere beneath 'top' + this.objects.push(inst); + } + else + { + this.objects.push(inst); + this.is_sorted = true; + } +; + }; + RenderCell_.prototype.remove = function (inst) + { + this.pending_removal.add(inst); + this.any_pending_removal = true; + if (this.pending_removal.count() >= 30) + this.flush_pending(); + }; + RenderCell_.prototype.flush_pending = function () + { +; + if (!this.any_pending_removal) + return; // not changed + if (this.pending_removal.count() === this.objects.length) + { + this.reset(); + return; + } + cr.arrayRemoveAllFromObjectSet(this.objects, this.pending_removal); + this.pending_removal.clear(); + this.any_pending_removal = false; + }; + function sortByInstanceZIndex(a, b) + { + return a.zindex - b.zindex; + }; + RenderCell_.prototype.ensure_sorted = function () + { + if (this.is_sorted) + return; // already sorted + this.objects.sort(sortByInstanceZIndex); + this.is_sorted = true; + }; + RenderCell_.prototype.reset = function () + { + cr.clearArray(this.objects); + this.is_sorted = true; + this.pending_removal.clear(); + this.any_pending_removal = false; + }; + RenderCell_.prototype.dump = function (result) + { + this.flush_pending(); + this.ensure_sorted(); + if (this.objects.length) + result.push(this.objects); + }; + cr.RenderCell = RenderCell_; + var fxNames = [ "lighter", + "xor", + "copy", + "destination-over", + "source-in", + "destination-in", + "source-out", + "destination-out", + "source-atop", + "destination-atop"]; + cr.effectToCompositeOp = function(effect) + { + if (effect <= 0 || effect >= 11) + return "source-over"; + return fxNames[effect - 1]; // not including "none" so offset by 1 + }; + cr.setGLBlend = function(this_, effect, gl) + { + if (!gl) + return; + this_.srcBlend = gl.ONE; + this_.destBlend = gl.ONE_MINUS_SRC_ALPHA; + switch (effect) { + case 1: // lighter (additive) + this_.srcBlend = gl.ONE; + this_.destBlend = gl.ONE; + break; + case 2: // xor + break; // todo + case 3: // copy + this_.srcBlend = gl.ONE; + this_.destBlend = gl.ZERO; + break; + case 4: // destination-over + this_.srcBlend = gl.ONE_MINUS_DST_ALPHA; + this_.destBlend = gl.ONE; + break; + case 5: // source-in + this_.srcBlend = gl.DST_ALPHA; + this_.destBlend = gl.ZERO; + break; + case 6: // destination-in + this_.srcBlend = gl.ZERO; + this_.destBlend = gl.SRC_ALPHA; + break; + case 7: // source-out + this_.srcBlend = gl.ONE_MINUS_DST_ALPHA; + this_.destBlend = gl.ZERO; + break; + case 8: // destination-out + this_.srcBlend = gl.ZERO; + this_.destBlend = gl.ONE_MINUS_SRC_ALPHA; + break; + case 9: // source-atop + this_.srcBlend = gl.DST_ALPHA; + this_.destBlend = gl.ONE_MINUS_SRC_ALPHA; + break; + case 10: // destination-atop + this_.srcBlend = gl.ONE_MINUS_DST_ALPHA; + this_.destBlend = gl.SRC_ALPHA; + break; + } + }; + cr.round6dp = function (x) + { + return Math.round(x * 1000000) / 1000000; + }; + /* + var localeCompare_options = { + "usage": "search", + "sensitivity": "accent" + }; + var has_localeCompare = !!"a".localeCompare; + var localeCompare_works1 = (has_localeCompare && "a".localeCompare("A", undefined, localeCompare_options) === 0); + var localeCompare_works2 = (has_localeCompare && "a".localeCompare("รก", undefined, localeCompare_options) !== 0); + var supports_localeCompare = (has_localeCompare && localeCompare_works1 && localeCompare_works2); + */ + cr.equals_nocase = function (a, b) + { + if (typeof a !== "string" || typeof b !== "string") + return false; + if (a.length !== b.length) + return false; + if (a === b) + return true; + /* + if (supports_localeCompare) + { + return (a.localeCompare(b, undefined, localeCompare_options) === 0); + } + else + { + */ + return a.toLowerCase() === b.toLowerCase(); + }; + cr.isCanvasInputEvent = function (e) + { + var target = e.target; + if (!target) + return true; + if (target === document || target === window) + return true; + if (document && document.body && target === document.body) + return true; + if (cr.equals_nocase(target.tagName, "canvas")) + return true; + return false; + }; +}()); +var MatrixArray=typeof Float32Array!=="undefined"?Float32Array:Array,glMatrixArrayType=MatrixArray,vec3={},mat3={},mat4={},quat4={};vec3.create=function(a){var b=new MatrixArray(3);a&&(b[0]=a[0],b[1]=a[1],b[2]=a[2]);return b};vec3.set=function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];return b};vec3.add=function(a,b,c){if(!c||a===c)return a[0]+=b[0],a[1]+=b[1],a[2]+=b[2],a;c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];return c}; +vec3.subtract=function(a,b,c){if(!c||a===c)return a[0]-=b[0],a[1]-=b[1],a[2]-=b[2],a;c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];return c};vec3.negate=function(a,b){b||(b=a);b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];return b};vec3.scale=function(a,b,c){if(!c||a===c)return a[0]*=b,a[1]*=b,a[2]*=b,a;c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;return c}; +vec3.normalize=function(a,b){b||(b=a);var c=a[0],d=a[1],e=a[2],g=Math.sqrt(c*c+d*d+e*e);if(g){if(g===1)return b[0]=c,b[1]=d,b[2]=e,b}else return b[0]=0,b[1]=0,b[2]=0,b;g=1/g;b[0]=c*g;b[1]=d*g;b[2]=e*g;return b};vec3.cross=function(a,b,c){c||(c=a);var d=a[0],e=a[1],a=a[2],g=b[0],f=b[1],b=b[2];c[0]=e*b-a*f;c[1]=a*g-d*b;c[2]=d*f-e*g;return c};vec3.length=function(a){var b=a[0],c=a[1],a=a[2];return Math.sqrt(b*b+c*c+a*a)};vec3.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]}; +vec3.direction=function(a,b,c){c||(c=a);var d=a[0]-b[0],e=a[1]-b[1],a=a[2]-b[2],b=Math.sqrt(d*d+e*e+a*a);if(!b)return c[0]=0,c[1]=0,c[2]=0,c;b=1/b;c[0]=d*b;c[1]=e*b;c[2]=a*b;return c};vec3.lerp=function(a,b,c,d){d||(d=a);d[0]=a[0]+c*(b[0]-a[0]);d[1]=a[1]+c*(b[1]-a[1]);d[2]=a[2]+c*(b[2]-a[2]);return d};vec3.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+"]"}; +mat3.create=function(a){var b=new MatrixArray(9);a&&(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b[4]=a[4],b[5]=a[5],b[6]=a[6],b[7]=a[7],b[8]=a[8]);return b};mat3.set=function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];return b};mat3.identity=function(a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=1;a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a}; +mat3.transpose=function(a,b){if(!b||a===b){var c=a[1],d=a[2],e=a[5];a[1]=a[3];a[2]=a[6];a[3]=c;a[5]=a[7];a[6]=d;a[7]=e;return a}b[0]=a[0];b[1]=a[3];b[2]=a[6];b[3]=a[1];b[4]=a[4];b[5]=a[7];b[6]=a[2];b[7]=a[5];b[8]=a[8];return b};mat3.toMat4=function(a,b){b||(b=mat4.create());b[15]=1;b[14]=0;b[13]=0;b[12]=0;b[11]=0;b[10]=a[8];b[9]=a[7];b[8]=a[6];b[7]=0;b[6]=a[5];b[5]=a[4];b[4]=a[3];b[3]=0;b[2]=a[2];b[1]=a[1];b[0]=a[0];return b}; +mat3.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+"]"};mat4.create=function(a){var b=new MatrixArray(16);a&&(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b[4]=a[4],b[5]=a[5],b[6]=a[6],b[7]=a[7],b[8]=a[8],b[9]=a[9],b[10]=a[10],b[11]=a[11],b[12]=a[12],b[13]=a[13],b[14]=a[14],b[15]=a[15]);return b}; +mat4.set=function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return b};mat4.identity=function(a){a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a}; +mat4.transpose=function(a,b){if(!b||a===b){var c=a[1],d=a[2],e=a[3],g=a[6],f=a[7],h=a[11];a[1]=a[4];a[2]=a[8];a[3]=a[12];a[4]=c;a[6]=a[9];a[7]=a[13];a[8]=d;a[9]=g;a[11]=a[14];a[12]=e;a[13]=f;a[14]=h;return a}b[0]=a[0];b[1]=a[4];b[2]=a[8];b[3]=a[12];b[4]=a[1];b[5]=a[5];b[6]=a[9];b[7]=a[13];b[8]=a[2];b[9]=a[6];b[10]=a[10];b[11]=a[14];b[12]=a[3];b[13]=a[7];b[14]=a[11];b[15]=a[15];return b}; +mat4.determinant=function(a){var b=a[0],c=a[1],d=a[2],e=a[3],g=a[4],f=a[5],h=a[6],i=a[7],j=a[8],k=a[9],l=a[10],n=a[11],o=a[12],m=a[13],p=a[14],a=a[15];return o*k*h*e-j*m*h*e-o*f*l*e+g*m*l*e+j*f*p*e-g*k*p*e-o*k*d*i+j*m*d*i+o*c*l*i-b*m*l*i-j*c*p*i+b*k*p*i+o*f*d*n-g*m*d*n-o*c*h*n+b*m*h*n+g*c*p*n-b*f*p*n-j*f*d*a+g*k*d*a+j*c*h*a-b*k*h*a-g*c*l*a+b*f*l*a}; +mat4.inverse=function(a,b){b||(b=a);var c=a[0],d=a[1],e=a[2],g=a[3],f=a[4],h=a[5],i=a[6],j=a[7],k=a[8],l=a[9],n=a[10],o=a[11],m=a[12],p=a[13],r=a[14],s=a[15],A=c*h-d*f,B=c*i-e*f,t=c*j-g*f,u=d*i-e*h,v=d*j-g*h,w=e*j-g*i,x=k*p-l*m,y=k*r-n*m,z=k*s-o*m,C=l*r-n*p,D=l*s-o*p,E=n*s-o*r,q=1/(A*E-B*D+t*C+u*z-v*y+w*x);b[0]=(h*E-i*D+j*C)*q;b[1]=(-d*E+e*D-g*C)*q;b[2]=(p*w-r*v+s*u)*q;b[3]=(-l*w+n*v-o*u)*q;b[4]=(-f*E+i*z-j*y)*q;b[5]=(c*E-e*z+g*y)*q;b[6]=(-m*w+r*t-s*B)*q;b[7]=(k*w-n*t+o*B)*q;b[8]=(f*D-h*z+j*x)*q; +b[9]=(-c*D+d*z-g*x)*q;b[10]=(m*v-p*t+s*A)*q;b[11]=(-k*v+l*t-o*A)*q;b[12]=(-f*C+h*y-i*x)*q;b[13]=(c*C-d*y+e*x)*q;b[14]=(-m*u+p*B-r*A)*q;b[15]=(k*u-l*B+n*A)*q;return b};mat4.toRotationMat=function(a,b){b||(b=mat4.create());b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b}; +mat4.toMat3=function(a,b){b||(b=mat3.create());b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[4];b[4]=a[5];b[5]=a[6];b[6]=a[8];b[7]=a[9];b[8]=a[10];return b};mat4.toInverseMat3=function(a,b){var c=a[0],d=a[1],e=a[2],g=a[4],f=a[5],h=a[6],i=a[8],j=a[9],k=a[10],l=k*f-h*j,n=-k*g+h*i,o=j*g-f*i,m=c*l+d*n+e*o;if(!m)return null;m=1/m;b||(b=mat3.create());b[0]=l*m;b[1]=(-k*d+e*j)*m;b[2]=(h*d-e*f)*m;b[3]=n*m;b[4]=(k*c-e*i)*m;b[5]=(-h*c+e*g)*m;b[6]=o*m;b[7]=(-j*c+d*i)*m;b[8]=(f*c-d*g)*m;return b}; +mat4.multiply=function(a,b,c){c||(c=a);var d=a[0],e=a[1],g=a[2],f=a[3],h=a[4],i=a[5],j=a[6],k=a[7],l=a[8],n=a[9],o=a[10],m=a[11],p=a[12],r=a[13],s=a[14],a=a[15],A=b[0],B=b[1],t=b[2],u=b[3],v=b[4],w=b[5],x=b[6],y=b[7],z=b[8],C=b[9],D=b[10],E=b[11],q=b[12],F=b[13],G=b[14],b=b[15];c[0]=A*d+B*h+t*l+u*p;c[1]=A*e+B*i+t*n+u*r;c[2]=A*g+B*j+t*o+u*s;c[3]=A*f+B*k+t*m+u*a;c[4]=v*d+w*h+x*l+y*p;c[5]=v*e+w*i+x*n+y*r;c[6]=v*g+w*j+x*o+y*s;c[7]=v*f+w*k+x*m+y*a;c[8]=z*d+C*h+D*l+E*p;c[9]=z*e+C*i+D*n+E*r;c[10]=z*g+C* +j+D*o+E*s;c[11]=z*f+C*k+D*m+E*a;c[12]=q*d+F*h+G*l+b*p;c[13]=q*e+F*i+G*n+b*r;c[14]=q*g+F*j+G*o+b*s;c[15]=q*f+F*k+G*m+b*a;return c};mat4.multiplyVec3=function(a,b,c){c||(c=b);var d=b[0],e=b[1],b=b[2];c[0]=a[0]*d+a[4]*e+a[8]*b+a[12];c[1]=a[1]*d+a[5]*e+a[9]*b+a[13];c[2]=a[2]*d+a[6]*e+a[10]*b+a[14];return c}; +mat4.multiplyVec4=function(a,b,c){c||(c=b);var d=b[0],e=b[1],g=b[2],b=b[3];c[0]=a[0]*d+a[4]*e+a[8]*g+a[12]*b;c[1]=a[1]*d+a[5]*e+a[9]*g+a[13]*b;c[2]=a[2]*d+a[6]*e+a[10]*g+a[14]*b;c[3]=a[3]*d+a[7]*e+a[11]*g+a[15]*b;return c}; +mat4.translate=function(a,b,c){var d=b[0],e=b[1],b=b[2],g,f,h,i,j,k,l,n,o,m,p,r;if(!c||a===c)return a[12]=a[0]*d+a[4]*e+a[8]*b+a[12],a[13]=a[1]*d+a[5]*e+a[9]*b+a[13],a[14]=a[2]*d+a[6]*e+a[10]*b+a[14],a[15]=a[3]*d+a[7]*e+a[11]*b+a[15],a;g=a[0];f=a[1];h=a[2];i=a[3];j=a[4];k=a[5];l=a[6];n=a[7];o=a[8];m=a[9];p=a[10];r=a[11];c[0]=g;c[1]=f;c[2]=h;c[3]=i;c[4]=j;c[5]=k;c[6]=l;c[7]=n;c[8]=o;c[9]=m;c[10]=p;c[11]=r;c[12]=g*d+j*e+o*b+a[12];c[13]=f*d+k*e+m*b+a[13];c[14]=h*d+l*e+p*b+a[14];c[15]=i*d+n*e+r*b+a[15]; +return c};mat4.scale=function(a,b,c){var d=b[0],e=b[1],b=b[2];if(!c||a===c)return a[0]*=d,a[1]*=d,a[2]*=d,a[3]*=d,a[4]*=e,a[5]*=e,a[6]*=e,a[7]*=e,a[8]*=b,a[9]*=b,a[10]*=b,a[11]*=b,a;c[0]=a[0]*d;c[1]=a[1]*d;c[2]=a[2]*d;c[3]=a[3]*d;c[4]=a[4]*e;c[5]=a[5]*e;c[6]=a[6]*e;c[7]=a[7]*e;c[8]=a[8]*b;c[9]=a[9]*b;c[10]=a[10]*b;c[11]=a[11]*b;c[12]=a[12];c[13]=a[13];c[14]=a[14];c[15]=a[15];return c}; +mat4.rotate=function(a,b,c,d){var e=c[0],g=c[1],c=c[2],f=Math.sqrt(e*e+g*g+c*c),h,i,j,k,l,n,o,m,p,r,s,A,B,t,u,v,w,x,y,z;if(!f)return null;f!==1&&(f=1/f,e*=f,g*=f,c*=f);h=Math.sin(b);i=Math.cos(b);j=1-i;b=a[0];f=a[1];k=a[2];l=a[3];n=a[4];o=a[5];m=a[6];p=a[7];r=a[8];s=a[9];A=a[10];B=a[11];t=e*e*j+i;u=g*e*j+c*h;v=c*e*j-g*h;w=e*g*j-c*h;x=g*g*j+i;y=c*g*j+e*h;z=e*c*j+g*h;e=g*c*j-e*h;g=c*c*j+i;d?a!==d&&(d[12]=a[12],d[13]=a[13],d[14]=a[14],d[15]=a[15]):d=a;d[0]=b*t+n*u+r*v;d[1]=f*t+o*u+s*v;d[2]=k*t+m*u+A* +v;d[3]=l*t+p*u+B*v;d[4]=b*w+n*x+r*y;d[5]=f*w+o*x+s*y;d[6]=k*w+m*x+A*y;d[7]=l*w+p*x+B*y;d[8]=b*z+n*e+r*g;d[9]=f*z+o*e+s*g;d[10]=k*z+m*e+A*g;d[11]=l*z+p*e+B*g;return d};mat4.rotateX=function(a,b,c){var d=Math.sin(b),b=Math.cos(b),e=a[4],g=a[5],f=a[6],h=a[7],i=a[8],j=a[9],k=a[10],l=a[11];c?a!==c&&(c[0]=a[0],c[1]=a[1],c[2]=a[2],c[3]=a[3],c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=a[15]):c=a;c[4]=e*b+i*d;c[5]=g*b+j*d;c[6]=f*b+k*d;c[7]=h*b+l*d;c[8]=e*-d+i*b;c[9]=g*-d+j*b;c[10]=f*-d+k*b;c[11]=h*-d+l*b;return c}; +mat4.rotateY=function(a,b,c){var d=Math.sin(b),b=Math.cos(b),e=a[0],g=a[1],f=a[2],h=a[3],i=a[8],j=a[9],k=a[10],l=a[11];c?a!==c&&(c[4]=a[4],c[5]=a[5],c[6]=a[6],c[7]=a[7],c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=a[15]):c=a;c[0]=e*b+i*-d;c[1]=g*b+j*-d;c[2]=f*b+k*-d;c[3]=h*b+l*-d;c[8]=e*d+i*b;c[9]=g*d+j*b;c[10]=f*d+k*b;c[11]=h*d+l*b;return c}; +mat4.rotateZ=function(a,b,c){var d=Math.sin(b),b=Math.cos(b),e=a[0],g=a[1],f=a[2],h=a[3],i=a[4],j=a[5],k=a[6],l=a[7];c?a!==c&&(c[8]=a[8],c[9]=a[9],c[10]=a[10],c[11]=a[11],c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=a[15]):c=a;c[0]=e*b+i*d;c[1]=g*b+j*d;c[2]=f*b+k*d;c[3]=h*b+l*d;c[4]=e*-d+i*b;c[5]=g*-d+j*b;c[6]=f*-d+k*b;c[7]=h*-d+l*b;return c}; +mat4.frustum=function(a,b,c,d,e,g,f){f||(f=mat4.create());var h=b-a,i=d-c,j=g-e;f[0]=e*2/h;f[1]=0;f[2]=0;f[3]=0;f[4]=0;f[5]=e*2/i;f[6]=0;f[7]=0;f[8]=(b+a)/h;f[9]=(d+c)/i;f[10]=-(g+e)/j;f[11]=-1;f[12]=0;f[13]=0;f[14]=-(g*e*2)/j;f[15]=0;return f};mat4.perspective=function(a,b,c,d,e){a=c*Math.tan(a*Math.PI/360);b*=a;return mat4.frustum(-b,b,-a,a,c,d,e)}; +mat4.ortho=function(a,b,c,d,e,g,f){f||(f=mat4.create());var h=b-a,i=d-c,j=g-e;f[0]=2/h;f[1]=0;f[2]=0;f[3]=0;f[4]=0;f[5]=2/i;f[6]=0;f[7]=0;f[8]=0;f[9]=0;f[10]=-2/j;f[11]=0;f[12]=-(a+b)/h;f[13]=-(d+c)/i;f[14]=-(g+e)/j;f[15]=1;return f}; +mat4.lookAt=function(a,b,c,d){d||(d=mat4.create());var e,g,f,h,i,j,k,l,n=a[0],o=a[1],a=a[2];g=c[0];f=c[1];e=c[2];c=b[1];j=b[2];if(n===b[0]&&o===c&&a===j)return mat4.identity(d);c=n-b[0];j=o-b[1];k=a-b[2];l=1/Math.sqrt(c*c+j*j+k*k);c*=l;j*=l;k*=l;b=f*k-e*j;e=e*c-g*k;g=g*j-f*c;(l=Math.sqrt(b*b+e*e+g*g))?(l=1/l,b*=l,e*=l,g*=l):g=e=b=0;f=j*g-k*e;h=k*b-c*g;i=c*e-j*b;(l=Math.sqrt(f*f+h*h+i*i))?(l=1/l,f*=l,h*=l,i*=l):i=h=f=0;d[0]=b;d[1]=f;d[2]=c;d[3]=0;d[4]=e;d[5]=h;d[6]=j;d[7]=0;d[8]=g;d[9]=i;d[10]=k;d[11]= +0;d[12]=-(b*n+e*o+g*a);d[13]=-(f*n+h*o+i*a);d[14]=-(c*n+j*o+k*a);d[15]=1;return d};mat4.fromRotationTranslation=function(a,b,c){c||(c=mat4.create());var d=a[0],e=a[1],g=a[2],f=a[3],h=d+d,i=e+e,j=g+g,a=d*h,k=d*i;d*=j;var l=e*i;e*=j;g*=j;h*=f;i*=f;f*=j;c[0]=1-(l+g);c[1]=k+f;c[2]=d-i;c[3]=0;c[4]=k-f;c[5]=1-(a+g);c[6]=e+h;c[7]=0;c[8]=d+i;c[9]=e-h;c[10]=1-(a+l);c[11]=0;c[12]=b[0];c[13]=b[1];c[14]=b[2];c[15]=1;return c}; +mat4.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+a[10]+", "+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+"]"};quat4.create=function(a){var b=new MatrixArray(4);a&&(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3]);return b};quat4.set=function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];return b}; +quat4.calculateW=function(a,b){var c=a[0],d=a[1],e=a[2];if(!b||a===b)return a[3]=-Math.sqrt(Math.abs(1-c*c-d*d-e*e)),a;b[0]=c;b[1]=d;b[2]=e;b[3]=-Math.sqrt(Math.abs(1-c*c-d*d-e*e));return b};quat4.inverse=function(a,b){if(!b||a===b)return a[0]*=-1,a[1]*=-1,a[2]*=-1,a;b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];b[3]=a[3];return b};quat4.length=function(a){var b=a[0],c=a[1],d=a[2],a=a[3];return Math.sqrt(b*b+c*c+d*d+a*a)}; +quat4.normalize=function(a,b){b||(b=a);var c=a[0],d=a[1],e=a[2],g=a[3],f=Math.sqrt(c*c+d*d+e*e+g*g);if(f===0)return b[0]=0,b[1]=0,b[2]=0,b[3]=0,b;f=1/f;b[0]=c*f;b[1]=d*f;b[2]=e*f;b[3]=g*f;return b};quat4.multiply=function(a,b,c){c||(c=a);var d=a[0],e=a[1],g=a[2],a=a[3],f=b[0],h=b[1],i=b[2],b=b[3];c[0]=d*b+a*f+e*i-g*h;c[1]=e*b+a*h+g*f-d*i;c[2]=g*b+a*i+d*h-e*f;c[3]=a*b-d*f-e*h-g*i;return c}; +quat4.multiplyVec3=function(a,b,c){c||(c=b);var d=b[0],e=b[1],g=b[2],b=a[0],f=a[1],h=a[2],a=a[3],i=a*d+f*g-h*e,j=a*e+h*d-b*g,k=a*g+b*e-f*d,d=-b*d-f*e-h*g;c[0]=i*a+d*-b+j*-h-k*-f;c[1]=j*a+d*-f+k*-b-i*-h;c[2]=k*a+d*-h+i*-f-j*-b;return c};quat4.toMat3=function(a,b){b||(b=mat3.create());var c=a[0],d=a[1],e=a[2],g=a[3],f=c+c,h=d+d,i=e+e,j=c*f,k=c*h;c*=i;var l=d*h;d*=i;e*=i;f*=g;h*=g;g*=i;b[0]=1-(l+e);b[1]=k+g;b[2]=c-h;b[3]=k-g;b[4]=1-(j+e);b[5]=d+f;b[6]=c+h;b[7]=d-f;b[8]=1-(j+l);return b}; +quat4.toMat4=function(a,b){b||(b=mat4.create());var c=a[0],d=a[1],e=a[2],g=a[3],f=c+c,h=d+d,i=e+e,j=c*f,k=c*h;c*=i;var l=d*h;d*=i;e*=i;f*=g;h*=g;g*=i;b[0]=1-(l+e);b[1]=k+g;b[2]=c-h;b[3]=0;b[4]=k-g;b[5]=1-(j+e);b[6]=d+f;b[7]=0;b[8]=c+h;b[9]=d-f;b[10]=1-(j+l);b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b}; +quat4.slerp=function(a,b,c,d){d||(d=a);var e=a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3],g,f;if(Math.abs(e)>=1)return d!==a&&(d[0]=a[0],d[1]=a[1],d[2]=a[2],d[3]=a[3]),d;g=Math.acos(e);f=Math.sqrt(1-e*e);if(Math.abs(f)<0.001)return d[0]=a[0]*0.5+b[0]*0.5,d[1]=a[1]*0.5+b[1]*0.5,d[2]=a[2]*0.5+b[2]*0.5,d[3]=a[3]*0.5+b[3]*0.5,d;e=Math.sin((1-c)*g)/f;c=Math.sin(c*g)/f;d[0]=a[0]*e+b[0]*c;d[1]=a[1]*e+b[1]*c;d[2]=a[2]*e+b[2]*c;d[3]=a[3]*e+b[3]*c;return d}; +quat4.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"}; +(function() +{ + var MAX_VERTICES = 8000; // equates to 2500 objects being drawn + var MAX_INDICES = (MAX_VERTICES / 2) * 3; // 6 indices for every 4 vertices + var MAX_POINTS = 8000; + var MULTI_BUFFERS = 4; // cycle 4 buffers to try and avoid blocking + var BATCH_NULL = 0; + var BATCH_QUAD = 1; + var BATCH_SETTEXTURE = 2; + var BATCH_SETOPACITY = 3; + var BATCH_SETBLEND = 4; + var BATCH_UPDATEMODELVIEW = 5; + var BATCH_RENDERTOTEXTURE = 6; + var BATCH_CLEAR = 7; + var BATCH_POINTS = 8; + var BATCH_SETPROGRAM = 9; + var BATCH_SETPROGRAMPARAMETERS = 10; + var BATCH_SETTEXTURE1 = 11; + var BATCH_SETCOLOR = 12; + var BATCH_SETDEPTHTEST = 13; + var BATCH_SETEARLYZMODE = 14; + /* + var lose_ext = null; + window.lose_context = function () + { + if (!lose_ext) + { + console.log("WEBGL_lose_context not supported"); + return; + } + lose_ext.loseContext(); + }; + window.restore_context = function () + { + if (!lose_ext) + { + console.log("WEBGL_lose_context not supported"); + return; + } + lose_ext.restoreContext(); + }; + */ + var tempMat4 = mat4.create(); + function GLWrap_(gl, isMobile, enableFrontToBack) + { + this.isIE = /msie/i.test(navigator.userAgent) || /trident/i.test(navigator.userAgent); + this.width = 0; // not yet known, wait for call to setSize() + this.height = 0; + this.enableFrontToBack = !!enableFrontToBack; + this.isEarlyZPass = false; + this.isBatchInEarlyZPass = false; + this.currentZ = 0; + this.zNear = 1; + this.zFar = 1000; + this.zIncrement = ((this.zFar - this.zNear) / 32768); + this.zA = this.zFar / (this.zFar - this.zNear); + this.zB = this.zFar * this.zNear / (this.zNear - this.zFar); + this.kzA = 65536 * this.zA; + this.kzB = 65536 * this.zB; + this.cam = vec3.create([0, 0, 100]); // camera position + this.look = vec3.create([0, 0, 0]); // lookat position + this.up = vec3.create([0, 1, 0]); // up vector + this.worldScale = vec3.create([1, 1, 1]); // world scaling factor + this.enable_mipmaps = true; + this.matP = mat4.create(); // perspective matrix + this.matMV = mat4.create(); // model view matrix + this.lastMV = mat4.create(); + this.currentMV = mat4.create(); + this.gl = gl; + this.version = (this.gl.getParameter(this.gl.VERSION).indexOf("WebGL 2") === 0 ? 2 : 1); + this.initState(); + }; + GLWrap_.prototype.initState = function () + { + var gl = this.gl; + var i, len; + this.lastOpacity = 1; + this.lastTexture0 = null; // last bound to TEXTURE0 + this.lastTexture1 = null; // last bound to TEXTURE1 + this.currentOpacity = 1; + gl.clearColor(0, 0, 0, 0); + gl.clear(gl.COLOR_BUFFER_BIT); + gl.enable(gl.BLEND); + gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); + gl.disable(gl.CULL_FACE); + gl.disable(gl.STENCIL_TEST); + gl.disable(gl.DITHER); + if (this.enableFrontToBack) + { + gl.enable(gl.DEPTH_TEST); + gl.depthFunc(gl.LEQUAL); + } + else + { + gl.disable(gl.DEPTH_TEST); + } + this.maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE); + this.lastSrcBlend = gl.ONE; + this.lastDestBlend = gl.ONE_MINUS_SRC_ALPHA; + this.vertexData = new Float32Array(MAX_VERTICES * (this.enableFrontToBack ? 3 : 2)); + this.texcoordData = new Float32Array(MAX_VERTICES * 2); + this.pointData = new Float32Array(MAX_POINTS * 4); + this.pointBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, this.pointBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.pointData.byteLength, gl.DYNAMIC_DRAW); + this.vertexBuffers = new Array(MULTI_BUFFERS); + this.texcoordBuffers = new Array(MULTI_BUFFERS); + for (i = 0; i < MULTI_BUFFERS; i++) + { + this.vertexBuffers[i] = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffers[i]); + gl.bufferData(gl.ARRAY_BUFFER, this.vertexData.byteLength, gl.DYNAMIC_DRAW); + this.texcoordBuffers[i] = gl.createBuffer(); + gl.bindBuffer(gl.ARRAY_BUFFER, this.texcoordBuffers[i]); + gl.bufferData(gl.ARRAY_BUFFER, this.texcoordData.byteLength, gl.DYNAMIC_DRAW); + } + this.curBuffer = 0; + this.indexBuffer = gl.createBuffer(); + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexBuffer); + var indexData = new Uint16Array(MAX_INDICES); + i = 0, len = MAX_INDICES; + var fv = 0; + while (i < len) + { + indexData[i++] = fv; // top left + indexData[i++] = fv + 1; // top right + indexData[i++] = fv + 2; // bottom right (first tri) + indexData[i++] = fv; // top left + indexData[i++] = fv + 2; // bottom right + indexData[i++] = fv + 3; // bottom left + fv += 4; + } + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indexData, gl.STATIC_DRAW); + this.vertexPtr = 0; + this.texPtr = 0; + this.pointPtr = 0; + var fsSource, vsSource; + this.shaderPrograms = []; + fsSource = [ + "varying mediump vec2 vTex;", + "uniform lowp float opacity;", + "uniform lowp sampler2D samplerFront;", + "void main(void) {", + " gl_FragColor = texture2D(samplerFront, vTex);", + " gl_FragColor *= opacity;", + "}" + ].join("\n"); + if (this.enableFrontToBack) + { + vsSource = [ + "attribute highp vec3 aPos;", + "attribute mediump vec2 aTex;", + "varying mediump vec2 vTex;", + "uniform highp mat4 matP;", + "uniform highp mat4 matMV;", + "void main(void) {", + " gl_Position = matP * matMV * vec4(aPos.x, aPos.y, aPos.z, 1.0);", + " vTex = aTex;", + "}" + ].join("\n"); + } + else + { + vsSource = [ + "attribute highp vec2 aPos;", + "attribute mediump vec2 aTex;", + "varying mediump vec2 vTex;", + "uniform highp mat4 matP;", + "uniform highp mat4 matMV;", + "void main(void) {", + " gl_Position = matP * matMV * vec4(aPos.x, aPos.y, 0.0, 1.0);", + " vTex = aTex;", + "}" + ].join("\n"); + } + var shaderProg = this.createShaderProgram({src: fsSource}, vsSource, ""); +; + this.shaderPrograms.push(shaderProg); // Default shader is always shader 0 + fsSource = [ + "uniform mediump sampler2D samplerFront;", + "varying lowp float opacity;", + "void main(void) {", + " gl_FragColor = texture2D(samplerFront, gl_PointCoord);", + " gl_FragColor *= opacity;", + "}" + ].join("\n"); + var pointVsSource = [ + "attribute vec4 aPos;", + "varying float opacity;", + "uniform mat4 matP;", + "uniform mat4 matMV;", + "void main(void) {", + " gl_Position = matP * matMV * vec4(aPos.x, aPos.y, 0.0, 1.0);", + " gl_PointSize = aPos.z;", + " opacity = aPos.w;", + "}" + ].join("\n"); + shaderProg = this.createShaderProgram({src: fsSource}, pointVsSource, ""); +; + this.shaderPrograms.push(shaderProg); // Point shader is always shader 1 + fsSource = [ + "varying mediump vec2 vTex;", + "uniform lowp sampler2D samplerFront;", + "void main(void) {", + " if (texture2D(samplerFront, vTex).a < 1.0)", + " discard;", // discarding non-opaque fragments + "}" + ].join("\n"); + var shaderProg = this.createShaderProgram({src: fsSource}, vsSource, ""); +; + this.shaderPrograms.push(shaderProg); // Early-Z shader is always shader 2 + fsSource = [ + "uniform lowp vec4 colorFill;", + "void main(void) {", + " gl_FragColor = colorFill;", + "}" + ].join("\n"); + var shaderProg = this.createShaderProgram({src: fsSource}, vsSource, ""); +; + this.shaderPrograms.push(shaderProg); // Fill-color shader is always shader 3 + for (var shader_name in cr.shaders) + { + if (cr.shaders.hasOwnProperty(shader_name)) + this.shaderPrograms.push(this.createShaderProgram(cr.shaders[shader_name], vsSource, shader_name)); + } + gl.activeTexture(gl.TEXTURE0); + gl.bindTexture(gl.TEXTURE_2D, null); + this.batch = []; + this.batchPtr = 0; + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + this.lastProgram = -1; // start -1 so first switchProgram can do work + this.currentProgram = -1; // current program during batch execution + this.currentShader = null; + this.fbo = gl.createFramebuffer(); + this.renderToTex = null; + this.depthBuffer = null; + this.attachedDepthBuffer = false; // wait until first size call to attach, otherwise it has no storage + if (this.enableFrontToBack) + { + this.depthBuffer = gl.createRenderbuffer(); + } + this.tmpVec3 = vec3.create([0, 0, 0]); +; + var pointsizes = gl.getParameter(gl.ALIASED_POINT_SIZE_RANGE); + this.minPointSize = pointsizes[0]; + this.maxPointSize = pointsizes[1]; + if (this.maxPointSize > 2048) + this.maxPointSize = 2048; +; + this.switchProgram(0); + cr.seal(this); + }; + function GLShaderProgram(gl, shaderProgram, name) + { + this.gl = gl; + this.shaderProgram = shaderProgram; + this.name = name; + this.locAPos = gl.getAttribLocation(shaderProgram, "aPos"); + this.locATex = gl.getAttribLocation(shaderProgram, "aTex"); + this.locMatP = gl.getUniformLocation(shaderProgram, "matP"); + this.locMatMV = gl.getUniformLocation(shaderProgram, "matMV"); + this.locOpacity = gl.getUniformLocation(shaderProgram, "opacity"); + this.locColorFill = gl.getUniformLocation(shaderProgram, "colorFill"); + this.locSamplerFront = gl.getUniformLocation(shaderProgram, "samplerFront"); + this.locSamplerBack = gl.getUniformLocation(shaderProgram, "samplerBack"); + this.locDestStart = gl.getUniformLocation(shaderProgram, "destStart"); + this.locDestEnd = gl.getUniformLocation(shaderProgram, "destEnd"); + this.locSeconds = gl.getUniformLocation(shaderProgram, "seconds"); + this.locPixelWidth = gl.getUniformLocation(shaderProgram, "pixelWidth"); + this.locPixelHeight = gl.getUniformLocation(shaderProgram, "pixelHeight"); + this.locLayerScale = gl.getUniformLocation(shaderProgram, "layerScale"); + this.locLayerAngle = gl.getUniformLocation(shaderProgram, "layerAngle"); + this.locViewOrigin = gl.getUniformLocation(shaderProgram, "viewOrigin"); + this.locScrollPos = gl.getUniformLocation(shaderProgram, "scrollPos"); + this.hasAnyOptionalUniforms = !!(this.locPixelWidth || this.locPixelHeight || this.locSeconds || this.locSamplerBack || this.locDestStart || this.locDestEnd || this.locLayerScale || this.locLayerAngle || this.locViewOrigin || this.locScrollPos); + this.lpPixelWidth = -999; // set to something unlikely so never counts as cached on first set + this.lpPixelHeight = -999; + this.lpOpacity = 1; + this.lpDestStartX = 0.0; + this.lpDestStartY = 0.0; + this.lpDestEndX = 1.0; + this.lpDestEndY = 1.0; + this.lpLayerScale = 1.0; + this.lpLayerAngle = 0.0; + this.lpViewOriginX = 0.0; + this.lpViewOriginY = 0.0; + this.lpScrollPosX = 0.0; + this.lpScrollPosY = 0.0; + this.lpSeconds = 0.0; + this.lastCustomParams = []; + this.lpMatMV = mat4.create(); + if (this.locOpacity) + gl.uniform1f(this.locOpacity, 1); + if (this.locColorFill) + gl.uniform4f(this.locColorFill, 1.0, 1.0, 1.0, 1.0); + if (this.locSamplerFront) + gl.uniform1i(this.locSamplerFront, 0); + if (this.locSamplerBack) + gl.uniform1i(this.locSamplerBack, 1); + if (this.locDestStart) + gl.uniform2f(this.locDestStart, 0.0, 0.0); + if (this.locDestEnd) + gl.uniform2f(this.locDestEnd, 1.0, 1.0); + if (this.locLayerScale) + gl.uniform1f(this.locLayerScale, 1.0); + if (this.locLayerAngle) + gl.uniform1f(this.locLayerAngle, 0.0); + if (this.locViewOrigin) + gl.uniform2f(this.locViewOrigin, 0.0, 0.0); + if (this.locScrollPos) + gl.uniform2f(this.locScrollPos, 0.0, 0.0); + if (this.locSeconds) + gl.uniform1f(this.locSeconds, 0.0); + this.hasCurrentMatMV = false; // matMV needs updating + }; + function areMat4sEqual(a, b) + { + return a[0]===b[0]&&a[1]===b[1]&&a[2]===b[2]&&a[3]===b[3]&& + a[4]===b[4]&&a[5]===b[5]&&a[6]===b[6]&&a[7]===b[7]&& + a[8]===b[8]&&a[9]===b[9]&&a[10]===b[10]&&a[11]===b[11]&& + a[12]===b[12]&&a[13]===b[13]&&a[14]===b[14]&&a[15]===b[15]; + }; + GLShaderProgram.prototype.updateMatMV = function (mv) + { + if (areMat4sEqual(this.lpMatMV, mv)) + return; // no change, save the expensive GL call + mat4.set(mv, this.lpMatMV); + this.gl.uniformMatrix4fv(this.locMatMV, false, mv); + }; + GLWrap_.prototype.createShaderProgram = function(shaderEntry, vsSource, name) + { + var gl = this.gl; + var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER); + gl.shaderSource(fragmentShader, shaderEntry.src); + gl.compileShader(fragmentShader); + if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) + { + var compilationlog = gl.getShaderInfoLog(fragmentShader); + gl.deleteShader(fragmentShader); + throw new Error("error compiling fragment shader: " + compilationlog); + } + var vertexShader = gl.createShader(gl.VERTEX_SHADER); + gl.shaderSource(vertexShader, vsSource); + gl.compileShader(vertexShader); + if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) + { + var compilationlog = gl.getShaderInfoLog(vertexShader); + gl.deleteShader(fragmentShader); + gl.deleteShader(vertexShader); + throw new Error("error compiling vertex shader: " + compilationlog); + } + var shaderProgram = gl.createProgram(); + gl.attachShader(shaderProgram, fragmentShader); + gl.attachShader(shaderProgram, vertexShader); + gl.linkProgram(shaderProgram); + if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) + { + var compilationlog = gl.getProgramInfoLog(shaderProgram); + gl.deleteShader(fragmentShader); + gl.deleteShader(vertexShader); + gl.deleteProgram(shaderProgram); + throw new Error("error linking shader program: " + compilationlog); + } + gl.useProgram(shaderProgram); + gl.deleteShader(fragmentShader); + gl.deleteShader(vertexShader); + var ret = new GLShaderProgram(gl, shaderProgram, name); + ret.extendBoxHorizontal = shaderEntry.extendBoxHorizontal || 0; + ret.extendBoxVertical = shaderEntry.extendBoxVertical || 0; + ret.crossSampling = !!shaderEntry.crossSampling; + ret.preservesOpaqueness = !!shaderEntry.preservesOpaqueness; + ret.animated = !!shaderEntry.animated; + ret.parameters = shaderEntry.parameters || []; + var i, len; + for (i = 0, len = ret.parameters.length; i < len; i++) + { + ret.parameters[i][1] = gl.getUniformLocation(shaderProgram, ret.parameters[i][0]); + ret.lastCustomParams.push(0); + gl.uniform1f(ret.parameters[i][1], 0); + } + cr.seal(ret); + return ret; + }; + GLWrap_.prototype.getShaderIndex = function(name_) + { + var i, len; + for (i = 0, len = this.shaderPrograms.length; i < len; i++) + { + if (this.shaderPrograms[i].name === name_) + return i; + } + return -1; + }; + GLWrap_.prototype.project = function (x, y, out) + { + var mv = this.matMV; + var proj = this.matP; + var fTempo = [0, 0, 0, 0, 0, 0, 0, 0]; + fTempo[0] = mv[0]*x+mv[4]*y+mv[12]; + fTempo[1] = mv[1]*x+mv[5]*y+mv[13]; + fTempo[2] = mv[2]*x+mv[6]*y+mv[14]; + fTempo[3] = mv[3]*x+mv[7]*y+mv[15]; + fTempo[4] = proj[0]*fTempo[0]+proj[4]*fTempo[1]+proj[8]*fTempo[2]+proj[12]*fTempo[3]; + fTempo[5] = proj[1]*fTempo[0]+proj[5]*fTempo[1]+proj[9]*fTempo[2]+proj[13]*fTempo[3]; + fTempo[6] = proj[2]*fTempo[0]+proj[6]*fTempo[1]+proj[10]*fTempo[2]+proj[14]*fTempo[3]; + fTempo[7] = -fTempo[2]; + if(fTempo[7]===0.0) //The w value + return; + fTempo[7]=1.0/fTempo[7]; + fTempo[4]*=fTempo[7]; + fTempo[5]*=fTempo[7]; + fTempo[6]*=fTempo[7]; + out[0]=(fTempo[4]*0.5+0.5)*this.width; + out[1]=(fTempo[5]*0.5+0.5)*this.height; + }; + GLWrap_.prototype.setSize = function(w, h, force) + { + if (this.width === w && this.height === h && !force) + return; + this.endBatch(); + var gl = this.gl; + this.width = w; + this.height = h; + gl.viewport(0, 0, w, h); + mat4.lookAt(this.cam, this.look, this.up, this.matMV); + if (this.enableFrontToBack) + { + mat4.ortho(-w/2, w/2, h/2, -h/2, this.zNear, this.zFar, this.matP); + this.worldScale[0] = 1; + this.worldScale[1] = 1; + } + else + { + mat4.perspective(45, w / h, this.zNear, this.zFar, this.matP); + var tl = [0, 0]; + var br = [0, 0]; + this.project(0, 0, tl); + this.project(1, 1, br); + this.worldScale[0] = 1 / (br[0] - tl[0]); + this.worldScale[1] = -1 / (br[1] - tl[1]); + } + var i, len, s; + for (i = 0, len = this.shaderPrograms.length; i < len; i++) + { + s = this.shaderPrograms[i]; + s.hasCurrentMatMV = false; + if (s.locMatP) + { + gl.useProgram(s.shaderProgram); + gl.uniformMatrix4fv(s.locMatP, false, this.matP); + } + } + gl.useProgram(this.shaderPrograms[this.lastProgram].shaderProgram); + gl.bindTexture(gl.TEXTURE_2D, null); + gl.activeTexture(gl.TEXTURE1); + gl.bindTexture(gl.TEXTURE_2D, null); + gl.activeTexture(gl.TEXTURE0); + this.lastTexture0 = null; + this.lastTexture1 = null; + if (this.depthBuffer) + { + gl.bindFramebuffer(gl.FRAMEBUFFER, this.fbo); + gl.bindRenderbuffer(gl.RENDERBUFFER, this.depthBuffer); + gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, this.width, this.height); + if (!this.attachedDepthBuffer) + { + gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, this.depthBuffer); + this.attachedDepthBuffer = true; + } + gl.bindRenderbuffer(gl.RENDERBUFFER, null); + gl.bindFramebuffer(gl.FRAMEBUFFER, null); + this.renderToTex = null; + } + }; + GLWrap_.prototype.resetModelView = function () + { + mat4.lookAt(this.cam, this.look, this.up, this.matMV); + mat4.scale(this.matMV, this.worldScale); + }; + GLWrap_.prototype.translate = function (x, y) + { + if (x === 0 && y === 0) + return; + this.tmpVec3[0] = x;// * this.worldScale[0]; + this.tmpVec3[1] = y;// * this.worldScale[1]; + this.tmpVec3[2] = 0; + mat4.translate(this.matMV, this.tmpVec3); + }; + GLWrap_.prototype.scale = function (x, y) + { + if (x === 1 && y === 1) + return; + this.tmpVec3[0] = x; + this.tmpVec3[1] = y; + this.tmpVec3[2] = 1; + mat4.scale(this.matMV, this.tmpVec3); + }; + GLWrap_.prototype.rotateZ = function (a) + { + if (a === 0) + return; + mat4.rotateZ(this.matMV, a); + }; + GLWrap_.prototype.updateModelView = function() + { + if (areMat4sEqual(this.lastMV, this.matMV)) + return; + var b = this.pushBatch(); + b.type = BATCH_UPDATEMODELVIEW; + if (b.mat4param) + mat4.set(this.matMV, b.mat4param); + else + b.mat4param = mat4.create(this.matMV); + mat4.set(this.matMV, this.lastMV); + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + }; + /* + var debugBatch = false; + jQuery(document).mousedown( + function(info) { + if (info.which === 2) + debugBatch = true; + } + ); + */ + GLWrap_.prototype.setEarlyZIndex = function (i) + { + if (!this.enableFrontToBack) + return; + if (i > 32760) + i = 32760; + this.currentZ = this.cam[2] - this.zNear - i * this.zIncrement; + }; + function GLBatchJob(type_, glwrap_) + { + this.type = type_; + this.glwrap = glwrap_; + this.gl = glwrap_.gl; + this.opacityParam = 0; // for setOpacity() + this.startIndex = 0; // for quad() + this.indexCount = 0; // " + this.texParam = null; // for setTexture() + this.mat4param = null; // for updateModelView() + this.shaderParams = []; // for user parameters + cr.seal(this); + }; + GLBatchJob.prototype.doSetEarlyZPass = function () + { + var gl = this.gl; + var glwrap = this.glwrap; + if (this.startIndex !== 0) // enable + { + gl.depthMask(true); // enable depth writes + gl.colorMask(false, false, false, false); // disable color writes + gl.disable(gl.BLEND); // no color writes so disable blend + gl.bindFramebuffer(gl.FRAMEBUFFER, glwrap.fbo); + gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, null, 0); + gl.clear(gl.DEPTH_BUFFER_BIT); // auto-clear depth buffer + gl.bindFramebuffer(gl.FRAMEBUFFER, null); + glwrap.isBatchInEarlyZPass = true; + } + else + { + gl.depthMask(false); // disable depth writes, only test existing depth values + gl.colorMask(true, true, true, true); // enable color writes + gl.enable(gl.BLEND); // turn blending back on + glwrap.isBatchInEarlyZPass = false; + } + }; + GLBatchJob.prototype.doSetTexture = function () + { + this.gl.bindTexture(this.gl.TEXTURE_2D, this.texParam); + }; + GLBatchJob.prototype.doSetTexture1 = function () + { + var gl = this.gl; + gl.activeTexture(gl.TEXTURE1); + gl.bindTexture(gl.TEXTURE_2D, this.texParam); + gl.activeTexture(gl.TEXTURE0); + }; + GLBatchJob.prototype.doSetOpacity = function () + { + var o = this.opacityParam; + var glwrap = this.glwrap; + glwrap.currentOpacity = o; + var curProg = glwrap.currentShader; + if (curProg.locOpacity && curProg.lpOpacity !== o) + { + curProg.lpOpacity = o; + this.gl.uniform1f(curProg.locOpacity, o); + } + }; + GLBatchJob.prototype.doQuad = function () + { + this.gl.drawElements(this.gl.TRIANGLES, this.indexCount, this.gl.UNSIGNED_SHORT, this.startIndex); + }; + GLBatchJob.prototype.doSetBlend = function () + { + this.gl.blendFunc(this.startIndex, this.indexCount); + }; + GLBatchJob.prototype.doUpdateModelView = function () + { + var i, len, s, shaderPrograms = this.glwrap.shaderPrograms, currentProgram = this.glwrap.currentProgram; + for (i = 0, len = shaderPrograms.length; i < len; i++) + { + s = shaderPrograms[i]; + if (i === currentProgram && s.locMatMV) + { + s.updateMatMV(this.mat4param); + s.hasCurrentMatMV = true; + } + else + s.hasCurrentMatMV = false; + } + mat4.set(this.mat4param, this.glwrap.currentMV); + }; + GLBatchJob.prototype.doRenderToTexture = function () + { + var gl = this.gl; + var glwrap = this.glwrap; + if (this.texParam) + { + if (glwrap.lastTexture1 === this.texParam) + { + gl.activeTexture(gl.TEXTURE1); + gl.bindTexture(gl.TEXTURE_2D, null); + glwrap.lastTexture1 = null; + gl.activeTexture(gl.TEXTURE0); + } + gl.bindFramebuffer(gl.FRAMEBUFFER, glwrap.fbo); + if (!glwrap.isBatchInEarlyZPass) + { + gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this.texParam, 0); + } + } + else + { + if (!glwrap.enableFrontToBack) + { + gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, null, 0); + } + gl.bindFramebuffer(gl.FRAMEBUFFER, null); + } + }; + GLBatchJob.prototype.doClear = function () + { + var gl = this.gl; + var mode = this.startIndex; + if (mode === 0) // clear whole surface + { + gl.clearColor(this.mat4param[0], this.mat4param[1], this.mat4param[2], this.mat4param[3]); + gl.clear(gl.COLOR_BUFFER_BIT); + } + else if (mode === 1) // clear rectangle + { + gl.enable(gl.SCISSOR_TEST); + gl.scissor(this.mat4param[0], this.mat4param[1], this.mat4param[2], this.mat4param[3]); + gl.clearColor(0, 0, 0, 0); + gl.clear(gl.COLOR_BUFFER_BIT); + gl.disable(gl.SCISSOR_TEST); + } + else // clear depth + { + gl.clear(gl.DEPTH_BUFFER_BIT); + } + }; + GLBatchJob.prototype.doSetDepthTestEnabled = function () + { + var gl = this.gl; + var enable = this.startIndex; + if (enable !== 0) + { + gl.enable(gl.DEPTH_TEST); + } + else + { + gl.disable(gl.DEPTH_TEST); + } + }; + GLBatchJob.prototype.doPoints = function () + { + var gl = this.gl; + var glwrap = this.glwrap; + if (glwrap.enableFrontToBack) + gl.disable(gl.DEPTH_TEST); + var s = glwrap.shaderPrograms[1]; + gl.useProgram(s.shaderProgram); + if (!s.hasCurrentMatMV && s.locMatMV) + { + s.updateMatMV(glwrap.currentMV); + s.hasCurrentMatMV = true; + } + gl.enableVertexAttribArray(s.locAPos); + gl.bindBuffer(gl.ARRAY_BUFFER, glwrap.pointBuffer); + gl.vertexAttribPointer(s.locAPos, 4, gl.FLOAT, false, 0, 0); + gl.drawArrays(gl.POINTS, this.startIndex / 4, this.indexCount); + s = glwrap.currentShader; + gl.useProgram(s.shaderProgram); + if (s.locAPos >= 0) + { + gl.enableVertexAttribArray(s.locAPos); + gl.bindBuffer(gl.ARRAY_BUFFER, glwrap.vertexBuffers[glwrap.curBuffer]); + gl.vertexAttribPointer(s.locAPos, glwrap.enableFrontToBack ? 3 : 2, gl.FLOAT, false, 0, 0); + } + if (s.locATex >= 0) + { + gl.enableVertexAttribArray(s.locATex); + gl.bindBuffer(gl.ARRAY_BUFFER, glwrap.texcoordBuffers[glwrap.curBuffer]); + gl.vertexAttribPointer(s.locATex, 2, gl.FLOAT, false, 0, 0); + } + if (glwrap.enableFrontToBack) + gl.enable(gl.DEPTH_TEST); + }; + GLBatchJob.prototype.doSetProgram = function () + { + var gl = this.gl; + var glwrap = this.glwrap; + var s = glwrap.shaderPrograms[this.startIndex]; // recycled param to save memory + glwrap.currentProgram = this.startIndex; // current batch program + glwrap.currentShader = s; + gl.useProgram(s.shaderProgram); // switch to + if (!s.hasCurrentMatMV && s.locMatMV) + { + s.updateMatMV(glwrap.currentMV); + s.hasCurrentMatMV = true; + } + if (s.locOpacity && s.lpOpacity !== glwrap.currentOpacity) + { + s.lpOpacity = glwrap.currentOpacity; + gl.uniform1f(s.locOpacity, glwrap.currentOpacity); + } + if (s.locAPos >= 0) + { + gl.enableVertexAttribArray(s.locAPos); + gl.bindBuffer(gl.ARRAY_BUFFER, glwrap.vertexBuffers[glwrap.curBuffer]); + gl.vertexAttribPointer(s.locAPos, glwrap.enableFrontToBack ? 3 : 2, gl.FLOAT, false, 0, 0); + } + if (s.locATex >= 0) + { + gl.enableVertexAttribArray(s.locATex); + gl.bindBuffer(gl.ARRAY_BUFFER, glwrap.texcoordBuffers[glwrap.curBuffer]); + gl.vertexAttribPointer(s.locATex, 2, gl.FLOAT, false, 0, 0); + } + } + GLBatchJob.prototype.doSetColor = function () + { + var s = this.glwrap.currentShader; + var mat4param = this.mat4param; + this.gl.uniform4f(s.locColorFill, mat4param[0], mat4param[1], mat4param[2], mat4param[3]); + }; + GLBatchJob.prototype.doSetProgramParameters = function () + { + var i, len, s = this.glwrap.currentShader; + var gl = this.gl; + var mat4param = this.mat4param; + if (s.locSamplerBack && this.glwrap.lastTexture1 !== this.texParam) + { + gl.activeTexture(gl.TEXTURE1); + gl.bindTexture(gl.TEXTURE_2D, this.texParam); + this.glwrap.lastTexture1 = this.texParam; + gl.activeTexture(gl.TEXTURE0); + } + var v = mat4param[0]; + var v2; + if (s.locPixelWidth && v !== s.lpPixelWidth) + { + s.lpPixelWidth = v; + gl.uniform1f(s.locPixelWidth, v); + } + v = mat4param[1]; + if (s.locPixelHeight && v !== s.lpPixelHeight) + { + s.lpPixelHeight = v; + gl.uniform1f(s.locPixelHeight, v); + } + v = mat4param[2]; + v2 = mat4param[3]; + if (s.locDestStart && (v !== s.lpDestStartX || v2 !== s.lpDestStartY)) + { + s.lpDestStartX = v; + s.lpDestStartY = v2; + gl.uniform2f(s.locDestStart, v, v2); + } + v = mat4param[4]; + v2 = mat4param[5]; + if (s.locDestEnd && (v !== s.lpDestEndX || v2 !== s.lpDestEndY)) + { + s.lpDestEndX = v; + s.lpDestEndY = v2; + gl.uniform2f(s.locDestEnd, v, v2); + } + v = mat4param[6]; + if (s.locLayerScale && v !== s.lpLayerScale) + { + s.lpLayerScale = v; + gl.uniform1f(s.locLayerScale, v); + } + v = mat4param[7]; + if (s.locLayerAngle && v !== s.lpLayerAngle) + { + s.lpLayerAngle = v; + gl.uniform1f(s.locLayerAngle, v); + } + v = mat4param[8]; + v2 = mat4param[9]; + if (s.locViewOrigin && (v !== s.lpViewOriginX || v2 !== s.lpViewOriginY)) + { + s.lpViewOriginX = v; + s.lpViewOriginY = v2; + gl.uniform2f(s.locViewOrigin, v, v2); + } + v = mat4param[10]; + v2 = mat4param[11]; + if (s.locScrollPos && (v !== s.lpScrollPosX || v2 !== s.lpScrollPosY)) + { + s.lpScrollPosX = v; + s.lpScrollPosY = v2; + gl.uniform2f(s.locScrollPos, v, v2); + } + v = mat4param[12]; + if (s.locSeconds && v !== s.lpSeconds) + { + s.lpSeconds = v; + gl.uniform1f(s.locSeconds, v); + } + if (s.parameters.length) + { + for (i = 0, len = s.parameters.length; i < len; i++) + { + v = this.shaderParams[i]; + if (v !== s.lastCustomParams[i]) + { + s.lastCustomParams[i] = v; + gl.uniform1f(s.parameters[i][1], v); + } + } + } + }; + GLWrap_.prototype.pushBatch = function () + { + if (this.batchPtr === this.batch.length) + this.batch.push(new GLBatchJob(BATCH_NULL, this)); + return this.batch[this.batchPtr++]; + }; + GLWrap_.prototype.endBatch = function () + { + if (this.batchPtr === 0) + return; + if (this.gl.isContextLost()) + return; + var gl = this.gl; + if (this.pointPtr > 0) + { + gl.bindBuffer(gl.ARRAY_BUFFER, this.pointBuffer); + gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.pointData.subarray(0, this.pointPtr)); + if (s && s.locAPos >= 0 && s.name === "") + gl.vertexAttribPointer(s.locAPos, 4, gl.FLOAT, false, 0, 0); + } + if (this.vertexPtr > 0) + { + var s = this.currentShader; + gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffers[this.curBuffer]); + gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.vertexData.subarray(0, this.vertexPtr)); + if (s && s.locAPos >= 0 && s.name !== "") + gl.vertexAttribPointer(s.locAPos, this.enableFrontToBack ? 3 : 2, gl.FLOAT, false, 0, 0); + gl.bindBuffer(gl.ARRAY_BUFFER, this.texcoordBuffers[this.curBuffer]); + gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.texcoordData.subarray(0, this.texPtr)); + if (s && s.locATex >= 0 && s.name !== "") + gl.vertexAttribPointer(s.locATex, 2, gl.FLOAT, false, 0, 0); + } + var i, len, b; + for (i = 0, len = this.batchPtr; i < len; i++) + { + b = this.batch[i]; + switch (b.type) { + case 1: + b.doQuad(); + break; + case 2: + b.doSetTexture(); + break; + case 3: + b.doSetOpacity(); + break; + case 4: + b.doSetBlend(); + break; + case 5: + b.doUpdateModelView(); + break; + case 6: + b.doRenderToTexture(); + break; + case 7: + b.doClear(); + break; + case 8: + b.doPoints(); + break; + case 9: + b.doSetProgram(); + break; + case 10: + b.doSetProgramParameters(); + break; + case 11: + b.doSetTexture1(); + break; + case 12: + b.doSetColor(); + break; + case 13: + b.doSetDepthTestEnabled(); + break; + case 14: + b.doSetEarlyZPass(); + break; + } + } + this.batchPtr = 0; + this.vertexPtr = 0; + this.texPtr = 0; + this.pointPtr = 0; + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + this.isBatchInEarlyZPass = false; + this.curBuffer++; + if (this.curBuffer >= MULTI_BUFFERS) + this.curBuffer = 0; + }; + GLWrap_.prototype.setOpacity = function (op) + { + if (op === this.lastOpacity) + return; + if (this.isEarlyZPass) + return; // ignore + var b = this.pushBatch(); + b.type = BATCH_SETOPACITY; + b.opacityParam = op; + this.lastOpacity = op; + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + }; + GLWrap_.prototype.setTexture = function (tex) + { + if (tex === this.lastTexture0) + return; +; + var b = this.pushBatch(); + b.type = BATCH_SETTEXTURE; + b.texParam = tex; + this.lastTexture0 = tex; + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + }; + GLWrap_.prototype.setBlend = function (s, d) + { + if (s === this.lastSrcBlend && d === this.lastDestBlend) + return; + if (this.isEarlyZPass) + return; // ignore + var b = this.pushBatch(); + b.type = BATCH_SETBLEND; + b.startIndex = s; // recycle params to save memory + b.indexCount = d; + this.lastSrcBlend = s; + this.lastDestBlend = d; + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + }; + GLWrap_.prototype.isPremultipliedAlphaBlend = function () + { + return (this.lastSrcBlend === this.gl.ONE && this.lastDestBlend === this.gl.ONE_MINUS_SRC_ALPHA); + }; + GLWrap_.prototype.setAlphaBlend = function () + { + this.setBlend(this.gl.ONE, this.gl.ONE_MINUS_SRC_ALPHA); + }; + GLWrap_.prototype.setNoPremultiplyAlphaBlend = function () + { + this.setBlend(this.gl.SRC_ALPHA, this.gl.ONE_MINUS_SRC_ALPHA); + }; + var LAST_VERTEX = MAX_VERTICES * 2 - 8; + GLWrap_.prototype.quad = function(tlx, tly, trx, try_, brx, bry, blx, bly) + { + if (this.vertexPtr >= LAST_VERTEX) + this.endBatch(); + var v = this.vertexPtr; // vertex cursor + var t = this.texPtr; + var vd = this.vertexData; // vertex data array + var td = this.texcoordData; // texture coord data array + var currentZ = this.currentZ; + if (this.hasQuadBatchTop) + { + this.batch[this.batchPtr - 1].indexCount += 6; + } + else + { + var b = this.pushBatch(); + b.type = BATCH_QUAD; + b.startIndex = this.enableFrontToBack ? v : (v / 2) * 3; + b.indexCount = 6; + this.hasQuadBatchTop = true; + this.hasPointBatchTop = false; + } + if (this.enableFrontToBack) + { + vd[v++] = tlx; + vd[v++] = tly; + vd[v++] = currentZ; + vd[v++] = trx; + vd[v++] = try_; + vd[v++] = currentZ; + vd[v++] = brx; + vd[v++] = bry; + vd[v++] = currentZ; + vd[v++] = blx; + vd[v++] = bly; + vd[v++] = currentZ; + } + else + { + vd[v++] = tlx; + vd[v++] = tly; + vd[v++] = trx; + vd[v++] = try_; + vd[v++] = brx; + vd[v++] = bry; + vd[v++] = blx; + vd[v++] = bly; + } + td[t++] = 0; + td[t++] = 0; + td[t++] = 1; + td[t++] = 0; + td[t++] = 1; + td[t++] = 1; + td[t++] = 0; + td[t++] = 1; + this.vertexPtr = v; + this.texPtr = t; + }; + GLWrap_.prototype.quadTex = function(tlx, tly, trx, try_, brx, bry, blx, bly, rcTex) + { + if (this.vertexPtr >= LAST_VERTEX) + this.endBatch(); + var v = this.vertexPtr; // vertex cursor + var t = this.texPtr; + var vd = this.vertexData; // vertex data array + var td = this.texcoordData; // texture coord data array + var currentZ = this.currentZ; + if (this.hasQuadBatchTop) + { + this.batch[this.batchPtr - 1].indexCount += 6; + } + else + { + var b = this.pushBatch(); + b.type = BATCH_QUAD; + b.startIndex = this.enableFrontToBack ? v : (v / 2) * 3; + b.indexCount = 6; + this.hasQuadBatchTop = true; + this.hasPointBatchTop = false; + } + var rc_left = rcTex.left; + var rc_top = rcTex.top; + var rc_right = rcTex.right; + var rc_bottom = rcTex.bottom; + if (this.enableFrontToBack) + { + vd[v++] = tlx; + vd[v++] = tly; + vd[v++] = currentZ; + vd[v++] = trx; + vd[v++] = try_; + vd[v++] = currentZ; + vd[v++] = brx; + vd[v++] = bry; + vd[v++] = currentZ; + vd[v++] = blx; + vd[v++] = bly; + vd[v++] = currentZ; + } + else + { + vd[v++] = tlx; + vd[v++] = tly; + vd[v++] = trx; + vd[v++] = try_; + vd[v++] = brx; + vd[v++] = bry; + vd[v++] = blx; + vd[v++] = bly; + } + td[t++] = rc_left; + td[t++] = rc_top; + td[t++] = rc_right; + td[t++] = rc_top; + td[t++] = rc_right; + td[t++] = rc_bottom; + td[t++] = rc_left; + td[t++] = rc_bottom; + this.vertexPtr = v; + this.texPtr = t; + }; + GLWrap_.prototype.quadTexUV = function(tlx, tly, trx, try_, brx, bry, blx, bly, tlu, tlv, tru, trv, bru, brv, blu, blv) + { + if (this.vertexPtr >= LAST_VERTEX) + this.endBatch(); + var v = this.vertexPtr; // vertex cursor + var t = this.texPtr; + var vd = this.vertexData; // vertex data array + var td = this.texcoordData; // texture coord data array + var currentZ = this.currentZ; + if (this.hasQuadBatchTop) + { + this.batch[this.batchPtr - 1].indexCount += 6; + } + else + { + var b = this.pushBatch(); + b.type = BATCH_QUAD; + b.startIndex = this.enableFrontToBack ? v : (v / 2) * 3; + b.indexCount = 6; + this.hasQuadBatchTop = true; + this.hasPointBatchTop = false; + } + if (this.enableFrontToBack) + { + vd[v++] = tlx; + vd[v++] = tly; + vd[v++] = currentZ; + vd[v++] = trx; + vd[v++] = try_; + vd[v++] = currentZ; + vd[v++] = brx; + vd[v++] = bry; + vd[v++] = currentZ; + vd[v++] = blx; + vd[v++] = bly; + vd[v++] = currentZ; + } + else + { + vd[v++] = tlx; + vd[v++] = tly; + vd[v++] = trx; + vd[v++] = try_; + vd[v++] = brx; + vd[v++] = bry; + vd[v++] = blx; + vd[v++] = bly; + } + td[t++] = tlu; + td[t++] = tlv; + td[t++] = tru; + td[t++] = trv; + td[t++] = bru; + td[t++] = brv; + td[t++] = blu; + td[t++] = blv; + this.vertexPtr = v; + this.texPtr = t; + }; + GLWrap_.prototype.convexPoly = function(pts) + { + var pts_count = pts.length / 2; +; + var tris = pts_count - 2; // 3 points = 1 tri, 4 points = 2 tris, 5 points = 3 tris etc. + var last_tri = tris - 1; + var p0x = pts[0]; + var p0y = pts[1]; + var i, i2, p1x, p1y, p2x, p2y, p3x, p3y; + for (i = 0; i < tris; i += 2) // draw 2 triangles at a time + { + i2 = i * 2; + p1x = pts[i2 + 2]; + p1y = pts[i2 + 3]; + p2x = pts[i2 + 4]; + p2y = pts[i2 + 5]; + if (i === last_tri) + { + this.quad(p0x, p0y, p1x, p1y, p2x, p2y, p2x, p2y); + } + else + { + p3x = pts[i2 + 6]; + p3y = pts[i2 + 7]; + this.quad(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y); + } + } + }; + var LAST_POINT = MAX_POINTS - 4; + GLWrap_.prototype.point = function(x_, y_, size_, opacity_) + { + if (this.pointPtr >= LAST_POINT) + this.endBatch(); + var p = this.pointPtr; // point cursor + var pd = this.pointData; // point data array + if (this.hasPointBatchTop) + { + this.batch[this.batchPtr - 1].indexCount++; + } + else + { + var b = this.pushBatch(); + b.type = BATCH_POINTS; + b.startIndex = p; + b.indexCount = 1; + this.hasPointBatchTop = true; + this.hasQuadBatchTop = false; + } + pd[p++] = x_; + pd[p++] = y_; + pd[p++] = size_; + pd[p++] = opacity_; + this.pointPtr = p; + }; + GLWrap_.prototype.switchProgram = function (progIndex) + { + if (this.lastProgram === progIndex) + return; // no change + var shaderProg = this.shaderPrograms[progIndex]; + if (!shaderProg) + { + if (this.lastProgram === 0) + return; // already on default shader + progIndex = 0; + shaderProg = this.shaderPrograms[0]; + } + var b = this.pushBatch(); + b.type = BATCH_SETPROGRAM; + b.startIndex = progIndex; + this.lastProgram = progIndex; + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + }; + GLWrap_.prototype.programUsesDest = function (progIndex) + { + var s = this.shaderPrograms[progIndex]; + return !!(s.locDestStart || s.locDestEnd); + }; + GLWrap_.prototype.programUsesCrossSampling = function (progIndex) + { + var s = this.shaderPrograms[progIndex]; + return !!(s.locDestStart || s.locDestEnd || s.crossSampling); + }; + GLWrap_.prototype.programPreservesOpaqueness = function (progIndex) + { + return this.shaderPrograms[progIndex].preservesOpaqueness; + }; + GLWrap_.prototype.programExtendsBox = function (progIndex) + { + var s = this.shaderPrograms[progIndex]; + return s.extendBoxHorizontal !== 0 || s.extendBoxVertical !== 0; + }; + GLWrap_.prototype.getProgramBoxExtendHorizontal = function (progIndex) + { + return this.shaderPrograms[progIndex].extendBoxHorizontal; + }; + GLWrap_.prototype.getProgramBoxExtendVertical = function (progIndex) + { + return this.shaderPrograms[progIndex].extendBoxVertical; + }; + GLWrap_.prototype.getProgramParameterType = function (progIndex, paramIndex) + { + return this.shaderPrograms[progIndex].parameters[paramIndex][2]; + }; + GLWrap_.prototype.programIsAnimated = function (progIndex) + { + return this.shaderPrograms[progIndex].animated; + }; + GLWrap_.prototype.setProgramParameters = function (backTex, pixelWidth, pixelHeight, destStartX, destStartY, destEndX, destEndY, layerScale, layerAngle, viewOriginLeft, viewOriginTop, scrollPosX, scrollPosY, seconds, params) + { + var i, len; + var s = this.shaderPrograms[this.lastProgram]; + var b, mat4param, shaderParams; + if (s.hasAnyOptionalUniforms || params.length) + { + b = this.pushBatch(); + b.type = BATCH_SETPROGRAMPARAMETERS; + if (b.mat4param) + mat4.set(this.matMV, b.mat4param); + else + b.mat4param = mat4.create(); + mat4param = b.mat4param; + mat4param[0] = pixelWidth; + mat4param[1] = pixelHeight; + mat4param[2] = destStartX; + mat4param[3] = destStartY; + mat4param[4] = destEndX; + mat4param[5] = destEndY; + mat4param[6] = layerScale; + mat4param[7] = layerAngle; + mat4param[8] = viewOriginLeft; + mat4param[9] = viewOriginTop; + mat4param[10] = scrollPosX; + mat4param[11] = scrollPosY; + mat4param[12] = seconds; + if (s.locSamplerBack) + { +; + b.texParam = backTex; + } + else + b.texParam = null; + if (params.length) + { + shaderParams = b.shaderParams; + shaderParams.length = params.length; + for (i = 0, len = params.length; i < len; i++) + shaderParams[i] = params[i]; + } + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + } + }; + GLWrap_.prototype.clear = function (r, g, b_, a) + { + var b = this.pushBatch(); + b.type = BATCH_CLEAR; + b.startIndex = 0; // clear all mode + if (!b.mat4param) + b.mat4param = mat4.create(); + b.mat4param[0] = r; + b.mat4param[1] = g; + b.mat4param[2] = b_; + b.mat4param[3] = a; + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + }; + GLWrap_.prototype.clearRect = function (x, y, w, h) + { + if (w < 0 || h < 0) + return; // invalid clear area + var b = this.pushBatch(); + b.type = BATCH_CLEAR; + b.startIndex = 1; // clear rect mode + if (!b.mat4param) + b.mat4param = mat4.create(); + b.mat4param[0] = x; + b.mat4param[1] = y; + b.mat4param[2] = w; + b.mat4param[3] = h; + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + }; + GLWrap_.prototype.clearDepth = function () + { + var b = this.pushBatch(); + b.type = BATCH_CLEAR; + b.startIndex = 2; // clear depth mode + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + }; + GLWrap_.prototype.setEarlyZPass = function (e) + { + if (!this.enableFrontToBack) + return; // no depth buffer in use + e = !!e; + if (this.isEarlyZPass === e) + return; // no change + var b = this.pushBatch(); + b.type = BATCH_SETEARLYZMODE; + b.startIndex = (e ? 1 : 0); + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + this.isEarlyZPass = e; + this.renderToTex = null; + if (this.isEarlyZPass) + { + this.switchProgram(2); // early Z program + } + else + { + this.switchProgram(0); // normal rendering + } + }; + GLWrap_.prototype.setDepthTestEnabled = function (e) + { + if (!this.enableFrontToBack) + return; // no depth buffer in use + var b = this.pushBatch(); + b.type = BATCH_SETDEPTHTEST; + b.startIndex = (e ? 1 : 0); + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + }; + GLWrap_.prototype.fullscreenQuad = function () + { + mat4.set(this.lastMV, tempMat4); + this.resetModelView(); + this.updateModelView(); + var halfw = this.width / 2; + var halfh = this.height / 2; + this.quad(-halfw, halfh, halfw, halfh, halfw, -halfh, -halfw, -halfh); + mat4.set(tempMat4, this.matMV); + this.updateModelView(); + }; + GLWrap_.prototype.setColorFillMode = function (r_, g_, b_, a_) + { + this.switchProgram(3); + var b = this.pushBatch(); + b.type = BATCH_SETCOLOR; + if (!b.mat4param) + b.mat4param = mat4.create(); + b.mat4param[0] = r_; + b.mat4param[1] = g_; + b.mat4param[2] = b_; + b.mat4param[3] = a_; + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + }; + GLWrap_.prototype.setTextureFillMode = function () + { +; + this.switchProgram(0); + }; + GLWrap_.prototype.restoreEarlyZMode = function () + { +; + this.switchProgram(2); + }; + GLWrap_.prototype.present = function () + { + this.endBatch(); + this.gl.flush(); + /* + if (debugBatch) + { +; + debugBatch = false; + } + */ + }; + function nextHighestPowerOfTwo(x) { + --x; + for (var i = 1; i < 32; i <<= 1) { + x = x | x >> i; + } + return x + 1; + } + var all_textures = []; + var textures_by_src = {}; + GLWrap_.prototype.contextLost = function () + { + cr.clearArray(all_textures); + textures_by_src = {}; + }; + var BF_RGBA8 = 0; + var BF_RGB8 = 1; + var BF_RGBA4 = 2; + var BF_RGB5_A1 = 3; + var BF_RGB565 = 4; + GLWrap_.prototype.loadTexture = function (img, tiling, linearsampling, pixelformat, tiletype, nomip) + { + tiling = !!tiling; + linearsampling = !!linearsampling; + var tex_key = img.src + "," + tiling + "," + linearsampling + (tiling ? ("," + tiletype) : ""); + var webGL_texture = null; + if (typeof img.src !== "undefined" && textures_by_src.hasOwnProperty(tex_key)) + { + webGL_texture = textures_by_src[tex_key]; + webGL_texture.c2refcount++; + return webGL_texture; + } + this.endBatch(); +; + var gl = this.gl; + var isPOT = (cr.isPOT(img.width) && cr.isPOT(img.height)); + webGL_texture = gl.createTexture(); + gl.bindTexture(gl.TEXTURE_2D, webGL_texture); + gl.pixelStorei(gl["UNPACK_PREMULTIPLY_ALPHA_WEBGL"], true); + var internalformat = gl.RGBA; + var format = gl.RGBA; + var type = gl.UNSIGNED_BYTE; + if (pixelformat && !this.isIE) + { + switch (pixelformat) { + case BF_RGB8: + internalformat = gl.RGB; + format = gl.RGB; + break; + case BF_RGBA4: + type = gl.UNSIGNED_SHORT_4_4_4_4; + break; + case BF_RGB5_A1: + type = gl.UNSIGNED_SHORT_5_5_5_1; + break; + case BF_RGB565: + internalformat = gl.RGB; + format = gl.RGB; + type = gl.UNSIGNED_SHORT_5_6_5; + break; + } + } + if (this.version === 1 && !isPOT && tiling) + { + var canvas = document.createElement("canvas"); + canvas.width = cr.nextHighestPowerOfTwo(img.width); + canvas.height = cr.nextHighestPowerOfTwo(img.height); + var ctx = canvas.getContext("2d"); + if (typeof ctx["imageSmoothingEnabled"] !== "undefined") + { + ctx["imageSmoothingEnabled"] = linearsampling; + } + else + { + ctx["webkitImageSmoothingEnabled"] = linearsampling; + ctx["mozImageSmoothingEnabled"] = linearsampling; + ctx["msImageSmoothingEnabled"] = linearsampling; + } + ctx.drawImage(img, + 0, 0, img.width, img.height, + 0, 0, canvas.width, canvas.height); + gl.texImage2D(gl.TEXTURE_2D, 0, internalformat, format, type, canvas); + } + else + gl.texImage2D(gl.TEXTURE_2D, 0, internalformat, format, type, img); + if (tiling) + { + if (tiletype === "repeat-x") + { + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + } + else if (tiletype === "repeat-y") + { + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT); + } + else + { + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT); + } + } + else + { + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + } + if (linearsampling) + { + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); + if ((isPOT || this.version >= 2) && this.enable_mipmaps && !nomip) + { + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR); + gl.generateMipmap(gl.TEXTURE_2D); + } + else + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); + } + else + { + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); + } + gl.bindTexture(gl.TEXTURE_2D, null); + this.lastTexture0 = null; + webGL_texture.c2width = img.width; + webGL_texture.c2height = img.height; + webGL_texture.c2refcount = 1; + webGL_texture.c2texkey = tex_key; + all_textures.push(webGL_texture); + textures_by_src[tex_key] = webGL_texture; + return webGL_texture; + }; + GLWrap_.prototype.createEmptyTexture = function (w, h, linearsampling, _16bit, tiling) + { + this.endBatch(); + var gl = this.gl; + if (this.isIE) + _16bit = false; + var webGL_texture = gl.createTexture(); + gl.bindTexture(gl.TEXTURE_2D, webGL_texture); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, w, h, 0, gl.RGBA, _16bit ? gl.UNSIGNED_SHORT_4_4_4_4 : gl.UNSIGNED_BYTE, null); + if (tiling) + { + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.REPEAT); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.REPEAT); + } + else + { + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); + } + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, linearsampling ? gl.LINEAR : gl.NEAREST); + gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, linearsampling ? gl.LINEAR : gl.NEAREST); + gl.bindTexture(gl.TEXTURE_2D, null); + this.lastTexture0 = null; + webGL_texture.c2width = w; + webGL_texture.c2height = h; + all_textures.push(webGL_texture); + return webGL_texture; + }; + GLWrap_.prototype.videoToTexture = function (video_, texture_, _16bit) + { + this.endBatch(); + var gl = this.gl; + if (this.isIE) + _16bit = false; + gl.bindTexture(gl.TEXTURE_2D, texture_); + gl.pixelStorei(gl["UNPACK_PREMULTIPLY_ALPHA_WEBGL"], true); + try { + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, _16bit ? gl.UNSIGNED_SHORT_4_4_4_4 : gl.UNSIGNED_BYTE, video_); + } + catch (e) + { + if (console && console.error) + console.error("Error updating WebGL texture: ", e); + } + gl.bindTexture(gl.TEXTURE_2D, null); + this.lastTexture0 = null; + }; + GLWrap_.prototype.deleteTexture = function (tex) + { + if (!tex) + return; + if (typeof tex.c2refcount !== "undefined" && tex.c2refcount > 1) + { + tex.c2refcount--; + return; + } + this.endBatch(); + if (tex === this.lastTexture0) + { + this.gl.bindTexture(this.gl.TEXTURE_2D, null); + this.lastTexture0 = null; + } + if (tex === this.lastTexture1) + { + this.gl.activeTexture(this.gl.TEXTURE1); + this.gl.bindTexture(this.gl.TEXTURE_2D, null); + this.gl.activeTexture(this.gl.TEXTURE0); + this.lastTexture1 = null; + } + cr.arrayFindRemove(all_textures, tex); + if (typeof tex.c2texkey !== "undefined") + delete textures_by_src[tex.c2texkey]; + this.gl.deleteTexture(tex); + }; + GLWrap_.prototype.estimateVRAM = function () + { + var total = this.width * this.height * 4 * 2; + var i, len, t; + for (i = 0, len = all_textures.length; i < len; i++) + { + t = all_textures[i]; + total += (t.c2width * t.c2height * 4); + } + return total; + }; + GLWrap_.prototype.textureCount = function () + { + return all_textures.length; + }; + GLWrap_.prototype.setRenderingToTexture = function (tex) + { + if (tex === this.renderToTex) + return; +; + var b = this.pushBatch(); + b.type = BATCH_RENDERTOTEXTURE; + b.texParam = tex; + this.renderToTex = tex; + this.hasQuadBatchTop = false; + this.hasPointBatchTop = false; + }; + cr.GLWrap = GLWrap_; +}()); +; +(function() +{ + var raf = window["requestAnimationFrame"] || + window["mozRequestAnimationFrame"] || + window["webkitRequestAnimationFrame"] || + window["msRequestAnimationFrame"] || + window["oRequestAnimationFrame"]; + function Runtime(canvas) + { + if (!canvas || (!canvas.getContext && !canvas["dc"])) + return; + if (canvas["c2runtime"]) + return; + else + canvas["c2runtime"] = this; + var self = this; + this.isCrosswalk = /crosswalk/i.test(navigator.userAgent) || /xwalk/i.test(navigator.userAgent) || !!(typeof window["c2isCrosswalk"] !== "undefined" && window["c2isCrosswalk"]); + this.isCordova = this.isCrosswalk || (typeof window["device"] !== "undefined" && (typeof window["device"]["cordova"] !== "undefined" || typeof window["device"]["phonegap"] !== "undefined")) || (typeof window["c2iscordova"] !== "undefined" && window["c2iscordova"]); + this.isPhoneGap = this.isCordova; + this.isDirectCanvas = !!canvas["dc"]; + this.isAppMobi = (typeof window["AppMobi"] !== "undefined" || this.isDirectCanvas); + this.isCocoonJs = !!window["c2cocoonjs"]; + this.isEjecta = !!window["c2ejecta"]; + if (this.isCocoonJs) + { + CocoonJS["App"]["onSuspended"].addEventListener(function() { + self["setSuspended"](true); + }); + CocoonJS["App"]["onActivated"].addEventListener(function () { + self["setSuspended"](false); + }); + } + if (this.isEjecta) + { + document.addEventListener("pagehide", function() { + self["setSuspended"](true); + }); + document.addEventListener("pageshow", function() { + self["setSuspended"](false); + }); + document.addEventListener("resize", function () { + self["setSize"](window.innerWidth, window.innerHeight); + }); + } + this.isDomFree = (this.isDirectCanvas || this.isCocoonJs || this.isEjecta); + this.isMicrosoftEdge = /edge\//i.test(navigator.userAgent); + this.isIE = (/msie/i.test(navigator.userAgent) || /trident/i.test(navigator.userAgent) || /iemobile/i.test(navigator.userAgent)) && !this.isMicrosoftEdge; + this.isTizen = /tizen/i.test(navigator.userAgent); + this.isAndroid = /android/i.test(navigator.userAgent) && !this.isTizen && !this.isIE && !this.isMicrosoftEdge; // IE mobile and Tizen masquerade as Android + this.isiPhone = (/iphone/i.test(navigator.userAgent) || /ipod/i.test(navigator.userAgent)) && !this.isIE && !this.isMicrosoftEdge; // treat ipod as an iphone; IE mobile masquerades as iPhone + this.isiPad = /ipad/i.test(navigator.userAgent); + this.isiOS = this.isiPhone || this.isiPad || this.isEjecta; + this.isiPhoneiOS6 = (this.isiPhone && /os\s6/i.test(navigator.userAgent)); + this.isChrome = (/chrome/i.test(navigator.userAgent) || /chromium/i.test(navigator.userAgent)) && !this.isIE && !this.isMicrosoftEdge; // note true on Chromium-based webview on Android 4.4+; IE 'Edge' mode also pretends to be Chrome + this.isAmazonWebApp = /amazonwebappplatform/i.test(navigator.userAgent); + this.isFirefox = /firefox/i.test(navigator.userAgent); + this.isSafari = /safari/i.test(navigator.userAgent) && !this.isChrome && !this.isIE && !this.isMicrosoftEdge; // Chrome and IE Mobile masquerade as Safari + this.isWindows = /windows/i.test(navigator.userAgent); + this.isNWjs = (typeof window["c2nodewebkit"] !== "undefined" || typeof window["c2nwjs"] !== "undefined" || /nodewebkit/i.test(navigator.userAgent) || /nwjs/i.test(navigator.userAgent)); + this.isNodeWebkit = this.isNWjs; // old name for backwards compat + this.isArcade = (typeof window["is_scirra_arcade"] !== "undefined"); + this.isWindows8App = !!(typeof window["c2isWindows8"] !== "undefined" && window["c2isWindows8"]); + this.isWindows8Capable = !!(typeof window["c2isWindows8Capable"] !== "undefined" && window["c2isWindows8Capable"]); + this.isWindowsPhone8 = !!(typeof window["c2isWindowsPhone8"] !== "undefined" && window["c2isWindowsPhone8"]); + this.isWindowsPhone81 = !!(typeof window["c2isWindowsPhone81"] !== "undefined" && window["c2isWindowsPhone81"]); + this.isWindows10 = !!window["cr_windows10"]; + this.isWinJS = (this.isWindows8App || this.isWindows8Capable || this.isWindowsPhone81 || this.isWindows10); // note not WP8.0 + this.isBlackberry10 = !!(typeof window["c2isBlackberry10"] !== "undefined" && window["c2isBlackberry10"]); + this.isAndroidStockBrowser = (this.isAndroid && !this.isChrome && !this.isCrosswalk && !this.isFirefox && !this.isAmazonWebApp && !this.isDomFree); + this.devicePixelRatio = 1; + this.isMobile = (this.isCordova || this.isCrosswalk || this.isAppMobi || this.isCocoonJs || this.isAndroid || this.isiOS || this.isWindowsPhone8 || this.isWindowsPhone81 || this.isBlackberry10 || this.isTizen || this.isEjecta); + if (!this.isMobile) + { + this.isMobile = /(blackberry|bb10|playbook|palm|symbian|nokia|windows\s+ce|phone|mobile|tablet|kindle|silk)/i.test(navigator.userAgent); + } + this.isWKWebView = !!(this.isiOS && this.isCordova && window["webkit"]); + if (typeof cr_is_preview !== "undefined" && !this.isNWjs && (window.location.search === "?nw" || /nodewebkit/i.test(navigator.userAgent) || /nwjs/i.test(navigator.userAgent))) + { + this.isNWjs = true; + } + this.isDebug = (typeof cr_is_preview !== "undefined" && window.location.search.indexOf("debug") > -1); + this.canvas = canvas; + this.canvasdiv = document.getElementById("c2canvasdiv"); + this.gl = null; + this.glwrap = null; + this.glUnmaskedRenderer = "(unavailable)"; + this.enableFrontToBack = false; + this.earlyz_index = 0; + this.ctx = null; + this.firstInFullscreen = false; + this.oldWidth = 0; // for restoring non-fullscreen canvas after fullscreen + this.oldHeight = 0; + this.canvas.oncontextmenu = function (e) { if (e.preventDefault) e.preventDefault(); return false; }; + this.canvas.onselectstart = function (e) { if (e.preventDefault) e.preventDefault(); return false; }; + this.canvas.ontouchstart = function (e) { if(e.preventDefault) e.preventDefault(); return false; }; + if (this.isDirectCanvas) + window["c2runtime"] = this; + if (this.isNWjs) + { + window["ondragover"] = function(e) { e.preventDefault(); return false; }; + window["ondrop"] = function(e) { e.preventDefault(); return false; }; + if (window["nwgui"] && window["nwgui"]["App"]["clearCache"]) + window["nwgui"]["App"]["clearCache"](); + } + if (this.isAndroidStockBrowser && typeof jQuery !== "undefined") + { + jQuery("canvas").parents("*").css("overflow", "visible"); + } + this.width = canvas.width; + this.height = canvas.height; + this.draw_width = this.width; + this.draw_height = this.height; + this.cssWidth = this.width; + this.cssHeight = this.height; + this.lastWindowWidth = window.innerWidth; + this.lastWindowHeight = window.innerHeight; + this.forceCanvasAlpha = false; // note: now unused, left for backwards compat since plugins could modify it + this.redraw = true; + this.isSuspended = false; + if (!Date.now) { + Date.now = function now() { + return +new Date(); + }; + } + this.plugins = []; + this.types = {}; + this.types_by_index = []; + this.behaviors = []; + this.layouts = {}; + this.layouts_by_index = []; + this.eventsheets = {}; + this.eventsheets_by_index = []; + this.wait_for_textures = []; // for blocking until textures loaded + this.triggers_to_postinit = []; + this.all_global_vars = []; + this.all_local_vars = []; + this.solidBehavior = null; + this.jumpthruBehavior = null; + this.shadowcasterBehavior = null; + this.deathRow = {}; + this.hasPendingInstances = false; // true if anything exists in create row or death row + this.isInClearDeathRow = false; + this.isInOnDestroy = 0; // needs to support recursion so increments and decrements and is true if > 0 + this.isRunningEvents = false; + this.isEndingLayout = false; + this.createRow = []; + this.isLoadingState = false; + this.saveToSlot = ""; + this.loadFromSlot = ""; + this.loadFromJson = null; // set to string when there is something to try to load + this.lastSaveJson = ""; + this.signalledContinuousPreview = false; + this.suspendDrawing = false; // for hiding display until continuous preview loads + this.fireOnCreateAfterLoad = []; // for delaying "On create" triggers until loading complete + this.dt = 0; + this.dt1 = 0; + this.minimumFramerate = 30; + this.logictime = 0; // used to calculate CPUUtilisation + this.cpuutilisation = 0; + this.timescale = 1.0; + this.kahanTime = new cr.KahanAdder(); + this.wallTime = new cr.KahanAdder(); + this.last_tick_time = 0; + this.fps = 0; + this.last_fps_time = 0; + this.tickcount = 0; + this.tickcount_nosave = 0; // same as tickcount but never saved/loaded + this.execcount = 0; + this.framecount = 0; // for fps + this.objectcount = 0; + this.changelayout = null; + this.destroycallbacks = []; + this.event_stack = []; + this.event_stack_index = -1; + this.localvar_stack = [[]]; + this.localvar_stack_index = 0; + this.trigger_depth = 0; // recursion depth for triggers + this.pushEventStack(null); + this.loop_stack = []; + this.loop_stack_index = -1; + this.next_uid = 0; + this.next_puid = 0; // permanent unique ids + this.layout_first_tick = true; + this.family_count = 0; + this.suspend_events = []; + this.raf_id = -1; + this.timeout_id = -1; + this.isloading = true; + this.loadingprogress = 0; + this.isNodeFullscreen = false; + this.stackLocalCount = 0; // number of stack-based local vars for recursion + this.audioInstance = null; + this.had_a_click = false; + this.isInUserInputEvent = false; + this.objects_to_pretick = new cr.ObjectSet(); + this.objects_to_tick = new cr.ObjectSet(); + this.objects_to_tick2 = new cr.ObjectSet(); + this.registered_collisions = []; + this.temp_poly = new cr.CollisionPoly([]); + this.temp_poly2 = new cr.CollisionPoly([]); + this.allGroups = []; // array of all event groups + this.groups_by_name = {}; + this.cndsBySid = {}; + this.actsBySid = {}; + this.varsBySid = {}; + this.blocksBySid = {}; + this.running_layout = null; // currently running layout + this.layer_canvas = null; // for layers "render-to-texture" + this.layer_ctx = null; + this.layer_tex = null; + this.layout_tex = null; + this.layout_canvas = null; + this.layout_ctx = null; + this.is_WebGL_context_lost = false; + this.uses_background_blending = false; // if any shader uses background blending, so entire layout renders to texture + this.fx_tex = [null, null]; + this.fullscreen_scaling = 0; + this.files_subfolder = ""; // path with project files + this.objectsByUid = {}; // maps every in-use UID (as a string) to its instance + this.loaderlogos = null; + this.snapshotCanvas = null; + this.snapshotData = ""; + this.objectRefTable = []; + this.requestProjectData(); + }; + Runtime.prototype.requestProjectData = function () + { + var self = this; + if (this.isWKWebView) + { + this.fetchLocalFileViaCordovaAsText("data.js", function (str) + { + self.loadProject(JSON.parse(str)); + }, function (err) + { + alert("Error fetching data.js"); + }); + return; + } + var xhr; + if (this.isWindowsPhone8) + xhr = new ActiveXObject("Microsoft.XMLHTTP"); + else + xhr = new XMLHttpRequest(); + var datajs_filename = "data.js"; + if (this.isWindows8App || this.isWindowsPhone8 || this.isWindowsPhone81 || this.isWindows10) + datajs_filename = "data.json"; + xhr.open("GET", datajs_filename, true); + var supportsJsonResponse = false; + if (!this.isDomFree && ("response" in xhr) && ("responseType" in xhr)) + { + try { + xhr["responseType"] = "json"; + supportsJsonResponse = (xhr["responseType"] === "json"); + } + catch (e) { + supportsJsonResponse = false; + } + } + if (!supportsJsonResponse && ("responseType" in xhr)) + { + try { + xhr["responseType"] = "text"; + } + catch (e) {} + } + if ("overrideMimeType" in xhr) + { + try { + xhr["overrideMimeType"]("application/json; charset=utf-8"); + } + catch (e) {} + } + if (this.isWindowsPhone8) + { + xhr.onreadystatechange = function () + { + if (xhr.readyState !== 4) + return; + self.loadProject(JSON.parse(xhr["responseText"])); + }; + } + else + { + xhr.onload = function () + { + if (supportsJsonResponse) + { + self.loadProject(xhr["response"]); // already parsed by browser + } + else + { + if (self.isEjecta) + { + var str = xhr["responseText"]; + str = str.substr(str.indexOf("{")); // trim any BOM + self.loadProject(JSON.parse(str)); + } + else + { + self.loadProject(JSON.parse(xhr["responseText"])); // forced to sync parse JSON + } + } + }; + xhr.onerror = function (e) + { + cr.logerror("Error requesting " + datajs_filename + ":"); + cr.logerror(e); + }; + } + xhr.send(); + }; + Runtime.prototype.initRendererAndLoader = function () + { + var self = this; + var i, len, j, lenj, k, lenk, t, s, l, y; + this.isRetina = ((!this.isDomFree || this.isEjecta || this.isCordova) && this.useHighDpi && !this.isAndroidStockBrowser); + if (this.fullscreen_mode === 0 && this.isiOS) + this.isRetina = false; + this.devicePixelRatio = (this.isRetina ? (window["devicePixelRatio"] || window["webkitDevicePixelRatio"] || window["mozDevicePixelRatio"] || window["msDevicePixelRatio"] || 1) : 1); + if (typeof window["StatusBar"] === "object") + window["StatusBar"]["hide"](); + this.ClearDeathRow(); + var attribs; + if (this.fullscreen_mode > 0) + this["setSize"](window.innerWidth, window.innerHeight, true); + this.canvas.addEventListener("webglcontextlost", function (ev) { + ev.preventDefault(); + self.onContextLost(); + cr.logexport("[Construct 2] WebGL context lost"); + window["cr_setSuspended"](true); // stop rendering + }, false); + this.canvas.addEventListener("webglcontextrestored", function (ev) { + self.glwrap.initState(); + self.glwrap.setSize(self.glwrap.width, self.glwrap.height, true); + self.layer_tex = null; + self.layout_tex = null; + self.fx_tex[0] = null; + self.fx_tex[1] = null; + self.onContextRestored(); + self.redraw = true; + cr.logexport("[Construct 2] WebGL context restored"); + window["cr_setSuspended"](false); // resume rendering + }, false); + try { + if (this.enableWebGL && (this.isCocoonJs || this.isEjecta || !this.isDomFree)) + { + attribs = { + "alpha": true, + "depth": false, + "antialias": false, + "powerPreference": "high-performance", + "failIfMajorPerformanceCaveat": true + }; + if (!this.isAndroid) + this.gl = this.canvas.getContext("webgl2", attribs); + if (!this.gl) + { + this.gl = (this.canvas.getContext("webgl", attribs) || + this.canvas.getContext("experimental-webgl", attribs)); + } + } + } + catch (e) { + } + if (this.gl) + { + var isWebGL2 = (this.gl.getParameter(this.gl.VERSION).indexOf("WebGL 2") === 0); + var debug_ext = this.gl.getExtension("WEBGL_debug_renderer_info"); + if (debug_ext) + { + var unmasked_vendor = this.gl.getParameter(debug_ext.UNMASKED_VENDOR_WEBGL); + var unmasked_renderer = this.gl.getParameter(debug_ext.UNMASKED_RENDERER_WEBGL); + this.glUnmaskedRenderer = unmasked_renderer + " [" + unmasked_vendor + "]"; + } + if (this.enableFrontToBack) + this.glUnmaskedRenderer += " [front-to-back enabled]"; +; + if (!this.isDomFree) + { + this.overlay_canvas = document.createElement("canvas"); + jQuery(this.overlay_canvas).appendTo(this.canvas.parentNode); + this.overlay_canvas.oncontextmenu = function (e) { return false; }; + this.overlay_canvas.onselectstart = function (e) { return false; }; + this.overlay_canvas.width = Math.round(this.cssWidth * this.devicePixelRatio); + this.overlay_canvas.height = Math.round(this.cssHeight * this.devicePixelRatio); + jQuery(this.overlay_canvas).css({"width": this.cssWidth + "px", + "height": this.cssHeight + "px"}); + this.positionOverlayCanvas(); + this.overlay_ctx = this.overlay_canvas.getContext("2d"); + } + this.glwrap = new cr.GLWrap(this.gl, this.isMobile, this.enableFrontToBack); + this.glwrap.setSize(this.canvas.width, this.canvas.height); + this.glwrap.enable_mipmaps = (this.downscalingQuality !== 0); + this.ctx = null; + for (i = 0, len = this.types_by_index.length; i < len; i++) + { + t = this.types_by_index[i]; + for (j = 0, lenj = t.effect_types.length; j < lenj; j++) + { + s = t.effect_types[j]; + s.shaderindex = this.glwrap.getShaderIndex(s.id); + s.preservesOpaqueness = this.glwrap.programPreservesOpaqueness(s.shaderindex); + this.uses_background_blending = this.uses_background_blending || this.glwrap.programUsesDest(s.shaderindex); + } + } + for (i = 0, len = this.layouts_by_index.length; i < len; i++) + { + l = this.layouts_by_index[i]; + for (j = 0, lenj = l.effect_types.length; j < lenj; j++) + { + s = l.effect_types[j]; + s.shaderindex = this.glwrap.getShaderIndex(s.id); + s.preservesOpaqueness = this.glwrap.programPreservesOpaqueness(s.shaderindex); + } + l.updateActiveEffects(); // update preserves opaqueness flag + for (j = 0, lenj = l.layers.length; j < lenj; j++) + { + y = l.layers[j]; + for (k = 0, lenk = y.effect_types.length; k < lenk; k++) + { + s = y.effect_types[k]; + s.shaderindex = this.glwrap.getShaderIndex(s.id); + s.preservesOpaqueness = this.glwrap.programPreservesOpaqueness(s.shaderindex); + this.uses_background_blending = this.uses_background_blending || this.glwrap.programUsesDest(s.shaderindex); + } + y.updateActiveEffects(); // update preserves opaqueness flag + } + } + } + else + { + if (this.fullscreen_mode > 0 && this.isDirectCanvas) + { +; + this.canvas = null; + document.oncontextmenu = function (e) { return false; }; + document.onselectstart = function (e) { return false; }; + this.ctx = AppMobi["canvas"]["getContext"]("2d"); + try { + this.ctx["samplingMode"] = this.linearSampling ? "smooth" : "sharp"; + this.ctx["globalScale"] = 1; + this.ctx["HTML5CompatibilityMode"] = true; + this.ctx["imageSmoothingEnabled"] = this.linearSampling; + } catch(e){} + if (this.width !== 0 && this.height !== 0) + { + this.ctx.width = this.width; + this.ctx.height = this.height; + } + } + if (!this.ctx) + { +; + if (this.isCocoonJs) + { + attribs = { + "antialias": !!this.linearSampling, + "alpha": true + }; + this.ctx = this.canvas.getContext("2d", attribs); + } + else + { + attribs = { + "alpha": true + }; + this.ctx = this.canvas.getContext("2d", attribs); + } + this.setCtxImageSmoothingEnabled(this.ctx, this.linearSampling); + } + this.overlay_canvas = null; + this.overlay_ctx = null; + } + this.tickFunc = function (timestamp) { self.tick(false, timestamp); }; + if (window != window.top && !this.isDomFree && !this.isWinJS && !this.isWindowsPhone8) + { + document.addEventListener("mousedown", function () { + window.focus(); + }, true); + document.addEventListener("touchstart", function () { + window.focus(); + }, true); + } + if (typeof cr_is_preview !== "undefined") + { + if (this.isCocoonJs) + console.log("[Construct 2] In preview-over-wifi via CocoonJS mode"); + if (window.location.search.indexOf("continuous") > -1) + { + cr.logexport("Reloading for continuous preview"); + this.loadFromSlot = "__c2_continuouspreview"; + this.suspendDrawing = true; + } + if (this.pauseOnBlur && !this.isMobile) + { + jQuery(window).focus(function () + { + self["setSuspended"](false); + }); + jQuery(window).blur(function () + { + var parent = window.parent; + if (!parent || !parent.document.hasFocus()) + self["setSuspended"](true); + }); + } + } + window.addEventListener("blur", function () { + self.onWindowBlur(); + }); + if (!this.isDomFree) + { + var unfocusFormControlFunc = function (e) { + if (cr.isCanvasInputEvent(e) && document["activeElement"] && document["activeElement"] !== document.getElementsByTagName("body")[0] && document["activeElement"].blur) + { + try { + document["activeElement"].blur(); + } + catch (e) {} + } + } + if (typeof PointerEvent !== "undefined") + { + document.addEventListener("pointerdown", unfocusFormControlFunc); + } + else if (window.navigator["msPointerEnabled"]) + { + document.addEventListener("MSPointerDown", unfocusFormControlFunc); + } + else + { + document.addEventListener("touchstart", unfocusFormControlFunc); + } + document.addEventListener("mousedown", unfocusFormControlFunc); + } + if (this.fullscreen_mode === 0 && this.isRetina && this.devicePixelRatio > 1) + { + this["setSize"](this.original_width, this.original_height, true); + } + this.tryLockOrientation(); + this.getready(); // determine things to preload + this.go(); // run loading screen + this.extra = {}; + cr.seal(this); + }; + var webkitRepaintFlag = false; + Runtime.prototype["setSize"] = function (w, h, force) + { + var offx = 0, offy = 0; + var neww = 0, newh = 0, intscale = 0; + if (this.lastWindowWidth === w && this.lastWindowHeight === h && !force) + return; + this.lastWindowWidth = w; + this.lastWindowHeight = h; + var mode = this.fullscreen_mode; + var orig_aspect, cur_aspect; + var isfullscreen = (document["mozFullScreen"] || document["webkitIsFullScreen"] || !!document["msFullscreenElement"] || document["fullScreen"] || this.isNodeFullscreen) && !this.isCordova; + if (!isfullscreen && this.fullscreen_mode === 0 && !force) + return; // ignore size events when not fullscreen and not using a fullscreen-in-browser mode + if (isfullscreen) + mode = this.fullscreen_scaling; + var dpr = this.devicePixelRatio; + if (mode >= 4) + { + if (mode === 5 && dpr !== 1) // integer scaling + { + w += 1; + h += 1; + } + orig_aspect = this.original_width / this.original_height; + cur_aspect = w / h; + if (cur_aspect > orig_aspect) + { + neww = h * orig_aspect; + if (mode === 5) // integer scaling + { + intscale = (neww * dpr) / this.original_width; + if (intscale > 1) + intscale = Math.floor(intscale); + else if (intscale < 1) + intscale = 1 / Math.ceil(1 / intscale); + neww = this.original_width * intscale / dpr; + newh = this.original_height * intscale / dpr; + offx = (w - neww) / 2; + offy = (h - newh) / 2; + w = neww; + h = newh; + } + else + { + offx = (w - neww) / 2; + w = neww; + } + } + else + { + newh = w / orig_aspect; + if (mode === 5) // integer scaling + { + intscale = (newh * dpr) / this.original_height; + if (intscale > 1) + intscale = Math.floor(intscale); + else if (intscale < 1) + intscale = 1 / Math.ceil(1 / intscale); + neww = this.original_width * intscale / dpr; + newh = this.original_height * intscale / dpr; + offx = (w - neww) / 2; + offy = (h - newh) / 2; + w = neww; + h = newh; + } + else + { + offy = (h - newh) / 2; + h = newh; + } + } + } + else if (isfullscreen && mode === 0) + { + offx = Math.floor((w - this.original_width) / 2); + offy = Math.floor((h - this.original_height) / 2); + w = this.original_width; + h = this.original_height; + } + if (mode < 2) + this.aspect_scale = dpr; + this.cssWidth = Math.round(w); + this.cssHeight = Math.round(h); + this.width = Math.round(w * dpr); + this.height = Math.round(h * dpr); + this.redraw = true; + if (this.wantFullscreenScalingQuality) + { + this.draw_width = this.width; + this.draw_height = this.height; + this.fullscreenScalingQuality = true; + } + else + { + if ((this.width < this.original_width && this.height < this.original_height) || mode === 1) + { + this.draw_width = this.width; + this.draw_height = this.height; + this.fullscreenScalingQuality = true; + } + else + { + this.draw_width = this.original_width; + this.draw_height = this.original_height; + this.fullscreenScalingQuality = false; + /*var orig_aspect = this.original_width / this.original_height; + var cur_aspect = this.width / this.height; + if ((this.fullscreen_mode !== 2 && cur_aspect > orig_aspect) || (this.fullscreen_mode === 2 && cur_aspect < orig_aspect)) + this.aspect_scale = this.height / this.original_height; + else + this.aspect_scale = this.width / this.original_width;*/ + if (mode === 2) // scale inner + { + orig_aspect = this.original_width / this.original_height; + cur_aspect = this.lastWindowWidth / this.lastWindowHeight; + if (cur_aspect < orig_aspect) + this.draw_width = this.draw_height * cur_aspect; + else if (cur_aspect > orig_aspect) + this.draw_height = this.draw_width / cur_aspect; + } + else if (mode === 3) + { + orig_aspect = this.original_width / this.original_height; + cur_aspect = this.lastWindowWidth / this.lastWindowHeight; + if (cur_aspect > orig_aspect) + this.draw_width = this.draw_height * cur_aspect; + else if (cur_aspect < orig_aspect) + this.draw_height = this.draw_width / cur_aspect; + } + } + } + if (this.canvasdiv && !this.isDomFree) + { + jQuery(this.canvasdiv).css({"width": Math.round(w) + "px", + "height": Math.round(h) + "px", + "margin-left": Math.floor(offx) + "px", + "margin-top": Math.floor(offy) + "px"}); + if (typeof cr_is_preview !== "undefined") + { + jQuery("#borderwrap").css({"width": Math.round(w) + "px", + "height": Math.round(h) + "px"}); + } + } + if (this.canvas) + { + this.canvas.width = Math.round(w * dpr); + this.canvas.height = Math.round(h * dpr); + if (this.isEjecta) + { + this.canvas.style.left = Math.floor(offx) + "px"; + this.canvas.style.top = Math.floor(offy) + "px"; + this.canvas.style.width = Math.round(w) + "px"; + this.canvas.style.height = Math.round(h) + "px"; + } + else if (this.isRetina && !this.isDomFree) + { + this.canvas.style.width = Math.round(w) + "px"; + this.canvas.style.height = Math.round(h) + "px"; + } + } + if (this.overlay_canvas) + { + this.overlay_canvas.width = Math.round(w * dpr); + this.overlay_canvas.height = Math.round(h * dpr); + this.overlay_canvas.style.width = this.cssWidth + "px"; + this.overlay_canvas.style.height = this.cssHeight + "px"; + } + if (this.glwrap) + { + this.glwrap.setSize(Math.round(w * dpr), Math.round(h * dpr)); + } + if (this.isDirectCanvas && this.ctx) + { + this.ctx.width = Math.round(w); + this.ctx.height = Math.round(h); + } + if (this.ctx) + { + this.setCtxImageSmoothingEnabled(this.ctx, this.linearSampling); + } + this.tryLockOrientation(); + if (this.isiPhone && !this.isCordova) + { + window.scrollTo(0, 0); + } + }; + Runtime.prototype.tryLockOrientation = function () + { + if (!this.autoLockOrientation || this.orientations === 0) + return; + var orientation = "portrait"; + if (this.orientations === 2) + orientation = "landscape"; + try { + if (screen["orientation"] && screen["orientation"]["lock"]) + screen["orientation"]["lock"](orientation).catch(function(){}); + else if (screen["lockOrientation"]) + screen["lockOrientation"](orientation); + else if (screen["webkitLockOrientation"]) + screen["webkitLockOrientation"](orientation); + else if (screen["mozLockOrientation"]) + screen["mozLockOrientation"](orientation); + else if (screen["msLockOrientation"]) + screen["msLockOrientation"](orientation); + } + catch (e) + { + if (console && console.warn) + console.warn("Failed to lock orientation: ", e); + } + }; + Runtime.prototype.onContextLost = function () + { + this.glwrap.contextLost(); + this.is_WebGL_context_lost = true; + var i, len, t; + for (i = 0, len = this.types_by_index.length; i < len; i++) + { + t = this.types_by_index[i]; + if (t.onLostWebGLContext) + t.onLostWebGLContext(); + } + }; + Runtime.prototype.onContextRestored = function () + { + this.is_WebGL_context_lost = false; + var i, len, t; + for (i = 0, len = this.types_by_index.length; i < len; i++) + { + t = this.types_by_index[i]; + if (t.onRestoreWebGLContext) + t.onRestoreWebGLContext(); + } + }; + Runtime.prototype.positionOverlayCanvas = function() + { + if (this.isDomFree) + return; + var isfullscreen = (document["mozFullScreen"] || document["webkitIsFullScreen"] || document["fullScreen"] || !!document["msFullscreenElement"] || this.isNodeFullscreen) && !this.isCordova; + var overlay_position = isfullscreen ? jQuery(this.canvas).offset() : jQuery(this.canvas).position(); + overlay_position.position = "absolute"; + jQuery(this.overlay_canvas).css(overlay_position); + }; + var caf = window["cancelAnimationFrame"] || + window["mozCancelAnimationFrame"] || + window["webkitCancelAnimationFrame"] || + window["msCancelAnimationFrame"] || + window["oCancelAnimationFrame"]; + Runtime.prototype["setSuspended"] = function (s) + { + var i, len; + var self = this; + if (s && !this.isSuspended) + { + cr.logexport("[Construct 2] Suspending"); + this.isSuspended = true; // next tick will be last + if (this.raf_id !== -1 && caf) // note: CocoonJS does not implement cancelAnimationFrame + caf(this.raf_id); + if (this.timeout_id !== -1) + clearTimeout(this.timeout_id); + for (i = 0, len = this.suspend_events.length; i < len; i++) + this.suspend_events[i](true); + } + else if (!s && this.isSuspended) + { + cr.logexport("[Construct 2] Resuming"); + this.isSuspended = false; + this.last_tick_time = cr.performance_now(); // ensure first tick is a zero-dt one + this.last_fps_time = cr.performance_now(); // reset FPS counter + this.framecount = 0; + this.logictime = 0; + for (i = 0, len = this.suspend_events.length; i < len; i++) + this.suspend_events[i](false); + this.tick(false); // kick off runtime again + } + }; + Runtime.prototype.addSuspendCallback = function (f) + { + this.suspend_events.push(f); + }; + Runtime.prototype.GetObjectReference = function (i) + { +; + return this.objectRefTable[i]; + }; + Runtime.prototype.loadProject = function (data_response) + { +; + if (!data_response || !data_response["project"]) + cr.logerror("Project model unavailable"); + var pm = data_response["project"]; + this.name = pm[0]; + this.first_layout = pm[1]; + this.fullscreen_mode = pm[12]; // 0 = off, 1 = crop, 2 = scale inner, 3 = scale outer, 4 = letterbox scale, 5 = integer letterbox scale + this.fullscreen_mode_set = pm[12]; + this.original_width = pm[10]; + this.original_height = pm[11]; + this.parallax_x_origin = this.original_width / 2; + this.parallax_y_origin = this.original_height / 2; + if (this.isDomFree && !this.isEjecta && (pm[12] >= 4 || pm[12] === 0)) + { + cr.logexport("[Construct 2] Letterbox scale fullscreen modes are not supported on this platform - falling back to 'Scale outer'"); + this.fullscreen_mode = 3; + this.fullscreen_mode_set = 3; + } + this.uses_loader_layout = pm[18]; + this.loaderstyle = pm[19]; + if (this.loaderstyle === 0) + { + var loaderImage = new Image(); + loaderImage.crossOrigin = "anonymous"; + this.setImageSrc(loaderImage, "loading-logo.png"); + this.loaderlogos = { + logo: loaderImage + }; + } + else if (this.loaderstyle === 4) // c2 splash + { + var loaderC2logo_1024 = new Image(); + loaderC2logo_1024.src = ""; + var loaderC2logo_512 = new Image(); + loaderC2logo_512.src = ""; + var loaderC2logo_256 = new Image(); + loaderC2logo_256.src = ""; + var loaderC2logo_128 = new Image(); + loaderC2logo_128.src = ""; + var loaderPowered_1024 = new Image(); + loaderPowered_1024.src = ""; + var loaderPowered_512 = new Image(); + loaderPowered_512.src = ""; + var loaderPowered_256 = new Image(); + loaderPowered_256.src = ""; + var loaderPowered_128 = new Image(); + loaderPowered_128.src = ""; + var loaderWebsite_1024 = new Image(); + loaderWebsite_1024.src = ""; + var loaderWebsite_512 = new Image(); + loaderWebsite_512.src = ""; + var loaderWebsite_256 = new Image(); + loaderWebsite_256.src = ""; + var loaderWebsite_128 = new Image(); + loaderWebsite_128.src = ""; + this.loaderlogos = { + logo: [loaderC2logo_1024, loaderC2logo_512, loaderC2logo_256, loaderC2logo_128], + powered: [loaderPowered_1024, loaderPowered_512, loaderPowered_256, loaderPowered_128], + website: [loaderWebsite_1024, loaderWebsite_512, loaderWebsite_256, loaderWebsite_128] + }; + } + this.next_uid = pm[21]; + this.objectRefTable = cr.getObjectRefTable(); + this.system = new cr.system_object(this); + var i, len, j, lenj, k, lenk, idstr, m, b, t, f, p; + var plugin, plugin_ctor; + for (i = 0, len = pm[2].length; i < len; i++) + { + m = pm[2][i]; + p = this.GetObjectReference(m[0]); +; + cr.add_common_aces(m, p.prototype); + plugin = new p(this); + plugin.singleglobal = m[1]; + plugin.is_world = m[2]; + plugin.is_rotatable = m[5]; + plugin.must_predraw = m[9]; + if (plugin.onCreate) + plugin.onCreate(); // opportunity to override default ACEs + cr.seal(plugin); + this.plugins.push(plugin); + } + this.objectRefTable = cr.getObjectRefTable(); + for (i = 0, len = pm[3].length; i < len; i++) + { + m = pm[3][i]; + plugin_ctor = this.GetObjectReference(m[1]); +; + plugin = null; + for (j = 0, lenj = this.plugins.length; j < lenj; j++) + { + if (this.plugins[j] instanceof plugin_ctor) + { + plugin = this.plugins[j]; + break; + } + } +; +; + var type_inst = new plugin.Type(plugin); +; + type_inst.name = m[0]; + type_inst.is_family = m[2]; + type_inst.instvar_sids = m[3].slice(0); + type_inst.vars_count = m[3].length; + type_inst.behs_count = m[4]; + type_inst.fx_count = m[5]; + type_inst.sid = m[11]; + if (type_inst.is_family) + { + type_inst.members = []; // types in this family + type_inst.family_index = this.family_count++; + type_inst.families = null; + } + else + { + type_inst.members = null; + type_inst.family_index = -1; + type_inst.families = []; // families this type belongs to + } + type_inst.family_var_map = null; + type_inst.family_beh_map = null; + type_inst.family_fx_map = null; + type_inst.is_contained = false; + type_inst.container = null; + if (m[6]) + { + type_inst.texture_file = m[6][0]; + type_inst.texture_filesize = m[6][1]; + type_inst.texture_pixelformat = m[6][2]; + } + else + { + type_inst.texture_file = null; + type_inst.texture_filesize = 0; + type_inst.texture_pixelformat = 0; // rgba8 + } + if (m[7]) + { + type_inst.animations = m[7]; + } + else + { + type_inst.animations = null; + } + type_inst.index = i; // save index in to types array in type + type_inst.instances = []; // all instances of this type + type_inst.deadCache = []; // destroyed instances to recycle next create + type_inst.solstack = [new cr.selection(type_inst)]; // initialise SOL stack with one empty SOL + type_inst.cur_sol = 0; + type_inst.default_instance = null; + type_inst.default_layerindex = 0; + type_inst.stale_iids = true; + type_inst.updateIIDs = cr.type_updateIIDs; + type_inst.getFirstPicked = cr.type_getFirstPicked; + type_inst.getPairedInstance = cr.type_getPairedInstance; + type_inst.getCurrentSol = cr.type_getCurrentSol; + type_inst.pushCleanSol = cr.type_pushCleanSol; + type_inst.pushCopySol = cr.type_pushCopySol; + type_inst.popSol = cr.type_popSol; + type_inst.getBehaviorByName = cr.type_getBehaviorByName; + type_inst.getBehaviorIndexByName = cr.type_getBehaviorIndexByName; + type_inst.getEffectIndexByName = cr.type_getEffectIndexByName; + type_inst.applySolToContainer = cr.type_applySolToContainer; + type_inst.getInstanceByIID = cr.type_getInstanceByIID; + type_inst.collision_grid = new cr.SparseGrid(this.original_width, this.original_height); + type_inst.any_cell_changed = true; + type_inst.any_instance_parallaxed = false; + type_inst.extra = {}; + type_inst.toString = cr.type_toString; + type_inst.behaviors = []; + for (j = 0, lenj = m[8].length; j < lenj; j++) + { + b = m[8][j]; + var behavior_ctor = this.GetObjectReference(b[1]); + var behavior_plugin = null; + for (k = 0, lenk = this.behaviors.length; k < lenk; k++) + { + if (this.behaviors[k] instanceof behavior_ctor) + { + behavior_plugin = this.behaviors[k]; + break; + } + } + if (!behavior_plugin) + { + behavior_plugin = new behavior_ctor(this); + behavior_plugin.my_types = []; // types using this behavior + behavior_plugin.my_instances = new cr.ObjectSet(); // instances of this behavior + if (behavior_plugin.onCreate) + behavior_plugin.onCreate(); + cr.seal(behavior_plugin); + this.behaviors.push(behavior_plugin); + if (cr.behaviors.solid && behavior_plugin instanceof cr.behaviors.solid) + this.solidBehavior = behavior_plugin; + if (cr.behaviors.jumpthru && behavior_plugin instanceof cr.behaviors.jumpthru) + this.jumpthruBehavior = behavior_plugin; + if (cr.behaviors.shadowcaster && behavior_plugin instanceof cr.behaviors.shadowcaster) + this.shadowcasterBehavior = behavior_plugin; + } + if (behavior_plugin.my_types.indexOf(type_inst) === -1) + behavior_plugin.my_types.push(type_inst); + var behavior_type = new behavior_plugin.Type(behavior_plugin, type_inst); + behavior_type.name = b[0]; + behavior_type.sid = b[2]; + behavior_type.onCreate(); + cr.seal(behavior_type); + type_inst.behaviors.push(behavior_type); + } + type_inst.global = m[9]; + type_inst.isOnLoaderLayout = m[10]; + type_inst.effect_types = []; + for (j = 0, lenj = m[12].length; j < lenj; j++) + { + type_inst.effect_types.push({ + id: m[12][j][0], + name: m[12][j][1], + shaderindex: -1, + preservesOpaqueness: false, + active: true, + index: j + }); + } + type_inst.tile_poly_data = m[13]; + if (!this.uses_loader_layout || type_inst.is_family || type_inst.isOnLoaderLayout || !plugin.is_world) + { + type_inst.onCreate(); + cr.seal(type_inst); + } + if (type_inst.name) + this.types[type_inst.name] = type_inst; + this.types_by_index.push(type_inst); + if (plugin.singleglobal) + { + var instance = new plugin.Instance(type_inst); + instance.uid = this.next_uid++; + instance.puid = this.next_puid++; + instance.iid = 0; + instance.get_iid = cr.inst_get_iid; + instance.toString = cr.inst_toString; + instance.properties = m[14]; + instance.onCreate(); + cr.seal(instance); + type_inst.instances.push(instance); + this.objectsByUid[instance.uid.toString()] = instance; + } + } + for (i = 0, len = pm[4].length; i < len; i++) + { + var familydata = pm[4][i]; + var familytype = this.types_by_index[familydata[0]]; + var familymember; + for (j = 1, lenj = familydata.length; j < lenj; j++) + { + familymember = this.types_by_index[familydata[j]]; + familymember.families.push(familytype); + familytype.members.push(familymember); + } + } + for (i = 0, len = pm[28].length; i < len; i++) + { + var containerdata = pm[28][i]; + var containertypes = []; + for (j = 0, lenj = containerdata.length; j < lenj; j++) + containertypes.push(this.types_by_index[containerdata[j]]); + for (j = 0, lenj = containertypes.length; j < lenj; j++) + { + containertypes[j].is_contained = true; + containertypes[j].container = containertypes; + } + } + if (this.family_count > 0) + { + for (i = 0, len = this.types_by_index.length; i < len; i++) + { + t = this.types_by_index[i]; + if (t.is_family || !t.families.length) + continue; + t.family_var_map = new Array(this.family_count); + t.family_beh_map = new Array(this.family_count); + t.family_fx_map = new Array(this.family_count); + var all_fx = []; + var varsum = 0; + var behsum = 0; + var fxsum = 0; + for (j = 0, lenj = t.families.length; j < lenj; j++) + { + f = t.families[j]; + t.family_var_map[f.family_index] = varsum; + varsum += f.vars_count; + t.family_beh_map[f.family_index] = behsum; + behsum += f.behs_count; + t.family_fx_map[f.family_index] = fxsum; + fxsum += f.fx_count; + for (k = 0, lenk = f.effect_types.length; k < lenk; k++) + all_fx.push(cr.shallowCopy({}, f.effect_types[k])); + } + t.effect_types = all_fx.concat(t.effect_types); + for (j = 0, lenj = t.effect_types.length; j < lenj; j++) + t.effect_types[j].index = j; + } + } + for (i = 0, len = pm[5].length; i < len; i++) + { + m = pm[5][i]; + var layout = new cr.layout(this, m); + cr.seal(layout); + this.layouts[layout.name] = layout; + this.layouts_by_index.push(layout); + } + for (i = 0, len = pm[6].length; i < len; i++) + { + m = pm[6][i]; + var sheet = new cr.eventsheet(this, m); + cr.seal(sheet); + this.eventsheets[sheet.name] = sheet; + this.eventsheets_by_index.push(sheet); + } + for (i = 0, len = this.eventsheets_by_index.length; i < len; i++) + this.eventsheets_by_index[i].postInit(); + for (i = 0, len = this.eventsheets_by_index.length; i < len; i++) + this.eventsheets_by_index[i].updateDeepIncludes(); + for (i = 0, len = this.triggers_to_postinit.length; i < len; i++) + this.triggers_to_postinit[i].postInit(); + cr.clearArray(this.triggers_to_postinit) + this.audio_to_preload = pm[7]; + this.files_subfolder = pm[8]; + this.pixel_rounding = pm[9]; + this.aspect_scale = 1.0; + this.enableWebGL = pm[13]; + this.linearSampling = pm[14]; + this.clearBackground = pm[15]; + this.versionstr = pm[16]; + this.useHighDpi = pm[17]; + this.orientations = pm[20]; // 0 = any, 1 = portrait, 2 = landscape + this.autoLockOrientation = (this.orientations > 0); + this.pauseOnBlur = pm[22]; + this.wantFullscreenScalingQuality = pm[23]; // false = low quality, true = high quality + this.fullscreenScalingQuality = this.wantFullscreenScalingQuality; + this.downscalingQuality = pm[24]; // 0 = low (mips off), 1 = medium (mips on, dense spritesheet), 2 = high (mips on, sparse spritesheet) + this.preloadSounds = pm[25]; // 0 = no, 1 = yes + this.projectName = pm[26]; + this.enableFrontToBack = pm[27] && !this.isIE; // front-to-back renderer disabled in IE (but not Edge) + this.start_time = Date.now(); + cr.clearArray(this.objectRefTable); + this.initRendererAndLoader(); + }; + var anyImageHadError = false; + var MAX_PARALLEL_IMAGE_LOADS = 100; + var currentlyActiveImageLoads = 0; + var imageLoadQueue = []; // array of [img, srcToSet] + Runtime.prototype.queueImageLoad = function (img_, src_) + { + var self = this; + var doneFunc = function () + { + currentlyActiveImageLoads--; + self.maybeLoadNextImages(); + }; + img_.addEventListener("load", doneFunc); + img_.addEventListener("error", doneFunc); + imageLoadQueue.push([img_, src_]); + this.maybeLoadNextImages(); + }; + Runtime.prototype.maybeLoadNextImages = function () + { + var next; + while (imageLoadQueue.length && currentlyActiveImageLoads < MAX_PARALLEL_IMAGE_LOADS) + { + currentlyActiveImageLoads++; + next = imageLoadQueue.shift(); + this.setImageSrc(next[0], next[1]); + } + }; + Runtime.prototype.waitForImageLoad = function (img_, src_) + { + img_["cocoonLazyLoad"] = true; + img_.onerror = function (e) + { + img_.c2error = true; + anyImageHadError = true; + if (console && console.error) + console.error("Error loading image '" + img_.src + "': ", e); + }; + if (this.isEjecta) + { + img_.src = src_; + } + else if (!img_.src) + { + if (typeof XAPKReader !== "undefined") + { + XAPKReader.get(src_, function (expanded_url) + { + img_.src = expanded_url; + }, function (e) + { + img_.c2error = true; + anyImageHadError = true; + if (console && console.error) + console.error("Error extracting image '" + src_ + "' from expansion file: ", e); + }); + } + else + { + img_.crossOrigin = "anonymous"; // required for Arcade sandbox compatibility + this.queueImageLoad(img_, src_); // use a queue to avoid requesting all images simultaneously + } + } + this.wait_for_textures.push(img_); + }; + Runtime.prototype.findWaitingTexture = function (src_) + { + var i, len; + for (i = 0, len = this.wait_for_textures.length; i < len; i++) + { + if (this.wait_for_textures[i].cr_src === src_) + return this.wait_for_textures[i]; + } + return null; + }; + var audio_preload_totalsize = 0; + var audio_preload_started = false; + Runtime.prototype.getready = function () + { + if (!this.audioInstance) + return; + audio_preload_totalsize = this.audioInstance.setPreloadList(this.audio_to_preload); + }; + Runtime.prototype.areAllTexturesAndSoundsLoaded = function () + { + var totalsize = audio_preload_totalsize; + var completedsize = 0; + var audiocompletedsize = 0; + var ret = true; + var i, len, img; + for (i = 0, len = this.wait_for_textures.length; i < len; i++) + { + img = this.wait_for_textures[i]; + var filesize = img.cr_filesize; + if (!filesize || filesize <= 0) + filesize = 50000; + totalsize += filesize; + if (!!img.src && (img.complete || img["loaded"]) && !img.c2error) + completedsize += filesize; + else + ret = false; // not all textures loaded + } + if (ret && this.preloadSounds && this.audioInstance) + { + if (!audio_preload_started) + { + this.audioInstance.startPreloads(); + audio_preload_started = true; + } + audiocompletedsize = this.audioInstance.getPreloadedSize(); + completedsize += audiocompletedsize; + if (audiocompletedsize < audio_preload_totalsize) + ret = false; // not done yet + } + if (totalsize == 0) + this.progress = 1; // indicate to C2 splash loader that it can finish now + else + this.progress = (completedsize / totalsize); + return ret; + }; + var isC2SplashDone = false; + Runtime.prototype.go = function () + { + if (!this.ctx && !this.glwrap) + return; + var ctx = this.ctx || this.overlay_ctx; + if (this.overlay_canvas) + this.positionOverlayCanvas(); + var curwidth = window.innerWidth; + var curheight = window.innerHeight; + if (this.lastWindowWidth !== curwidth || this.lastWindowHeight !== curheight) + { + this["setSize"](curwidth, curheight); + } + this.progress = 0; + this.last_progress = -1; + var self = this; + if (this.areAllTexturesAndSoundsLoaded() && (this.loaderstyle !== 4 || isC2SplashDone)) + { + this.go_loading_finished(); + } + else + { + var ms_elapsed = Date.now() - this.start_time; + if (ctx) + { + var overlay_width = this.width; + var overlay_height = this.height; + var dpr = this.devicePixelRatio; + if (this.loaderstyle < 3 && (this.isCocoonJs || (ms_elapsed >= 500 && this.last_progress != this.progress))) + { + ctx.clearRect(0, 0, overlay_width, overlay_height); + var mx = overlay_width / 2; + var my = overlay_height / 2; + var haslogo = (this.loaderstyle === 0 && this.loaderlogos.logo.complete); + var hlw = 40 * dpr; + var hlh = 0; + var logowidth = 80 * dpr; + var logoheight; + if (haslogo) + { + var loaderLogoImage = this.loaderlogos.logo; + logowidth = loaderLogoImage.width * dpr; + logoheight = loaderLogoImage.height * dpr; + hlw = logowidth / 2; + hlh = logoheight / 2; + ctx.drawImage(loaderLogoImage, cr.floor(mx - hlw), cr.floor(my - hlh), logowidth, logoheight); + } + if (this.loaderstyle <= 1) + { + my += hlh + (haslogo ? 12 * dpr : 0); + mx -= hlw; + mx = cr.floor(mx) + 0.5; + my = cr.floor(my) + 0.5; + ctx.fillStyle = anyImageHadError ? "red" : "DodgerBlue"; + ctx.fillRect(mx, my, Math.floor(logowidth * this.progress), 6 * dpr); + ctx.strokeStyle = "black"; + ctx.strokeRect(mx, my, logowidth, 6 * dpr); + ctx.strokeStyle = "white"; + ctx.strokeRect(mx - 1 * dpr, my - 1 * dpr, logowidth + 2 * dpr, 8 * dpr); + } + else if (this.loaderstyle === 2) + { + ctx.font = (this.isEjecta ? "12pt ArialMT" : "12pt Arial"); + ctx.fillStyle = anyImageHadError ? "#f00" : "#999"; + ctx.textBaseLine = "middle"; + var percent_text = Math.round(this.progress * 100) + "%"; + var text_dim = ctx.measureText ? ctx.measureText(percent_text) : null; + var text_width = text_dim ? text_dim.width : 0; + ctx.fillText(percent_text, mx - (text_width / 2), my); + } + this.last_progress = this.progress; + } + else if (this.loaderstyle === 4) + { + this.draw_c2_splash_loader(ctx); + if (raf) + raf(function() { self.go(); }); + else + setTimeout(function() { self.go(); }, 16); + return; + } + } + setTimeout(function() { self.go(); }, (this.isCocoonJs ? 10 : 100)); + } + }; + var splashStartTime = -1; + var splashFadeInDuration = 300; + var splashFadeOutDuration = 300; + var splashAfterFadeOutWait = (typeof cr_is_preview === "undefined" ? 200 : 0); + var splashIsFadeIn = true; + var splashIsFadeOut = false; + var splashFadeInFinish = 0; + var splashFadeOutStart = 0; + var splashMinDisplayTime = (typeof cr_is_preview === "undefined" ? 3000 : 0); + var renderViaCanvas = null; + var renderViaCtx = null; + var splashFrameNumber = 0; + function maybeCreateRenderViaCanvas(w, h) + { + if (!renderViaCanvas || renderViaCanvas.width !== w || renderViaCanvas.height !== h) + { + renderViaCanvas = document.createElement("canvas"); + renderViaCanvas.width = w; + renderViaCanvas.height = h; + renderViaCtx = renderViaCanvas.getContext("2d"); + } + }; + function mipImage(arr, size) + { + if (size <= 128) + return arr[3]; + else if (size <= 256) + return arr[2]; + else if (size <= 512) + return arr[1]; + else + return arr[0]; + }; + Runtime.prototype.draw_c2_splash_loader = function(ctx) + { + if (isC2SplashDone) + return; + var w = Math.ceil(this.width); + var h = Math.ceil(this.height); + var dpr = this.devicePixelRatio; + var logoimages = this.loaderlogos.logo; + var poweredimages = this.loaderlogos.powered; + var websiteimages = this.loaderlogos.website; + for (var i = 0; i < 4; ++i) + { + if (!logoimages[i].complete || !poweredimages[i].complete || !websiteimages[i].complete) + return; + } + if (splashFrameNumber === 0) + splashStartTime = Date.now(); + var nowTime = Date.now(); + var isRenderingVia = false; + var renderToCtx = ctx; + var drawW, drawH; + if (splashIsFadeIn || splashIsFadeOut) + { + ctx.clearRect(0, 0, w, h); + maybeCreateRenderViaCanvas(w, h); + renderToCtx = renderViaCtx; + isRenderingVia = true; + if (splashIsFadeIn && splashFrameNumber === 1) + splashStartTime = Date.now(); + } + else + { + ctx.globalAlpha = 1; + } + renderToCtx.fillStyle = "#333333"; + renderToCtx.fillRect(0, 0, w, h); + if (this.cssHeight > 256) + { + drawW = cr.clamp(h * 0.22, 105, w * 0.6); + drawH = drawW * 0.25; + renderToCtx.drawImage(mipImage(poweredimages, drawW), w * 0.5 - drawW/2, h * 0.2 - drawH/2, drawW, drawH); + drawW = Math.min(h * 0.395, w * 0.95); + drawH = drawW; + renderToCtx.drawImage(mipImage(logoimages, drawW), w * 0.5 - drawW/2, h * 0.485 - drawH/2, drawW, drawH); + drawW = cr.clamp(h * 0.22, 105, w * 0.6); + drawH = drawW * 0.25; + renderToCtx.drawImage(mipImage(websiteimages, drawW), w * 0.5 - drawW/2, h * 0.868 - drawH/2, drawW, drawH); + renderToCtx.fillStyle = "#3C3C3C"; + drawW = w; + drawH = Math.max(h * 0.005, 2); + renderToCtx.fillRect(0, h * 0.8 - drawH/2, drawW, drawH); + renderToCtx.fillStyle = anyImageHadError ? "red" : "#E0FF65"; + drawW = w * this.progress; + renderToCtx.fillRect(w * 0.5 - drawW/2, h * 0.8 - drawH/2, drawW, drawH); + } + else + { + drawW = h * 0.55; + drawH = drawW; + renderToCtx.drawImage(mipImage(logoimages, drawW), w * 0.5 - drawW/2, h * 0.45 - drawH/2, drawW, drawH); + renderToCtx.fillStyle = "#3C3C3C"; + drawW = w; + drawH = Math.max(h * 0.005, 2); + renderToCtx.fillRect(0, h * 0.85 - drawH/2, drawW, drawH); + renderToCtx.fillStyle = anyImageHadError ? "red" : "#E0FF65"; + drawW = w * this.progress; + renderToCtx.fillRect(w * 0.5 - drawW/2, h * 0.85 - drawH/2, drawW, drawH); + } + if (isRenderingVia) + { + if (splashIsFadeIn) + { + if (splashFrameNumber === 0) + ctx.globalAlpha = 0; + else + ctx.globalAlpha = Math.min((nowTime - splashStartTime) / splashFadeInDuration, 1); + } + else if (splashIsFadeOut) + { + ctx.globalAlpha = Math.max(1 - (nowTime - splashFadeOutStart) / splashFadeOutDuration, 0); + } + ctx.drawImage(renderViaCanvas, 0, 0, w, h); + } + if (splashIsFadeIn && nowTime - splashStartTime >= splashFadeInDuration && splashFrameNumber >= 2) + { + splashIsFadeIn = false; + splashFadeInFinish = nowTime; + } + if (!splashIsFadeIn && nowTime - splashFadeInFinish >= splashMinDisplayTime && !splashIsFadeOut && this.progress >= 1) + { + splashIsFadeOut = true; + splashFadeOutStart = nowTime; + } + if ((splashIsFadeOut && nowTime - splashFadeOutStart >= splashFadeOutDuration + splashAfterFadeOutWait) || + (typeof cr_is_preview !== "undefined" && this.progress >= 1 && Date.now() - splashStartTime < 500)) + { + isC2SplashDone = true; + splashIsFadeIn = false; + splashIsFadeOut = false; + renderViaCanvas = null; + renderViaCtx = null; + this.loaderlogos = null; + } + ++splashFrameNumber; + }; + Runtime.prototype.go_loading_finished = function () + { + if (this.overlay_canvas) + { + this.canvas.parentNode.removeChild(this.overlay_canvas); + this.overlay_ctx = null; + this.overlay_canvas = null; + } + this.start_time = Date.now(); + this.last_fps_time = cr.performance_now(); // for counting framerate + var i, len, t; + if (this.uses_loader_layout) + { + for (i = 0, len = this.types_by_index.length; i < len; i++) + { + t = this.types_by_index[i]; + if (!t.is_family && !t.isOnLoaderLayout && t.plugin.is_world) + { + t.onCreate(); + cr.seal(t); + } + } + } + else + this.isloading = false; + for (i = 0, len = this.layouts_by_index.length; i < len; i++) + { + this.layouts_by_index[i].createGlobalNonWorlds(); + } + if (this.fullscreen_mode >= 2) + { + var orig_aspect = this.original_width / this.original_height; + var cur_aspect = this.width / this.height; + if ((this.fullscreen_mode !== 2 && cur_aspect > orig_aspect) || (this.fullscreen_mode === 2 && cur_aspect < orig_aspect)) + this.aspect_scale = this.height / this.original_height; + else + this.aspect_scale = this.width / this.original_width; + } + if (this.first_layout) + this.layouts[this.first_layout].startRunning(); + else + this.layouts_by_index[0].startRunning(); +; + if (!this.uses_loader_layout) + { + this.loadingprogress = 1; + this.trigger(cr.system_object.prototype.cnds.OnLoadFinished, null); + if (window["C2_RegisterSW"]) // note not all platforms use SW + window["C2_RegisterSW"](); + } + if (navigator["splashscreen"] && navigator["splashscreen"]["hide"]) + navigator["splashscreen"]["hide"](); + for (i = 0, len = this.types_by_index.length; i < len; i++) + { + t = this.types_by_index[i]; + if (t.onAppBegin) + t.onAppBegin(); + } + if (document["hidden"] || document["webkitHidden"] || document["mozHidden"] || document["msHidden"]) + { + window["cr_setSuspended"](true); // stop rendering + } + else + { + this.tick(false); + } + if (this.isDirectCanvas) + AppMobi["webview"]["execute"]("onGameReady();"); + }; + Runtime.prototype.tick = function (background_wake, timestamp, debug_step) + { + if (!this.running_layout) + return; + var nowtime = cr.performance_now(); + var logic_start = nowtime; + if (!debug_step && this.isSuspended && !background_wake) + return; + if (!background_wake) + { + if (raf) + this.raf_id = raf(this.tickFunc); + else + { + this.timeout_id = setTimeout(this.tickFunc, this.isMobile ? 1 : 16); + } + } + var raf_time = timestamp || nowtime; + var fsmode = this.fullscreen_mode; + var isfullscreen = (document["mozFullScreen"] || document["webkitIsFullScreen"] || document["fullScreen"] || !!document["msFullscreenElement"]) && !this.isCordova; + if ((isfullscreen || this.isNodeFullscreen) && this.fullscreen_scaling > 0) + fsmode = this.fullscreen_scaling; + if (fsmode > 0) // r222: experimentally enabling this workaround for all platforms + { + var curwidth = window.innerWidth; + var curheight = window.innerHeight; + if (this.lastWindowWidth !== curwidth || this.lastWindowHeight !== curheight) + { + this["setSize"](curwidth, curheight); + } + } + if (!this.isDomFree) + { + if (isfullscreen) + { + if (!this.firstInFullscreen) + this.firstInFullscreen = true; + } + else + { + if (this.firstInFullscreen) + { + this.firstInFullscreen = false; + if (this.fullscreen_mode === 0) + { + this["setSize"](Math.round(this.oldWidth / this.devicePixelRatio), Math.round(this.oldHeight / this.devicePixelRatio), true); + } + } + else + { + this.oldWidth = this.width; + this.oldHeight = this.height; + } + } + } + if (this.isloading) + { + var done = this.areAllTexturesAndSoundsLoaded(); // updates this.progress + this.loadingprogress = this.progress; + if (done) + { + this.isloading = false; + this.progress = 1; + this.trigger(cr.system_object.prototype.cnds.OnLoadFinished, null); + if (window["C2_RegisterSW"]) + window["C2_RegisterSW"](); + } + } + this.logic(raf_time); + if ((this.redraw || this.isCocoonJs) && !this.is_WebGL_context_lost && !this.suspendDrawing && !background_wake) + { + this.redraw = false; + if (this.glwrap) + this.drawGL(); + else + this.draw(); + if (this.snapshotCanvas) + { + if (this.canvas && this.canvas.toDataURL) + { + this.snapshotData = this.canvas.toDataURL(this.snapshotCanvas[0], this.snapshotCanvas[1]); + if (window["cr_onSnapshot"]) + window["cr_onSnapshot"](this.snapshotData); + this.trigger(cr.system_object.prototype.cnds.OnCanvasSnapshot, null); + } + this.snapshotCanvas = null; + } + } + if (!this.hit_breakpoint) + { + this.tickcount++; + this.tickcount_nosave++; + this.execcount++; + this.framecount++; + } + this.logictime += cr.performance_now() - logic_start; + }; + Runtime.prototype.logic = function (cur_time) + { + var i, leni, j, lenj, k, lenk, type, inst, binst; + if (cur_time - this.last_fps_time >= 1000) // every 1 second + { + this.last_fps_time += 1000; + if (cur_time - this.last_fps_time >= 1000) + this.last_fps_time = cur_time; + this.fps = this.framecount; + this.framecount = 0; + this.cpuutilisation = this.logictime; + this.logictime = 0; + } + var wallDt = 0; + if (this.last_tick_time !== 0) + { + var ms_diff = cur_time - this.last_tick_time; + if (ms_diff < 0) + ms_diff = 0; + wallDt = ms_diff / 1000.0; // dt measured in seconds + this.dt1 = wallDt; + if (this.dt1 > 0.5) + this.dt1 = 0; + else if (this.dt1 > 1 / this.minimumFramerate) + this.dt1 = 1 / this.minimumFramerate; + } + this.last_tick_time = cur_time; + this.dt = this.dt1 * this.timescale; + this.kahanTime.add(this.dt); + this.wallTime.add(wallDt); // prevent min/max framerate affecting wall clock + var isfullscreen = (document["mozFullScreen"] || document["webkitIsFullScreen"] || document["fullScreen"] || !!document["msFullscreenElement"] || this.isNodeFullscreen) && !this.isCordova; + if (this.fullscreen_mode >= 2 /* scale */ || (isfullscreen && this.fullscreen_scaling > 0)) + { + var orig_aspect = this.original_width / this.original_height; + var cur_aspect = this.width / this.height; + var mode = this.fullscreen_mode; + if (isfullscreen && this.fullscreen_scaling > 0) + mode = this.fullscreen_scaling; + if ((mode !== 2 && cur_aspect > orig_aspect) || (mode === 2 && cur_aspect < orig_aspect)) + { + this.aspect_scale = this.height / this.original_height; + } + else + { + this.aspect_scale = this.width / this.original_width; + } + if (this.running_layout) + { + this.running_layout.scrollToX(this.running_layout.scrollX); + this.running_layout.scrollToY(this.running_layout.scrollY); + } + } + else + this.aspect_scale = (this.isRetina ? this.devicePixelRatio : 1); + this.ClearDeathRow(); + this.isInOnDestroy++; + this.system.runWaits(); // prevent instance list changing + this.isInOnDestroy--; + this.ClearDeathRow(); // allow instance list changing + this.isInOnDestroy++; + var tickarr = this.objects_to_pretick.valuesRef(); + for (i = 0, leni = tickarr.length; i < leni; i++) + tickarr[i].pretick(); + for (i = 0, leni = this.types_by_index.length; i < leni; i++) + { + type = this.types_by_index[i]; + if (type.is_family || (!type.behaviors.length && !type.families.length)) + continue; + for (j = 0, lenj = type.instances.length; j < lenj; j++) + { + inst = type.instances[j]; + for (k = 0, lenk = inst.behavior_insts.length; k < lenk; k++) + { + inst.behavior_insts[k].tick(); + } + } + } + for (i = 0, leni = this.types_by_index.length; i < leni; i++) + { + type = this.types_by_index[i]; + if (type.is_family || (!type.behaviors.length && !type.families.length)) + continue; // type doesn't have any behaviors + for (j = 0, lenj = type.instances.length; j < lenj; j++) + { + inst = type.instances[j]; + for (k = 0, lenk = inst.behavior_insts.length; k < lenk; k++) + { + binst = inst.behavior_insts[k]; + if (binst.posttick) + binst.posttick(); + } + } + } + tickarr = this.objects_to_tick.valuesRef(); + for (i = 0, leni = tickarr.length; i < leni; i++) + tickarr[i].tick(); + this.isInOnDestroy--; // end preventing instance lists from being changed + this.handleSaveLoad(); // save/load now if queued + i = 0; + while (this.changelayout && i++ < 10) + { + this.doChangeLayout(this.changelayout); + } + for (i = 0, leni = this.eventsheets_by_index.length; i < leni; i++) + this.eventsheets_by_index[i].hasRun = false; + if (this.running_layout.event_sheet) + this.running_layout.event_sheet.run(); + cr.clearArray(this.registered_collisions); + this.layout_first_tick = false; + this.isInOnDestroy++; // prevent instance lists from being changed + for (i = 0, leni = this.types_by_index.length; i < leni; i++) + { + type = this.types_by_index[i]; + if (type.is_family || (!type.behaviors.length && !type.families.length)) + continue; // type doesn't have any behaviors + for (j = 0, lenj = type.instances.length; j < lenj; j++) + { + var inst = type.instances[j]; + for (k = 0, lenk = inst.behavior_insts.length; k < lenk; k++) + { + binst = inst.behavior_insts[k]; + if (binst.tick2) + binst.tick2(); + } + } + } + tickarr = this.objects_to_tick2.valuesRef(); + for (i = 0, leni = tickarr.length; i < leni; i++) + tickarr[i].tick2(); + this.isInOnDestroy--; // end preventing instance lists from being changed + }; + Runtime.prototype.onWindowBlur = function () + { + var i, leni, j, lenj, k, lenk, type, inst, binst; + for (i = 0, leni = this.types_by_index.length; i < leni; i++) + { + type = this.types_by_index[i]; + if (type.is_family) + continue; + for (j = 0, lenj = type.instances.length; j < lenj; j++) + { + inst = type.instances[j]; + if (inst.onWindowBlur) + inst.onWindowBlur(); + if (!inst.behavior_insts) + continue; // single-globals don't have behavior_insts + for (k = 0, lenk = inst.behavior_insts.length; k < lenk; k++) + { + binst = inst.behavior_insts[k]; + if (binst.onWindowBlur) + binst.onWindowBlur(); + } + } + } + }; + Runtime.prototype.doChangeLayout = function (changeToLayout) + { + var prev_layout = this.running_layout; + this.running_layout.stopRunning(); + var i, len, j, lenj, k, lenk, type, inst, binst; + if (this.glwrap) + { + for (i = 0, len = this.types_by_index.length; i < len; i++) + { + type = this.types_by_index[i]; + if (type.is_family) + continue; + if (type.unloadTextures && (!type.global || type.instances.length === 0) && changeToLayout.initial_types.indexOf(type) === -1) + { + type.unloadTextures(); + } + } + } + if (prev_layout == changeToLayout) + cr.clearArray(this.system.waits); + cr.clearArray(this.registered_collisions); + this.runLayoutChangeMethods(true); + changeToLayout.startRunning(); + this.runLayoutChangeMethods(false); + this.redraw = true; + this.layout_first_tick = true; + this.ClearDeathRow(); + }; + Runtime.prototype.runLayoutChangeMethods = function (isBeforeChange) + { + var i, len, beh, type, j, lenj, inst, k, lenk, binst; + for (i = 0, len = this.behaviors.length; i < len; i++) + { + beh = this.behaviors[i]; + if (isBeforeChange) + { + if (beh.onBeforeLayoutChange) + beh.onBeforeLayoutChange(); + } + else + { + if (beh.onLayoutChange) + beh.onLayoutChange(); + } + } + for (i = 0, len = this.types_by_index.length; i < len; i++) + { + type = this.types_by_index[i]; + if (!type.global && !type.plugin.singleglobal) + continue; + for (j = 0, lenj = type.instances.length; j < lenj; j++) + { + inst = type.instances[j]; + if (isBeforeChange) + { + if (inst.onBeforeLayoutChange) + inst.onBeforeLayoutChange(); + } + else + { + if (inst.onLayoutChange) + inst.onLayoutChange(); + } + if (inst.behavior_insts) + { + for (k = 0, lenk = inst.behavior_insts.length; k < lenk; k++) + { + binst = inst.behavior_insts[k]; + if (isBeforeChange) + { + if (binst.onBeforeLayoutChange) + binst.onBeforeLayoutChange(); + } + else + { + if (binst.onLayoutChange) + binst.onLayoutChange(); + } + } + } + } + } + }; + Runtime.prototype.pretickMe = function (inst) + { + this.objects_to_pretick.add(inst); + }; + Runtime.prototype.unpretickMe = function (inst) + { + this.objects_to_pretick.remove(inst); + }; + Runtime.prototype.tickMe = function (inst) + { + this.objects_to_tick.add(inst); + }; + Runtime.prototype.untickMe = function (inst) + { + this.objects_to_tick.remove(inst); + }; + Runtime.prototype.tick2Me = function (inst) + { + this.objects_to_tick2.add(inst); + }; + Runtime.prototype.untick2Me = function (inst) + { + this.objects_to_tick2.remove(inst); + }; + Runtime.prototype.getDt = function (inst) + { + if (!inst || inst.my_timescale === -1.0) + return this.dt; + return this.dt1 * inst.my_timescale; + }; + Runtime.prototype.draw = function () + { + this.running_layout.draw(this.ctx); + if (this.isDirectCanvas) + this.ctx["present"](); + }; + Runtime.prototype.drawGL = function () + { + if (this.enableFrontToBack) + { + this.earlyz_index = 1; // start from front, 1-based to avoid exactly equalling near plane Z value + this.running_layout.drawGL_earlyZPass(this.glwrap); + } + this.running_layout.drawGL(this.glwrap); + this.glwrap.present(); + }; + Runtime.prototype.addDestroyCallback = function (f) + { + if (f) + this.destroycallbacks.push(f); + }; + Runtime.prototype.removeDestroyCallback = function (f) + { + cr.arrayFindRemove(this.destroycallbacks, f); + }; + Runtime.prototype.getObjectByUID = function (uid_) + { +; + var uidstr = uid_.toString(); + if (this.objectsByUid.hasOwnProperty(uidstr)) + return this.objectsByUid[uidstr]; + else + return null; + }; + var objectset_cache = []; + function alloc_objectset() + { + if (objectset_cache.length) + return objectset_cache.pop(); + else + return new cr.ObjectSet(); + }; + function free_objectset(s) + { + s.clear(); + objectset_cache.push(s); + }; + Runtime.prototype.DestroyInstance = function (inst) + { + var i, len; + var type = inst.type; + var typename = type.name; + var has_typename = this.deathRow.hasOwnProperty(typename); + var obj_set = null; + if (has_typename) + { + obj_set = this.deathRow[typename]; + if (obj_set.contains(inst)) + return; // already had DestroyInstance called + } + else + { + obj_set = alloc_objectset(); + this.deathRow[typename] = obj_set; + } + obj_set.add(inst); + this.hasPendingInstances = true; + if (inst.is_contained) + { + for (i = 0, len = inst.siblings.length; i < len; i++) + { + this.DestroyInstance(inst.siblings[i]); + } + } + if (this.isInClearDeathRow) + obj_set.values_cache.push(inst); + if (!this.isEndingLayout) + { + this.isInOnDestroy++; // support recursion + this.trigger(Object.getPrototypeOf(inst.type.plugin).cnds.OnDestroyed, inst); + this.isInOnDestroy--; + } + }; + Runtime.prototype.ClearDeathRow = function () + { + if (!this.hasPendingInstances) + return; + var inst, type, instances; + var i, j, leni, lenj, obj_set; + this.isInClearDeathRow = true; + for (i = 0, leni = this.createRow.length; i < leni; ++i) + { + inst = this.createRow[i]; + type = inst.type; + type.instances.push(inst); + for (j = 0, lenj = type.families.length; j < lenj; ++j) + { + type.families[j].instances.push(inst); + type.families[j].stale_iids = true; + } + } + cr.clearArray(this.createRow); + this.IterateDeathRow(); // moved to separate function so for-in performance doesn't hobble entire function + cr.wipe(this.deathRow); // all objectsets have already been recycled + this.isInClearDeathRow = false; + this.hasPendingInstances = false; + }; + Runtime.prototype.IterateDeathRow = function () + { + for (var p in this.deathRow) + { + if (this.deathRow.hasOwnProperty(p)) + { + this.ClearDeathRowForType(this.deathRow[p]); + } + } + }; + Runtime.prototype.ClearDeathRowForType = function (obj_set) + { + var arr = obj_set.valuesRef(); // get array of items from set +; + var type = arr[0].type; +; +; + var i, len, j, lenj, w, f, layer_instances, inst; + cr.arrayRemoveAllFromObjectSet(type.instances, obj_set); + type.stale_iids = true; + if (type.instances.length === 0) + type.any_instance_parallaxed = false; + for (i = 0, len = type.families.length; i < len; ++i) + { + f = type.families[i]; + cr.arrayRemoveAllFromObjectSet(f.instances, obj_set); + f.stale_iids = true; + } + for (i = 0, len = this.system.waits.length; i < len; ++i) + { + w = this.system.waits[i]; + if (w.sols.hasOwnProperty(type.index)) + cr.arrayRemoveAllFromObjectSet(w.sols[type.index].insts, obj_set); + if (!type.is_family) + { + for (j = 0, lenj = type.families.length; j < lenj; ++j) + { + f = type.families[j]; + if (w.sols.hasOwnProperty(f.index)) + cr.arrayRemoveAllFromObjectSet(w.sols[f.index].insts, obj_set); + } + } + } + var first_layer = arr[0].layer; + if (first_layer) + { + if (first_layer.useRenderCells) + { + layer_instances = first_layer.instances; + for (i = 0, len = layer_instances.length; i < len; ++i) + { + inst = layer_instances[i]; + if (!obj_set.contains(inst)) + continue; // not destroying this instance + inst.update_bbox(); + first_layer.render_grid.update(inst, inst.rendercells, null); + inst.rendercells.set(0, 0, -1, -1); + } + } + cr.arrayRemoveAllFromObjectSet(first_layer.instances, obj_set); + first_layer.setZIndicesStaleFrom(0); + } + for (i = 0; i < arr.length; ++i) // check array length every time in case it changes + { + this.ClearDeathRowForSingleInstance(arr[i], type); + } + free_objectset(obj_set); + this.redraw = true; + }; + Runtime.prototype.ClearDeathRowForSingleInstance = function (inst, type) + { + var i, len, binst; + for (i = 0, len = this.destroycallbacks.length; i < len; ++i) + this.destroycallbacks[i](inst); + if (inst.collcells) + { + type.collision_grid.update(inst, inst.collcells, null); + } + var layer = inst.layer; + if (layer) + { + layer.removeFromInstanceList(inst, true); // remove from both instance list and render grid + } + if (inst.behavior_insts) + { + for (i = 0, len = inst.behavior_insts.length; i < len; ++i) + { + binst = inst.behavior_insts[i]; + if (binst.onDestroy) + binst.onDestroy(); + binst.behavior.my_instances.remove(inst); + } + } + this.objects_to_pretick.remove(inst); + this.objects_to_tick.remove(inst); + this.objects_to_tick2.remove(inst); + if (inst.onDestroy) + inst.onDestroy(); + if (this.objectsByUid.hasOwnProperty(inst.uid.toString())) + delete this.objectsByUid[inst.uid.toString()]; + this.objectcount--; + if (type.deadCache.length < 100) + type.deadCache.push(inst); + }; + Runtime.prototype.createInstance = function (type, layer, sx, sy) + { + if (type.is_family) + { + var i = cr.floor(Math.random() * type.members.length); + return this.createInstance(type.members[i], layer, sx, sy); + } + if (!type.default_instance) + { + return null; + } + return this.createInstanceFromInit(type.default_instance, layer, false, sx, sy, false); + }; + var all_behaviors = []; + Runtime.prototype.createInstanceFromInit = function (initial_inst, layer, is_startup_instance, sx, sy, skip_siblings) + { + var i, len, j, lenj, p, effect_fallback, x, y; + if (!initial_inst) + return null; + var type = this.types_by_index[initial_inst[1]]; +; +; + var is_world = type.plugin.is_world; +; + if (this.isloading && is_world && !type.isOnLoaderLayout) + return null; + if (is_world && !this.glwrap && initial_inst[0][11] === 11) + return null; + var original_layer = layer; + if (!is_world) + layer = null; + var inst; + if (type.deadCache.length) + { + inst = type.deadCache.pop(); + inst.recycled = true; + type.plugin.Instance.call(inst, type); + } + else + { + inst = new type.plugin.Instance(type); + inst.recycled = false; + } + if (is_startup_instance && !skip_siblings && !this.objectsByUid.hasOwnProperty(initial_inst[2].toString())) + inst.uid = initial_inst[2]; + else + inst.uid = this.next_uid++; + this.objectsByUid[inst.uid.toString()] = inst; + inst.puid = this.next_puid++; + inst.iid = type.instances.length; + for (i = 0, len = this.createRow.length; i < len; ++i) + { + if (this.createRow[i].type === type) + inst.iid++; + } + inst.get_iid = cr.inst_get_iid; + inst.toString = cr.inst_toString; + var initial_vars = initial_inst[3]; + if (inst.recycled) + { + cr.wipe(inst.extra); + } + else + { + inst.extra = {}; + if (typeof cr_is_preview !== "undefined") + { + inst.instance_var_names = []; + inst.instance_var_names.length = initial_vars.length; + for (i = 0, len = initial_vars.length; i < len; i++) + inst.instance_var_names[i] = initial_vars[i][1]; + } + inst.instance_vars = []; + inst.instance_vars.length = initial_vars.length; + } + for (i = 0, len = initial_vars.length; i < len; i++) + inst.instance_vars[i] = initial_vars[i][0]; + if (is_world) + { + var wm = initial_inst[0]; +; + inst.x = cr.is_undefined(sx) ? wm[0] : sx; + inst.y = cr.is_undefined(sy) ? wm[1] : sy; + inst.z = wm[2]; + inst.width = wm[3]; + inst.height = wm[4]; + inst.depth = wm[5]; + inst.angle = wm[6]; + inst.opacity = wm[7]; + inst.hotspotX = wm[8]; + inst.hotspotY = wm[9]; + inst.blend_mode = wm[10]; + effect_fallback = wm[11]; + if (!this.glwrap && type.effect_types.length) // no WebGL renderer and shaders used + inst.blend_mode = effect_fallback; // use fallback blend mode - destroy mode was handled above + inst.compositeOp = cr.effectToCompositeOp(inst.blend_mode); + if (this.gl) + cr.setGLBlend(inst, inst.blend_mode, this.gl); + if (inst.recycled) + { + for (i = 0, len = wm[12].length; i < len; i++) + { + for (j = 0, lenj = wm[12][i].length; j < lenj; j++) + inst.effect_params[i][j] = wm[12][i][j]; + } + inst.bbox.set(0, 0, 0, 0); + inst.collcells.set(0, 0, -1, -1); + inst.rendercells.set(0, 0, -1, -1); + inst.bquad.set_from_rect(inst.bbox); + cr.clearArray(inst.bbox_changed_callbacks); + } + else + { + inst.effect_params = wm[12].slice(0); + for (i = 0, len = inst.effect_params.length; i < len; i++) + inst.effect_params[i] = wm[12][i].slice(0); + inst.active_effect_types = []; + inst.active_effect_flags = []; + inst.active_effect_flags.length = type.effect_types.length; + inst.bbox = new cr.rect(0, 0, 0, 0); + inst.collcells = new cr.rect(0, 0, -1, -1); + inst.rendercells = new cr.rect(0, 0, -1, -1); + inst.bquad = new cr.quad(); + inst.bbox_changed_callbacks = []; + inst.set_bbox_changed = cr.set_bbox_changed; + inst.add_bbox_changed_callback = cr.add_bbox_changed_callback; + inst.contains_pt = cr.inst_contains_pt; + inst.update_bbox = cr.update_bbox; + inst.update_render_cell = cr.update_render_cell; + inst.update_collision_cell = cr.update_collision_cell; + inst.get_zindex = cr.inst_get_zindex; + } + inst.tilemap_exists = false; + inst.tilemap_width = 0; + inst.tilemap_height = 0; + inst.tilemap_data = null; + if (wm.length === 14) + { + inst.tilemap_exists = true; + inst.tilemap_width = wm[13][0]; + inst.tilemap_height = wm[13][1]; + inst.tilemap_data = wm[13][2]; + } + for (i = 0, len = type.effect_types.length; i < len; i++) + inst.active_effect_flags[i] = true; + inst.shaders_preserve_opaqueness = true; + inst.updateActiveEffects = cr.inst_updateActiveEffects; + inst.updateActiveEffects(); + inst.uses_shaders = !!inst.active_effect_types.length; + inst.bbox_changed = true; + inst.cell_changed = true; + type.any_cell_changed = true; + inst.visible = true; + inst.my_timescale = -1.0; + inst.layer = layer; + inst.zindex = layer.instances.length; // will be placed at top of current layer + inst.earlyz_index = 0; + if (typeof inst.collision_poly === "undefined") + inst.collision_poly = null; + inst.collisionsEnabled = true; + this.redraw = true; + } + var initial_props, binst; + cr.clearArray(all_behaviors); + for (i = 0, len = type.families.length; i < len; i++) + { + all_behaviors.push.apply(all_behaviors, type.families[i].behaviors); + } + all_behaviors.push.apply(all_behaviors, type.behaviors); + if (inst.recycled) + { + for (i = 0, len = all_behaviors.length; i < len; i++) + { + var btype = all_behaviors[i]; + binst = inst.behavior_insts[i]; + binst.recycled = true; + btype.behavior.Instance.call(binst, btype, inst); + initial_props = initial_inst[4][i]; + for (j = 0, lenj = initial_props.length; j < lenj; j++) + binst.properties[j] = initial_props[j]; + binst.onCreate(); + btype.behavior.my_instances.add(inst); + } + } + else + { + inst.behavior_insts = []; + for (i = 0, len = all_behaviors.length; i < len; i++) + { + var btype = all_behaviors[i]; + var binst = new btype.behavior.Instance(btype, inst); + binst.recycled = false; + binst.properties = initial_inst[4][i].slice(0); + binst.onCreate(); + cr.seal(binst); + inst.behavior_insts.push(binst); + btype.behavior.my_instances.add(inst); + } + } + initial_props = initial_inst[5]; + if (inst.recycled) + { + for (i = 0, len = initial_props.length; i < len; i++) + inst.properties[i] = initial_props[i]; + } + else + inst.properties = initial_props.slice(0); + this.createRow.push(inst); + this.hasPendingInstances = true; + if (layer) + { +; + layer.appendToInstanceList(inst, true); + if (layer.parallaxX !== 1 || layer.parallaxY !== 1) + type.any_instance_parallaxed = true; + } + this.objectcount++; + if (type.is_contained) + { + inst.is_contained = true; + if (inst.recycled) + cr.clearArray(inst.siblings); + else + inst.siblings = []; // note: should not include self in siblings + if (!is_startup_instance && !skip_siblings) // layout links initial instances + { + for (i = 0, len = type.container.length; i < len; i++) + { + if (type.container[i] === type) + continue; + if (!type.container[i].default_instance) + { + return null; + } + inst.siblings.push(this.createInstanceFromInit(type.container[i].default_instance, original_layer, false, is_world ? inst.x : sx, is_world ? inst.y : sy, true)); + } + for (i = 0, len = inst.siblings.length; i < len; i++) + { + inst.siblings[i].siblings.push(inst); + for (j = 0; j < len; j++) + { + if (i !== j) + inst.siblings[i].siblings.push(inst.siblings[j]); + } + } + } + } + else + { + inst.is_contained = false; + inst.siblings = null; + } + inst.onCreate(); + if (!inst.recycled) + cr.seal(inst); + for (i = 0, len = inst.behavior_insts.length; i < len; i++) + { + if (inst.behavior_insts[i].postCreate) + inst.behavior_insts[i].postCreate(); + } + return inst; + }; + Runtime.prototype.getLayerByName = function (layer_name) + { + var i, len; + for (i = 0, len = this.running_layout.layers.length; i < len; i++) + { + var layer = this.running_layout.layers[i]; + if (cr.equals_nocase(layer.name, layer_name)) + return layer; + } + return null; + }; + Runtime.prototype.getLayerByNumber = function (index) + { + index = cr.floor(index); + if (index < 0) + index = 0; + if (index >= this.running_layout.layers.length) + index = this.running_layout.layers.length - 1; + return this.running_layout.layers[index]; + }; + Runtime.prototype.getLayer = function (l) + { + if (cr.is_number(l)) + return this.getLayerByNumber(l); + else + return this.getLayerByName(l.toString()); + }; + Runtime.prototype.clearSol = function (solModifiers) + { + var i, len; + for (i = 0, len = solModifiers.length; i < len; i++) + { + solModifiers[i].getCurrentSol().select_all = true; + } + }; + Runtime.prototype.pushCleanSol = function (solModifiers) + { + var i, len; + for (i = 0, len = solModifiers.length; i < len; i++) + { + solModifiers[i].pushCleanSol(); + } + }; + Runtime.prototype.pushCopySol = function (solModifiers) + { + var i, len; + for (i = 0, len = solModifiers.length; i < len; i++) + { + solModifiers[i].pushCopySol(); + } + }; + Runtime.prototype.popSol = function (solModifiers) + { + var i, len; + for (i = 0, len = solModifiers.length; i < len; i++) + { + solModifiers[i].popSol(); + } + }; + Runtime.prototype.updateAllCells = function (type) + { + if (!type.any_cell_changed) + return; // all instances must already be up-to-date + var i, len, instances = type.instances; + for (i = 0, len = instances.length; i < len; ++i) + { + instances[i].update_collision_cell(); + } + var createRow = this.createRow; + for (i = 0, len = createRow.length; i < len; ++i) + { + if (createRow[i].type === type) + createRow[i].update_collision_cell(); + } + type.any_cell_changed = false; + }; + Runtime.prototype.getCollisionCandidates = function (layer, rtype, bbox, candidates) + { + var i, len, t; + var is_parallaxed = (layer ? (layer.parallaxX !== 1 || layer.parallaxY !== 1) : false); + if (rtype.is_family) + { + for (i = 0, len = rtype.members.length; i < len; ++i) + { + t = rtype.members[i]; + if (is_parallaxed || t.any_instance_parallaxed) + { + cr.appendArray(candidates, t.instances); + } + else + { + this.updateAllCells(t); + t.collision_grid.queryRange(bbox, candidates); + } + } + } + else + { + if (is_parallaxed || rtype.any_instance_parallaxed) + { + cr.appendArray(candidates, rtype.instances); + } + else + { + this.updateAllCells(rtype); + rtype.collision_grid.queryRange(bbox, candidates); + } + } + }; + Runtime.prototype.getTypesCollisionCandidates = function (layer, types, bbox, candidates) + { + var i, len; + for (i = 0, len = types.length; i < len; ++i) + { + this.getCollisionCandidates(layer, types[i], bbox, candidates); + } + }; + Runtime.prototype.getSolidCollisionCandidates = function (layer, bbox, candidates) + { + var solid = this.getSolidBehavior(); + if (!solid) + return null; + this.getTypesCollisionCandidates(layer, solid.my_types, bbox, candidates); + }; + Runtime.prototype.getJumpthruCollisionCandidates = function (layer, bbox, candidates) + { + var jumpthru = this.getJumpthruBehavior(); + if (!jumpthru) + return null; + this.getTypesCollisionCandidates(layer, jumpthru.my_types, bbox, candidates); + }; + Runtime.prototype.testAndSelectCanvasPointOverlap = function (type, ptx, pty, inverted) + { + var sol = type.getCurrentSol(); + var i, j, inst, len; + var orblock = this.getCurrentEventStack().current_event.orblock; + var lx, ly, arr; + if (sol.select_all) + { + if (!inverted) + { + sol.select_all = false; + cr.clearArray(sol.instances); // clear contents + } + for (i = 0, len = type.instances.length; i < len; i++) + { + inst = type.instances[i]; + inst.update_bbox(); + lx = inst.layer.canvasToLayer(ptx, pty, true); + ly = inst.layer.canvasToLayer(ptx, pty, false); + if (inst.contains_pt(lx, ly)) + { + if (inverted) + return false; + else + sol.instances.push(inst); + } + else if (orblock) + sol.else_instances.push(inst); + } + } + else + { + j = 0; + arr = (orblock ? sol.else_instances : sol.instances); + for (i = 0, len = arr.length; i < len; i++) + { + inst = arr[i]; + inst.update_bbox(); + lx = inst.layer.canvasToLayer(ptx, pty, true); + ly = inst.layer.canvasToLayer(ptx, pty, false); + if (inst.contains_pt(lx, ly)) + { + if (inverted) + return false; + else if (orblock) + sol.instances.push(inst); + else + { + sol.instances[j] = sol.instances[i]; + j++; + } + } + } + if (!inverted) + arr.length = j; + } + type.applySolToContainer(); + if (inverted) + return true; // did not find anything overlapping + else + return sol.hasObjects(); + }; + Runtime.prototype.testOverlap = function (a, b) + { + if (!a || !b || a === b || !a.collisionsEnabled || !b.collisionsEnabled) + return false; + a.update_bbox(); + b.update_bbox(); + var layera = a.layer; + var layerb = b.layer; + var different_layers = (layera !== layerb && (layera.parallaxX !== layerb.parallaxX || layerb.parallaxY !== layerb.parallaxY || layera.scale !== layerb.scale || layera.angle !== layerb.angle || layera.zoomRate !== layerb.zoomRate)); + var i, len, i2, i21, x, y, haspolya, haspolyb, polya, polyb; + if (!different_layers) // same layers: easy check + { + if (!a.bbox.intersects_rect(b.bbox)) + return false; + if (!a.bquad.intersects_quad(b.bquad)) + return false; + if (a.tilemap_exists && b.tilemap_exists) + return false; + if (a.tilemap_exists) + return this.testTilemapOverlap(a, b); + if (b.tilemap_exists) + return this.testTilemapOverlap(b, a); + haspolya = (a.collision_poly && !a.collision_poly.is_empty()); + haspolyb = (b.collision_poly && !b.collision_poly.is_empty()); + if (!haspolya && !haspolyb) + return true; + if (haspolya) + { + a.collision_poly.cache_poly(a.width, a.height, a.angle); + polya = a.collision_poly; + } + else + { + this.temp_poly.set_from_quad(a.bquad, a.x, a.y, a.width, a.height); + polya = this.temp_poly; + } + if (haspolyb) + { + b.collision_poly.cache_poly(b.width, b.height, b.angle); + polyb = b.collision_poly; + } + else + { + this.temp_poly.set_from_quad(b.bquad, b.x, b.y, b.width, b.height); + polyb = this.temp_poly; + } + return polya.intersects_poly(polyb, b.x - a.x, b.y - a.y); + } + else // different layers: need to do full translated check + { + haspolya = (a.collision_poly && !a.collision_poly.is_empty()); + haspolyb = (b.collision_poly && !b.collision_poly.is_empty()); + if (haspolya) + { + a.collision_poly.cache_poly(a.width, a.height, a.angle); + this.temp_poly.set_from_poly(a.collision_poly); + } + else + { + this.temp_poly.set_from_quad(a.bquad, a.x, a.y, a.width, a.height); + } + polya = this.temp_poly; + if (haspolyb) + { + b.collision_poly.cache_poly(b.width, b.height, b.angle); + this.temp_poly2.set_from_poly(b.collision_poly); + } + else + { + this.temp_poly2.set_from_quad(b.bquad, b.x, b.y, b.width, b.height); + } + polyb = this.temp_poly2; + for (i = 0, len = polya.pts_count; i < len; i++) + { + i2 = i * 2; + i21 = i2 + 1; + x = polya.pts_cache[i2]; + y = polya.pts_cache[i21]; + polya.pts_cache[i2] = layera.layerToCanvas(x + a.x, y + a.y, true); + polya.pts_cache[i21] = layera.layerToCanvas(x + a.x, y + a.y, false); + } + polya.update_bbox(); + for (i = 0, len = polyb.pts_count; i < len; i++) + { + i2 = i * 2; + i21 = i2 + 1; + x = polyb.pts_cache[i2]; + y = polyb.pts_cache[i21]; + polyb.pts_cache[i2] = layerb.layerToCanvas(x + b.x, y + b.y, true); + polyb.pts_cache[i21] = layerb.layerToCanvas(x + b.x, y + b.y, false); + } + polyb.update_bbox(); + return polya.intersects_poly(polyb, 0, 0); + } + }; + var tmpQuad = new cr.quad(); + var tmpRect = new cr.rect(0, 0, 0, 0); + var collrect_candidates = []; + Runtime.prototype.testTilemapOverlap = function (tm, a) + { + var i, len, c, rc; + var bbox = a.bbox; + var tmx = tm.x; + var tmy = tm.y; + tm.getCollisionRectCandidates(bbox, collrect_candidates); + var collrects = collrect_candidates; + var haspolya = (a.collision_poly && !a.collision_poly.is_empty()); + for (i = 0, len = collrects.length; i < len; ++i) + { + c = collrects[i]; + rc = c.rc; + if (bbox.intersects_rect_off(rc, tmx, tmy)) + { + tmpQuad.set_from_rect(rc); + tmpQuad.offset(tmx, tmy); + if (tmpQuad.intersects_quad(a.bquad)) + { + if (haspolya) + { + a.collision_poly.cache_poly(a.width, a.height, a.angle); + if (c.poly) + { + if (c.poly.intersects_poly(a.collision_poly, a.x - (tmx + rc.left), a.y - (tmy + rc.top))) + { + cr.clearArray(collrect_candidates); + return true; + } + } + else + { + this.temp_poly.set_from_quad(tmpQuad, 0, 0, rc.right - rc.left, rc.bottom - rc.top); + if (this.temp_poly.intersects_poly(a.collision_poly, a.x, a.y)) + { + cr.clearArray(collrect_candidates); + return true; + } + } + } + else + { + if (c.poly) + { + this.temp_poly.set_from_quad(a.bquad, 0, 0, a.width, a.height); + if (c.poly.intersects_poly(this.temp_poly, -(tmx + rc.left), -(tmy + rc.top))) + { + cr.clearArray(collrect_candidates); + return true; + } + } + else + { + cr.clearArray(collrect_candidates); + return true; + } + } + } + } + } + cr.clearArray(collrect_candidates); + return false; + }; + Runtime.prototype.testRectOverlap = function (r, b) + { + if (!b || !b.collisionsEnabled) + return false; + b.update_bbox(); + var layerb = b.layer; + var haspolyb, polyb; + if (!b.bbox.intersects_rect(r)) + return false; + if (b.tilemap_exists) + { + b.getCollisionRectCandidates(r, collrect_candidates); + var collrects = collrect_candidates; + var i, len, c, tilerc; + var tmx = b.x; + var tmy = b.y; + for (i = 0, len = collrects.length; i < len; ++i) + { + c = collrects[i]; + tilerc = c.rc; + if (r.intersects_rect_off(tilerc, tmx, tmy)) + { + if (c.poly) + { + this.temp_poly.set_from_rect(r, 0, 0); + if (c.poly.intersects_poly(this.temp_poly, -(tmx + tilerc.left), -(tmy + tilerc.top))) + { + cr.clearArray(collrect_candidates); + return true; + } + } + else + { + cr.clearArray(collrect_candidates); + return true; + } + } + } + cr.clearArray(collrect_candidates); + return false; + } + else + { + tmpQuad.set_from_rect(r); + if (!b.bquad.intersects_quad(tmpQuad)) + return false; + haspolyb = (b.collision_poly && !b.collision_poly.is_empty()); + if (!haspolyb) + return true; + b.collision_poly.cache_poly(b.width, b.height, b.angle); + tmpQuad.offset(-r.left, -r.top); + this.temp_poly.set_from_quad(tmpQuad, 0, 0, 1, 1); + return b.collision_poly.intersects_poly(this.temp_poly, r.left - b.x, r.top - b.y); + } + }; + Runtime.prototype.testSegmentOverlap = function (x1, y1, x2, y2, b) + { + if (!b || !b.collisionsEnabled) + return false; + b.update_bbox(); + var layerb = b.layer; + var haspolyb, polyb; + tmpRect.set(cr.min(x1, x2), cr.min(y1, y2), cr.max(x1, x2), cr.max(y1, y2)); + if (!b.bbox.intersects_rect(tmpRect)) + return false; + if (b.tilemap_exists) + { + b.getCollisionRectCandidates(tmpRect, collrect_candidates); + var collrects = collrect_candidates; + var i, len, c, tilerc; + var tmx = b.x; + var tmy = b.y; + for (i = 0, len = collrects.length; i < len; ++i) + { + c = collrects[i]; + tilerc = c.rc; + if (tmpRect.intersects_rect_off(tilerc, tmx, tmy)) + { + tmpQuad.set_from_rect(tilerc); + tmpQuad.offset(tmx, tmy); + if (tmpQuad.intersects_segment(x1, y1, x2, y2)) + { + if (c.poly) + { + if (c.poly.intersects_segment(tmx + tilerc.left, tmy + tilerc.top, x1, y1, x2, y2)) + { + cr.clearArray(collrect_candidates); + return true; + } + } + else + { + cr.clearArray(collrect_candidates); + return true; + } + } + } + } + cr.clearArray(collrect_candidates); + return false; + } + else + { + if (!b.bquad.intersects_segment(x1, y1, x2, y2)) + return false; + haspolyb = (b.collision_poly && !b.collision_poly.is_empty()); + if (!haspolyb) + return true; + b.collision_poly.cache_poly(b.width, b.height, b.angle); + return b.collision_poly.intersects_segment(b.x, b.y, x1, y1, x2, y2); + } + }; + Runtime.prototype.typeHasBehavior = function (t, b) + { + if (!b) + return false; + var i, len, j, lenj, f; + for (i = 0, len = t.behaviors.length; i < len; i++) + { + if (t.behaviors[i].behavior instanceof b) + return true; + } + if (!t.is_family) + { + for (i = 0, len = t.families.length; i < len; i++) + { + f = t.families[i]; + for (j = 0, lenj = f.behaviors.length; j < lenj; j++) + { + if (f.behaviors[j].behavior instanceof b) + return true; + } + } + } + return false; + }; + Runtime.prototype.typeHasNoSaveBehavior = function (t) + { + return this.typeHasBehavior(t, cr.behaviors.NoSave); + }; + Runtime.prototype.typeHasPersistBehavior = function (t) + { + return this.typeHasBehavior(t, cr.behaviors.Persist); + }; + Runtime.prototype.getSolidBehavior = function () + { + return this.solidBehavior; + }; + Runtime.prototype.getJumpthruBehavior = function () + { + return this.jumpthruBehavior; + }; + var candidates = []; + Runtime.prototype.testOverlapSolid = function (inst) + { + var i, len, s; + inst.update_bbox(); + this.getSolidCollisionCandidates(inst.layer, inst.bbox, candidates); + for (i = 0, len = candidates.length; i < len; ++i) + { + s = candidates[i]; + if (!s.extra["solidEnabled"]) + continue; + if (this.testOverlap(inst, s)) + { + cr.clearArray(candidates); + return s; + } + } + cr.clearArray(candidates); + return null; + }; + Runtime.prototype.testRectOverlapSolid = function (r) + { + var i, len, s; + this.getSolidCollisionCandidates(null, r, candidates); + for (i = 0, len = candidates.length; i < len; ++i) + { + s = candidates[i]; + if (!s.extra["solidEnabled"]) + continue; + if (this.testRectOverlap(r, s)) + { + cr.clearArray(candidates); + return s; + } + } + cr.clearArray(candidates); + return null; + }; + var jumpthru_array_ret = []; + Runtime.prototype.testOverlapJumpThru = function (inst, all) + { + var ret = null; + if (all) + { + ret = jumpthru_array_ret; + cr.clearArray(ret); + } + inst.update_bbox(); + this.getJumpthruCollisionCandidates(inst.layer, inst.bbox, candidates); + var i, len, j; + for (i = 0, len = candidates.length; i < len; ++i) + { + j = candidates[i]; + if (!j.extra["jumpthruEnabled"]) + continue; + if (this.testOverlap(inst, j)) + { + if (all) + ret.push(j); + else + { + cr.clearArray(candidates); + return j; + } + } + } + cr.clearArray(candidates); + return ret; + }; + Runtime.prototype.pushOutSolid = function (inst, xdir, ydir, dist, include_jumpthrus, specific_jumpthru) + { + var push_dist = dist || 50; + var oldx = inst.x + var oldy = inst.y; + var i; + var last_overlapped = null, secondlast_overlapped = null; + for (i = 0; i < push_dist; i++) + { + inst.x = (oldx + (xdir * i)); + inst.y = (oldy + (ydir * i)); + inst.set_bbox_changed(); + if (!this.testOverlap(inst, last_overlapped)) + { + last_overlapped = this.testOverlapSolid(inst); + if (last_overlapped) + secondlast_overlapped = last_overlapped; + if (!last_overlapped) + { + if (include_jumpthrus) + { + if (specific_jumpthru) + last_overlapped = (this.testOverlap(inst, specific_jumpthru) ? specific_jumpthru : null); + else + last_overlapped = this.testOverlapJumpThru(inst); + if (last_overlapped) + secondlast_overlapped = last_overlapped; + } + if (!last_overlapped) + { + if (secondlast_overlapped) + this.pushInFractional(inst, xdir, ydir, secondlast_overlapped, 16); + return true; + } + } + } + } + inst.x = oldx; + inst.y = oldy; + inst.set_bbox_changed(); + return false; + }; + Runtime.prototype.pushOutSolidAxis = function(inst, xdir, ydir, dist) + { + dist = dist || 50; + var oldX = inst.x; + var oldY = inst.y; + var lastOverlapped = null; + var secondLastOverlapped = null; + var i, which, sign; + for (i = 0; i < dist; ++i) + { + for (which = 0; which < 2; ++which) + { + sign = which * 2 - 1; // -1 or 1 + inst.x = oldX + (xdir * i * sign); + inst.y = oldY + (ydir * i * sign); + inst.set_bbox_changed(); + if (!this.testOverlap(inst, lastOverlapped)) + { + lastOverlapped = this.testOverlapSolid(inst); + if (lastOverlapped) + { + secondLastOverlapped = lastOverlapped; + } + else + { + if (secondLastOverlapped) + this.pushInFractional(inst, xdir * sign, ydir * sign, secondLastOverlapped, 16); + return true; + } + } + } + } + inst.x = oldX; + inst.y = oldY; + inst.set_bbox_changed(); + return false; + }; + Runtime.prototype.pushOut = function (inst, xdir, ydir, dist, otherinst) + { + var push_dist = dist || 50; + var oldx = inst.x + var oldy = inst.y; + var i; + for (i = 0; i < push_dist; i++) + { + inst.x = (oldx + (xdir * i)); + inst.y = (oldy + (ydir * i)); + inst.set_bbox_changed(); + if (!this.testOverlap(inst, otherinst)) + return true; + } + inst.x = oldx; + inst.y = oldy; + inst.set_bbox_changed(); + return false; + }; + Runtime.prototype.pushInFractional = function (inst, xdir, ydir, obj, limit) + { + var divisor = 2; + var frac; + var forward = false; + var overlapping = false; + var bestx = inst.x; + var besty = inst.y; + while (divisor <= limit) + { + frac = 1 / divisor; + divisor *= 2; + inst.x += xdir * frac * (forward ? 1 : -1); + inst.y += ydir * frac * (forward ? 1 : -1); + inst.set_bbox_changed(); + if (this.testOverlap(inst, obj)) + { + forward = true; + overlapping = true; + } + else + { + forward = false; + overlapping = false; + bestx = inst.x; + besty = inst.y; + } + } + if (overlapping) + { + inst.x = bestx; + inst.y = besty; + inst.set_bbox_changed(); + } + }; + Runtime.prototype.pushOutSolidNearest = function (inst, max_dist_) + { + var max_dist = (cr.is_undefined(max_dist_) ? 100 : max_dist_); + var dist = 0; + var oldx = inst.x + var oldy = inst.y; + var dir = 0; + var dx = 0, dy = 0; + var last_overlapped = this.testOverlapSolid(inst); + if (!last_overlapped) + return true; // already clear of solids + while (dist <= max_dist) + { + switch (dir) { + case 0: dx = 0; dy = -1; dist++; break; + case 1: dx = 1; dy = -1; break; + case 2: dx = 1; dy = 0; break; + case 3: dx = 1; dy = 1; break; + case 4: dx = 0; dy = 1; break; + case 5: dx = -1; dy = 1; break; + case 6: dx = -1; dy = 0; break; + case 7: dx = -1; dy = -1; break; + } + dir = (dir + 1) % 8; + inst.x = cr.floor(oldx + (dx * dist)); + inst.y = cr.floor(oldy + (dy * dist)); + inst.set_bbox_changed(); + if (!this.testOverlap(inst, last_overlapped)) + { + last_overlapped = this.testOverlapSolid(inst); + if (!last_overlapped) + return true; + } + } + inst.x = oldx; + inst.y = oldy; + inst.set_bbox_changed(); + return false; + }; + Runtime.prototype.registerCollision = function (a, b) + { + if (!a.collisionsEnabled || !b.collisionsEnabled) + return; + this.registered_collisions.push([a, b]); + }; + Runtime.prototype.addRegisteredCollisionCandidates = function (inst, otherType, arr) + { + var i, len, r, otherInst; + for (i = 0, len = this.registered_collisions.length; i < len; ++i) + { + r = this.registered_collisions[i]; + if (r[0] === inst) + otherInst = r[1]; + else if (r[1] === inst) + otherInst = r[0]; + else + continue; + if (otherType.is_family) + { + if (otherType.members.indexOf(otherType) === -1) + continue; + } + else + { + if (otherInst.type !== otherType) + continue; + } + if (arr.indexOf(otherInst) === -1) + arr.push(otherInst); + } + }; + Runtime.prototype.checkRegisteredCollision = function (a, b) + { + var i, len, x; + for (i = 0, len = this.registered_collisions.length; i < len; i++) + { + x = this.registered_collisions[i]; + if ((x[0] === a && x[1] === b) || (x[0] === b && x[1] === a)) + return true; + } + return false; + }; + Runtime.prototype.calculateSolidBounceAngle = function(inst, startx, starty, obj) + { + var objx = inst.x; + var objy = inst.y; + var radius = cr.max(10, cr.distanceTo(startx, starty, objx, objy)); + var startangle = cr.angleTo(startx, starty, objx, objy); + var firstsolid = obj || this.testOverlapSolid(inst); + if (!firstsolid) + return cr.clamp_angle(startangle + cr.PI); + var cursolid = firstsolid; + var i, curangle, anticlockwise_free_angle, clockwise_free_angle; + var increment = cr.to_radians(5); // 5 degree increments + for (i = 1; i < 36; i++) + { + curangle = startangle - i * increment; + inst.x = startx + Math.cos(curangle) * radius; + inst.y = starty + Math.sin(curangle) * radius; + inst.set_bbox_changed(); + if (!this.testOverlap(inst, cursolid)) + { + cursolid = obj ? null : this.testOverlapSolid(inst); + if (!cursolid) + { + anticlockwise_free_angle = curangle; + break; + } + } + } + if (i === 36) + anticlockwise_free_angle = cr.clamp_angle(startangle + cr.PI); + var cursolid = firstsolid; + for (i = 1; i < 36; i++) + { + curangle = startangle + i * increment; + inst.x = startx + Math.cos(curangle) * radius; + inst.y = starty + Math.sin(curangle) * radius; + inst.set_bbox_changed(); + if (!this.testOverlap(inst, cursolid)) + { + cursolid = obj ? null : this.testOverlapSolid(inst); + if (!cursolid) + { + clockwise_free_angle = curangle; + break; + } + } + } + if (i === 36) + clockwise_free_angle = cr.clamp_angle(startangle + cr.PI); + inst.x = objx; + inst.y = objy; + inst.set_bbox_changed(); + if (clockwise_free_angle === anticlockwise_free_angle) + return clockwise_free_angle; + var half_diff = cr.angleDiff(clockwise_free_angle, anticlockwise_free_angle) / 2; + var normal; + if (cr.angleClockwise(clockwise_free_angle, anticlockwise_free_angle)) + { + normal = cr.clamp_angle(anticlockwise_free_angle + half_diff + cr.PI); + } + else + { + normal = cr.clamp_angle(clockwise_free_angle + half_diff); + } +; + var vx = Math.cos(startangle); + var vy = Math.sin(startangle); + var nx = Math.cos(normal); + var ny = Math.sin(normal); + var v_dot_n = vx * nx + vy * ny; + var rx = vx - 2 * v_dot_n * nx; + var ry = vy - 2 * v_dot_n * ny; + return cr.angleTo(0, 0, rx, ry); + }; + var triggerSheetIndex = -1; + Runtime.prototype.trigger = function (method, inst, value /* for fast triggers */) + { +; + if (!this.running_layout) + return false; + var sheet = this.running_layout.event_sheet; + if (!sheet) + return false; // no event sheet active; nothing to trigger + var ret = false; + var r, i, len; + triggerSheetIndex++; + var deep_includes = sheet.deep_includes; + for (i = 0, len = deep_includes.length; i < len; ++i) + { + r = this.triggerOnSheet(method, inst, deep_includes[i], value); + ret = ret || r; + } + r = this.triggerOnSheet(method, inst, sheet, value); + ret = ret || r; + triggerSheetIndex--; + return ret; + }; + Runtime.prototype.triggerOnSheet = function (method, inst, sheet, value) + { + var ret = false; + var i, leni, r, families; + if (!inst) + { + r = this.triggerOnSheetForTypeName(method, inst, "system", sheet, value); + ret = ret || r; + } + else + { + r = this.triggerOnSheetForTypeName(method, inst, inst.type.name, sheet, value); + ret = ret || r; + families = inst.type.families; + for (i = 0, leni = families.length; i < leni; ++i) + { + r = this.triggerOnSheetForTypeName(method, inst, families[i].name, sheet, value); + ret = ret || r; + } + } + return ret; // true if anything got triggered + }; + Runtime.prototype.triggerOnSheetForTypeName = function (method, inst, type_name, sheet, value) + { + var i, leni; + var ret = false, ret2 = false; + var trig, index; + var fasttrigger = (typeof value !== "undefined"); + var triggers = (fasttrigger ? sheet.fasttriggers : sheet.triggers); + var obj_entry = triggers[type_name]; + if (!obj_entry) + return ret; + var triggers_list = null; + for (i = 0, leni = obj_entry.length; i < leni; ++i) + { + if (obj_entry[i].method == method) + { + triggers_list = obj_entry[i].evs; + break; + } + } + if (!triggers_list) + return ret; + var triggers_to_fire; + if (fasttrigger) + { + triggers_to_fire = triggers_list[value]; + } + else + { + triggers_to_fire = triggers_list; + } + if (!triggers_to_fire) + return null; + for (i = 0, leni = triggers_to_fire.length; i < leni; i++) + { + trig = triggers_to_fire[i][0]; + index = triggers_to_fire[i][1]; + ret2 = this.executeSingleTrigger(inst, type_name, trig, index); + ret = ret || ret2; + } + return ret; + }; + Runtime.prototype.executeSingleTrigger = function (inst, type_name, trig, index) + { + var i, leni; + var ret = false; + this.trigger_depth++; + var current_event = this.getCurrentEventStack().current_event; + if (current_event) + this.pushCleanSol(current_event.solModifiersIncludingParents); + var isrecursive = (this.trigger_depth > 1); // calling trigger from inside another trigger + this.pushCleanSol(trig.solModifiersIncludingParents); + if (isrecursive) + this.pushLocalVarStack(); + var event_stack = this.pushEventStack(trig); + event_stack.current_event = trig; + if (inst) + { + var sol = this.types[type_name].getCurrentSol(); + sol.select_all = false; + cr.clearArray(sol.instances); + sol.instances[0] = inst; + this.types[type_name].applySolToContainer(); + } + var ok_to_run = true; + if (trig.parent) + { + var temp_parents_arr = event_stack.temp_parents_arr; + var cur_parent = trig.parent; + while (cur_parent) + { + temp_parents_arr.push(cur_parent); + cur_parent = cur_parent.parent; + } + temp_parents_arr.reverse(); + for (i = 0, leni = temp_parents_arr.length; i < leni; i++) + { + if (!temp_parents_arr[i].run_pretrigger()) // parent event failed + { + ok_to_run = false; + break; + } + } + } + if (ok_to_run) + { + this.execcount++; + if (trig.orblock) + trig.run_orblocktrigger(index); + else + trig.run(); + ret = ret || event_stack.last_event_true; + } + this.popEventStack(); + if (isrecursive) + this.popLocalVarStack(); + this.popSol(trig.solModifiersIncludingParents); + if (current_event) + this.popSol(current_event.solModifiersIncludingParents); + if (this.hasPendingInstances && this.isInOnDestroy === 0 && triggerSheetIndex === 0 && !this.isRunningEvents) + { + this.ClearDeathRow(); + } + this.trigger_depth--; + return ret; + }; + Runtime.prototype.getCurrentCondition = function () + { + var evinfo = this.getCurrentEventStack(); + return evinfo.current_event.conditions[evinfo.cndindex]; + }; + Runtime.prototype.getCurrentConditionObjectType = function () + { + var cnd = this.getCurrentCondition(); + return cnd.type; + }; + Runtime.prototype.isCurrentConditionFirst = function () + { + var evinfo = this.getCurrentEventStack(); + return evinfo.cndindex === 0; + }; + Runtime.prototype.getCurrentAction = function () + { + var evinfo = this.getCurrentEventStack(); + return evinfo.current_event.actions[evinfo.actindex]; + }; + Runtime.prototype.pushLocalVarStack = function () + { + this.localvar_stack_index++; + if (this.localvar_stack_index >= this.localvar_stack.length) + this.localvar_stack.push([]); + }; + Runtime.prototype.popLocalVarStack = function () + { +; + this.localvar_stack_index--; + }; + Runtime.prototype.getCurrentLocalVarStack = function () + { + return this.localvar_stack[this.localvar_stack_index]; + }; + Runtime.prototype.pushEventStack = function (cur_event) + { + this.event_stack_index++; + if (this.event_stack_index >= this.event_stack.length) + this.event_stack.push(new cr.eventStackFrame()); + var ret = this.getCurrentEventStack(); + ret.reset(cur_event); + return ret; + }; + Runtime.prototype.popEventStack = function () + { +; + this.event_stack_index--; + }; + Runtime.prototype.getCurrentEventStack = function () + { + return this.event_stack[this.event_stack_index]; + }; + Runtime.prototype.pushLoopStack = function (name_) + { + this.loop_stack_index++; + if (this.loop_stack_index >= this.loop_stack.length) + { + this.loop_stack.push(cr.seal({ name: name_, index: 0, stopped: false })); + } + var ret = this.getCurrentLoop(); + ret.name = name_; + ret.index = 0; + ret.stopped = false; + return ret; + }; + Runtime.prototype.popLoopStack = function () + { +; + this.loop_stack_index--; + }; + Runtime.prototype.getCurrentLoop = function () + { + return this.loop_stack[this.loop_stack_index]; + }; + Runtime.prototype.getEventVariableByName = function (name, scope) + { + var i, leni, j, lenj, sheet, e; + while (scope) + { + for (i = 0, leni = scope.subevents.length; i < leni; i++) + { + e = scope.subevents[i]; + if (e instanceof cr.eventvariable && cr.equals_nocase(name, e.name)) + return e; + } + scope = scope.parent; + } + for (i = 0, leni = this.eventsheets_by_index.length; i < leni; i++) + { + sheet = this.eventsheets_by_index[i]; + for (j = 0, lenj = sheet.events.length; j < lenj; j++) + { + e = sheet.events[j]; + if (e instanceof cr.eventvariable && cr.equals_nocase(name, e.name)) + return e; + } + } + return null; + }; + Runtime.prototype.getLayoutBySid = function (sid_) + { + var i, len; + for (i = 0, len = this.layouts_by_index.length; i < len; i++) + { + if (this.layouts_by_index[i].sid === sid_) + return this.layouts_by_index[i]; + } + return null; + }; + Runtime.prototype.getObjectTypeBySid = function (sid_) + { + var i, len; + for (i = 0, len = this.types_by_index.length; i < len; i++) + { + if (this.types_by_index[i].sid === sid_) + return this.types_by_index[i]; + } + return null; + }; + Runtime.prototype.getGroupBySid = function (sid_) + { + var i, len; + for (i = 0, len = this.allGroups.length; i < len; i++) + { + if (this.allGroups[i].sid === sid_) + return this.allGroups[i]; + } + return null; + }; + Runtime.prototype.doCanvasSnapshot = function (format_, quality_) + { + this.snapshotCanvas = [format_, quality_]; + this.redraw = true; // force redraw so snapshot is always taken + }; + function IsIndexedDBAvailable() + { + try { + return !!window.indexedDB; + } + catch (e) + { + return false; + } + }; + function makeSaveDb(e) + { + var db = e.target.result; + db.createObjectStore("saves", { keyPath: "slot" }); + }; + function IndexedDB_WriteSlot(slot_, data_, oncomplete_, onerror_) + { + try { + var request = indexedDB.open("_C2SaveStates"); + request.onupgradeneeded = makeSaveDb; + request.onerror = onerror_; + request.onsuccess = function (e) + { + var db = e.target.result; + db.onerror = onerror_; + var transaction = db.transaction(["saves"], "readwrite"); + var objectStore = transaction.objectStore("saves"); + var putReq = objectStore.put({"slot": slot_, "data": data_ }); + putReq.onsuccess = oncomplete_; + }; + } + catch (err) + { + onerror_(err); + } + }; + function IndexedDB_ReadSlot(slot_, oncomplete_, onerror_) + { + try { + var request = indexedDB.open("_C2SaveStates"); + request.onupgradeneeded = makeSaveDb; + request.onerror = onerror_; + request.onsuccess = function (e) + { + var db = e.target.result; + db.onerror = onerror_; + var transaction = db.transaction(["saves"]); + var objectStore = transaction.objectStore("saves"); + var readReq = objectStore.get(slot_); + readReq.onsuccess = function (e) + { + if (readReq.result) + oncomplete_(readReq.result["data"]); + else + oncomplete_(null); + }; + }; + } + catch (err) + { + onerror_(err); + } + }; + Runtime.prototype.signalContinuousPreview = function () + { + this.signalledContinuousPreview = true; + }; + function doContinuousPreviewReload() + { + cr.logexport("Reloading for continuous preview"); + if (!!window["c2cocoonjs"]) + { + CocoonJS["App"]["reload"](); + } + else + { + if (window.location.search.indexOf("continuous") > -1) + window.location.reload(true); + else + window.location = window.location + "?continuous"; + } + }; + Runtime.prototype.handleSaveLoad = function () + { + var self = this; + var savingToSlot = this.saveToSlot; + var savingJson = this.lastSaveJson; + var loadingFromSlot = this.loadFromSlot; + var continuous = false; + if (this.signalledContinuousPreview) + { + continuous = true; + savingToSlot = "__c2_continuouspreview"; + this.signalledContinuousPreview = false; + } + if (savingToSlot.length) + { + this.ClearDeathRow(); + savingJson = this.saveToJSONString(); + if (IsIndexedDBAvailable() && !this.isCocoonJs) + { + IndexedDB_WriteSlot(savingToSlot, savingJson, function () + { + cr.logexport("Saved state to IndexedDB storage (" + savingJson.length + " bytes)"); + self.lastSaveJson = savingJson; + self.trigger(cr.system_object.prototype.cnds.OnSaveComplete, null); + self.lastSaveJson = ""; + savingJson = ""; + if (continuous) + doContinuousPreviewReload(); + }, function (e) + { + try { + localStorage.setItem("__c2save_" + savingToSlot, savingJson); + cr.logexport("Saved state to WebStorage (" + savingJson.length + " bytes)"); + self.lastSaveJson = savingJson; + self.trigger(cr.system_object.prototype.cnds.OnSaveComplete, null); + self.lastSaveJson = ""; + savingJson = ""; + if (continuous) + doContinuousPreviewReload(); + } + catch (f) + { + cr.logexport("Failed to save game state: " + e + "; " + f); + self.trigger(cr.system_object.prototype.cnds.OnSaveFailed, null); + } + }); + } + else + { + try { + localStorage.setItem("__c2save_" + savingToSlot, savingJson); + cr.logexport("Saved state to WebStorage (" + savingJson.length + " bytes)"); + self.lastSaveJson = savingJson; + this.trigger(cr.system_object.prototype.cnds.OnSaveComplete, null); + self.lastSaveJson = ""; + savingJson = ""; + if (continuous) + doContinuousPreviewReload(); + } + catch (e) + { + cr.logexport("Error saving to WebStorage: " + e); + self.trigger(cr.system_object.prototype.cnds.OnSaveFailed, null); + } + } + this.saveToSlot = ""; + this.loadFromSlot = ""; + this.loadFromJson = null; + } + if (loadingFromSlot.length) + { + if (IsIndexedDBAvailable() && !this.isCocoonJs) + { + IndexedDB_ReadSlot(loadingFromSlot, function (result_) + { + if (result_) + { + self.loadFromJson = result_; + cr.logexport("Loaded state from IndexedDB storage (" + self.loadFromJson.length + " bytes)"); + } + else + { + self.loadFromJson = localStorage.getItem("__c2save_" + loadingFromSlot) || ""; + cr.logexport("Loaded state from WebStorage (" + self.loadFromJson.length + " bytes)"); + } + self.suspendDrawing = false; + if (!self.loadFromJson) + { + self.loadFromJson = null; + self.trigger(cr.system_object.prototype.cnds.OnLoadFailed, null); + } + }, function (e) + { + self.loadFromJson = localStorage.getItem("__c2save_" + loadingFromSlot) || ""; + cr.logexport("Loaded state from WebStorage (" + self.loadFromJson.length + " bytes)"); + self.suspendDrawing = false; + if (!self.loadFromJson) + { + self.loadFromJson = null; + self.trigger(cr.system_object.prototype.cnds.OnLoadFailed, null); + } + }); + } + else + { + try { + this.loadFromJson = localStorage.getItem("__c2save_" + loadingFromSlot) || ""; + cr.logexport("Loaded state from WebStorage (" + this.loadFromJson.length + " bytes)"); + } + catch (e) + { + this.loadFromJson = null; + } + this.suspendDrawing = false; + if (!self.loadFromJson) + { + self.loadFromJson = null; + self.trigger(cr.system_object.prototype.cnds.OnLoadFailed, null); + } + } + this.loadFromSlot = ""; + this.saveToSlot = ""; + } + if (this.loadFromJson !== null) + { + this.ClearDeathRow(); + var ok = this.loadFromJSONString(this.loadFromJson); + if (ok) + { + this.lastSaveJson = this.loadFromJson; + this.trigger(cr.system_object.prototype.cnds.OnLoadComplete, null); + this.lastSaveJson = ""; + } + else + { + self.trigger(cr.system_object.prototype.cnds.OnLoadFailed, null); + } + this.loadFromJson = null; + } + }; + function CopyExtraObject(extra) + { + var p, ret = {}; + for (p in extra) + { + if (extra.hasOwnProperty(p)) + { + if (extra[p] instanceof cr.ObjectSet) + continue; + if (extra[p] && typeof extra[p].c2userdata !== "undefined") + continue; + if (p === "spriteCreatedDestroyCallback") + continue; + ret[p] = extra[p]; + } + } + return ret; + }; + Runtime.prototype.saveToJSONString = function() + { + var i, len, j, lenj, type, layout, typeobj, g, c, a, v, p; + var o = { + "c2save": true, + "version": 1, + "rt": { + "time": this.kahanTime.sum, + "walltime": this.wallTime.sum, + "timescale": this.timescale, + "tickcount": this.tickcount, + "execcount": this.execcount, + "next_uid": this.next_uid, + "running_layout": this.running_layout.sid, + "start_time_offset": (Date.now() - this.start_time) + }, + "types": {}, + "layouts": {}, + "events": { + "groups": {}, + "cnds": {}, + "acts": {}, + "vars": {} + } + }; + for (i = 0, len = this.types_by_index.length; i < len; i++) + { + type = this.types_by_index[i]; + if (type.is_family || this.typeHasNoSaveBehavior(type)) + continue; + typeobj = { + "instances": [] + }; + if (cr.hasAnyOwnProperty(type.extra)) + typeobj["ex"] = CopyExtraObject(type.extra); + for (j = 0, lenj = type.instances.length; j < lenj; j++) + { + typeobj["instances"].push(this.saveInstanceToJSON(type.instances[j])); + } + o["types"][type.sid.toString()] = typeobj; + } + for (i = 0, len = this.layouts_by_index.length; i < len; i++) + { + layout = this.layouts_by_index[i]; + o["layouts"][layout.sid.toString()] = layout.saveToJSON(); + } + var ogroups = o["events"]["groups"]; + for (i = 0, len = this.allGroups.length; i < len; i++) + { + g = this.allGroups[i]; + ogroups[g.sid.toString()] = this.groups_by_name[g.group_name].group_active; + } + var ocnds = o["events"]["cnds"]; + for (p in this.cndsBySid) + { + if (this.cndsBySid.hasOwnProperty(p)) + { + c = this.cndsBySid[p]; + if (cr.hasAnyOwnProperty(c.extra)) + ocnds[p] = { "ex": CopyExtraObject(c.extra) }; + } + } + var oacts = o["events"]["acts"]; + for (p in this.actsBySid) + { + if (this.actsBySid.hasOwnProperty(p)) + { + a = this.actsBySid[p]; + if (cr.hasAnyOwnProperty(a.extra)) + oacts[p] = { "ex": CopyExtraObject(a.extra) }; + } + } + var ovars = o["events"]["vars"]; + for (p in this.varsBySid) + { + if (this.varsBySid.hasOwnProperty(p)) + { + v = this.varsBySid[p]; + if (!v.is_constant && (!v.parent || v.is_static)) + ovars[p] = v.data; + } + } + o["system"] = this.system.saveToJSON(); + return JSON.stringify(o); + }; + Runtime.prototype.refreshUidMap = function () + { + var i, len, type, j, lenj, inst; + this.objectsByUid = {}; + for (i = 0, len = this.types_by_index.length; i < len; i++) + { + type = this.types_by_index[i]; + if (type.is_family) + continue; + for (j = 0, lenj = type.instances.length; j < lenj; j++) + { + inst = type.instances[j]; + this.objectsByUid[inst.uid.toString()] = inst; + } + } + }; + Runtime.prototype.loadFromJSONString = function (str) + { + var o; + try { + o = JSON.parse(str); + } + catch (e) { + return false; + } + if (!o["c2save"]) + return false; // probably not a c2 save state + if (o["version"] > 1) + return false; // from future version of c2; assume not compatible + this.isLoadingState = true; + var rt = o["rt"]; + this.kahanTime.reset(); + this.kahanTime.sum = rt["time"]; + this.wallTime.reset(); + this.wallTime.sum = rt["walltime"] || 0; + this.timescale = rt["timescale"]; + this.tickcount = rt["tickcount"]; + this.execcount = rt["execcount"]; + this.start_time = Date.now() - rt["start_time_offset"]; + var layout_sid = rt["running_layout"]; + if (layout_sid !== this.running_layout.sid) + { + var changeToLayout = this.getLayoutBySid(layout_sid); + if (changeToLayout) + this.doChangeLayout(changeToLayout); + else + return; // layout that was saved on has gone missing (deleted?) + } + var i, len, j, lenj, k, lenk, p, type, existing_insts, load_insts, inst, binst, layout, layer, g, iid, t; + var otypes = o["types"]; + for (p in otypes) + { + if (otypes.hasOwnProperty(p)) + { + type = this.getObjectTypeBySid(parseInt(p, 10)); + if (!type || type.is_family || this.typeHasNoSaveBehavior(type)) + continue; + if (otypes[p]["ex"]) + type.extra = otypes[p]["ex"]; + else + cr.wipe(type.extra); + existing_insts = type.instances; + load_insts = otypes[p]["instances"]; + for (i = 0, len = cr.min(existing_insts.length, load_insts.length); i < len; i++) + { + this.loadInstanceFromJSON(existing_insts[i], load_insts[i]); + } + for (i = load_insts.length, len = existing_insts.length; i < len; i++) + this.DestroyInstance(existing_insts[i]); + for (i = existing_insts.length, len = load_insts.length; i < len; i++) + { + layer = null; + if (type.plugin.is_world) + { + layer = this.running_layout.getLayerBySid(load_insts[i]["w"]["l"]); + if (!layer) + continue; + } + inst = this.createInstanceFromInit(type.default_instance, layer, false, 0, 0, true); + this.loadInstanceFromJSON(inst, load_insts[i]); + } + type.stale_iids = true; + } + } + this.ClearDeathRow(); + this.refreshUidMap(); + var olayouts = o["layouts"]; + for (p in olayouts) + { + if (olayouts.hasOwnProperty(p)) + { + layout = this.getLayoutBySid(parseInt(p, 10)); + if (!layout) + continue; // must've gone missing + layout.loadFromJSON(olayouts[p]); + } + } + var ogroups = o["events"]["groups"]; + for (p in ogroups) + { + if (ogroups.hasOwnProperty(p)) + { + g = this.getGroupBySid(parseInt(p, 10)); + if (g && this.groups_by_name[g.group_name]) + this.groups_by_name[g.group_name].setGroupActive(ogroups[p]); + } + } + var ocnds = o["events"]["cnds"]; + for (p in this.cndsBySid) + { + if (this.cndsBySid.hasOwnProperty(p)) + { + if (ocnds.hasOwnProperty(p)) + { + this.cndsBySid[p].extra = ocnds[p]["ex"]; + } + else + { + this.cndsBySid[p].extra = {}; + } + } + } + var oacts = o["events"]["acts"]; + for (p in this.actsBySid) + { + if (this.actsBySid.hasOwnProperty(p)) + { + if (oacts.hasOwnProperty(p)) + { + this.actsBySid[p].extra = oacts[p]["ex"]; + } + else + { + this.actsBySid[p].extra = {}; + } + } + } + var ovars = o["events"]["vars"]; + for (p in ovars) + { + if (ovars.hasOwnProperty(p) && this.varsBySid.hasOwnProperty(p)) + { + this.varsBySid[p].data = ovars[p]; + } + } + this.next_uid = rt["next_uid"]; + this.isLoadingState = false; + for (i = 0, len = this.fireOnCreateAfterLoad.length; i < len; ++i) + { + inst = this.fireOnCreateAfterLoad[i]; + this.trigger(Object.getPrototypeOf(inst.type.plugin).cnds.OnCreated, inst); + } + cr.clearArray(this.fireOnCreateAfterLoad); + this.system.loadFromJSON(o["system"]); + for (i = 0, len = this.types_by_index.length; i < len; i++) + { + type = this.types_by_index[i]; + if (type.is_family || this.typeHasNoSaveBehavior(type)) + continue; + for (j = 0, lenj = type.instances.length; j < lenj; j++) + { + inst = type.instances[j]; + if (type.is_contained) + { + iid = inst.get_iid(); + cr.clearArray(inst.siblings); + for (k = 0, lenk = type.container.length; k < lenk; k++) + { + t = type.container[k]; + if (type === t) + continue; +; + inst.siblings.push(t.instances[iid]); + } + } + if (inst.afterLoad) + inst.afterLoad(); + if (inst.behavior_insts) + { + for (k = 0, lenk = inst.behavior_insts.length; k < lenk; k++) + { + binst = inst.behavior_insts[k]; + if (binst.afterLoad) + binst.afterLoad(); + } + } + } + } + this.redraw = true; + return true; + }; + Runtime.prototype.saveInstanceToJSON = function(inst, state_only) + { + var i, len, world, behinst, et; + var type = inst.type; + var plugin = type.plugin; + var o = {}; + if (state_only) + o["c2"] = true; // mark as known json data from Construct 2 + else + o["uid"] = inst.uid; + if (cr.hasAnyOwnProperty(inst.extra)) + o["ex"] = CopyExtraObject(inst.extra); + if (inst.instance_vars && inst.instance_vars.length) + { + o["ivs"] = {}; + for (i = 0, len = inst.instance_vars.length; i < len; i++) + { + o["ivs"][inst.type.instvar_sids[i].toString()] = inst.instance_vars[i]; + } + } + if (plugin.is_world) + { + world = { + "x": inst.x, + "y": inst.y, + "w": inst.width, + "h": inst.height, + "l": inst.layer.sid, + "zi": inst.get_zindex() + }; + if (inst.angle !== 0) + world["a"] = inst.angle; + if (inst.opacity !== 1) + world["o"] = inst.opacity; + if (inst.hotspotX !== 0.5) + world["hX"] = inst.hotspotX; + if (inst.hotspotY !== 0.5) + world["hY"] = inst.hotspotY; + if (inst.blend_mode !== 0) + world["bm"] = inst.blend_mode; + if (!inst.visible) + world["v"] = inst.visible; + if (!inst.collisionsEnabled) + world["ce"] = inst.collisionsEnabled; + if (inst.my_timescale !== -1) + world["mts"] = inst.my_timescale; + if (type.effect_types.length) + { + world["fx"] = []; + for (i = 0, len = type.effect_types.length; i < len; i++) + { + et = type.effect_types[i]; + world["fx"].push({"name": et.name, + "active": inst.active_effect_flags[et.index], + "params": inst.effect_params[et.index] }); + } + } + o["w"] = world; + } + if (inst.behavior_insts && inst.behavior_insts.length) + { + o["behs"] = {}; + for (i = 0, len = inst.behavior_insts.length; i < len; i++) + { + behinst = inst.behavior_insts[i]; + if (behinst.saveToJSON) + o["behs"][behinst.type.sid.toString()] = behinst.saveToJSON(); + } + } + if (inst.saveToJSON) + o["data"] = inst.saveToJSON(); + return o; + }; + Runtime.prototype.getInstanceVarIndexBySid = function (type, sid_) + { + var i, len; + for (i = 0, len = type.instvar_sids.length; i < len; i++) + { + if (type.instvar_sids[i] === sid_) + return i; + } + return -1; + }; + Runtime.prototype.getBehaviorIndexBySid = function (inst, sid_) + { + var i, len; + for (i = 0, len = inst.behavior_insts.length; i < len; i++) + { + if (inst.behavior_insts[i].type.sid === sid_) + return i; + } + return -1; + }; + Runtime.prototype.loadInstanceFromJSON = function(inst, o, state_only) + { + var p, i, len, iv, oivs, world, fxindex, obehs, behindex, value; + var oldlayer; + var type = inst.type; + var plugin = type.plugin; + if (state_only) + { + if (!o["c2"]) + return; + } + else + inst.uid = o["uid"]; + if (o["ex"]) + inst.extra = o["ex"]; + else + cr.wipe(inst.extra); + oivs = o["ivs"]; + if (oivs) + { + for (p in oivs) + { + if (oivs.hasOwnProperty(p)) + { + iv = this.getInstanceVarIndexBySid(type, parseInt(p, 10)); + if (iv < 0 || iv >= inst.instance_vars.length) + continue; // must've gone missing + value = oivs[p]; + if (value === null) + value = NaN; + inst.instance_vars[iv] = value; + } + } + } + if (plugin.is_world) + { + world = o["w"]; + if (inst.layer.sid !== world["l"]) + { + oldlayer = inst.layer; + inst.layer = this.running_layout.getLayerBySid(world["l"]); + if (inst.layer) + { + oldlayer.removeFromInstanceList(inst, true); + inst.layer.appendToInstanceList(inst, true); + inst.set_bbox_changed(); + inst.layer.setZIndicesStaleFrom(0); + } + else + { + inst.layer = oldlayer; + if (!state_only) + this.DestroyInstance(inst); + } + } + inst.x = world["x"]; + inst.y = world["y"]; + inst.width = world["w"]; + inst.height = world["h"]; + inst.zindex = world["zi"]; + inst.angle = world.hasOwnProperty("a") ? world["a"] : 0; + inst.opacity = world.hasOwnProperty("o") ? world["o"] : 1; + inst.hotspotX = world.hasOwnProperty("hX") ? world["hX"] : 0.5; + inst.hotspotY = world.hasOwnProperty("hY") ? world["hY"] : 0.5; + inst.visible = world.hasOwnProperty("v") ? world["v"] : true; + inst.collisionsEnabled = world.hasOwnProperty("ce") ? world["ce"] : true; + inst.my_timescale = world.hasOwnProperty("mts") ? world["mts"] : -1; + inst.blend_mode = world.hasOwnProperty("bm") ? world["bm"] : 0;; + inst.compositeOp = cr.effectToCompositeOp(inst.blend_mode); + if (this.gl) + cr.setGLBlend(inst, inst.blend_mode, this.gl); + inst.set_bbox_changed(); + if (world.hasOwnProperty("fx")) + { + for (i = 0, len = world["fx"].length; i < len; i++) + { + fxindex = type.getEffectIndexByName(world["fx"][i]["name"]); + if (fxindex < 0) + continue; // must've gone missing + inst.active_effect_flags[fxindex] = world["fx"][i]["active"]; + inst.effect_params[fxindex] = world["fx"][i]["params"]; + } + } + inst.updateActiveEffects(); + } + obehs = o["behs"]; + if (obehs) + { + for (p in obehs) + { + if (obehs.hasOwnProperty(p)) + { + behindex = this.getBehaviorIndexBySid(inst, parseInt(p, 10)); + if (behindex < 0) + continue; // must've gone missing + inst.behavior_insts[behindex].loadFromJSON(obehs[p]); + } + } + } + if (o["data"]) + inst.loadFromJSON(o["data"]); + }; + Runtime.prototype.fetchLocalFileViaCordova = function (filename, successCallback, errorCallback) + { + var path = cordova["file"]["applicationDirectory"] + "www/" + filename; + window["resolveLocalFileSystemURL"](path, function (entry) + { + entry.file(successCallback, errorCallback); + }, errorCallback); + }; + Runtime.prototype.fetchLocalFileViaCordovaAsText = function (filename, successCallback, errorCallback) + { + this.fetchLocalFileViaCordova(filename, function (file) + { + var reader = new FileReader(); + reader.onload = function (e) + { + successCallback(e.target.result); + }; + reader.onerror = errorCallback; + reader.readAsText(file); + }, errorCallback); + }; + var queuedArrayBufferReads = []; + var activeArrayBufferReads = 0; + var MAX_ARRAYBUFFER_READS = 8; + Runtime.prototype.maybeStartNextArrayBufferRead = function() + { + if (!queuedArrayBufferReads.length) + return; // none left + if (activeArrayBufferReads >= MAX_ARRAYBUFFER_READS) + return; // already got maximum number in-flight + activeArrayBufferReads++; + var job = queuedArrayBufferReads.shift(); + this.doFetchLocalFileViaCordovaAsArrayBuffer(job.filename, job.successCallback, job.errorCallback); + }; + Runtime.prototype.fetchLocalFileViaCordovaAsArrayBuffer = function (filename, successCallback_, errorCallback_) + { + var self = this; + queuedArrayBufferReads.push({ + filename: filename, + successCallback: function (result) + { + activeArrayBufferReads--; + self.maybeStartNextArrayBufferRead(); + successCallback_(result); + }, + errorCallback: function (err) + { + activeArrayBufferReads--; + self.maybeStartNextArrayBufferRead(); + errorCallback_(err); + } + }); + this.maybeStartNextArrayBufferRead(); + }; + Runtime.prototype.doFetchLocalFileViaCordovaAsArrayBuffer = function (filename, successCallback, errorCallback) + { + this.fetchLocalFileViaCordova(filename, function (file) + { + var reader = new FileReader(); + reader.onload = function (e) + { + successCallback(e.target.result); + }; + reader.readAsArrayBuffer(file); + }, errorCallback); + }; + Runtime.prototype.fetchLocalFileViaCordovaAsURL = function (filename, successCallback, errorCallback) + { + var blobType = ""; + var lowername = filename.toLowerCase(); + var ext3 = lowername.substr(lowername.length - 4); + var ext4 = lowername.substr(lowername.length - 5); + if (ext3 === ".mp4") + blobType = "video/mp4"; + else if (ext4 === ".webm") + blobType = "video/webm"; // use video type but hopefully works with audio too + else if (ext3 === ".m4a") + blobType = "audio/mp4"; + else if (ext3 === ".mp3") + blobType = "audio/mpeg"; + this.fetchLocalFileViaCordovaAsArrayBuffer(filename, function (arrayBuffer) + { + var blob = new Blob([arrayBuffer], { type: blobType }); + var url = URL.createObjectURL(blob); + successCallback(url); + }, errorCallback); + }; + Runtime.prototype.isAbsoluteUrl = function (url) + { + return /^(?:[a-z]+:)?\/\//.test(url) || url.substr(0, 5) === "data:" || url.substr(0, 5) === "blob:"; + }; + Runtime.prototype.setImageSrc = function (img, src) + { + if (this.isWKWebView && !this.isAbsoluteUrl(src)) + { + this.fetchLocalFileViaCordovaAsURL(src, function (url) + { + img.src = url; + }, function (err) + { + alert("Failed to load image: " + err); + }); + } + else + { + img.src = src; + } + }; + Runtime.prototype.setCtxImageSmoothingEnabled = function (ctx, e) + { + if (typeof ctx["imageSmoothingEnabled"] !== "undefined") + { + ctx["imageSmoothingEnabled"] = e; + } + else + { + ctx["webkitImageSmoothingEnabled"] = e; + ctx["mozImageSmoothingEnabled"] = e; + ctx["msImageSmoothingEnabled"] = e; + } + }; + cr.runtime = Runtime; + cr.createRuntime = function (canvasid) + { + return new Runtime(document.getElementById(canvasid)); + }; + cr.createDCRuntime = function (w, h) + { + return new Runtime({ "dc": true, "width": w, "height": h }); + }; + window["cr_createRuntime"] = cr.createRuntime; + window["cr_createDCRuntime"] = cr.createDCRuntime; + window["createCocoonJSRuntime"] = function () + { + window["c2cocoonjs"] = true; + var canvas = document.createElement("screencanvas") || document.createElement("canvas"); + canvas.screencanvas = true; + document.body.appendChild(canvas); + var rt = new Runtime(canvas); + window["c2runtime"] = rt; + window.addEventListener("orientationchange", function () { + window["c2runtime"]["setSize"](window.innerWidth, window.innerHeight); + }); + window["c2runtime"]["setSize"](window.innerWidth, window.innerHeight); + return rt; + }; + window["createEjectaRuntime"] = function () + { + var canvas = document.getElementById("canvas"); + var rt = new Runtime(canvas); + window["c2runtime"] = rt; + window["c2runtime"]["setSize"](window.innerWidth, window.innerHeight); + return rt; + }; +}()); +window["cr_getC2Runtime"] = function() +{ + var canvas = document.getElementById("c2canvas"); + if (canvas) + return canvas["c2runtime"]; + else if (window["c2runtime"]) + return window["c2runtime"]; + else + return null; +} +window["cr_getSnapshot"] = function (format_, quality_) +{ + var runtime = window["cr_getC2Runtime"](); + if (runtime) + runtime.doCanvasSnapshot(format_, quality_); +} +window["cr_sizeCanvas"] = function(w, h) +{ + if (w === 0 || h === 0) + return; + var runtime = window["cr_getC2Runtime"](); + if (runtime) + runtime["setSize"](w, h); +} +window["cr_setSuspended"] = function(s) +{ + var runtime = window["cr_getC2Runtime"](); + if (runtime) + runtime["setSuspended"](s); +} +; +(function() +{ + function Layout(runtime, m) + { + this.runtime = runtime; + this.event_sheet = null; + this.scrollX = (this.runtime.original_width / 2); + this.scrollY = (this.runtime.original_height / 2); + this.scale = 1.0; + this.angle = 0; + this.first_visit = true; + this.name = m[0]; + this.originalWidth = m[1]; + this.originalHeight = m[2]; + this.width = m[1]; + this.height = m[2]; + this.unbounded_scrolling = m[3]; + this.sheetname = m[4]; + this.sid = m[5]; + var lm = m[6]; + var i, len; + this.layers = []; + this.initial_types = []; + for (i = 0, len = lm.length; i < len; i++) + { + var layer = new cr.layer(this, lm[i]); + layer.number = i; + cr.seal(layer); + this.layers.push(layer); + } + var im = m[7]; + this.initial_nonworld = []; + for (i = 0, len = im.length; i < len; i++) + { + var inst = im[i]; + var type = this.runtime.types_by_index[inst[1]]; +; + if (!type.default_instance) + type.default_instance = inst; + this.initial_nonworld.push(inst); + if (this.initial_types.indexOf(type) === -1) + this.initial_types.push(type); + } + this.effect_types = []; + this.active_effect_types = []; + this.shaders_preserve_opaqueness = true; + this.effect_params = []; + for (i = 0, len = m[8].length; i < len; i++) + { + this.effect_types.push({ + id: m[8][i][0], + name: m[8][i][1], + shaderindex: -1, + preservesOpaqueness: false, + active: true, + index: i + }); + this.effect_params.push(m[8][i][2].slice(0)); + } + this.updateActiveEffects(); + this.rcTex = new cr.rect(0, 0, 1, 1); + this.rcTex2 = new cr.rect(0, 0, 1, 1); + this.persist_data = {}; + }; + Layout.prototype.saveObjectToPersist = function (inst) + { + var sidStr = inst.type.sid.toString(); + if (!this.persist_data.hasOwnProperty(sidStr)) + this.persist_data[sidStr] = []; + var type_persist = this.persist_data[sidStr]; + type_persist.push(this.runtime.saveInstanceToJSON(inst)); + }; + Layout.prototype.hasOpaqueBottomLayer = function () + { + var layer = this.layers[0]; + return !layer.transparent && layer.opacity === 1.0 && !layer.forceOwnTexture && layer.visible; + }; + Layout.prototype.updateActiveEffects = function () + { + cr.clearArray(this.active_effect_types); + this.shaders_preserve_opaqueness = true; + var i, len, et; + for (i = 0, len = this.effect_types.length; i < len; i++) + { + et = this.effect_types[i]; + if (et.active) + { + this.active_effect_types.push(et); + if (!et.preservesOpaqueness) + this.shaders_preserve_opaqueness = false; + } + } + }; + Layout.prototype.getEffectByName = function (name_) + { + var i, len, et; + for (i = 0, len = this.effect_types.length; i < len; i++) + { + et = this.effect_types[i]; + if (et.name === name_) + return et; + } + return null; + }; + var created_instances = []; + function sort_by_zindex(a, b) + { + return a.zindex - b.zindex; + }; + var first_layout = true; + Layout.prototype.startRunning = function () + { + if (this.sheetname) + { + this.event_sheet = this.runtime.eventsheets[this.sheetname]; +; + this.event_sheet.updateDeepIncludes(); + } + this.runtime.running_layout = this; + this.width = this.originalWidth; + this.height = this.originalHeight; + this.scrollX = (this.runtime.original_width / 2); + this.scrollY = (this.runtime.original_height / 2); + var i, k, len, lenk, type, type_instances, initial_inst, inst, iid, t, s, p, q, type_data, layer; + for (i = 0, len = this.runtime.types_by_index.length; i < len; i++) + { + type = this.runtime.types_by_index[i]; + if (type.is_family) + continue; // instances are only transferred for their real type + type_instances = type.instances; + for (k = 0, lenk = type_instances.length; k < lenk; k++) + { + inst = type_instances[k]; + if (inst.layer) + { + var num = inst.layer.number; + if (num >= this.layers.length) + num = this.layers.length - 1; + inst.layer = this.layers[num]; + if (inst.layer.instances.indexOf(inst) === -1) + inst.layer.instances.push(inst); + inst.layer.zindices_stale = true; + } + } + } + if (!first_layout) + { + for (i = 0, len = this.layers.length; i < len; ++i) + { + this.layers[i].instances.sort(sort_by_zindex); + } + } + var layer; + cr.clearArray(created_instances); + this.boundScrolling(); + for (i = 0, len = this.layers.length; i < len; i++) + { + layer = this.layers[i]; + layer.createInitialInstances(); // fills created_instances + layer.updateViewport(null); + } + var uids_changed = false; + if (!this.first_visit) + { + for (p in this.persist_data) + { + if (this.persist_data.hasOwnProperty(p)) + { + type = this.runtime.getObjectTypeBySid(parseInt(p, 10)); + if (!type || type.is_family || !this.runtime.typeHasPersistBehavior(type)) + continue; + type_data = this.persist_data[p]; + for (i = 0, len = type_data.length; i < len; i++) + { + layer = null; + if (type.plugin.is_world) + { + layer = this.getLayerBySid(type_data[i]["w"]["l"]); + if (!layer) + continue; + } + inst = this.runtime.createInstanceFromInit(type.default_instance, layer, false, 0, 0, true); + this.runtime.loadInstanceFromJSON(inst, type_data[i]); + uids_changed = true; + created_instances.push(inst); + } + cr.clearArray(type_data); + } + } + for (i = 0, len = this.layers.length; i < len; i++) + { + this.layers[i].instances.sort(sort_by_zindex); + this.layers[i].zindices_stale = true; // in case of duplicates/holes + } + } + if (uids_changed) + { + this.runtime.ClearDeathRow(); + this.runtime.refreshUidMap(); + } + for (i = 0; i < created_instances.length; i++) + { + inst = created_instances[i]; + if (!inst.type.is_contained) + continue; + iid = inst.get_iid(); + for (k = 0, lenk = inst.type.container.length; k < lenk; k++) + { + t = inst.type.container[k]; + if (inst.type === t) + continue; + if (t.instances.length > iid) + inst.siblings.push(t.instances[iid]); + else + { + if (!t.default_instance) + { + } + else + { + s = this.runtime.createInstanceFromInit(t.default_instance, inst.layer, true, inst.x, inst.y, true); + this.runtime.ClearDeathRow(); + t.updateIIDs(); + inst.siblings.push(s); + created_instances.push(s); // come back around and link up its own instances too + } + } + } + } + for (i = 0, len = this.initial_nonworld.length; i < len; i++) + { + initial_inst = this.initial_nonworld[i]; + type = this.runtime.types_by_index[initial_inst[1]]; + if (!type.is_contained) + { + inst = this.runtime.createInstanceFromInit(this.initial_nonworld[i], null, true); + } +; + } + this.runtime.changelayout = null; + this.runtime.ClearDeathRow(); + if (this.runtime.ctx && !this.runtime.isDomFree) + { + for (i = 0, len = this.runtime.types_by_index.length; i < len; i++) + { + t = this.runtime.types_by_index[i]; + if (t.is_family || !t.instances.length || !t.preloadCanvas2D) + continue; + t.preloadCanvas2D(this.runtime.ctx); + } + } + /* + if (this.runtime.glwrap) + { + console.log("Estimated VRAM at layout start: " + this.runtime.glwrap.textureCount() + " textures, approx. " + Math.round(this.runtime.glwrap.estimateVRAM() / 1024) + " kb"); + } + */ + if (this.runtime.isLoadingState) + { + cr.shallowAssignArray(this.runtime.fireOnCreateAfterLoad, created_instances); + } + else + { + for (i = 0, len = created_instances.length; i < len; i++) + { + inst = created_instances[i]; + this.runtime.trigger(Object.getPrototypeOf(inst.type.plugin).cnds.OnCreated, inst); + } + } + cr.clearArray(created_instances); + if (!this.runtime.isLoadingState) + { + this.runtime.trigger(cr.system_object.prototype.cnds.OnLayoutStart, null); + } + this.first_visit = false; + }; + Layout.prototype.createGlobalNonWorlds = function () + { + var i, k, len, initial_inst, inst, type; + for (i = 0, k = 0, len = this.initial_nonworld.length; i < len; i++) + { + initial_inst = this.initial_nonworld[i]; + type = this.runtime.types_by_index[initial_inst[1]]; + if (type.global) + { + if (!type.is_contained) + { + inst = this.runtime.createInstanceFromInit(initial_inst, null, true); + } + } + else + { + this.initial_nonworld[k] = initial_inst; + k++; + } + } + cr.truncateArray(this.initial_nonworld, k); + }; + Layout.prototype.stopRunning = function () + { +; + /* + if (this.runtime.glwrap) + { + console.log("Estimated VRAM at layout end: " + this.runtime.glwrap.textureCount() + " textures, approx. " + Math.round(this.runtime.glwrap.estimateVRAM() / 1024) + " kb"); + } + */ + if (!this.runtime.isLoadingState) + { + this.runtime.trigger(cr.system_object.prototype.cnds.OnLayoutEnd, null); + } + this.runtime.isEndingLayout = true; + cr.clearArray(this.runtime.system.waits); + var i, leni, j, lenj; + var layer_instances, inst, type; + if (!this.first_visit) + { + for (i = 0, leni = this.layers.length; i < leni; i++) + { + this.layers[i].updateZIndices(); + layer_instances = this.layers[i].instances; + for (j = 0, lenj = layer_instances.length; j < lenj; j++) + { + inst = layer_instances[j]; + if (!inst.type.global) + { + if (this.runtime.typeHasPersistBehavior(inst.type)) + this.saveObjectToPersist(inst); + } + } + } + } + for (i = 0, leni = this.layers.length; i < leni; i++) + { + layer_instances = this.layers[i].instances; + for (j = 0, lenj = layer_instances.length; j < lenj; j++) + { + inst = layer_instances[j]; + if (!inst.type.global) + { + this.runtime.DestroyInstance(inst); + } + } + this.runtime.ClearDeathRow(); + cr.clearArray(layer_instances); + this.layers[i].zindices_stale = true; + } + for (i = 0, leni = this.runtime.types_by_index.length; i < leni; i++) + { + type = this.runtime.types_by_index[i]; + if (type.global || type.plugin.is_world || type.plugin.singleglobal || type.is_family) + continue; + for (j = 0, lenj = type.instances.length; j < lenj; j++) + this.runtime.DestroyInstance(type.instances[j]); + this.runtime.ClearDeathRow(); + } + first_layout = false; + this.runtime.isEndingLayout = false; + }; + var temp_rect = new cr.rect(0, 0, 0, 0); + Layout.prototype.recreateInitialObjects = function (type, x1, y1, x2, y2) + { + temp_rect.set(x1, y1, x2, y2); + var i, len; + for (i = 0, len = this.layers.length; i < len; i++) + { + this.layers[i].recreateInitialObjects(type, temp_rect); + } + }; + Layout.prototype.draw = function (ctx) + { + var layout_canvas; + var layout_ctx = ctx; + var ctx_changed = false; + var render_offscreen = !this.runtime.fullscreenScalingQuality; + if (render_offscreen) + { + if (!this.runtime.layout_canvas) + { + this.runtime.layout_canvas = document.createElement("canvas"); + layout_canvas = this.runtime.layout_canvas; + layout_canvas.width = this.runtime.draw_width; + layout_canvas.height = this.runtime.draw_height; + this.runtime.layout_ctx = layout_canvas.getContext("2d"); + ctx_changed = true; + } + layout_canvas = this.runtime.layout_canvas; + layout_ctx = this.runtime.layout_ctx; + if (layout_canvas.width !== this.runtime.draw_width) + { + layout_canvas.width = this.runtime.draw_width; + ctx_changed = true; + } + if (layout_canvas.height !== this.runtime.draw_height) + { + layout_canvas.height = this.runtime.draw_height; + ctx_changed = true; + } + if (ctx_changed) + { + this.runtime.setCtxImageSmoothingEnabled(layout_ctx, this.runtime.linearSampling); + } + } + layout_ctx.globalAlpha = 1; + layout_ctx.globalCompositeOperation = "source-over"; + if (this.runtime.clearBackground && !this.hasOpaqueBottomLayer()) + layout_ctx.clearRect(0, 0, this.runtime.draw_width, this.runtime.draw_height); + var i, len, l; + for (i = 0, len = this.layers.length; i < len; i++) + { + l = this.layers[i]; + if (l.visible && l.opacity > 0 && l.blend_mode !== 11 && (l.instances.length || !l.transparent)) + l.draw(layout_ctx); + else + l.updateViewport(null); // even if not drawing, keep viewport up to date + } + if (render_offscreen) + { + ctx.drawImage(layout_canvas, 0, 0, this.runtime.width, this.runtime.height); + } + }; + Layout.prototype.drawGL_earlyZPass = function (glw) + { + glw.setEarlyZPass(true); + if (!this.runtime.layout_tex) + { + this.runtime.layout_tex = glw.createEmptyTexture(this.runtime.draw_width, this.runtime.draw_height, this.runtime.linearSampling); + } + if (this.runtime.layout_tex.c2width !== this.runtime.draw_width || this.runtime.layout_tex.c2height !== this.runtime.draw_height) + { + glw.deleteTexture(this.runtime.layout_tex); + this.runtime.layout_tex = glw.createEmptyTexture(this.runtime.draw_width, this.runtime.draw_height, this.runtime.linearSampling); + } + glw.setRenderingToTexture(this.runtime.layout_tex); + if (!this.runtime.fullscreenScalingQuality) + { + glw.setSize(this.runtime.draw_width, this.runtime.draw_height); + } + var i, l; + for (i = this.layers.length - 1; i >= 0; --i) + { + l = this.layers[i]; + if (l.visible && l.opacity === 1 && l.shaders_preserve_opaqueness && + l.blend_mode === 0 && (l.instances.length || !l.transparent)) + { + l.drawGL_earlyZPass(glw); + } + else + { + l.updateViewport(null); // even if not drawing, keep viewport up to date + } + } + glw.setEarlyZPass(false); + }; + Layout.prototype.drawGL = function (glw) + { + var render_to_texture = (this.active_effect_types.length > 0 || + this.runtime.uses_background_blending || + !this.runtime.fullscreenScalingQuality || + this.runtime.enableFrontToBack); + if (render_to_texture) + { + if (!this.runtime.layout_tex) + { + this.runtime.layout_tex = glw.createEmptyTexture(this.runtime.draw_width, this.runtime.draw_height, this.runtime.linearSampling); + } + if (this.runtime.layout_tex.c2width !== this.runtime.draw_width || this.runtime.layout_tex.c2height !== this.runtime.draw_height) + { + glw.deleteTexture(this.runtime.layout_tex); + this.runtime.layout_tex = glw.createEmptyTexture(this.runtime.draw_width, this.runtime.draw_height, this.runtime.linearSampling); + } + glw.setRenderingToTexture(this.runtime.layout_tex); + if (!this.runtime.fullscreenScalingQuality) + { + glw.setSize(this.runtime.draw_width, this.runtime.draw_height); + } + } + else + { + if (this.runtime.layout_tex) + { + glw.setRenderingToTexture(null); + glw.deleteTexture(this.runtime.layout_tex); + this.runtime.layout_tex = null; + } + } + if (this.runtime.clearBackground && !this.hasOpaqueBottomLayer()) + glw.clear(0, 0, 0, 0); + var i, len, l; + for (i = 0, len = this.layers.length; i < len; i++) + { + l = this.layers[i]; + if (l.visible && l.opacity > 0 && (l.instances.length || !l.transparent)) + l.drawGL(glw); + else + l.updateViewport(null); // even if not drawing, keep viewport up to date + } + if (render_to_texture) + { + if (this.active_effect_types.length === 0 || + (this.active_effect_types.length === 1 && this.runtime.fullscreenScalingQuality)) + { + if (this.active_effect_types.length === 1) + { + var etindex = this.active_effect_types[0].index; + glw.switchProgram(this.active_effect_types[0].shaderindex); + glw.setProgramParameters(null, // backTex + 1.0 / this.runtime.draw_width, // pixelWidth + 1.0 / this.runtime.draw_height, // pixelHeight + 0.0, 0.0, // destStart + 1.0, 1.0, // destEnd + this.scale, // layerScale + this.angle, // layerAngle + 0.0, 0.0, // viewOrigin + this.runtime.draw_width / 2, this.runtime.draw_height / 2, // scrollPos + this.runtime.kahanTime.sum, // seconds + this.effect_params[etindex]); // fx parameters + if (glw.programIsAnimated(this.active_effect_types[0].shaderindex)) + this.runtime.redraw = true; + } + else + glw.switchProgram(0); + if (!this.runtime.fullscreenScalingQuality) + { + glw.setSize(this.runtime.width, this.runtime.height); + } + glw.setRenderingToTexture(null); // to backbuffer + glw.setDepthTestEnabled(false); // ignore depth buffer, copy full texture + glw.setOpacity(1); + glw.setTexture(this.runtime.layout_tex); + glw.setAlphaBlend(); + glw.resetModelView(); + glw.updateModelView(); + var halfw = this.runtime.width / 2; + var halfh = this.runtime.height / 2; + glw.quad(-halfw, halfh, halfw, halfh, halfw, -halfh, -halfw, -halfh); + glw.setTexture(null); + glw.setDepthTestEnabled(true); // turn depth test back on + } + else + { + this.renderEffectChain(glw, null, null, null); + } + } + }; + Layout.prototype.getRenderTarget = function() + { + if (this.active_effect_types.length > 0 || + this.runtime.uses_background_blending || + !this.runtime.fullscreenScalingQuality || + this.runtime.enableFrontToBack) + { + return this.runtime.layout_tex; + } + else + { + return null; + } + }; + Layout.prototype.getMinLayerScale = function () + { + var m = this.layers[0].getScale(); + var i, len, l; + for (i = 1, len = this.layers.length; i < len; i++) + { + l = this.layers[i]; + if (l.parallaxX === 0 && l.parallaxY === 0) + continue; + if (l.getScale() < m) + m = l.getScale(); + } + return m; + }; + Layout.prototype.scrollToX = function (x) + { + if (!this.unbounded_scrolling) + { + var widthBoundary = (this.runtime.draw_width * (1 / this.getMinLayerScale()) / 2); + if (x > this.width - widthBoundary) + x = this.width - widthBoundary; + if (x < widthBoundary) + x = widthBoundary; + } + if (this.scrollX !== x) + { + this.scrollX = x; + this.runtime.redraw = true; + } + }; + Layout.prototype.scrollToY = function (y) + { + if (!this.unbounded_scrolling) + { + var heightBoundary = (this.runtime.draw_height * (1 / this.getMinLayerScale()) / 2); + if (y > this.height - heightBoundary) + y = this.height - heightBoundary; + if (y < heightBoundary) + y = heightBoundary; + } + if (this.scrollY !== y) + { + this.scrollY = y; + this.runtime.redraw = true; + } + }; + Layout.prototype.boundScrolling = function () + { + this.scrollToX(this.scrollX); + this.scrollToY(this.scrollY); + }; + Layout.prototype.renderEffectChain = function (glw, layer, inst, rendertarget) + { + var active_effect_types = inst ? + inst.active_effect_types : + layer ? + layer.active_effect_types : + this.active_effect_types; + var layerScale = 1, layerAngle = 0, viewOriginLeft = 0, viewOriginTop = 0, viewOriginRight = this.runtime.draw_width, viewOriginBottom = this.runtime.draw_height; + if (inst) + { + layerScale = inst.layer.getScale(); + layerAngle = inst.layer.getAngle(); + viewOriginLeft = inst.layer.viewLeft; + viewOriginTop = inst.layer.viewTop; + viewOriginRight = inst.layer.viewRight; + viewOriginBottom = inst.layer.viewBottom; + } + else if (layer) + { + layerScale = layer.getScale(); + layerAngle = layer.getAngle(); + viewOriginLeft = layer.viewLeft; + viewOriginTop = layer.viewTop; + viewOriginRight = layer.viewRight; + viewOriginBottom = layer.viewBottom; + } + var fx_tex = this.runtime.fx_tex; + var i, len, last, temp, fx_index = 0, other_fx_index = 1; + var y, h; + var windowWidth = this.runtime.draw_width; + var windowHeight = this.runtime.draw_height; + var halfw = windowWidth / 2; + var halfh = windowHeight / 2; + var rcTex = layer ? layer.rcTex : this.rcTex; + var rcTex2 = layer ? layer.rcTex2 : this.rcTex2; + var screenleft = 0, clearleft = 0; + var screentop = 0, cleartop = 0; + var screenright = windowWidth, clearright = windowWidth; + var screenbottom = windowHeight, clearbottom = windowHeight; + var boxExtendHorizontal = 0; + var boxExtendVertical = 0; + var inst_layer_angle = inst ? inst.layer.getAngle() : 0; + if (inst) + { + for (i = 0, len = active_effect_types.length; i < len; i++) + { + boxExtendHorizontal += glw.getProgramBoxExtendHorizontal(active_effect_types[i].shaderindex); + boxExtendVertical += glw.getProgramBoxExtendVertical(active_effect_types[i].shaderindex); + } + var bbox = inst.bbox; + screenleft = layer.layerToCanvas(bbox.left, bbox.top, true, true); + screentop = layer.layerToCanvas(bbox.left, bbox.top, false, true); + screenright = layer.layerToCanvas(bbox.right, bbox.bottom, true, true); + screenbottom = layer.layerToCanvas(bbox.right, bbox.bottom, false, true); + if (inst_layer_angle !== 0) + { + var screentrx = layer.layerToCanvas(bbox.right, bbox.top, true, true); + var screentry = layer.layerToCanvas(bbox.right, bbox.top, false, true); + var screenblx = layer.layerToCanvas(bbox.left, bbox.bottom, true, true); + var screenbly = layer.layerToCanvas(bbox.left, bbox.bottom, false, true); + temp = Math.min(screenleft, screenright, screentrx, screenblx); + screenright = Math.max(screenleft, screenright, screentrx, screenblx); + screenleft = temp; + temp = Math.min(screentop, screenbottom, screentry, screenbly); + screenbottom = Math.max(screentop, screenbottom, screentry, screenbly); + screentop = temp; + } + screenleft -= boxExtendHorizontal; + screentop -= boxExtendVertical; + screenright += boxExtendHorizontal; + screenbottom += boxExtendVertical; + rcTex2.left = screenleft / windowWidth; + rcTex2.top = 1 - screentop / windowHeight; + rcTex2.right = screenright / windowWidth; + rcTex2.bottom = 1 - screenbottom / windowHeight; + clearleft = screenleft = cr.floor(screenleft); + cleartop = screentop = cr.floor(screentop); + clearright = screenright = cr.ceil(screenright); + clearbottom = screenbottom = cr.ceil(screenbottom); + clearleft -= boxExtendHorizontal; + cleartop -= boxExtendVertical; + clearright += boxExtendHorizontal; + clearbottom += boxExtendVertical; + if (screenleft < 0) screenleft = 0; + if (screentop < 0) screentop = 0; + if (screenright > windowWidth) screenright = windowWidth; + if (screenbottom > windowHeight) screenbottom = windowHeight; + if (clearleft < 0) clearleft = 0; + if (cleartop < 0) cleartop = 0; + if (clearright > windowWidth) clearright = windowWidth; + if (clearbottom > windowHeight) clearbottom = windowHeight; + rcTex.left = screenleft / windowWidth; + rcTex.top = 1 - screentop / windowHeight; + rcTex.right = screenright / windowWidth; + rcTex.bottom = 1 - screenbottom / windowHeight; + } + else + { + rcTex.left = rcTex2.left = 0; + rcTex.top = rcTex2.top = 0; + rcTex.right = rcTex2.right = 1; + rcTex.bottom = rcTex2.bottom = 1; + } + var pre_draw = (inst && (glw.programUsesDest(active_effect_types[0].shaderindex) || boxExtendHorizontal !== 0 || boxExtendVertical !== 0 || inst.opacity !== 1 || inst.type.plugin.must_predraw)) || (layer && !inst && layer.opacity !== 1); + glw.setAlphaBlend(); + if (pre_draw) + { + if (!fx_tex[fx_index]) + { + fx_tex[fx_index] = glw.createEmptyTexture(windowWidth, windowHeight, this.runtime.linearSampling); + } + if (fx_tex[fx_index].c2width !== windowWidth || fx_tex[fx_index].c2height !== windowHeight) + { + glw.deleteTexture(fx_tex[fx_index]); + fx_tex[fx_index] = glw.createEmptyTexture(windowWidth, windowHeight, this.runtime.linearSampling); + } + glw.switchProgram(0); + glw.setRenderingToTexture(fx_tex[fx_index]); + h = clearbottom - cleartop; + y = (windowHeight - cleartop) - h; + glw.clearRect(clearleft, y, clearright - clearleft, h); + if (inst) + { + inst.drawGL(glw); + } + else + { + glw.setTexture(this.runtime.layer_tex); + glw.setOpacity(layer.opacity); + glw.resetModelView(); + glw.translate(-halfw, -halfh); + glw.updateModelView(); + glw.quadTex(screenleft, screenbottom, screenright, screenbottom, screenright, screentop, screenleft, screentop, rcTex); + } + rcTex2.left = rcTex2.top = 0; + rcTex2.right = rcTex2.bottom = 1; + if (inst) + { + temp = rcTex.top; + rcTex.top = rcTex.bottom; + rcTex.bottom = temp; + } + fx_index = 1; + other_fx_index = 0; + } + glw.setOpacity(1); + var last = active_effect_types.length - 1; + var post_draw = glw.programUsesCrossSampling(active_effect_types[last].shaderindex) || + (!layer && !inst && !this.runtime.fullscreenScalingQuality); + var etindex = 0; + for (i = 0, len = active_effect_types.length; i < len; i++) + { + if (!fx_tex[fx_index]) + { + fx_tex[fx_index] = glw.createEmptyTexture(windowWidth, windowHeight, this.runtime.linearSampling); + } + if (fx_tex[fx_index].c2width !== windowWidth || fx_tex[fx_index].c2height !== windowHeight) + { + glw.deleteTexture(fx_tex[fx_index]); + fx_tex[fx_index] = glw.createEmptyTexture(windowWidth, windowHeight, this.runtime.linearSampling); + } + glw.switchProgram(active_effect_types[i].shaderindex); + etindex = active_effect_types[i].index; + if (glw.programIsAnimated(active_effect_types[i].shaderindex)) + this.runtime.redraw = true; + if (i == 0 && !pre_draw) + { + glw.setRenderingToTexture(fx_tex[fx_index]); + h = clearbottom - cleartop; + y = (windowHeight - cleartop) - h; + glw.clearRect(clearleft, y, clearright - clearleft, h); + if (inst) + { + var pixelWidth; + var pixelHeight; + if (inst.curFrame && inst.curFrame.texture_img) + { + var img = inst.curFrame.texture_img; + pixelWidth = 1.0 / img.width; + pixelHeight = 1.0 / img.height; + } + else + { + pixelWidth = 1.0 / inst.width; + pixelHeight = 1.0 / inst.height; + } + glw.setProgramParameters(rendertarget, // backTex + pixelWidth, + pixelHeight, + rcTex2.left, rcTex2.top, // destStart + rcTex2.right, rcTex2.bottom, // destEnd + layerScale, + layerAngle, + viewOriginLeft, viewOriginTop, + (viewOriginLeft + viewOriginRight) / 2, (viewOriginTop + viewOriginBottom) / 2, + this.runtime.kahanTime.sum, + inst.effect_params[etindex]); // fx params + inst.drawGL(glw); + } + else + { + glw.setProgramParameters(rendertarget, // backTex + 1.0 / windowWidth, // pixelWidth + 1.0 / windowHeight, // pixelHeight + 0.0, 0.0, // destStart + 1.0, 1.0, // destEnd + layerScale, + layerAngle, + viewOriginLeft, viewOriginTop, + (viewOriginLeft + viewOriginRight) / 2, (viewOriginTop + viewOriginBottom) / 2, + this.runtime.kahanTime.sum, + layer ? // fx params + layer.effect_params[etindex] : + this.effect_params[etindex]); + glw.setTexture(layer ? this.runtime.layer_tex : this.runtime.layout_tex); + glw.resetModelView(); + glw.translate(-halfw, -halfh); + glw.updateModelView(); + glw.quadTex(screenleft, screenbottom, screenright, screenbottom, screenright, screentop, screenleft, screentop, rcTex); + } + rcTex2.left = rcTex2.top = 0; + rcTex2.right = rcTex2.bottom = 1; + if (inst && !post_draw) + { + temp = screenbottom; + screenbottom = screentop; + screentop = temp; + } + } + else + { + glw.setProgramParameters(rendertarget, // backTex + 1.0 / windowWidth, // pixelWidth + 1.0 / windowHeight, // pixelHeight + rcTex2.left, rcTex2.top, // destStart + rcTex2.right, rcTex2.bottom, // destEnd + layerScale, + layerAngle, + viewOriginLeft, viewOriginTop, + (viewOriginLeft + viewOriginRight) / 2, (viewOriginTop + viewOriginBottom) / 2, + this.runtime.kahanTime.sum, + inst ? // fx params + inst.effect_params[etindex] : + layer ? + layer.effect_params[etindex] : + this.effect_params[etindex]); + glw.setTexture(null); + if (i === last && !post_draw) + { + if (inst) + glw.setBlend(inst.srcBlend, inst.destBlend); + else if (layer) + glw.setBlend(layer.srcBlend, layer.destBlend); + glw.setRenderingToTexture(rendertarget); + } + else + { + glw.setRenderingToTexture(fx_tex[fx_index]); + h = clearbottom - cleartop; + y = (windowHeight - cleartop) - h; + glw.clearRect(clearleft, y, clearright - clearleft, h); + } + glw.setTexture(fx_tex[other_fx_index]); + glw.resetModelView(); + glw.translate(-halfw, -halfh); + glw.updateModelView(); + glw.quadTex(screenleft, screenbottom, screenright, screenbottom, screenright, screentop, screenleft, screentop, rcTex); + if (i === last && !post_draw) + glw.setTexture(null); + } + fx_index = (fx_index === 0 ? 1 : 0); + other_fx_index = (fx_index === 0 ? 1 : 0); // will be opposite to fx_index since it was just assigned + } + if (post_draw) + { + glw.switchProgram(0); + if (inst) + glw.setBlend(inst.srcBlend, inst.destBlend); + else if (layer) + glw.setBlend(layer.srcBlend, layer.destBlend); + else + { + if (!this.runtime.fullscreenScalingQuality) + { + glw.setSize(this.runtime.width, this.runtime.height); + halfw = this.runtime.width / 2; + halfh = this.runtime.height / 2; + screenleft = 0; + screentop = 0; + screenright = this.runtime.width; + screenbottom = this.runtime.height; + } + } + glw.setRenderingToTexture(rendertarget); + glw.setTexture(fx_tex[other_fx_index]); + glw.resetModelView(); + glw.translate(-halfw, -halfh); + glw.updateModelView(); + if (inst && active_effect_types.length === 1 && !pre_draw) + glw.quadTex(screenleft, screentop, screenright, screentop, screenright, screenbottom, screenleft, screenbottom, rcTex); + else + glw.quadTex(screenleft, screenbottom, screenright, screenbottom, screenright, screentop, screenleft, screentop, rcTex); + glw.setTexture(null); + } + }; + Layout.prototype.getLayerBySid = function (sid_) + { + var i, len; + for (i = 0, len = this.layers.length; i < len; i++) + { + if (this.layers[i].sid === sid_) + return this.layers[i]; + } + return null; + }; + Layout.prototype.saveToJSON = function () + { + var i, len, layer, et; + var o = { + "sx": this.scrollX, + "sy": this.scrollY, + "s": this.scale, + "a": this.angle, + "w": this.width, + "h": this.height, + "fv": this.first_visit, // added r127 + "persist": this.persist_data, + "fx": [], + "layers": {} + }; + for (i = 0, len = this.effect_types.length; i < len; i++) + { + et = this.effect_types[i]; + o["fx"].push({"name": et.name, "active": et.active, "params": this.effect_params[et.index] }); + } + for (i = 0, len = this.layers.length; i < len; i++) + { + layer = this.layers[i]; + o["layers"][layer.sid.toString()] = layer.saveToJSON(); + } + return o; + }; + Layout.prototype.loadFromJSON = function (o) + { + var i, j, len, fx, p, layer; + this.scrollX = o["sx"]; + this.scrollY = o["sy"]; + this.scale = o["s"]; + this.angle = o["a"]; + this.width = o["w"]; + this.height = o["h"]; + this.persist_data = o["persist"]; + if (typeof o["fv"] !== "undefined") + this.first_visit = o["fv"]; + var ofx = o["fx"]; + for (i = 0, len = ofx.length; i < len; i++) + { + fx = this.getEffectByName(ofx[i]["name"]); + if (!fx) + continue; // must've gone missing + fx.active = ofx[i]["active"]; + this.effect_params[fx.index] = ofx[i]["params"]; + } + this.updateActiveEffects(); + var olayers = o["layers"]; + for (p in olayers) + { + if (olayers.hasOwnProperty(p)) + { + layer = this.getLayerBySid(parseInt(p, 10)); + if (!layer) + continue; // must've gone missing + layer.loadFromJSON(olayers[p]); + } + } + }; + cr.layout = Layout; + function Layer(layout, m) + { + this.layout = layout; + this.runtime = layout.runtime; + this.instances = []; // running instances + this.scale = 1.0; + this.angle = 0; + this.disableAngle = false; + this.tmprect = new cr.rect(0, 0, 0, 0); + this.tmpquad = new cr.quad(); + this.viewLeft = 0; + this.viewRight = 0; + this.viewTop = 0; + this.viewBottom = 0; + this.zindices_stale = false; + this.zindices_stale_from = -1; // first index that has changed, or -1 if no bound + this.clear_earlyz_index = 0; + this.name = m[0]; + this.index = m[1]; + this.sid = m[2]; + this.visible = m[3]; // initially visible + this.background_color = m[4]; + this.transparent = m[5]; + this.parallaxX = m[6]; + this.parallaxY = m[7]; + this.opacity = m[8]; + this.forceOwnTexture = m[9]; + this.useRenderCells = m[10]; + this.zoomRate = m[11]; + this.blend_mode = m[12]; + this.effect_fallback = m[13]; + this.compositeOp = "source-over"; + this.srcBlend = 0; + this.destBlend = 0; + this.render_grid = null; + this.last_render_list = alloc_arr(); + this.render_list_stale = true; + this.last_render_cells = new cr.rect(0, 0, -1, -1); + this.cur_render_cells = new cr.rect(0, 0, -1, -1); + if (this.useRenderCells) + { + this.render_grid = new cr.RenderGrid(this.runtime.original_width, this.runtime.original_height); + } + this.render_offscreen = false; + var im = m[14]; + var i, len; + this.startup_initial_instances = []; // for restoring initial_instances after load + this.initial_instances = []; + this.created_globals = []; // global object UIDs already created - for save/load to avoid recreating + for (i = 0, len = im.length; i < len; i++) + { + var inst = im[i]; + var type = this.runtime.types_by_index[inst[1]]; +; + if (!type.default_instance) + { + type.default_instance = inst; + type.default_layerindex = this.index; + } + this.initial_instances.push(inst); + if (this.layout.initial_types.indexOf(type) === -1) + this.layout.initial_types.push(type); + } + cr.shallowAssignArray(this.startup_initial_instances, this.initial_instances); + this.effect_types = []; + this.active_effect_types = []; + this.shaders_preserve_opaqueness = true; + this.effect_params = []; + for (i = 0, len = m[15].length; i < len; i++) + { + this.effect_types.push({ + id: m[15][i][0], + name: m[15][i][1], + shaderindex: -1, + preservesOpaqueness: false, + active: true, + index: i + }); + this.effect_params.push(m[15][i][2].slice(0)); + } + this.updateActiveEffects(); + this.rcTex = new cr.rect(0, 0, 1, 1); + this.rcTex2 = new cr.rect(0, 0, 1, 1); + }; + Layer.prototype.updateActiveEffects = function () + { + cr.clearArray(this.active_effect_types); + this.shaders_preserve_opaqueness = true; + var i, len, et; + for (i = 0, len = this.effect_types.length; i < len; i++) + { + et = this.effect_types[i]; + if (et.active) + { + this.active_effect_types.push(et); + if (!et.preservesOpaqueness) + this.shaders_preserve_opaqueness = false; + } + } + }; + Layer.prototype.getEffectByName = function (name_) + { + var i, len, et; + for (i = 0, len = this.effect_types.length; i < len; i++) + { + et = this.effect_types[i]; + if (et.name === name_) + return et; + } + return null; + }; + Layer.prototype.createInitialInstances = function () + { + var i, k, len, inst, initial_inst, type, keep, hasPersistBehavior; + for (i = 0, k = 0, len = this.initial_instances.length; i < len; i++) + { + initial_inst = this.initial_instances[i]; + type = this.runtime.types_by_index[initial_inst[1]]; +; + hasPersistBehavior = this.runtime.typeHasPersistBehavior(type); + keep = true; + if (!hasPersistBehavior || this.layout.first_visit) + { + inst = this.runtime.createInstanceFromInit(initial_inst, this, true); + if (!inst) + continue; // may have skipped creation due to fallback effect "destroy" + created_instances.push(inst); + if (inst.type.global) + { + keep = false; + this.created_globals.push(inst.uid); + } + } + if (keep) + { + this.initial_instances[k] = this.initial_instances[i]; + k++; + } + } + this.initial_instances.length = k; + this.runtime.ClearDeathRow(); // flushes creation row so IIDs will be correct + if (!this.runtime.glwrap && this.effect_types.length) // no WebGL renderer and shaders used + this.blend_mode = this.effect_fallback; // use fallback blend mode + this.compositeOp = cr.effectToCompositeOp(this.blend_mode); + if (this.runtime.gl) + cr.setGLBlend(this, this.blend_mode, this.runtime.gl); + this.render_list_stale = true; + }; + Layer.prototype.recreateInitialObjects = function (only_type, rc) + { + var i, len, initial_inst, type, wm, x, y, inst, j, lenj, s; + var types_by_index = this.runtime.types_by_index; + var only_type_is_family = only_type.is_family; + var only_type_members = only_type.members; + for (i = 0, len = this.initial_instances.length; i < len; ++i) + { + initial_inst = this.initial_instances[i]; + wm = initial_inst[0]; + x = wm[0]; + y = wm[1]; + if (!rc.contains_pt(x, y)) + continue; // not in the given area + type = types_by_index[initial_inst[1]]; + if (type !== only_type) + { + if (only_type_is_family) + { + if (only_type_members.indexOf(type) < 0) + continue; + } + else + continue; // only_type is not a family, and the initial inst type does not match + } + inst = this.runtime.createInstanceFromInit(initial_inst, this, false); + this.runtime.isInOnDestroy++; + this.runtime.trigger(Object.getPrototypeOf(type.plugin).cnds.OnCreated, inst); + if (inst.is_contained) + { + for (j = 0, lenj = inst.siblings.length; j < lenj; j++) + { + s = inst.siblings[i]; + this.runtime.trigger(Object.getPrototypeOf(s.type.plugin).cnds.OnCreated, s); + } + } + this.runtime.isInOnDestroy--; + } + }; + Layer.prototype.removeFromInstanceList = function (inst, remove_from_grid) + { + var index = cr.fastIndexOf(this.instances, inst); + if (index < 0) + return; // not found + if (remove_from_grid && this.useRenderCells && inst.rendercells && inst.rendercells.right >= inst.rendercells.left) + { + inst.update_bbox(); // make sure actually in its current rendercells + this.render_grid.update(inst, inst.rendercells, null); // no new range provided - remove only + inst.rendercells.set(0, 0, -1, -1); // set to invalid state to indicate not inserted + } + if (index === this.instances.length - 1) + this.instances.pop(); + else + { + cr.arrayRemove(this.instances, index); + this.setZIndicesStaleFrom(index); + } + this.render_list_stale = true; + }; + Layer.prototype.appendToInstanceList = function (inst, add_to_grid) + { +; + inst.zindex = this.instances.length; + this.instances.push(inst); + if (add_to_grid && this.useRenderCells && inst.rendercells) + { + inst.set_bbox_changed(); // will cause immediate update and new insertion to grid + } + this.render_list_stale = true; + }; + Layer.prototype.prependToInstanceList = function (inst, add_to_grid) + { +; + this.instances.unshift(inst); + this.setZIndicesStaleFrom(0); + if (add_to_grid && this.useRenderCells && inst.rendercells) + { + inst.set_bbox_changed(); // will cause immediate update and new insertion to grid + } + }; + Layer.prototype.moveInstanceAdjacent = function (inst, other, isafter) + { +; + var myZ = inst.get_zindex(); + var insertZ = other.get_zindex(); + cr.arrayRemove(this.instances, myZ); + if (myZ < insertZ) + insertZ--; + if (isafter) + insertZ++; + if (insertZ === this.instances.length) + this.instances.push(inst); + else + this.instances.splice(insertZ, 0, inst); + this.setZIndicesStaleFrom(myZ < insertZ ? myZ : insertZ); + }; + Layer.prototype.setZIndicesStaleFrom = function (index) + { + if (this.zindices_stale_from === -1) // not yet set + this.zindices_stale_from = index; + else if (index < this.zindices_stale_from) // determine minimum z index affected + this.zindices_stale_from = index; + this.zindices_stale = true; + this.render_list_stale = true; + }; + Layer.prototype.updateZIndices = function () + { + if (!this.zindices_stale) + return; + if (this.zindices_stale_from === -1) + this.zindices_stale_from = 0; + var i, len, inst; + if (this.useRenderCells) + { + for (i = this.zindices_stale_from, len = this.instances.length; i < len; ++i) + { + inst = this.instances[i]; + inst.zindex = i; + this.render_grid.markRangeChanged(inst.rendercells); + } + } + else + { + for (i = this.zindices_stale_from, len = this.instances.length; i < len; ++i) + { + this.instances[i].zindex = i; + } + } + this.zindices_stale = false; + this.zindices_stale_from = -1; + }; + Layer.prototype.getScale = function (include_aspect) + { + return this.getNormalScale() * (this.runtime.fullscreenScalingQuality || include_aspect ? this.runtime.aspect_scale : 1); + }; + Layer.prototype.getNormalScale = function () + { + return ((this.scale * this.layout.scale) - 1) * this.zoomRate + 1; + }; + Layer.prototype.getAngle = function () + { + if (this.disableAngle) + return 0; + return cr.clamp_angle(this.layout.angle + this.angle); + }; + var arr_cache = []; + function alloc_arr() + { + if (arr_cache.length) + return arr_cache.pop(); + else + return []; + } + function free_arr(a) + { + cr.clearArray(a); + arr_cache.push(a); + }; + function mergeSortedZArrays(a, b, out) + { + var i = 0, j = 0, k = 0, lena = a.length, lenb = b.length, ai, bj; + out.length = lena + lenb; + for ( ; i < lena && j < lenb; ++k) + { + ai = a[i]; + bj = b[j]; + if (ai.zindex < bj.zindex) + { + out[k] = ai; + ++i; + } + else + { + out[k] = bj; + ++j; + } + } + for ( ; i < lena; ++i, ++k) + out[k] = a[i]; + for ( ; j < lenb; ++j, ++k) + out[k] = b[j]; + }; + var next_arr = []; + function mergeAllSortedZArrays_pass(arr, first_pass) + { + var i, len, arr1, arr2, out; + for (i = 0, len = arr.length; i < len - 1; i += 2) + { + arr1 = arr[i]; + arr2 = arr[i+1]; + out = alloc_arr(); + mergeSortedZArrays(arr1, arr2, out); + if (!first_pass) + { + free_arr(arr1); + free_arr(arr2); + } + next_arr.push(out); + } + if (len % 2 === 1) + { + if (first_pass) + { + arr1 = alloc_arr(); + cr.shallowAssignArray(arr1, arr[len - 1]); + next_arr.push(arr1); + } + else + { + next_arr.push(arr[len - 1]); + } + } + cr.shallowAssignArray(arr, next_arr); + cr.clearArray(next_arr); + }; + function mergeAllSortedZArrays(arr) + { + var first_pass = true; + while (arr.length > 1) + { + mergeAllSortedZArrays_pass(arr, first_pass); + first_pass = false; + } + return arr[0]; + }; + var render_arr = []; + Layer.prototype.getRenderCellInstancesToDraw = function () + { +; + this.updateZIndices(); + this.render_grid.queryRange(this.viewLeft, this.viewTop, this.viewRight, this.viewBottom, render_arr); + if (!render_arr.length) + return alloc_arr(); + if (render_arr.length === 1) + { + var a = alloc_arr(); + cr.shallowAssignArray(a, render_arr[0]); + cr.clearArray(render_arr); + return a; + } + var draw_list = mergeAllSortedZArrays(render_arr); + cr.clearArray(render_arr); + return draw_list; + }; + Layer.prototype.draw = function (ctx) + { + this.render_offscreen = (this.forceOwnTexture || this.opacity !== 1.0 || this.blend_mode !== 0); + var layer_canvas = this.runtime.canvas; + var layer_ctx = ctx; + var ctx_changed = false; + if (this.render_offscreen) + { + if (!this.runtime.layer_canvas) + { + this.runtime.layer_canvas = document.createElement("canvas"); +; + layer_canvas = this.runtime.layer_canvas; + layer_canvas.width = this.runtime.draw_width; + layer_canvas.height = this.runtime.draw_height; + this.runtime.layer_ctx = layer_canvas.getContext("2d"); +; + ctx_changed = true; + } + layer_canvas = this.runtime.layer_canvas; + layer_ctx = this.runtime.layer_ctx; + if (layer_canvas.width !== this.runtime.draw_width) + { + layer_canvas.width = this.runtime.draw_width; + ctx_changed = true; + } + if (layer_canvas.height !== this.runtime.draw_height) + { + layer_canvas.height = this.runtime.draw_height; + ctx_changed = true; + } + if (ctx_changed) + { + this.runtime.setCtxImageSmoothingEnabled(layer_ctx, this.runtime.linearSampling); + } + if (this.transparent) + layer_ctx.clearRect(0, 0, this.runtime.draw_width, this.runtime.draw_height); + } + layer_ctx.globalAlpha = 1; + layer_ctx.globalCompositeOperation = "source-over"; + if (!this.transparent) + { + layer_ctx.fillStyle = "rgb(" + this.background_color[0] + "," + this.background_color[1] + "," + this.background_color[2] + ")"; + layer_ctx.fillRect(0, 0, this.runtime.draw_width, this.runtime.draw_height); + } + layer_ctx.save(); + this.disableAngle = true; + var px = this.canvasToLayer(0, 0, true, true); + var py = this.canvasToLayer(0, 0, false, true); + this.disableAngle = false; + if (this.runtime.pixel_rounding) + { + px = Math.round(px); + py = Math.round(py); + } + this.rotateViewport(px, py, layer_ctx); + var myscale = this.getScale(); + layer_ctx.scale(myscale, myscale); + layer_ctx.translate(-px, -py); + var instances_to_draw; + if (this.useRenderCells) + { + this.cur_render_cells.left = this.render_grid.XToCell(this.viewLeft); + this.cur_render_cells.top = this.render_grid.YToCell(this.viewTop); + this.cur_render_cells.right = this.render_grid.XToCell(this.viewRight); + this.cur_render_cells.bottom = this.render_grid.YToCell(this.viewBottom); + if (this.render_list_stale || !this.cur_render_cells.equals(this.last_render_cells)) + { + free_arr(this.last_render_list); + instances_to_draw = this.getRenderCellInstancesToDraw(); + this.render_list_stale = false; + this.last_render_cells.copy(this.cur_render_cells); + } + else + instances_to_draw = this.last_render_list; + } + else + instances_to_draw = this.instances; + var i, len, inst, last_inst = null; + for (i = 0, len = instances_to_draw.length; i < len; ++i) + { + inst = instances_to_draw[i]; + if (inst === last_inst) + continue; + this.drawInstance(inst, layer_ctx); + last_inst = inst; + } + if (this.useRenderCells) + this.last_render_list = instances_to_draw; + layer_ctx.restore(); + if (this.render_offscreen) + { + ctx.globalCompositeOperation = this.compositeOp; + ctx.globalAlpha = this.opacity; + ctx.drawImage(layer_canvas, 0, 0); + } + }; + Layer.prototype.drawInstance = function(inst, layer_ctx) + { + if (!inst.visible || inst.width === 0 || inst.height === 0) + return; + inst.update_bbox(); + var bbox = inst.bbox; + if (bbox.right < this.viewLeft || bbox.bottom < this.viewTop || bbox.left > this.viewRight || bbox.top > this.viewBottom) + return; + layer_ctx.globalCompositeOperation = inst.compositeOp; + inst.draw(layer_ctx); + }; + Layer.prototype.updateViewport = function (ctx) + { + this.disableAngle = true; + var px = this.canvasToLayer(0, 0, true, true); + var py = this.canvasToLayer(0, 0, false, true); + this.disableAngle = false; + if (this.runtime.pixel_rounding) + { + px = Math.round(px); + py = Math.round(py); + } + this.rotateViewport(px, py, ctx); + }; + Layer.prototype.rotateViewport = function (px, py, ctx) + { + var myscale = this.getScale(); + this.viewLeft = px; + this.viewTop = py; + this.viewRight = px + (this.runtime.draw_width * (1 / myscale)); + this.viewBottom = py + (this.runtime.draw_height * (1 / myscale)); + var temp; + if (this.viewLeft > this.viewRight) + { + temp = this.viewLeft; + this.viewLeft = this.viewRight; + this.viewRight = temp; + } + if (this.viewTop > this.viewBottom) + { + temp = this.viewTop; + this.viewTop = this.viewBottom; + this.viewBottom = temp; + } + var myAngle = this.getAngle(); + if (myAngle !== 0) + { + if (ctx) + { + ctx.translate(this.runtime.draw_width / 2, this.runtime.draw_height / 2); + ctx.rotate(-myAngle); + ctx.translate(this.runtime.draw_width / -2, this.runtime.draw_height / -2); + } + this.tmprect.set(this.viewLeft, this.viewTop, this.viewRight, this.viewBottom); + this.tmprect.offset((this.viewLeft + this.viewRight) / -2, (this.viewTop + this.viewBottom) / -2); + this.tmpquad.set_from_rotated_rect(this.tmprect, myAngle); + this.tmpquad.bounding_box(this.tmprect); + this.tmprect.offset((this.viewLeft + this.viewRight) / 2, (this.viewTop + this.viewBottom) / 2); + this.viewLeft = this.tmprect.left; + this.viewTop = this.tmprect.top; + this.viewRight = this.tmprect.right; + this.viewBottom = this.tmprect.bottom; + } + } + Layer.prototype.drawGL_earlyZPass = function (glw) + { + var windowWidth = this.runtime.draw_width; + var windowHeight = this.runtime.draw_height; + var shaderindex = 0; + var etindex = 0; + this.render_offscreen = this.forceOwnTexture; + if (this.render_offscreen) + { + if (!this.runtime.layer_tex) + { + this.runtime.layer_tex = glw.createEmptyTexture(this.runtime.draw_width, this.runtime.draw_height, this.runtime.linearSampling); + } + if (this.runtime.layer_tex.c2width !== this.runtime.draw_width || this.runtime.layer_tex.c2height !== this.runtime.draw_height) + { + glw.deleteTexture(this.runtime.layer_tex); + this.runtime.layer_tex = glw.createEmptyTexture(this.runtime.draw_width, this.runtime.draw_height, this.runtime.linearSampling); + } + glw.setRenderingToTexture(this.runtime.layer_tex); + } + this.disableAngle = true; + var px = this.canvasToLayer(0, 0, true, true); + var py = this.canvasToLayer(0, 0, false, true); + this.disableAngle = false; + if (this.runtime.pixel_rounding) + { + px = Math.round(px); + py = Math.round(py); + } + this.rotateViewport(px, py, null); + var myscale = this.getScale(); + glw.resetModelView(); + glw.scale(myscale, myscale); + glw.rotateZ(-this.getAngle()); + glw.translate((this.viewLeft + this.viewRight) / -2, (this.viewTop + this.viewBottom) / -2); + glw.updateModelView(); + var instances_to_draw; + if (this.useRenderCells) + { + this.cur_render_cells.left = this.render_grid.XToCell(this.viewLeft); + this.cur_render_cells.top = this.render_grid.YToCell(this.viewTop); + this.cur_render_cells.right = this.render_grid.XToCell(this.viewRight); + this.cur_render_cells.bottom = this.render_grid.YToCell(this.viewBottom); + if (this.render_list_stale || !this.cur_render_cells.equals(this.last_render_cells)) + { + free_arr(this.last_render_list); + instances_to_draw = this.getRenderCellInstancesToDraw(); + this.render_list_stale = false; + this.last_render_cells.copy(this.cur_render_cells); + } + else + instances_to_draw = this.last_render_list; + } + else + instances_to_draw = this.instances; + var i, inst, last_inst = null; + for (i = instances_to_draw.length - 1; i >= 0; --i) + { + inst = instances_to_draw[i]; + if (inst === last_inst) + continue; + this.drawInstanceGL_earlyZPass(instances_to_draw[i], glw); + last_inst = inst; + } + if (this.useRenderCells) + this.last_render_list = instances_to_draw; + if (!this.transparent) + { + this.clear_earlyz_index = this.runtime.earlyz_index++; + glw.setEarlyZIndex(this.clear_earlyz_index); + glw.setColorFillMode(1, 1, 1, 1); + glw.fullscreenQuad(); // fill remaining space in depth buffer with current Z value + glw.restoreEarlyZMode(); + } + }; + Layer.prototype.drawGL = function (glw) + { + var windowWidth = this.runtime.draw_width; + var windowHeight = this.runtime.draw_height; + var shaderindex = 0; + var etindex = 0; + this.render_offscreen = (this.forceOwnTexture || this.opacity !== 1.0 || this.active_effect_types.length > 0 || this.blend_mode !== 0); + if (this.render_offscreen) + { + if (!this.runtime.layer_tex) + { + this.runtime.layer_tex = glw.createEmptyTexture(this.runtime.draw_width, this.runtime.draw_height, this.runtime.linearSampling); + } + if (this.runtime.layer_tex.c2width !== this.runtime.draw_width || this.runtime.layer_tex.c2height !== this.runtime.draw_height) + { + glw.deleteTexture(this.runtime.layer_tex); + this.runtime.layer_tex = glw.createEmptyTexture(this.runtime.draw_width, this.runtime.draw_height, this.runtime.linearSampling); + } + glw.setRenderingToTexture(this.runtime.layer_tex); + if (this.transparent) + glw.clear(0, 0, 0, 0); + } + if (!this.transparent) + { + if (this.runtime.enableFrontToBack) + { + glw.setEarlyZIndex(this.clear_earlyz_index); + glw.setColorFillMode(this.background_color[0] / 255, this.background_color[1] / 255, this.background_color[2] / 255, 1); + glw.fullscreenQuad(); + glw.setTextureFillMode(); + } + else + { + glw.clear(this.background_color[0] / 255, this.background_color[1] / 255, this.background_color[2] / 255, 1); + } + } + this.disableAngle = true; + var px = this.canvasToLayer(0, 0, true, true); + var py = this.canvasToLayer(0, 0, false, true); + this.disableAngle = false; + if (this.runtime.pixel_rounding) + { + px = Math.round(px); + py = Math.round(py); + } + this.rotateViewport(px, py, null); + var myscale = this.getScale(); + glw.resetModelView(); + glw.scale(myscale, myscale); + glw.rotateZ(-this.getAngle()); + glw.translate((this.viewLeft + this.viewRight) / -2, (this.viewTop + this.viewBottom) / -2); + glw.updateModelView(); + var instances_to_draw; + if (this.useRenderCells) + { + this.cur_render_cells.left = this.render_grid.XToCell(this.viewLeft); + this.cur_render_cells.top = this.render_grid.YToCell(this.viewTop); + this.cur_render_cells.right = this.render_grid.XToCell(this.viewRight); + this.cur_render_cells.bottom = this.render_grid.YToCell(this.viewBottom); + if (this.render_list_stale || !this.cur_render_cells.equals(this.last_render_cells)) + { + free_arr(this.last_render_list); + instances_to_draw = this.getRenderCellInstancesToDraw(); + this.render_list_stale = false; + this.last_render_cells.copy(this.cur_render_cells); + } + else + instances_to_draw = this.last_render_list; + } + else + instances_to_draw = this.instances; + var i, len, inst, last_inst = null; + for (i = 0, len = instances_to_draw.length; i < len; ++i) + { + inst = instances_to_draw[i]; + if (inst === last_inst) + continue; + this.drawInstanceGL(instances_to_draw[i], glw); + last_inst = inst; + } + if (this.useRenderCells) + this.last_render_list = instances_to_draw; + if (this.render_offscreen) + { + shaderindex = this.active_effect_types.length ? this.active_effect_types[0].shaderindex : 0; + etindex = this.active_effect_types.length ? this.active_effect_types[0].index : 0; + if (this.active_effect_types.length === 0 || (this.active_effect_types.length === 1 && + !glw.programUsesCrossSampling(shaderindex) && this.opacity === 1)) + { + if (this.active_effect_types.length === 1) + { + glw.switchProgram(shaderindex); + glw.setProgramParameters(this.layout.getRenderTarget(), // backTex + 1.0 / this.runtime.draw_width, // pixelWidth + 1.0 / this.runtime.draw_height, // pixelHeight + 0.0, 0.0, // destStart + 1.0, 1.0, // destEnd + myscale, // layerScale + this.getAngle(), + this.viewLeft, this.viewTop, + (this.viewLeft + this.viewRight) / 2, (this.viewTop + this.viewBottom) / 2, + this.runtime.kahanTime.sum, + this.effect_params[etindex]); // fx parameters + if (glw.programIsAnimated(shaderindex)) + this.runtime.redraw = true; + } + else + glw.switchProgram(0); + glw.setRenderingToTexture(this.layout.getRenderTarget()); + glw.setOpacity(this.opacity); + glw.setTexture(this.runtime.layer_tex); + glw.setBlend(this.srcBlend, this.destBlend); + glw.resetModelView(); + glw.updateModelView(); + var halfw = this.runtime.draw_width / 2; + var halfh = this.runtime.draw_height / 2; + glw.quad(-halfw, halfh, halfw, halfh, halfw, -halfh, -halfw, -halfh); + glw.setTexture(null); + } + else + { + this.layout.renderEffectChain(glw, this, null, this.layout.getRenderTarget()); + } + } + }; + Layer.prototype.drawInstanceGL = function (inst, glw) + { +; + if (!inst.visible || inst.width === 0 || inst.height === 0) + return; + inst.update_bbox(); + var bbox = inst.bbox; + if (bbox.right < this.viewLeft || bbox.bottom < this.viewTop || bbox.left > this.viewRight || bbox.top > this.viewBottom) + return; + glw.setEarlyZIndex(inst.earlyz_index); + if (inst.uses_shaders) + { + this.drawInstanceWithShadersGL(inst, glw); + } + else + { + glw.switchProgram(0); // un-set any previously set shader + glw.setBlend(inst.srcBlend, inst.destBlend); + inst.drawGL(glw); + } + }; + Layer.prototype.drawInstanceGL_earlyZPass = function (inst, glw) + { +; + if (!inst.visible || inst.width === 0 || inst.height === 0) + return; + inst.update_bbox(); + var bbox = inst.bbox; + if (bbox.right < this.viewLeft || bbox.bottom < this.viewTop || bbox.left > this.viewRight || bbox.top > this.viewBottom) + return; + inst.earlyz_index = this.runtime.earlyz_index++; + if (inst.blend_mode !== 0 || inst.opacity !== 1 || !inst.shaders_preserve_opaqueness || !inst.drawGL_earlyZPass) + return; + glw.setEarlyZIndex(inst.earlyz_index); + inst.drawGL_earlyZPass(glw); + }; + Layer.prototype.drawInstanceWithShadersGL = function (inst, glw) + { + var shaderindex = inst.active_effect_types[0].shaderindex; + var etindex = inst.active_effect_types[0].index; + var myscale = this.getScale(); + if (inst.active_effect_types.length === 1 && !glw.programUsesCrossSampling(shaderindex) && + !glw.programExtendsBox(shaderindex) && ((!inst.angle && !inst.layer.getAngle()) || !glw.programUsesDest(shaderindex)) && + inst.opacity === 1 && !inst.type.plugin.must_predraw) + { + glw.switchProgram(shaderindex); + glw.setBlend(inst.srcBlend, inst.destBlend); + if (glw.programIsAnimated(shaderindex)) + this.runtime.redraw = true; + var destStartX = 0, destStartY = 0, destEndX = 0, destEndY = 0; + if (glw.programUsesDest(shaderindex)) + { + var bbox = inst.bbox; + var screenleft = this.layerToCanvas(bbox.left, bbox.top, true, true); + var screentop = this.layerToCanvas(bbox.left, bbox.top, false, true); + var screenright = this.layerToCanvas(bbox.right, bbox.bottom, true, true); + var screenbottom = this.layerToCanvas(bbox.right, bbox.bottom, false, true); + destStartX = screenleft / windowWidth; + destStartY = 1 - screentop / windowHeight; + destEndX = screenright / windowWidth; + destEndY = 1 - screenbottom / windowHeight; + } + var pixelWidth; + var pixelHeight; + if (inst.curFrame && inst.curFrame.texture_img) + { + var img = inst.curFrame.texture_img; + pixelWidth = 1.0 / img.width; + pixelHeight = 1.0 / img.height; + } + else + { + pixelWidth = 1.0 / inst.width; + pixelHeight = 1.0 / inst.height; + } + glw.setProgramParameters(this.render_offscreen ? this.runtime.layer_tex : this.layout.getRenderTarget(), // backTex + pixelWidth, + pixelHeight, + destStartX, destStartY, + destEndX, destEndY, + myscale, + this.getAngle(), + this.viewLeft, this.viewTop, + (this.viewLeft + this.viewRight) / 2, (this.viewTop + this.viewBottom) / 2, + this.runtime.kahanTime.sum, + inst.effect_params[etindex]); + inst.drawGL(glw); + } + else + { + this.layout.renderEffectChain(glw, this, inst, this.render_offscreen ? this.runtime.layer_tex : this.layout.getRenderTarget()); + glw.resetModelView(); + glw.scale(myscale, myscale); + glw.rotateZ(-this.getAngle()); + glw.translate((this.viewLeft + this.viewRight) / -2, (this.viewTop + this.viewBottom) / -2); + glw.updateModelView(); + } + }; + Layer.prototype.canvasToLayer = function (ptx, pty, getx, using_draw_area) + { + var multiplier = this.runtime.devicePixelRatio; + if (this.runtime.isRetina) + { + ptx *= multiplier; + pty *= multiplier; + } + var ox = this.runtime.parallax_x_origin; + var oy = this.runtime.parallax_y_origin; + var par_x = ((this.layout.scrollX - ox) * this.parallaxX) + ox; + var par_y = ((this.layout.scrollY - oy) * this.parallaxY) + oy; + var x = par_x; + var y = par_y; + var invScale = 1 / this.getScale(!using_draw_area); + if (using_draw_area) + { + x -= (this.runtime.draw_width * invScale) / 2; + y -= (this.runtime.draw_height * invScale) / 2; + } + else + { + x -= (this.runtime.width * invScale) / 2; + y -= (this.runtime.height * invScale) / 2; + } + x += ptx * invScale; + y += pty * invScale; + var a = this.getAngle(); + if (a !== 0) + { + x -= par_x; + y -= par_y; + var cosa = Math.cos(a); + var sina = Math.sin(a); + var x_temp = (x * cosa) - (y * sina); + y = (y * cosa) + (x * sina); + x = x_temp; + x += par_x; + y += par_y; + } + return getx ? x : y; + }; + Layer.prototype.layerToCanvas = function (ptx, pty, getx, using_draw_area) + { + var ox = this.runtime.parallax_x_origin; + var oy = this.runtime.parallax_y_origin; + var par_x = ((this.layout.scrollX - ox) * this.parallaxX) + ox; + var par_y = ((this.layout.scrollY - oy) * this.parallaxY) + oy; + var x = par_x; + var y = par_y; + var a = this.getAngle(); + if (a !== 0) + { + ptx -= par_x; + pty -= par_y; + var cosa = Math.cos(-a); + var sina = Math.sin(-a); + var x_temp = (ptx * cosa) - (pty * sina); + pty = (pty * cosa) + (ptx * sina); + ptx = x_temp; + ptx += par_x; + pty += par_y; + } + var invScale = 1 / this.getScale(!using_draw_area); + if (using_draw_area) + { + x -= (this.runtime.draw_width * invScale) / 2; + y -= (this.runtime.draw_height * invScale) / 2; + } + else + { + x -= (this.runtime.width * invScale) / 2; + y -= (this.runtime.height * invScale) / 2; + } + x = (ptx - x) / invScale; + y = (pty - y) / invScale; + var multiplier = this.runtime.devicePixelRatio; + if (this.runtime.isRetina && !using_draw_area) + { + x /= multiplier; + y /= multiplier; + } + return getx ? x : y; + }; + Layer.prototype.rotatePt = function (x_, y_, getx) + { + if (this.getAngle() === 0) + return getx ? x_ : y_; + var nx = this.layerToCanvas(x_, y_, true); + var ny = this.layerToCanvas(x_, y_, false); + this.disableAngle = true; + var px = this.canvasToLayer(nx, ny, true); + var py = this.canvasToLayer(nx, ny, true); + this.disableAngle = false; + return getx ? px : py; + }; + Layer.prototype.saveToJSON = function () + { + var i, len, et; + var o = { + "s": this.scale, + "a": this.angle, + "vl": this.viewLeft, + "vt": this.viewTop, + "vr": this.viewRight, + "vb": this.viewBottom, + "v": this.visible, + "bc": this.background_color, + "t": this.transparent, + "px": this.parallaxX, + "py": this.parallaxY, + "o": this.opacity, + "zr": this.zoomRate, + "fx": [], + "cg": this.created_globals, // added r197; list of global UIDs already created + "instances": [] + }; + for (i = 0, len = this.effect_types.length; i < len; i++) + { + et = this.effect_types[i]; + o["fx"].push({"name": et.name, "active": et.active, "params": this.effect_params[et.index] }); + } + return o; + }; + Layer.prototype.loadFromJSON = function (o) + { + var i, j, len, p, inst, fx; + this.scale = o["s"]; + this.angle = o["a"]; + this.viewLeft = o["vl"]; + this.viewTop = o["vt"]; + this.viewRight = o["vr"]; + this.viewBottom = o["vb"]; + this.visible = o["v"]; + this.background_color = o["bc"]; + this.transparent = o["t"]; + this.parallaxX = o["px"]; + this.parallaxY = o["py"]; + this.opacity = o["o"]; + this.zoomRate = o["zr"]; + this.created_globals = o["cg"] || []; // added r197 + cr.shallowAssignArray(this.initial_instances, this.startup_initial_instances); + var temp_set = new cr.ObjectSet(); + for (i = 0, len = this.created_globals.length; i < len; ++i) + temp_set.add(this.created_globals[i]); + for (i = 0, j = 0, len = this.initial_instances.length; i < len; ++i) + { + if (!temp_set.contains(this.initial_instances[i][2])) // UID in element 2 + { + this.initial_instances[j] = this.initial_instances[i]; + ++j; + } + } + cr.truncateArray(this.initial_instances, j); + var ofx = o["fx"]; + for (i = 0, len = ofx.length; i < len; i++) + { + fx = this.getEffectByName(ofx[i]["name"]); + if (!fx) + continue; // must've gone missing + fx.active = ofx[i]["active"]; + this.effect_params[fx.index] = ofx[i]["params"]; + } + this.updateActiveEffects(); + this.instances.sort(sort_by_zindex); + this.zindices_stale = true; + }; + cr.layer = Layer; +}()); +; +(function() +{ + var allUniqueSolModifiers = []; + function testSolsMatch(arr1, arr2) + { + var i, len = arr1.length; + switch (len) { + case 0: + return true; + case 1: + return arr1[0] === arr2[0]; + case 2: + return arr1[0] === arr2[0] && arr1[1] === arr2[1]; + default: + for (i = 0; i < len; i++) + { + if (arr1[i] !== arr2[i]) + return false; + } + return true; + } + }; + function solArraySorter(t1, t2) + { + return t1.index - t2.index; + }; + function findMatchingSolModifier(arr) + { + var i, len, u, temp, subarr; + if (arr.length === 2) + { + if (arr[0].index > arr[1].index) + { + temp = arr[0]; + arr[0] = arr[1]; + arr[1] = temp; + } + } + else if (arr.length > 2) + arr.sort(solArraySorter); // so testSolsMatch compares in same order + if (arr.length >= allUniqueSolModifiers.length) + allUniqueSolModifiers.length = arr.length + 1; + if (!allUniqueSolModifiers[arr.length]) + allUniqueSolModifiers[arr.length] = []; + subarr = allUniqueSolModifiers[arr.length]; + for (i = 0, len = subarr.length; i < len; i++) + { + u = subarr[i]; + if (testSolsMatch(arr, u)) + return u; + } + subarr.push(arr); + return arr; + }; + function EventSheet(runtime, m) + { + this.runtime = runtime; + this.triggers = {}; + this.fasttriggers = {}; + this.hasRun = false; + this.includes = new cr.ObjectSet(); // all event sheets included by this sheet, at first-level indirection only + this.deep_includes = []; // all includes from this sheet recursively, in trigger order + this.already_included_sheets = []; // used while building deep_includes + this.name = m[0]; + var em = m[1]; // events model + this.events = []; // triggers won't make it to this array + var i, len; + for (i = 0, len = em.length; i < len; i++) + this.init_event(em[i], null, this.events); + }; + EventSheet.prototype.toString = function () + { + return this.name; + }; + EventSheet.prototype.init_event = function (m, parent, nontriggers) + { + switch (m[0]) { + case 0: // event block + { + var block = new cr.eventblock(this, parent, m); + cr.seal(block); + if (block.orblock) + { + nontriggers.push(block); + var i, len; + for (i = 0, len = block.conditions.length; i < len; i++) + { + if (block.conditions[i].trigger) + this.init_trigger(block, i); + } + } + else + { + if (block.is_trigger()) + this.init_trigger(block, 0); + else + nontriggers.push(block); + } + break; + } + case 1: // variable + { + var v = new cr.eventvariable(this, parent, m); + cr.seal(v); + nontriggers.push(v); + break; + } + case 2: // include + { + var inc = new cr.eventinclude(this, parent, m); + cr.seal(inc); + nontriggers.push(inc); + break; + } + default: +; + } + }; + EventSheet.prototype.postInit = function () + { + var i, len; + for (i = 0, len = this.events.length; i < len; i++) + { + this.events[i].postInit(i < len - 1 && this.events[i + 1].is_else_block); + } + }; + EventSheet.prototype.updateDeepIncludes = function () + { + cr.clearArray(this.deep_includes); + cr.clearArray(this.already_included_sheets); + this.addDeepIncludes(this); + cr.clearArray(this.already_included_sheets); + }; + EventSheet.prototype.addDeepIncludes = function (root_sheet) + { + var i, len, inc, sheet; + var deep_includes = root_sheet.deep_includes; + var already_included_sheets = root_sheet.already_included_sheets; + var arr = this.includes.valuesRef(); + for (i = 0, len = arr.length; i < len; ++i) + { + inc = arr[i]; + sheet = inc.include_sheet; + if (!inc.isActive() || root_sheet === sheet || already_included_sheets.indexOf(sheet) > -1) + continue; + already_included_sheets.push(sheet); + sheet.addDeepIncludes(root_sheet); + deep_includes.push(sheet); + } + }; + EventSheet.prototype.run = function (from_include) + { + if (!this.runtime.resuming_breakpoint) + { + this.hasRun = true; + if (!from_include) + this.runtime.isRunningEvents = true; + } + var i, len; + for (i = 0, len = this.events.length; i < len; i++) + { + var ev = this.events[i]; + ev.run(); + this.runtime.clearSol(ev.solModifiers); + if (this.runtime.hasPendingInstances) + this.runtime.ClearDeathRow(); + } + if (!from_include) + this.runtime.isRunningEvents = false; + }; + function isPerformanceSensitiveTrigger(method) + { + if (cr.plugins_.Sprite && method === cr.plugins_.Sprite.prototype.cnds.OnFrameChanged) + { + return true; + } + return false; + }; + EventSheet.prototype.init_trigger = function (trig, index) + { + if (!trig.orblock) + this.runtime.triggers_to_postinit.push(trig); // needs to be postInit'd later + var i, len; + var cnd = trig.conditions[index]; + var type_name; + if (cnd.type) + type_name = cnd.type.name; + else + type_name = "system"; + var fasttrigger = cnd.fasttrigger; + var triggers = (fasttrigger ? this.fasttriggers : this.triggers); + if (!triggers[type_name]) + triggers[type_name] = []; + var obj_entry = triggers[type_name]; + var method = cnd.func; + if (fasttrigger) + { + if (!cnd.parameters.length) // no parameters + return; + var firstparam = cnd.parameters[0]; + if (firstparam.type !== 1 || // not a string param + firstparam.expression.type !== 2) // not a string literal node + { + return; + } + var fastevs; + var firstvalue = firstparam.expression.value.toLowerCase(); + var i, len; + for (i = 0, len = obj_entry.length; i < len; i++) + { + if (obj_entry[i].method == method) + { + fastevs = obj_entry[i].evs; + if (!fastevs[firstvalue]) + fastevs[firstvalue] = [[trig, index]]; + else + fastevs[firstvalue].push([trig, index]); + return; + } + } + fastevs = {}; + fastevs[firstvalue] = [[trig, index]]; + obj_entry.push({ method: method, evs: fastevs }); + } + else + { + for (i = 0, len = obj_entry.length; i < len; i++) + { + if (obj_entry[i].method == method) + { + obj_entry[i].evs.push([trig, index]); + return; + } + } + if (isPerformanceSensitiveTrigger(method)) + obj_entry.unshift({ method: method, evs: [[trig, index]]}); + else + obj_entry.push({ method: method, evs: [[trig, index]]}); + } + }; + cr.eventsheet = EventSheet; + function Selection(type) + { + this.type = type; + this.instances = []; // subset of picked instances + this.else_instances = []; // subset of unpicked instances + this.select_all = true; + }; + Selection.prototype.hasObjects = function () + { + if (this.select_all) + return this.type.instances.length; + else + return this.instances.length; + }; + Selection.prototype.getObjects = function () + { + if (this.select_all) + return this.type.instances; + else + return this.instances; + }; + /* + Selection.prototype.ensure_picked = function (inst, skip_siblings) + { + var i, len; + var orblock = inst.runtime.getCurrentEventStack().current_event.orblock; + if (this.select_all) + { + this.select_all = false; + if (orblock) + { + cr.shallowAssignArray(this.else_instances, inst.type.instances); + cr.arrayFindRemove(this.else_instances, inst); + } + this.instances.length = 1; + this.instances[0] = inst; + } + else + { + if (orblock) + { + i = this.else_instances.indexOf(inst); + if (i !== -1) + { + this.instances.push(this.else_instances[i]); + this.else_instances.splice(i, 1); + } + } + else + { + if (this.instances.indexOf(inst) === -1) + this.instances.push(inst); + } + } + if (!skip_siblings) + { + } + }; + */ + Selection.prototype.pick_one = function (inst) + { + if (!inst) + return; + if (inst.runtime.getCurrentEventStack().current_event.orblock) + { + if (this.select_all) + { + cr.clearArray(this.instances); + cr.shallowAssignArray(this.else_instances, inst.type.instances); + this.select_all = false; + } + var i = this.else_instances.indexOf(inst); + if (i !== -1) + { + this.instances.push(this.else_instances[i]); + this.else_instances.splice(i, 1); + } + } + else + { + this.select_all = false; + cr.clearArray(this.instances); + this.instances[0] = inst; + } + }; + cr.selection = Selection; + function EventBlock(sheet, parent, m) + { + this.sheet = sheet; + this.parent = parent; + this.runtime = sheet.runtime; + this.solModifiers = []; + this.solModifiersIncludingParents = []; + this.solWriterAfterCnds = false; // block does not change SOL after running its conditions + this.group = false; // is group of events + this.initially_activated = false; // if a group, is active on startup + this.toplevelevent = false; // is an event block parented only by a top-level group + this.toplevelgroup = false; // is parented only by other groups or is top-level (i.e. not in a subevent) + this.has_else_block = false; // is followed by else +; + this.conditions = []; + this.actions = []; + this.subevents = []; + this.group_name = ""; + this.group = false; + this.initially_activated = false; + this.group_active = false; + this.contained_includes = null; + if (m[1]) + { + this.group_name = m[1][1].toLowerCase(); + this.group = true; + this.initially_activated = !!m[1][0]; + this.contained_includes = []; + this.group_active = this.initially_activated; + this.runtime.allGroups.push(this); + this.runtime.groups_by_name[this.group_name] = this; + } + this.orblock = m[2]; + this.sid = m[4]; + if (!this.group) + this.runtime.blocksBySid[this.sid.toString()] = this; + var i, len; + var cm = m[5]; + for (i = 0, len = cm.length; i < len; i++) + { + var cnd = new cr.condition(this, cm[i]); + cnd.index = i; + cr.seal(cnd); + this.conditions.push(cnd); + /* + if (cnd.is_logical()) + this.is_logical = true; + if (cnd.type && !cnd.type.plugin.singleglobal && this.cndReferences.indexOf(cnd.type) === -1) + this.cndReferences.push(cnd.type); + */ + this.addSolModifier(cnd.type); + } + var am = m[6]; + for (i = 0, len = am.length; i < len; i++) + { + var act = new cr.action(this, am[i]); + act.index = i; + cr.seal(act); + this.actions.push(act); + } + if (m.length === 8) + { + var em = m[7]; + for (i = 0, len = em.length; i < len; i++) + this.sheet.init_event(em[i], this, this.subevents); + } + this.is_else_block = false; + if (this.conditions.length) + { + this.is_else_block = (this.conditions[0].type == null && this.conditions[0].func == cr.system_object.prototype.cnds.Else); + } + }; + window["_c2hh_"] = "0764F5122709682D4499715308638A3CE8A82A1F"; + EventBlock.prototype.postInit = function (hasElse/*, prevBlock_*/) + { + var i, len; + var p = this.parent; + if (this.group) + { + this.toplevelgroup = true; + while (p) + { + if (!p.group) + { + this.toplevelgroup = false; + break; + } + p = p.parent; + } + } + this.toplevelevent = !this.is_trigger() && (!this.parent || (this.parent.group && this.parent.toplevelgroup)); + this.has_else_block = !!hasElse; + this.solModifiersIncludingParents = this.solModifiers.slice(0); + p = this.parent; + while (p) + { + for (i = 0, len = p.solModifiers.length; i < len; i++) + this.addParentSolModifier(p.solModifiers[i]); + p = p.parent; + } + this.solModifiers = findMatchingSolModifier(this.solModifiers); + this.solModifiersIncludingParents = findMatchingSolModifier(this.solModifiersIncludingParents); + var i, len/*, s*/; + for (i = 0, len = this.conditions.length; i < len; i++) + this.conditions[i].postInit(); + for (i = 0, len = this.actions.length; i < len; i++) + this.actions[i].postInit(); + for (i = 0, len = this.subevents.length; i < len; i++) + { + this.subevents[i].postInit(i < len - 1 && this.subevents[i + 1].is_else_block); + } + /* + if (this.is_else_block && this.prev_block) + { + for (i = 0, len = this.prev_block.solModifiers.length; i < len; i++) + { + s = this.prev_block.solModifiers[i]; + if (this.solModifiers.indexOf(s) === -1) + this.solModifiers.push(s); + } + } + */ + }; + EventBlock.prototype.setGroupActive = function (a) + { + if (this.group_active === !!a) + return; // same state + this.group_active = !!a; + var i, len; + for (i = 0, len = this.contained_includes.length; i < len; ++i) + { + this.contained_includes[i].updateActive(); + } + if (len > 0 && this.runtime.running_layout.event_sheet) + this.runtime.running_layout.event_sheet.updateDeepIncludes(); + }; + function addSolModifierToList(type, arr) + { + var i, len, t; + if (!type) + return; + if (arr.indexOf(type) === -1) + arr.push(type); + if (type.is_contained) + { + for (i = 0, len = type.container.length; i < len; i++) + { + t = type.container[i]; + if (type === t) + continue; // already handled + if (arr.indexOf(t) === -1) + arr.push(t); + } + } + }; + EventBlock.prototype.addSolModifier = function (type) + { + addSolModifierToList(type, this.solModifiers); + }; + EventBlock.prototype.addParentSolModifier = function (type) + { + addSolModifierToList(type, this.solModifiersIncludingParents); + }; + EventBlock.prototype.setSolWriterAfterCnds = function () + { + this.solWriterAfterCnds = true; + if (this.parent) + this.parent.setSolWriterAfterCnds(); + }; + EventBlock.prototype.is_trigger = function () + { + if (!this.conditions.length) // no conditions + return false; + else + return this.conditions[0].trigger; + }; + EventBlock.prototype.run = function () + { + var i, len, c, any_true = false, cnd_result; + var runtime = this.runtime; + var evinfo = this.runtime.getCurrentEventStack(); + evinfo.current_event = this; + var conditions = this.conditions; + if (!this.is_else_block) + evinfo.else_branch_ran = false; + if (this.orblock) + { + if (conditions.length === 0) + any_true = true; // be sure to run if empty block + evinfo.cndindex = 0 + for (len = conditions.length; evinfo.cndindex < len; evinfo.cndindex++) + { + c = conditions[evinfo.cndindex]; + if (c.trigger) // skip triggers when running OR block + continue; + cnd_result = c.run(); + if (cnd_result) // make sure all conditions run and run if any were true + any_true = true; + } + evinfo.last_event_true = any_true; + if (any_true) + this.run_actions_and_subevents(); + } + else + { + evinfo.cndindex = 0 + for (len = conditions.length; evinfo.cndindex < len; evinfo.cndindex++) + { + cnd_result = conditions[evinfo.cndindex].run(); + if (!cnd_result) // condition failed + { + evinfo.last_event_true = false; + if (this.toplevelevent && runtime.hasPendingInstances) + runtime.ClearDeathRow(); + return; // bail out now + } + } + evinfo.last_event_true = true; + this.run_actions_and_subevents(); + } + this.end_run(evinfo); + }; + EventBlock.prototype.end_run = function (evinfo) + { + if (evinfo.last_event_true && this.has_else_block) + evinfo.else_branch_ran = true; + if (this.toplevelevent && this.runtime.hasPendingInstances) + this.runtime.ClearDeathRow(); + }; + EventBlock.prototype.run_orblocktrigger = function (index) + { + var evinfo = this.runtime.getCurrentEventStack(); + evinfo.current_event = this; + if (this.conditions[index].run()) + { + this.run_actions_and_subevents(); + this.runtime.getCurrentEventStack().last_event_true = true; + } + }; + EventBlock.prototype.run_actions_and_subevents = function () + { + var evinfo = this.runtime.getCurrentEventStack(); + var len; + for (evinfo.actindex = 0, len = this.actions.length; evinfo.actindex < len; evinfo.actindex++) + { + if (this.actions[evinfo.actindex].run()) + return; + } + this.run_subevents(); + }; + EventBlock.prototype.resume_actions_and_subevents = function () + { + var evinfo = this.runtime.getCurrentEventStack(); + var len; + for (len = this.actions.length; evinfo.actindex < len; evinfo.actindex++) + { + if (this.actions[evinfo.actindex].run()) + return; + } + this.run_subevents(); + }; + EventBlock.prototype.run_subevents = function () + { + if (!this.subevents.length) + return; + var i, len, subev, pushpop/*, skipped_pop = false, pop_modifiers = null*/; + var last = this.subevents.length - 1; + this.runtime.pushEventStack(this); + if (this.solWriterAfterCnds) + { + for (i = 0, len = this.subevents.length; i < len; i++) + { + subev = this.subevents[i]; + pushpop = (!this.toplevelgroup || (!this.group && i < last)); + if (pushpop) + this.runtime.pushCopySol(subev.solModifiers); + subev.run(); + if (pushpop) + this.runtime.popSol(subev.solModifiers); + else + this.runtime.clearSol(subev.solModifiers); + } + } + else + { + for (i = 0, len = this.subevents.length; i < len; i++) + { + this.subevents[i].run(); + } + } + this.runtime.popEventStack(); + }; + EventBlock.prototype.run_pretrigger = function () + { + var evinfo = this.runtime.getCurrentEventStack(); + evinfo.current_event = this; + var any_true = false; + var i, len; + for (evinfo.cndindex = 0, len = this.conditions.length; evinfo.cndindex < len; evinfo.cndindex++) + { +; + if (this.conditions[evinfo.cndindex].run()) + any_true = true; + else if (!this.orblock) // condition failed (let OR blocks run all conditions anyway) + return false; // bail out + } + return this.orblock ? any_true : true; + }; + EventBlock.prototype.retrigger = function () + { + this.runtime.execcount++; + var prevcndindex = this.runtime.getCurrentEventStack().cndindex; + var len; + var evinfo = this.runtime.pushEventStack(this); + if (!this.orblock) + { + for (evinfo.cndindex = prevcndindex + 1, len = this.conditions.length; evinfo.cndindex < len; evinfo.cndindex++) + { + if (!this.conditions[evinfo.cndindex].run()) // condition failed + { + this.runtime.popEventStack(); // moving up level of recursion + return false; // bail out + } + } + } + this.run_actions_and_subevents(); + this.runtime.popEventStack(); + return true; // ran an iteration + }; + EventBlock.prototype.isFirstConditionOfType = function (cnd) + { + var cndindex = cnd.index; + if (cndindex === 0) + return true; + --cndindex; + for ( ; cndindex >= 0; --cndindex) + { + if (this.conditions[cndindex].type === cnd.type) + return false; + } + return true; + }; + cr.eventblock = EventBlock; + function Condition(block, m) + { + this.block = block; + this.sheet = block.sheet; + this.runtime = block.runtime; + this.parameters = []; + this.results = []; + this.extra = {}; // for plugins to stow away some custom info + this.index = -1; + this.anyParamVariesPerInstance = false; + this.func = this.runtime.GetObjectReference(m[1]); +; + this.trigger = (m[3] > 0); + this.fasttrigger = (m[3] === 2); + this.looping = m[4]; + this.inverted = m[5]; + this.isstatic = m[6]; + this.sid = m[7]; + this.runtime.cndsBySid[this.sid.toString()] = this; + if (m[0] === -1) // system object + { + this.type = null; + this.run = this.run_system; + this.behaviortype = null; + this.beh_index = -1; + } + else + { + this.type = this.runtime.types_by_index[m[0]]; +; + if (this.isstatic) + this.run = this.run_static; + else + this.run = this.run_object; + if (m[2]) + { + this.behaviortype = this.type.getBehaviorByName(m[2]); +; + this.beh_index = this.type.getBehaviorIndexByName(m[2]); +; + } + else + { + this.behaviortype = null; + this.beh_index = -1; + } + if (this.block.parent) + this.block.parent.setSolWriterAfterCnds(); + } + if (this.fasttrigger) + this.run = this.run_true; + if (m.length === 10) + { + var i, len; + var em = m[9]; + for (i = 0, len = em.length; i < len; i++) + { + var param = new cr.parameter(this, em[i]); + cr.seal(param); + this.parameters.push(param); + } + this.results.length = em.length; + } + }; + Condition.prototype.postInit = function () + { + var i, len, p; + for (i = 0, len = this.parameters.length; i < len; i++) + { + p = this.parameters[i]; + p.postInit(); + if (p.variesPerInstance) + this.anyParamVariesPerInstance = true; + } + }; + /* + Condition.prototype.is_logical = function () + { + return !this.type || this.type.plugin.singleglobal; + }; + */ + Condition.prototype.run_true = function () + { + return true; + }; + Condition.prototype.run_system = function () + { + var i, len; + for (i = 0, len = this.parameters.length; i < len; i++) + this.results[i] = this.parameters[i].get(); + return cr.xor(this.func.apply(this.runtime.system, this.results), this.inverted); + }; + Condition.prototype.run_static = function () + { + var i, len; + for (i = 0, len = this.parameters.length; i < len; i++) + this.results[i] = this.parameters[i].get(); + var ret = this.func.apply(this.behaviortype ? this.behaviortype : this.type, this.results); + this.type.applySolToContainer(); + return ret; + }; + Condition.prototype.run_object = function () + { + var i, j, k, leni, lenj, p, ret, met, inst, s, sol2; + var type = this.type; + var sol = type.getCurrentSol(); + var is_orblock = this.block.orblock && !this.trigger; // triggers in OR blocks need to work normally + var offset = 0; + var is_contained = type.is_contained; + var is_family = type.is_family; + var family_index = type.family_index; + var beh_index = this.beh_index; + var is_beh = (beh_index > -1); + var params_vary = this.anyParamVariesPerInstance; + var parameters = this.parameters; + var results = this.results; + var inverted = this.inverted; + var func = this.func; + var arr, container; + if (params_vary) + { + for (j = 0, lenj = parameters.length; j < lenj; ++j) + { + p = parameters[j]; + if (!p.variesPerInstance) + results[j] = p.get(0); + } + } + else + { + for (j = 0, lenj = parameters.length; j < lenj; ++j) + results[j] = parameters[j].get(0); + } + if (sol.select_all) { + cr.clearArray(sol.instances); // clear contents + cr.clearArray(sol.else_instances); + arr = type.instances; + for (i = 0, leni = arr.length; i < leni; ++i) + { + inst = arr[i]; +; + if (params_vary) + { + for (j = 0, lenj = parameters.length; j < lenj; ++j) + { + p = parameters[j]; + if (p.variesPerInstance) + results[j] = p.get(i); // default SOL index is current object + } + } + if (is_beh) + { + offset = 0; + if (is_family) + { + offset = inst.type.family_beh_map[family_index]; + } + ret = func.apply(inst.behavior_insts[beh_index + offset], results); + } + else + ret = func.apply(inst, results); + met = cr.xor(ret, inverted); + if (met) + sol.instances.push(inst); + else if (is_orblock) // in OR blocks, keep the instances not meeting the condition for subsequent testing + sol.else_instances.push(inst); + } + if (type.finish) + type.finish(true); + sol.select_all = false; + type.applySolToContainer(); + return sol.hasObjects(); + } + else { + k = 0; + var using_else_instances = (is_orblock && !this.block.isFirstConditionOfType(this)); + arr = (using_else_instances ? sol.else_instances : sol.instances); + var any_true = false; + for (i = 0, leni = arr.length; i < leni; ++i) + { + inst = arr[i]; +; + if (params_vary) + { + for (j = 0, lenj = parameters.length; j < lenj; ++j) + { + p = parameters[j]; + if (p.variesPerInstance) + results[j] = p.get(i); // default SOL index is current object + } + } + if (is_beh) + { + offset = 0; + if (is_family) + { + offset = inst.type.family_beh_map[family_index]; + } + ret = func.apply(inst.behavior_insts[beh_index + offset], results); + } + else + ret = func.apply(inst, results); + if (cr.xor(ret, inverted)) + { + any_true = true; + if (using_else_instances) + { + sol.instances.push(inst); + if (is_contained) + { + for (j = 0, lenj = inst.siblings.length; j < lenj; j++) + { + s = inst.siblings[j]; + s.type.getCurrentSol().instances.push(s); + } + } + } + else + { + arr[k] = inst; + if (is_contained) + { + for (j = 0, lenj = inst.siblings.length; j < lenj; j++) + { + s = inst.siblings[j]; + s.type.getCurrentSol().instances[k] = s; + } + } + k++; + } + } + else + { + if (using_else_instances) + { + arr[k] = inst; + if (is_contained) + { + for (j = 0, lenj = inst.siblings.length; j < lenj; j++) + { + s = inst.siblings[j]; + s.type.getCurrentSol().else_instances[k] = s; + } + } + k++; + } + else if (is_orblock) + { + sol.else_instances.push(inst); + if (is_contained) + { + for (j = 0, lenj = inst.siblings.length; j < lenj; j++) + { + s = inst.siblings[j]; + s.type.getCurrentSol().else_instances.push(s); + } + } + } + } + } + cr.truncateArray(arr, k); + if (is_contained) + { + container = type.container; + for (i = 0, leni = container.length; i < leni; i++) + { + sol2 = container[i].getCurrentSol(); + if (using_else_instances) + cr.truncateArray(sol2.else_instances, k); + else + cr.truncateArray(sol2.instances, k); + } + } + var pick_in_finish = any_true; // don't pick in finish() if we're only doing the logic test below + if (using_else_instances && !any_true) + { + for (i = 0, leni = sol.instances.length; i < leni; i++) + { + inst = sol.instances[i]; + if (params_vary) + { + for (j = 0, lenj = parameters.length; j < lenj; j++) + { + p = parameters[j]; + if (p.variesPerInstance) + results[j] = p.get(i); + } + } + if (is_beh) + ret = func.apply(inst.behavior_insts[beh_index], results); + else + ret = func.apply(inst, results); + if (cr.xor(ret, inverted)) + { + any_true = true; + break; // got our flag, don't need to test any more + } + } + } + if (type.finish) + type.finish(pick_in_finish || is_orblock); + return is_orblock ? any_true : sol.hasObjects(); + } + }; + cr.condition = Condition; + function Action(block, m) + { + this.block = block; + this.sheet = block.sheet; + this.runtime = block.runtime; + this.parameters = []; + this.results = []; + this.extra = {}; // for plugins to stow away some custom info + this.index = -1; + this.anyParamVariesPerInstance = false; + this.func = this.runtime.GetObjectReference(m[1]); +; + if (m[0] === -1) // system + { + this.type = null; + this.run = this.run_system; + this.behaviortype = null; + this.beh_index = -1; + } + else + { + this.type = this.runtime.types_by_index[m[0]]; +; + this.run = this.run_object; + if (m[2]) + { + this.behaviortype = this.type.getBehaviorByName(m[2]); +; + this.beh_index = this.type.getBehaviorIndexByName(m[2]); +; + } + else + { + this.behaviortype = null; + this.beh_index = -1; + } + } + this.sid = m[3]; + this.runtime.actsBySid[this.sid.toString()] = this; + if (m.length === 6) + { + var i, len; + var em = m[5]; + for (i = 0, len = em.length; i < len; i++) + { + var param = new cr.parameter(this, em[i]); + cr.seal(param); + this.parameters.push(param); + } + this.results.length = em.length; + } + }; + Action.prototype.postInit = function () + { + var i, len, p; + for (i = 0, len = this.parameters.length; i < len; i++) + { + p = this.parameters[i]; + p.postInit(); + if (p.variesPerInstance) + this.anyParamVariesPerInstance = true; + } + }; + Action.prototype.run_system = function () + { + var runtime = this.runtime; + var i, len; + var parameters = this.parameters; + var results = this.results; + for (i = 0, len = parameters.length; i < len; ++i) + results[i] = parameters[i].get(); + return this.func.apply(runtime.system, results); + }; + Action.prototype.run_object = function () + { + var type = this.type; + var beh_index = this.beh_index; + var family_index = type.family_index; + var params_vary = this.anyParamVariesPerInstance; + var parameters = this.parameters; + var results = this.results; + var func = this.func; + var instances = type.getCurrentSol().getObjects(); + var is_family = type.is_family; + var is_beh = (beh_index > -1); + var i, j, leni, lenj, p, inst, offset; + if (params_vary) + { + for (j = 0, lenj = parameters.length; j < lenj; ++j) + { + p = parameters[j]; + if (!p.variesPerInstance) + results[j] = p.get(0); + } + } + else + { + for (j = 0, lenj = parameters.length; j < lenj; ++j) + results[j] = parameters[j].get(0); + } + for (i = 0, leni = instances.length; i < leni; ++i) + { + inst = instances[i]; + if (params_vary) + { + for (j = 0, lenj = parameters.length; j < lenj; ++j) + { + p = parameters[j]; + if (p.variesPerInstance) + results[j] = p.get(i); // pass i to use as default SOL index + } + } + if (is_beh) + { + offset = 0; + if (is_family) + { + offset = inst.type.family_beh_map[family_index]; + } + func.apply(inst.behavior_insts[beh_index + offset], results); + } + else + func.apply(inst, results); + } + return false; + }; + cr.action = Action; + var tempValues = []; + var tempValuesPtr = -1; + function pushTempValue() + { + tempValuesPtr++; + if (tempValues.length === tempValuesPtr) + tempValues.push(new cr.expvalue()); + return tempValues[tempValuesPtr]; + }; + function popTempValue() + { + tempValuesPtr--; + }; + function Parameter(owner, m) + { + this.owner = owner; + this.block = owner.block; + this.sheet = owner.sheet; + this.runtime = owner.runtime; + this.type = m[0]; + this.expression = null; + this.solindex = 0; + this.get = null; + this.combosel = 0; + this.layout = null; + this.key = 0; + this.object = null; + this.index = 0; + this.varname = null; + this.eventvar = null; + this.fileinfo = null; + this.subparams = null; + this.variadicret = null; + this.subparams = null; + this.variadicret = null; + this.variesPerInstance = false; + var i, len, param; + switch (m[0]) + { + case 0: // number + case 7: // any + this.expression = new cr.expNode(this, m[1]); + this.solindex = 0; + this.get = this.get_exp; + break; + case 1: // string + this.expression = new cr.expNode(this, m[1]); + this.solindex = 0; + this.get = this.get_exp_str; + break; + case 5: // layer + this.expression = new cr.expNode(this, m[1]); + this.solindex = 0; + this.get = this.get_layer; + break; + case 3: // combo + case 8: // cmp + this.combosel = m[1]; + this.get = this.get_combosel; + break; + case 6: // layout + this.layout = this.runtime.layouts[m[1]]; +; + this.get = this.get_layout; + break; + case 9: // keyb + this.key = m[1]; + this.get = this.get_key; + break; + case 4: // object + this.object = this.runtime.types_by_index[m[1]]; +; + this.get = this.get_object; + this.block.addSolModifier(this.object); + if (this.owner instanceof cr.action) + this.block.setSolWriterAfterCnds(); + else if (this.block.parent) + this.block.parent.setSolWriterAfterCnds(); + break; + case 10: // instvar + this.index = m[1]; + if (owner.type && owner.type.is_family) + { + this.get = this.get_familyvar; + this.variesPerInstance = true; + } + else + this.get = this.get_instvar; + break; + case 11: // eventvar + this.varname = m[1]; + this.eventvar = null; + this.get = this.get_eventvar; + break; + case 2: // audiofile ["name", ismusic] + case 12: // fileinfo "name" + this.fileinfo = m[1]; + this.get = this.get_audiofile; + break; + case 13: // variadic + this.get = this.get_variadic; + this.subparams = []; + this.variadicret = []; + for (i = 1, len = m.length; i < len; i++) + { + param = new cr.parameter(this.owner, m[i]); + cr.seal(param); + this.subparams.push(param); + this.variadicret.push(0); + } + break; + default: +; + } + }; + Parameter.prototype.postInit = function () + { + var i, len; + if (this.type === 11) // eventvar + { + this.eventvar = this.runtime.getEventVariableByName(this.varname, this.block.parent); +; + } + else if (this.type === 13) // variadic, postInit all sub-params + { + for (i = 0, len = this.subparams.length; i < len; i++) + this.subparams[i].postInit(); + } + if (this.expression) + this.expression.postInit(); + }; + Parameter.prototype.maybeVaryForType = function (t) + { + if (this.variesPerInstance) + return; // already varies per instance, no need to check again + if (!t) + return; // never vary for system type + if (!t.plugin.singleglobal) + { + this.variesPerInstance = true; + return; + } + }; + Parameter.prototype.setVaries = function () + { + this.variesPerInstance = true; + }; + Parameter.prototype.get_exp = function (solindex) + { + this.solindex = solindex || 0; // default SOL index to use + var temp = pushTempValue(); + this.expression.get(temp); + popTempValue(); + return temp.data; // return actual JS value, not expvalue + }; + Parameter.prototype.get_exp_str = function (solindex) + { + this.solindex = solindex || 0; // default SOL index to use + var temp = pushTempValue(); + this.expression.get(temp); + popTempValue(); + if (cr.is_string(temp.data)) + return temp.data; + else + return ""; + }; + Parameter.prototype.get_object = function () + { + return this.object; + }; + Parameter.prototype.get_combosel = function () + { + return this.combosel; + }; + Parameter.prototype.get_layer = function (solindex) + { + this.solindex = solindex || 0; // default SOL index to use + var temp = pushTempValue(); + this.expression.get(temp); + popTempValue(); + if (temp.is_number()) + return this.runtime.getLayerByNumber(temp.data); + else + return this.runtime.getLayerByName(temp.data); + } + Parameter.prototype.get_layout = function () + { + return this.layout; + }; + Parameter.prototype.get_key = function () + { + return this.key; + }; + Parameter.prototype.get_instvar = function () + { + return this.index; + }; + Parameter.prototype.get_familyvar = function (solindex_) + { + var solindex = solindex_ || 0; + var familytype = this.owner.type; + var realtype = null; + var sol = familytype.getCurrentSol(); + var objs = sol.getObjects(); + if (objs.length) + realtype = objs[solindex % objs.length].type; + else if (sol.else_instances.length) + realtype = sol.else_instances[solindex % sol.else_instances.length].type; + else if (familytype.instances.length) + realtype = familytype.instances[solindex % familytype.instances.length].type; + else + return 0; + return this.index + realtype.family_var_map[familytype.family_index]; + }; + Parameter.prototype.get_eventvar = function () + { + return this.eventvar; + }; + Parameter.prototype.get_audiofile = function () + { + return this.fileinfo; + }; + Parameter.prototype.get_variadic = function () + { + var i, len; + for (i = 0, len = this.subparams.length; i < len; i++) + { + this.variadicret[i] = this.subparams[i].get(); + } + return this.variadicret; + }; + cr.parameter = Parameter; + function EventVariable(sheet, parent, m) + { + this.sheet = sheet; + this.parent = parent; + this.runtime = sheet.runtime; + this.solModifiers = []; + this.name = m[1]; + this.vartype = m[2]; + this.initial = m[3]; + this.is_static = !!m[4]; + this.is_constant = !!m[5]; + this.sid = m[6]; + this.runtime.varsBySid[this.sid.toString()] = this; + this.data = this.initial; // note: also stored in event stack frame for local nonstatic nonconst vars + if (this.parent) // local var + { + if (this.is_static || this.is_constant) + this.localIndex = -1; + else + this.localIndex = this.runtime.stackLocalCount++; + this.runtime.all_local_vars.push(this); + } + else // global var + { + this.localIndex = -1; + this.runtime.all_global_vars.push(this); + } + }; + EventVariable.prototype.postInit = function () + { + this.solModifiers = findMatchingSolModifier(this.solModifiers); + }; + EventVariable.prototype.setValue = function (x) + { +; + var lvs = this.runtime.getCurrentLocalVarStack(); + if (!this.parent || this.is_static || !lvs) + this.data = x; + else // local nonstatic variable: use event stack to keep value at this level of recursion + { + if (this.localIndex >= lvs.length) + lvs.length = this.localIndex + 1; + lvs[this.localIndex] = x; + } + }; + EventVariable.prototype.getValue = function () + { + var lvs = this.runtime.getCurrentLocalVarStack(); + if (!this.parent || this.is_static || !lvs || this.is_constant) + return this.data; + else // local nonstatic variable + { + if (this.localIndex >= lvs.length) + { + return this.initial; + } + if (typeof lvs[this.localIndex] === "undefined") + { + return this.initial; + } + return lvs[this.localIndex]; + } + }; + EventVariable.prototype.run = function () + { + if (this.parent && !this.is_static && !this.is_constant) + this.setValue(this.initial); + }; + cr.eventvariable = EventVariable; + function EventInclude(sheet, parent, m) + { + this.sheet = sheet; + this.parent = parent; + this.runtime = sheet.runtime; + this.solModifiers = []; + this.include_sheet = null; // determined in postInit + this.include_sheet_name = m[1]; + this.active = true; + }; + EventInclude.prototype.toString = function () + { + return "include:" + this.include_sheet.toString(); + }; + EventInclude.prototype.postInit = function () + { + this.include_sheet = this.runtime.eventsheets[this.include_sheet_name]; +; +; + this.sheet.includes.add(this); + this.solModifiers = findMatchingSolModifier(this.solModifiers); + var p = this.parent; + while (p) + { + if (p.group) + p.contained_includes.push(this); + p = p.parent; + } + this.updateActive(); + }; + EventInclude.prototype.run = function () + { + if (this.parent) + this.runtime.pushCleanSol(this.runtime.types_by_index); + if (!this.include_sheet.hasRun) + this.include_sheet.run(true); // from include + if (this.parent) + this.runtime.popSol(this.runtime.types_by_index); + }; + EventInclude.prototype.updateActive = function () + { + var p = this.parent; + while (p) + { + if (p.group && !p.group_active) + { + this.active = false; + return; + } + p = p.parent; + } + this.active = true; + }; + EventInclude.prototype.isActive = function () + { + return this.active; + }; + cr.eventinclude = EventInclude; + function EventStackFrame() + { + this.temp_parents_arr = []; + this.reset(null); + cr.seal(this); + }; + EventStackFrame.prototype.reset = function (cur_event) + { + this.current_event = cur_event; + this.cndindex = 0; + this.actindex = 0; + cr.clearArray(this.temp_parents_arr); + this.last_event_true = false; + this.else_branch_ran = false; + this.any_true_state = false; + }; + EventStackFrame.prototype.isModifierAfterCnds = function () + { + if (this.current_event.solWriterAfterCnds) + return true; + if (this.cndindex < this.current_event.conditions.length - 1) + return !!this.current_event.solModifiers.length; + return false; + }; + cr.eventStackFrame = EventStackFrame; +}()); +(function() +{ + function ExpNode(owner_, m) + { + this.owner = owner_; + this.runtime = owner_.runtime; + this.type = m[0]; +; + this.get = [this.eval_int, + this.eval_float, + this.eval_string, + this.eval_unaryminus, + this.eval_add, + this.eval_subtract, + this.eval_multiply, + this.eval_divide, + this.eval_mod, + this.eval_power, + this.eval_and, + this.eval_or, + this.eval_equal, + this.eval_notequal, + this.eval_less, + this.eval_lessequal, + this.eval_greater, + this.eval_greaterequal, + this.eval_conditional, + this.eval_system_exp, + this.eval_object_exp, + this.eval_instvar_exp, + this.eval_behavior_exp, + this.eval_eventvar_exp][this.type]; + var paramsModel = null; + this.value = null; + this.first = null; + this.second = null; + this.third = null; + this.func = null; + this.results = null; + this.parameters = null; + this.object_type = null; + this.beh_index = -1; + this.instance_expr = null; + this.varindex = -1; + this.behavior_type = null; + this.varname = null; + this.eventvar = null; + this.return_string = false; + switch (this.type) { + case 0: // int + case 1: // float + case 2: // string + this.value = m[1]; + break; + case 3: // unaryminus + this.first = new cr.expNode(owner_, m[1]); + break; + case 18: // conditional + this.first = new cr.expNode(owner_, m[1]); + this.second = new cr.expNode(owner_, m[2]); + this.third = new cr.expNode(owner_, m[3]); + break; + case 19: // system_exp + this.func = this.runtime.GetObjectReference(m[1]); +; + if (this.func === cr.system_object.prototype.exps.random + || this.func === cr.system_object.prototype.exps.choose) + { + this.owner.setVaries(); + } + this.results = []; + this.parameters = []; + if (m.length === 3) + { + paramsModel = m[2]; + this.results.length = paramsModel.length + 1; // must also fit 'ret' + } + else + this.results.length = 1; // to fit 'ret' + break; + case 20: // object_exp + this.object_type = this.runtime.types_by_index[m[1]]; +; + this.beh_index = -1; + this.func = this.runtime.GetObjectReference(m[2]); + this.return_string = m[3]; + if (cr.plugins_.Function && this.func === cr.plugins_.Function.prototype.exps.Call) + { + this.owner.setVaries(); + } + if (m[4]) + this.instance_expr = new cr.expNode(owner_, m[4]); + else + this.instance_expr = null; + this.results = []; + this.parameters = []; + if (m.length === 6) + { + paramsModel = m[5]; + this.results.length = paramsModel.length + 1; + } + else + this.results.length = 1; // to fit 'ret' + break; + case 21: // instvar_exp + this.object_type = this.runtime.types_by_index[m[1]]; +; + this.return_string = m[2]; + if (m[3]) + this.instance_expr = new cr.expNode(owner_, m[3]); + else + this.instance_expr = null; + this.varindex = m[4]; + break; + case 22: // behavior_exp + this.object_type = this.runtime.types_by_index[m[1]]; +; + this.behavior_type = this.object_type.getBehaviorByName(m[2]); +; + this.beh_index = this.object_type.getBehaviorIndexByName(m[2]); + this.func = this.runtime.GetObjectReference(m[3]); + this.return_string = m[4]; + if (m[5]) + this.instance_expr = new cr.expNode(owner_, m[5]); + else + this.instance_expr = null; + this.results = []; + this.parameters = []; + if (m.length === 7) + { + paramsModel = m[6]; + this.results.length = paramsModel.length + 1; + } + else + this.results.length = 1; // to fit 'ret' + break; + case 23: // eventvar_exp + this.varname = m[1]; + this.eventvar = null; // assigned in postInit + break; + } + this.owner.maybeVaryForType(this.object_type); + if (this.type >= 4 && this.type <= 17) + { + this.first = new cr.expNode(owner_, m[1]); + this.second = new cr.expNode(owner_, m[2]); + } + if (paramsModel) + { + var i, len; + for (i = 0, len = paramsModel.length; i < len; i++) + this.parameters.push(new cr.expNode(owner_, paramsModel[i])); + } + cr.seal(this); + }; + ExpNode.prototype.postInit = function () + { + if (this.type === 23) // eventvar_exp + { + this.eventvar = this.owner.runtime.getEventVariableByName(this.varname, this.owner.block.parent); +; + } + if (this.first) + this.first.postInit(); + if (this.second) + this.second.postInit(); + if (this.third) + this.third.postInit(); + if (this.instance_expr) + this.instance_expr.postInit(); + if (this.parameters) + { + var i, len; + for (i = 0, len = this.parameters.length; i < len; i++) + this.parameters[i].postInit(); + } + }; + var tempValues = []; + var tempValuesPtr = -1; + function pushTempValue() + { + ++tempValuesPtr; + if (tempValues.length === tempValuesPtr) + tempValues.push(new cr.expvalue()); + return tempValues[tempValuesPtr]; + }; + function popTempValue() + { + --tempValuesPtr; + }; + function eval_params(parameters, results, temp) + { + var i, len; + for (i = 0, len = parameters.length; i < len; ++i) + { + parameters[i].get(temp); + results[i + 1] = temp.data; // passing actual javascript value as argument instead of expvalue + } + } + ExpNode.prototype.eval_system_exp = function (ret) + { + var parameters = this.parameters; + var results = this.results; + results[0] = ret; + var temp = pushTempValue(); + eval_params(parameters, results, temp); + popTempValue(); + this.func.apply(this.runtime.system, results); + }; + ExpNode.prototype.eval_object_exp = function (ret) + { + var object_type = this.object_type; + var results = this.results; + var parameters = this.parameters; + var instance_expr = this.instance_expr; + var func = this.func; + var index = this.owner.solindex; // default to parameter's intended SOL index + var sol = object_type.getCurrentSol(); + var instances = sol.getObjects(); + if (!instances.length) + { + if (sol.else_instances.length) + instances = sol.else_instances; + else + { + if (this.return_string) + ret.set_string(""); + else + ret.set_int(0); + return; + } + } + results[0] = ret; + ret.object_class = object_type; // so expression can access family type if need be + var temp = pushTempValue(); + eval_params(parameters, results, temp); + if (instance_expr) { + instance_expr.get(temp); + if (temp.is_number()) { + index = temp.data; + instances = object_type.instances; // pick from all instances, not SOL + } + } + popTempValue(); + var len = instances.length; + if (index >= len || index <= -len) + index %= len; // wraparound + if (index < 0) + index += len; + var returned_val = func.apply(instances[index], results); +; + }; + ExpNode.prototype.eval_behavior_exp = function (ret) + { + var object_type = this.object_type; + var results = this.results; + var parameters = this.parameters; + var instance_expr = this.instance_expr; + var beh_index = this.beh_index; + var func = this.func; + var index = this.owner.solindex; // default to parameter's intended SOL index + var sol = object_type.getCurrentSol(); + var instances = sol.getObjects(); + if (!instances.length) + { + if (sol.else_instances.length) + instances = sol.else_instances; + else + { + if (this.return_string) + ret.set_string(""); + else + ret.set_int(0); + return; + } + } + results[0] = ret; + ret.object_class = object_type; // so expression can access family type if need be + var temp = pushTempValue(); + eval_params(parameters, results, temp); + if (instance_expr) { + instance_expr.get(temp); + if (temp.is_number()) { + index = temp.data; + instances = object_type.instances; // pick from all instances, not SOL + } + } + popTempValue(); + var len = instances.length; + if (index >= len || index <= -len) + index %= len; // wraparound + if (index < 0) + index += len; + var inst = instances[index]; + var offset = 0; + if (object_type.is_family) + { + offset = inst.type.family_beh_map[object_type.family_index]; + } + var returned_val = func.apply(inst.behavior_insts[beh_index + offset], results); +; + }; + ExpNode.prototype.eval_instvar_exp = function (ret) + { + var instance_expr = this.instance_expr; + var object_type = this.object_type; + var varindex = this.varindex; + var index = this.owner.solindex; // default to parameter's intended SOL index + var sol = object_type.getCurrentSol(); + var instances = sol.getObjects(); + var inst; + if (!instances.length) + { + if (sol.else_instances.length) + instances = sol.else_instances; + else + { + if (this.return_string) + ret.set_string(""); + else + ret.set_int(0); + return; + } + } + if (instance_expr) + { + var temp = pushTempValue(); + instance_expr.get(temp); + if (temp.is_number()) + { + index = temp.data; + var type_instances = object_type.instances; + if (type_instances.length !== 0) // avoid NaN result with % + { + index %= type_instances.length; // wraparound + if (index < 0) // offset + index += type_instances.length; + } + inst = object_type.getInstanceByIID(index); + var to_ret = inst.instance_vars[varindex]; + if (cr.is_string(to_ret)) + ret.set_string(to_ret); + else + ret.set_float(to_ret); + popTempValue(); + return; // done + } + popTempValue(); + } + var len = instances.length; + if (index >= len || index <= -len) + index %= len; // wraparound + if (index < 0) + index += len; + inst = instances[index]; + var offset = 0; + if (object_type.is_family) + { + offset = inst.type.family_var_map[object_type.family_index]; + } + var to_ret = inst.instance_vars[varindex + offset]; + if (cr.is_string(to_ret)) + ret.set_string(to_ret); + else + ret.set_float(to_ret); + }; + ExpNode.prototype.eval_int = function (ret) + { + ret.type = cr.exptype.Integer; + ret.data = this.value; + }; + ExpNode.prototype.eval_float = function (ret) + { + ret.type = cr.exptype.Float; + ret.data = this.value; + }; + ExpNode.prototype.eval_string = function (ret) + { + ret.type = cr.exptype.String; + ret.data = this.value; + }; + ExpNode.prototype.eval_unaryminus = function (ret) + { + this.first.get(ret); // retrieve operand + if (ret.is_number()) + ret.data = -ret.data; + }; + ExpNode.prototype.eval_add = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + if (ret.is_number() && temp.is_number()) + { + ret.data += temp.data; // both operands numbers: add + if (temp.is_float()) + ret.make_float(); + } + popTempValue(); + }; + ExpNode.prototype.eval_subtract = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + if (ret.is_number() && temp.is_number()) + { + ret.data -= temp.data; // both operands numbers: subtract + if (temp.is_float()) + ret.make_float(); + } + popTempValue(); + }; + ExpNode.prototype.eval_multiply = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + if (ret.is_number() && temp.is_number()) + { + ret.data *= temp.data; // both operands numbers: multiply + if (temp.is_float()) + ret.make_float(); + } + popTempValue(); + }; + ExpNode.prototype.eval_divide = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + if (ret.is_number() && temp.is_number()) + { + ret.data /= temp.data; // both operands numbers: divide + ret.make_float(); + } + popTempValue(); + }; + ExpNode.prototype.eval_mod = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + if (ret.is_number() && temp.is_number()) + { + ret.data %= temp.data; // both operands numbers: modulo + if (temp.is_float()) + ret.make_float(); + } + popTempValue(); + }; + ExpNode.prototype.eval_power = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + if (ret.is_number() && temp.is_number()) + { + ret.data = Math.pow(ret.data, temp.data); // both operands numbers: raise to power + if (temp.is_float()) + ret.make_float(); + } + popTempValue(); + }; + ExpNode.prototype.eval_and = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + if (temp.is_string() || ret.is_string()) + this.eval_and_stringconcat(ret, temp); + else + this.eval_and_logical(ret, temp); + popTempValue(); + }; + ExpNode.prototype.eval_and_stringconcat = function (ret, temp) + { + if (ret.is_string() && temp.is_string()) + this.eval_and_stringconcat_str_str(ret, temp); + else + this.eval_and_stringconcat_num(ret, temp); + }; + ExpNode.prototype.eval_and_stringconcat_str_str = function (ret, temp) + { + ret.data += temp.data; + }; + ExpNode.prototype.eval_and_stringconcat_num = function (ret, temp) + { + if (ret.is_string()) + { + ret.data += (Math.round(temp.data * 1e10) / 1e10).toString(); + } + else + { + ret.set_string(ret.data.toString() + temp.data); + } + }; + ExpNode.prototype.eval_and_logical = function (ret, temp) + { + ret.set_int(ret.data && temp.data ? 1 : 0); + }; + ExpNode.prototype.eval_or = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + if (ret.is_number() && temp.is_number()) + { + if (ret.data || temp.data) + ret.set_int(1); + else + ret.set_int(0); + } + popTempValue(); + }; + ExpNode.prototype.eval_conditional = function (ret) + { + this.first.get(ret); // condition operand + if (ret.data) // is true + this.second.get(ret); // evaluate second operand to ret + else + this.third.get(ret); // evaluate third operand to ret + }; + ExpNode.prototype.eval_equal = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + ret.set_int(ret.data === temp.data ? 1 : 0); + popTempValue(); + }; + ExpNode.prototype.eval_notequal = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + ret.set_int(ret.data !== temp.data ? 1 : 0); + popTempValue(); + }; + ExpNode.prototype.eval_less = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + ret.set_int(ret.data < temp.data ? 1 : 0); + popTempValue(); + }; + ExpNode.prototype.eval_lessequal = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + ret.set_int(ret.data <= temp.data ? 1 : 0); + popTempValue(); + }; + ExpNode.prototype.eval_greater = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + ret.set_int(ret.data > temp.data ? 1 : 0); + popTempValue(); + }; + ExpNode.prototype.eval_greaterequal = function (ret) + { + this.first.get(ret); // left operand + var temp = pushTempValue(); + this.second.get(temp); // right operand + ret.set_int(ret.data >= temp.data ? 1 : 0); + popTempValue(); + }; + ExpNode.prototype.eval_eventvar_exp = function (ret) + { + var val = this.eventvar.getValue(); + if (cr.is_number(val)) + ret.set_float(val); + else + ret.set_string(val); + }; + cr.expNode = ExpNode; + function ExpValue(type, data) + { + this.type = type || cr.exptype.Integer; + this.data = data || 0; + this.object_class = null; +; +; +; + if (this.type == cr.exptype.Integer) + this.data = Math.floor(this.data); + cr.seal(this); + }; + ExpValue.prototype.is_int = function () + { + return this.type === cr.exptype.Integer; + }; + ExpValue.prototype.is_float = function () + { + return this.type === cr.exptype.Float; + }; + ExpValue.prototype.is_number = function () + { + return this.type === cr.exptype.Integer || this.type === cr.exptype.Float; + }; + ExpValue.prototype.is_string = function () + { + return this.type === cr.exptype.String; + }; + ExpValue.prototype.make_int = function () + { + if (!this.is_int()) + { + if (this.is_float()) + this.data = Math.floor(this.data); // truncate float + else if (this.is_string()) + this.data = parseInt(this.data, 10); + this.type = cr.exptype.Integer; + } + }; + ExpValue.prototype.make_float = function () + { + if (!this.is_float()) + { + if (this.is_string()) + this.data = parseFloat(this.data); + this.type = cr.exptype.Float; + } + }; + ExpValue.prototype.make_string = function () + { + if (!this.is_string()) + { + this.data = this.data.toString(); + this.type = cr.exptype.String; + } + }; + ExpValue.prototype.set_int = function (val) + { +; + this.type = cr.exptype.Integer; + this.data = Math.floor(val); + }; + ExpValue.prototype.set_float = function (val) + { +; + this.type = cr.exptype.Float; + this.data = val; + }; + ExpValue.prototype.set_string = function (val) + { +; + this.type = cr.exptype.String; + this.data = val; + }; + ExpValue.prototype.set_any = function (val) + { + if (cr.is_number(val)) + { + this.type = cr.exptype.Float; + this.data = val; + } + else if (cr.is_string(val)) + { + this.type = cr.exptype.String; + this.data = val.toString(); + } + else + { + this.type = cr.exptype.Integer; + this.data = 0; + } + }; + cr.expvalue = ExpValue; + cr.exptype = { + Integer: 0, // emulated; no native integer support in javascript + Float: 1, + String: 2 + }; +}()); +; +cr.system_object = function (runtime) +{ + this.runtime = runtime; + this.waits = []; +}; +cr.system_object.prototype.saveToJSON = function () +{ + var o = {}; + var i, len, j, lenj, p, w, t, sobj; + o["waits"] = []; + var owaits = o["waits"]; + var waitobj; + for (i = 0, len = this.waits.length; i < len; i++) + { + w = this.waits[i]; + waitobj = { + "t": w.time, + "st": w.signaltag, + "s": w.signalled, + "ev": w.ev.sid, + "sm": [], + "sols": {} + }; + if (w.ev.actions[w.actindex]) + waitobj["act"] = w.ev.actions[w.actindex].sid; + for (j = 0, lenj = w.solModifiers.length; j < lenj; j++) + waitobj["sm"].push(w.solModifiers[j].sid); + for (p in w.sols) + { + if (w.sols.hasOwnProperty(p)) + { + t = this.runtime.types_by_index[parseInt(p, 10)]; +; + sobj = { + "sa": w.sols[p].sa, + "insts": [] + }; + for (j = 0, lenj = w.sols[p].insts.length; j < lenj; j++) + sobj["insts"].push(w.sols[p].insts[j].uid); + waitobj["sols"][t.sid.toString()] = sobj; + } + } + owaits.push(waitobj); + } + return o; +}; +cr.system_object.prototype.loadFromJSON = function (o) +{ + var owaits = o["waits"]; + var i, len, j, lenj, p, w, addWait, e, aindex, t, savedsol, nusol, inst; + cr.clearArray(this.waits); + for (i = 0, len = owaits.length; i < len; i++) + { + w = owaits[i]; + e = this.runtime.blocksBySid[w["ev"].toString()]; + if (!e) + continue; // event must've gone missing + aindex = -1; + for (j = 0, lenj = e.actions.length; j < lenj; j++) + { + if (e.actions[j].sid === w["act"]) + { + aindex = j; + break; + } + } + if (aindex === -1) + continue; // action must've gone missing + addWait = {}; + addWait.sols = {}; + addWait.solModifiers = []; + addWait.deleteme = false; + addWait.time = w["t"]; + addWait.signaltag = w["st"] || ""; + addWait.signalled = !!w["s"]; + addWait.ev = e; + addWait.actindex = aindex; + for (j = 0, lenj = w["sm"].length; j < lenj; j++) + { + t = this.runtime.getObjectTypeBySid(w["sm"][j]); + if (t) + addWait.solModifiers.push(t); + } + for (p in w["sols"]) + { + if (w["sols"].hasOwnProperty(p)) + { + t = this.runtime.getObjectTypeBySid(parseInt(p, 10)); + if (!t) + continue; // type must've been deleted + savedsol = w["sols"][p]; + nusol = { + sa: savedsol["sa"], + insts: [] + }; + for (j = 0, lenj = savedsol["insts"].length; j < lenj; j++) + { + inst = this.runtime.getObjectByUID(savedsol["insts"][j]); + if (inst) + nusol.insts.push(inst); + } + addWait.sols[t.index.toString()] = nusol; + } + } + this.waits.push(addWait); + } +}; +(function () +{ + var sysProto = cr.system_object.prototype; + function SysCnds() {}; + SysCnds.prototype.EveryTick = function() + { + return true; + }; + SysCnds.prototype.OnLayoutStart = function() + { + return true; + }; + SysCnds.prototype.OnLayoutEnd = function() + { + return true; + }; + SysCnds.prototype.Compare = function(x, cmp, y) + { + return cr.do_cmp(x, cmp, y); + }; + SysCnds.prototype.CompareTime = function (cmp, t) + { + var elapsed = this.runtime.kahanTime.sum; + if (cmp === 0) + { + var cnd = this.runtime.getCurrentCondition(); + if (!cnd.extra["CompareTime_executed"]) + { + if (elapsed >= t) + { + cnd.extra["CompareTime_executed"] = true; + return true; + } + } + return false; + } + return cr.do_cmp(elapsed, cmp, t); + }; + SysCnds.prototype.LayerVisible = function (layer) + { + if (!layer) + return false; + else + return layer.visible; + }; + SysCnds.prototype.LayerEmpty = function (layer) + { + if (!layer) + return false; + else + return !layer.instances.length; + }; + SysCnds.prototype.LayerCmpOpacity = function (layer, cmp, opacity_) + { + if (!layer) + return false; + return cr.do_cmp(layer.opacity * 100, cmp, opacity_); + }; + SysCnds.prototype.Repeat = function (count) + { + var current_frame = this.runtime.getCurrentEventStack(); + var current_event = current_frame.current_event; + var solModifierAfterCnds = current_frame.isModifierAfterCnds(); + var current_loop = this.runtime.pushLoopStack(); + var i; + if (solModifierAfterCnds) + { + for (i = 0; i < count && !current_loop.stopped; i++) + { + this.runtime.pushCopySol(current_event.solModifiers); + current_loop.index = i; + current_event.retrigger(); + this.runtime.popSol(current_event.solModifiers); + } + } + else + { + for (i = 0; i < count && !current_loop.stopped; i++) + { + current_loop.index = i; + current_event.retrigger(); + } + } + this.runtime.popLoopStack(); + return false; + }; + SysCnds.prototype.While = function (count) + { + var current_frame = this.runtime.getCurrentEventStack(); + var current_event = current_frame.current_event; + var solModifierAfterCnds = current_frame.isModifierAfterCnds(); + var current_loop = this.runtime.pushLoopStack(); + var i; + if (solModifierAfterCnds) + { + for (i = 0; !current_loop.stopped; i++) + { + this.runtime.pushCopySol(current_event.solModifiers); + current_loop.index = i; + if (!current_event.retrigger()) // one of the other conditions returned false + current_loop.stopped = true; // break + this.runtime.popSol(current_event.solModifiers); + } + } + else + { + for (i = 0; !current_loop.stopped; i++) + { + current_loop.index = i; + if (!current_event.retrigger()) + current_loop.stopped = true; + } + } + this.runtime.popLoopStack(); + return false; + }; + SysCnds.prototype.For = function (name, start, end) + { + var current_frame = this.runtime.getCurrentEventStack(); + var current_event = current_frame.current_event; + var solModifierAfterCnds = current_frame.isModifierAfterCnds(); + var current_loop = this.runtime.pushLoopStack(name); + var i; + if (end < start) + { + if (solModifierAfterCnds) + { + for (i = start; i >= end && !current_loop.stopped; --i) // inclusive to end + { + this.runtime.pushCopySol(current_event.solModifiers); + current_loop.index = i; + current_event.retrigger(); + this.runtime.popSol(current_event.solModifiers); + } + } + else + { + for (i = start; i >= end && !current_loop.stopped; --i) // inclusive to end + { + current_loop.index = i; + current_event.retrigger(); + } + } + } + else + { + if (solModifierAfterCnds) + { + for (i = start; i <= end && !current_loop.stopped; ++i) // inclusive to end + { + this.runtime.pushCopySol(current_event.solModifiers); + current_loop.index = i; + current_event.retrigger(); + this.runtime.popSol(current_event.solModifiers); + } + } + else + { + for (i = start; i <= end && !current_loop.stopped; ++i) // inclusive to end + { + current_loop.index = i; + current_event.retrigger(); + } + } + } + this.runtime.popLoopStack(); + return false; + }; + var foreach_instancestack = []; + var foreach_instanceptr = -1; + SysCnds.prototype.ForEach = function (obj) + { + var sol = obj.getCurrentSol(); + foreach_instanceptr++; + if (foreach_instancestack.length === foreach_instanceptr) + foreach_instancestack.push([]); + var instances = foreach_instancestack[foreach_instanceptr]; + cr.shallowAssignArray(instances, sol.getObjects()); + var current_frame = this.runtime.getCurrentEventStack(); + var current_event = current_frame.current_event; + var solModifierAfterCnds = current_frame.isModifierAfterCnds(); + var current_loop = this.runtime.pushLoopStack(); + var i, len, j, lenj, inst, s, sol2; + var is_contained = obj.is_contained; + if (solModifierAfterCnds) + { + for (i = 0, len = instances.length; i < len && !current_loop.stopped; i++) + { + this.runtime.pushCopySol(current_event.solModifiers); + inst = instances[i]; + sol = obj.getCurrentSol(); + sol.select_all = false; + cr.clearArray(sol.instances); + sol.instances[0] = inst; + if (is_contained) + { + for (j = 0, lenj = inst.siblings.length; j < lenj; j++) + { + s = inst.siblings[j]; + sol2 = s.type.getCurrentSol(); + sol2.select_all = false; + cr.clearArray(sol2.instances); + sol2.instances[0] = s; + } + } + current_loop.index = i; + current_event.retrigger(); + this.runtime.popSol(current_event.solModifiers); + } + } + else + { + sol.select_all = false; + cr.clearArray(sol.instances); + for (i = 0, len = instances.length; i < len && !current_loop.stopped; i++) + { + inst = instances[i]; + sol.instances[0] = inst; + if (is_contained) + { + for (j = 0, lenj = inst.siblings.length; j < lenj; j++) + { + s = inst.siblings[j]; + sol2 = s.type.getCurrentSol(); + sol2.select_all = false; + cr.clearArray(sol2.instances); + sol2.instances[0] = s; + } + } + current_loop.index = i; + current_event.retrigger(); + } + } + cr.clearArray(instances); + this.runtime.popLoopStack(); + foreach_instanceptr--; + return false; + }; + function foreach_sortinstances(a, b) + { + var va = a.extra["c2_feo_val"]; + var vb = b.extra["c2_feo_val"]; + if (cr.is_number(va) && cr.is_number(vb)) + return va - vb; + else + { + va = "" + va; + vb = "" + vb; + if (va < vb) + return -1; + else if (va > vb) + return 1; + else + return 0; + } + }; + SysCnds.prototype.ForEachOrdered = function (obj, exp, order) + { + var sol = obj.getCurrentSol(); + foreach_instanceptr++; + if (foreach_instancestack.length === foreach_instanceptr) + foreach_instancestack.push([]); + var instances = foreach_instancestack[foreach_instanceptr]; + cr.shallowAssignArray(instances, sol.getObjects()); + var current_frame = this.runtime.getCurrentEventStack(); + var current_event = current_frame.current_event; + var current_condition = this.runtime.getCurrentCondition(); + var solModifierAfterCnds = current_frame.isModifierAfterCnds(); + var current_loop = this.runtime.pushLoopStack(); + var i, len, j, lenj, inst, s, sol2; + for (i = 0, len = instances.length; i < len; i++) + { + instances[i].extra["c2_feo_val"] = current_condition.parameters[1].get(i); + } + instances.sort(foreach_sortinstances); + if (order === 1) + instances.reverse(); + var is_contained = obj.is_contained; + if (solModifierAfterCnds) + { + for (i = 0, len = instances.length; i < len && !current_loop.stopped; i++) + { + this.runtime.pushCopySol(current_event.solModifiers); + inst = instances[i]; + sol = obj.getCurrentSol(); + sol.select_all = false; + cr.clearArray(sol.instances); + sol.instances[0] = inst; + if (is_contained) + { + for (j = 0, lenj = inst.siblings.length; j < lenj; j++) + { + s = inst.siblings[j]; + sol2 = s.type.getCurrentSol(); + sol2.select_all = false; + cr.clearArray(sol2.instances); + sol2.instances[0] = s; + } + } + current_loop.index = i; + current_event.retrigger(); + this.runtime.popSol(current_event.solModifiers); + } + } + else + { + sol.select_all = false; + cr.clearArray(sol.instances); + for (i = 0, len = instances.length; i < len && !current_loop.stopped; i++) + { + inst = instances[i]; + sol.instances[0] = inst; + if (is_contained) + { + for (j = 0, lenj = inst.siblings.length; j < lenj; j++) + { + s = inst.siblings[j]; + sol2 = s.type.getCurrentSol(); + sol2.select_all = false; + cr.clearArray(sol2.instances); + sol2.instances[0] = s; + } + } + current_loop.index = i; + current_event.retrigger(); + } + } + cr.clearArray(instances); + this.runtime.popLoopStack(); + foreach_instanceptr--; + return false; + }; + SysCnds.prototype.PickByComparison = function (obj_, exp_, cmp_, val_) + { + var i, len, k, inst; + if (!obj_) + return; + foreach_instanceptr++; + if (foreach_instancestack.length === foreach_instanceptr) + foreach_instancestack.push([]); + var tmp_instances = foreach_instancestack[foreach_instanceptr]; + var sol = obj_.getCurrentSol(); + cr.shallowAssignArray(tmp_instances, sol.getObjects()); + if (sol.select_all) + cr.clearArray(sol.else_instances); + var current_condition = this.runtime.getCurrentCondition(); + for (i = 0, k = 0, len = tmp_instances.length; i < len; i++) + { + inst = tmp_instances[i]; + tmp_instances[k] = inst; + exp_ = current_condition.parameters[1].get(i); + val_ = current_condition.parameters[3].get(i); + if (cr.do_cmp(exp_, cmp_, val_)) + { + k++; + } + else + { + sol.else_instances.push(inst); + } + } + cr.truncateArray(tmp_instances, k); + sol.select_all = false; + cr.shallowAssignArray(sol.instances, tmp_instances); + cr.clearArray(tmp_instances); + foreach_instanceptr--; + obj_.applySolToContainer(); + return !!sol.instances.length; + }; + SysCnds.prototype.PickByEvaluate = function (obj_, exp_) + { + var i, len, k, inst; + if (!obj_) + return; + foreach_instanceptr++; + if (foreach_instancestack.length === foreach_instanceptr) + foreach_instancestack.push([]); + var tmp_instances = foreach_instancestack[foreach_instanceptr]; + var sol = obj_.getCurrentSol(); + cr.shallowAssignArray(tmp_instances, sol.getObjects()); + if (sol.select_all) + cr.clearArray(sol.else_instances); + var current_condition = this.runtime.getCurrentCondition(); + for (i = 0, k = 0, len = tmp_instances.length; i < len; i++) + { + inst = tmp_instances[i]; + tmp_instances[k] = inst; + exp_ = current_condition.parameters[1].get(i); + if (exp_) + { + k++; + } + else + { + sol.else_instances.push(inst); + } + } + cr.truncateArray(tmp_instances, k); + sol.select_all = false; + cr.shallowAssignArray(sol.instances, tmp_instances); + cr.clearArray(tmp_instances); + foreach_instanceptr--; + obj_.applySolToContainer(); + return !!sol.instances.length; + }; + SysCnds.prototype.TriggerOnce = function () + { + var cndextra = this.runtime.getCurrentCondition().extra; + if (typeof cndextra["TriggerOnce_lastTick"] === "undefined") + cndextra["TriggerOnce_lastTick"] = -1; + var last_tick = cndextra["TriggerOnce_lastTick"]; + var cur_tick = this.runtime.tickcount; + cndextra["TriggerOnce_lastTick"] = cur_tick; + return this.runtime.layout_first_tick || last_tick !== cur_tick - 1; + }; + SysCnds.prototype.Every = function (seconds) + { + var cnd = this.runtime.getCurrentCondition(); + var last_time = cnd.extra["Every_lastTime"] || 0; + var cur_time = this.runtime.kahanTime.sum; + if (typeof cnd.extra["Every_seconds"] === "undefined") + cnd.extra["Every_seconds"] = seconds; + var this_seconds = cnd.extra["Every_seconds"]; + if (cur_time >= last_time + this_seconds) + { + cnd.extra["Every_lastTime"] = last_time + this_seconds; + if (cur_time >= cnd.extra["Every_lastTime"] + 0.04) + { + cnd.extra["Every_lastTime"] = cur_time; + } + cnd.extra["Every_seconds"] = seconds; + return true; + } + else if (cur_time < last_time - 0.1) + { + cnd.extra["Every_lastTime"] = cur_time; + } + return false; + }; + SysCnds.prototype.PickNth = function (obj, index) + { + if (!obj) + return false; + var sol = obj.getCurrentSol(); + var instances = sol.getObjects(); + index = cr.floor(index); + if (index < 0 || index >= instances.length) + return false; + var inst = instances[index]; + sol.pick_one(inst); + obj.applySolToContainer(); + return true; + }; + SysCnds.prototype.PickRandom = function (obj) + { + if (!obj) + return false; + var sol = obj.getCurrentSol(); + var instances = sol.getObjects(); + var index = cr.floor(Math.random() * instances.length); + if (index >= instances.length) + return false; + var inst = instances[index]; + sol.pick_one(inst); + obj.applySolToContainer(); + return true; + }; + SysCnds.prototype.CompareVar = function (v, cmp, val) + { + return cr.do_cmp(v.getValue(), cmp, val); + }; + SysCnds.prototype.IsGroupActive = function (group) + { + var g = this.runtime.groups_by_name[group.toLowerCase()]; + return g && g.group_active; + }; + SysCnds.prototype.IsPreview = function () + { + return typeof cr_is_preview !== "undefined"; + }; + SysCnds.prototype.PickAll = function (obj) + { + if (!obj) + return false; + if (!obj.instances.length) + return false; + var sol = obj.getCurrentSol(); + sol.select_all = true; + obj.applySolToContainer(); + return true; + }; + SysCnds.prototype.IsMobile = function () + { + return this.runtime.isMobile; + }; + SysCnds.prototype.CompareBetween = function (x, a, b) + { + return x >= a && x <= b; + }; + SysCnds.prototype.Else = function () + { + var current_frame = this.runtime.getCurrentEventStack(); + if (current_frame.else_branch_ran) + return false; // another event in this else-if chain has run + else + return !current_frame.last_event_true; + /* + var current_frame = this.runtime.getCurrentEventStack(); + var current_event = current_frame.current_event; + var prev_event = current_event.prev_block; + if (!prev_event) + return false; + if (prev_event.is_logical) + return !this.runtime.last_event_true; + var i, len, j, lenj, s, sol, temp, inst, any_picked = false; + for (i = 0, len = prev_event.cndReferences.length; i < len; i++) + { + s = prev_event.cndReferences[i]; + sol = s.getCurrentSol(); + if (sol.select_all || sol.instances.length === s.instances.length) + { + sol.select_all = false; + sol.instances.length = 0; + } + else + { + if (sol.instances.length === 1 && sol.else_instances.length === 0 && s.instances.length >= 2) + { + inst = sol.instances[0]; + sol.instances.length = 0; + for (j = 0, lenj = s.instances.length; j < lenj; j++) + { + if (s.instances[j] != inst) + sol.instances.push(s.instances[j]); + } + any_picked = true; + } + else + { + temp = sol.instances; + sol.instances = sol.else_instances; + sol.else_instances = temp; + any_picked = true; + } + } + } + return any_picked; + */ + }; + SysCnds.prototype.OnLoadFinished = function () + { + return true; + }; + SysCnds.prototype.OnCanvasSnapshot = function () + { + return true; + }; + SysCnds.prototype.EffectsSupported = function () + { + return !!this.runtime.glwrap; + }; + SysCnds.prototype.OnSaveComplete = function () + { + return true; + }; + SysCnds.prototype.OnSaveFailed = function () + { + return true; + }; + SysCnds.prototype.OnLoadComplete = function () + { + return true; + }; + SysCnds.prototype.OnLoadFailed = function () + { + return true; + }; + SysCnds.prototype.ObjectUIDExists = function (u) + { + return !!this.runtime.getObjectByUID(u); + }; + SysCnds.prototype.IsOnPlatform = function (p) + { + var rt = this.runtime; + switch (p) { + case 0: // HTML5 website + return !rt.isDomFree && !rt.isNodeWebkit && !rt.isCordova && !rt.isWinJS && !rt.isWindowsPhone8 && !rt.isBlackberry10 && !rt.isAmazonWebApp; + case 1: // iOS + return rt.isiOS; + case 2: // Android + return rt.isAndroid; + case 3: // Windows 8 + return rt.isWindows8App; + case 4: // Windows Phone 8 + return rt.isWindowsPhone8; + case 5: // Blackberry 10 + return rt.isBlackberry10; + case 6: // Tizen + return rt.isTizen; + case 7: // CocoonJS + return rt.isCocoonJs; + case 8: // Cordova + return rt.isCordova; + case 9: // Scirra Arcade + return rt.isArcade; + case 10: // node-webkit + return rt.isNodeWebkit; + case 11: // crosswalk + return rt.isCrosswalk; + case 12: // amazon webapp + return rt.isAmazonWebApp; + case 13: // windows 10 app + return rt.isWindows10; + default: // should not be possible + return false; + } + }; + var cacheRegex = null; + var lastRegex = ""; + var lastFlags = ""; + function getRegex(regex_, flags_) + { + if (!cacheRegex || regex_ !== lastRegex || flags_ !== lastFlags) + { + cacheRegex = new RegExp(regex_, flags_); + lastRegex = regex_; + lastFlags = flags_; + } + cacheRegex.lastIndex = 0; // reset + return cacheRegex; + }; + SysCnds.prototype.RegexTest = function (str_, regex_, flags_) + { + var regex = getRegex(regex_, flags_); + return regex.test(str_); + }; + var tmp_arr = []; + SysCnds.prototype.PickOverlappingPoint = function (obj_, x_, y_) + { + if (!obj_) + return false; + var sol = obj_.getCurrentSol(); + var instances = sol.getObjects(); + var current_event = this.runtime.getCurrentEventStack().current_event; + var orblock = current_event.orblock; + var cnd = this.runtime.getCurrentCondition(); + var i, len, inst, pick; + if (sol.select_all) + { + cr.shallowAssignArray(tmp_arr, instances); + cr.clearArray(sol.else_instances); + sol.select_all = false; + cr.clearArray(sol.instances); + } + else + { + if (orblock) + { + cr.shallowAssignArray(tmp_arr, sol.else_instances); + cr.clearArray(sol.else_instances); + } + else + { + cr.shallowAssignArray(tmp_arr, instances); + cr.clearArray(sol.instances); + } + } + for (i = 0, len = tmp_arr.length; i < len; ++i) + { + inst = tmp_arr[i]; + inst.update_bbox(); + pick = cr.xor(inst.contains_pt(x_, y_), cnd.inverted); + if (pick) + sol.instances.push(inst); + else + sol.else_instances.push(inst); + } + obj_.applySolToContainer(); + return cr.xor(!!sol.instances.length, cnd.inverted); + }; + SysCnds.prototype.IsNaN = function (n) + { + return !!isNaN(n); + }; + SysCnds.prototype.AngleWithin = function (a1, within, a2) + { + return cr.angleDiff(cr.to_radians(a1), cr.to_radians(a2)) <= cr.to_radians(within); + }; + SysCnds.prototype.IsClockwiseFrom = function (a1, a2) + { + return cr.angleClockwise(cr.to_radians(a1), cr.to_radians(a2)); + }; + SysCnds.prototype.IsBetweenAngles = function (a, la, ua) + { + var angle = cr.to_clamped_radians(a); + var lower = cr.to_clamped_radians(la); + var upper = cr.to_clamped_radians(ua); + var obtuse = (!cr.angleClockwise(upper, lower)); + if (obtuse) + return !(!cr.angleClockwise(angle, lower) && cr.angleClockwise(angle, upper)); + else + return cr.angleClockwise(angle, lower) && !cr.angleClockwise(angle, upper); + }; + SysCnds.prototype.IsValueType = function (x, t) + { + if (typeof x === "number") + return t === 0; + else // string + return t === 1; + }; + sysProto.cnds = new SysCnds(); + function SysActs() {}; + SysActs.prototype.GoToLayout = function (to) + { + if (this.runtime.isloading) + return; // cannot change layout while loading on loader layout + if (this.runtime.changelayout) + return; // already changing to a different layout +; + this.runtime.changelayout = to; + }; + SysActs.prototype.NextPrevLayout = function (prev) + { + if (this.runtime.isloading) + return; // cannot change layout while loading on loader layout + if (this.runtime.changelayout) + return; // already changing to a different layout + var index = this.runtime.layouts_by_index.indexOf(this.runtime.running_layout); + if (prev && index === 0) + return; // cannot go to previous layout from first layout + if (!prev && index === this.runtime.layouts_by_index.length - 1) + return; // cannot go to next layout from last layout + var to = this.runtime.layouts_by_index[index + (prev ? -1 : 1)]; +; + this.runtime.changelayout = to; + }; + SysActs.prototype.CreateObject = function (obj, layer, x, y) + { + if (!layer || !obj) + return; + var inst = this.runtime.createInstance(obj, layer, x, y); + if (!inst) + return; + this.runtime.isInOnDestroy++; + var i, len, s; + this.runtime.trigger(Object.getPrototypeOf(obj.plugin).cnds.OnCreated, inst); + if (inst.is_contained) + { + for (i = 0, len = inst.siblings.length; i < len; i++) + { + s = inst.siblings[i]; + this.runtime.trigger(Object.getPrototypeOf(s.type.plugin).cnds.OnCreated, s); + } + } + this.runtime.isInOnDestroy--; + var sol = obj.getCurrentSol(); + sol.select_all = false; + cr.clearArray(sol.instances); + sol.instances[0] = inst; + if (inst.is_contained) + { + for (i = 0, len = inst.siblings.length; i < len; i++) + { + s = inst.siblings[i]; + sol = s.type.getCurrentSol(); + sol.select_all = false; + cr.clearArray(sol.instances); + sol.instances[0] = s; + } + } + }; + SysActs.prototype.SetLayerVisible = function (layer, visible_) + { + if (!layer) + return; + if (layer.visible !== visible_) + { + layer.visible = visible_; + this.runtime.redraw = true; + } + }; + SysActs.prototype.SetLayerOpacity = function (layer, opacity_) + { + if (!layer) + return; + opacity_ = cr.clamp(opacity_ / 100, 0, 1); + if (layer.opacity !== opacity_) + { + layer.opacity = opacity_; + this.runtime.redraw = true; + } + }; + SysActs.prototype.SetLayerScaleRate = function (layer, sr) + { + if (!layer) + return; + if (layer.zoomRate !== sr) + { + layer.zoomRate = sr; + this.runtime.redraw = true; + } + }; + SysActs.prototype.SetLayerForceOwnTexture = function (layer, f) + { + if (!layer) + return; + f = !!f; + if (layer.forceOwnTexture !== f) + { + layer.forceOwnTexture = f; + this.runtime.redraw = true; + } + }; + SysActs.prototype.SetLayoutScale = function (s) + { + if (!this.runtime.running_layout) + return; + if (this.runtime.running_layout.scale !== s) + { + this.runtime.running_layout.scale = s; + this.runtime.running_layout.boundScrolling(); + this.runtime.redraw = true; + } + }; + SysActs.prototype.ScrollX = function(x) + { + this.runtime.running_layout.scrollToX(x); + }; + SysActs.prototype.ScrollY = function(y) + { + this.runtime.running_layout.scrollToY(y); + }; + SysActs.prototype.Scroll = function(x, y) + { + this.runtime.running_layout.scrollToX(x); + this.runtime.running_layout.scrollToY(y); + }; + SysActs.prototype.ScrollToObject = function(obj) + { + var inst = obj.getFirstPicked(); + if (inst) + { + this.runtime.running_layout.scrollToX(inst.x); + this.runtime.running_layout.scrollToY(inst.y); + } + }; + SysActs.prototype.SetVar = function(v, x) + { +; + if (v.vartype === 0) + { + if (cr.is_number(x)) + v.setValue(x); + else + v.setValue(parseFloat(x)); + } + else if (v.vartype === 1) + v.setValue(x.toString()); + }; + SysActs.prototype.AddVar = function(v, x) + { +; + if (v.vartype === 0) + { + if (cr.is_number(x)) + v.setValue(v.getValue() + x); + else + v.setValue(v.getValue() + parseFloat(x)); + } + else if (v.vartype === 1) + v.setValue(v.getValue() + x.toString()); + }; + SysActs.prototype.SubVar = function(v, x) + { +; + if (v.vartype === 0) + { + if (cr.is_number(x)) + v.setValue(v.getValue() - x); + else + v.setValue(v.getValue() - parseFloat(x)); + } + }; + SysActs.prototype.SetGroupActive = function (group, active) + { + var g = this.runtime.groups_by_name[group.toLowerCase()]; + if (!g) + return; + switch (active) { + case 0: + g.setGroupActive(false); + break; + case 1: + g.setGroupActive(true); + break; + case 2: + g.setGroupActive(!g.group_active); + break; + } + }; + SysActs.prototype.SetTimescale = function (ts_) + { + var ts = ts_; + if (ts < 0) + ts = 0; + this.runtime.timescale = ts; + }; + SysActs.prototype.SetObjectTimescale = function (obj, ts_) + { + var ts = ts_; + if (ts < 0) + ts = 0; + if (!obj) + return; + var sol = obj.getCurrentSol(); + var instances = sol.getObjects(); + var i, len; + for (i = 0, len = instances.length; i < len; i++) + { + instances[i].my_timescale = ts; + } + }; + SysActs.prototype.RestoreObjectTimescale = function (obj) + { + if (!obj) + return false; + var sol = obj.getCurrentSol(); + var instances = sol.getObjects(); + var i, len; + for (i = 0, len = instances.length; i < len; i++) + { + instances[i].my_timescale = -1.0; + } + }; + var waitobjrecycle = []; + function allocWaitObject() + { + var w; + if (waitobjrecycle.length) + w = waitobjrecycle.pop(); + else + { + w = {}; + w.sols = {}; + w.solModifiers = []; + } + w.deleteme = false; + return w; + }; + function freeWaitObject(w) + { + cr.wipe(w.sols); + cr.clearArray(w.solModifiers); + waitobjrecycle.push(w); + }; + var solstateobjects = []; + function allocSolStateObject() + { + var s; + if (solstateobjects.length) + s = solstateobjects.pop(); + else + { + s = {}; + s.insts = []; + } + s.sa = false; + return s; + }; + function freeSolStateObject(s) + { + cr.clearArray(s.insts); + solstateobjects.push(s); + }; + SysActs.prototype.Wait = function (seconds) + { + if (seconds < 0) + return; + var i, len, s, t, ss; + var evinfo = this.runtime.getCurrentEventStack(); + var waitobj = allocWaitObject(); + waitobj.time = this.runtime.kahanTime.sum + seconds; + waitobj.signaltag = ""; + waitobj.signalled = false; + waitobj.ev = evinfo.current_event; + waitobj.actindex = evinfo.actindex + 1; // pointing at next action + for (i = 0, len = this.runtime.types_by_index.length; i < len; i++) + { + t = this.runtime.types_by_index[i]; + s = t.getCurrentSol(); + if (s.select_all && evinfo.current_event.solModifiers.indexOf(t) === -1) + continue; + waitobj.solModifiers.push(t); + ss = allocSolStateObject(); + ss.sa = s.select_all; + cr.shallowAssignArray(ss.insts, s.instances); + waitobj.sols[i.toString()] = ss; + } + this.waits.push(waitobj); + return true; + }; + SysActs.prototype.WaitForSignal = function (tag) + { + var i, len, s, t, ss; + var evinfo = this.runtime.getCurrentEventStack(); + var waitobj = allocWaitObject(); + waitobj.time = -1; + waitobj.signaltag = tag.toLowerCase(); + waitobj.signalled = false; + waitobj.ev = evinfo.current_event; + waitobj.actindex = evinfo.actindex + 1; // pointing at next action + for (i = 0, len = this.runtime.types_by_index.length; i < len; i++) + { + t = this.runtime.types_by_index[i]; + s = t.getCurrentSol(); + if (s.select_all && evinfo.current_event.solModifiers.indexOf(t) === -1) + continue; + waitobj.solModifiers.push(t); + ss = allocSolStateObject(); + ss.sa = s.select_all; + cr.shallowAssignArray(ss.insts, s.instances); + waitobj.sols[i.toString()] = ss; + } + this.waits.push(waitobj); + return true; + }; + SysActs.prototype.Signal = function (tag) + { + var lowertag = tag.toLowerCase(); + var i, len, w; + for (i = 0, len = this.waits.length; i < len; ++i) + { + w = this.waits[i]; + if (w.time !== -1) + continue; // timer wait, ignore + if (w.signaltag === lowertag) // waiting for this signal + w.signalled = true; // will run on next check + } + }; + SysActs.prototype.SetLayerScale = function (layer, scale) + { + if (!layer) + return; + if (layer.scale === scale) + return; + layer.scale = scale; + this.runtime.redraw = true; + }; + SysActs.prototype.ResetGlobals = function () + { + var i, len, g; + for (i = 0, len = this.runtime.all_global_vars.length; i < len; i++) + { + g = this.runtime.all_global_vars[i]; + g.data = g.initial; + } + }; + SysActs.prototype.SetLayoutAngle = function (a) + { + a = cr.to_radians(a); + a = cr.clamp_angle(a); + if (this.runtime.running_layout) + { + if (this.runtime.running_layout.angle !== a) + { + this.runtime.running_layout.angle = a; + this.runtime.redraw = true; + } + } + }; + SysActs.prototype.SetLayerAngle = function (layer, a) + { + if (!layer) + return; + a = cr.to_radians(a); + a = cr.clamp_angle(a); + if (layer.angle === a) + return; + layer.angle = a; + this.runtime.redraw = true; + }; + SysActs.prototype.SetLayerParallax = function (layer, px, py) + { + if (!layer) + return; + if (layer.parallaxX === px / 100 && layer.parallaxY === py / 100) + return; + layer.parallaxX = px / 100; + layer.parallaxY = py / 100; + if (layer.parallaxX !== 1 || layer.parallaxY !== 1) + { + var i, len, instances = layer.instances; + for (i = 0, len = instances.length; i < len; ++i) + { + instances[i].type.any_instance_parallaxed = true; + } + } + this.runtime.redraw = true; + }; + SysActs.prototype.SetLayerBackground = function (layer, c) + { + if (!layer) + return; + var r = cr.GetRValue(c); + var g = cr.GetGValue(c); + var b = cr.GetBValue(c); + if (layer.background_color[0] === r && layer.background_color[1] === g && layer.background_color[2] === b) + return; + layer.background_color[0] = r; + layer.background_color[1] = g; + layer.background_color[2] = b; + this.runtime.redraw = true; + }; + SysActs.prototype.SetLayerTransparent = function (layer, t) + { + if (!layer) + return; + if (!!t === !!layer.transparent) + return; + layer.transparent = !!t; + this.runtime.redraw = true; + }; + SysActs.prototype.SetLayerBlendMode = function (layer, bm) + { + if (!layer) + return; + if (layer.blend_mode === bm) + return; + layer.blend_mode = bm; + layer.compositeOp = cr.effectToCompositeOp(layer.blend_mode); + if (this.runtime.gl) + cr.setGLBlend(layer, layer.blend_mode, this.runtime.gl); + this.runtime.redraw = true; + }; + SysActs.prototype.StopLoop = function () + { + if (this.runtime.loop_stack_index < 0) + return; // no loop currently running + this.runtime.getCurrentLoop().stopped = true; + }; + SysActs.prototype.GoToLayoutByName = function (layoutname) + { + if (this.runtime.isloading) + return; // cannot change layout while loading on loader layout + if (this.runtime.changelayout) + return; // already changing to different layout +; + var l; + for (l in this.runtime.layouts) + { + if (this.runtime.layouts.hasOwnProperty(l) && cr.equals_nocase(l, layoutname)) + { + this.runtime.changelayout = this.runtime.layouts[l]; + return; + } + } + }; + SysActs.prototype.RestartLayout = function (layoutname) + { + if (this.runtime.isloading) + return; // cannot restart loader layouts + if (this.runtime.changelayout) + return; // already changing to a different layout +; + if (!this.runtime.running_layout) + return; + this.runtime.changelayout = this.runtime.running_layout; + var i, len, g; + for (i = 0, len = this.runtime.allGroups.length; i < len; i++) + { + g = this.runtime.allGroups[i]; + g.setGroupActive(g.initially_activated); + } + }; + SysActs.prototype.SnapshotCanvas = function (format_, quality_) + { + this.runtime.doCanvasSnapshot(format_ === 0 ? "image/png" : "image/jpeg", quality_ / 100); + }; + SysActs.prototype.SetCanvasSize = function (w, h) + { + if (w <= 0 || h <= 0) + return; + var mode = this.runtime.fullscreen_mode; + var isfullscreen = (document["mozFullScreen"] || document["webkitIsFullScreen"] || !!document["msFullscreenElement"] || document["fullScreen"] || this.runtime.isNodeFullscreen); + if (isfullscreen && this.runtime.fullscreen_scaling > 0) + mode = this.runtime.fullscreen_scaling; + if (mode === 0) + { + this.runtime["setSize"](w, h, true); + } + else + { + this.runtime.original_width = w; + this.runtime.original_height = h; + this.runtime["setSize"](this.runtime.lastWindowWidth, this.runtime.lastWindowHeight, true); + } + }; + SysActs.prototype.SetLayoutEffectEnabled = function (enable_, effectname_) + { + if (!this.runtime.running_layout || !this.runtime.glwrap) + return; + var et = this.runtime.running_layout.getEffectByName(effectname_); + if (!et) + return; // effect name not found + var enable = (enable_ === 1); + if (et.active == enable) + return; // no change + et.active = enable; + this.runtime.running_layout.updateActiveEffects(); + this.runtime.redraw = true; + }; + SysActs.prototype.SetLayerEffectEnabled = function (layer, enable_, effectname_) + { + if (!layer || !this.runtime.glwrap) + return; + var et = layer.getEffectByName(effectname_); + if (!et) + return; // effect name not found + var enable = (enable_ === 1); + if (et.active == enable) + return; // no change + et.active = enable; + layer.updateActiveEffects(); + this.runtime.redraw = true; + }; + SysActs.prototype.SetLayoutEffectParam = function (effectname_, index_, value_) + { + if (!this.runtime.running_layout || !this.runtime.glwrap) + return; + var et = this.runtime.running_layout.getEffectByName(effectname_); + if (!et) + return; // effect name not found + var params = this.runtime.running_layout.effect_params[et.index]; + index_ = Math.floor(index_); + if (index_ < 0 || index_ >= params.length) + return; // effect index out of bounds + if (this.runtime.glwrap.getProgramParameterType(et.shaderindex, index_) === 1) + value_ /= 100.0; + if (params[index_] === value_) + return; // no change + params[index_] = value_; + if (et.active) + this.runtime.redraw = true; + }; + SysActs.prototype.SetLayerEffectParam = function (layer, effectname_, index_, value_) + { + if (!layer || !this.runtime.glwrap) + return; + var et = layer.getEffectByName(effectname_); + if (!et) + return; // effect name not found + var params = layer.effect_params[et.index]; + index_ = Math.floor(index_); + if (index_ < 0 || index_ >= params.length) + return; // effect index out of bounds + if (this.runtime.glwrap.getProgramParameterType(et.shaderindex, index_) === 1) + value_ /= 100.0; + if (params[index_] === value_) + return; // no change + params[index_] = value_; + if (et.active) + this.runtime.redraw = true; + }; + SysActs.prototype.SaveState = function (slot_) + { + this.runtime.saveToSlot = slot_; + }; + SysActs.prototype.LoadState = function (slot_) + { + this.runtime.loadFromSlot = slot_; + }; + SysActs.prototype.LoadStateJSON = function (jsonstr_) + { + this.runtime.loadFromJson = jsonstr_; + }; + SysActs.prototype.SetHalfFramerateMode = function (set_) + { + this.runtime.halfFramerateMode = (set_ !== 0); + }; + SysActs.prototype.SetFullscreenQuality = function (q) + { + var isfullscreen = (document["mozFullScreen"] || document["webkitIsFullScreen"] || !!document["msFullscreenElement"] || document["fullScreen"] || this.isNodeFullscreen); + if (!isfullscreen && this.runtime.fullscreen_mode === 0) + return; + this.runtime.wantFullscreenScalingQuality = (q !== 0); + this.runtime["setSize"](this.runtime.lastWindowWidth, this.runtime.lastWindowHeight, true); + }; + SysActs.prototype.ResetPersisted = function () + { + var i, len; + for (i = 0, len = this.runtime.layouts_by_index.length; i < len; ++i) + { + this.runtime.layouts_by_index[i].persist_data = {}; + this.runtime.layouts_by_index[i].first_visit = true; + } + }; + SysActs.prototype.RecreateInitialObjects = function (obj, x1, y1, x2, y2) + { + if (!obj) + return; + this.runtime.running_layout.recreateInitialObjects(obj, x1, y1, x2, y2); + }; + SysActs.prototype.SetPixelRounding = function (m) + { + this.runtime.pixel_rounding = (m !== 0); + this.runtime.redraw = true; + }; + SysActs.prototype.SetMinimumFramerate = function (f) + { + if (f < 1) + f = 1; + if (f > 120) + f = 120; + this.runtime.minimumFramerate = f; + }; + function SortZOrderList(a, b) + { + var layerA = a[0]; + var layerB = b[0]; + var diff = layerA - layerB; + if (diff !== 0) + return diff; + var indexA = a[1]; + var indexB = b[1]; + return indexA - indexB; + }; + function SortInstancesByValue(a, b) + { + return a[1] - b[1]; + }; + SysActs.prototype.SortZOrderByInstVar = function (obj, iv) + { + if (!obj) + return; + var i, len, inst, value, r, layer, toZ; + var sol = obj.getCurrentSol(); + var pickedInstances = sol.getObjects(); + var zOrderList = []; + var instValues = []; + var layout = this.runtime.running_layout; + var isFamily = obj.is_family; + var familyIndex = obj.family_index; + for (i = 0, len = pickedInstances.length; i < len; ++i) + { + inst = pickedInstances[i]; + if (!inst.layer) + continue; // not a world instance + if (isFamily) + value = inst.instance_vars[iv + inst.type.family_var_map[familyIndex]]; + else + value = inst.instance_vars[iv]; + zOrderList.push([ + inst.layer.index, + inst.get_zindex() + ]); + instValues.push([ + inst, + value + ]); + } + if (!zOrderList.length) + return; // no instances were world instances + zOrderList.sort(SortZOrderList); + instValues.sort(SortInstancesByValue); + for (i = 0, len = zOrderList.length; i < len; ++i) + { + inst = instValues[i][0]; // instance in the order we want + layer = layout.layers[zOrderList[i][0]]; // layer to put it on + toZ = zOrderList[i][1]; // Z index on that layer to put it + if (layer.instances[toZ] !== inst) // not already got this instance there + { + layer.instances[toZ] = inst; // update instance + inst.layer = layer; // update instance's layer reference (could have changed) + layer.setZIndicesStaleFrom(toZ); // mark Z indices stale from this point since they have changed + } + } + }; + sysProto.acts = new SysActs(); + function SysExps() {}; + SysExps.prototype["int"] = function(ret, x) + { + if (cr.is_string(x)) + { + ret.set_int(parseInt(x, 10)); + if (isNaN(ret.data)) + ret.data = 0; + } + else + ret.set_int(x); + }; + SysExps.prototype["float"] = function(ret, x) + { + if (cr.is_string(x)) + { + ret.set_float(parseFloat(x)); + if (isNaN(ret.data)) + ret.data = 0; + } + else + ret.set_float(x); + }; + SysExps.prototype.str = function(ret, x) + { + if (cr.is_string(x)) + ret.set_string(x); + else + ret.set_string(x.toString()); + }; + SysExps.prototype.len = function(ret, x) + { + ret.set_int(x.length || 0); + }; + SysExps.prototype.random = function (ret, a, b) + { + if (b === undefined) + { + ret.set_float(Math.random() * a); + } + else + { + ret.set_float(Math.random() * (b - a) + a); + } + }; + SysExps.prototype.sqrt = function(ret, x) + { + ret.set_float(Math.sqrt(x)); + }; + SysExps.prototype.abs = function(ret, x) + { + ret.set_float(Math.abs(x)); + }; + SysExps.prototype.round = function(ret, x) + { + ret.set_int(Math.round(x)); + }; + SysExps.prototype.floor = function(ret, x) + { + ret.set_int(Math.floor(x)); + }; + SysExps.prototype.ceil = function(ret, x) + { + ret.set_int(Math.ceil(x)); + }; + SysExps.prototype.sin = function(ret, x) + { + ret.set_float(Math.sin(cr.to_radians(x))); + }; + SysExps.prototype.cos = function(ret, x) + { + ret.set_float(Math.cos(cr.to_radians(x))); + }; + SysExps.prototype.tan = function(ret, x) + { + ret.set_float(Math.tan(cr.to_radians(x))); + }; + SysExps.prototype.asin = function(ret, x) + { + ret.set_float(cr.to_degrees(Math.asin(x))); + }; + SysExps.prototype.acos = function(ret, x) + { + ret.set_float(cr.to_degrees(Math.acos(x))); + }; + SysExps.prototype.atan = function(ret, x) + { + ret.set_float(cr.to_degrees(Math.atan(x))); + }; + SysExps.prototype.exp = function(ret, x) + { + ret.set_float(Math.exp(x)); + }; + SysExps.prototype.ln = function(ret, x) + { + ret.set_float(Math.log(x)); + }; + SysExps.prototype.log10 = function(ret, x) + { + ret.set_float(Math.log(x) / Math.LN10); + }; + SysExps.prototype.max = function(ret) + { + var max_ = arguments[1]; + if (typeof max_ !== "number") + max_ = 0; + var i, len, a; + for (i = 2, len = arguments.length; i < len; i++) + { + a = arguments[i]; + if (typeof a !== "number") + continue; // ignore non-numeric types + if (max_ < a) + max_ = a; + } + ret.set_float(max_); + }; + SysExps.prototype.min = function(ret) + { + var min_ = arguments[1]; + if (typeof min_ !== "number") + min_ = 0; + var i, len, a; + for (i = 2, len = arguments.length; i < len; i++) + { + a = arguments[i]; + if (typeof a !== "number") + continue; // ignore non-numeric types + if (min_ > a) + min_ = a; + } + ret.set_float(min_); + }; + SysExps.prototype.dt = function(ret) + { + ret.set_float(this.runtime.dt); + }; + SysExps.prototype.timescale = function(ret) + { + ret.set_float(this.runtime.timescale); + }; + SysExps.prototype.wallclocktime = function(ret) + { + ret.set_float((Date.now() - this.runtime.start_time) / 1000.0); + }; + SysExps.prototype.time = function(ret) + { + ret.set_float(this.runtime.kahanTime.sum); + }; + SysExps.prototype.tickcount = function(ret) + { + ret.set_int(this.runtime.tickcount); + }; + SysExps.prototype.objectcount = function(ret) + { + ret.set_int(this.runtime.objectcount); + }; + SysExps.prototype.fps = function(ret) + { + ret.set_int(this.runtime.fps); + }; + SysExps.prototype.loopindex = function(ret, name_) + { + var loop, i, len; + if (!this.runtime.loop_stack.length) + { + ret.set_int(0); + return; + } + if (name_) + { + for (i = this.runtime.loop_stack_index; i >= 0; --i) + { + loop = this.runtime.loop_stack[i]; + if (loop.name === name_) + { + ret.set_int(loop.index); + return; + } + } + ret.set_int(0); + } + else + { + loop = this.runtime.getCurrentLoop(); + ret.set_int(loop ? loop.index : -1); + } + }; + SysExps.prototype.distance = function(ret, x1, y1, x2, y2) + { + ret.set_float(cr.distanceTo(x1, y1, x2, y2)); + }; + SysExps.prototype.angle = function(ret, x1, y1, x2, y2) + { + ret.set_float(cr.to_degrees(cr.angleTo(x1, y1, x2, y2))); + }; + SysExps.prototype.scrollx = function(ret) + { + ret.set_float(this.runtime.running_layout.scrollX); + }; + SysExps.prototype.scrolly = function(ret) + { + ret.set_float(this.runtime.running_layout.scrollY); + }; + SysExps.prototype.newline = function(ret) + { + ret.set_string("\n"); + }; + SysExps.prototype.lerp = function(ret, a, b, x) + { + ret.set_float(cr.lerp(a, b, x)); + }; + SysExps.prototype.qarp = function(ret, a, b, c, x) + { + ret.set_float(cr.qarp(a, b, c, x)); + }; + SysExps.prototype.cubic = function(ret, a, b, c, d, x) + { + ret.set_float(cr.cubic(a, b, c, d, x)); + }; + SysExps.prototype.cosp = function(ret, a, b, x) + { + ret.set_float(cr.cosp(a, b, x)); + }; + SysExps.prototype.windowwidth = function(ret) + { + ret.set_int(this.runtime.width); + }; + SysExps.prototype.windowheight = function(ret) + { + ret.set_int(this.runtime.height); + }; + SysExps.prototype.uppercase = function(ret, str) + { + ret.set_string(cr.is_string(str) ? str.toUpperCase() : ""); + }; + SysExps.prototype.lowercase = function(ret, str) + { + ret.set_string(cr.is_string(str) ? str.toLowerCase() : ""); + }; + SysExps.prototype.clamp = function(ret, x, l, u) + { + if (x < l) + ret.set_float(l); + else if (x > u) + ret.set_float(u); + else + ret.set_float(x); + }; + SysExps.prototype.layerscale = function (ret, layerparam) + { + var layer = this.runtime.getLayer(layerparam); + if (!layer) + ret.set_float(0); + else + ret.set_float(layer.scale); + }; + SysExps.prototype.layeropacity = function (ret, layerparam) + { + var layer = this.runtime.getLayer(layerparam); + if (!layer) + ret.set_float(0); + else + ret.set_float(layer.opacity * 100); + }; + SysExps.prototype.layerscalerate = function (ret, layerparam) + { + var layer = this.runtime.getLayer(layerparam); + if (!layer) + ret.set_float(0); + else + ret.set_float(layer.zoomRate); + }; + SysExps.prototype.layerparallaxx = function (ret, layerparam) + { + var layer = this.runtime.getLayer(layerparam); + if (!layer) + ret.set_float(0); + else + ret.set_float(layer.parallaxX * 100); + }; + SysExps.prototype.layerparallaxy = function (ret, layerparam) + { + var layer = this.runtime.getLayer(layerparam); + if (!layer) + ret.set_float(0); + else + ret.set_float(layer.parallaxY * 100); + }; + SysExps.prototype.layerindex = function (ret, layerparam) + { + var layer = this.runtime.getLayer(layerparam); + if (!layer) + ret.set_int(-1); + else + ret.set_int(layer.index); + }; + SysExps.prototype.layoutscale = function (ret) + { + if (this.runtime.running_layout) + ret.set_float(this.runtime.running_layout.scale); + else + ret.set_float(0); + }; + SysExps.prototype.layoutangle = function (ret) + { + ret.set_float(cr.to_degrees(this.runtime.running_layout.angle)); + }; + SysExps.prototype.layerangle = function (ret, layerparam) + { + var layer = this.runtime.getLayer(layerparam); + if (!layer) + ret.set_float(0); + else + ret.set_float(cr.to_degrees(layer.angle)); + }; + SysExps.prototype.layoutwidth = function (ret) + { + ret.set_int(this.runtime.running_layout.width); + }; + SysExps.prototype.layoutheight = function (ret) + { + ret.set_int(this.runtime.running_layout.height); + }; + SysExps.prototype.find = function (ret, text, searchstr) + { + if (cr.is_string(text) && cr.is_string(searchstr)) + ret.set_int(text.search(new RegExp(cr.regexp_escape(searchstr), "i"))); + else + ret.set_int(-1); + }; + SysExps.prototype.findcase = function (ret, text, searchstr) + { + if (cr.is_string(text) && cr.is_string(searchstr)) + ret.set_int(text.search(new RegExp(cr.regexp_escape(searchstr), ""))); + else + ret.set_int(-1); + }; + SysExps.prototype.left = function (ret, text, n) + { + ret.set_string(cr.is_string(text) ? text.substr(0, n) : ""); + }; + SysExps.prototype.right = function (ret, text, n) + { + ret.set_string(cr.is_string(text) ? text.substr(text.length - n) : ""); + }; + SysExps.prototype.mid = function (ret, text, index_, length_) + { + ret.set_string(cr.is_string(text) ? text.substr(index_, length_) : ""); + }; + SysExps.prototype.tokenat = function (ret, text, index_, sep) + { + if (cr.is_string(text) && cr.is_string(sep)) + { + var arr = text.split(sep); + var i = cr.floor(index_); + if (i < 0 || i >= arr.length) + ret.set_string(""); + else + ret.set_string(arr[i]); + } + else + ret.set_string(""); + }; + SysExps.prototype.tokencount = function (ret, text, sep) + { + if (cr.is_string(text) && text.length) + ret.set_int(text.split(sep).length); + else + ret.set_int(0); + }; + SysExps.prototype.replace = function (ret, text, find_, replace_) + { + if (cr.is_string(text) && cr.is_string(find_) && cr.is_string(replace_)) + ret.set_string(text.replace(new RegExp(cr.regexp_escape(find_), "gi"), replace_)); + else + ret.set_string(cr.is_string(text) ? text : ""); + }; + SysExps.prototype.trim = function (ret, text) + { + ret.set_string(cr.is_string(text) ? text.trim() : ""); + }; + SysExps.prototype.pi = function (ret) + { + ret.set_float(cr.PI); + }; + SysExps.prototype.layoutname = function (ret) + { + if (this.runtime.running_layout) + ret.set_string(this.runtime.running_layout.name); + else + ret.set_string(""); + }; + SysExps.prototype.renderer = function (ret) + { + ret.set_string(this.runtime.gl ? "webgl" : "canvas2d"); + }; + SysExps.prototype.rendererdetail = function (ret) + { + ret.set_string(this.runtime.glUnmaskedRenderer); + }; + SysExps.prototype.anglediff = function (ret, a, b) + { + ret.set_float(cr.to_degrees(cr.angleDiff(cr.to_radians(a), cr.to_radians(b)))); + }; + SysExps.prototype.choose = function (ret) + { + var index = cr.floor(Math.random() * (arguments.length - 1)); + ret.set_any(arguments[index + 1]); + }; + SysExps.prototype.rgb = function (ret, r, g, b) + { + ret.set_int(cr.RGB(r, g, b)); + }; + SysExps.prototype.projectversion = function (ret) + { + ret.set_string(this.runtime.versionstr); + }; + SysExps.prototype.projectname = function (ret) + { + ret.set_string(this.runtime.projectName); + }; + SysExps.prototype.anglelerp = function (ret, a, b, x) + { + a = cr.to_radians(a); + b = cr.to_radians(b); + var diff = cr.angleDiff(a, b); + if (cr.angleClockwise(b, a)) + { + ret.set_float(cr.to_clamped_degrees(a + diff * x)); + } + else + { + ret.set_float(cr.to_clamped_degrees(a - diff * x)); + } + }; + SysExps.prototype.anglerotate = function (ret, a, b, c) + { + a = cr.to_radians(a); + b = cr.to_radians(b); + c = cr.to_radians(c); + ret.set_float(cr.to_clamped_degrees(cr.angleRotate(a, b, c))); + }; + SysExps.prototype.zeropad = function (ret, n, d) + { + var s = (n < 0 ? "-" : ""); + if (n < 0) n = -n; + var zeroes = d - n.toString().length; + for (var i = 0; i < zeroes; i++) + s += "0"; + ret.set_string(s + n.toString()); + }; + SysExps.prototype.cpuutilisation = function (ret) + { + ret.set_float(this.runtime.cpuutilisation / 1000); + }; + SysExps.prototype.viewportleft = function (ret, layerparam) + { + var layer = this.runtime.getLayer(layerparam); + ret.set_float(layer ? layer.viewLeft : 0); + }; + SysExps.prototype.viewporttop = function (ret, layerparam) + { + var layer = this.runtime.getLayer(layerparam); + ret.set_float(layer ? layer.viewTop : 0); + }; + SysExps.prototype.viewportright = function (ret, layerparam) + { + var layer = this.runtime.getLayer(layerparam); + ret.set_float(layer ? layer.viewRight : 0); + }; + SysExps.prototype.viewportbottom = function (ret, layerparam) + { + var layer = this.runtime.getLayer(layerparam); + ret.set_float(layer ? layer.viewBottom : 0); + }; + SysExps.prototype.loadingprogress = function (ret) + { + ret.set_float(this.runtime.loadingprogress); + }; + SysExps.prototype.unlerp = function(ret, a, b, y) + { + ret.set_float(cr.unlerp(a, b, y)); + }; + SysExps.prototype.canvassnapshot = function (ret) + { + ret.set_string(this.runtime.snapshotData); + }; + SysExps.prototype.urlencode = function (ret, s) + { + ret.set_string(encodeURIComponent(s)); + }; + SysExps.prototype.urldecode = function (ret, s) + { + ret.set_string(decodeURIComponent(s)); + }; + SysExps.prototype.canvastolayerx = function (ret, layerparam, x, y) + { + var layer = this.runtime.getLayer(layerparam); + ret.set_float(layer ? layer.canvasToLayer(x, y, true) : 0); + }; + SysExps.prototype.canvastolayery = function (ret, layerparam, x, y) + { + var layer = this.runtime.getLayer(layerparam); + ret.set_float(layer ? layer.canvasToLayer(x, y, false) : 0); + }; + SysExps.prototype.layertocanvasx = function (ret, layerparam, x, y) + { + var layer = this.runtime.getLayer(layerparam); + ret.set_float(layer ? layer.layerToCanvas(x, y, true) : 0); + }; + SysExps.prototype.layertocanvasy = function (ret, layerparam, x, y) + { + var layer = this.runtime.getLayer(layerparam); + ret.set_float(layer ? layer.layerToCanvas(x, y, false) : 0); + }; + SysExps.prototype.savestatejson = function (ret) + { + ret.set_string(this.runtime.lastSaveJson); + }; + SysExps.prototype.imagememoryusage = function (ret) + { + if (this.runtime.glwrap) + ret.set_float(Math.round(100 * this.runtime.glwrap.estimateVRAM() / (1024 * 1024)) / 100); + else + ret.set_float(0); + }; + SysExps.prototype.regexsearch = function (ret, str_, regex_, flags_) + { + var regex = getRegex(regex_, flags_); + ret.set_int(str_ ? str_.search(regex) : -1); + }; + SysExps.prototype.regexreplace = function (ret, str_, regex_, flags_, replace_) + { + var regex = getRegex(regex_, flags_); + ret.set_string(str_ ? str_.replace(regex, replace_) : ""); + }; + var regexMatches = []; + var lastMatchesStr = ""; + var lastMatchesRegex = ""; + var lastMatchesFlags = ""; + function updateRegexMatches(str_, regex_, flags_) + { + if (str_ === lastMatchesStr && regex_ === lastMatchesRegex && flags_ === lastMatchesFlags) + return; + var regex = getRegex(regex_, flags_); + regexMatches = str_.match(regex); + lastMatchesStr = str_; + lastMatchesRegex = regex_; + lastMatchesFlags = flags_; + }; + SysExps.prototype.regexmatchcount = function (ret, str_, regex_, flags_) + { + var regex = getRegex(regex_, flags_); + updateRegexMatches(str_.toString(), regex_, flags_); + ret.set_int(regexMatches ? regexMatches.length : 0); + }; + SysExps.prototype.regexmatchat = function (ret, str_, regex_, flags_, index_) + { + index_ = Math.floor(index_); + var regex = getRegex(regex_, flags_); + updateRegexMatches(str_.toString(), regex_, flags_); + if (!regexMatches || index_ < 0 || index_ >= regexMatches.length) + ret.set_string(""); + else + ret.set_string(regexMatches[index_]); + }; + SysExps.prototype.infinity = function (ret) + { + ret.set_float(Infinity); + }; + SysExps.prototype.setbit = function (ret, n, b, v) + { + n = n | 0; + b = b | 0; + v = (v !== 0 ? 1 : 0); + ret.set_int((n & ~(1 << b)) | (v << b)); + }; + SysExps.prototype.togglebit = function (ret, n, b) + { + n = n | 0; + b = b | 0; + ret.set_int(n ^ (1 << b)); + }; + SysExps.prototype.getbit = function (ret, n, b) + { + n = n | 0; + b = b | 0; + ret.set_int((n & (1 << b)) ? 1 : 0); + }; + SysExps.prototype.originalwindowwidth = function (ret) + { + ret.set_int(this.runtime.original_width); + }; + SysExps.prototype.originalwindowheight = function (ret) + { + ret.set_int(this.runtime.original_height); + }; + sysProto.exps = new SysExps(); + sysProto.runWaits = function () + { + var i, j, len, w, k, s, ss; + var evinfo = this.runtime.getCurrentEventStack(); + for (i = 0, len = this.waits.length; i < len; i++) + { + w = this.waits[i]; + if (w.time === -1) // signalled wait + { + if (!w.signalled) + continue; // not yet signalled + } + else // timer wait + { + if (w.time > this.runtime.kahanTime.sum) + continue; // timer not yet expired + } + evinfo.current_event = w.ev; + evinfo.actindex = w.actindex; + evinfo.cndindex = 0; + for (k in w.sols) + { + if (w.sols.hasOwnProperty(k)) + { + s = this.runtime.types_by_index[parseInt(k, 10)].getCurrentSol(); + ss = w.sols[k]; + s.select_all = ss.sa; + cr.shallowAssignArray(s.instances, ss.insts); + freeSolStateObject(ss); + } + } + w.ev.resume_actions_and_subevents(); + this.runtime.clearSol(w.solModifiers); + w.deleteme = true; + } + for (i = 0, j = 0, len = this.waits.length; i < len; i++) + { + w = this.waits[i]; + this.waits[j] = w; + if (w.deleteme) + freeWaitObject(w); + else + j++; + } + cr.truncateArray(this.waits, j); + }; +}()); +; +(function () { + cr.add_common_aces = function (m, pluginProto) + { + var singleglobal_ = m[1]; + var position_aces = m[3]; + var size_aces = m[4]; + var angle_aces = m[5]; + var appearance_aces = m[6]; + var zorder_aces = m[7]; + var effects_aces = m[8]; + if (!pluginProto.cnds) + pluginProto.cnds = {}; + if (!pluginProto.acts) + pluginProto.acts = {}; + if (!pluginProto.exps) + pluginProto.exps = {}; + var cnds = pluginProto.cnds; + var acts = pluginProto.acts; + var exps = pluginProto.exps; + if (position_aces) + { + cnds.CompareX = function (cmp, x) + { + return cr.do_cmp(this.x, cmp, x); + }; + cnds.CompareY = function (cmp, y) + { + return cr.do_cmp(this.y, cmp, y); + }; + cnds.IsOnScreen = function () + { + var layer = this.layer; + this.update_bbox(); + var bbox = this.bbox; + return !(bbox.right < layer.viewLeft || bbox.bottom < layer.viewTop || bbox.left > layer.viewRight || bbox.top > layer.viewBottom); + }; + cnds.IsOutsideLayout = function () + { + this.update_bbox(); + var bbox = this.bbox; + var layout = this.runtime.running_layout; + return (bbox.right < 0 || bbox.bottom < 0 || bbox.left > layout.width || bbox.top > layout.height); + }; + cnds.PickDistance = function (which, x, y) + { + var sol = this.getCurrentSol(); + var instances = sol.getObjects(); + if (!instances.length) + return false; + var inst = instances[0]; + var pickme = inst; + var dist = cr.distanceTo(inst.x, inst.y, x, y); + var i, len, d; + for (i = 1, len = instances.length; i < len; i++) + { + inst = instances[i]; + d = cr.distanceTo(inst.x, inst.y, x, y); + if ((which === 0 && d < dist) || (which === 1 && d > dist)) + { + dist = d; + pickme = inst; + } + } + sol.pick_one(pickme); + return true; + }; + acts.SetX = function (x) + { + if (this.x !== x) + { + this.x = x; + this.set_bbox_changed(); + } + }; + acts.SetY = function (y) + { + if (this.y !== y) + { + this.y = y; + this.set_bbox_changed(); + } + }; + acts.SetPos = function (x, y) + { + if (this.x !== x || this.y !== y) + { + this.x = x; + this.y = y; + this.set_bbox_changed(); + } + }; + acts.SetPosToObject = function (obj, imgpt) + { + var inst = obj.getPairedInstance(this); + if (!inst) + return; + var newx, newy; + if (inst.getImagePoint) + { + newx = inst.getImagePoint(imgpt, true); + newy = inst.getImagePoint(imgpt, false); + } + else + { + newx = inst.x; + newy = inst.y; + } + if (this.x !== newx || this.y !== newy) + { + this.x = newx; + this.y = newy; + this.set_bbox_changed(); + } + }; + acts.MoveForward = function (dist) + { + if (dist !== 0) + { + this.x += Math.cos(this.angle) * dist; + this.y += Math.sin(this.angle) * dist; + this.set_bbox_changed(); + } + }; + acts.MoveAtAngle = function (a, dist) + { + if (dist !== 0) + { + this.x += Math.cos(cr.to_radians(a)) * dist; + this.y += Math.sin(cr.to_radians(a)) * dist; + this.set_bbox_changed(); + } + }; + exps.X = function (ret) + { + ret.set_float(this.x); + }; + exps.Y = function (ret) + { + ret.set_float(this.y); + }; + exps.dt = function (ret) + { + ret.set_float(this.runtime.getDt(this)); + }; + } + if (size_aces) + { + cnds.CompareWidth = function (cmp, w) + { + return cr.do_cmp(this.width, cmp, w); + }; + cnds.CompareHeight = function (cmp, h) + { + return cr.do_cmp(this.height, cmp, h); + }; + acts.SetWidth = function (w) + { + if (this.width !== w) + { + this.width = w; + this.set_bbox_changed(); + } + }; + acts.SetHeight = function (h) + { + if (this.height !== h) + { + this.height = h; + this.set_bbox_changed(); + } + }; + acts.SetSize = function (w, h) + { + if (this.width !== w || this.height !== h) + { + this.width = w; + this.height = h; + this.set_bbox_changed(); + } + }; + exps.Width = function (ret) + { + ret.set_float(this.width); + }; + exps.Height = function (ret) + { + ret.set_float(this.height); + }; + exps.BBoxLeft = function (ret) + { + this.update_bbox(); + ret.set_float(this.bbox.left); + }; + exps.BBoxTop = function (ret) + { + this.update_bbox(); + ret.set_float(this.bbox.top); + }; + exps.BBoxRight = function (ret) + { + this.update_bbox(); + ret.set_float(this.bbox.right); + }; + exps.BBoxBottom = function (ret) + { + this.update_bbox(); + ret.set_float(this.bbox.bottom); + }; + } + if (angle_aces) + { + cnds.AngleWithin = function (within, a) + { + return cr.angleDiff(this.angle, cr.to_radians(a)) <= cr.to_radians(within); + }; + cnds.IsClockwiseFrom = function (a) + { + return cr.angleClockwise(this.angle, cr.to_radians(a)); + }; + cnds.IsBetweenAngles = function (a, b) + { + var lower = cr.to_clamped_radians(a); + var upper = cr.to_clamped_radians(b); + var angle = cr.clamp_angle(this.angle); + var obtuse = (!cr.angleClockwise(upper, lower)); + if (obtuse) + return !(!cr.angleClockwise(angle, lower) && cr.angleClockwise(angle, upper)); + else + return cr.angleClockwise(angle, lower) && !cr.angleClockwise(angle, upper); + }; + acts.SetAngle = function (a) + { + var newangle = cr.to_radians(cr.clamp_angle_degrees(a)); + if (isNaN(newangle)) + return; + if (this.angle !== newangle) + { + this.angle = newangle; + this.set_bbox_changed(); + } + }; + acts.RotateClockwise = function (a) + { + if (a !== 0 && !isNaN(a)) + { + this.angle += cr.to_radians(a); + this.angle = cr.clamp_angle(this.angle); + this.set_bbox_changed(); + } + }; + acts.RotateCounterclockwise = function (a) + { + if (a !== 0 && !isNaN(a)) + { + this.angle -= cr.to_radians(a); + this.angle = cr.clamp_angle(this.angle); + this.set_bbox_changed(); + } + }; + acts.RotateTowardAngle = function (amt, target) + { + var newangle = cr.angleRotate(this.angle, cr.to_radians(target), cr.to_radians(amt)); + if (isNaN(newangle)) + return; + if (this.angle !== newangle) + { + this.angle = newangle; + this.set_bbox_changed(); + } + }; + acts.RotateTowardPosition = function (amt, x, y) + { + var dx = x - this.x; + var dy = y - this.y; + var target = Math.atan2(dy, dx); + var newangle = cr.angleRotate(this.angle, target, cr.to_radians(amt)); + if (isNaN(newangle)) + return; + if (this.angle !== newangle) + { + this.angle = newangle; + this.set_bbox_changed(); + } + }; + acts.SetTowardPosition = function (x, y) + { + var dx = x - this.x; + var dy = y - this.y; + var newangle = Math.atan2(dy, dx); + if (isNaN(newangle)) + return; + if (this.angle !== newangle) + { + this.angle = newangle; + this.set_bbox_changed(); + } + }; + exps.Angle = function (ret) + { + ret.set_float(cr.to_clamped_degrees(this.angle)); + }; + } + if (!singleglobal_) + { + cnds.CompareInstanceVar = function (iv, cmp, val) + { + return cr.do_cmp(this.instance_vars[iv], cmp, val); + }; + cnds.IsBoolInstanceVarSet = function (iv) + { + return this.instance_vars[iv]; + }; + cnds.PickInstVarHiLow = function (which, iv) + { + var sol = this.getCurrentSol(); + var instances = sol.getObjects(); + if (!instances.length) + return false; + var inst = instances[0]; + var pickme = inst; + var val = inst.instance_vars[iv]; + var i, len, v; + for (i = 1, len = instances.length; i < len; i++) + { + inst = instances[i]; + v = inst.instance_vars[iv]; + if ((which === 0 && v < val) || (which === 1 && v > val)) + { + val = v; + pickme = inst; + } + } + sol.pick_one(pickme); + return true; + }; + cnds.PickByUID = function (u) + { + var i, len, j, inst, families, instances, sol; + var cnd = this.runtime.getCurrentCondition(); + if (cnd.inverted) + { + sol = this.getCurrentSol(); + if (sol.select_all) + { + sol.select_all = false; + cr.clearArray(sol.instances); + cr.clearArray(sol.else_instances); + instances = this.instances; + for (i = 0, len = instances.length; i < len; i++) + { + inst = instances[i]; + if (inst.uid === u) + sol.else_instances.push(inst); + else + sol.instances.push(inst); + } + this.applySolToContainer(); + return !!sol.instances.length; + } + else + { + for (i = 0, j = 0, len = sol.instances.length; i < len; i++) + { + inst = sol.instances[i]; + sol.instances[j] = inst; + if (inst.uid === u) + { + sol.else_instances.push(inst); + } + else + j++; + } + cr.truncateArray(sol.instances, j); + this.applySolToContainer(); + return !!sol.instances.length; + } + } + else + { + inst = this.runtime.getObjectByUID(u); + if (!inst) + return false; + sol = this.getCurrentSol(); + if (!sol.select_all && sol.instances.indexOf(inst) === -1) + return false; // not picked + if (this.is_family) + { + families = inst.type.families; + for (i = 0, len = families.length; i < len; i++) + { + if (families[i] === this) + { + sol.pick_one(inst); + this.applySolToContainer(); + return true; + } + } + } + else if (inst.type === this) + { + sol.pick_one(inst); + this.applySolToContainer(); + return true; + } + return false; + } + }; + cnds.OnCreated = function () + { + return true; + }; + cnds.OnDestroyed = function () + { + return true; + }; + acts.SetInstanceVar = function (iv, val) + { + var myinstvars = this.instance_vars; + if (cr.is_number(myinstvars[iv])) + { + if (cr.is_number(val)) + myinstvars[iv] = val; + else + myinstvars[iv] = parseFloat(val); + } + else if (cr.is_string(myinstvars[iv])) + { + if (cr.is_string(val)) + myinstvars[iv] = val; + else + myinstvars[iv] = val.toString(); + } + else +; + }; + acts.AddInstanceVar = function (iv, val) + { + var myinstvars = this.instance_vars; + if (cr.is_number(myinstvars[iv])) + { + if (cr.is_number(val)) + myinstvars[iv] += val; + else + myinstvars[iv] += parseFloat(val); + } + else if (cr.is_string(myinstvars[iv])) + { + if (cr.is_string(val)) + myinstvars[iv] += val; + else + myinstvars[iv] += val.toString(); + } + else +; + }; + acts.SubInstanceVar = function (iv, val) + { + var myinstvars = this.instance_vars; + if (cr.is_number(myinstvars[iv])) + { + if (cr.is_number(val)) + myinstvars[iv] -= val; + else + myinstvars[iv] -= parseFloat(val); + } + else +; + }; + acts.SetBoolInstanceVar = function (iv, val) + { + this.instance_vars[iv] = val ? 1 : 0; + }; + acts.ToggleBoolInstanceVar = function (iv) + { + this.instance_vars[iv] = 1 - this.instance_vars[iv]; + }; + acts.Destroy = function () + { + this.runtime.DestroyInstance(this); + }; + if (!acts.LoadFromJsonString) + { + acts.LoadFromJsonString = function (str_) + { + var o, i, len, binst; + try { + o = JSON.parse(str_); + } + catch (e) { + return; + } + this.runtime.loadInstanceFromJSON(this, o, true); + if (this.afterLoad) + this.afterLoad(); + if (this.behavior_insts) + { + for (i = 0, len = this.behavior_insts.length; i < len; ++i) + { + binst = this.behavior_insts[i]; + if (binst.afterLoad) + binst.afterLoad(); + } + } + }; + } + exps.Count = function (ret) + { + var count = ret.object_class.instances.length; + var i, len, inst; + for (i = 0, len = this.runtime.createRow.length; i < len; i++) + { + inst = this.runtime.createRow[i]; + if (ret.object_class.is_family) + { + if (inst.type.families.indexOf(ret.object_class) >= 0) + count++; + } + else + { + if (inst.type === ret.object_class) + count++; + } + } + ret.set_int(count); + }; + exps.PickedCount = function (ret) + { + ret.set_int(ret.object_class.getCurrentSol().getObjects().length); + }; + exps.UID = function (ret) + { + ret.set_int(this.uid); + }; + exps.IID = function (ret) + { + ret.set_int(this.get_iid()); + }; + if (!exps.AsJSON) + { + exps.AsJSON = function (ret) + { + ret.set_string(JSON.stringify(this.runtime.saveInstanceToJSON(this, true))); + }; + } + } + if (appearance_aces) + { + cnds.IsVisible = function () + { + return this.visible; + }; + acts.SetVisible = function (v) + { + if (!v !== !this.visible) + { + this.visible = !!v; + this.runtime.redraw = true; + } + }; + cnds.CompareOpacity = function (cmp, x) + { + return cr.do_cmp(cr.round6dp(this.opacity * 100), cmp, x); + }; + acts.SetOpacity = function (x) + { + var new_opacity = x / 100.0; + if (new_opacity < 0) + new_opacity = 0; + else if (new_opacity > 1) + new_opacity = 1; + if (new_opacity !== this.opacity) + { + this.opacity = new_opacity; + this.runtime.redraw = true; + } + }; + exps.Opacity = function (ret) + { + ret.set_float(cr.round6dp(this.opacity * 100.0)); + }; + } + if (zorder_aces) + { + cnds.IsOnLayer = function (layer_) + { + if (!layer_) + return false; + return this.layer === layer_; + }; + cnds.PickTopBottom = function (which_) + { + var sol = this.getCurrentSol(); + var instances = sol.getObjects(); + if (!instances.length) + return false; + var inst = instances[0]; + var pickme = inst; + var i, len; + for (i = 1, len = instances.length; i < len; i++) + { + inst = instances[i]; + if (which_ === 0) + { + if (inst.layer.index > pickme.layer.index || (inst.layer.index === pickme.layer.index && inst.get_zindex() > pickme.get_zindex())) + { + pickme = inst; + } + } + else + { + if (inst.layer.index < pickme.layer.index || (inst.layer.index === pickme.layer.index && inst.get_zindex() < pickme.get_zindex())) + { + pickme = inst; + } + } + } + sol.pick_one(pickme); + return true; + }; + acts.MoveToTop = function () + { + var layer = this.layer; + var layer_instances = layer.instances; + if (layer_instances.length && layer_instances[layer_instances.length - 1] === this) + return; // is already at top + layer.removeFromInstanceList(this, false); + layer.appendToInstanceList(this, false); + this.runtime.redraw = true; + }; + acts.MoveToBottom = function () + { + var layer = this.layer; + var layer_instances = layer.instances; + if (layer_instances.length && layer_instances[0] === this) + return; // is already at bottom + layer.removeFromInstanceList(this, false); + layer.prependToInstanceList(this, false); + this.runtime.redraw = true; + }; + acts.MoveToLayer = function (layerMove) + { + if (!layerMove || layerMove == this.layer) + return; + this.layer.removeFromInstanceList(this, true); + this.layer = layerMove; + layerMove.appendToInstanceList(this, true); + this.runtime.redraw = true; + }; + acts.ZMoveToObject = function (where_, obj_) + { + var isafter = (where_ === 0); + if (!obj_) + return; + var other = obj_.getFirstPicked(this); + if (!other || other.uid === this.uid) + return; + if (this.layer.index !== other.layer.index) + { + this.layer.removeFromInstanceList(this, true); + this.layer = other.layer; + other.layer.appendToInstanceList(this, true); + } + this.layer.moveInstanceAdjacent(this, other, isafter); + this.runtime.redraw = true; + }; + exps.LayerNumber = function (ret) + { + ret.set_int(this.layer.number); + }; + exps.LayerName = function (ret) + { + ret.set_string(this.layer.name); + }; + exps.ZIndex = function (ret) + { + ret.set_int(this.get_zindex()); + }; + } + if (effects_aces) + { + acts.SetEffectEnabled = function (enable_, effectname_) + { + if (!this.runtime.glwrap) + return; + var i = this.type.getEffectIndexByName(effectname_); + if (i < 0) + return; // effect name not found + var enable = (enable_ === 1); + if (this.active_effect_flags[i] === enable) + return; // no change + this.active_effect_flags[i] = enable; + this.updateActiveEffects(); + this.runtime.redraw = true; + }; + acts.SetEffectParam = function (effectname_, index_, value_) + { + if (!this.runtime.glwrap) + return; + var i = this.type.getEffectIndexByName(effectname_); + if (i < 0) + return; // effect name not found + var et = this.type.effect_types[i]; + var params = this.effect_params[i]; + index_ = Math.floor(index_); + if (index_ < 0 || index_ >= params.length) + return; // effect index out of bounds + if (this.runtime.glwrap.getProgramParameterType(et.shaderindex, index_) === 1) + value_ /= 100.0; + if (params[index_] === value_) + return; // no change + params[index_] = value_; + if (et.active) + this.runtime.redraw = true; + }; + } + }; + cr.set_bbox_changed = function () + { + this.bbox_changed = true; // will recreate next time box requested + this.cell_changed = true; + this.type.any_cell_changed = true; // avoid unnecessary updateAllBBox() calls + this.runtime.redraw = true; // assume runtime needs to redraw + var i, len, callbacks = this.bbox_changed_callbacks; + for (i = 0, len = callbacks.length; i < len; ++i) + { + callbacks[i](this); + } + if (this.layer.useRenderCells) + this.update_bbox(); + }; + cr.add_bbox_changed_callback = function (f) + { + if (f) + { + this.bbox_changed_callbacks.push(f); + } + }; + cr.update_bbox = function () + { + if (!this.bbox_changed) + return; // bounding box not changed + var bbox = this.bbox; + var bquad = this.bquad; + bbox.set(this.x, this.y, this.x + this.width, this.y + this.height); + bbox.offset(-this.hotspotX * this.width, -this.hotspotY * this.height); + if (!this.angle) + { + bquad.set_from_rect(bbox); // make bounding quad from box + } + else + { + bbox.offset(-this.x, -this.y); // translate to origin + bquad.set_from_rotated_rect(bbox, this.angle); // rotate around origin + bquad.offset(this.x, this.y); // translate back to original position + bquad.bounding_box(bbox); + } + bbox.normalize(); + this.bbox_changed = false; // bounding box up to date + this.update_render_cell(); + }; + var tmprc = new cr.rect(0, 0, 0, 0); + cr.update_render_cell = function () + { + if (!this.layer.useRenderCells) + return; + var mygrid = this.layer.render_grid; + var bbox = this.bbox; + tmprc.set(mygrid.XToCell(bbox.left), mygrid.YToCell(bbox.top), mygrid.XToCell(bbox.right), mygrid.YToCell(bbox.bottom)); + if (this.rendercells.equals(tmprc)) + return; + if (this.rendercells.right < this.rendercells.left) + mygrid.update(this, null, tmprc); // first insertion with invalid rect: don't provide old range + else + mygrid.update(this, this.rendercells, tmprc); + this.rendercells.copy(tmprc); + this.layer.render_list_stale = true; + }; + cr.update_collision_cell = function () + { + if (!this.cell_changed || !this.collisionsEnabled) + return; + this.update_bbox(); + var mygrid = this.type.collision_grid; + var bbox = this.bbox; + tmprc.set(mygrid.XToCell(bbox.left), mygrid.YToCell(bbox.top), mygrid.XToCell(bbox.right), mygrid.YToCell(bbox.bottom)); + if (this.collcells.equals(tmprc)) + return; + if (this.collcells.right < this.collcells.left) + mygrid.update(this, null, tmprc); // first insertion with invalid rect: don't provide old range + else + mygrid.update(this, this.collcells, tmprc); + this.collcells.copy(tmprc); + this.cell_changed = false; + }; + cr.inst_contains_pt = function (x, y) + { + if (!this.bbox.contains_pt(x, y)) + return false; + if (!this.bquad.contains_pt(x, y)) + return false; + if (this.tilemap_exists) + return this.testPointOverlapTile(x, y); + if (this.collision_poly && !this.collision_poly.is_empty()) + { + this.collision_poly.cache_poly(this.width, this.height, this.angle); + return this.collision_poly.contains_pt(x - this.x, y - this.y); + } + else + return true; + }; + cr.inst_get_iid = function () + { + this.type.updateIIDs(); + return this.iid; + }; + cr.inst_get_zindex = function () + { + this.layer.updateZIndices(); + return this.zindex; + }; + cr.inst_updateActiveEffects = function () + { + cr.clearArray(this.active_effect_types); + var i, len, et; + var preserves_opaqueness = true; + for (i = 0, len = this.active_effect_flags.length; i < len; i++) + { + if (this.active_effect_flags[i]) + { + et = this.type.effect_types[i]; + this.active_effect_types.push(et); + if (!et.preservesOpaqueness) + preserves_opaqueness = false; + } + } + this.uses_shaders = !!this.active_effect_types.length; + this.shaders_preserve_opaqueness = preserves_opaqueness; + }; + cr.inst_toString = function () + { + return "Inst" + this.puid; + }; + cr.type_getFirstPicked = function (frominst) + { + if (frominst && frominst.is_contained && frominst.type != this) + { + var i, len, s; + for (i = 0, len = frominst.siblings.length; i < len; i++) + { + s = frominst.siblings[i]; + if (s.type == this) + return s; + } + } + var instances = this.getCurrentSol().getObjects(); + if (instances.length) + return instances[0]; + else + return null; + }; + cr.type_getPairedInstance = function (inst) + { + var instances = this.getCurrentSol().getObjects(); + if (instances.length) + return instances[inst.get_iid() % instances.length]; + else + return null; + }; + cr.type_updateIIDs = function () + { + if (!this.stale_iids || this.is_family) + return; // up to date or is family - don't want family to overwrite IIDs + var i, len; + for (i = 0, len = this.instances.length; i < len; i++) + this.instances[i].iid = i; + var next_iid = i; + var createRow = this.runtime.createRow; + for (i = 0, len = createRow.length; i < len; ++i) + { + if (createRow[i].type === this) + createRow[i].iid = next_iid++; + } + this.stale_iids = false; + }; + cr.type_getInstanceByIID = function (i) + { + if (i < this.instances.length) + return this.instances[i]; + i -= this.instances.length; + var createRow = this.runtime.createRow; + var j, lenj; + for (j = 0, lenj = createRow.length; j < lenj; ++j) + { + if (createRow[j].type === this) + { + if (i === 0) + return createRow[j]; + --i; + } + } +; + return null; + }; + cr.type_getCurrentSol = function () + { + return this.solstack[this.cur_sol]; + }; + cr.type_pushCleanSol = function () + { + this.cur_sol++; + if (this.cur_sol === this.solstack.length) + { + this.solstack.push(new cr.selection(this)); + } + else + { + this.solstack[this.cur_sol].select_all = true; // else clear next SOL + cr.clearArray(this.solstack[this.cur_sol].else_instances); + } + }; + cr.type_pushCopySol = function () + { + this.cur_sol++; + if (this.cur_sol === this.solstack.length) + this.solstack.push(new cr.selection(this)); + var clonesol = this.solstack[this.cur_sol]; + var prevsol = this.solstack[this.cur_sol - 1]; + if (prevsol.select_all) + { + clonesol.select_all = true; + } + else + { + clonesol.select_all = false; + cr.shallowAssignArray(clonesol.instances, prevsol.instances); + } + cr.clearArray(clonesol.else_instances); + }; + cr.type_popSol = function () + { +; + this.cur_sol--; + }; + cr.type_getBehaviorByName = function (behname) + { + var i, len, j, lenj, f, index = 0; + if (!this.is_family) + { + for (i = 0, len = this.families.length; i < len; i++) + { + f = this.families[i]; + for (j = 0, lenj = f.behaviors.length; j < lenj; j++) + { + if (behname === f.behaviors[j].name) + { + this.extra["lastBehIndex"] = index; + return f.behaviors[j]; + } + index++; + } + } + } + for (i = 0, len = this.behaviors.length; i < len; i++) { + if (behname === this.behaviors[i].name) + { + this.extra["lastBehIndex"] = index; + return this.behaviors[i]; + } + index++; + } + return null; + }; + cr.type_getBehaviorIndexByName = function (behname) + { + var b = this.getBehaviorByName(behname); + if (b) + return this.extra["lastBehIndex"]; + else + return -1; + }; + cr.type_getEffectIndexByName = function (name_) + { + var i, len; + for (i = 0, len = this.effect_types.length; i < len; i++) + { + if (this.effect_types[i].name === name_) + return i; + } + return -1; + }; + cr.type_applySolToContainer = function () + { + if (!this.is_contained || this.is_family) + return; + var i, len, j, lenj, t, sol, sol2; + this.updateIIDs(); + sol = this.getCurrentSol(); + var select_all = sol.select_all; + var es = this.runtime.getCurrentEventStack(); + var orblock = es && es.current_event && es.current_event.orblock; + for (i = 0, len = this.container.length; i < len; i++) + { + t = this.container[i]; + if (t === this) + continue; + t.updateIIDs(); + sol2 = t.getCurrentSol(); + sol2.select_all = select_all; + if (!select_all) + { + cr.clearArray(sol2.instances); + for (j = 0, lenj = sol.instances.length; j < lenj; ++j) + sol2.instances[j] = t.getInstanceByIID(sol.instances[j].iid); + if (orblock) + { + cr.clearArray(sol2.else_instances); + for (j = 0, lenj = sol.else_instances.length; j < lenj; ++j) + sol2.else_instances[j] = t.getInstanceByIID(sol.else_instances[j].iid); + } + } + } + }; + cr.type_toString = function () + { + return "Type" + this.sid; + }; + cr.do_cmp = function (x, cmp, y) + { + if (typeof x === "undefined" || typeof y === "undefined") + return false; + switch (cmp) + { + case 0: // equal + return x === y; + case 1: // not equal + return x !== y; + case 2: // less + return x < y; + case 3: // less/equal + return x <= y; + case 4: // greater + return x > y; + case 5: // greater/equal + return x >= y; + default: +; + return false; + } + }; +})(); +cr.shaders = {}; +; +; +cr.plugins_.Audio = function(runtime) +{ + this.runtime = runtime; +}; +(function () +{ + var pluginProto = cr.plugins_.Audio.prototype; + pluginProto.Type = function(plugin) + { + this.plugin = plugin; + this.runtime = plugin.runtime; + }; + var typeProto = pluginProto.Type.prototype; + typeProto.onCreate = function() + { + }; + var audRuntime = null; + var audInst = null; + var audTag = ""; + var appPath = ""; // for Cordova only + var API_HTML5 = 0; + var API_WEBAUDIO = 1; + var API_CORDOVA = 2; + var API_APPMOBI = 3; + var api = API_HTML5; + var context = null; + var audioBuffers = []; // cache of buffers + var audioInstances = []; // cache of instances + var lastAudio = null; + var useOgg = false; // determined at create time + var timescale_mode = 0; + var silent = false; + var masterVolume = 1; + var listenerX = 0; + var listenerY = 0; + var isContextSuspended = false; + var panningModel = 1; // HRTF + var distanceModel = 1; // Inverse + var refDistance = 10; + var maxDistance = 10000; + var rolloffFactor = 1; + var micSource = null; + var micTag = ""; + var useNextTouchWorkaround = false; // heuristic in case play() does not return a promise and we have to guess if the play was blocked + var playOnNextInput = []; // C2AudioInstances with HTMLAudioElements to play on next input event + var playMusicAsSoundWorkaround = false; // play music tracks with Web Audio API + var hasPlayedDummyBuffer = false; // dummy buffer played to unblock AudioContext on some platforms + function addAudioToPlayOnNextInput(a) + { + var i = playOnNextInput.indexOf(a); + if (i === -1) + playOnNextInput.push(a); + }; + function tryPlayAudioElement(a) + { + var audioElem = a.instanceObject; + var playRet; + try { + playRet = audioElem.play(); + } + catch (err) { + addAudioToPlayOnNextInput(a); + return; + } + if (playRet) // promise was returned + { + playRet.catch(function (err) + { + addAudioToPlayOnNextInput(a); + }); + } + else if (useNextTouchWorkaround && !audRuntime.isInUserInputEvent) + { + addAudioToPlayOnNextInput(a); + } + }; + function playQueuedAudio() + { + var i, len, m, playRet; + if (!hasPlayedDummyBuffer && !isContextSuspended && context) + { + playDummyBuffer(); + if (context["state"] === "running") + hasPlayedDummyBuffer = true; + } + var tryPlay = playOnNextInput.slice(0); + cr.clearArray(playOnNextInput); + if (!silent) + { + for (i = 0, len = tryPlay.length; i < len; ++i) + { + m = tryPlay[i]; + if (!m.stopped && !m.is_paused) + { + playRet = m.instanceObject.play(); + if (playRet) + { + playRet.catch(function (err) + { + addAudioToPlayOnNextInput(m); + }); + } + } + } + } + }; + function playDummyBuffer() + { + if (context["state"] === "suspended" && context["resume"]) + context["resume"](); + if (!context["createBuffer"]) + return; + var buffer = context["createBuffer"](1, 220, 22050); + var source = context["createBufferSource"](); + source["buffer"] = buffer; + source["connect"](context["destination"]); + startSource(source); + }; + document.addEventListener("pointerup", playQueuedAudio, true); + document.addEventListener("touchend", playQueuedAudio, true); + document.addEventListener("click", playQueuedAudio, true); + document.addEventListener("keydown", playQueuedAudio, true); + document.addEventListener("gamepadconnected", playQueuedAudio, true); + function dbToLinear(x) + { + var v = dbToLinear_nocap(x); + if (!isFinite(v)) // accidentally passing a string can result in NaN; set volume to 0 if so + v = 0; + if (v < 0) + v = 0; + if (v > 1) + v = 1; + return v; + }; + function linearToDb(x) + { + if (x < 0) + x = 0; + if (x > 1) + x = 1; + return linearToDb_nocap(x); + }; + function dbToLinear_nocap(x) + { + return Math.pow(10, x / 20); + }; + function linearToDb_nocap(x) + { + return (Math.log(x) / Math.log(10)) * 20; + }; + var effects = {}; + function getDestinationForTag(tag) + { + tag = tag.toLowerCase(); + if (effects.hasOwnProperty(tag)) + { + if (effects[tag].length) + return effects[tag][0].getInputNode(); + } + return context["destination"]; + }; + function createGain() + { + if (context["createGain"]) + return context["createGain"](); + else + return context["createGainNode"](); + }; + function createDelay(d) + { + if (context["createDelay"]) + return context["createDelay"](d); + else + return context["createDelayNode"](d); + }; + function startSource(s, scheduledTime) + { + if (s["start"]) + s["start"](scheduledTime || 0); + else + s["noteOn"](scheduledTime || 0); + }; + function startSourceAt(s, x, d, scheduledTime) + { + if (s["start"]) + s["start"](scheduledTime || 0, x); + else + s["noteGrainOn"](scheduledTime || 0, x, d - x); + }; + function stopSource(s) + { + try { + if (s["stop"]) + s["stop"](0); + else + s["noteOff"](0); + } + catch (e) {} + }; + function setAudioParam(ap, value, ramp, time) + { + if (!ap) + return; // iOS is missing some parameters + ap["cancelScheduledValues"](0); + if (time === 0) + { + ap["value"] = value; + return; + } + var curTime = context["currentTime"]; + time += curTime; + switch (ramp) { + case 0: // step + ap["setValueAtTime"](value, time); + break; + case 1: // linear + ap["setValueAtTime"](ap["value"], curTime); // to set what to ramp from + ap["linearRampToValueAtTime"](value, time); + break; + case 2: // exponential + ap["setValueAtTime"](ap["value"], curTime); // to set what to ramp from + ap["exponentialRampToValueAtTime"](value, time); + break; + } + }; + var filterTypes = ["lowpass", "highpass", "bandpass", "lowshelf", "highshelf", "peaking", "notch", "allpass"]; + function FilterEffect(type, freq, detune, q, gain, mix) + { + this.type = "filter"; + this.params = [type, freq, detune, q, gain, mix]; + this.inputNode = createGain(); + this.wetNode = createGain(); + this.wetNode["gain"]["value"] = mix; + this.dryNode = createGain(); + this.dryNode["gain"]["value"] = 1 - mix; + this.filterNode = context["createBiquadFilter"](); + if (typeof this.filterNode["type"] === "number") + this.filterNode["type"] = type; + else + this.filterNode["type"] = filterTypes[type]; + this.filterNode["frequency"]["value"] = freq; + if (this.filterNode["detune"]) // iOS 6 doesn't have detune yet + this.filterNode["detune"]["value"] = detune; + this.filterNode["Q"]["value"] = q; + this.filterNode["gain"]["value"] = gain; + this.inputNode["connect"](this.filterNode); + this.inputNode["connect"](this.dryNode); + this.filterNode["connect"](this.wetNode); + }; + FilterEffect.prototype.connectTo = function (node) + { + this.wetNode["disconnect"](); + this.wetNode["connect"](node); + this.dryNode["disconnect"](); + this.dryNode["connect"](node); + }; + FilterEffect.prototype.remove = function () + { + this.inputNode["disconnect"](); + this.filterNode["disconnect"](); + this.wetNode["disconnect"](); + this.dryNode["disconnect"](); + }; + FilterEffect.prototype.getInputNode = function () + { + return this.inputNode; + }; + FilterEffect.prototype.setParam = function(param, value, ramp, time) + { + switch (param) { + case 0: // mix + value = value / 100; + if (value < 0) value = 0; + if (value > 1) value = 1; + this.params[5] = value; + setAudioParam(this.wetNode["gain"], value, ramp, time); + setAudioParam(this.dryNode["gain"], 1 - value, ramp, time); + break; + case 1: // filter frequency + this.params[1] = value; + setAudioParam(this.filterNode["frequency"], value, ramp, time); + break; + case 2: // filter detune + this.params[2] = value; + setAudioParam(this.filterNode["detune"], value, ramp, time); + break; + case 3: // filter Q + this.params[3] = value; + setAudioParam(this.filterNode["Q"], value, ramp, time); + break; + case 4: // filter/delay gain (note value is in dB here) + this.params[4] = value; + setAudioParam(this.filterNode["gain"], value, ramp, time); + break; + } + }; + function DelayEffect(delayTime, delayGain, mix) + { + this.type = "delay"; + this.params = [delayTime, delayGain, mix]; + this.inputNode = createGain(); + this.wetNode = createGain(); + this.wetNode["gain"]["value"] = mix; + this.dryNode = createGain(); + this.dryNode["gain"]["value"] = 1 - mix; + this.mainNode = createGain(); + this.delayNode = createDelay(delayTime); + this.delayNode["delayTime"]["value"] = delayTime; + this.delayGainNode = createGain(); + this.delayGainNode["gain"]["value"] = delayGain; + this.inputNode["connect"](this.mainNode); + this.inputNode["connect"](this.dryNode); + this.mainNode["connect"](this.wetNode); + this.mainNode["connect"](this.delayNode); + this.delayNode["connect"](this.delayGainNode); + this.delayGainNode["connect"](this.mainNode); + }; + DelayEffect.prototype.connectTo = function (node) + { + this.wetNode["disconnect"](); + this.wetNode["connect"](node); + this.dryNode["disconnect"](); + this.dryNode["connect"](node); + }; + DelayEffect.prototype.remove = function () + { + this.inputNode["disconnect"](); + this.mainNode["disconnect"](); + this.delayNode["disconnect"](); + this.delayGainNode["disconnect"](); + this.wetNode["disconnect"](); + this.dryNode["disconnect"](); + }; + DelayEffect.prototype.getInputNode = function () + { + return this.inputNode; + }; + DelayEffect.prototype.setParam = function(param, value, ramp, time) + { + switch (param) { + case 0: // mix + value = value / 100; + if (value < 0) value = 0; + if (value > 1) value = 1; + this.params[2] = value; + setAudioParam(this.wetNode["gain"], value, ramp, time); + setAudioParam(this.dryNode["gain"], 1 - value, ramp, time); + break; + case 4: // filter/delay gain (note value is passed in dB but needs to be linear here) + this.params[1] = dbToLinear(value); + setAudioParam(this.delayGainNode["gain"], dbToLinear(value), ramp, time); + break; + case 5: // delay time + this.params[0] = value; + setAudioParam(this.delayNode["delayTime"], value, ramp, time); + break; + } + }; + function ConvolveEffect(buffer, normalize, mix, src) + { + this.type = "convolve"; + this.params = [normalize, mix, src]; + this.inputNode = createGain(); + this.wetNode = createGain(); + this.wetNode["gain"]["value"] = mix; + this.dryNode = createGain(); + this.dryNode["gain"]["value"] = 1 - mix; + this.convolveNode = context["createConvolver"](); + if (buffer) + { + this.convolveNode["normalize"] = normalize; + this.convolveNode["buffer"] = buffer; + } + this.inputNode["connect"](this.convolveNode); + this.inputNode["connect"](this.dryNode); + this.convolveNode["connect"](this.wetNode); + }; + ConvolveEffect.prototype.connectTo = function (node) + { + this.wetNode["disconnect"](); + this.wetNode["connect"](node); + this.dryNode["disconnect"](); + this.dryNode["connect"](node); + }; + ConvolveEffect.prototype.remove = function () + { + this.inputNode["disconnect"](); + this.convolveNode["disconnect"](); + this.wetNode["disconnect"](); + this.dryNode["disconnect"](); + }; + ConvolveEffect.prototype.getInputNode = function () + { + return this.inputNode; + }; + ConvolveEffect.prototype.setParam = function(param, value, ramp, time) + { + switch (param) { + case 0: // mix + value = value / 100; + if (value < 0) value = 0; + if (value > 1) value = 1; + this.params[1] = value; + setAudioParam(this.wetNode["gain"], value, ramp, time); + setAudioParam(this.dryNode["gain"], 1 - value, ramp, time); + break; + } + }; + function FlangerEffect(delay, modulation, freq, feedback, mix) + { + this.type = "flanger"; + this.params = [delay, modulation, freq, feedback, mix]; + this.inputNode = createGain(); + this.dryNode = createGain(); + this.dryNode["gain"]["value"] = 1 - (mix / 2); + this.wetNode = createGain(); + this.wetNode["gain"]["value"] = mix / 2; + this.feedbackNode = createGain(); + this.feedbackNode["gain"]["value"] = feedback; + this.delayNode = createDelay(delay + modulation); + this.delayNode["delayTime"]["value"] = delay; + this.oscNode = context["createOscillator"](); + this.oscNode["frequency"]["value"] = freq; + this.oscGainNode = createGain(); + this.oscGainNode["gain"]["value"] = modulation; + this.inputNode["connect"](this.delayNode); + this.inputNode["connect"](this.dryNode); + this.delayNode["connect"](this.wetNode); + this.delayNode["connect"](this.feedbackNode); + this.feedbackNode["connect"](this.delayNode); + this.oscNode["connect"](this.oscGainNode); + this.oscGainNode["connect"](this.delayNode["delayTime"]); + startSource(this.oscNode); + }; + FlangerEffect.prototype.connectTo = function (node) + { + this.dryNode["disconnect"](); + this.dryNode["connect"](node); + this.wetNode["disconnect"](); + this.wetNode["connect"](node); + }; + FlangerEffect.prototype.remove = function () + { + this.inputNode["disconnect"](); + this.delayNode["disconnect"](); + this.oscNode["disconnect"](); + this.oscGainNode["disconnect"](); + this.dryNode["disconnect"](); + this.wetNode["disconnect"](); + this.feedbackNode["disconnect"](); + }; + FlangerEffect.prototype.getInputNode = function () + { + return this.inputNode; + }; + FlangerEffect.prototype.setParam = function(param, value, ramp, time) + { + switch (param) { + case 0: // mix + value = value / 100; + if (value < 0) value = 0; + if (value > 1) value = 1; + this.params[4] = value; + setAudioParam(this.wetNode["gain"], value / 2, ramp, time); + setAudioParam(this.dryNode["gain"], 1 - (value / 2), ramp, time); + break; + case 6: // modulation + this.params[1] = value / 1000; + setAudioParam(this.oscGainNode["gain"], value / 1000, ramp, time); + break; + case 7: // modulation frequency + this.params[2] = value; + setAudioParam(this.oscNode["frequency"], value, ramp, time); + break; + case 8: // feedback + this.params[3] = value / 100; + setAudioParam(this.feedbackNode["gain"], value / 100, ramp, time); + break; + } + }; + function PhaserEffect(freq, detune, q, modulation, modfreq, mix) + { + this.type = "phaser"; + this.params = [freq, detune, q, modulation, modfreq, mix]; + this.inputNode = createGain(); + this.dryNode = createGain(); + this.dryNode["gain"]["value"] = 1 - (mix / 2); + this.wetNode = createGain(); + this.wetNode["gain"]["value"] = mix / 2; + this.filterNode = context["createBiquadFilter"](); + if (typeof this.filterNode["type"] === "number") + this.filterNode["type"] = 7; // all-pass + else + this.filterNode["type"] = "allpass"; + this.filterNode["frequency"]["value"] = freq; + if (this.filterNode["detune"]) // iOS 6 doesn't have detune yet + this.filterNode["detune"]["value"] = detune; + this.filterNode["Q"]["value"] = q; + this.oscNode = context["createOscillator"](); + this.oscNode["frequency"]["value"] = modfreq; + this.oscGainNode = createGain(); + this.oscGainNode["gain"]["value"] = modulation; + this.inputNode["connect"](this.filterNode); + this.inputNode["connect"](this.dryNode); + this.filterNode["connect"](this.wetNode); + this.oscNode["connect"](this.oscGainNode); + this.oscGainNode["connect"](this.filterNode["frequency"]); + startSource(this.oscNode); + }; + PhaserEffect.prototype.connectTo = function (node) + { + this.dryNode["disconnect"](); + this.dryNode["connect"](node); + this.wetNode["disconnect"](); + this.wetNode["connect"](node); + }; + PhaserEffect.prototype.remove = function () + { + this.inputNode["disconnect"](); + this.filterNode["disconnect"](); + this.oscNode["disconnect"](); + this.oscGainNode["disconnect"](); + this.dryNode["disconnect"](); + this.wetNode["disconnect"](); + }; + PhaserEffect.prototype.getInputNode = function () + { + return this.inputNode; + }; + PhaserEffect.prototype.setParam = function(param, value, ramp, time) + { + switch (param) { + case 0: // mix + value = value / 100; + if (value < 0) value = 0; + if (value > 1) value = 1; + this.params[5] = value; + setAudioParam(this.wetNode["gain"], value / 2, ramp, time); + setAudioParam(this.dryNode["gain"], 1 - (value / 2), ramp, time); + break; + case 1: // filter frequency + this.params[0] = value; + setAudioParam(this.filterNode["frequency"], value, ramp, time); + break; + case 2: // filter detune + this.params[1] = value; + setAudioParam(this.filterNode["detune"], value, ramp, time); + break; + case 3: // filter Q + this.params[2] = value; + setAudioParam(this.filterNode["Q"], value, ramp, time); + break; + case 6: // modulation + this.params[3] = value; + setAudioParam(this.oscGainNode["gain"], value, ramp, time); + break; + case 7: // modulation frequency + this.params[4] = value; + setAudioParam(this.oscNode["frequency"], value, ramp, time); + break; + } + }; + function GainEffect(g) + { + this.type = "gain"; + this.params = [g]; + this.node = createGain(); + this.node["gain"]["value"] = g; + }; + GainEffect.prototype.connectTo = function (node_) + { + this.node["disconnect"](); + this.node["connect"](node_); + }; + GainEffect.prototype.remove = function () + { + this.node["disconnect"](); + }; + GainEffect.prototype.getInputNode = function () + { + return this.node; + }; + GainEffect.prototype.setParam = function(param, value, ramp, time) + { + switch (param) { + case 4: // gain + this.params[0] = dbToLinear(value); + setAudioParam(this.node["gain"], dbToLinear(value), ramp, time); + break; + } + }; + function TremoloEffect(freq, mix) + { + this.type = "tremolo"; + this.params = [freq, mix]; + this.node = createGain(); + this.node["gain"]["value"] = 1 - (mix / 2); + this.oscNode = context["createOscillator"](); + this.oscNode["frequency"]["value"] = freq; + this.oscGainNode = createGain(); + this.oscGainNode["gain"]["value"] = mix / 2; + this.oscNode["connect"](this.oscGainNode); + this.oscGainNode["connect"](this.node["gain"]); + startSource(this.oscNode); + }; + TremoloEffect.prototype.connectTo = function (node_) + { + this.node["disconnect"](); + this.node["connect"](node_); + }; + TremoloEffect.prototype.remove = function () + { + this.oscNode["disconnect"](); + this.oscGainNode["disconnect"](); + this.node["disconnect"](); + }; + TremoloEffect.prototype.getInputNode = function () + { + return this.node; + }; + TremoloEffect.prototype.setParam = function(param, value, ramp, time) + { + switch (param) { + case 0: // mix + value = value / 100; + if (value < 0) value = 0; + if (value > 1) value = 1; + this.params[1] = value; + setAudioParam(this.node["gain"]["value"], 1 - (value / 2), ramp, time); + setAudioParam(this.oscGainNode["gain"]["value"], value / 2, ramp, time); + break; + case 7: // modulation frequency + this.params[0] = value; + setAudioParam(this.oscNode["frequency"], value, ramp, time); + break; + } + }; + function RingModulatorEffect(freq, mix) + { + this.type = "ringmod"; + this.params = [freq, mix]; + this.inputNode = createGain(); + this.wetNode = createGain(); + this.wetNode["gain"]["value"] = mix; + this.dryNode = createGain(); + this.dryNode["gain"]["value"] = 1 - mix; + this.ringNode = createGain(); + this.ringNode["gain"]["value"] = 0; + this.oscNode = context["createOscillator"](); + this.oscNode["frequency"]["value"] = freq; + this.oscNode["connect"](this.ringNode["gain"]); + startSource(this.oscNode); + this.inputNode["connect"](this.ringNode); + this.inputNode["connect"](this.dryNode); + this.ringNode["connect"](this.wetNode); + }; + RingModulatorEffect.prototype.connectTo = function (node_) + { + this.wetNode["disconnect"](); + this.wetNode["connect"](node_); + this.dryNode["disconnect"](); + this.dryNode["connect"](node_); + }; + RingModulatorEffect.prototype.remove = function () + { + this.oscNode["disconnect"](); + this.ringNode["disconnect"](); + this.inputNode["disconnect"](); + this.wetNode["disconnect"](); + this.dryNode["disconnect"](); + }; + RingModulatorEffect.prototype.getInputNode = function () + { + return this.inputNode; + }; + RingModulatorEffect.prototype.setParam = function(param, value, ramp, time) + { + switch (param) { + case 0: // mix + value = value / 100; + if (value < 0) value = 0; + if (value > 1) value = 1; + this.params[1] = value; + setAudioParam(this.wetNode["gain"], value, ramp, time); + setAudioParam(this.dryNode["gain"], 1 - value, ramp, time); + break; + case 7: // modulation frequency + this.params[0] = value; + setAudioParam(this.oscNode["frequency"], value, ramp, time); + break; + } + }; + function DistortionEffect(threshold, headroom, drive, makeupgain, mix) + { + this.type = "distortion"; + this.params = [threshold, headroom, drive, makeupgain, mix]; + this.inputNode = createGain(); + this.preGain = createGain(); + this.postGain = createGain(); + this.setDrive(drive, dbToLinear_nocap(makeupgain)); + this.wetNode = createGain(); + this.wetNode["gain"]["value"] = mix; + this.dryNode = createGain(); + this.dryNode["gain"]["value"] = 1 - mix; + this.waveShaper = context["createWaveShaper"](); + this.curve = new Float32Array(65536); + this.generateColortouchCurve(threshold, headroom); + this.waveShaper.curve = this.curve; + this.inputNode["connect"](this.preGain); + this.inputNode["connect"](this.dryNode); + this.preGain["connect"](this.waveShaper); + this.waveShaper["connect"](this.postGain); + this.postGain["connect"](this.wetNode); + }; + DistortionEffect.prototype.setDrive = function (drive, makeupgain) + { + if (drive < 0.01) + drive = 0.01; + this.preGain["gain"]["value"] = drive; + this.postGain["gain"]["value"] = Math.pow(1 / drive, 0.6) * makeupgain; + }; + function e4(x, k) + { + return 1.0 - Math.exp(-k * x); + } + DistortionEffect.prototype.shape = function (x, linearThreshold, linearHeadroom) + { + var maximum = 1.05 * linearHeadroom * linearThreshold; + var kk = (maximum - linearThreshold); + var sign = x < 0 ? -1 : +1; + var absx = x < 0 ? -x : x; + var shapedInput = absx < linearThreshold ? absx : linearThreshold + kk * e4(absx - linearThreshold, 1.0 / kk); + shapedInput *= sign; + return shapedInput; + }; + DistortionEffect.prototype.generateColortouchCurve = function (threshold, headroom) + { + var linearThreshold = dbToLinear_nocap(threshold); + var linearHeadroom = dbToLinear_nocap(headroom); + var n = 65536; + var n2 = n / 2; + var x = 0; + for (var i = 0; i < n2; ++i) { + x = i / n2; + x = this.shape(x, linearThreshold, linearHeadroom); + this.curve[n2 + i] = x; + this.curve[n2 - i - 1] = -x; + } + }; + DistortionEffect.prototype.connectTo = function (node) + { + this.wetNode["disconnect"](); + this.wetNode["connect"](node); + this.dryNode["disconnect"](); + this.dryNode["connect"](node); + }; + DistortionEffect.prototype.remove = function () + { + this.inputNode["disconnect"](); + this.preGain["disconnect"](); + this.waveShaper["disconnect"](); + this.postGain["disconnect"](); + this.wetNode["disconnect"](); + this.dryNode["disconnect"](); + }; + DistortionEffect.prototype.getInputNode = function () + { + return this.inputNode; + }; + DistortionEffect.prototype.setParam = function(param, value, ramp, time) + { + switch (param) { + case 0: // mix + value = value / 100; + if (value < 0) value = 0; + if (value > 1) value = 1; + this.params[4] = value; + setAudioParam(this.wetNode["gain"], value, ramp, time); + setAudioParam(this.dryNode["gain"], 1 - value, ramp, time); + break; + } + }; + function CompressorEffect(threshold, knee, ratio, attack, release) + { + this.type = "compressor"; + this.params = [threshold, knee, ratio, attack, release]; + this.node = context["createDynamicsCompressor"](); + try { + this.node["threshold"]["value"] = threshold; + this.node["knee"]["value"] = knee; + this.node["ratio"]["value"] = ratio; + this.node["attack"]["value"] = attack; + this.node["release"]["value"] = release; + } + catch (e) {} + }; + CompressorEffect.prototype.connectTo = function (node_) + { + this.node["disconnect"](); + this.node["connect"](node_); + }; + CompressorEffect.prototype.remove = function () + { + this.node["disconnect"](); + }; + CompressorEffect.prototype.getInputNode = function () + { + return this.node; + }; + CompressorEffect.prototype.setParam = function(param, value, ramp, time) + { + }; + function AnalyserEffect(fftSize, smoothing) + { + this.type = "analyser"; + this.params = [fftSize, smoothing]; + this.node = context["createAnalyser"](); + this.node["fftSize"] = fftSize; + this.node["smoothingTimeConstant"] = smoothing; + this.freqBins = new Float32Array(this.node["frequencyBinCount"]); + this.signal = new Uint8Array(fftSize); + this.peak = 0; + this.rms = 0; + }; + AnalyserEffect.prototype.tick = function () + { + this.node["getFloatFrequencyData"](this.freqBins); + this.node["getByteTimeDomainData"](this.signal); + var fftSize = this.node["fftSize"]; + var i = 0; + this.peak = 0; + var rmsSquaredSum = 0; + var s = 0; + for ( ; i < fftSize; i++) + { + s = (this.signal[i] - 128) / 128; + if (s < 0) + s = -s; + if (this.peak < s) + this.peak = s; + rmsSquaredSum += s * s; + } + this.peak = linearToDb(this.peak); + this.rms = linearToDb(Math.sqrt(rmsSquaredSum / fftSize)); + }; + AnalyserEffect.prototype.connectTo = function (node_) + { + this.node["disconnect"](); + this.node["connect"](node_); + }; + AnalyserEffect.prototype.remove = function () + { + this.node["disconnect"](); + }; + AnalyserEffect.prototype.getInputNode = function () + { + return this.node; + }; + AnalyserEffect.prototype.setParam = function(param, value, ramp, time) + { + }; + function ObjectTracker() + { + this.obj = null; + this.loadUid = 0; + }; + ObjectTracker.prototype.setObject = function (obj_) + { + this.obj = obj_; + }; + ObjectTracker.prototype.hasObject = function () + { + return !!this.obj; + }; + ObjectTracker.prototype.tick = function (dt) + { + }; + function C2AudioBuffer(src_, is_music) + { + this.src = src_; + this.myapi = api; + this.is_music = is_music; + this.added_end_listener = false; + var self = this; + this.outNode = null; + this.mediaSourceNode = null; + this.panWhenReady = []; // for web audio API positioned sounds + this.seekWhenReady = 0; + this.pauseWhenReady = false; + this.supportWebAudioAPI = false; + this.failedToLoad = false; + this.wasEverReady = false; // if a buffer is ever marked as ready, it's permanently considered ready after then. + if (api === API_WEBAUDIO && is_music && !playMusicAsSoundWorkaround) + { + this.myapi = API_HTML5; + this.outNode = createGain(); + } + this.bufferObject = null; // actual audio object + this.audioData = null; // web audio api: ajax request result (compressed audio that needs decoding) + var request; + switch (this.myapi) { + case API_HTML5: + this.bufferObject = new Audio(); + this.bufferObject.crossOrigin = "anonymous"; + this.bufferObject.addEventListener("canplaythrough", function () { + self.wasEverReady = true; // update loaded state so preload is considered complete + }); + if (api === API_WEBAUDIO && context["createMediaElementSource"] && !/wiiu/i.test(navigator.userAgent)) + { + this.supportWebAudioAPI = true; // can be routed through web audio api + this.bufferObject.addEventListener("canplay", function () + { + if (!self.mediaSourceNode && self.bufferObject) + { + self.mediaSourceNode = context["createMediaElementSource"](self.bufferObject); + self.mediaSourceNode["connect"](self.outNode); + } + }); + } + this.bufferObject.autoplay = false; // this is only a source buffer, not an instance + this.bufferObject.preload = "auto"; + this.bufferObject.src = src_; + break; + case API_WEBAUDIO: + if (audRuntime.isWKWebView) + { + audRuntime.fetchLocalFileViaCordovaAsArrayBuffer(src_, function (arrayBuffer) + { + self.audioData = arrayBuffer; + self.decodeAudioBuffer(); + }, function (err) + { + self.failedToLoad = true; + }); + } + else + { + request = new XMLHttpRequest(); + request.open("GET", src_, true); + request.responseType = "arraybuffer"; + request.onload = function () { + self.audioData = request.response; + self.decodeAudioBuffer(); + }; + request.onerror = function () { + self.failedToLoad = true; + }; + request.send(); + } + break; + case API_CORDOVA: + this.bufferObject = true; + break; + case API_APPMOBI: + this.bufferObject = true; + break; + } + }; + C2AudioBuffer.prototype.release = function () + { + var i, len, j, a; + for (i = 0, j = 0, len = audioInstances.length; i < len; ++i) + { + a = audioInstances[i]; + audioInstances[j] = a; + if (a.buffer === this) + a.stop(); + else + ++j; // keep + } + audioInstances.length = j; + if (this.mediaSourceNode) + { + this.mediaSourceNode["disconnect"](); + this.mediaSourceNode = null; + } + if (this.outNode) + { + this.outNode["disconnect"](); + this.outNode = null; + } + this.bufferObject = null; + this.audioData = null; + }; + C2AudioBuffer.prototype.decodeAudioBuffer = function () + { + if (this.bufferObject || !this.audioData) + return; // audio already decoded or AJAX request not yet complete + var self = this; + if (context["decodeAudioData"]) + { + context["decodeAudioData"](this.audioData, function (buffer) { + self.bufferObject = buffer; + self.audioData = null; // clear AJAX response to allow GC and save memory, only need the bufferObject now + var p, i, len, a; + if (!cr.is_undefined(self.playTagWhenReady) && !silent) + { + if (self.panWhenReady.length) + { + for (i = 0, len = self.panWhenReady.length; i < len; i++) + { + p = self.panWhenReady[i]; + a = new C2AudioInstance(self, p.thistag); + a.setPannerEnabled(true); + if (typeof p.objUid !== "undefined") + { + p.obj = audRuntime.getObjectByUID(p.objUid); + if (!p.obj) + continue; + } + if (p.obj) + { + var px = cr.rotatePtAround(p.obj.x, p.obj.y, -p.obj.layer.getAngle(), listenerX, listenerY, true); + var py = cr.rotatePtAround(p.obj.x, p.obj.y, -p.obj.layer.getAngle(), listenerX, listenerY, false); + a.setPan(px, py, cr.to_degrees(p.obj.angle - p.obj.layer.getAngle()), p.ia, p.oa, p.og); + a.setObject(p.obj); + } + else + { + a.setPan(p.x, p.y, p.a, p.ia, p.oa, p.og); + } + a.play(self.loopWhenReady, self.volumeWhenReady, self.seekWhenReady); + if (self.pauseWhenReady) + a.pause(); + audioInstances.push(a); + } + cr.clearArray(self.panWhenReady); + } + else + { + a = new C2AudioInstance(self, self.playTagWhenReady || ""); // sometimes playTagWhenReady is not set - TODO: why? + a.play(self.loopWhenReady, self.volumeWhenReady, self.seekWhenReady); + if (self.pauseWhenReady) + a.pause(); + audioInstances.push(a); + } + } + else if (!cr.is_undefined(self.convolveWhenReady)) + { + var convolveNode = self.convolveWhenReady.convolveNode; + convolveNode["normalize"] = self.normalizeWhenReady; + convolveNode["buffer"] = buffer; + } + }, function (e) { + self.failedToLoad = true; + }); + } + else + { + this.bufferObject = context["createBuffer"](this.audioData, false); + this.audioData = null; // clear AJAX response to allow GC and save memory, only need the bufferObject now + if (!cr.is_undefined(this.playTagWhenReady) && !silent) + { + var a = new C2AudioInstance(this, this.playTagWhenReady); + a.play(this.loopWhenReady, this.volumeWhenReady, this.seekWhenReady); + if (this.pauseWhenReady) + a.pause(); + audioInstances.push(a); + } + else if (!cr.is_undefined(this.convolveWhenReady)) + { + var convolveNode = this.convolveWhenReady.convolveNode; + convolveNode["normalize"] = this.normalizeWhenReady; + convolveNode["buffer"] = this.bufferObject; + } + } + }; + C2AudioBuffer.prototype.isLoaded = function () + { + switch (this.myapi) { + case API_HTML5: + var ret = this.bufferObject["readyState"] >= 4; // HAVE_ENOUGH_DATA + if (ret) + this.wasEverReady = true; + return ret || this.wasEverReady; + case API_WEBAUDIO: + return !!this.audioData || !!this.bufferObject; + case API_CORDOVA: + return true; + case API_APPMOBI: + return true; + } + return false; + }; + C2AudioBuffer.prototype.isLoadedAndDecoded = function () + { + switch (this.myapi) { + case API_HTML5: + return this.isLoaded(); // no distinction between loaded and decoded in HTML5 audio, just rely on ready state + case API_WEBAUDIO: + return !!this.bufferObject; + case API_CORDOVA: + return true; + case API_APPMOBI: + return true; + } + return false; + }; + C2AudioBuffer.prototype.hasFailedToLoad = function () + { + switch (this.myapi) { + case API_HTML5: + return !!this.bufferObject["error"]; + case API_WEBAUDIO: + return this.failedToLoad; + } + return false; + }; + function C2AudioInstance(buffer_, tag_) + { + var self = this; + this.tag = tag_; + this.fresh = true; + this.stopped = true; + this.src = buffer_.src; + this.buffer = buffer_; + this.myapi = api; + this.is_music = buffer_.is_music; + this.playbackRate = 1; + this.hasPlaybackEnded = true; // ended flag + this.resume_me = false; // make sure resumes when leaving suspend + this.is_paused = false; + this.resume_position = 0; // for web audio api to resume from correct playback position + this.looping = false; + this.is_muted = false; + this.is_silent = false; + this.volume = 1; + this.onended_handler = function (e) + { + if (self.is_paused || self.resume_me) + return; + var bufferThatEnded = this; + if (!bufferThatEnded) + bufferThatEnded = e.target; + if (bufferThatEnded !== self.active_buffer) + return; + self.hasPlaybackEnded = true; + self.stopped = true; + audTag = self.tag; + audRuntime.trigger(cr.plugins_.Audio.prototype.cnds.OnEnded, audInst); + }; + this.active_buffer = null; + this.isTimescaled = ((timescale_mode === 1 && !this.is_music) || timescale_mode === 2); + this.mutevol = 1; + this.startTime = (this.isTimescaled ? audRuntime.kahanTime.sum : audRuntime.wallTime.sum); + this.gainNode = null; + this.pannerNode = null; + this.pannerEnabled = false; + this.objectTracker = null; + this.panX = 0; + this.panY = 0; + this.panAngle = 0; + this.panConeInner = 0; + this.panConeOuter = 0; + this.panConeOuterGain = 0; + this.instanceObject = null; + var add_end_listener = false; + if (this.myapi === API_WEBAUDIO && this.buffer.myapi === API_HTML5 && !this.buffer.supportWebAudioAPI) + this.myapi = API_HTML5; + switch (this.myapi) { + case API_HTML5: + if (this.is_music) + { + this.instanceObject = buffer_.bufferObject; + add_end_listener = !buffer_.added_end_listener; + buffer_.added_end_listener = true; + } + else + { + this.instanceObject = new Audio(); + this.instanceObject.crossOrigin = "anonymous"; + this.instanceObject.autoplay = false; + this.instanceObject.src = buffer_.bufferObject.src; + add_end_listener = true; + } + if (add_end_listener) + { + this.instanceObject.addEventListener('ended', function () { + audTag = self.tag; + self.stopped = true; + audRuntime.trigger(cr.plugins_.Audio.prototype.cnds.OnEnded, audInst); + }); + } + break; + case API_WEBAUDIO: + this.gainNode = createGain(); + this.gainNode["connect"](getDestinationForTag(tag_)); + if (this.buffer.myapi === API_WEBAUDIO) + { + if (buffer_.bufferObject) + { + this.instanceObject = context["createBufferSource"](); + this.instanceObject["buffer"] = buffer_.bufferObject; + this.instanceObject["connect"](this.gainNode); + } + } + else + { + this.instanceObject = this.buffer.bufferObject; // reference the audio element + this.buffer.outNode["connect"](this.gainNode); + if (!this.buffer.added_end_listener) + { + this.buffer.added_end_listener = true; + this.buffer.bufferObject.addEventListener('ended', function () { + audTag = self.tag; + self.stopped = true; + audRuntime.trigger(cr.plugins_.Audio.prototype.cnds.OnEnded, audInst); + }); + } + } + break; + case API_CORDOVA: + this.instanceObject = new window["Media"](appPath + this.src, null, null, function (status) { + if (status === window["Media"]["MEDIA_STOPPED"]) + { + self.hasPlaybackEnded = true; + self.stopped = true; + audTag = self.tag; + audRuntime.trigger(cr.plugins_.Audio.prototype.cnds.OnEnded, audInst); + } + }); + break; + case API_APPMOBI: + this.instanceObject = true; + break; + } + }; + C2AudioInstance.prototype.hasEnded = function () + { + var time; + switch (this.myapi) { + case API_HTML5: + return this.instanceObject.ended; + case API_WEBAUDIO: + if (this.buffer.myapi === API_WEBAUDIO) + { + if (!this.fresh && !this.stopped && this.instanceObject["loop"]) + return false; + if (this.is_paused) + return false; + return this.hasPlaybackEnded; + } + else + return this.instanceObject.ended; + case API_CORDOVA: + return this.hasPlaybackEnded; + case API_APPMOBI: + true; // recycling an AppMobi sound does not matter because it will just do another throwaway playSound + } + return true; + }; + C2AudioInstance.prototype.canBeRecycled = function () + { + if (this.fresh || this.stopped) + return true; // not yet used or is not playing + return this.hasEnded(); + }; + C2AudioInstance.prototype.setPannerEnabled = function (enable_) + { + if (api !== API_WEBAUDIO) + return; + if (!this.pannerEnabled && enable_) + { + if (!this.gainNode) + return; + if (!this.pannerNode) + { + this.pannerNode = context["createPanner"](); + if (typeof this.pannerNode["panningModel"] === "number") + this.pannerNode["panningModel"] = panningModel; + else + this.pannerNode["panningModel"] = ["equalpower", "HRTF", "soundfield"][panningModel]; + if (typeof this.pannerNode["distanceModel"] === "number") + this.pannerNode["distanceModel"] = distanceModel; + else + this.pannerNode["distanceModel"] = ["linear", "inverse", "exponential"][distanceModel]; + this.pannerNode["refDistance"] = refDistance; + this.pannerNode["maxDistance"] = maxDistance; + this.pannerNode["rolloffFactor"] = rolloffFactor; + } + this.gainNode["disconnect"](); + this.gainNode["connect"](this.pannerNode); + this.pannerNode["connect"](getDestinationForTag(this.tag)); + this.pannerEnabled = true; + } + else if (this.pannerEnabled && !enable_) + { + if (!this.gainNode) + return; + this.pannerNode["disconnect"](); + this.gainNode["disconnect"](); + this.gainNode["connect"](getDestinationForTag(this.tag)); + this.pannerEnabled = false; + } + }; + C2AudioInstance.prototype.setPan = function (x, y, angle, innerangle, outerangle, outergain) + { + if (!this.pannerEnabled || api !== API_WEBAUDIO) + return; + this.pannerNode["setPosition"](x, y, 0); + this.pannerNode["setOrientation"](Math.cos(cr.to_radians(angle)), Math.sin(cr.to_radians(angle)), 0); + this.pannerNode["coneInnerAngle"] = innerangle; + this.pannerNode["coneOuterAngle"] = outerangle; + this.pannerNode["coneOuterGain"] = outergain; + this.panX = x; + this.panY = y; + this.panAngle = angle; + this.panConeInner = innerangle; + this.panConeOuter = outerangle; + this.panConeOuterGain = outergain; + }; + C2AudioInstance.prototype.setObject = function (o) + { + if (!this.pannerEnabled || api !== API_WEBAUDIO) + return; + if (!this.objectTracker) + this.objectTracker = new ObjectTracker(); + this.objectTracker.setObject(o); + }; + C2AudioInstance.prototype.tick = function (dt) + { + if (!this.pannerEnabled || api !== API_WEBAUDIO || !this.objectTracker || !this.objectTracker.hasObject() || !this.isPlaying()) + { + return; + } + this.objectTracker.tick(dt); + var inst = this.objectTracker.obj; + var px = cr.rotatePtAround(inst.x, inst.y, -inst.layer.getAngle(), listenerX, listenerY, true); + var py = cr.rotatePtAround(inst.x, inst.y, -inst.layer.getAngle(), listenerX, listenerY, false); + this.pannerNode["setPosition"](px, py, 0); + var a = 0; + if (typeof this.objectTracker.obj.angle !== "undefined") + { + a = inst.angle - inst.layer.getAngle(); + this.pannerNode["setOrientation"](Math.cos(a), Math.sin(a), 0); + } + }; + C2AudioInstance.prototype.play = function (looping, vol, fromPosition, scheduledTime) + { + var instobj = this.instanceObject; + this.looping = looping; + this.volume = vol; + var seekPos = fromPosition || 0; + scheduledTime = scheduledTime || 0; + switch (this.myapi) { + case API_HTML5: + if (instobj.playbackRate !== 1.0) + instobj.playbackRate = 1.0; + if (instobj.volume !== vol * masterVolume) + instobj.volume = vol * masterVolume; + if (instobj.loop !== looping) + instobj.loop = looping; + if (instobj.muted) + instobj.muted = false; + if (instobj.currentTime !== seekPos) + { + try { + instobj.currentTime = seekPos; + } + catch (err) + { +; + } + } + tryPlayAudioElement(this); + break; + case API_WEBAUDIO: + this.muted = false; + this.mutevol = 1; + if (this.buffer.myapi === API_WEBAUDIO) + { + this.gainNode["gain"]["value"] = vol * masterVolume; + if (!this.fresh) + { + this.instanceObject = context["createBufferSource"](); + this.instanceObject["buffer"] = this.buffer.bufferObject; + this.instanceObject["connect"](this.gainNode); + } + this.instanceObject["onended"] = this.onended_handler; + this.active_buffer = this.instanceObject; + this.instanceObject.loop = looping; + this.hasPlaybackEnded = false; + if (seekPos === 0) + startSource(this.instanceObject, scheduledTime); + else + startSourceAt(this.instanceObject, seekPos, this.getDuration(), scheduledTime); + } + else + { + if (instobj.playbackRate !== 1.0) + instobj.playbackRate = 1.0; + if (instobj.loop !== looping) + instobj.loop = looping; + instobj.volume = vol * masterVolume; + if (instobj.currentTime !== seekPos) + { + try { + instobj.currentTime = seekPos; + } + catch (err) + { +; + } + } + tryPlayAudioElement(this); + } + break; + case API_CORDOVA: + if ((!this.fresh && this.stopped) || seekPos !== 0) + instobj["seekTo"](seekPos); + instobj["play"](); + this.hasPlaybackEnded = false; + break; + case API_APPMOBI: + if (audRuntime.isDirectCanvas) + AppMobi["context"]["playSound"](this.src, looping); + else + AppMobi["player"]["playSound"](this.src, looping); + break; + } + this.playbackRate = 1; + this.startTime = (this.isTimescaled ? audRuntime.kahanTime.sum : audRuntime.wallTime.sum) - seekPos; + this.fresh = false; + this.stopped = false; + this.is_paused = false; + }; + C2AudioInstance.prototype.stop = function () + { + switch (this.myapi) { + case API_HTML5: + if (!this.instanceObject.paused) + this.instanceObject.pause(); + break; + case API_WEBAUDIO: + if (this.buffer.myapi === API_WEBAUDIO) + stopSource(this.instanceObject); + else + { + if (!this.instanceObject.paused) + this.instanceObject.pause(); + } + break; + case API_CORDOVA: + this.instanceObject["stop"](); + break; + case API_APPMOBI: + if (audRuntime.isDirectCanvas) + AppMobi["context"]["stopSound"](this.src); + break; + } + this.stopped = true; + this.is_paused = false; + }; + C2AudioInstance.prototype.pause = function () + { + if (this.fresh || this.stopped || this.hasEnded() || this.is_paused) + return; + switch (this.myapi) { + case API_HTML5: + if (!this.instanceObject.paused) + this.instanceObject.pause(); + break; + case API_WEBAUDIO: + if (this.buffer.myapi === API_WEBAUDIO) + { + this.resume_position = this.getPlaybackTime(true); + if (this.looping) + this.resume_position = this.resume_position % this.getDuration(); + this.is_paused = true; + stopSource(this.instanceObject); + } + else + { + if (!this.instanceObject.paused) + this.instanceObject.pause(); + } + break; + case API_CORDOVA: + this.instanceObject["pause"](); + break; + case API_APPMOBI: + if (audRuntime.isDirectCanvas) + AppMobi["context"]["stopSound"](this.src); + break; + } + this.is_paused = true; + }; + C2AudioInstance.prototype.resume = function () + { + if (this.fresh || this.stopped || this.hasEnded() || !this.is_paused) + return; + switch (this.myapi) { + case API_HTML5: + tryPlayAudioElement(this); + break; + case API_WEBAUDIO: + if (this.buffer.myapi === API_WEBAUDIO) + { + this.instanceObject = context["createBufferSource"](); + this.instanceObject["buffer"] = this.buffer.bufferObject; + this.instanceObject["connect"](this.gainNode); + this.instanceObject["onended"] = this.onended_handler; + this.active_buffer = this.instanceObject; + this.instanceObject.loop = this.looping; + this.gainNode["gain"]["value"] = masterVolume * this.volume * this.mutevol; + this.updatePlaybackRate(); + this.startTime = (this.isTimescaled ? audRuntime.kahanTime.sum : audRuntime.wallTime.sum) - (this.resume_position / (this.playbackRate || 0.001)); + startSourceAt(this.instanceObject, this.resume_position, this.getDuration()); + } + else + { + tryPlayAudioElement(this); + } + break; + case API_CORDOVA: + this.instanceObject["play"](); + break; + case API_APPMOBI: + if (audRuntime.isDirectCanvas) + AppMobi["context"]["resumeSound"](this.src); + break; + } + this.is_paused = false; + }; + C2AudioInstance.prototype.seek = function (pos) + { + if (this.fresh || this.stopped || this.hasEnded()) + return; + switch (this.myapi) { + case API_HTML5: + try { + this.instanceObject.currentTime = pos; + } + catch (e) {} + break; + case API_WEBAUDIO: + if (this.buffer.myapi === API_WEBAUDIO) + { + if (this.is_paused) + this.resume_position = pos; + else + { + this.pause(); + this.resume_position = pos; + this.resume(); + } + } + else + { + try { + this.instanceObject.currentTime = pos; + } + catch (e) {} + } + break; + case API_CORDOVA: + break; + case API_APPMOBI: + if (audRuntime.isDirectCanvas) + AppMobi["context"]["seekSound"](this.src, pos); + break; + } + }; + C2AudioInstance.prototype.reconnect = function (toNode) + { + if (this.myapi !== API_WEBAUDIO) + return; + if (this.pannerEnabled) + { + this.pannerNode["disconnect"](); + this.pannerNode["connect"](toNode); + } + else + { + this.gainNode["disconnect"](); + this.gainNode["connect"](toNode); + } + }; + C2AudioInstance.prototype.getDuration = function (applyPlaybackRate) + { + var ret = 0; + switch (this.myapi) { + case API_HTML5: + if (typeof this.instanceObject.duration !== "undefined") + ret = this.instanceObject.duration; + break; + case API_WEBAUDIO: + ret = this.buffer.bufferObject["duration"]; + break; + case API_CORDOVA: + ret = this.instanceObject["getDuration"](); + break; + case API_APPMOBI: + if (audRuntime.isDirectCanvas) + ret = AppMobi["context"]["getDurationSound"](this.src); + break; + } + if (applyPlaybackRate) + ret /= (this.playbackRate || 0.001); // avoid divide-by-zero + return ret; + }; + C2AudioInstance.prototype.getPlaybackTime = function (applyPlaybackRate) + { + var duration = this.getDuration(); + var ret = 0; + switch (this.myapi) { + case API_HTML5: + if (typeof this.instanceObject.currentTime !== "undefined") + ret = this.instanceObject.currentTime; + break; + case API_WEBAUDIO: + if (this.buffer.myapi === API_WEBAUDIO) + { + if (this.is_paused) + return this.resume_position; + else + ret = (this.isTimescaled ? audRuntime.kahanTime.sum : audRuntime.wallTime.sum) - this.startTime; + } + else if (typeof this.instanceObject.currentTime !== "undefined") + ret = this.instanceObject.currentTime; + break; + case API_CORDOVA: + break; + case API_APPMOBI: + if (audRuntime.isDirectCanvas) + ret = AppMobi["context"]["getPlaybackTimeSound"](this.src); + break; + } + if (applyPlaybackRate) + ret *= this.playbackRate; + if (!this.looping && ret > duration) + ret = duration; + return ret; + }; + C2AudioInstance.prototype.isPlaying = function () + { + return !this.is_paused && !this.fresh && !this.stopped && !this.hasEnded(); + }; + C2AudioInstance.prototype.shouldSave = function () + { + return !this.fresh && !this.stopped && !this.hasEnded(); + }; + C2AudioInstance.prototype.setVolume = function (v) + { + this.volume = v; + this.updateVolume(); + }; + C2AudioInstance.prototype.updateVolume = function () + { + var volToSet = this.volume * masterVolume; + if (!isFinite(volToSet)) + volToSet = 0; // HTMLMediaElement throws if setting non-finite volume + switch (this.myapi) { + case API_HTML5: + if (typeof this.instanceObject.volume !== "undefined" && this.instanceObject.volume !== volToSet) + this.instanceObject.volume = volToSet; + break; + case API_WEBAUDIO: + if (this.buffer.myapi === API_WEBAUDIO) + { + this.gainNode["gain"]["value"] = volToSet * this.mutevol; + } + else + { + if (typeof this.instanceObject.volume !== "undefined" && this.instanceObject.volume !== volToSet) + this.instanceObject.volume = volToSet; + } + break; + case API_CORDOVA: + break; + case API_APPMOBI: + break; + } + }; + C2AudioInstance.prototype.getVolume = function () + { + return this.volume; + }; + C2AudioInstance.prototype.doSetMuted = function (m) + { + switch (this.myapi) { + case API_HTML5: + if (this.instanceObject.muted !== !!m) + this.instanceObject.muted = !!m; + break; + case API_WEBAUDIO: + if (this.buffer.myapi === API_WEBAUDIO) + { + this.mutevol = (m ? 0 : 1); + this.gainNode["gain"]["value"] = masterVolume * this.volume * this.mutevol; + } + else + { + if (this.instanceObject.muted !== !!m) + this.instanceObject.muted = !!m; + } + break; + case API_CORDOVA: + break; + case API_APPMOBI: + break; + } + }; + C2AudioInstance.prototype.setMuted = function (m) + { + this.is_muted = !!m; + this.doSetMuted(this.is_muted || this.is_silent); + }; + C2AudioInstance.prototype.setSilent = function (m) + { + this.is_silent = !!m; + this.doSetMuted(this.is_muted || this.is_silent); + }; + C2AudioInstance.prototype.setLooping = function (l) + { + this.looping = l; + switch (this.myapi) { + case API_HTML5: + if (this.instanceObject.loop !== !!l) + this.instanceObject.loop = !!l; + break; + case API_WEBAUDIO: + if (this.instanceObject.loop !== !!l) + this.instanceObject.loop = !!l; + break; + case API_CORDOVA: + break; + case API_APPMOBI: + if (audRuntime.isDirectCanvas) + AppMobi["context"]["setLoopingSound"](this.src, l); + break; + } + }; + C2AudioInstance.prototype.setPlaybackRate = function (r) + { + this.playbackRate = r; + this.updatePlaybackRate(); + }; + C2AudioInstance.prototype.updatePlaybackRate = function () + { + var r = this.playbackRate; + if (this.isTimescaled) + r *= audRuntime.timescale; + switch (this.myapi) { + case API_HTML5: + if (this.instanceObject.playbackRate !== r) + this.instanceObject.playbackRate = r; + break; + case API_WEBAUDIO: + if (this.buffer.myapi === API_WEBAUDIO) + { + if (this.instanceObject["playbackRate"]["value"] !== r) + this.instanceObject["playbackRate"]["value"] = r; + } + else + { + if (this.instanceObject.playbackRate !== r) + this.instanceObject.playbackRate = r; + } + break; + case API_CORDOVA: + break; + case API_APPMOBI: + break; + } + }; + C2AudioInstance.prototype.setSuspended = function (s) + { + switch (this.myapi) { + case API_HTML5: + if (s) + { + if (this.isPlaying()) + { + this.resume_me = true; + this.instanceObject["pause"](); + } + else + this.resume_me = false; + } + else + { + if (this.resume_me) + { + this.instanceObject["play"](); + this.resume_me = false; + } + } + break; + case API_WEBAUDIO: + if (s) + { + if (this.isPlaying()) + { + this.resume_me = true; + if (this.buffer.myapi === API_WEBAUDIO) + { + this.resume_position = this.getPlaybackTime(true); + if (this.looping) + this.resume_position = this.resume_position % this.getDuration(); + stopSource(this.instanceObject); + } + else + this.instanceObject["pause"](); + } + else + this.resume_me = false; + } + else + { + if (this.resume_me) + { + if (this.buffer.myapi === API_WEBAUDIO) + { + this.instanceObject = context["createBufferSource"](); + this.instanceObject["buffer"] = this.buffer.bufferObject; + this.instanceObject["connect"](this.gainNode); + this.instanceObject["onended"] = this.onended_handler; + this.active_buffer = this.instanceObject; + this.instanceObject.loop = this.looping; + this.gainNode["gain"]["value"] = masterVolume * this.volume * this.mutevol; + this.updatePlaybackRate(); + this.startTime = (this.isTimescaled ? audRuntime.kahanTime.sum : audRuntime.wallTime.sum) - (this.resume_position / (this.playbackRate || 0.001)); + startSourceAt(this.instanceObject, this.resume_position, this.getDuration()); + } + else + { + this.instanceObject["play"](); + } + this.resume_me = false; + } + } + break; + case API_CORDOVA: + if (s) + { + if (this.isPlaying()) + { + this.instanceObject["pause"](); + this.resume_me = true; + } + else + this.resume_me = false; + } + else + { + if (this.resume_me) + { + this.resume_me = false; + this.instanceObject["play"](); + } + } + break; + case API_APPMOBI: + break; + } + }; + pluginProto.Instance = function(type) + { + this.type = type; + this.runtime = type.runtime; + audRuntime = this.runtime; + audInst = this; + this.listenerTracker = null; + this.listenerZ = -600; + if (this.runtime.isWKWebView) + playMusicAsSoundWorkaround = true; + if ((this.runtime.isiOS || (this.runtime.isAndroid && (this.runtime.isChrome || this.runtime.isAndroidStockBrowser))) && !this.runtime.isCrosswalk && !this.runtime.isDomFree && !this.runtime.isAmazonWebApp && !playMusicAsSoundWorkaround) + { + useNextTouchWorkaround = true; + } + context = null; + if (typeof AudioContext !== "undefined") + { + api = API_WEBAUDIO; + context = new AudioContext(); + } + else if (typeof webkitAudioContext !== "undefined") + { + api = API_WEBAUDIO; + context = new webkitAudioContext(); + } + if (this.runtime.isiOS && context) + { + if (context.close) + context.close(); + if (typeof AudioContext !== "undefined") + context = new AudioContext(); + else if (typeof webkitAudioContext !== "undefined") + context = new webkitAudioContext(); + } + if (api !== API_WEBAUDIO) + { + if (this.runtime.isCordova && typeof window["Media"] !== "undefined") + api = API_CORDOVA; + else if (this.runtime.isAppMobi) + api = API_APPMOBI; + } + if (api === API_CORDOVA) + { + appPath = location.href; + var i = appPath.lastIndexOf("/"); + if (i > -1) + appPath = appPath.substr(0, i + 1); + appPath = appPath.replace("file://", ""); + } + if (this.runtime.isSafari && this.runtime.isWindows && typeof Audio === "undefined") + { + alert("It looks like you're using Safari for Windows without Quicktime. Audio cannot be played until Quicktime is installed."); + this.runtime.DestroyInstance(this); + } + else + { + if (this.runtime.isDirectCanvas) + useOgg = this.runtime.isAndroid; // AAC on iOS, OGG on Android + else + { + try { + useOgg = !!(new Audio().canPlayType('audio/ogg; codecs="vorbis"')) && + !this.runtime.isWindows10; + } + catch (e) + { + useOgg = false; + } + } + switch (api) { + case API_HTML5: +; + break; + case API_WEBAUDIO: +; + break; + case API_CORDOVA: +; + break; + case API_APPMOBI: +; + break; + default: +; + } + this.runtime.tickMe(this); + } + }; + var instanceProto = pluginProto.Instance.prototype; + instanceProto.onCreate = function () + { + this.runtime.audioInstance = this; + timescale_mode = this.properties[0]; // 0 = off, 1 = sounds only, 2 = all + this.saveload = this.properties[1]; // 0 = all, 1 = sounds only, 2 = music only, 3 = none + this.playinbackground = (this.properties[2] !== 0); + this.nextPlayTime = 0; + panningModel = this.properties[3]; // 0 = equalpower, 1 = hrtf, 3 = soundfield + distanceModel = this.properties[4]; // 0 = linear, 1 = inverse, 2 = exponential + this.listenerZ = -this.properties[5]; + refDistance = this.properties[6]; + maxDistance = this.properties[7]; + rolloffFactor = this.properties[8]; + this.listenerTracker = new ObjectTracker(); + var draw_width = (this.runtime.draw_width || this.runtime.width); + var draw_height = (this.runtime.draw_height || this.runtime.height); + if (api === API_WEBAUDIO) + { + context["listener"]["setPosition"](draw_width / 2, draw_height / 2, this.listenerZ); + context["listener"]["setOrientation"](0, 0, 1, 0, -1, 0); + window["c2OnAudioMicStream"] = function (localMediaStream, tag) + { + if (micSource) + micSource["disconnect"](); + micTag = tag.toLowerCase(); + micSource = context["createMediaStreamSource"](localMediaStream); + micSource["connect"](getDestinationForTag(micTag)); + }; + } + this.runtime.addSuspendCallback(function(s) + { + audInst.onSuspend(s); + }); + var self = this; + this.runtime.addDestroyCallback(function (inst) + { + self.onInstanceDestroyed(inst); + }); + }; + instanceProto.onInstanceDestroyed = function (inst) + { + var i, len, a; + for (i = 0, len = audioInstances.length; i < len; i++) + { + a = audioInstances[i]; + if (a.objectTracker) + { + if (a.objectTracker.obj === inst) + { + a.objectTracker.obj = null; + if (a.pannerEnabled && a.isPlaying() && a.looping) + a.stop(); + } + } + } + if (this.listenerTracker.obj === inst) + this.listenerTracker.obj = null; + }; + instanceProto.saveToJSON = function () + { + var o = { + "silent": silent, + "masterVolume": masterVolume, + "listenerZ": this.listenerZ, + "listenerUid": this.listenerTracker.hasObject() ? this.listenerTracker.obj.uid : -1, + "playing": [], + "effects": {} + }; + var playingarr = o["playing"]; + var i, len, a, d, p, panobj, playbackTime; + for (i = 0, len = audioInstances.length; i < len; i++) + { + a = audioInstances[i]; + if (!a.shouldSave()) + continue; // no need to save stopped sounds + if (this.saveload === 3) // not saving/loading any sounds/music + continue; + if (a.is_music && this.saveload === 1) // not saving/loading music + continue; + if (!a.is_music && this.saveload === 2) // not saving/loading sound + continue; + playbackTime = a.getPlaybackTime(); + if (a.looping) + playbackTime = playbackTime % a.getDuration(); + d = { + "tag": a.tag, + "buffersrc": a.buffer.src, + "is_music": a.is_music, + "playbackTime": playbackTime, + "volume": a.volume, + "looping": a.looping, + "muted": a.is_muted, + "playbackRate": a.playbackRate, + "paused": a.is_paused, + "resume_position": a.resume_position + }; + if (a.pannerEnabled) + { + d["pan"] = {}; + panobj = d["pan"]; + if (a.objectTracker && a.objectTracker.hasObject()) + { + panobj["objUid"] = a.objectTracker.obj.uid; + } + else + { + panobj["x"] = a.panX; + panobj["y"] = a.panY; + panobj["a"] = a.panAngle; + } + panobj["ia"] = a.panConeInner; + panobj["oa"] = a.panConeOuter; + panobj["og"] = a.panConeOuterGain; + } + playingarr.push(d); + } + var fxobj = o["effects"]; + var fxarr; + for (p in effects) + { + if (effects.hasOwnProperty(p)) + { + fxarr = []; + for (i = 0, len = effects[p].length; i < len; i++) + { + fxarr.push({ "type": effects[p][i].type, "params": effects[p][i].params }); + } + fxobj[p] = fxarr; + } + } + return o; + }; + var objectTrackerUidsToLoad = []; + instanceProto.loadFromJSON = function (o) + { + var setSilent = o["silent"]; + masterVolume = o["masterVolume"]; + this.listenerZ = o["listenerZ"]; + this.listenerTracker.setObject(null); + var listenerUid = o["listenerUid"]; + if (listenerUid !== -1) + { + this.listenerTracker.loadUid = listenerUid; + objectTrackerUidsToLoad.push(this.listenerTracker); + } + var playingarr = o["playing"]; + var i, len, d, src, is_music, tag, playbackTime, looping, vol, b, a, p, pan, panObjUid; + if (this.saveload !== 3) + { + for (i = 0, len = audioInstances.length; i < len; i++) + { + a = audioInstances[i]; + if (a.is_music && this.saveload === 1) + continue; // only saving/loading sound: leave music playing + if (!a.is_music && this.saveload === 2) + continue; // only saving/loading music: leave sound playing + a.stop(); + } + } + var fxarr, fxtype, fxparams, fx; + for (p in effects) + { + if (effects.hasOwnProperty(p)) + { + for (i = 0, len = effects[p].length; i < len; i++) + effects[p][i].remove(); + } + } + cr.wipe(effects); + for (p in o["effects"]) + { + if (o["effects"].hasOwnProperty(p)) + { + fxarr = o["effects"][p]; + for (i = 0, len = fxarr.length; i < len; i++) + { + fxtype = fxarr[i]["type"]; + fxparams = fxarr[i]["params"]; + switch (fxtype) { + case "filter": + addEffectForTag(p, new FilterEffect(fxparams[0], fxparams[1], fxparams[2], fxparams[3], fxparams[4], fxparams[5])); + break; + case "delay": + addEffectForTag(p, new DelayEffect(fxparams[0], fxparams[1], fxparams[2])); + break; + case "convolve": + src = fxparams[2]; + b = this.getAudioBuffer(src, false); + if (b.bufferObject) + { + fx = new ConvolveEffect(b.bufferObject, fxparams[0], fxparams[1], src); + } + else + { + fx = new ConvolveEffect(null, fxparams[0], fxparams[1], src); + b.normalizeWhenReady = fxparams[0]; + b.convolveWhenReady = fx; + } + addEffectForTag(p, fx); + break; + case "flanger": + addEffectForTag(p, new FlangerEffect(fxparams[0], fxparams[1], fxparams[2], fxparams[3], fxparams[4])); + break; + case "phaser": + addEffectForTag(p, new PhaserEffect(fxparams[0], fxparams[1], fxparams[2], fxparams[3], fxparams[4], fxparams[5])); + break; + case "gain": + addEffectForTag(p, new GainEffect(fxparams[0])); + break; + case "tremolo": + addEffectForTag(p, new TremoloEffect(fxparams[0], fxparams[1])); + break; + case "ringmod": + addEffectForTag(p, new RingModulatorEffect(fxparams[0], fxparams[1])); + break; + case "distortion": + addEffectForTag(p, new DistortionEffect(fxparams[0], fxparams[1], fxparams[2], fxparams[3], fxparams[4])); + break; + case "compressor": + addEffectForTag(p, new CompressorEffect(fxparams[0], fxparams[1], fxparams[2], fxparams[3], fxparams[4])); + break; + case "analyser": + addEffectForTag(p, new AnalyserEffect(fxparams[0], fxparams[1])); + break; + } + } + } + } + for (i = 0, len = playingarr.length; i < len; i++) + { + if (this.saveload === 3) // not saving/loading any sounds/music + continue; + d = playingarr[i]; + src = d["buffersrc"]; + is_music = d["is_music"]; + tag = d["tag"]; + playbackTime = d["playbackTime"]; + looping = d["looping"]; + vol = d["volume"]; + pan = d["pan"]; + panObjUid = (pan && pan.hasOwnProperty("objUid")) ? pan["objUid"] : -1; + if (is_music && this.saveload === 1) // not saving/loading music + continue; + if (!is_music && this.saveload === 2) // not saving/loading sound + continue; + a = this.getAudioInstance(src, tag, is_music, looping, vol); + if (!a) + { + b = this.getAudioBuffer(src, is_music); + b.seekWhenReady = playbackTime; + b.pauseWhenReady = d["paused"]; + if (pan) + { + if (panObjUid !== -1) + { + b.panWhenReady.push({ objUid: panObjUid, ia: pan["ia"], oa: pan["oa"], og: pan["og"], thistag: tag }); + } + else + { + b.panWhenReady.push({ x: pan["x"], y: pan["y"], a: pan["a"], ia: pan["ia"], oa: pan["oa"], og: pan["og"], thistag: tag }); + } + } + continue; + } + a.resume_position = d["resume_position"]; + a.setPannerEnabled(!!pan); + a.play(looping, vol, playbackTime); + a.updatePlaybackRate(); + a.updateVolume(); + a.doSetMuted(a.is_muted || a.is_silent); + if (d["paused"]) + a.pause(); + if (d["muted"]) + a.setMuted(true); + a.doSetMuted(a.is_muted || a.is_silent); + if (pan) + { + if (panObjUid !== -1) + { + a.objectTracker = a.objectTracker || new ObjectTracker(); + a.objectTracker.loadUid = panObjUid; + objectTrackerUidsToLoad.push(a.objectTracker); + } + else + { + a.setPan(pan["x"], pan["y"], pan["a"], pan["ia"], pan["oa"], pan["og"]); + } + } + } + if (setSilent && !silent) // setting silent + { + for (i = 0, len = audioInstances.length; i < len; i++) + audioInstances[i].setSilent(true); + silent = true; + } + else if (!setSilent && silent) // setting not silent + { + for (i = 0, len = audioInstances.length; i < len; i++) + audioInstances[i].setSilent(false); + silent = false; + } + }; + instanceProto.afterLoad = function () + { + var i, len, ot, inst; + for (i = 0, len = objectTrackerUidsToLoad.length; i < len; i++) + { + ot = objectTrackerUidsToLoad[i]; + inst = this.runtime.getObjectByUID(ot.loadUid); + ot.setObject(inst); + ot.loadUid = -1; + if (inst) + { + listenerX = inst.x; + listenerY = inst.y; + } + } + cr.clearArray(objectTrackerUidsToLoad); + }; + instanceProto.onSuspend = function (s) + { + if (this.playinbackground) + return; + if (!s && context && context["resume"]) + { + context["resume"](); + isContextSuspended = false; + } + var i, len; + for (i = 0, len = audioInstances.length; i < len; i++) + audioInstances[i].setSuspended(s); + if (s && context && context["suspend"]) + { + context["suspend"](); + isContextSuspended = true; + } + }; + instanceProto.tick = function () + { + var dt = this.runtime.dt; + var i, len, a; + for (i = 0, len = audioInstances.length; i < len; i++) + { + a = audioInstances[i]; + a.tick(dt); + if (timescale_mode !== 0) + a.updatePlaybackRate(); + } + var p, arr, f; + for (p in effects) + { + if (effects.hasOwnProperty(p)) + { + arr = effects[p]; + for (i = 0, len = arr.length; i < len; i++) + { + f = arr[i]; + if (f.tick) + f.tick(); + } + } + } + if (api === API_WEBAUDIO && this.listenerTracker.hasObject()) + { + this.listenerTracker.tick(dt); + listenerX = this.listenerTracker.obj.x; + listenerY = this.listenerTracker.obj.y; + context["listener"]["setPosition"](this.listenerTracker.obj.x, this.listenerTracker.obj.y, this.listenerZ); + } + }; + var preload_list = []; + instanceProto.setPreloadList = function (arr) + { + var i, len, p, filename, size, isOgg; + var total_size = 0; + for (i = 0, len = arr.length; i < len; ++i) + { + p = arr[i]; + filename = p[0]; + size = p[1] * 2; + isOgg = (filename.length > 4 && filename.substr(filename.length - 4) === ".ogg"); + if ((isOgg && useOgg) || (!isOgg && !useOgg)) + { + preload_list.push({ + filename: filename, + size: size, + obj: null + }); + total_size += size; + } + } + return total_size; + }; + instanceProto.startPreloads = function () + { + var i, len, p, src; + for (i = 0, len = preload_list.length; i < len; ++i) + { + p = preload_list[i]; + src = this.runtime.files_subfolder + p.filename; + p.obj = this.getAudioBuffer(src, false); + } + }; + instanceProto.getPreloadedSize = function () + { + var completed = 0; + var i, len, p; + for (i = 0, len = preload_list.length; i < len; ++i) + { + p = preload_list[i]; + if (p.obj.isLoadedAndDecoded() || p.obj.hasFailedToLoad() || this.runtime.isDomFree || this.runtime.isAndroidStockBrowser) + { + completed += p.size; + } + else if (p.obj.isLoaded()) // downloaded but not decoded: only happens in Web Audio API, count as half-way progress + { + completed += Math.floor(p.size / 2); + } + }; + return completed; + }; + instanceProto.releaseAllMusicBuffers = function () + { + var i, len, j, b; + for (i = 0, j = 0, len = audioBuffers.length; i < len; ++i) + { + b = audioBuffers[i]; + audioBuffers[j] = b; + if (b.is_music) + b.release(); + else + ++j; // keep + } + audioBuffers.length = j; + }; + instanceProto.getAudioBuffer = function (src_, is_music, dont_create) + { + var i, len, a, ret = null, j, k, lenj, ai; + for (i = 0, len = audioBuffers.length; i < len; i++) + { + a = audioBuffers[i]; + if (a.src === src_) + { + ret = a; + break; + } + } + if (!ret && !dont_create) + { + if (playMusicAsSoundWorkaround && is_music) + this.releaseAllMusicBuffers(); + ret = new C2AudioBuffer(src_, is_music); + audioBuffers.push(ret); + } + return ret; + }; + instanceProto.getAudioInstance = function (src_, tag, is_music, looping, vol) + { + var i, len, a; + for (i = 0, len = audioInstances.length; i < len; i++) + { + a = audioInstances[i]; + if (a.src === src_ && (a.canBeRecycled() || is_music)) + { + a.tag = tag; + return a; + } + } + var b = this.getAudioBuffer(src_, is_music); + if (!b.bufferObject) + { + if (tag !== "") + { + b.playTagWhenReady = tag; + b.loopWhenReady = looping; + b.volumeWhenReady = vol; + } + return null; + } + a = new C2AudioInstance(b, tag); + audioInstances.push(a); + return a; + }; + var taggedAudio = []; + function SortByIsPlaying(a, b) + { + var an = a.isPlaying() ? 1 : 0; + var bn = b.isPlaying() ? 1 : 0; + if (an === bn) + return 0; + else if (an < bn) + return 1; + else + return -1; + }; + function getAudioByTag(tag, sort_by_playing) + { + cr.clearArray(taggedAudio); + if (!tag.length) + { + if (!lastAudio || lastAudio.hasEnded()) + return; + else + { + cr.clearArray(taggedAudio); + taggedAudio[0] = lastAudio; + return; + } + } + var i, len, a; + for (i = 0, len = audioInstances.length; i < len; i++) + { + a = audioInstances[i]; + if (cr.equals_nocase(tag, a.tag)) + taggedAudio.push(a); + } + if (sort_by_playing) + taggedAudio.sort(SortByIsPlaying); + }; + function reconnectEffects(tag) + { + var i, len, arr, n, toNode = context["destination"]; + if (effects.hasOwnProperty(tag)) + { + arr = effects[tag]; + if (arr.length) + { + toNode = arr[0].getInputNode(); + for (i = 0, len = arr.length; i < len; i++) + { + n = arr[i]; + if (i + 1 === len) + n.connectTo(context["destination"]); + else + n.connectTo(arr[i + 1].getInputNode()); + } + } + } + getAudioByTag(tag); + for (i = 0, len = taggedAudio.length; i < len; i++) + taggedAudio[i].reconnect(toNode); + if (micSource && micTag === tag) + { + micSource["disconnect"](); + micSource["connect"](toNode); + } + }; + function addEffectForTag(tag, fx) + { + if (!effects.hasOwnProperty(tag)) + effects[tag] = [fx]; + else + effects[tag].push(fx); + reconnectEffects(tag); + }; + function Cnds() {}; + Cnds.prototype.OnEnded = function (t) + { + return cr.equals_nocase(audTag, t); + }; + Cnds.prototype.PreloadsComplete = function () + { + var i, len; + for (i = 0, len = audioBuffers.length; i < len; i++) + { + if (!audioBuffers[i].isLoadedAndDecoded() && !audioBuffers[i].hasFailedToLoad()) + return false; + } + return true; + }; + Cnds.prototype.AdvancedAudioSupported = function () + { + return api === API_WEBAUDIO; + }; + Cnds.prototype.IsSilent = function () + { + return silent; + }; + Cnds.prototype.IsAnyPlaying = function () + { + var i, len; + for (i = 0, len = audioInstances.length; i < len; i++) + { + if (audioInstances[i].isPlaying()) + return true; + } + return false; + }; + Cnds.prototype.IsTagPlaying = function (tag) + { + getAudioByTag(tag); + var i, len; + for (i = 0, len = taggedAudio.length; i < len; i++) + { + if (taggedAudio[i].isPlaying()) + return true; + } + return false; + }; + pluginProto.cnds = new Cnds(); + function Acts() {}; + Acts.prototype.Play = function (file, looping, vol, tag) + { + if (silent) + return; + var v = dbToLinear(vol); + var is_music = file[1]; + var src = this.runtime.files_subfolder + file[0] + (useOgg ? ".ogg" : ".m4a"); + lastAudio = this.getAudioInstance(src, tag, is_music, looping!==0, v); + if (!lastAudio) + return; + lastAudio.setPannerEnabled(false); + lastAudio.play(looping!==0, v, 0, this.nextPlayTime); + this.nextPlayTime = 0; + }; + Acts.prototype.PlayAtPosition = function (file, looping, vol, x_, y_, angle_, innerangle_, outerangle_, outergain_, tag) + { + if (silent) + return; + var v = dbToLinear(vol); + var is_music = file[1]; + var src = this.runtime.files_subfolder + file[0] + (useOgg ? ".ogg" : ".m4a"); + lastAudio = this.getAudioInstance(src, tag, is_music, looping!==0, v); + if (!lastAudio) + { + var b = this.getAudioBuffer(src, is_music); + b.panWhenReady.push({ x: x_, y: y_, a: angle_, ia: innerangle_, oa: outerangle_, og: dbToLinear(outergain_), thistag: tag }); + return; + } + lastAudio.setPannerEnabled(true); + lastAudio.setPan(x_, y_, angle_, innerangle_, outerangle_, dbToLinear(outergain_)); + lastAudio.play(looping!==0, v, 0, this.nextPlayTime); + this.nextPlayTime = 0; + }; + Acts.prototype.PlayAtObject = function (file, looping, vol, obj, innerangle, outerangle, outergain, tag) + { + if (silent || !obj) + return; + var inst = obj.getFirstPicked(); + if (!inst) + return; + var v = dbToLinear(vol); + var is_music = file[1]; + var src = this.runtime.files_subfolder + file[0] + (useOgg ? ".ogg" : ".m4a"); + lastAudio = this.getAudioInstance(src, tag, is_music, looping!==0, v); + if (!lastAudio) + { + var b = this.getAudioBuffer(src, is_music); + b.panWhenReady.push({ obj: inst, ia: innerangle, oa: outerangle, og: dbToLinear(outergain), thistag: tag }); + return; + } + lastAudio.setPannerEnabled(true); + var px = cr.rotatePtAround(inst.x, inst.y, -inst.layer.getAngle(), listenerX, listenerY, true); + var py = cr.rotatePtAround(inst.x, inst.y, -inst.layer.getAngle(), listenerX, listenerY, false); + lastAudio.setPan(px, py, cr.to_degrees(inst.angle - inst.layer.getAngle()), innerangle, outerangle, dbToLinear(outergain)); + lastAudio.setObject(inst); + lastAudio.play(looping!==0, v, 0, this.nextPlayTime); + this.nextPlayTime = 0; + }; + Acts.prototype.PlayByName = function (folder, filename, looping, vol, tag) + { + if (silent) + return; + var v = dbToLinear(vol); + var is_music = (folder === 1); + var src = this.runtime.files_subfolder + filename.toLowerCase() + (useOgg ? ".ogg" : ".m4a"); + lastAudio = this.getAudioInstance(src, tag, is_music, looping!==0, v); + if (!lastAudio) + return; + lastAudio.setPannerEnabled(false); + lastAudio.play(looping!==0, v, 0, this.nextPlayTime); + this.nextPlayTime = 0; + }; + Acts.prototype.PlayAtPositionByName = function (folder, filename, looping, vol, x_, y_, angle_, innerangle_, outerangle_, outergain_, tag) + { + if (silent) + return; + var v = dbToLinear(vol); + var is_music = (folder === 1); + var src = this.runtime.files_subfolder + filename.toLowerCase() + (useOgg ? ".ogg" : ".m4a"); + lastAudio = this.getAudioInstance(src, tag, is_music, looping!==0, v); + if (!lastAudio) + { + var b = this.getAudioBuffer(src, is_music); + b.panWhenReady.push({ x: x_, y: y_, a: angle_, ia: innerangle_, oa: outerangle_, og: dbToLinear(outergain_), thistag: tag }); + return; + } + lastAudio.setPannerEnabled(true); + lastAudio.setPan(x_, y_, angle_, innerangle_, outerangle_, dbToLinear(outergain_)); + lastAudio.play(looping!==0, v, 0, this.nextPlayTime); + this.nextPlayTime = 0; + }; + Acts.prototype.PlayAtObjectByName = function (folder, filename, looping, vol, obj, innerangle, outerangle, outergain, tag) + { + if (silent || !obj) + return; + var inst = obj.getFirstPicked(); + if (!inst) + return; + var v = dbToLinear(vol); + var is_music = (folder === 1); + var src = this.runtime.files_subfolder + filename.toLowerCase() + (useOgg ? ".ogg" : ".m4a"); + lastAudio = this.getAudioInstance(src, tag, is_music, looping!==0, v); + if (!lastAudio) + { + var b = this.getAudioBuffer(src, is_music); + b.panWhenReady.push({ obj: inst, ia: innerangle, oa: outerangle, og: dbToLinear(outergain), thistag: tag }); + return; + } + lastAudio.setPannerEnabled(true); + var px = cr.rotatePtAround(inst.x, inst.y, -inst.layer.getAngle(), listenerX, listenerY, true); + var py = cr.rotatePtAround(inst.x, inst.y, -inst.layer.getAngle(), listenerX, listenerY, false); + lastAudio.setPan(px, py, cr.to_degrees(inst.angle - inst.layer.getAngle()), innerangle, outerangle, dbToLinear(outergain)); + lastAudio.setObject(inst); + lastAudio.play(looping!==0, v, 0, this.nextPlayTime); + this.nextPlayTime = 0; + }; + Acts.prototype.SetLooping = function (tag, looping) + { + getAudioByTag(tag); + var i, len; + for (i = 0, len = taggedAudio.length; i < len; i++) + taggedAudio[i].setLooping(looping === 0); + }; + Acts.prototype.SetMuted = function (tag, muted) + { + getAudioByTag(tag); + var i, len; + for (i = 0, len = taggedAudio.length; i < len; i++) + taggedAudio[i].setMuted(muted === 0); + }; + Acts.prototype.SetVolume = function (tag, vol) + { + getAudioByTag(tag); + var v = dbToLinear(vol); + var i, len; + for (i = 0, len = taggedAudio.length; i < len; i++) + taggedAudio[i].setVolume(v); + }; + Acts.prototype.Preload = function (file) + { + if (silent) + return; + var is_music = file[1]; + var src = this.runtime.files_subfolder + file[0] + (useOgg ? ".ogg" : ".m4a"); + if (api === API_APPMOBI) + { + if (this.runtime.isDirectCanvas) + AppMobi["context"]["loadSound"](src); + else + AppMobi["player"]["loadSound"](src); + return; + } + else if (api === API_CORDOVA) + { + return; + } + this.getAudioInstance(src, "", is_music, false); + }; + Acts.prototype.PreloadByName = function (folder, filename) + { + if (silent) + return; + var is_music = (folder === 1); + var src = this.runtime.files_subfolder + filename.toLowerCase() + (useOgg ? ".ogg" : ".m4a"); + if (api === API_APPMOBI) + { + if (this.runtime.isDirectCanvas) + AppMobi["context"]["loadSound"](src); + else + AppMobi["player"]["loadSound"](src); + return; + } + else if (api === API_CORDOVA) + { + return; + } + this.getAudioInstance(src, "", is_music, false); + }; + Acts.prototype.SetPlaybackRate = function (tag, rate) + { + getAudioByTag(tag); + if (rate < 0.0) + rate = 0; + var i, len; + for (i = 0, len = taggedAudio.length; i < len; i++) + taggedAudio[i].setPlaybackRate(rate); + }; + Acts.prototype.Stop = function (tag) + { + getAudioByTag(tag); + var i, len; + for (i = 0, len = taggedAudio.length; i < len; i++) + taggedAudio[i].stop(); + }; + Acts.prototype.StopAll = function () + { + var i, len; + for (i = 0, len = audioInstances.length; i < len; i++) + audioInstances[i].stop(); + }; + Acts.prototype.SetPaused = function (tag, state) + { + getAudioByTag(tag); + var i, len; + for (i = 0, len = taggedAudio.length; i < len; i++) + { + if (state === 0) + taggedAudio[i].pause(); + else + taggedAudio[i].resume(); + } + }; + Acts.prototype.Seek = function (tag, pos) + { + getAudioByTag(tag); + var i, len; + for (i = 0, len = taggedAudio.length; i < len; i++) + { + taggedAudio[i].seek(pos); + } + }; + Acts.prototype.SetSilent = function (s) + { + var i, len; + if (s === 2) // toggling + s = (silent ? 1 : 0); // choose opposite state + if (s === 0 && !silent) // setting silent + { + for (i = 0, len = audioInstances.length; i < len; i++) + audioInstances[i].setSilent(true); + silent = true; + } + else if (s === 1 && silent) // setting not silent + { + for (i = 0, len = audioInstances.length; i < len; i++) + audioInstances[i].setSilent(false); + silent = false; + } + }; + Acts.prototype.SetMasterVolume = function (vol) + { + masterVolume = dbToLinear(vol); + var i, len; + for (i = 0, len = audioInstances.length; i < len; i++) + audioInstances[i].updateVolume(); + }; + Acts.prototype.AddFilterEffect = function (tag, type, freq, detune, q, gain, mix) + { + if (api !== API_WEBAUDIO || type < 0 || type >= filterTypes.length || !context["createBiquadFilter"]) + return; + tag = tag.toLowerCase(); + mix = mix / 100; + if (mix < 0) mix = 0; + if (mix > 1) mix = 1; + addEffectForTag(tag, new FilterEffect(type, freq, detune, q, gain, mix)); + }; + Acts.prototype.AddDelayEffect = function (tag, delay, gain, mix) + { + if (api !== API_WEBAUDIO) + return; + tag = tag.toLowerCase(); + mix = mix / 100; + if (mix < 0) mix = 0; + if (mix > 1) mix = 1; + addEffectForTag(tag, new DelayEffect(delay, dbToLinear(gain), mix)); + }; + Acts.prototype.AddFlangerEffect = function (tag, delay, modulation, freq, feedback, mix) + { + if (api !== API_WEBAUDIO || !context["createOscillator"]) + return; + tag = tag.toLowerCase(); + mix = mix / 100; + if (mix < 0) mix = 0; + if (mix > 1) mix = 1; + addEffectForTag(tag, new FlangerEffect(delay / 1000, modulation / 1000, freq, feedback / 100, mix)); + }; + Acts.prototype.AddPhaserEffect = function (tag, freq, detune, q, mod, modfreq, mix) + { + if (api !== API_WEBAUDIO || !context["createOscillator"]) + return; + tag = tag.toLowerCase(); + mix = mix / 100; + if (mix < 0) mix = 0; + if (mix > 1) mix = 1; + addEffectForTag(tag, new PhaserEffect(freq, detune, q, mod, modfreq, mix)); + }; + Acts.prototype.AddConvolutionEffect = function (tag, file, norm, mix) + { + if (api !== API_WEBAUDIO || !context["createConvolver"]) + return; + var doNormalize = (norm === 0); + var src = this.runtime.files_subfolder + file[0] + (useOgg ? ".ogg" : ".m4a"); + var b = this.getAudioBuffer(src, false); + tag = tag.toLowerCase(); + mix = mix / 100; + if (mix < 0) mix = 0; + if (mix > 1) mix = 1; + var fx; + if (b.bufferObject) + { + fx = new ConvolveEffect(b.bufferObject, doNormalize, mix, src); + } + else + { + fx = new ConvolveEffect(null, doNormalize, mix, src); + b.normalizeWhenReady = doNormalize; + b.convolveWhenReady = fx; + } + addEffectForTag(tag, fx); + }; + Acts.prototype.AddGainEffect = function (tag, g) + { + if (api !== API_WEBAUDIO) + return; + tag = tag.toLowerCase(); + addEffectForTag(tag, new GainEffect(dbToLinear(g))); + }; + Acts.prototype.AddMuteEffect = function (tag) + { + if (api !== API_WEBAUDIO) + return; + tag = tag.toLowerCase(); + addEffectForTag(tag, new GainEffect(0)); // re-use gain effect with 0 gain + }; + Acts.prototype.AddTremoloEffect = function (tag, freq, mix) + { + if (api !== API_WEBAUDIO || !context["createOscillator"]) + return; + tag = tag.toLowerCase(); + mix = mix / 100; + if (mix < 0) mix = 0; + if (mix > 1) mix = 1; + addEffectForTag(tag, new TremoloEffect(freq, mix)); + }; + Acts.prototype.AddRingModEffect = function (tag, freq, mix) + { + if (api !== API_WEBAUDIO || !context["createOscillator"]) + return; + tag = tag.toLowerCase(); + mix = mix / 100; + if (mix < 0) mix = 0; + if (mix > 1) mix = 1; + addEffectForTag(tag, new RingModulatorEffect(freq, mix)); + }; + Acts.prototype.AddDistortionEffect = function (tag, threshold, headroom, drive, makeupgain, mix) + { + if (api !== API_WEBAUDIO || !context["createWaveShaper"]) + return; + tag = tag.toLowerCase(); + mix = mix / 100; + if (mix < 0) mix = 0; + if (mix > 1) mix = 1; + addEffectForTag(tag, new DistortionEffect(threshold, headroom, drive, makeupgain, mix)); + }; + Acts.prototype.AddCompressorEffect = function (tag, threshold, knee, ratio, attack, release) + { + if (api !== API_WEBAUDIO || !context["createDynamicsCompressor"]) + return; + tag = tag.toLowerCase(); + addEffectForTag(tag, new CompressorEffect(threshold, knee, ratio, attack / 1000, release / 1000)); + }; + Acts.prototype.AddAnalyserEffect = function (tag, fftSize, smoothing) + { + if (api !== API_WEBAUDIO) + return; + tag = tag.toLowerCase(); + addEffectForTag(tag, new AnalyserEffect(fftSize, smoothing)); + }; + Acts.prototype.RemoveEffects = function (tag) + { + if (api !== API_WEBAUDIO) + return; + tag = tag.toLowerCase(); + var i, len, arr; + if (effects.hasOwnProperty(tag)) + { + arr = effects[tag]; + if (arr.length) + { + for (i = 0, len = arr.length; i < len; i++) + arr[i].remove(); + cr.clearArray(arr); + reconnectEffects(tag); + } + } + }; + Acts.prototype.SetEffectParameter = function (tag, index, param, value, ramp, time) + { + if (api !== API_WEBAUDIO) + return; + tag = tag.toLowerCase(); + index = Math.floor(index); + var arr; + if (!effects.hasOwnProperty(tag)) + return; + arr = effects[tag]; + if (index < 0 || index >= arr.length) + return; + arr[index].setParam(param, value, ramp, time); + }; + Acts.prototype.SetListenerObject = function (obj_) + { + if (!obj_ || api !== API_WEBAUDIO) + return; + var inst = obj_.getFirstPicked(); + if (!inst) + return; + this.listenerTracker.setObject(inst); + listenerX = inst.x; + listenerY = inst.y; + }; + Acts.prototype.SetListenerZ = function (z) + { + this.listenerZ = z; + }; + Acts.prototype.ScheduleNextPlay = function (t) + { + if (!context) + return; // needs Web Audio API + this.nextPlayTime = t; + }; + Acts.prototype.UnloadAudio = function (file) + { + var is_music = file[1]; + var src = this.runtime.files_subfolder + file[0] + (useOgg ? ".ogg" : ".m4a"); + var b = this.getAudioBuffer(src, is_music, true /* don't create if missing */); + if (!b) + return; // not loaded + b.release(); + cr.arrayFindRemove(audioBuffers, b); + }; + Acts.prototype.UnloadAudioByName = function (folder, filename) + { + var is_music = (folder === 1); + var src = this.runtime.files_subfolder + filename.toLowerCase() + (useOgg ? ".ogg" : ".m4a"); + var b = this.getAudioBuffer(src, is_music, true /* don't create if missing */); + if (!b) + return; // not loaded + b.release(); + cr.arrayFindRemove(audioBuffers, b); + }; + Acts.prototype.UnloadAll = function () + { + var i, len; + for (i = 0, len = audioBuffers.length; i < len; ++i) + { + audioBuffers[i].release(); + }; + cr.clearArray(audioBuffers); + }; + pluginProto.acts = new Acts(); + function Exps() {}; + Exps.prototype.Duration = function (ret, tag) + { + getAudioByTag(tag, true); + if (taggedAudio.length) + ret.set_float(taggedAudio[0].getDuration()); + else + ret.set_float(0); + }; + Exps.prototype.PlaybackTime = function (ret, tag) + { + getAudioByTag(tag, true); + if (taggedAudio.length) + ret.set_float(taggedAudio[0].getPlaybackTime(true)); + else + ret.set_float(0); + }; + Exps.prototype.Volume = function (ret, tag) + { + getAudioByTag(tag, true); + if (taggedAudio.length) + { + var v = taggedAudio[0].getVolume(); + ret.set_float(linearToDb(v)); + } + else + ret.set_float(0); + }; + Exps.prototype.MasterVolume = function (ret) + { + ret.set_float(linearToDb(masterVolume)); + }; + Exps.prototype.EffectCount = function (ret, tag) + { + tag = tag.toLowerCase(); + var arr = null; + if (effects.hasOwnProperty(tag)) + arr = effects[tag]; + ret.set_int(arr ? arr.length : 0); + }; + function getAnalyser(tag, index) + { + var arr = null; + if (effects.hasOwnProperty(tag)) + arr = effects[tag]; + if (arr && index >= 0 && index < arr.length && arr[index].freqBins) + return arr[index]; + else + return null; + }; + Exps.prototype.AnalyserFreqBinCount = function (ret, tag, index) + { + tag = tag.toLowerCase(); + index = Math.floor(index); + var analyser = getAnalyser(tag, index); + ret.set_int(analyser ? analyser.node["frequencyBinCount"] : 0); + }; + Exps.prototype.AnalyserFreqBinAt = function (ret, tag, index, bin) + { + tag = tag.toLowerCase(); + index = Math.floor(index); + bin = Math.floor(bin); + var analyser = getAnalyser(tag, index); + if (!analyser) + ret.set_float(0); + else if (bin < 0 || bin >= analyser.node["frequencyBinCount"]) + ret.set_float(0); + else + ret.set_float(analyser.freqBins[bin]); + }; + Exps.prototype.AnalyserPeakLevel = function (ret, tag, index) + { + tag = tag.toLowerCase(); + index = Math.floor(index); + var analyser = getAnalyser(tag, index); + if (analyser) + ret.set_float(analyser.peak); + else + ret.set_float(0); + }; + Exps.prototype.AnalyserRMSLevel = function (ret, tag, index) + { + tag = tag.toLowerCase(); + index = Math.floor(index); + var analyser = getAnalyser(tag, index); + if (analyser) + ret.set_float(analyser.rms); + else + ret.set_float(0); + }; + Exps.prototype.SampleRate = function (ret) + { + ret.set_int(context ? context.sampleRate : 0); + }; + Exps.prototype.CurrentTime = function (ret) + { + ret.set_float(context ? context.currentTime : cr.performance_now()); + }; + pluginProto.exps = new Exps(); +}()); +; +; +cr.plugins_.Browser = function(runtime) +{ + this.runtime = runtime; +}; +(function () +{ + var pluginProto = cr.plugins_.Browser.prototype; + pluginProto.Type = function(plugin) + { + this.plugin = plugin; + this.runtime = plugin.runtime; + }; + var typeProto = pluginProto.Type.prototype; + typeProto.onCreate = function() + { + }; + var offlineScriptReady = false; + var browserPluginReady = false; + document.addEventListener("DOMContentLoaded", function () + { + if (window["C2_RegisterSW"] && navigator["serviceWorker"]) + { + var offlineClientScript = document.createElement("script"); + offlineClientScript.onload = function () + { + offlineScriptReady = true; + checkReady() + }; + offlineClientScript.src = "offlineClient.js"; + document.head.appendChild(offlineClientScript); + } + }); + var browserInstance = null; + typeProto.onAppBegin = function () + { + browserPluginReady = true; + checkReady(); + }; + function checkReady() + { + if (offlineScriptReady && browserPluginReady && window["OfflineClientInfo"]) + { + window["OfflineClientInfo"]["SetMessageCallback"](function (e) + { + browserInstance.onSWMessage(e); + }); + } + }; + pluginProto.Instance = function(type) + { + this.type = type; + this.runtime = type.runtime; + }; + var instanceProto = pluginProto.Instance.prototype; + instanceProto.onCreate = function() + { + var self = this; + window.addEventListener("resize", function () { + self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnResize, self); + }); + browserInstance = this; + if (typeof navigator.onLine !== "undefined") + { + window.addEventListener("online", function() { + self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnOnline, self); + }); + window.addEventListener("offline", function() { + self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnOffline, self); + }); + } + if (!this.runtime.isDirectCanvas) + { + document.addEventListener("appMobi.device.update.available", function() { + self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnUpdateReady, self); + }); + document.addEventListener("backbutton", function() { + self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnBackButton, self); + }); + document.addEventListener("menubutton", function() { + self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnMenuButton, self); + }); + document.addEventListener("searchbutton", function() { + self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnSearchButton, self); + }); + document.addEventListener("tizenhwkey", function (e) { + var ret; + switch (e["keyName"]) { + case "back": + ret = self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnBackButton, self); + if (!ret) + { + if (window["tizen"]) + window["tizen"]["application"]["getCurrentApplication"]()["exit"](); + } + break; + case "menu": + ret = self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnMenuButton, self); + if (!ret) + e.preventDefault(); + break; + } + }); + } + if (this.runtime.isWindows10 && typeof Windows !== "undefined") + { + Windows["UI"]["Core"]["SystemNavigationManager"]["getForCurrentView"]().addEventListener("backrequested", function (e) + { + var ret = self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnBackButton, self); + if (ret) + e["handled"] = true; + }); + } + else if (this.runtime.isWinJS && WinJS["Application"]) + { + WinJS["Application"]["onbackclick"] = function (e) + { + return !!self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnBackButton, self); + }; + } + this.runtime.addSuspendCallback(function(s) { + if (s) + { + self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnPageHidden, self); + } + else + { + self.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnPageVisible, self); + } + }); + this.is_arcade = (typeof window["is_scirra_arcade"] !== "undefined"); + }; + instanceProto.onSWMessage = function (e) + { + var messageType = e["data"]["type"]; + if (messageType === "downloading-update") + this.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnUpdateFound, this); + else if (messageType === "update-ready" || messageType === "update-pending") + this.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnUpdateReady, this); + else if (messageType === "offline-ready") + this.runtime.trigger(cr.plugins_.Browser.prototype.cnds.OnOfflineReady, this); + }; + var batteryManager = null; + var loadedBatteryManager = false; + function maybeLoadBatteryManager() + { + if (loadedBatteryManager) + return; + if (!navigator["getBattery"]) + return; + var promise = navigator["getBattery"](); + loadedBatteryManager = true; + if (promise) + { + promise.then(function (manager) { + batteryManager = manager; + }); + } + }; + function Cnds() {}; + Cnds.prototype.CookiesEnabled = function() + { + return navigator ? navigator.cookieEnabled : false; + }; + Cnds.prototype.IsOnline = function() + { + return navigator ? navigator.onLine : false; + }; + Cnds.prototype.HasJava = function() + { + return navigator ? navigator.javaEnabled() : false; + }; + Cnds.prototype.OnOnline = function() + { + return true; + }; + Cnds.prototype.OnOffline = function() + { + return true; + }; + Cnds.prototype.IsDownloadingUpdate = function () + { + return false; // deprecated + }; + Cnds.prototype.OnUpdateReady = function () + { + return true; + }; + Cnds.prototype.PageVisible = function () + { + return !this.runtime.isSuspended; + }; + Cnds.prototype.OnPageVisible = function () + { + return true; + }; + Cnds.prototype.OnPageHidden = function () + { + return true; + }; + Cnds.prototype.OnResize = function () + { + return true; + }; + Cnds.prototype.IsFullscreen = function () + { + return !!(document["mozFullScreen"] || document["webkitIsFullScreen"] || document["fullScreen"] || this.runtime.isNodeFullscreen); + }; + Cnds.prototype.OnBackButton = function () + { + return true; + }; + Cnds.prototype.OnMenuButton = function () + { + return true; + }; + Cnds.prototype.OnSearchButton = function () + { + return true; + }; + Cnds.prototype.IsMetered = function () + { + var connection = navigator["connection"] || navigator["mozConnection"] || navigator["webkitConnection"]; + if (!connection) + return false; + return !!connection["metered"]; + }; + Cnds.prototype.IsCharging = function () + { + var battery = navigator["battery"] || navigator["mozBattery"] || navigator["webkitBattery"]; + if (battery) + { + return !!battery["charging"] + } + else + { + maybeLoadBatteryManager(); + if (batteryManager) + { + return !!batteryManager["charging"]; + } + else + { + return true; // if unknown, default to charging (powered) + } + } + }; + Cnds.prototype.IsPortraitLandscape = function (p) + { + var current = (window.innerWidth <= window.innerHeight ? 0 : 1); + return current === p; + }; + Cnds.prototype.SupportsFullscreen = function () + { + if (this.runtime.isNodeWebkit) + return true; + var elem = this.runtime.canvasdiv || this.runtime.canvas; + return !!(elem["requestFullscreen"] || elem["mozRequestFullScreen"] || elem["msRequestFullscreen"] || elem["webkitRequestFullScreen"]); + }; + Cnds.prototype.OnUpdateFound = function () + { + return true; + }; + Cnds.prototype.OnUpdateReady = function () + { + return true; + }; + Cnds.prototype.OnOfflineReady = function () + { + return true; + }; + pluginProto.cnds = new Cnds(); + function Acts() {}; + Acts.prototype.Alert = function (msg) + { + if (!this.runtime.isDomFree) + alert(msg.toString()); + }; + Acts.prototype.Close = function () + { + if (this.runtime.isCocoonJs) + CocoonJS["App"]["forceToFinish"](); + else if (window["tizen"]) + window["tizen"]["application"]["getCurrentApplication"]()["exit"](); + else if (navigator["app"] && navigator["app"]["exitApp"]) + navigator["app"]["exitApp"](); + else if (navigator["device"] && navigator["device"]["exitApp"]) + navigator["device"]["exitApp"](); + else if (!this.is_arcade && !this.runtime.isDomFree) + window.close(); + }; + Acts.prototype.Focus = function () + { + if (this.runtime.isNodeWebkit) + { + var win = window["nwgui"]["Window"]["get"](); + win["focus"](); + } + else if (!this.is_arcade && !this.runtime.isDomFree) + window.focus(); + }; + Acts.prototype.Blur = function () + { + if (this.runtime.isNodeWebkit) + { + var win = window["nwgui"]["Window"]["get"](); + win["blur"](); + } + else if (!this.is_arcade && !this.runtime.isDomFree) + window.blur(); + }; + Acts.prototype.GoBack = function () + { + if (navigator["app"] && navigator["app"]["backHistory"]) + navigator["app"]["backHistory"](); + else if (!this.is_arcade && !this.runtime.isDomFree && window.back) + window.back(); + }; + Acts.prototype.GoForward = function () + { + if (!this.is_arcade && !this.runtime.isDomFree && window.forward) + window.forward(); + }; + Acts.prototype.GoHome = function () + { + if (!this.is_arcade && !this.runtime.isDomFree && window.home) + window.home(); + }; + Acts.prototype.GoToURL = function (url, target) + { + if (this.runtime.isCocoonJs) + CocoonJS["App"]["openURL"](url); + else if (this.runtime.isEjecta) + ejecta["openURL"](url); + else if (this.runtime.isWinJS) + Windows["System"]["Launcher"]["launchUriAsync"](new Windows["Foundation"]["Uri"](url)); + else if (navigator["app"] && navigator["app"]["loadUrl"]) + navigator["app"]["loadUrl"](url, { "openExternal": true }); + else if (self["cordova"] && self["cordova"]["InAppBrowser"]) + self["cordova"]["InAppBrowser"]["open"](url, "_system"); + else if (!this.is_arcade && !this.runtime.isDomFree) + { + if (target === 2 && !this.is_arcade) // top + window.top.location = url; + else if (target === 1 && !this.is_arcade) // parent + window.parent.location = url; + else // self + window.location = url; + } + }; + Acts.prototype.GoToURLWindow = function (url, tag) + { + if (this.runtime.isCocoonJs) + CocoonJS["App"]["openURL"](url); + else if (this.runtime.isEjecta) + ejecta["openURL"](url); + else if (this.runtime.isWinJS) + Windows["System"]["Launcher"]["launchUriAsync"](new Windows["Foundation"]["Uri"](url)); + else if (navigator["app"] && navigator["app"]["loadUrl"]) + navigator["app"]["loadUrl"](url, { "openExternal": true }); + else if (self["cordova"] && self["cordova"]["InAppBrowser"]) + self["cordova"]["InAppBrowser"]["open"](url, "_system"); + else if (!this.is_arcade && !this.runtime.isDomFree) + window.open(url, tag); + }; + Acts.prototype.Reload = function () + { + if (!this.is_arcade && !this.runtime.isDomFree) + window.location.reload(); + }; + var firstRequestFullscreen = true; + var crruntime = null; + function onFullscreenError(e) + { + if (console && console.warn) + console.warn("Fullscreen request failed: ", e); + crruntime["setSize"](window.innerWidth, window.innerHeight); + }; + Acts.prototype.RequestFullScreen = function (stretchmode) + { + if (this.runtime.isDomFree) + { + cr.logexport("[Construct 2] Requesting fullscreen is not supported on this platform - the request has been ignored"); + return; + } + if (stretchmode >= 2) + stretchmode += 1; + if (stretchmode === 6) + stretchmode = 2; + if (this.runtime.isNodeWebkit) + { + if (this.runtime.isDebug) + { + debuggerFullscreen(true); + } + else if (!this.runtime.isNodeFullscreen && window["nwgui"]) + { + window["nwgui"]["Window"]["get"]()["enterFullscreen"](); + this.runtime.isNodeFullscreen = true; + this.runtime.fullscreen_scaling = (stretchmode >= 2 ? stretchmode : 0); + } + } + else + { + if (document["mozFullScreen"] || document["webkitIsFullScreen"] || !!document["msFullscreenElement"] || document["fullScreen"] || document["fullScreenElement"]) + { + return; + } + this.runtime.fullscreen_scaling = (stretchmode >= 2 ? stretchmode : 0); + var elem = document.documentElement; + if (firstRequestFullscreen) + { + firstRequestFullscreen = false; + crruntime = this.runtime; + elem.addEventListener("mozfullscreenerror", onFullscreenError); + elem.addEventListener("webkitfullscreenerror", onFullscreenError); + elem.addEventListener("MSFullscreenError", onFullscreenError); + elem.addEventListener("fullscreenerror", onFullscreenError); + } + if (elem["requestFullscreen"]) + elem["requestFullscreen"](); + else if (elem["mozRequestFullScreen"]) + elem["mozRequestFullScreen"](); + else if (elem["msRequestFullscreen"]) + elem["msRequestFullscreen"](); + else if (elem["webkitRequestFullScreen"]) + { + if (typeof Element !== "undefined" && typeof Element["ALLOW_KEYBOARD_INPUT"] !== "undefined") + elem["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]); + else + elem["webkitRequestFullScreen"](); + } + } + }; + Acts.prototype.CancelFullScreen = function () + { + if (this.runtime.isDomFree) + { + cr.logexport("[Construct 2] Exiting fullscreen is not supported on this platform - the request has been ignored"); + return; + } + if (this.runtime.isNodeWebkit) + { + if (this.runtime.isDebug) + { + debuggerFullscreen(false); + } + else if (this.runtime.isNodeFullscreen && window["nwgui"]) + { + window["nwgui"]["Window"]["get"]()["leaveFullscreen"](); + this.runtime.isNodeFullscreen = false; + } + } + else + { + if (document["exitFullscreen"]) + document["exitFullscreen"](); + else if (document["mozCancelFullScreen"]) + document["mozCancelFullScreen"](); + else if (document["msExitFullscreen"]) + document["msExitFullscreen"](); + else if (document["webkitCancelFullScreen"]) + document["webkitCancelFullScreen"](); + } + }; + Acts.prototype.Vibrate = function (pattern_) + { + try { + var arr = pattern_.split(","); + var i, len; + for (i = 0, len = arr.length; i < len; i++) + { + arr[i] = parseInt(arr[i], 10); + } + if (navigator["vibrate"]) + navigator["vibrate"](arr); + else if (navigator["mozVibrate"]) + navigator["mozVibrate"](arr); + else if (navigator["webkitVibrate"]) + navigator["webkitVibrate"](arr); + else if (navigator["msVibrate"]) + navigator["msVibrate"](arr); + } + catch (e) {} + }; + Acts.prototype.InvokeDownload = function (url_, filename_) + { + var a = document.createElement("a"); + if (typeof a["download"] === "undefined") + { + window.open(url_); + } + else + { + var body = document.getElementsByTagName("body")[0]; + a.textContent = filename_; + a.href = url_; + a["download"] = filename_; + body.appendChild(a); + var clickEvent = new MouseEvent("click"); + a.dispatchEvent(clickEvent); + body.removeChild(a); + } + }; + Acts.prototype.InvokeDownloadString = function (str_, mimetype_, filename_) + { + var datauri = "data:" + mimetype_ + "," + encodeURIComponent(str_); + var a = document.createElement("a"); + if (typeof a["download"] === "undefined") + { + window.open(datauri); + } + else + { + var body = document.getElementsByTagName("body")[0]; + a.textContent = filename_; + a.href = datauri; + a["download"] = filename_; + body.appendChild(a); + var clickEvent = new MouseEvent("click"); + a.dispatchEvent(clickEvent); + body.removeChild(a); + } + }; + Acts.prototype.ConsoleLog = function (type_, msg_) + { + if (typeof console === "undefined") + return; + if (type_ === 0 && console.log) + console.log(msg_.toString()); + if (type_ === 1 && console.warn) + console.warn(msg_.toString()); + if (type_ === 2 && console.error) + console.error(msg_.toString()); + }; + Acts.prototype.ConsoleGroup = function (name_) + { + if (console && console.group) + console.group(name_); + }; + Acts.prototype.ConsoleGroupEnd = function () + { + if (console && console.groupEnd) + console.groupEnd(); + }; + Acts.prototype.ExecJs = function (js_) + { + try { + if (eval) + eval(js_); + } + catch (e) + { + if (console && console.error) + console.error("Error executing Javascript: ", e); + } + }; + var orientations = [ + "portrait", + "landscape", + "portrait-primary", + "portrait-secondary", + "landscape-primary", + "landscape-secondary" + ]; + Acts.prototype.LockOrientation = function (o) + { + o = Math.floor(o); + if (o < 0 || o >= orientations.length) + return; + this.runtime.autoLockOrientation = false; + var orientation = orientations[o]; + if (screen["orientation"] && screen["orientation"]["lock"]) + screen["orientation"]["lock"](orientation); + else if (screen["lockOrientation"]) + screen["lockOrientation"](orientation); + else if (screen["webkitLockOrientation"]) + screen["webkitLockOrientation"](orientation); + else if (screen["mozLockOrientation"]) + screen["mozLockOrientation"](orientation); + else if (screen["msLockOrientation"]) + screen["msLockOrientation"](orientation); + }; + Acts.prototype.UnlockOrientation = function () + { + this.runtime.autoLockOrientation = false; + if (screen["orientation"] && screen["orientation"]["unlock"]) + screen["orientation"]["unlock"](); + else if (screen["unlockOrientation"]) + screen["unlockOrientation"](); + else if (screen["webkitUnlockOrientation"]) + screen["webkitUnlockOrientation"](); + else if (screen["mozUnlockOrientation"]) + screen["mozUnlockOrientation"](); + else if (screen["msUnlockOrientation"]) + screen["msUnlockOrientation"](); + }; + pluginProto.acts = new Acts(); + function Exps() {}; + Exps.prototype.URL = function (ret) + { + ret.set_string(this.runtime.isDomFree ? "" : window.location.toString()); + }; + Exps.prototype.Protocol = function (ret) + { + ret.set_string(this.runtime.isDomFree ? "" : window.location.protocol); + }; + Exps.prototype.Domain = function (ret) + { + ret.set_string(this.runtime.isDomFree ? "" : window.location.hostname); + }; + Exps.prototype.PathName = function (ret) + { + ret.set_string(this.runtime.isDomFree ? "" : window.location.pathname); + }; + Exps.prototype.Hash = function (ret) + { + ret.set_string(this.runtime.isDomFree ? "" : window.location.hash); + }; + Exps.prototype.Referrer = function (ret) + { + ret.set_string(this.runtime.isDomFree ? "" : document.referrer); + }; + Exps.prototype.Title = function (ret) + { + ret.set_string(this.runtime.isDomFree ? "" : document.title); + }; + Exps.prototype.Name = function (ret) + { + ret.set_string(this.runtime.isDomFree ? "" : navigator.appName); + }; + Exps.prototype.Version = function (ret) + { + ret.set_string(this.runtime.isDomFree ? "" : navigator.appVersion); + }; + Exps.prototype.Language = function (ret) + { + if (navigator && navigator.language) + ret.set_string(navigator.language); + else + ret.set_string(""); + }; + Exps.prototype.Platform = function (ret) + { + ret.set_string(this.runtime.isDomFree ? "" : navigator.platform); + }; + Exps.prototype.Product = function (ret) + { + if (navigator && navigator.product) + ret.set_string(navigator.product); + else + ret.set_string(""); + }; + Exps.prototype.Vendor = function (ret) + { + if (navigator && navigator.vendor) + ret.set_string(navigator.vendor); + else + ret.set_string(""); + }; + Exps.prototype.UserAgent = function (ret) + { + ret.set_string(this.runtime.isDomFree ? "" : navigator.userAgent); + }; + Exps.prototype.QueryString = function (ret) + { + ret.set_string(this.runtime.isDomFree ? "" : window.location.search); + }; + Exps.prototype.QueryParam = function (ret, paramname) + { + if (this.runtime.isDomFree) + { + ret.set_string(""); + return; + } + var match = RegExp('[?&]' + paramname + '=([^&]*)').exec(window.location.search); + if (match) + ret.set_string(decodeURIComponent(match[1].replace(/\+/g, ' '))); + else + ret.set_string(""); + }; + Exps.prototype.Bandwidth = function (ret) + { + var connection = navigator["connection"] || navigator["mozConnection"] || navigator["webkitConnection"]; + if (!connection) + ret.set_float(Number.POSITIVE_INFINITY); + else + { + if (typeof connection["bandwidth"] !== "undefined") + ret.set_float(connection["bandwidth"]); + else if (typeof connection["downlinkMax"] !== "undefined") + ret.set_float(connection["downlinkMax"]); + else + ret.set_float(Number.POSITIVE_INFINITY); + } + }; + Exps.prototype.ConnectionType = function (ret) + { + var connection = navigator["connection"] || navigator["mozConnection"] || navigator["webkitConnection"]; + if (!connection) + ret.set_string("unknown"); + else + { + ret.set_string(connection["type"] || "unknown"); + } + }; + Exps.prototype.BatteryLevel = function (ret) + { + var battery = navigator["battery"] || navigator["mozBattery"] || navigator["webkitBattery"]; + if (battery) + { + ret.set_float(battery["level"]); + } + else + { + maybeLoadBatteryManager(); + if (batteryManager) + { + ret.set_float(batteryManager["level"]); + } + else + { + ret.set_float(1); // not supported/unknown: assume charged + } + } + }; + Exps.prototype.BatteryTimeLeft = function (ret) + { + var battery = navigator["battery"] || navigator["mozBattery"] || navigator["webkitBattery"]; + if (battery) + { + ret.set_float(battery["dischargingTime"]); + } + else + { + maybeLoadBatteryManager(); + if (batteryManager) + { + ret.set_float(batteryManager["dischargingTime"]); + } + else + { + ret.set_float(Number.POSITIVE_INFINITY); // not supported/unknown: assume infinite time left + } + } + }; + Exps.prototype.ExecJS = function (ret, js_) + { + if (!eval) + { + ret.set_any(0); + return; + } + var result = 0; + try { + result = eval(js_); + } + catch (e) + { + if (console && console.error) + console.error("Error executing Javascript: ", e); + } + if (typeof result === "number") + ret.set_any(result); + else if (typeof result === "string") + ret.set_any(result); + else if (typeof result === "boolean") + ret.set_any(result ? 1 : 0); + else + ret.set_any(0); + }; + Exps.prototype.ScreenWidth = function (ret) + { + ret.set_int(screen.width); + }; + Exps.prototype.ScreenHeight = function (ret) + { + ret.set_int(screen.height); + }; + Exps.prototype.DevicePixelRatio = function (ret) + { + ret.set_float(this.runtime.devicePixelRatio); + }; + Exps.prototype.WindowInnerWidth = function (ret) + { + ret.set_int(window.innerWidth); + }; + Exps.prototype.WindowInnerHeight = function (ret) + { + ret.set_int(window.innerHeight); + }; + Exps.prototype.WindowOuterWidth = function (ret) + { + ret.set_int(window.outerWidth); + }; + Exps.prototype.WindowOuterHeight = function (ret) + { + ret.set_int(window.outerHeight); + }; + pluginProto.exps = new Exps(); +}()); +; +; +cr.plugins_.Function = function(runtime) +{ + this.runtime = runtime; +}; +(function () +{ + var pluginProto = cr.plugins_.Function.prototype; + pluginProto.Type = function(plugin) + { + this.plugin = plugin; + this.runtime = plugin.runtime; + }; + var typeProto = pluginProto.Type.prototype; + typeProto.onCreate = function() + { + }; + pluginProto.Instance = function(type) + { + this.type = type; + this.runtime = type.runtime; + }; + var instanceProto = pluginProto.Instance.prototype; + var funcStack = []; + var funcStackPtr = -1; + var isInPreview = false; // set in onCreate + function FuncStackEntry() + { + this.name = ""; + this.retVal = 0; + this.params = []; + }; + function pushFuncStack() + { + funcStackPtr++; + if (funcStackPtr === funcStack.length) + funcStack.push(new FuncStackEntry()); + return funcStack[funcStackPtr]; + }; + function getCurrentFuncStack() + { + if (funcStackPtr < 0) + return null; + return funcStack[funcStackPtr]; + }; + function getOneAboveFuncStack() + { + if (!funcStack.length) + return null; + var i = funcStackPtr + 1; + if (i >= funcStack.length) + i = funcStack.length - 1; + return funcStack[i]; + }; + function popFuncStack() + { +; + funcStackPtr--; + }; + instanceProto.onCreate = function() + { + isInPreview = (typeof cr_is_preview !== "undefined"); + var self = this; + window["c2_callFunction"] = function (name_, params_) + { + var i, len, v; + var fs = pushFuncStack(); + fs.name = name_.toLowerCase(); + fs.retVal = 0; + if (params_) + { + fs.params.length = params_.length; + for (i = 0, len = params_.length; i < len; ++i) + { + v = params_[i]; + if (typeof v === "number" || typeof v === "string") + fs.params[i] = v; + else if (typeof v === "boolean") + fs.params[i] = (v ? 1 : 0); + else + fs.params[i] = 0; + } + } + else + { + cr.clearArray(fs.params); + } + self.runtime.trigger(cr.plugins_.Function.prototype.cnds.OnFunction, self, fs.name); + popFuncStack(); + return fs.retVal; + }; + }; + function Cnds() {}; + Cnds.prototype.OnFunction = function (name_) + { + var fs = getCurrentFuncStack(); + if (!fs) + return false; + return cr.equals_nocase(name_, fs.name); + }; + Cnds.prototype.CompareParam = function (index_, cmp_, value_) + { + var fs = getCurrentFuncStack(); + if (!fs) + return false; + index_ = cr.floor(index_); + if (index_ < 0 || index_ >= fs.params.length) + return false; + return cr.do_cmp(fs.params[index_], cmp_, value_); + }; + pluginProto.cnds = new Cnds(); + function Acts() {}; + Acts.prototype.CallFunction = function (name_, params_) + { + var fs = pushFuncStack(); + fs.name = name_.toLowerCase(); + fs.retVal = 0; + cr.shallowAssignArray(fs.params, params_); + var ran = this.runtime.trigger(cr.plugins_.Function.prototype.cnds.OnFunction, this, fs.name); + if (isInPreview && !ran) + { +; + } + popFuncStack(); + }; + Acts.prototype.SetReturnValue = function (value_) + { + var fs = getCurrentFuncStack(); + if (fs) + fs.retVal = value_; + else +; + }; + Acts.prototype.CallExpression = function (unused) + { + }; + pluginProto.acts = new Acts(); + function Exps() {}; + Exps.prototype.ReturnValue = function (ret) + { + var fs = getOneAboveFuncStack(); + if (fs) + ret.set_any(fs.retVal); + else + ret.set_int(0); + }; + Exps.prototype.ParamCount = function (ret) + { + var fs = getCurrentFuncStack(); + if (fs) + ret.set_int(fs.params.length); + else + { +; + ret.set_int(0); + } + }; + Exps.prototype.Param = function (ret, index_) + { + index_ = cr.floor(index_); + var fs = getCurrentFuncStack(); + if (fs) + { + if (index_ >= 0 && index_ < fs.params.length) + { + ret.set_any(fs.params[index_]); + } + else + { +; + ret.set_int(0); + } + } + else + { +; + ret.set_int(0); + } + }; + Exps.prototype.Call = function (ret, name_) + { + var fs = pushFuncStack(); + fs.name = name_.toLowerCase(); + fs.retVal = 0; + cr.clearArray(fs.params); + var i, len; + for (i = 2, len = arguments.length; i < len; i++) + fs.params.push(arguments[i]); + var ran = this.runtime.trigger(cr.plugins_.Function.prototype.cnds.OnFunction, this, fs.name); + if (isInPreview && !ran) + { +; + } + popFuncStack(); + ret.set_any(fs.retVal); + }; + pluginProto.exps = new Exps(); +}()); +; +; +cr.plugins_.JSON = function(runtime) +{ + this.runtime = runtime; + this.references = {}; +}; +(function () +{ + /*! (C) WebReflection Mit Style License */ + var CircularJSON=function(e,t){function l(e,t,o){var u=[],f=[e],l=[e],c=[o?n:"[Circular]"],h=e,p=1,d;return function(e,v){return t&&(v=t.call(this,e,v)),e!==""&&(h!==this&&(d=p-a.call(f,this)-1,p-=d,f.splice(p,f.length),u.splice(p-1,u.length),h=this),typeof v=="object"&&v?(a.call(f,v)<0&&f.push(h=v),p=f.length,d=a.call(l,v),d<0?(d=l.push(v)-1,o?(u.push((""+e).replace(s,r)),c[d]=n+u.join(n)):c[d]=c[0]):v=c[d]):typeof v=="string"&&o&&(v=v.replace(r,i).replace(n,r))),v}}function c(e,t){for(var r=0,i=t.length;r 0) { + for (var i = 0; i < count; i += rowBreak) { + rows.push(Math.min(rowBreak, count - i)); + } + } else { + if (count <= 5) { + rows.push(count); + } else { + var top = Math.ceil((count + 1) / 2); + var bottom = count - top; + rows.push(top); + rows.push(bottom); + } + } + var baseY = 0; + if (type === "word") { + baseY = groupGap || (rowGap * rows.length); // word always below slot + } + var index = 0; + for (var r = 0; r < rows.length; r++) { + var itemsInRow = rows[r]; + var rowWidth = itemsInRow * objectWidth + (itemsInRow - 1) * margin; + var startX = (maxWidth - rowWidth) / 2; + for (var i = 0; i < itemsInRow; i++) { + this.calculatedPositions.push({ + x: startX + i * (objectWidth + margin) + objectWidth / 2, + y: baseY + r * rowGap + }); + index++; + } + } + console.log("Calculated positions (multi-row):", this.calculatedPositions); + }; + Acts.prototype.LoadLevelG5 = function (levelIndex) { + if (this.sdk && this.sdk.loadLevelG5) { + this.sdk.loadLevelG5(levelIndex); + } + }; + Acts.prototype.CheckPair = function (idx1, idx2) { + var self = this; + if (this.sdk && this.sdk.checkPair) { + this.sdk.checkPair(idx1, idx2, function (isMatch) { + if (isMatch) { + window["SenaTrigger"].runtime.trigger( + cr.plugins_.SenaPlugin.prototype.cnds.OnPairCorrect, + window["SenaTrigger"], + ); + } else { + window["SenaTrigger"].runtime.trigger( + cr.plugins_.SenaPlugin.prototype.cnds.OnPairWrong, + window["SenaTrigger"], + ); + } + }); + } + }; + Acts.prototype.SetData = function (data1, data2, data3, data4, data5) { + this.customData.data1 = data1 || ""; + this.customData.data2 = data2 || ""; + this.customData.data3 = data3 || ""; + this.customData.data4 = data4 || ""; + this.customData.data5 = data5 || ""; + console.log('Custom data set:', this.customData); + }; + Acts.prototype.PostMessage = function () { + if (this.sdk && this.sdk.sendMessageToParent) { + var dataToSend = { + data1: this.customData.data1, + data2: this.customData.data2, + data3: this.customData.data3, + data4: this.customData.data4, + data5: this.customData.data5 + }; + this.sdk.sendMessageToParent(dataToSend); + console.log('Posted message to parent:', dataToSend); + } else { + console.error('SDK not initialized or sendMessageToParent not available'); + } + }; + pluginProto.acts = new Acts(); + function Exps() {} + Exps.prototype.getQuestionValue = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.getQuestionValue() || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getQuestionType = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.getQuestionType() || "text"); + } else { + ret.set_string("text"); + } + }; + Exps.prototype.getRequestValue = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.getRequestValue() || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getRequestType = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.getRequestType() || "text"); + } else { + ret.set_string("text"); + } + }; + Exps.prototype.getOptionsCount = function (ret) { + if (this.sdk) { + ret.set_int(this.sdk.getOptionsCount() || 0); + } else { + ret.set_int(0); + } + }; + Exps.prototype.getOptionsType = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.getOptionsType() || "text"); + } else { + ret.set_string("text"); + } + }; + Exps.prototype.getOptionsValue = function (ret, index) { + if (this.sdk) { + var value = this.sdk.getOptionsValue(index); + if (value && typeof value === "object") { + ret.set_string(JSON.stringify(value)); + } else { + ret.set_string(value || ""); + } + } else { + ret.set_string(""); + } + }; + Exps.prototype.getHintType = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.getHintType() || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getHintCount = function (ret) { + if (this.sdk) { + ret.set_int(this.sdk.getHintCount() || 0); + } else { + ret.set_int(0); + } + }; + Exps.prototype.getHintValue = function (ret, index) { + if (this.sdk) { + var value = this.sdk.getHintValue(index); + if (value === null) { + ret.set_string(""); + } else if (typeof value === "object") { + ret.set_string(JSON.stringify(value)); + } else { + ret.set_string(value.toString()); + } + } else { + ret.set_string(""); + } + }; + Exps.prototype.getTimeLimit = function (ret) { + if (this.sdk) { + ret.set_int(this.sdk.timeLimit || 0); + } else { + ret.set_int(0); + } + }; + Exps.prototype.getShuffle = function (ret) { + if (this.sdk) { + ret.set_int(this.sdk.shuffle ? 1 : 0); + } else { + ret.set_int(1); + } + }; + Exps.prototype.getGameCode = function (ret) { + if (this.sdk) { + ret.set_string(this.sdk.gameCode || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getGuide = function (ret) { + if (this.sdk && this.sdk.guide) { + ret.set_string(this.sdk.guide() || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.isVoicePlaying = function (ret) { + if (this.sdk && this.sdk.isSpeaking) { + ret.set_int(this.sdk.isSpeaking() ? 1 : 0); + } else { + ret.set_int(0); + } + }; + Exps.prototype.isMusicPlaying = function (ret) { + ret.set_int(this.bgMusicPlaying ? 1 : 0); + }; + Exps.prototype.isMusicPaused = function (ret) { + ret.set_int(this.bgMusicPaused ? 1 : 0); + }; + Exps.prototype.isGamePaused = function (ret) { + ret.set_int(this.isPaused ? 1 : 0); + }; + Exps.prototype.getElapsedTime = function (ret) { + if (this.sdk && this.sdk.startTime) { + var elapsed = + (Date.now() - this.sdk.startTime - this.totalPausedTime) / 1000; + if (this.isPaused) { + elapsed -= (Date.now() - this.pauseTime) / 1000; + } + ret.set_float(Math.max(0, elapsed)); + } else { + ret.set_float(0); + } + }; + Exps.prototype.getPosXbyIndex = function (ret, index) { + if (this.calculatedPositions[index]) { + ret.set_float(this.calculatedPositions[index].x); + } else { + ret.set_float(0); + } + }; + Exps.prototype.getPosYbyIndex = function (ret, index) { + if (this.calculatedPositions[index]) { + ret.set_float(this.calculatedPositions[index].y); + } else { + ret.set_float(0); + } + }; + Exps.prototype.getTargetName = function (ret) { + if (this.sdk && this.sdk.getTargetName) { + ret.set_string(this.sdk.getTargetName() || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getCardName = function (ret, index) { + if (this.sdk && this.sdk.getCardName) { + ret.set_string(this.sdk.getCardName(index) || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getCardImage = function (ret, index) { + if (this.sdk && this.sdk.getCardImage) { + ret.set_string(this.sdk.getCardImage(index) || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getCardAudio = function (ret, index) { + if (this.sdk && this.sdk.getCardAudio) { + ret.set_string(this.sdk.getCardAudio(index) || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getQuestionImage = function (ret) { + if (this.sdk && this.sdk.getQuestionImage) { + ret.set_string(this.sdk.getQuestionImage() || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getTimePerCard = function (ret) { + if (this.sdk && this.sdk.getTimePerCard) { + ret.set_int(this.sdk.getTimePerCard()); + } else { + ret.set_int(0); + } + }; + Exps.prototype.getTotalLevels = function (ret) { + if (this.sdk && this.sdk.getTotalLevels) { + ret.set_int(this.sdk.getTotalLevels()); + } else { + ret.set_int(1); + } + }; + Exps.prototype.getCurrentLevel = function (ret) { + if (this.sdk) { + ret.set_int(this.sdk.currentLevel || 1); + } else { + ret.set_int(1); + } + }; + Exps.prototype.GetCardType = function (ret, index) { + if (this.sdk && this.sdk.getCardType) { + ret.set_string(this.sdk.getCardType(index)); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getCardID = function (ret, index) { + if (this.sdk && this.sdk.getCardID) { + ret.set_string(this.sdk.getCardID(index) || ""); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getData = function (ret, dataIndex) { + var dataKey = "data" + dataIndex; + if (this.customData && this.customData[dataKey] !== undefined) { + ret.set_string(this.customData[dataKey]); + } else { + ret.set_string(""); + } + }; + Exps.prototype.getLastSenderUUID = function (ret) { + ret.set_string(this.lastSenderUUID || ""); + }; + Exps.prototype.getLastMessageJSON = function (ret) { + if (this.lastMessageData) { + ret.set_string(JSON.stringify(this.lastMessageData)); + } else { + ret.set_string("{}"); + } + }; + pluginProto.exps = new Exps(); +})(); +; +; +cr.plugins_.Sprite = function(runtime) +{ + this.runtime = runtime; +}; +(function () +{ + var pluginProto = cr.plugins_.Sprite.prototype; + pluginProto.Type = function(plugin) + { + this.plugin = plugin; + this.runtime = plugin.runtime; + }; + var typeProto = pluginProto.Type.prototype; + function frame_getDataUri() + { + if (this.datauri.length === 0) + { + var tmpcanvas = document.createElement("canvas"); + tmpcanvas.width = this.width; + tmpcanvas.height = this.height; + var tmpctx = tmpcanvas.getContext("2d"); + if (this.spritesheeted) + { + tmpctx.drawImage(this.texture_img, this.offx, this.offy, this.width, this.height, + 0, 0, this.width, this.height); + } + else + { + tmpctx.drawImage(this.texture_img, 0, 0, this.width, this.height); + } + this.datauri = tmpcanvas.toDataURL("image/png"); + } + return this.datauri; + }; + typeProto.onCreate = function() + { + if (this.is_family) + return; + var i, leni, j, lenj; + var anim, frame, animobj, frameobj, wt, uv; + this.all_frames = []; + this.has_loaded_textures = false; + for (i = 0, leni = this.animations.length; i < leni; i++) + { + anim = this.animations[i]; + animobj = {}; + animobj.name = anim[0]; + animobj.speed = anim[1]; + animobj.loop = anim[2]; + animobj.repeatcount = anim[3]; + animobj.repeatto = anim[4]; + animobj.pingpong = anim[5]; + animobj.sid = anim[6]; + animobj.frames = []; + for (j = 0, lenj = anim[7].length; j < lenj; j++) + { + frame = anim[7][j]; + frameobj = {}; + frameobj.texture_file = frame[0]; + frameobj.texture_filesize = frame[1]; + frameobj.offx = frame[2]; + frameobj.offy = frame[3]; + frameobj.width = frame[4]; + frameobj.height = frame[5]; + frameobj.duration = frame[6]; + frameobj.hotspotX = frame[7]; + frameobj.hotspotY = frame[8]; + frameobj.image_points = frame[9]; + frameobj.poly_pts = frame[10]; + frameobj.pixelformat = frame[11]; + frameobj.spritesheeted = (frameobj.width !== 0); + frameobj.datauri = ""; // generated on demand and cached + frameobj.getDataUri = frame_getDataUri; + console.log(frame); + uv = {}; + uv.left = 0; + uv.top = 0; + uv.right = 1; + uv.bottom = 1; + frameobj.sheetTex = uv; + frameobj.webGL_texture = null; + wt = this.runtime.findWaitingTexture(frame[0]); + if (wt) + { + frameobj.texture_img = wt; + } + else + { + frameobj.texture_img = new Image(); + frameobj.texture_img.cr_src = frame[0]; + frameobj.texture_img.cr_filesize = frame[1]; + frameobj.texture_img.c2webGL_texture = null; + this.runtime.waitForImageLoad(frameobj.texture_img, frame[0]); + } + cr.seal(frameobj); + animobj.frames.push(frameobj); + this.all_frames.push(frameobj); + } + cr.seal(animobj); + this.animations[i] = animobj; // swap array data for object + } + }; + typeProto.updateAllCurrentTexture = function () + { + var i, len, inst; + for (i = 0, len = this.instances.length; i < len; i++) + { + inst = this.instances[i]; + inst.curWebGLTexture = inst.curFrame.webGL_texture; + } + }; + typeProto.onLostWebGLContext = function () + { + if (this.is_family) + return; + var i, len, frame; + for (i = 0, len = this.all_frames.length; i < len; ++i) + { + frame = this.all_frames[i]; + frame.texture_img.c2webGL_texture = null; + frame.webGL_texture = null; + } + this.has_loaded_textures = false; + this.updateAllCurrentTexture(); + }; + typeProto.onRestoreWebGLContext = function () + { + if (this.is_family || !this.instances.length) + return; + var i, len, frame; + for (i = 0, len = this.all_frames.length; i < len; ++i) + { + frame = this.all_frames[i]; + frame.webGL_texture = this.runtime.glwrap.loadTexture(frame.texture_img, false, this.runtime.linearSampling, frame.pixelformat); + } + this.updateAllCurrentTexture(); + }; + typeProto.loadTextures = function () + { + if (this.is_family || this.has_loaded_textures || !this.runtime.glwrap) + return; + var i, len, frame; + for (i = 0, len = this.all_frames.length; i < len; ++i) + { + frame = this.all_frames[i]; + frame.webGL_texture = this.runtime.glwrap.loadTexture(frame.texture_img, false, this.runtime.linearSampling, frame.pixelformat); + } + this.has_loaded_textures = true; + }; + typeProto.unloadTextures = function () + { + if (this.is_family || this.instances.length || !this.has_loaded_textures) + return; + var i, len, frame; + for (i = 0, len = this.all_frames.length; i < len; ++i) + { + frame = this.all_frames[i]; + this.runtime.glwrap.deleteTexture(frame.webGL_texture); + frame.webGL_texture = null; + } + this.has_loaded_textures = false; + }; + var already_drawn_images = []; + typeProto.preloadCanvas2D = function (ctx) + { + var i, len, frameimg; + cr.clearArray(already_drawn_images); + for (i = 0, len = this.all_frames.length; i < len; ++i) + { + frameimg = this.all_frames[i].texture_img; + if (already_drawn_images.indexOf(frameimg) !== -1) + continue; + ctx.drawImage(frameimg, 0, 0); + already_drawn_images.push(frameimg); + } + }; + pluginProto.Instance = function(type) + { + this.type = type; + this.runtime = type.runtime; + var poly_pts = this.type.animations[0].frames[0].poly_pts; + if (this.recycled) + this.collision_poly.set_pts(poly_pts); + else + this.collision_poly = new cr.CollisionPoly(poly_pts); + }; + var instanceProto = pluginProto.Instance.prototype; + instanceProto.onCreate = function() + { + this.visible = (this.properties[0] === 0); // 0=visible, 1=invisible + this.isTicking = false; + this.inAnimTrigger = false; + this.collisionsEnabled = (this.properties[3] !== 0); + this.cur_animation = this.getAnimationByName(this.properties[1]) || this.type.animations[0]; + this.cur_frame = this.properties[2]; + if (this.cur_frame < 0) + this.cur_frame = 0; + if (this.cur_frame >= this.cur_animation.frames.length) + this.cur_frame = this.cur_animation.frames.length - 1; + var curanimframe = this.cur_animation.frames[this.cur_frame]; + this.collision_poly.set_pts(curanimframe.poly_pts); + this.hotspotX = curanimframe.hotspotX; + this.hotspotY = curanimframe.hotspotY; + this.cur_anim_speed = this.cur_animation.speed; + this.cur_anim_repeatto = this.cur_animation.repeatto; + if (!(this.type.animations.length === 1 && this.type.animations[0].frames.length === 1) && this.cur_anim_speed !== 0) + { + this.runtime.tickMe(this); + this.isTicking = true; + } + if (this.recycled) + this.animTimer.reset(); + else + this.animTimer = new cr.KahanAdder(); + this.frameStart = this.getNowTime(); + this.animPlaying = true; + this.animRepeats = 0; + this.animForwards = true; + this.animTriggerName = ""; + this.changeAnimName = ""; + this.changeAnimFrom = 0; + this.changeAnimFrame = -1; + this.type.loadTextures(); + var i, leni, j, lenj; + var anim, frame, uv, maintex; + for (i = 0, leni = this.type.animations.length; i < leni; i++) + { + anim = this.type.animations[i]; + for (j = 0, lenj = anim.frames.length; j < lenj; j++) + { + frame = anim.frames[j]; + if (frame.width === 0) + { + frame.width = frame.texture_img.width; + frame.height = frame.texture_img.height; + } + if (frame.spritesheeted) + { + maintex = frame.texture_img; + uv = frame.sheetTex; + uv.left = frame.offx / maintex.width; + uv.top = frame.offy / maintex.height; + uv.right = (frame.offx + frame.width) / maintex.width; + uv.bottom = (frame.offy + frame.height) / maintex.height; + if (frame.offx === 0 && frame.offy === 0 && frame.width === maintex.width && frame.height === maintex.height) + { + frame.spritesheeted = false; + } + } + } + } + this.curFrame = this.cur_animation.frames[this.cur_frame]; + this.curWebGLTexture = this.curFrame.webGL_texture; + }; + instanceProto.saveToJSON = function () + { + var o = { + "a": this.cur_animation.sid, + "f": this.cur_frame, + "cas": this.cur_anim_speed, + "fs": this.frameStart, + "ar": this.animRepeats, + "at": this.animTimer.sum, + "rt": this.cur_anim_repeatto + }; + if (!this.animPlaying) + o["ap"] = this.animPlaying; + if (!this.animForwards) + o["af"] = this.animForwards; + return o; + }; + instanceProto.loadFromJSON = function (o) + { + var anim = this.getAnimationBySid(o["a"]); + if (anim) + this.cur_animation = anim; + this.cur_frame = o["f"]; + if (this.cur_frame < 0) + this.cur_frame = 0; + if (this.cur_frame >= this.cur_animation.frames.length) + this.cur_frame = this.cur_animation.frames.length - 1; + this.cur_anim_speed = o["cas"]; + this.frameStart = o["fs"]; + this.animRepeats = o["ar"]; + this.animTimer.reset(); + this.animTimer.sum = o["at"]; + this.animPlaying = o.hasOwnProperty("ap") ? o["ap"] : true; + this.animForwards = o.hasOwnProperty("af") ? o["af"] : true; + if (o.hasOwnProperty("rt")) + this.cur_anim_repeatto = o["rt"]; + else + this.cur_anim_repeatto = this.cur_animation.repeatto; + this.curFrame = this.cur_animation.frames[this.cur_frame]; + this.curWebGLTexture = this.curFrame.webGL_texture; + this.collision_poly.set_pts(this.curFrame.poly_pts); + this.hotspotX = this.curFrame.hotspotX; + this.hotspotY = this.curFrame.hotspotY; + }; + instanceProto.animationFinish = function (reverse) + { + this.cur_frame = reverse ? 0 : this.cur_animation.frames.length - 1; + this.animPlaying = false; + this.animTriggerName = this.cur_animation.name; + this.inAnimTrigger = true; + this.runtime.trigger(cr.plugins_.Sprite.prototype.cnds.OnAnyAnimFinished, this); + this.runtime.trigger(cr.plugins_.Sprite.prototype.cnds.OnAnimFinished, this); + this.inAnimTrigger = false; + this.animRepeats = 0; + }; + instanceProto.getNowTime = function() + { + return this.animTimer.sum; + }; + instanceProto.tick = function() + { + this.animTimer.add(this.runtime.getDt(this)); + if (this.changeAnimName.length) + this.doChangeAnim(); + if (this.changeAnimFrame >= 0) + this.doChangeAnimFrame(); + var now = this.getNowTime(); + var cur_animation = this.cur_animation; + var prev_frame = cur_animation.frames[this.cur_frame]; + var next_frame; + var cur_frame_time = prev_frame.duration / this.cur_anim_speed; + if (this.animPlaying && now >= this.frameStart + cur_frame_time) + { + if (this.animForwards) + { + this.cur_frame++; + } + else + { + this.cur_frame--; + } + this.frameStart += cur_frame_time; + if (this.cur_frame >= cur_animation.frames.length) + { + if (cur_animation.pingpong) + { + this.animForwards = false; + this.cur_frame = cur_animation.frames.length - 2; + } + else if (cur_animation.loop) + { + this.cur_frame = this.cur_anim_repeatto; + } + else + { + this.animRepeats++; + if (this.animRepeats >= cur_animation.repeatcount) + { + this.animationFinish(false); + } + else + { + this.cur_frame = this.cur_anim_repeatto; + } + } + } + if (this.cur_frame < 0) + { + if (cur_animation.pingpong) + { + this.cur_frame = 1; + this.animForwards = true; + if (!cur_animation.loop) + { + this.animRepeats++; + if (this.animRepeats >= cur_animation.repeatcount) + { + this.animationFinish(true); + } + } + } + else + { + if (cur_animation.loop) + { + this.cur_frame = this.cur_anim_repeatto; + } + else + { + this.animRepeats++; + if (this.animRepeats >= cur_animation.repeatcount) + { + this.animationFinish(true); + } + else + { + this.cur_frame = this.cur_anim_repeatto; + } + } + } + } + if (this.cur_frame < 0) + this.cur_frame = 0; + else if (this.cur_frame >= cur_animation.frames.length) + this.cur_frame = cur_animation.frames.length - 1; + if (now > this.frameStart + (cur_animation.frames[this.cur_frame].duration / this.cur_anim_speed)) + { + this.frameStart = now; + } + next_frame = cur_animation.frames[this.cur_frame]; + this.OnFrameChanged(prev_frame, next_frame); + this.runtime.redraw = true; + } + }; + instanceProto.getAnimationByName = function (name_) + { + var i, len, a; + for (i = 0, len = this.type.animations.length; i < len; i++) + { + a = this.type.animations[i]; + if (cr.equals_nocase(a.name, name_)) + return a; + } + return null; + }; + instanceProto.getAnimationBySid = function (sid_) + { + var i, len, a; + for (i = 0, len = this.type.animations.length; i < len; i++) + { + a = this.type.animations[i]; + if (a.sid === sid_) + return a; + } + return null; + }; + instanceProto.doChangeAnim = function () + { + var prev_frame = this.cur_animation.frames[this.cur_frame]; + var anim = this.getAnimationByName(this.changeAnimName); + this.changeAnimName = ""; + if (!anim) + return; + if (cr.equals_nocase(anim.name, this.cur_animation.name) && this.animPlaying) + return; + this.cur_animation = anim; + this.cur_anim_speed = anim.speed; + this.cur_anim_repeatto = anim.repeatto; + if (this.cur_frame < 0) + this.cur_frame = 0; + if (this.cur_frame >= this.cur_animation.frames.length) + this.cur_frame = this.cur_animation.frames.length - 1; + if (this.changeAnimFrom === 1) + this.cur_frame = 0; + this.animPlaying = true; + this.frameStart = this.getNowTime(); + this.animForwards = true; + this.OnFrameChanged(prev_frame, this.cur_animation.frames[this.cur_frame]); + this.runtime.redraw = true; + }; + instanceProto.doChangeAnimFrame = function () + { + var prev_frame = this.cur_animation.frames[this.cur_frame]; + var prev_frame_number = this.cur_frame; + this.cur_frame = cr.floor(this.changeAnimFrame); + if (this.cur_frame < 0) + this.cur_frame = 0; + if (this.cur_frame >= this.cur_animation.frames.length) + this.cur_frame = this.cur_animation.frames.length - 1; + if (prev_frame_number !== this.cur_frame) + { + this.OnFrameChanged(prev_frame, this.cur_animation.frames[this.cur_frame]); + this.frameStart = this.getNowTime(); + this.runtime.redraw = true; + } + this.changeAnimFrame = -1; + }; + instanceProto.OnFrameChanged = function (prev_frame, next_frame) + { + var oldw = prev_frame.width; + var oldh = prev_frame.height; + var neww = next_frame.width; + var newh = next_frame.height; + if (oldw != neww) + this.width *= (neww / oldw); + if (oldh != newh) + this.height *= (newh / oldh); + this.hotspotX = next_frame.hotspotX; + this.hotspotY = next_frame.hotspotY; + this.collision_poly.set_pts(next_frame.poly_pts); + this.set_bbox_changed(); + this.curFrame = next_frame; + this.curWebGLTexture = next_frame.webGL_texture; + var i, len, b; + for (i = 0, len = this.behavior_insts.length; i < len; i++) + { + b = this.behavior_insts[i]; + if (b.onSpriteFrameChanged) + b.onSpriteFrameChanged(prev_frame, next_frame); + } + this.runtime.trigger(cr.plugins_.Sprite.prototype.cnds.OnFrameChanged, this); + }; + instanceProto.draw = function(ctx) + { + ctx.globalAlpha = this.opacity; + var cur_frame = this.curFrame; + var spritesheeted = cur_frame.spritesheeted; + var cur_image = cur_frame.texture_img; + var myx = this.x; + var myy = this.y; + var w = this.width; + var h = this.height; + if (this.angle === 0 && w >= 0 && h >= 0) + { + myx -= this.hotspotX * w; + myy -= this.hotspotY * h; + if (this.runtime.pixel_rounding) + { + myx = Math.round(myx); + myy = Math.round(myy); + } + if (spritesheeted) + { + ctx.drawImage(cur_image, cur_frame.offx, cur_frame.offy, cur_frame.width, cur_frame.height, + myx, myy, w, h); + } + else + { + ctx.drawImage(cur_image, myx, myy, w, h); + } + } + else + { + if (this.runtime.pixel_rounding) + { + myx = Math.round(myx); + myy = Math.round(myy); + } + ctx.save(); + var widthfactor = w > 0 ? 1 : -1; + var heightfactor = h > 0 ? 1 : -1; + ctx.translate(myx, myy); + if (widthfactor !== 1 || heightfactor !== 1) + ctx.scale(widthfactor, heightfactor); + ctx.rotate(this.angle * widthfactor * heightfactor); + var drawx = 0 - (this.hotspotX * cr.abs(w)) + var drawy = 0 - (this.hotspotY * cr.abs(h)); + if (spritesheeted) + { + ctx.drawImage(cur_image, cur_frame.offx, cur_frame.offy, cur_frame.width, cur_frame.height, + drawx, drawy, cr.abs(w), cr.abs(h)); + } + else + { + ctx.drawImage(cur_image, drawx, drawy, cr.abs(w), cr.abs(h)); + } + ctx.restore(); + } + /* + ctx.strokeStyle = "#f00"; + ctx.lineWidth = 3; + ctx.beginPath(); + this.collision_poly.cache_poly(this.width, this.height, this.angle); + var i, len, ax, ay, bx, by; + for (i = 0, len = this.collision_poly.pts_count; i < len; i++) + { + ax = this.collision_poly.pts_cache[i*2] + this.x; + ay = this.collision_poly.pts_cache[i*2+1] + this.y; + bx = this.collision_poly.pts_cache[((i+1)%len)*2] + this.x; + by = this.collision_poly.pts_cache[((i+1)%len)*2+1] + this.y; + ctx.moveTo(ax, ay); + ctx.lineTo(bx, by); + } + ctx.stroke(); + ctx.closePath(); + */ + /* + if (this.behavior_insts.length >= 1 && this.behavior_insts[0].draw) + { + this.behavior_insts[0].draw(ctx); + } + */ + }; + instanceProto.drawGL_earlyZPass = function(glw) + { + this.drawGL(glw); + }; + instanceProto.drawGL = function(glw) + { + glw.setTexture(this.curWebGLTexture); + glw.setOpacity(this.opacity); + var cur_frame = this.curFrame; + var q = this.bquad; + if (this.runtime.pixel_rounding) + { + var ox = Math.round(this.x) - this.x; + var oy = Math.round(this.y) - this.y; + if (cur_frame.spritesheeted) + glw.quadTex(q.tlx + ox, q.tly + oy, q.trx + ox, q.try_ + oy, q.brx + ox, q.bry + oy, q.blx + ox, q.bly + oy, cur_frame.sheetTex); + else + glw.quad(q.tlx + ox, q.tly + oy, q.trx + ox, q.try_ + oy, q.brx + ox, q.bry + oy, q.blx + ox, q.bly + oy); + } + else + { + if (cur_frame.spritesheeted) + glw.quadTex(q.tlx, q.tly, q.trx, q.try_, q.brx, q.bry, q.blx, q.bly, cur_frame.sheetTex); + else + glw.quad(q.tlx, q.tly, q.trx, q.try_, q.brx, q.bry, q.blx, q.bly); + } + }; + instanceProto.getImagePointIndexByName = function(name_) + { + var cur_frame = this.curFrame; + var i, len; + for (i = 0, len = cur_frame.image_points.length; i < len; i++) + { + if (cr.equals_nocase(name_, cur_frame.image_points[i][0])) + return i; + } + return -1; + }; + instanceProto.getImagePoint = function(imgpt, getX) + { + var cur_frame = this.curFrame; + var image_points = cur_frame.image_points; + var index; + if (cr.is_string(imgpt)) + index = this.getImagePointIndexByName(imgpt); + else + index = imgpt - 1; // 0 is origin + index = cr.floor(index); + if (index < 0 || index >= image_points.length) + return getX ? this.x : this.y; // return origin + var x = (image_points[index][1] - cur_frame.hotspotX) * this.width; + var y = image_points[index][2]; + y = (y - cur_frame.hotspotY) * this.height; + var cosa = Math.cos(this.angle); + var sina = Math.sin(this.angle); + var x_temp = (x * cosa) - (y * sina); + y = (y * cosa) + (x * sina); + x = x_temp; + x += this.x; + y += this.y; + return getX ? x : y; + }; + function Cnds() {}; + var arrCache = []; + function allocArr() + { + if (arrCache.length) + return arrCache.pop(); + else + return [0, 0, 0]; + }; + function freeArr(a) + { + a[0] = 0; + a[1] = 0; + a[2] = 0; + arrCache.push(a); + }; + function makeCollKey(a, b) + { + if (a < b) + return "" + a + "," + b; + else + return "" + b + "," + a; + }; + function collmemory_add(collmemory, a, b, tickcount) + { + var a_uid = a.uid; + var b_uid = b.uid; + var key = makeCollKey(a_uid, b_uid); + if (collmemory.hasOwnProperty(key)) + { + collmemory[key][2] = tickcount; + return; + } + var arr = allocArr(); + arr[0] = a_uid; + arr[1] = b_uid; + arr[2] = tickcount; + collmemory[key] = arr; + }; + function collmemory_remove(collmemory, a, b) + { + var key = makeCollKey(a.uid, b.uid); + if (collmemory.hasOwnProperty(key)) + { + freeArr(collmemory[key]); + delete collmemory[key]; + } + }; + function collmemory_removeInstance(collmemory, inst) + { + var uid = inst.uid; + var p, entry; + for (p in collmemory) + { + if (collmemory.hasOwnProperty(p)) + { + entry = collmemory[p]; + if (entry[0] === uid || entry[1] === uid) + { + freeArr(collmemory[p]); + delete collmemory[p]; + } + } + } + }; + var last_coll_tickcount = -2; + function collmemory_has(collmemory, a, b) + { + var key = makeCollKey(a.uid, b.uid); + if (collmemory.hasOwnProperty(key)) + { + last_coll_tickcount = collmemory[key][2]; + return true; + } + else + { + last_coll_tickcount = -2; + return false; + } + }; + var candidates1 = []; + Cnds.prototype.OnCollision = function (rtype) + { + if (!rtype) + return false; + var runtime = this.runtime; + var cnd = runtime.getCurrentCondition(); + var ltype = cnd.type; + var collmemory = null; + if (cnd.extra["collmemory"]) + { + collmemory = cnd.extra["collmemory"]; + } + else + { + collmemory = {}; + cnd.extra["collmemory"] = collmemory; + } + if (!cnd.extra["spriteCreatedDestroyCallback"]) + { + cnd.extra["spriteCreatedDestroyCallback"] = true; + runtime.addDestroyCallback(function(inst) { + collmemory_removeInstance(cnd.extra["collmemory"], inst); + }); + } + var lsol = ltype.getCurrentSol(); + var rsol = rtype.getCurrentSol(); + var linstances = lsol.getObjects(); + var rinstances; + var registeredInstances; + var l, linst, r, rinst; + var curlsol, currsol; + var tickcount = this.runtime.tickcount; + var lasttickcount = tickcount - 1; + var exists, run; + var current_event = runtime.getCurrentEventStack().current_event; + var orblock = current_event.orblock; + for (l = 0; l < linstances.length; l++) + { + linst = linstances[l]; + if (rsol.select_all) + { + linst.update_bbox(); + this.runtime.getCollisionCandidates(linst.layer, rtype, linst.bbox, candidates1); + rinstances = candidates1; + this.runtime.addRegisteredCollisionCandidates(linst, rtype, rinstances); + } + else + { + rinstances = rsol.getObjects(); + } + for (r = 0; r < rinstances.length; r++) + { + rinst = rinstances[r]; + if (runtime.testOverlap(linst, rinst) || runtime.checkRegisteredCollision(linst, rinst)) + { + exists = collmemory_has(collmemory, linst, rinst); + run = (!exists || (last_coll_tickcount < lasttickcount)); + collmemory_add(collmemory, linst, rinst, tickcount); + if (run) + { + runtime.pushCopySol(current_event.solModifiers); + curlsol = ltype.getCurrentSol(); + currsol = rtype.getCurrentSol(); + curlsol.select_all = false; + currsol.select_all = false; + if (ltype === rtype) + { + curlsol.instances.length = 2; // just use lsol, is same reference as rsol + curlsol.instances[0] = linst; + curlsol.instances[1] = rinst; + ltype.applySolToContainer(); + } + else + { + curlsol.instances.length = 1; + currsol.instances.length = 1; + curlsol.instances[0] = linst; + currsol.instances[0] = rinst; + ltype.applySolToContainer(); + rtype.applySolToContainer(); + } + current_event.retrigger(); + runtime.popSol(current_event.solModifiers); + } + } + else + { + collmemory_remove(collmemory, linst, rinst); + } + } + cr.clearArray(candidates1); + } + return false; + }; + var rpicktype = null; + var rtopick = new cr.ObjectSet(); + var needscollisionfinish = false; + var candidates2 = []; + var temp_bbox = new cr.rect(0, 0, 0, 0); + function DoOverlapCondition(rtype, offx, offy) + { + if (!rtype) + return false; + var do_offset = (offx !== 0 || offy !== 0); + var oldx, oldy, ret = false, r, lenr, rinst; + var cnd = this.runtime.getCurrentCondition(); + var ltype = cnd.type; + var inverted = cnd.inverted; + var rsol = rtype.getCurrentSol(); + var orblock = this.runtime.getCurrentEventStack().current_event.orblock; + var rinstances; + if (rsol.select_all) + { + this.update_bbox(); + temp_bbox.copy(this.bbox); + temp_bbox.offset(offx, offy); + this.runtime.getCollisionCandidates(this.layer, rtype, temp_bbox, candidates2); + rinstances = candidates2; + } + else if (orblock) + { + if (this.runtime.isCurrentConditionFirst() && !rsol.else_instances.length && rsol.instances.length) + rinstances = rsol.instances; + else + rinstances = rsol.else_instances; + } + else + { + rinstances = rsol.instances; + } + rpicktype = rtype; + needscollisionfinish = (ltype !== rtype && !inverted); + if (do_offset) + { + oldx = this.x; + oldy = this.y; + this.x += offx; + this.y += offy; + this.set_bbox_changed(); + } + for (r = 0, lenr = rinstances.length; r < lenr; r++) + { + rinst = rinstances[r]; + if (this.runtime.testOverlap(this, rinst)) + { + ret = true; + if (inverted) + break; + if (ltype !== rtype) + rtopick.add(rinst); + } + } + if (do_offset) + { + this.x = oldx; + this.y = oldy; + this.set_bbox_changed(); + } + cr.clearArray(candidates2); + return ret; + }; + typeProto.finish = function (do_pick) + { + if (!needscollisionfinish) + return; + if (do_pick) + { + var orblock = this.runtime.getCurrentEventStack().current_event.orblock; + var sol = rpicktype.getCurrentSol(); + var topick = rtopick.valuesRef(); + var i, len, inst; + if (sol.select_all) + { + sol.select_all = false; + cr.clearArray(sol.instances); + for (i = 0, len = topick.length; i < len; ++i) + { + sol.instances[i] = topick[i]; + } + if (orblock) + { + cr.clearArray(sol.else_instances); + for (i = 0, len = rpicktype.instances.length; i < len; ++i) + { + inst = rpicktype.instances[i]; + if (!rtopick.contains(inst)) + sol.else_instances.push(inst); + } + } + } + else + { + if (orblock) + { + var initsize = sol.instances.length; + for (i = 0, len = topick.length; i < len; ++i) + { + sol.instances[initsize + i] = topick[i]; + cr.arrayFindRemove(sol.else_instances, topick[i]); + } + } + else + { + cr.shallowAssignArray(sol.instances, topick); + } + } + rpicktype.applySolToContainer(); + } + rtopick.clear(); + needscollisionfinish = false; + }; + Cnds.prototype.IsOverlapping = function (rtype) + { + return DoOverlapCondition.call(this, rtype, 0, 0); + }; + Cnds.prototype.IsOverlappingOffset = function (rtype, offx, offy) + { + return DoOverlapCondition.call(this, rtype, offx, offy); + }; + Cnds.prototype.IsAnimPlaying = function (animname) + { + if (this.changeAnimName.length) + return cr.equals_nocase(this.changeAnimName, animname); + else + return cr.equals_nocase(this.cur_animation.name, animname); + }; + Cnds.prototype.CompareFrame = function (cmp, framenum) + { + return cr.do_cmp(this.cur_frame, cmp, framenum); + }; + Cnds.prototype.CompareAnimSpeed = function (cmp, x) + { + var s = (this.animForwards ? this.cur_anim_speed : -this.cur_anim_speed); + return cr.do_cmp(s, cmp, x); + }; + Cnds.prototype.OnAnimFinished = function (animname) + { + return cr.equals_nocase(this.animTriggerName, animname); + }; + Cnds.prototype.OnAnyAnimFinished = function () + { + return true; + }; + Cnds.prototype.OnFrameChanged = function () + { + return true; + }; + Cnds.prototype.IsMirrored = function () + { + return this.width < 0; + }; + Cnds.prototype.IsFlipped = function () + { + return this.height < 0; + }; + Cnds.prototype.OnURLLoaded = function () + { + return true; + }; + Cnds.prototype.IsCollisionEnabled = function () + { + return this.collisionsEnabled; + }; + pluginProto.cnds = new Cnds(); + function Acts() {}; + Acts.prototype.Spawn = function (obj, layer, imgpt) + { + if (!obj || !layer) + return; + var inst = this.runtime.createInstance(obj, layer, this.getImagePoint(imgpt, true), this.getImagePoint(imgpt, false)); + if (!inst) + return; + if (typeof inst.angle !== "undefined") + { + inst.angle = this.angle; + inst.set_bbox_changed(); + } + this.runtime.isInOnDestroy++; + var i, len, s; + this.runtime.trigger(Object.getPrototypeOf(obj.plugin).cnds.OnCreated, inst); + if (inst.is_contained) + { + for (i = 0, len = inst.siblings.length; i < len; i++) + { + s = inst.siblings[i]; + this.runtime.trigger(Object.getPrototypeOf(s.type.plugin).cnds.OnCreated, s); + } + } + this.runtime.isInOnDestroy--; + var cur_act = this.runtime.getCurrentAction(); + var reset_sol = false; + if (cr.is_undefined(cur_act.extra["Spawn_LastExec"]) || cur_act.extra["Spawn_LastExec"] < this.runtime.execcount) + { + reset_sol = true; + cur_act.extra["Spawn_LastExec"] = this.runtime.execcount; + } + var sol; + if (obj != this.type) + { + sol = obj.getCurrentSol(); + sol.select_all = false; + if (reset_sol) + { + cr.clearArray(sol.instances); + sol.instances[0] = inst; + } + else + sol.instances.push(inst); + if (inst.is_contained) + { + for (i = 0, len = inst.siblings.length; i < len; i++) + { + s = inst.siblings[i]; + sol = s.type.getCurrentSol(); + sol.select_all = false; + if (reset_sol) + { + cr.clearArray(sol.instances); + sol.instances[0] = s; + } + else + sol.instances.push(s); + } + } + } + }; + Acts.prototype.SetEffect = function (effect) + { + this.blend_mode = effect; + this.compositeOp = cr.effectToCompositeOp(effect); + cr.setGLBlend(this, effect, this.runtime.gl); + this.runtime.redraw = true; + }; + Acts.prototype.StopAnim = function () + { + this.animPlaying = false; + }; + Acts.prototype.StartAnim = function (from) + { + this.animPlaying = true; + this.frameStart = this.getNowTime(); + if (from === 1 && this.cur_frame !== 0) + { + this.changeAnimFrame = 0; + if (!this.inAnimTrigger) + this.doChangeAnimFrame(); + } + if (!this.isTicking) + { + this.runtime.tickMe(this); + this.isTicking = true; + } + }; + Acts.prototype.SetAnim = function (animname, from) + { + this.changeAnimName = animname; + this.changeAnimFrom = from; + if (!this.isTicking) + { + this.runtime.tickMe(this); + this.isTicking = true; + } + if (!this.inAnimTrigger) + this.doChangeAnim(); + }; + Acts.prototype.SetAnimFrame = function (framenumber) + { + this.changeAnimFrame = framenumber; + if (!this.isTicking) + { + this.runtime.tickMe(this); + this.isTicking = true; + } + if (!this.inAnimTrigger) + this.doChangeAnimFrame(); + }; + Acts.prototype.SetAnimSpeed = function (s) + { + this.cur_anim_speed = cr.abs(s); + this.animForwards = (s >= 0); + if (!this.isTicking) + { + this.runtime.tickMe(this); + this.isTicking = true; + } + }; + Acts.prototype.SetAnimRepeatToFrame = function (s) + { + s = Math.floor(s); + if (s < 0) + s = 0; + if (s >= this.cur_animation.frames.length) + s = this.cur_animation.frames.length - 1; + this.cur_anim_repeatto = s; + }; + Acts.prototype.SetMirrored = function (m) + { + var neww = cr.abs(this.width) * (m === 0 ? -1 : 1); + if (this.width === neww) + return; + this.width = neww; + this.set_bbox_changed(); + }; + Acts.prototype.SetFlipped = function (f) + { + var newh = cr.abs(this.height) * (f === 0 ? -1 : 1); + if (this.height === newh) + return; + this.height = newh; + this.set_bbox_changed(); + }; + Acts.prototype.SetScale = function (s) + { + var cur_frame = this.curFrame; + var mirror_factor = (this.width < 0 ? -1 : 1); + var flip_factor = (this.height < 0 ? -1 : 1); + var new_width = cur_frame.width * s * mirror_factor; + var new_height = cur_frame.height * s * flip_factor; + if (this.width !== new_width || this.height !== new_height) + { + this.width = new_width; + this.height = new_height; + this.set_bbox_changed(); + } + }; + Acts.prototype.LoadURL = function (url_, resize_, crossOrigin_) + { + var img = new Image(); + var self = this; + var curFrame_ = this.curFrame; + img.onload = function () + { + if (curFrame_.texture_img.src === img.src) + { + if (self.runtime.glwrap && self.curFrame === curFrame_) + self.curWebGLTexture = curFrame_.webGL_texture; + if (resize_ === 0) // resize to image size + { + self.width = img.width; + self.height = img.height; + self.set_bbox_changed(); + } + self.runtime.redraw = true; + self.runtime.trigger(cr.plugins_.Sprite.prototype.cnds.OnURLLoaded, self); + return; + } + curFrame_.texture_img = img; + curFrame_.offx = 0; + curFrame_.offy = 0; + curFrame_.width = img.width; + curFrame_.height = img.height; + curFrame_.spritesheeted = false; + curFrame_.datauri = ""; + curFrame_.pixelformat = 0; // reset to RGBA, since we don't know what type of image will have come in + if (self.runtime.glwrap) + { + if (curFrame_.webGL_texture) + self.runtime.glwrap.deleteTexture(curFrame_.webGL_texture); + curFrame_.webGL_texture = self.runtime.glwrap.loadTexture(img, false, self.runtime.linearSampling); + if (self.curFrame === curFrame_) + self.curWebGLTexture = curFrame_.webGL_texture; + self.type.updateAllCurrentTexture(); + } + if (resize_ === 0) // resize to image size + { + self.width = img.width; + self.height = img.height; + self.set_bbox_changed(); + } + self.runtime.redraw = true; + self.runtime.trigger(cr.plugins_.Sprite.prototype.cnds.OnURLLoaded, self); + }; + if (url_.substr(0, 5) !== "data:" && crossOrigin_ === 0) + img["crossOrigin"] = "anonymous"; + this.runtime.setImageSrc(img, url_); + }; + Acts.prototype.SetCollisions = function (set_) + { + if (this.collisionsEnabled === (set_ !== 0)) + return; // no change + this.collisionsEnabled = (set_ !== 0); + if (this.collisionsEnabled) + this.set_bbox_changed(); // needs to be added back to cells + else + { + if (this.collcells.right >= this.collcells.left) + this.type.collision_grid.update(this, this.collcells, null); + this.collcells.set(0, 0, -1, -1); + } + }; + pluginProto.acts = new Acts(); + function Exps() {}; + Exps.prototype.AnimationFrame = function (ret) + { + ret.set_int(this.cur_frame); + }; + Exps.prototype.AnimationFrameCount = function (ret) + { + ret.set_int(this.cur_animation.frames.length); + }; + Exps.prototype.AnimationName = function (ret) + { + ret.set_string(this.cur_animation.name); + }; + Exps.prototype.AnimationSpeed = function (ret) + { + ret.set_float(this.animForwards ? this.cur_anim_speed : -this.cur_anim_speed); + }; + Exps.prototype.ImagePointX = function (ret, imgpt) + { + ret.set_float(this.getImagePoint(imgpt, true)); + }; + Exps.prototype.ImagePointY = function (ret, imgpt) + { + ret.set_float(this.getImagePoint(imgpt, false)); + }; + Exps.prototype.ImagePointCount = function (ret) + { + ret.set_int(this.curFrame.image_points.length); + }; + Exps.prototype.ImageWidth = function (ret) + { + ret.set_float(this.curFrame.width); + }; + Exps.prototype.ImageHeight = function (ret) + { + ret.set_float(this.curFrame.height); + }; + pluginProto.exps = new Exps(); +}()); +; +; +cr.plugins_.Text = function(runtime) +{ + this.runtime = runtime; +}; +(function () +{ + var pluginProto = cr.plugins_.Text.prototype; + pluginProto.onCreate = function () + { + pluginProto.acts.SetWidth = function (w) + { + if (this.width !== w) + { + this.width = w; + this.text_changed = true; // also recalculate text wrapping + this.set_bbox_changed(); + } + }; + }; + pluginProto.Type = function(plugin) + { + this.plugin = plugin; + this.runtime = plugin.runtime; + }; + var typeProto = pluginProto.Type.prototype; + typeProto.onCreate = function() + { + }; + typeProto.onLostWebGLContext = function () + { + if (this.is_family) + return; + var i, len, inst; + for (i = 0, len = this.instances.length; i < len; i++) + { + inst = this.instances[i]; + inst.mycanvas = null; + inst.myctx = null; + inst.mytex = null; + } + }; + pluginProto.Instance = function(type) + { + this.type = type; + this.runtime = type.runtime; + if (this.recycled) + cr.clearArray(this.lines); + else + this.lines = []; // for word wrapping + this.text_changed = true; + }; + var instanceProto = pluginProto.Instance.prototype; + var requestedWebFonts = {}; // already requested web fonts have an entry here + instanceProto.onCreate = function() + { + this.text = this.properties[0]; + this.visible = (this.properties[1] === 0); // 0=visible, 1=invisible + this.font = this.properties[2]; + this.color = this.properties[3]; + this.halign = this.properties[4]; // 0=left, 1=center, 2=right + this.valign = this.properties[5]; // 0=top, 1=center, 2=bottom + this.wrapbyword = (this.properties[7] === 0); // 0=word, 1=character + this.lastwidth = this.width; + this.lastwrapwidth = this.width; + this.lastheight = this.height; + this.line_height_offset = this.properties[8]; + this.facename = ""; + this.fontstyle = ""; + this.ptSize = 0; + this.textWidth = 0; + this.textHeight = 0; + this.parseFont(); + this.mycanvas = null; + this.myctx = null; + this.mytex = null; + this.need_text_redraw = false; + this.last_render_tick = this.runtime.tickcount; + if (this.recycled) + this.rcTex.set(0, 0, 1, 1); + else + this.rcTex = new cr.rect(0, 0, 1, 1); + if (this.runtime.glwrap) + this.runtime.tickMe(this); +; + }; + instanceProto.parseFont = function () + { + var arr = this.font.split(" "); + var i; + for (i = 0; i < arr.length; i++) + { + if (arr[i].substr(arr[i].length - 2, 2) === "pt") + { + this.ptSize = parseInt(arr[i].substr(0, arr[i].length - 2)); + this.pxHeight = Math.ceil((this.ptSize / 72.0) * 96.0) + 4; // assume 96dpi... + if (i > 0) + this.fontstyle = arr[i - 1]; + this.facename = arr[i + 1]; + for (i = i + 2; i < arr.length; i++) + this.facename += " " + arr[i]; + break; + } + } + }; + instanceProto.saveToJSON = function () + { + return { + "t": this.text, + "f": this.font, + "c": this.color, + "ha": this.halign, + "va": this.valign, + "wr": this.wrapbyword, + "lho": this.line_height_offset, + "fn": this.facename, + "fs": this.fontstyle, + "ps": this.ptSize, + "pxh": this.pxHeight, + "tw": this.textWidth, + "th": this.textHeight, + "lrt": this.last_render_tick + }; + }; + instanceProto.loadFromJSON = function (o) + { + this.text = o["t"]; + this.font = o["f"]; + this.color = o["c"]; + this.halign = o["ha"]; + this.valign = o["va"]; + this.wrapbyword = o["wr"]; + this.line_height_offset = o["lho"]; + this.facename = o["fn"]; + this.fontstyle = o["fs"]; + this.ptSize = o["ps"]; + this.pxHeight = o["pxh"]; + this.textWidth = o["tw"]; + this.textHeight = o["th"]; + this.last_render_tick = o["lrt"]; + this.text_changed = true; + this.lastwidth = this.width; + this.lastwrapwidth = this.width; + this.lastheight = this.height; + }; + instanceProto.tick = function () + { + if (this.runtime.glwrap && this.mytex && (this.runtime.tickcount - this.last_render_tick >= 300)) + { + var layer = this.layer; + this.update_bbox(); + var bbox = this.bbox; + if (bbox.right < layer.viewLeft || bbox.bottom < layer.viewTop || bbox.left > layer.viewRight || bbox.top > layer.viewBottom) + { + this.runtime.glwrap.deleteTexture(this.mytex); + this.mytex = null; + this.myctx = null; + this.mycanvas = null; + } + } + }; + instanceProto.onDestroy = function () + { + this.myctx = null; + this.mycanvas = null; + if (this.runtime.glwrap && this.mytex) + this.runtime.glwrap.deleteTexture(this.mytex); + this.mytex = null; + }; + instanceProto.updateFont = function () + { + this.font = this.fontstyle + " " + this.ptSize.toString() + "pt " + this.facename; + this.text_changed = true; + this.runtime.redraw = true; + }; + instanceProto.draw = function(ctx, glmode) + { + ctx.font = this.font; + ctx.textBaseline = "top"; + ctx.fillStyle = this.color; + ctx.globalAlpha = glmode ? 1 : this.opacity; + var myscale = 1; + if (glmode) + { + myscale = Math.abs(this.layer.getScale()); + ctx.save(); + ctx.scale(myscale, myscale); + } + if (this.text_changed || this.width !== this.lastwrapwidth) + { + this.type.plugin.WordWrap(this.text, this.lines, ctx, this.width, this.wrapbyword); + this.text_changed = false; + this.lastwrapwidth = this.width; + } + this.update_bbox(); + var penX = glmode ? 0 : this.bquad.tlx; + var penY = glmode ? 0 : this.bquad.tly; + if (this.runtime.pixel_rounding) + { + penX = (penX + 0.5) | 0; + penY = (penY + 0.5) | 0; + } + if (this.angle !== 0 && !glmode) + { + ctx.save(); + ctx.translate(penX, penY); + ctx.rotate(this.angle); + penX = 0; + penY = 0; + } + var endY = penY + this.height; + var line_height = this.pxHeight; + line_height += this.line_height_offset; + var drawX; + var i; + if (this.valign === 1) // center + penY += Math.max(this.height / 2 - (this.lines.length * line_height) / 2, 0); + else if (this.valign === 2) // bottom + penY += Math.max(this.height - (this.lines.length * line_height) - 2, 0); + for (i = 0; i < this.lines.length; i++) + { + drawX = penX; + if (this.halign === 1) // center + drawX = penX + (this.width - this.lines[i].width) / 2; + else if (this.halign === 2) // right + drawX = penX + (this.width - this.lines[i].width); + ctx.fillText(this.lines[i].text, drawX, penY); + penY += line_height; + if (penY >= endY - line_height) + break; + } + if (this.angle !== 0 || glmode) + ctx.restore(); + this.last_render_tick = this.runtime.tickcount; + }; + instanceProto.drawGL = function(glw) + { + if (this.width < 1 || this.height < 1) + return; + var need_redraw = this.text_changed || this.need_text_redraw; + this.need_text_redraw = false; + var layer_scale = this.layer.getScale(); + var layer_angle = this.layer.getAngle(); + var rcTex = this.rcTex; + var floatscaledwidth = layer_scale * this.width; + var floatscaledheight = layer_scale * this.height; + var scaledwidth = Math.ceil(floatscaledwidth); + var scaledheight = Math.ceil(floatscaledheight); + var absscaledwidth = Math.abs(scaledwidth); + var absscaledheight = Math.abs(scaledheight); + var halfw = this.runtime.draw_width / 2; + var halfh = this.runtime.draw_height / 2; + if (!this.myctx) + { + this.mycanvas = document.createElement("canvas"); + this.mycanvas.width = absscaledwidth; + this.mycanvas.height = absscaledheight; + this.lastwidth = absscaledwidth; + this.lastheight = absscaledheight; + need_redraw = true; + this.myctx = this.mycanvas.getContext("2d"); + } + if (absscaledwidth !== this.lastwidth || absscaledheight !== this.lastheight) + { + this.mycanvas.width = absscaledwidth; + this.mycanvas.height = absscaledheight; + if (this.mytex) + { + glw.deleteTexture(this.mytex); + this.mytex = null; + } + need_redraw = true; + } + if (need_redraw) + { + this.myctx.clearRect(0, 0, absscaledwidth, absscaledheight); + this.draw(this.myctx, true); + if (!this.mytex) + this.mytex = glw.createEmptyTexture(absscaledwidth, absscaledheight, this.runtime.linearSampling, this.runtime.isMobile); + glw.videoToTexture(this.mycanvas, this.mytex, this.runtime.isMobile); + } + this.lastwidth = absscaledwidth; + this.lastheight = absscaledheight; + glw.setTexture(this.mytex); + glw.setOpacity(this.opacity); + glw.resetModelView(); + glw.translate(-halfw, -halfh); + glw.updateModelView(); + var q = this.bquad; + var tlx = this.layer.layerToCanvas(q.tlx, q.tly, true, true); + var tly = this.layer.layerToCanvas(q.tlx, q.tly, false, true); + var trx = this.layer.layerToCanvas(q.trx, q.try_, true, true); + var try_ = this.layer.layerToCanvas(q.trx, q.try_, false, true); + var brx = this.layer.layerToCanvas(q.brx, q.bry, true, true); + var bry = this.layer.layerToCanvas(q.brx, q.bry, false, true); + var blx = this.layer.layerToCanvas(q.blx, q.bly, true, true); + var bly = this.layer.layerToCanvas(q.blx, q.bly, false, true); + if (this.runtime.pixel_rounding || (this.angle === 0 && layer_angle === 0)) + { + var ox = ((tlx + 0.5) | 0) - tlx; + var oy = ((tly + 0.5) | 0) - tly + tlx += ox; + tly += oy; + trx += ox; + try_ += oy; + brx += ox; + bry += oy; + blx += ox; + bly += oy; + } + if (this.angle === 0 && layer_angle === 0) + { + trx = tlx + scaledwidth; + try_ = tly; + brx = trx; + bry = tly + scaledheight; + blx = tlx; + bly = bry; + rcTex.right = 1; + rcTex.bottom = 1; + } + else + { + rcTex.right = floatscaledwidth / scaledwidth; + rcTex.bottom = floatscaledheight / scaledheight; + } + glw.quadTex(tlx, tly, trx, try_, brx, bry, blx, bly, rcTex); + glw.resetModelView(); + glw.scale(layer_scale, layer_scale); + glw.rotateZ(-this.layer.getAngle()); + glw.translate((this.layer.viewLeft + this.layer.viewRight) / -2, (this.layer.viewTop + this.layer.viewBottom) / -2); + glw.updateModelView(); + this.last_render_tick = this.runtime.tickcount; + }; + var wordsCache = []; + pluginProto.TokeniseWords = function (text) + { + cr.clearArray(wordsCache); + var cur_word = ""; + var ch; + var i = 0; + while (i < text.length) + { + ch = text.charAt(i); + if (ch === "\n") + { + if (cur_word.length) + { + wordsCache.push(cur_word); + cur_word = ""; + } + wordsCache.push("\n"); + ++i; + } + else if (ch === " " || ch === "\t" || ch === "-") + { + do { + cur_word += text.charAt(i); + i++; + } + while (i < text.length && (text.charAt(i) === " " || text.charAt(i) === "\t")); + wordsCache.push(cur_word); + cur_word = ""; + } + else if (i < text.length) + { + cur_word += ch; + i++; + } + } + if (cur_word.length) + wordsCache.push(cur_word); + }; + var linesCache = []; + function allocLine() + { + if (linesCache.length) + return linesCache.pop(); + else + return {}; + }; + function freeLine(l) + { + linesCache.push(l); + }; + function freeAllLines(arr) + { + var i, len; + for (i = 0, len = arr.length; i < len; i++) + { + freeLine(arr[i]); + } + cr.clearArray(arr); + }; + pluginProto.WordWrap = function (text, lines, ctx, width, wrapbyword) + { + if (!text || !text.length) + { + freeAllLines(lines); + return; + } + if (width <= 2.0) + { + freeAllLines(lines); + return; + } + if (text.length <= 100 && text.indexOf("\n") === -1) + { + var all_width = ctx.measureText(text).width; + if (all_width <= width) + { + freeAllLines(lines); + lines.push(allocLine()); + lines[0].text = text; + lines[0].width = all_width; + return; + } + } + this.WrapText(text, lines, ctx, width, wrapbyword); + }; + function trimSingleSpaceRight(str) + { + if (!str.length || str.charAt(str.length - 1) !== " ") + return str; + return str.substring(0, str.length - 1); + }; + pluginProto.WrapText = function (text, lines, ctx, width, wrapbyword) + { + var wordArray; + if (wrapbyword) + { + this.TokeniseWords(text); // writes to wordsCache + wordArray = wordsCache; + } + else + wordArray = text; + var cur_line = ""; + var prev_line; + var line_width; + var i; + var lineIndex = 0; + var line; + for (i = 0; i < wordArray.length; i++) + { + if (wordArray[i] === "\n") + { + if (lineIndex >= lines.length) + lines.push(allocLine()); + cur_line = trimSingleSpaceRight(cur_line); // for correct center/right alignment + line = lines[lineIndex]; + line.text = cur_line; + line.width = ctx.measureText(cur_line).width; + lineIndex++; + cur_line = ""; + continue; + } + prev_line = cur_line; + cur_line += wordArray[i]; + line_width = ctx.measureText(cur_line).width; + if (line_width >= width) + { + if (lineIndex >= lines.length) + lines.push(allocLine()); + prev_line = trimSingleSpaceRight(prev_line); + line = lines[lineIndex]; + line.text = prev_line; + line.width = ctx.measureText(prev_line).width; + lineIndex++; + cur_line = wordArray[i]; + if (!wrapbyword && cur_line === " ") + cur_line = ""; + } + } + if (cur_line.length) + { + if (lineIndex >= lines.length) + lines.push(allocLine()); + cur_line = trimSingleSpaceRight(cur_line); + line = lines[lineIndex]; + line.text = cur_line; + line.width = ctx.measureText(cur_line).width; + lineIndex++; + } + for (i = lineIndex; i < lines.length; i++) + freeLine(lines[i]); + lines.length = lineIndex; + }; + function Cnds() {}; + Cnds.prototype.CompareText = function(text_to_compare, case_sensitive) + { + if (case_sensitive) + return this.text == text_to_compare; + else + return cr.equals_nocase(this.text, text_to_compare); + }; + pluginProto.cnds = new Cnds(); + function Acts() {}; + Acts.prototype.SetText = function(param) + { + if (cr.is_number(param) && param < 1e9) + param = Math.round(param * 1e10) / 1e10; // round to nearest ten billionth - hides floating point errors + var text_to_set = param.toString(); + if (this.text !== text_to_set) + { + this.text = text_to_set; + this.text_changed = true; + this.runtime.redraw = true; + } + }; + Acts.prototype.AppendText = function(param) + { + if (cr.is_number(param)) + param = Math.round(param * 1e10) / 1e10; // round to nearest ten billionth - hides floating point errors + var text_to_append = param.toString(); + if (text_to_append) // not empty + { + this.text += text_to_append; + this.text_changed = true; + this.runtime.redraw = true; + } + }; + Acts.prototype.SetFontFace = function (face_, style_) + { + var newstyle = ""; + switch (style_) { + case 1: newstyle = "bold"; break; + case 2: newstyle = "italic"; break; + case 3: newstyle = "bold italic"; break; + } + if (face_ === this.facename && newstyle === this.fontstyle) + return; // no change + this.facename = face_; + this.fontstyle = newstyle; + this.updateFont(); + }; + Acts.prototype.SetFontSize = function (size_) + { + if (this.ptSize === size_) + return; + this.ptSize = size_; + this.pxHeight = Math.ceil((this.ptSize / 72.0) * 96.0) + 4; // assume 96dpi... + this.updateFont(); + }; + Acts.prototype.SetFontColor = function (rgb) + { + var newcolor = "rgb(" + cr.GetRValue(rgb).toString() + "," + cr.GetGValue(rgb).toString() + "," + cr.GetBValue(rgb).toString() + ")"; + if (newcolor === this.color) + return; + this.color = newcolor; + this.need_text_redraw = true; + this.runtime.redraw = true; + }; + Acts.prototype.SetWebFont = function (familyname_, cssurl_) + { + if (this.runtime.isDomFree) + { + cr.logexport("[Construct 2] Text plugin: 'Set web font' not supported on this platform - the action has been ignored"); + return; // DC todo + } + var self = this; + var refreshFunc = (function () { + self.runtime.redraw = true; + self.text_changed = true; + }); + if (requestedWebFonts.hasOwnProperty(cssurl_)) + { + var newfacename = "'" + familyname_ + "'"; + if (this.facename === newfacename) + return; // no change + this.facename = newfacename; + this.updateFont(); + for (var i = 1; i < 10; i++) + { + setTimeout(refreshFunc, i * 100); + setTimeout(refreshFunc, i * 1000); + } + return; + } + var wf = document.createElement("link"); + wf.href = cssurl_; + wf.rel = "stylesheet"; + wf.type = "text/css"; + wf.onload = refreshFunc; + document.getElementsByTagName('head')[0].appendChild(wf); + requestedWebFonts[cssurl_] = true; + this.facename = "'" + familyname_ + "'"; + this.updateFont(); + for (var i = 1; i < 10; i++) + { + setTimeout(refreshFunc, i * 100); + setTimeout(refreshFunc, i * 1000); + } +; + }; + Acts.prototype.SetEffect = function (effect) + { + this.blend_mode = effect; + this.compositeOp = cr.effectToCompositeOp(effect); + cr.setGLBlend(this, effect, this.runtime.gl); + this.runtime.redraw = true; + }; + pluginProto.acts = new Acts(); + function Exps() {}; + Exps.prototype.Text = function(ret) + { + ret.set_string(this.text); + }; + Exps.prototype.FaceName = function (ret) + { + ret.set_string(this.facename); + }; + Exps.prototype.FaceSize = function (ret) + { + ret.set_int(this.ptSize); + }; + Exps.prototype.TextWidth = function (ret) + { + var w = 0; + var i, len, x; + for (i = 0, len = this.lines.length; i < len; i++) + { + x = this.lines[i].width; + if (w < x) + w = x; + } + ret.set_int(w); + }; + Exps.prototype.TextHeight = function (ret) + { + ret.set_int(this.lines.length * (this.pxHeight + this.line_height_offset) - this.line_height_offset); + }; + pluginProto.exps = new Exps(); +}()); +; +; +cr.plugins_.Touch = function(runtime) +{ + this.runtime = runtime; +}; +(function () +{ + var pluginProto = cr.plugins_.Touch.prototype; + pluginProto.Type = function(plugin) + { + this.plugin = plugin; + this.runtime = plugin.runtime; + }; + var typeProto = pluginProto.Type.prototype; + typeProto.onCreate = function() + { + }; + pluginProto.Instance = function(type) + { + this.type = type; + this.runtime = type.runtime; + this.touches = []; + this.mouseDown = false; + }; + var instanceProto = pluginProto.Instance.prototype; + var dummyoffset = {left: 0, top: 0}; + instanceProto.findTouch = function (id) + { + var i, len; + for (i = 0, len = this.touches.length; i < len; i++) + { + if (this.touches[i]["id"] === id) + return i; + } + return -1; + }; + var appmobi_accx = 0; + var appmobi_accy = 0; + var appmobi_accz = 0; + function AppMobiGetAcceleration(evt) + { + appmobi_accx = evt.x; + appmobi_accy = evt.y; + appmobi_accz = evt.z; + }; + var pg_accx = 0; + var pg_accy = 0; + var pg_accz = 0; + function PhoneGapGetAcceleration(evt) + { + pg_accx = evt.x; + pg_accy = evt.y; + pg_accz = evt.z; + }; + var theInstance = null; + var touchinfo_cache = []; + function AllocTouchInfo(x, y, id, index) + { + var ret; + if (touchinfo_cache.length) + ret = touchinfo_cache.pop(); + else + ret = new TouchInfo(); + ret.init(x, y, id, index); + return ret; + }; + function ReleaseTouchInfo(ti) + { + if (touchinfo_cache.length < 100) + touchinfo_cache.push(ti); + }; + var GESTURE_HOLD_THRESHOLD = 15; // max px motion for hold gesture to register + var GESTURE_HOLD_TIMEOUT = 500; // time for hold gesture to register + var GESTURE_TAP_TIMEOUT = 333; // time for tap gesture to register + var GESTURE_DOUBLETAP_THRESHOLD = 25; // max distance apart for taps to be + function TouchInfo() + { + this.starttime = 0; + this.time = 0; + this.lasttime = 0; + this.startx = 0; + this.starty = 0; + this.x = 0; + this.y = 0; + this.lastx = 0; + this.lasty = 0; + this["id"] = 0; + this.startindex = 0; + this.triggeredHold = false; + this.tooFarForHold = false; + }; + TouchInfo.prototype.init = function (x, y, id, index) + { + var nowtime = cr.performance_now(); + this.time = nowtime; + this.lasttime = nowtime; + this.starttime = nowtime; + this.startx = x; + this.starty = y; + this.x = x; + this.y = y; + this.lastx = x; + this.lasty = y; + this.width = 0; + this.height = 0; + this.pressure = 0; + this["id"] = id; + this.startindex = index; + this.triggeredHold = false; + this.tooFarForHold = false; + }; + TouchInfo.prototype.update = function (nowtime, x, y, width, height, pressure) + { + this.lasttime = this.time; + this.time = nowtime; + this.lastx = this.x; + this.lasty = this.y; + this.x = x; + this.y = y; + this.width = width; + this.height = height; + this.pressure = pressure; + if (!this.tooFarForHold && cr.distanceTo(this.startx, this.starty, this.x, this.y) >= GESTURE_HOLD_THRESHOLD) + { + this.tooFarForHold = true; + } + }; + TouchInfo.prototype.maybeTriggerHold = function (inst, index) + { + if (this.triggeredHold) + return; // already triggered this gesture + var nowtime = cr.performance_now(); + if (nowtime - this.starttime >= GESTURE_HOLD_TIMEOUT && !this.tooFarForHold && cr.distanceTo(this.startx, this.starty, this.x, this.y) < GESTURE_HOLD_THRESHOLD) + { + this.triggeredHold = true; + inst.trigger_index = this.startindex; + inst.trigger_id = this["id"]; + inst.getTouchIndex = index; + inst.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnHoldGesture, inst); + inst.curTouchX = this.x; + inst.curTouchY = this.y; + inst.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnHoldGestureObject, inst); + inst.getTouchIndex = 0; + } + }; + var lastTapX = -1000; + var lastTapY = -1000; + var lastTapTime = -10000; + TouchInfo.prototype.maybeTriggerTap = function (inst, index) + { + if (this.triggeredHold) + return; + var nowtime = cr.performance_now(); + if (nowtime - this.starttime <= GESTURE_TAP_TIMEOUT && !this.tooFarForHold && cr.distanceTo(this.startx, this.starty, this.x, this.y) < GESTURE_HOLD_THRESHOLD) + { + inst.trigger_index = this.startindex; + inst.trigger_id = this["id"]; + inst.getTouchIndex = index; + if ((nowtime - lastTapTime <= GESTURE_TAP_TIMEOUT * 2) && cr.distanceTo(lastTapX, lastTapY, this.x, this.y) < GESTURE_DOUBLETAP_THRESHOLD) + { + inst.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnDoubleTapGesture, inst); + inst.curTouchX = this.x; + inst.curTouchY = this.y; + inst.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnDoubleTapGestureObject, inst); + lastTapX = -1000; + lastTapY = -1000; + lastTapTime = -10000; + } + else + { + inst.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTapGesture, inst); + inst.curTouchX = this.x; + inst.curTouchY = this.y; + inst.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTapGestureObject, inst); + lastTapX = this.x; + lastTapY = this.y; + lastTapTime = nowtime; + } + inst.getTouchIndex = 0; + } + }; + instanceProto.onCreate = function() + { + theInstance = this; + this.isWindows8 = !!(typeof window["c2isWindows8"] !== "undefined" && window["c2isWindows8"]); + this.orient_alpha = 0; + this.orient_beta = 0; + this.orient_gamma = 0; + this.acc_g_x = 0; + this.acc_g_y = 0; + this.acc_g_z = 0; + this.acc_x = 0; + this.acc_y = 0; + this.acc_z = 0; + this.curTouchX = 0; + this.curTouchY = 0; + this.trigger_index = 0; + this.trigger_id = 0; + this.trigger_permission = 0; + this.getTouchIndex = 0; + this.useMouseInput = (this.properties[0] !== 0); + var elem = (this.runtime.fullscreen_mode > 0) ? document : this.runtime.canvas; + var elem2 = document; + if (this.runtime.isDirectCanvas) + elem2 = elem = window["Canvas"]; + else if (this.runtime.isCocoonJs) + elem2 = elem = window; + var self = this; + if (typeof PointerEvent !== "undefined") + { + elem.addEventListener("pointerdown", + function(info) { + self.onPointerStart(info); + }, + false + ); + elem.addEventListener("pointermove", + function(info) { + self.onPointerMove(info); + }, + false + ); + elem2.addEventListener("pointerup", + function(info) { + self.onPointerEnd(info, false); + }, + false + ); + elem2.addEventListener("pointercancel", + function(info) { + self.onPointerEnd(info, true); + }, + false + ); + if (this.runtime.canvas) + { + this.runtime.canvas.addEventListener("MSGestureHold", function(e) { + e.preventDefault(); + }, false); + document.addEventListener("MSGestureHold", function(e) { + e.preventDefault(); + }, false); + this.runtime.canvas.addEventListener("gesturehold", function(e) { + e.preventDefault(); + }, false); + document.addEventListener("gesturehold", function(e) { + e.preventDefault(); + }, false); + } + } + else if (window.navigator["msPointerEnabled"]) + { + elem.addEventListener("MSPointerDown", + function(info) { + self.onPointerStart(info); + }, + false + ); + elem.addEventListener("MSPointerMove", + function(info) { + self.onPointerMove(info); + }, + false + ); + elem2.addEventListener("MSPointerUp", + function(info) { + self.onPointerEnd(info, false); + }, + false + ); + elem2.addEventListener("MSPointerCancel", + function(info) { + self.onPointerEnd(info, true); + }, + false + ); + if (this.runtime.canvas) + { + this.runtime.canvas.addEventListener("MSGestureHold", function(e) { + e.preventDefault(); + }, false); + document.addEventListener("MSGestureHold", function(e) { + e.preventDefault(); + }, false); + } + } + else + { + elem.addEventListener("touchstart", + function(info) { + self.onTouchStart(info); + }, + false + ); + elem.addEventListener("touchmove", + function(info) { + self.onTouchMove(info); + }, + false + ); + elem2.addEventListener("touchend", + function(info) { + self.onTouchEnd(info, false); + }, + false + ); + elem2.addEventListener("touchcancel", + function(info) { + self.onTouchEnd(info, true); + }, + false + ); + } + if (this.isWindows8) + { + var win8accelerometerFn = function(e) { + var reading = e["reading"]; + self.acc_x = reading["accelerationX"]; + self.acc_y = reading["accelerationY"]; + self.acc_z = reading["accelerationZ"]; + }; + var win8inclinometerFn = function(e) { + var reading = e["reading"]; + self.orient_alpha = reading["yawDegrees"]; + self.orient_beta = reading["pitchDegrees"]; + self.orient_gamma = reading["rollDegrees"]; + }; + var accelerometer = Windows["Devices"]["Sensors"]["Accelerometer"]["getDefault"](); + if (accelerometer) + { + accelerometer["reportInterval"] = Math.max(accelerometer["minimumReportInterval"], 16); + accelerometer.addEventListener("readingchanged", win8accelerometerFn); + } + var inclinometer = Windows["Devices"]["Sensors"]["Inclinometer"]["getDefault"](); + if (inclinometer) + { + inclinometer["reportInterval"] = Math.max(inclinometer["minimumReportInterval"], 16); + inclinometer.addEventListener("readingchanged", win8inclinometerFn); + } + document.addEventListener("visibilitychange", function(e) { + if (document["hidden"] || document["msHidden"]) + { + if (accelerometer) + accelerometer.removeEventListener("readingchanged", win8accelerometerFn); + if (inclinometer) + inclinometer.removeEventListener("readingchanged", win8inclinometerFn); + } + else + { + if (accelerometer) + accelerometer.addEventListener("readingchanged", win8accelerometerFn); + if (inclinometer) + inclinometer.addEventListener("readingchanged", win8inclinometerFn); + } + }, false); + } + else + { + window.addEventListener("deviceorientation", function (eventData) { + self.orient_alpha = eventData["alpha"] || 0; + self.orient_beta = eventData["beta"] || 0; + self.orient_gamma = eventData["gamma"] || 0; + }, false); + window.addEventListener("devicemotion", function (eventData) { + if (eventData["accelerationIncludingGravity"]) + { + self.acc_g_x = eventData["accelerationIncludingGravity"]["x"] || 0; + self.acc_g_y = eventData["accelerationIncludingGravity"]["y"] || 0; + self.acc_g_z = eventData["accelerationIncludingGravity"]["z"] || 0; + } + if (eventData["acceleration"]) + { + self.acc_x = eventData["acceleration"]["x"] || 0; + self.acc_y = eventData["acceleration"]["y"] || 0; + self.acc_z = eventData["acceleration"]["z"] || 0; + } + }, false); + } + if (this.useMouseInput && !this.runtime.isDomFree) + { + jQuery(document).mousemove( + function(info) { + self.onMouseMove(info); + } + ); + jQuery(document).mousedown( + function(info) { + self.onMouseDown(info); + } + ); + jQuery(document).mouseup( + function(info) { + self.onMouseUp(info); + } + ); + } + if (!this.runtime.isiOS && this.runtime.isCordova && navigator["accelerometer"] && navigator["accelerometer"]["watchAcceleration"]) + { + navigator["accelerometer"]["watchAcceleration"](PhoneGapGetAcceleration, null, { "frequency": 40 }); + } + this.runtime.tick2Me(this); + }; + instanceProto.onPointerMove = function (info) + { + if (info["pointerType"] === info["MSPOINTER_TYPE_MOUSE"] || info["pointerType"] === "mouse") + return; + if (info.preventDefault) + info.preventDefault(); + var i = this.findTouch(info["pointerId"]); + var nowtime = cr.performance_now(); + if (i >= 0) + { + var offset = this.runtime.isDomFree ? dummyoffset : jQuery(this.runtime.canvas).offset(); + var t = this.touches[i]; + if (nowtime - t.time < 2) + return; + t.update(nowtime, info.pageX - offset.left, info.pageY - offset.top, info.width || 0, info.height || 0, info.pressure || 0); + } + }; + instanceProto.onPointerStart = function (info) + { + if (info["pointerType"] === info["MSPOINTER_TYPE_MOUSE"] || info["pointerType"] === "mouse") + return; + if (info.preventDefault && cr.isCanvasInputEvent(info)) + info.preventDefault(); + var offset = this.runtime.isDomFree ? dummyoffset : jQuery(this.runtime.canvas).offset(); + var touchx = info.pageX - offset.left; + var touchy = info.pageY - offset.top; + var nowtime = cr.performance_now(); + this.trigger_index = this.touches.length; + this.trigger_id = info["pointerId"]; + this.touches.push(AllocTouchInfo(touchx, touchy, info["pointerId"], this.trigger_index)); + this.runtime.isInUserInputEvent = true; + this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnNthTouchStart, this); + this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTouchStart, this); + this.curTouchX = touchx; + this.curTouchY = touchy; + this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTouchObject, this); + this.runtime.isInUserInputEvent = false; + }; + instanceProto.onPointerEnd = function (info, isCancel) + { + if (info["pointerType"] === info["MSPOINTER_TYPE_MOUSE"] || info["pointerType"] === "mouse") + return; + if (info.preventDefault && cr.isCanvasInputEvent(info)) + info.preventDefault(); + var i = this.findTouch(info["pointerId"]); + this.trigger_index = (i >= 0 ? this.touches[i].startindex : -1); + this.trigger_id = (i >= 0 ? this.touches[i]["id"] : -1); + this.runtime.isInUserInputEvent = true; + this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnNthTouchEnd, this); + this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTouchEnd, this); + if (i >= 0) + { + if (!isCancel) + this.touches[i].maybeTriggerTap(this, i); + ReleaseTouchInfo(this.touches[i]); + this.touches.splice(i, 1); + } + this.runtime.isInUserInputEvent = false; + }; + instanceProto.onTouchMove = function (info) + { + if (info.preventDefault) + info.preventDefault(); + var nowtime = cr.performance_now(); + var i, len, t, u; + for (i = 0, len = info.changedTouches.length; i < len; i++) + { + t = info.changedTouches[i]; + var j = this.findTouch(t["identifier"]); + if (j >= 0) + { + var offset = this.runtime.isDomFree ? dummyoffset : jQuery(this.runtime.canvas).offset(); + u = this.touches[j]; + if (nowtime - u.time < 2) + continue; + var touchWidth = (t.radiusX || t.webkitRadiusX || t.mozRadiusX || t.msRadiusX || 0) * 2; + var touchHeight = (t.radiusY || t.webkitRadiusY || t.mozRadiusY || t.msRadiusY || 0) * 2; + var touchForce = t.force || t.webkitForce || t.mozForce || t.msForce || 0; + u.update(nowtime, t.pageX - offset.left, t.pageY - offset.top, touchWidth, touchHeight, touchForce); + } + } + }; + instanceProto.onTouchStart = function (info) + { + if (info.preventDefault && cr.isCanvasInputEvent(info)) + info.preventDefault(); + var offset = this.runtime.isDomFree ? dummyoffset : jQuery(this.runtime.canvas).offset(); + var nowtime = cr.performance_now(); + this.runtime.isInUserInputEvent = true; + var i, len, t, j; + for (i = 0, len = info.changedTouches.length; i < len; i++) + { + t = info.changedTouches[i]; + j = this.findTouch(t["identifier"]); + if (j !== -1) + continue; + var touchx = t.pageX - offset.left; + var touchy = t.pageY - offset.top; + this.trigger_index = this.touches.length; + this.trigger_id = t["identifier"]; + this.touches.push(AllocTouchInfo(touchx, touchy, t["identifier"], this.trigger_index)); + this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnNthTouchStart, this); + this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTouchStart, this); + this.curTouchX = touchx; + this.curTouchY = touchy; + this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTouchObject, this); + } + this.runtime.isInUserInputEvent = false; + }; + instanceProto.onTouchEnd = function (info, isCancel) + { + if (info.preventDefault && cr.isCanvasInputEvent(info)) + info.preventDefault(); + this.runtime.isInUserInputEvent = true; + var i, len, t, j; + for (i = 0, len = info.changedTouches.length; i < len; i++) + { + t = info.changedTouches[i]; + j = this.findTouch(t["identifier"]); + if (j >= 0) + { + this.trigger_index = this.touches[j].startindex; + this.trigger_id = this.touches[j]["id"]; + this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnNthTouchEnd, this); + this.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnTouchEnd, this); + if (!isCancel) + this.touches[j].maybeTriggerTap(this, j); + ReleaseTouchInfo(this.touches[j]); + this.touches.splice(j, 1); + } + } + this.runtime.isInUserInputEvent = false; + }; + instanceProto.getAlpha = function () + { + if (this.runtime.isCordova && this.orient_alpha === 0 && pg_accz !== 0) + return pg_accz * 90; + else + return this.orient_alpha; + }; + instanceProto.getBeta = function () + { + if (this.runtime.isCordova && this.orient_beta === 0 && pg_accy !== 0) + return pg_accy * 90; + else + return this.orient_beta; + }; + instanceProto.getGamma = function () + { + if (this.runtime.isCordova && this.orient_gamma === 0 && pg_accx !== 0) + return pg_accx * 90; + else + return this.orient_gamma; + }; + var noop_func = function(){}; + function isCompatibilityMouseEvent(e) + { + return (e["sourceCapabilities"] && e["sourceCapabilities"]["firesTouchEvents"]) || + (e.originalEvent && e.originalEvent["sourceCapabilities"] && e.originalEvent["sourceCapabilities"]["firesTouchEvents"]); + }; + instanceProto.onMouseDown = function(info) + { + if (isCompatibilityMouseEvent(info)) + return; + var t = { pageX: info.pageX, pageY: info.pageY, "identifier": 0 }; + var fakeinfo = { changedTouches: [t] }; + this.onTouchStart(fakeinfo); + this.mouseDown = true; + }; + instanceProto.onMouseMove = function(info) + { + if (!this.mouseDown) + return; + if (isCompatibilityMouseEvent(info)) + return; + var t = { pageX: info.pageX, pageY: info.pageY, "identifier": 0 }; + var fakeinfo = { changedTouches: [t] }; + this.onTouchMove(fakeinfo); + }; + instanceProto.onMouseUp = function(info) + { + if (info.preventDefault && this.runtime.had_a_click && !this.runtime.isMobile) + info.preventDefault(); + this.runtime.had_a_click = true; + if (isCompatibilityMouseEvent(info)) + return; + var t = { pageX: info.pageX, pageY: info.pageY, "identifier": 0 }; + var fakeinfo = { changedTouches: [t] }; + this.onTouchEnd(fakeinfo); + this.mouseDown = false; + }; + instanceProto.tick2 = function() + { + var i, len, t; + var nowtime = cr.performance_now(); + for (i = 0, len = this.touches.length; i < len; ++i) + { + t = this.touches[i]; + if (t.time <= nowtime - 50) + t.lasttime = nowtime; + t.maybeTriggerHold(this, i); + } + }; + function Cnds() {}; + Cnds.prototype.OnTouchStart = function () + { + return true; + }; + Cnds.prototype.OnTouchEnd = function () + { + return true; + }; + Cnds.prototype.IsInTouch = function () + { + return this.touches.length; + }; + Cnds.prototype.OnTouchObject = function (type) + { + if (!type) + return false; + return this.runtime.testAndSelectCanvasPointOverlap(type, this.curTouchX, this.curTouchY, false); + }; + var touching = []; + Cnds.prototype.IsTouchingObject = function (type) + { + if (!type) + return false; + var sol = type.getCurrentSol(); + var instances = sol.getObjects(); + var px, py; + var i, leni, j, lenj; + for (i = 0, leni = instances.length; i < leni; i++) + { + var inst = instances[i]; + inst.update_bbox(); + for (j = 0, lenj = this.touches.length; j < lenj; j++) + { + var touch = this.touches[j]; + px = inst.layer.canvasToLayer(touch.x, touch.y, true); + py = inst.layer.canvasToLayer(touch.x, touch.y, false); + if (inst.contains_pt(px, py)) + { + touching.push(inst); + break; + } + } + } + if (touching.length) + { + sol.select_all = false; + cr.shallowAssignArray(sol.instances, touching); + type.applySolToContainer(); + cr.clearArray(touching); + return true; + } + else + return false; + }; + Cnds.prototype.CompareTouchSpeed = function (index, cmp, s) + { + index = Math.floor(index); + if (index < 0 || index >= this.touches.length) + return false; + var t = this.touches[index]; + var dist = cr.distanceTo(t.x, t.y, t.lastx, t.lasty); + var timediff = (t.time - t.lasttime) / 1000; + var speed = 0; + if (timediff > 0) + speed = dist / timediff; + return cr.do_cmp(speed, cmp, s); + }; + Cnds.prototype.OrientationSupported = function () + { + return typeof window["DeviceOrientationEvent"] !== "undefined"; + }; + Cnds.prototype.MotionSupported = function () + { + return typeof window["DeviceMotionEvent"] !== "undefined"; + }; + Cnds.prototype.CompareOrientation = function (orientation_, cmp_, angle_) + { + var v = 0; + if (orientation_ === 0) + v = this.getAlpha(); + else if (orientation_ === 1) + v = this.getBeta(); + else + v = this.getGamma(); + return cr.do_cmp(v, cmp_, angle_); + }; + Cnds.prototype.CompareAcceleration = function (acceleration_, cmp_, angle_) + { + var v = 0; + if (acceleration_ === 0) + v = this.acc_g_x; + else if (acceleration_ === 1) + v = this.acc_g_y; + else if (acceleration_ === 2) + v = this.acc_g_z; + else if (acceleration_ === 3) + v = this.acc_x; + else if (acceleration_ === 4) + v = this.acc_y; + else if (acceleration_ === 5) + v = this.acc_z; + return cr.do_cmp(v, cmp_, angle_); + }; + Cnds.prototype.OnNthTouchStart = function (touch_) + { + touch_ = Math.floor(touch_); + return touch_ === this.trigger_index; + }; + Cnds.prototype.OnNthTouchEnd = function (touch_) + { + touch_ = Math.floor(touch_); + return touch_ === this.trigger_index; + }; + Cnds.prototype.HasNthTouch = function (touch_) + { + touch_ = Math.floor(touch_); + return this.touches.length >= touch_ + 1; + }; + Cnds.prototype.OnHoldGesture = function () + { + return true; + }; + Cnds.prototype.OnTapGesture = function () + { + return true; + }; + Cnds.prototype.OnDoubleTapGesture = function () + { + return true; + }; + Cnds.prototype.OnHoldGestureObject = function (type) + { + if (!type) + return false; + return this.runtime.testAndSelectCanvasPointOverlap(type, this.curTouchX, this.curTouchY, false); + }; + Cnds.prototype.OnTapGestureObject = function (type) + { + if (!type) + return false; + return this.runtime.testAndSelectCanvasPointOverlap(type, this.curTouchX, this.curTouchY, false); + }; + Cnds.prototype.OnDoubleTapGestureObject = function (type) + { + if (!type) + return false; + return this.runtime.testAndSelectCanvasPointOverlap(type, this.curTouchX, this.curTouchY, false); + }; + Cnds.prototype.OnPermissionGranted = function (type) + { + return this.trigger_permission === type; + }; + Cnds.prototype.OnPermissionDenied = function (type) + { + return this.trigger_permission === type; + }; + pluginProto.cnds = new Cnds(); + function Acts() {}; + Acts.prototype.RequestPermission = function (type) + { + var self = this; + var promise = Promise.resolve(true); + if (type === 0) // orientation + { + if (window["DeviceOrientationEvent"] && window["DeviceOrientationEvent"]["requestPermission"]) + { + promise = window["DeviceOrientationEvent"]["requestPermission"]() + .then(function (state) + { + return state === "granted"; + }); + } + } + else // motion + { + if (window["DeviceMotionEvent"] && window["DeviceMotionEvent"]["requestPermission"]) + { + promise = window["DeviceMotionEvent"]["requestPermission"]() + .then(function (state) + { + return state === "granted"; + }); + } + } + promise.then(function (result) + { + self.trigger_permission = type; + if (result) + self.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnPermissionGranted, self); + else + self.runtime.trigger(cr.plugins_.Touch.prototype.cnds.OnPermissionDenied, self); + }); + }; + pluginProto.acts = new Acts(); + function Exps() {}; + Exps.prototype.TouchCount = function (ret) + { + ret.set_int(this.touches.length); + }; + Exps.prototype.X = function (ret, layerparam) + { + var index = this.getTouchIndex; + if (index < 0 || index >= this.touches.length) + { + ret.set_float(0); + return; + } + var layer, oldScale, oldZoomRate, oldParallaxX, oldAngle; + if (cr.is_undefined(layerparam)) + { + layer = this.runtime.getLayerByNumber(0); + oldScale = layer.scale; + oldZoomRate = layer.zoomRate; + oldParallaxX = layer.parallaxX; + oldAngle = layer.angle; + layer.scale = 1; + layer.zoomRate = 1.0; + layer.parallaxX = 1.0; + layer.angle = 0; + ret.set_float(layer.canvasToLayer(this.touches[index].x, this.touches[index].y, true)); + layer.scale = oldScale; + layer.zoomRate = oldZoomRate; + layer.parallaxX = oldParallaxX; + layer.angle = oldAngle; + } + else + { + if (cr.is_number(layerparam)) + layer = this.runtime.getLayerByNumber(layerparam); + else + layer = this.runtime.getLayerByName(layerparam); + if (layer) + ret.set_float(layer.canvasToLayer(this.touches[index].x, this.touches[index].y, true)); + else + ret.set_float(0); + } + }; + Exps.prototype.XAt = function (ret, index, layerparam) + { + index = Math.floor(index); + if (index < 0 || index >= this.touches.length) + { + ret.set_float(0); + return; + } + var layer, oldScale, oldZoomRate, oldParallaxX, oldAngle; + if (cr.is_undefined(layerparam)) + { + layer = this.runtime.getLayerByNumber(0); + oldScale = layer.scale; + oldZoomRate = layer.zoomRate; + oldParallaxX = layer.parallaxX; + oldAngle = layer.angle; + layer.scale = 1; + layer.zoomRate = 1.0; + layer.parallaxX = 1.0; + layer.angle = 0; + ret.set_float(layer.canvasToLayer(this.touches[index].x, this.touches[index].y, true)); + layer.scale = oldScale; + layer.zoomRate = oldZoomRate; + layer.parallaxX = oldParallaxX; + layer.angle = oldAngle; + } + else + { + if (cr.is_number(layerparam)) + layer = this.runtime.getLayerByNumber(layerparam); + else + layer = this.runtime.getLayerByName(layerparam); + if (layer) + ret.set_float(layer.canvasToLayer(this.touches[index].x, this.touches[index].y, true)); + else + ret.set_float(0); + } + }; + Exps.prototype.XForID = function (ret, id, layerparam) + { + var index = this.findTouch(id); + if (index < 0) + { + ret.set_float(0); + return; + } + var touch = this.touches[index]; + var layer, oldScale, oldZoomRate, oldParallaxX, oldAngle; + if (cr.is_undefined(layerparam)) + { + layer = this.runtime.getLayerByNumber(0); + oldScale = layer.scale; + oldZoomRate = layer.zoomRate; + oldParallaxX = layer.parallaxX; + oldAngle = layer.angle; + layer.scale = 1; + layer.zoomRate = 1.0; + layer.parallaxX = 1.0; + layer.angle = 0; + ret.set_float(layer.canvasToLayer(touch.x, touch.y, true)); + layer.scale = oldScale; + layer.zoomRate = oldZoomRate; + layer.parallaxX = oldParallaxX; + layer.angle = oldAngle; + } + else + { + if (cr.is_number(layerparam)) + layer = this.runtime.getLayerByNumber(layerparam); + else + layer = this.runtime.getLayerByName(layerparam); + if (layer) + ret.set_float(layer.canvasToLayer(touch.x, touch.y, true)); + else + ret.set_float(0); + } + }; + Exps.prototype.Y = function (ret, layerparam) + { + var index = this.getTouchIndex; + if (index < 0 || index >= this.touches.length) + { + ret.set_float(0); + return; + } + var layer, oldScale, oldZoomRate, oldParallaxY, oldAngle; + if (cr.is_undefined(layerparam)) + { + layer = this.runtime.getLayerByNumber(0); + oldScale = layer.scale; + oldZoomRate = layer.zoomRate; + oldParallaxY = layer.parallaxY; + oldAngle = layer.angle; + layer.scale = 1; + layer.zoomRate = 1.0; + layer.parallaxY = 1.0; + layer.angle = 0; + ret.set_float(layer.canvasToLayer(this.touches[index].x, this.touches[index].y, false)); + layer.scale = oldScale; + layer.zoomRate = oldZoomRate; + layer.parallaxY = oldParallaxY; + layer.angle = oldAngle; + } + else + { + if (cr.is_number(layerparam)) + layer = this.runtime.getLayerByNumber(layerparam); + else + layer = this.runtime.getLayerByName(layerparam); + if (layer) + ret.set_float(layer.canvasToLayer(this.touches[index].x, this.touches[index].y, false)); + else + ret.set_float(0); + } + }; + Exps.prototype.YAt = function (ret, index, layerparam) + { + index = Math.floor(index); + if (index < 0 || index >= this.touches.length) + { + ret.set_float(0); + return; + } + var layer, oldScale, oldZoomRate, oldParallaxY, oldAngle; + if (cr.is_undefined(layerparam)) + { + layer = this.runtime.getLayerByNumber(0); + oldScale = layer.scale; + oldZoomRate = layer.zoomRate; + oldParallaxY = layer.parallaxY; + oldAngle = layer.angle; + layer.scale = 1; + layer.zoomRate = 1.0; + layer.parallaxY = 1.0; + layer.angle = 0; + ret.set_float(layer.canvasToLayer(this.touches[index].x, this.touches[index].y, false)); + layer.scale = oldScale; + layer.zoomRate = oldZoomRate; + layer.parallaxY = oldParallaxY; + layer.angle = oldAngle; + } + else + { + if (cr.is_number(layerparam)) + layer = this.runtime.getLayerByNumber(layerparam); + else + layer = this.runtime.getLayerByName(layerparam); + if (layer) + ret.set_float(layer.canvasToLayer(this.touches[index].x, this.touches[index].y, false)); + else + ret.set_float(0); + } + }; + Exps.prototype.YForID = function (ret, id, layerparam) + { + var index = this.findTouch(id); + if (index < 0) + { + ret.set_float(0); + return; + } + var touch = this.touches[index]; + var layer, oldScale, oldZoomRate, oldParallaxY, oldAngle; + if (cr.is_undefined(layerparam)) + { + layer = this.runtime.getLayerByNumber(0); + oldScale = layer.scale; + oldZoomRate = layer.zoomRate; + oldParallaxY = layer.parallaxY; + oldAngle = layer.angle; + layer.scale = 1; + layer.zoomRate = 1.0; + layer.parallaxY = 1.0; + layer.angle = 0; + ret.set_float(layer.canvasToLayer(touch.x, touch.y, false)); + layer.scale = oldScale; + layer.zoomRate = oldZoomRate; + layer.parallaxY = oldParallaxY; + layer.angle = oldAngle; + } + else + { + if (cr.is_number(layerparam)) + layer = this.runtime.getLayerByNumber(layerparam); + else + layer = this.runtime.getLayerByName(layerparam); + if (layer) + ret.set_float(layer.canvasToLayer(touch.x, touch.y, false)); + else + ret.set_float(0); + } + }; + Exps.prototype.AbsoluteX = function (ret) + { + if (this.touches.length) + ret.set_float(this.touches[0].x); + else + ret.set_float(0); + }; + Exps.prototype.AbsoluteXAt = function (ret, index) + { + index = Math.floor(index); + if (index < 0 || index >= this.touches.length) + { + ret.set_float(0); + return; + } + ret.set_float(this.touches[index].x); + }; + Exps.prototype.AbsoluteXForID = function (ret, id) + { + var index = this.findTouch(id); + if (index < 0) + { + ret.set_float(0); + return; + } + var touch = this.touches[index]; + ret.set_float(touch.x); + }; + Exps.prototype.AbsoluteY = function (ret) + { + if (this.touches.length) + ret.set_float(this.touches[0].y); + else + ret.set_float(0); + }; + Exps.prototype.AbsoluteYAt = function (ret, index) + { + index = Math.floor(index); + if (index < 0 || index >= this.touches.length) + { + ret.set_float(0); + return; + } + ret.set_float(this.touches[index].y); + }; + Exps.prototype.AbsoluteYForID = function (ret, id) + { + var index = this.findTouch(id); + if (index < 0) + { + ret.set_float(0); + return; + } + var touch = this.touches[index]; + ret.set_float(touch.y); + }; + Exps.prototype.SpeedAt = function (ret, index) + { + index = Math.floor(index); + if (index < 0 || index >= this.touches.length) + { + ret.set_float(0); + return; + } + var t = this.touches[index]; + var dist = cr.distanceTo(t.x, t.y, t.lastx, t.lasty); + var timediff = (t.time - t.lasttime) / 1000; + if (timediff <= 0) + ret.set_float(0); + else + ret.set_float(dist / timediff); + }; + Exps.prototype.SpeedForID = function (ret, id) + { + var index = this.findTouch(id); + if (index < 0) + { + ret.set_float(0); + return; + } + var touch = this.touches[index]; + var dist = cr.distanceTo(touch.x, touch.y, touch.lastx, touch.lasty); + var timediff = (touch.time - touch.lasttime) / 1000; + if (timediff <= 0) + ret.set_float(0); + else + ret.set_float(dist / timediff); + }; + Exps.prototype.AngleAt = function (ret, index) + { + index = Math.floor(index); + if (index < 0 || index >= this.touches.length) + { + ret.set_float(0); + return; + } + var t = this.touches[index]; + ret.set_float(cr.to_degrees(cr.angleTo(t.lastx, t.lasty, t.x, t.y))); + }; + Exps.prototype.AngleForID = function (ret, id) + { + var index = this.findTouch(id); + if (index < 0) + { + ret.set_float(0); + return; + } + var touch = this.touches[index]; + ret.set_float(cr.to_degrees(cr.angleTo(touch.lastx, touch.lasty, touch.x, touch.y))); + }; + Exps.prototype.Alpha = function (ret) + { + ret.set_float(this.getAlpha()); + }; + Exps.prototype.Beta = function (ret) + { + ret.set_float(this.getBeta()); + }; + Exps.prototype.Gamma = function (ret) + { + ret.set_float(this.getGamma()); + }; + Exps.prototype.AccelerationXWithG = function (ret) + { + ret.set_float(this.acc_g_x); + }; + Exps.prototype.AccelerationYWithG = function (ret) + { + ret.set_float(this.acc_g_y); + }; + Exps.prototype.AccelerationZWithG = function (ret) + { + ret.set_float(this.acc_g_z); + }; + Exps.prototype.AccelerationX = function (ret) + { + ret.set_float(this.acc_x); + }; + Exps.prototype.AccelerationY = function (ret) + { + ret.set_float(this.acc_y); + }; + Exps.prototype.AccelerationZ = function (ret) + { + ret.set_float(this.acc_z); + }; + Exps.prototype.TouchIndex = function (ret) + { + ret.set_int(this.trigger_index); + }; + Exps.prototype.TouchID = function (ret) + { + ret.set_float(this.trigger_id); + }; + Exps.prototype.WidthForID = function (ret, id) + { + var index = this.findTouch(id); + if (index < 0) + { + ret.set_float(0); + return; + } + var touch = this.touches[index]; + ret.set_float(touch.width); + }; + Exps.prototype.HeightForID = function (ret, id) + { + var index = this.findTouch(id); + if (index < 0) + { + ret.set_float(0); + return; + } + var touch = this.touches[index]; + ret.set_float(touch.height); + }; + Exps.prototype.PressureForID = function (ret, id) + { + var index = this.findTouch(id); + if (index < 0) + { + ret.set_float(0); + return; + } + var touch = this.touches[index]; + ret.set_float(touch.pressure); + }; + pluginProto.exps = new Exps(); +}()); +; +; +cr.behaviors.Anchor = function(runtime) +{ + this.runtime = runtime; +}; +(function () +{ + var behaviorProto = cr.behaviors.Anchor.prototype; + behaviorProto.Type = function(behavior, objtype) + { + this.behavior = behavior; + this.objtype = objtype; + this.runtime = behavior.runtime; + }; + var behtypeProto = behaviorProto.Type.prototype; + behtypeProto.onCreate = function() + { + }; + behaviorProto.Instance = function(type, inst) + { + this.type = type; + this.behavior = type.behavior; + this.inst = inst; // associated object instance to modify + this.runtime = type.runtime; + }; + var behinstProto = behaviorProto.Instance.prototype; + behinstProto.onCreate = function() + { + this.anch_left = this.properties[0]; // 0 = left, 1 = right, 2 = none + this.anch_top = this.properties[1]; // 0 = top, 1 = bottom, 2 = none + this.anch_right = this.properties[2]; // 0 = none, 1 = right + this.anch_bottom = this.properties[3]; // 0 = none, 1 = bottom + this.inst.update_bbox(); + this.xleft = this.inst.bbox.left; + this.ytop = this.inst.bbox.top; + this.xright = this.runtime.original_width - this.inst.bbox.left; + this.ybottom = this.runtime.original_height - this.inst.bbox.top; + this.rdiff = this.runtime.original_width - this.inst.bbox.right; + this.bdiff = this.runtime.original_height - this.inst.bbox.bottom; + this.enabled = (this.properties[4] !== 0); + }; + behinstProto.saveToJSON = function () + { + return { + "xleft": this.xleft, + "ytop": this.ytop, + "xright": this.xright, + "ybottom": this.ybottom, + "rdiff": this.rdiff, + "bdiff": this.bdiff, + "enabled": this.enabled + }; + }; + behinstProto.loadFromJSON = function (o) + { + this.xleft = o["xleft"]; + this.ytop = o["ytop"]; + this.xright = o["xright"]; + this.ybottom = o["ybottom"]; + this.rdiff = o["rdiff"]; + this.bdiff = o["bdiff"]; + this.enabled = o["enabled"]; + }; + behinstProto.tick = function () + { + if (!this.enabled) + return; + var n; + var layer = this.inst.layer; + var inst = this.inst; + var bbox = this.inst.bbox; + if (this.anch_left === 0) + { + inst.update_bbox(); + n = (layer.viewLeft + this.xleft) - bbox.left; + if (n !== 0) + { + inst.x += n; + inst.set_bbox_changed(); + } + } + else if (this.anch_left === 1) + { + inst.update_bbox(); + n = (layer.viewRight - this.xright) - bbox.left; + if (n !== 0) + { + inst.x += n; + inst.set_bbox_changed(); + } + } + if (this.anch_top === 0) + { + inst.update_bbox(); + n = (layer.viewTop + this.ytop) - bbox.top; + if (n !== 0) + { + inst.y += n; + inst.set_bbox_changed(); + } + } + else if (this.anch_top === 1) + { + inst.update_bbox(); + n = (layer.viewBottom - this.ybottom) - bbox.top; + if (n !== 0) + { + inst.y += n; + inst.set_bbox_changed(); + } + } + if (this.anch_right === 1) + { + inst.update_bbox(); + n = (layer.viewRight - this.rdiff) - bbox.right; + if (n !== 0) + { + inst.width += n; + if (inst.width < 0) + inst.width = 0; + inst.set_bbox_changed(); + } + } + if (this.anch_bottom === 1) + { + inst.update_bbox(); + n = (layer.viewBottom - this.bdiff) - bbox.bottom; + if (n !== 0) + { + inst.height += n; + if (inst.height < 0) + inst.height = 0; + inst.set_bbox_changed(); + } + } + }; + function Cnds() {}; + behaviorProto.cnds = new Cnds(); + function Acts() {}; + Acts.prototype.SetEnabled = function (e) + { + if (this.enabled && e === 0) + this.enabled = false; + else if (!this.enabled && e !== 0) + { + this.inst.update_bbox(); + this.xleft = this.inst.bbox.left; + this.ytop = this.inst.bbox.top; + this.xright = this.runtime.original_width - this.inst.bbox.left; + this.ybottom = this.runtime.original_height - this.inst.bbox.top; + this.rdiff = this.runtime.original_width - this.inst.bbox.right; + this.bdiff = this.runtime.original_height - this.inst.bbox.bottom; + this.enabled = true; + } + }; + behaviorProto.acts = new Acts(); + function Exps() {}; + behaviorProto.exps = new Exps(); +}()); +; +; +cr.behaviors.DragnDrop = function(runtime) +{ + this.runtime = runtime; + var self = this; + if (!this.runtime.isDomFree) + { + jQuery(document).mousemove( + function(info) { + self.onMouseMove(info); + } + ); + jQuery(document).mousedown( + function(info) { + self.onMouseDown(info); + } + ); + jQuery(document).mouseup( + function(info) { + self.onMouseUp(info); + } + ); + } + var elem = (this.runtime.fullscreen_mode > 0) ? document : this.runtime.canvas; + if (this.runtime.isDirectCanvas) + elem = window["Canvas"]; + else if (this.runtime.isCocoonJs) + elem = window; + if (typeof PointerEvent !== "undefined") + { + elem.addEventListener("pointerdown", + function(info) { + self.onPointerStart(info); + }, + false + ); + elem.addEventListener("pointermove", + function(info) { + self.onPointerMove(info); + }, + false + ); + elem.addEventListener("pointerup", + function(info) { + self.onPointerEnd(info); + }, + false + ); + elem.addEventListener("pointercancel", + function(info) { + self.onPointerEnd(info); + }, + false + ); + } + else if (window.navigator["msPointerEnabled"]) + { + elem.addEventListener("MSPointerDown", + function(info) { + self.onPointerStart(info); + }, + false + ); + elem.addEventListener("MSPointerMove", + function(info) { + self.onPointerMove(info); + }, + false + ); + elem.addEventListener("MSPointerUp", + function(info) { + self.onPointerEnd(info); + }, + false + ); + elem.addEventListener("MSPointerCancel", + function(info) { + self.onPointerEnd(info); + }, + false + ); + } + else + { + elem.addEventListener("touchstart", + function(info) { + self.onTouchStart(info); + }, + false + ); + elem.addEventListener("touchmove", + function(info) { + self.onTouchMove(info); + }, + false + ); + elem.addEventListener("touchend", + function(info) { + self.onTouchEnd(info); + }, + false + ); + elem.addEventListener("touchcancel", + function(info) { + self.onTouchEnd(info); + }, + false + ); + } +}; +(function () +{ + var behaviorProto = cr.behaviors.DragnDrop.prototype; + var dummyoffset = {left: 0, top: 0}; + function GetDragDropBehavior(inst) + { + var i, len; + for (i = 0, len = inst.behavior_insts.length; i < len; i++) + { + if (inst.behavior_insts[i] instanceof behaviorProto.Instance) + return inst.behavior_insts[i]; + } + return null; + }; + behaviorProto.onMouseDown = function (info) + { + if (info.which !== 1) + return; // not left mouse button + this.onInputDown("leftmouse", info.pageX, info.pageY); + }; + behaviorProto.onMouseMove = function (info) + { + if (info.which !== 1) + return; // not left mouse button + this.onInputMove("leftmouse", info.pageX, info.pageY); + }; + behaviorProto.onMouseUp = function (info) + { + if (info.which !== 1) + return; // not left mouse button + this.onInputUp("leftmouse"); + }; + behaviorProto.onTouchStart = function (info) + { + if (info.preventDefault && cr.isCanvasInputEvent(info)) + info.preventDefault(); + var i, len, t, id; + for (i = 0, len = info.changedTouches.length; i < len; i++) + { + t = info.changedTouches[i]; + id = t.identifier; + this.onInputDown(id ? id.toString() : "", t.pageX, t.pageY); + } + }; + behaviorProto.onTouchMove = function (info) + { + if (info.preventDefault) + info.preventDefault(); + var i, len, t, id; + for (i = 0, len = info.changedTouches.length; i < len; i++) + { + t = info.changedTouches[i]; + id = t.identifier; + this.onInputMove(id ? id.toString() : "", t.pageX, t.pageY); + } + }; + behaviorProto.onTouchEnd = function (info) + { + if (info.preventDefault && cr.isCanvasInputEvent(info)) + info.preventDefault(); + var i, len, t, id; + for (i = 0, len = info.changedTouches.length; i < len; i++) + { + t = info.changedTouches[i]; + id = t.identifier; + this.onInputUp(id ? id.toString() : ""); + } + }; + behaviorProto.onPointerStart = function (info) + { + if (info["pointerType"] === info["MSPOINTER_TYPE_MOUSE"] || info["pointerType"] === "mouse") + return; + if (info.preventDefault && cr.isCanvasInputEvent(info)) + info.preventDefault(); + this.onInputDown(info["pointerId"].toString(), info.pageX, info.pageY); + }; + behaviorProto.onPointerMove = function (info) + { + if (info["pointerType"] === info["MSPOINTER_TYPE_MOUSE"] || info["pointerType"] === "mouse") + return; + if (info.preventDefault) + info.preventDefault(); + this.onInputMove(info["pointerId"].toString(), info.pageX, info.pageY); + }; + behaviorProto.onPointerEnd = function (info) + { + if (info["pointerType"] === info["MSPOINTER_TYPE_MOUSE"] || info["pointerType"] === "mouse") + return; + if (info.preventDefault && cr.isCanvasInputEvent(info)) + info.preventDefault(); + this.onInputUp(info["pointerId"].toString()); + }; + behaviorProto.onInputDown = function (src, pageX, pageY) + { + var offset = this.runtime.isDomFree ? dummyoffset : jQuery(this.runtime.canvas).offset(); + var x = pageX - offset.left; + var y = pageY - offset.top; + var lx, ly, topx, topy; + var arr = this.my_instances.valuesRef(); + var i, len, b, inst, topmost = null; + for (i = 0, len = arr.length; i < len; i++) + { + inst = arr[i]; + b = GetDragDropBehavior(inst); + if (!b.enabled || b.dragging) + continue; // don't consider disabled or already-dragging instances + lx = inst.layer.canvasToLayer(x, y, true); + ly = inst.layer.canvasToLayer(x, y, false); + inst.update_bbox(); + if (!inst.contains_pt(lx, ly)) + continue; // don't consider instances not over this point + if (!topmost) + { + topmost = inst; + topx = lx; + topy = ly; + continue; + } + if (inst.layer.index > topmost.layer.index) + { + topmost = inst; + topx = lx; + topy = ly; + continue; + } + if (inst.layer.index === topmost.layer.index && inst.get_zindex() > topmost.get_zindex()) + { + topmost = inst; + topx = lx; + topy = ly; + continue; + } + } + if (topmost) + GetDragDropBehavior(topmost).onDown(src, topx, topy); + }; + behaviorProto.onInputMove = function (src, pageX, pageY) + { + var offset = this.runtime.isDomFree ? dummyoffset : jQuery(this.runtime.canvas).offset(); + var x = pageX - offset.left; + var y = pageY - offset.top; + var lx, ly; + var arr = this.my_instances.valuesRef(); + var i, len, b, inst; + for (i = 0, len = arr.length; i < len; i++) + { + inst = arr[i]; + b = GetDragDropBehavior(inst); + if (!b.enabled || !b.dragging || (b.dragging && b.dragsource !== src)) + continue; // don't consider disabled, not-dragging, or dragging by other sources + lx = inst.layer.canvasToLayer(x, y, true); + ly = inst.layer.canvasToLayer(x, y, false); + b.onMove(lx, ly); + } + }; + behaviorProto.onInputUp = function (src) + { + var arr = this.my_instances.valuesRef(); + var i, len, b, inst; + for (i = 0, len = arr.length; i < len; i++) + { + inst = arr[i]; + b = GetDragDropBehavior(inst); + if (b.dragging && b.dragsource === src) + b.onUp(); + } + }; + behaviorProto.Type = function(behavior, objtype) + { + this.behavior = behavior; + this.objtype = objtype; + this.runtime = behavior.runtime; + }; + var behtypeProto = behaviorProto.Type.prototype; + behtypeProto.onCreate = function() + { + }; + behaviorProto.Instance = function(type, inst) + { + this.type = type; + this.behavior = type.behavior; + this.inst = inst; // associated object instance to modify + this.runtime = type.runtime; + }; + var behinstProto = behaviorProto.Instance.prototype; + behinstProto.onCreate = function() + { + this.dragging = false; + this.dx = 0; + this.dy = 0; + this.dragsource = ""; + this.axes = this.properties[0]; + this.enabled = (this.properties[1] !== 0); + }; + behinstProto.saveToJSON = function () + { + return { "enabled": this.enabled }; + }; + behinstProto.loadFromJSON = function (o) + { + this.enabled = o["enabled"]; + this.dragging = false; + }; + behinstProto.onDown = function(src, x, y) + { + this.dx = x - this.inst.x; + this.dy = y - this.inst.y; + this.dragging = true; + this.dragsource = src; + this.runtime.isInUserInputEvent = true; + this.runtime.trigger(cr.behaviors.DragnDrop.prototype.cnds.OnDragStart, this.inst); + this.runtime.isInUserInputEvent = false; + }; + behinstProto.onMove = function(x, y) + { + var newx = x - this.dx; + var newy = y - this.dy; + if (this.axes === 0) // both + { + if (this.inst.x !== newx || this.inst.y !== newy) + { + this.inst.x = newx; + this.inst.y = newy; + this.inst.set_bbox_changed(); + } + } + else if (this.axes === 1) // horizontal + { + if (this.inst.x !== newx) + { + this.inst.x = newx; + this.inst.set_bbox_changed(); + } + } + else if (this.axes === 2) // vertical + { + if (this.inst.y !== newy) + { + this.inst.y = newy; + this.inst.set_bbox_changed(); + } + } + }; + behinstProto.onUp = function() + { + this.dragging = false; + this.runtime.isInUserInputEvent = true; + this.runtime.trigger(cr.behaviors.DragnDrop.prototype.cnds.OnDrop, this.inst); + this.runtime.isInUserInputEvent = false; + }; + behinstProto.tick = function () + { + }; + function Cnds() {}; + Cnds.prototype.IsDragging = function () + { + return this.dragging; + }; + Cnds.prototype.OnDragStart = function () + { + return true; + }; + Cnds.prototype.OnDrop = function () + { + return true; + }; + Cnds.prototype.IsEnabled = function () + { + return !!this.enabled; + }; + behaviorProto.cnds = new Cnds(); + function Acts() {}; + Acts.prototype.SetEnabled = function (s) + { + this.enabled = (s !== 0); + if (!this.enabled) + this.dragging = false; + }; + Acts.prototype.Drop = function () + { + if (this.dragging) + this.onUp(); + }; + behaviorProto.acts = new Acts(); + function Exps() {}; + behaviorProto.exps = new Exps(); +}()); +; +; +cr.behaviors.Fade = function(runtime) +{ + this.runtime = runtime; +}; +(function () +{ + var behaviorProto = cr.behaviors.Fade.prototype; + behaviorProto.Type = function(behavior, objtype) + { + this.behavior = behavior; + this.objtype = objtype; + this.runtime = behavior.runtime; + }; + var behtypeProto = behaviorProto.Type.prototype; + behtypeProto.onCreate = function() + { + }; + behaviorProto.Instance = function(type, inst) + { + this.type = type; + this.behavior = type.behavior; + this.inst = inst; // associated object instance to modify + this.runtime = type.runtime; + }; + var behinstProto = behaviorProto.Instance.prototype; + behinstProto.onCreate = function() + { + this.activeAtStart = this.properties[0] === 1; + this.setMaxOpacity = false; // used to retrieve maxOpacity once in first 'Start fade' action if initially inactive + this.fadeInTime = this.properties[1]; + this.waitTime = this.properties[2]; + this.fadeOutTime = this.properties[3]; + this.destroy = this.properties[4]; // 0 = no, 1 = after fade out + this.stage = this.activeAtStart ? 0 : 3; // 0 = fade in, 1 = wait, 2 = fade out, 3 = done + if (this.recycled) + this.stageTime.reset(); + else + this.stageTime = new cr.KahanAdder(); + this.maxOpacity = (this.inst.opacity ? this.inst.opacity : 1.0); + if (this.activeAtStart) + { + if (this.fadeInTime === 0) + { + this.stage = 1; + if (this.waitTime === 0) + this.stage = 2; + } + else + { + this.inst.opacity = 0; + this.runtime.redraw = true; + } + } + }; + behinstProto.saveToJSON = function () + { + return { + "fit": this.fadeInTime, + "wt": this.waitTime, + "fot": this.fadeOutTime, + "s": this.stage, + "st": this.stageTime.sum, + "mo": this.maxOpacity, + }; + }; + behinstProto.loadFromJSON = function (o) + { + this.fadeInTime = o["fit"]; + this.waitTime = o["wt"]; + this.fadeOutTime = o["fot"]; + this.stage = o["s"]; + this.stageTime.reset(); + this.stageTime.sum = o["st"]; + this.maxOpacity = o["mo"]; + }; + behinstProto.tick = function () + { + this.stageTime.add(this.runtime.getDt(this.inst)); + if (this.stage === 0) + { + this.inst.opacity = (this.stageTime.sum / this.fadeInTime) * this.maxOpacity; + this.runtime.redraw = true; + if (this.inst.opacity >= this.maxOpacity) + { + this.inst.opacity = this.maxOpacity; + this.stage = 1; // wait stage + this.stageTime.reset(); + this.runtime.trigger(cr.behaviors.Fade.prototype.cnds.OnFadeInEnd, this.inst); + } + } + if (this.stage === 1) + { + if (this.stageTime.sum >= this.waitTime) + { + this.stage = 2; // fade out stage + this.stageTime.reset(); + this.runtime.trigger(cr.behaviors.Fade.prototype.cnds.OnWaitEnd, this.inst); + } + } + if (this.stage === 2) + { + if (this.fadeOutTime !== 0) + { + this.inst.opacity = this.maxOpacity - ((this.stageTime.sum / this.fadeOutTime) * this.maxOpacity); + this.runtime.redraw = true; + if (this.inst.opacity < 0) + { + this.inst.opacity = 0; + this.stage = 3; // done + this.stageTime.reset(); + this.runtime.trigger(cr.behaviors.Fade.prototype.cnds.OnFadeOutEnd, this.inst); + if (this.destroy === 1) + this.runtime.DestroyInstance(this.inst); + } + } + } + }; + behinstProto.doStart = function () + { + this.stage = 0; + this.stageTime.reset(); + if (this.fadeInTime === 0) + { + this.stage = 1; + if (this.waitTime === 0) + this.stage = 2; + } + else + { + this.inst.opacity = 0; + this.runtime.redraw = true; + } + }; + function Cnds() {}; + Cnds.prototype.OnFadeOutEnd = function () + { + return true; + }; + Cnds.prototype.OnFadeInEnd = function () + { + return true; + }; + Cnds.prototype.OnWaitEnd = function () + { + return true; + }; + behaviorProto.cnds = new Cnds(); + function Acts() {}; + Acts.prototype.StartFade = function () + { + if (!this.activeAtStart && !this.setMaxOpacity) + { + this.maxOpacity = (this.inst.opacity ? this.inst.opacity : 1.0); + this.setMaxOpacity = true; + } + if (this.stage === 3) + this.doStart(); + }; + Acts.prototype.RestartFade = function () + { + this.doStart(); + }; + Acts.prototype.SetFadeInTime = function (t) + { + if (t < 0) + t = 0; + this.fadeInTime = t; + }; + Acts.prototype.SetWaitTime = function (t) + { + if (t < 0) + t = 0; + this.waitTime = t; + }; + Acts.prototype.SetFadeOutTime = function (t) + { + if (t < 0) + t = 0; + this.fadeOutTime = t; + }; + behaviorProto.acts = new Acts(); + function Exps() {}; + Exps.prototype.FadeInTime = function (ret) + { + ret.set_float(this.fadeInTime); + }; + Exps.prototype.WaitTime = function (ret) + { + ret.set_float(this.waitTime); + }; + Exps.prototype.FadeOutTime = function (ret) + { + ret.set_float(this.fadeOutTime); + }; + behaviorProto.exps = new Exps(); +}()); +; +; +cr.behaviors.Flash = function(runtime) +{ + this.runtime = runtime; +}; +(function () +{ + var behaviorProto = cr.behaviors.Flash.prototype; + behaviorProto.Type = function(behavior, objtype) + { + this.behavior = behavior; + this.objtype = objtype; + this.runtime = behavior.runtime; + }; + var behtypeProto = behaviorProto.Type.prototype; + behtypeProto.onCreate = function() + { + }; + behaviorProto.Instance = function(type, inst) + { + this.type = type; + this.behavior = type.behavior; + this.inst = inst; // associated object instance to modify + this.runtime = type.runtime; + }; + var behinstProto = behaviorProto.Instance.prototype; + behinstProto.onCreate = function() + { + this.ontime = 0; + this.offtime = 0; + this.stage = 0; // 0 = on, 1 = off + this.stagetimeleft = 0; + this.timeleft = 0; + }; + behinstProto.saveToJSON = function () + { + return { + "ontime": this.ontime, + "offtime": this.offtime, + "stage": this.stage, + "stagetimeleft": this.stagetimeleft, + "timeleft": this.timeleft + }; + }; + behinstProto.loadFromJSON = function (o) + { + this.ontime = o["ontime"]; + this.offtime = o["offtime"]; + this.stage = o["stage"]; + this.stagetimeleft = o["stagetimeleft"]; + this.timeleft = o["timeleft"]; + if (this.timeleft === null) + this.timeleft = Infinity; + }; + behinstProto.tick = function () + { + if (this.timeleft <= 0) + return; // not flashing + var dt = this.runtime.getDt(this.inst); + this.timeleft -= dt; + if (this.timeleft <= 0) + { + this.timeleft = 0; + this.inst.visible = true; + this.runtime.redraw = true; + this.runtime.trigger(cr.behaviors.Flash.prototype.cnds.OnFlashEnded, this.inst); + return; + } + this.stagetimeleft -= dt; + if (this.stagetimeleft <= 0) + { + if (this.stage === 0) + { + this.inst.visible = false; + this.stage = 1; + this.stagetimeleft += this.offtime; + } + else + { + this.inst.visible = true; + this.stage = 0; + this.stagetimeleft += this.ontime; + } + this.runtime.redraw = true; + } + }; + function Cnds() {}; + Cnds.prototype.IsFlashing = function () + { + return this.timeleft > 0; + }; + Cnds.prototype.OnFlashEnded = function () + { + return true; + }; + behaviorProto.cnds = new Cnds(); + function Acts() {}; + Acts.prototype.Flash = function (on_, off_, dur_) + { + this.ontime = on_; + this.offtime = off_; + this.stage = 1; // always start off + this.stagetimeleft = off_; + this.timeleft = dur_; + this.inst.visible = false; + this.runtime.redraw = true; + }; + Acts.prototype.StopFlashing = function () + { + this.timeleft = 0; + this.inst.visible = true; + this.runtime.redraw = true; + return; + }; + behaviorProto.acts = new Acts(); + function Exps() {}; + behaviorProto.exps = new Exps(); +}()); +; +; +cr.behaviors.Pin = function(runtime) +{ + this.runtime = runtime; +}; +(function () +{ + var behaviorProto = cr.behaviors.Pin.prototype; + behaviorProto.Type = function(behavior, objtype) + { + this.behavior = behavior; + this.objtype = objtype; + this.runtime = behavior.runtime; + }; + var behtypeProto = behaviorProto.Type.prototype; + behtypeProto.onCreate = function() + { + }; + behaviorProto.Instance = function(type, inst) + { + this.type = type; + this.behavior = type.behavior; + this.inst = inst; // associated object instance to modify + this.runtime = type.runtime; + }; + var behinstProto = behaviorProto.Instance.prototype; + behinstProto.onCreate = function() + { + this.pinObject = null; + this.pinObjectUid = -1; // for loading + this.pinAngle = 0; + this.pinDist = 0; + this.myStartAngle = 0; + this.theirStartAngle = 0; + this.lastKnownAngle = 0; + this.mode = 0; // 0 = position & angle; 1 = position; 2 = angle; 3 = rope; 4 = bar + var self = this; + if (!this.recycled) + { + this.myDestroyCallback = (function(inst) { + self.onInstanceDestroyed(inst); + }); + } + this.runtime.addDestroyCallback(this.myDestroyCallback); + }; + behinstProto.saveToJSON = function () + { + return { + "uid": this.pinObject ? this.pinObject.uid : -1, + "pa": this.pinAngle, + "pd": this.pinDist, + "msa": this.myStartAngle, + "tsa": this.theirStartAngle, + "lka": this.lastKnownAngle, + "m": this.mode + }; + }; + behinstProto.loadFromJSON = function (o) + { + this.pinObjectUid = o["uid"]; // wait until afterLoad to look up + this.pinAngle = o["pa"]; + this.pinDist = o["pd"]; + this.myStartAngle = o["msa"]; + this.theirStartAngle = o["tsa"]; + this.lastKnownAngle = o["lka"]; + this.mode = o["m"]; + }; + behinstProto.afterLoad = function () + { + if (this.pinObjectUid === -1) + this.pinObject = null; + else + { + this.pinObject = this.runtime.getObjectByUID(this.pinObjectUid); +; + } + this.pinObjectUid = -1; + }; + behinstProto.onInstanceDestroyed = function (inst) + { + if (this.pinObject == inst) + this.pinObject = null; + }; + behinstProto.onDestroy = function() + { + this.pinObject = null; + this.runtime.removeDestroyCallback(this.myDestroyCallback); + }; + behinstProto.tick = function () + { + }; + behinstProto.tick2 = function () + { + if (!this.pinObject) + return; + if (this.lastKnownAngle !== this.inst.angle) + this.myStartAngle = cr.clamp_angle(this.myStartAngle + (this.inst.angle - this.lastKnownAngle)); + var newx = this.inst.x; + var newy = this.inst.y; + if (this.mode === 3 || this.mode === 4) // rope mode or bar mode + { + var dist = cr.distanceTo(this.inst.x, this.inst.y, this.pinObject.x, this.pinObject.y); + if ((dist > this.pinDist) || (this.mode === 4 && dist < this.pinDist)) + { + var a = cr.angleTo(this.pinObject.x, this.pinObject.y, this.inst.x, this.inst.y); + newx = this.pinObject.x + Math.cos(a) * this.pinDist; + newy = this.pinObject.y + Math.sin(a) * this.pinDist; + } + } + else + { + newx = this.pinObject.x + Math.cos(this.pinObject.angle + this.pinAngle) * this.pinDist; + newy = this.pinObject.y + Math.sin(this.pinObject.angle + this.pinAngle) * this.pinDist; + } + var newangle = cr.clamp_angle(this.myStartAngle + (this.pinObject.angle - this.theirStartAngle)); + this.lastKnownAngle = newangle; + if ((this.mode === 0 || this.mode === 1 || this.mode === 3 || this.mode === 4) + && (this.inst.x !== newx || this.inst.y !== newy)) + { + this.inst.x = newx; + this.inst.y = newy; + this.inst.set_bbox_changed(); + } + if ((this.mode === 0 || this.mode === 2) && (this.inst.angle !== newangle)) + { + this.inst.angle = newangle; + this.inst.set_bbox_changed(); + } + }; + function Cnds() {}; + Cnds.prototype.IsPinned = function () + { + return !!this.pinObject; + }; + behaviorProto.cnds = new Cnds(); + function Acts() {}; + Acts.prototype.Pin = function (obj, mode_) + { + if (!obj) + return; + var otherinst = obj.getFirstPicked(this.inst); + if (!otherinst) + return; + this.pinObject = otherinst; + this.pinAngle = cr.angleTo(otherinst.x, otherinst.y, this.inst.x, this.inst.y) - otherinst.angle; + this.pinDist = cr.distanceTo(otherinst.x, otherinst.y, this.inst.x, this.inst.y); + this.myStartAngle = this.inst.angle; + this.lastKnownAngle = this.inst.angle; + this.theirStartAngle = otherinst.angle; + this.mode = mode_; + }; + Acts.prototype.Unpin = function () + { + this.pinObject = null; + }; + behaviorProto.acts = new Acts(); + function Exps() {}; + Exps.prototype.PinnedUID = function (ret) + { + ret.set_int(this.pinObject ? this.pinObject.uid : -1); + }; + behaviorProto.exps = new Exps(); +}()); +; +; +cr.behaviors.Rex_MoveTo = function(runtime) +{ + this.runtime = runtime; +}; +(function () +{ + var behaviorProto = cr.behaviors.Rex_MoveTo.prototype; + behaviorProto.Type = function(behavior, objtype) + { + this.behavior = behavior; + this.objtype = objtype; + this.runtime = behavior.runtime; + }; + var behtypeProto = behaviorProto.Type.prototype; + behtypeProto.onCreate = function() + { + }; + behaviorProto.Instance = function(type, inst) + { + this.type = type; + this.behavior = type.behavior; + this.inst = inst; // associated object instance to modify + this.runtime = type.runtime; + }; + var behinstProto = behaviorProto.Instance.prototype; + behinstProto.onCreate = function() + { + this.enabled = (this.properties[0] == 1); + if (!this.recycled) + { + this.move = {"max":0, + "acc":0, + "dec":0}; + } + this.move["max"] = this.properties[1]; + this.move["acc"] = this.properties[2]; + this.move["dec"] = this.properties[3]; + if (!this.recycled) + { + this.target = {"x":0 , "y":0, "a":0}; + } + this.is_moving = false; + this.current_speed = 0; + this.remain_distance = 0; + this.is_hit_target = false; + if (!this.recycled) + { + this._pre_pos = {"x":0,"y":0}; + } + this._pre_pos["x"] = 0; + this._pre_pos["y"] = 0; + if (!this.recycled) + { + this._moving_angle_info = {"x":0,"y":0,"a":(-1)}; + } + this._moving_angle_info["x"] = 0; + this._moving_angle_info["y"] = 0; + this._moving_angle_info["a"] = -1; + this._last_tick = null; + this.is_my_call = false; + }; + behinstProto.tick = function () + { + if (this.is_hit_target) + { + if ((this.inst.x == this.target["x"]) && (this.inst.y == this.target["y"])) + { + this.is_my_call = true; + this.runtime.trigger(cr.behaviors.Rex_MoveTo.prototype.cnds.OnHitTarget, this.inst); + this.is_my_call = false; + } + this.is_hit_target = false; + } + if ( (!this.enabled) || (!this.is_moving) ) + { + return; + } + var dt = this.runtime.getDt(this.inst); + if (dt==0) // can not move if dt == 0 + return; + if ((this._pre_pos["x"] != this.inst.x) || (this._pre_pos["y"] != this.inst.y)) + this._reset_current_pos(); // reset this.remain_distance + var is_slow_down = false; + if (this.move["dec"] != 0) + { + var _speed = this.current_speed; + var _distance = (_speed*_speed)/(2*this.move["dec"]); // (v*v)/(2*a) + is_slow_down = (_distance >= this.remain_distance); + } + var acc = (is_slow_down)? (-this.move["dec"]):this.move["acc"]; + if (acc != 0) + { + this.SetCurrentSpeed( this.current_speed + (acc * dt) ); + } + var distance = this.current_speed * dt; + this.remain_distance -= distance; + if ( (this.remain_distance <= 0) || (this.current_speed <= 0) ) + { + this.is_moving = false; + this.inst.x = this.target["x"]; + this.inst.y = this.target["y"]; + this.SetCurrentSpeed(0); + this.moving_angle_get(); + this.is_hit_target = true; + } + else + { + var angle = this.target["a"]; + this.inst.x += (distance * Math.cos(angle)); + this.inst.y += (distance * Math.sin(angle)); + } + this.inst.set_bbox_changed(); + this._pre_pos["x"] = this.inst.x; + this._pre_pos["y"] = this.inst.y; + }; + behinstProto.tick2 = function () + { + this._moving_angle_info["x"] = this.inst.x; + this._moving_angle_info["y"] = this.inst.y; + }; + behinstProto.SetCurrentSpeed = function(speed) + { + if (speed != null) + { + this.current_speed = (speed > this.move["max"])? + this.move["max"]: speed; + } + else if (this.move["acc"]==0) + { + this.current_speed = this.move["max"]; + } + }; + behinstProto._reset_current_pos = function () + { + var dx = this.target["x"] - this.inst.x; + var dy = this.target["y"] - this.inst.y; + this.target["a"] = Math.atan2(dy, dx); + this.remain_distance = Math.sqrt( (dx*dx) + (dy*dy) ); + this._pre_pos["x"] = this.inst.x; + this._pre_pos["y"] = this.inst.y; + }; + behinstProto.SetTargetPos = function (_x, _y) + { + this.is_moving = true; + this.target["x"] = _x; + this.target["y"] = _y; + this._reset_current_pos(); + this.SetCurrentSpeed(null); + this._moving_angle_info["x"] = this.inst.x; + this._moving_angle_info["y"] = this.inst.y; + }; + behinstProto.KENSetTargetPos = function (_x, _y) + { + this.target["x"] = _x; + this.target["y"] = _y; + this._reset_current_pos(); + this.is_moving = false; + this.inst.x = this.target["x"]; + this.inst.y = this.target["y"]; + this.SetCurrentSpeed(0); + this.moving_angle_get(); + this.is_moving = true; + }; + behinstProto.is_tick_changed = function () + { + var cur_tick = this.runtime.tickcount; + var tick_changed = (this._last_tick != cur_tick); + this._last_tick = cur_tick; + return tick_changed; + }; + behinstProto.moving_angle_get = function (ret) + { + if (this.is_tick_changed()) + { + var dx = this.inst.x - this._moving_angle_info["x"]; + var dy = this.inst.y - this._moving_angle_info["y"]; + if ((dx!=0) || (dy!=0)) + this._moving_angle_info["a"] = cr.to_clamped_degrees(Math.atan2(dy,dx)); + } + return this._moving_angle_info["a"]; + }; + behinstProto.saveToJSON = function () + { + return { "en": this.enabled, + "v": this.move, + "t": this.target, + "is_m": this.is_moving, + "c_spd" : this.current_speed, + "rd" : this.remain_distance, + "is_ht" : this.is_hit_target, + "pp": this._pre_pos, + "ma": this._moving_angle_info, + "lt": this._last_tick, + }; + }; + behinstProto.loadFromJSON = function (o) + { + this.enabled = o["en"]; + this.move = o["v"]; + this.target = o["t"]; + this.is_moving = o["is_m"]; + this.current_speed = o["c_spd"]; + this.remain_distance = o["rd"]; + this.is_hit_target = o["is_ht"]; + this._pre_pos = o["pp"]; + this._moving_angle_info = o["ma"]; + this._last_tick = o["lt"]; + }; + function Cnds() {}; + behaviorProto.cnds = new Cnds(); + Cnds.prototype.OnHitTarget = function () + { + return (this.is_my_call); + }; + Cnds.prototype.CompareSpeed = function (cmp, s) + { + return cr.do_cmp(this.current_speed, cmp, s); + }; + Cnds.prototype.OnMoving = function () // deprecated + { + return false; + }; + Cnds.prototype.IsMoving = function () + { + return (this.enabled && this.is_moving); + }; + Cnds.prototype.CompareMovingAngle = function (cmp, s) + { + var angle = this.moving_angle_get(); + if (angle != (-1)) + return cr.do_cmp(this.moving_angle_get(), cmp, s); + else + return false; + }; + function Acts() {}; + behaviorProto.acts = new Acts(); + Acts.prototype.SetEnabled = function (en) + { + this.enabled = (en === 1); + }; + Acts.prototype.SetMaxSpeed = function (s) + { + this.move["max"] = s; + this.SetCurrentSpeed(null); + }; + Acts.prototype.SetAcceleration = function (a) + { + this.move["acc"] = a; + this.SetCurrentSpeed(null); + }; + Acts.prototype.SetDeceleration = function (a) + { + this.move["dec"] = a; + }; + Acts.prototype.SetTargetPos = function (_x, _y) + { + this.SetTargetPos(_x, _y) + }; + Acts.prototype.KENSetTargetPos = function (_x, _y) + { + this.KENSetTargetPos(_x, _y) + }; + Acts.prototype.SetCurrentSpeed = function (s) + { + this.SetCurrentSpeed(s); + }; + Acts.prototype.SetTargetPosOnObject = function (objtype) + { + if (!objtype) + return; + var inst = objtype.getFirstPicked(); + if (inst != null) + this.SetTargetPos(inst.x, inst.y); + }; + Acts.prototype.SetTargetPosByDeltaXY = function (dx, dy) + { + this.SetTargetPos(this.inst.x + dx, this.inst.y + dy); + }; + Acts.prototype.SetTargetPosByDistanceAngle = function (distance, angle) + { + var a = cr.to_clamped_radians(angle); + var dx = distance*Math.cos(a); + var dy = distance*Math.sin(a); + this.SetTargetPos(this.inst.x + dx, this.inst.y + dy); + }; + Acts.prototype.Stop = function () + { + this.is_moving = false; + }; + function Exps() {}; + behaviorProto.exps = new Exps(); + Exps.prototype.Activated = function (ret) + { + ret.set_int((this.enabled)? 1:0); + }; + Exps.prototype.Speed = function (ret) + { + ret.set_float(this.current_speed); + }; + Exps.prototype.MaxSpeed = function (ret) + { + ret.set_float(this.move["max"]); + }; + Exps.prototype.Acc = function (ret) + { + ret.set_float(this.move["acc"]); + }; + Exps.prototype.Dec = function (ret) + { + ret.set_float(this.move["dec"]); + }; + Exps.prototype.TargetX = function (ret) + { + ret.set_float(this.target["x"]); + }; + Exps.prototype.TargetY = function (ret) + { + ret.set_float(this.target["y"]); + }; + Exps.prototype.MovingAngle = function (ret) + { + ret.set_float(this.moving_angle_get()); + }; +}()); +; +; +cr.behaviors.Sin = function(runtime) +{ + this.runtime = runtime; +}; +(function () +{ + var behaviorProto = cr.behaviors.Sin.prototype; + behaviorProto.Type = function(behavior, objtype) + { + this.behavior = behavior; + this.objtype = objtype; + this.runtime = behavior.runtime; + }; + var behtypeProto = behaviorProto.Type.prototype; + behtypeProto.onCreate = function() + { + }; + behaviorProto.Instance = function(type, inst) + { + this.type = type; + this.behavior = type.behavior; + this.inst = inst; // associated object instance to modify + this.runtime = type.runtime; + this.i = 0; // period offset (radians) + }; + var behinstProto = behaviorProto.Instance.prototype; + var _2pi = 2 * Math.PI; + var _pi_2 = Math.PI / 2; + var _3pi_2 = (3 * Math.PI) / 2; + behinstProto.onCreate = function() + { + this.active = (this.properties[0] === 1); + this.movement = this.properties[1]; // 0=Horizontal|1=Vertical|2=Size|3=Width|4=Height|5=Angle|6=Opacity|7=Value only + this.wave = this.properties[2]; // 0=Sine|1=Triangle|2=Sawtooth|3=Reverse sawtooth|4=Square + this.period = this.properties[3]; + this.period += Math.random() * this.properties[4]; // period random + if (this.period === 0) + this.i = 0; + else + { + this.i = (this.properties[5] / this.period) * _2pi; // period offset + this.i += ((Math.random() * this.properties[6]) / this.period) * _2pi; // period offset random + } + this.mag = this.properties[7]; // magnitude + this.mag += Math.random() * this.properties[8]; // magnitude random + this.initialValue = 0; + this.initialValue2 = 0; + this.ratio = 0; + if (this.movement === 5) // angle + this.mag = cr.to_radians(this.mag); + this.init(); + }; + behinstProto.saveToJSON = function () + { + return { + "i": this.i, + "a": this.active, + "mv": this.movement, + "w": this.wave, + "p": this.period, + "mag": this.mag, + "iv": this.initialValue, + "iv2": this.initialValue2, + "r": this.ratio, + "lkv": this.lastKnownValue, + "lkv2": this.lastKnownValue2 + }; + }; + behinstProto.loadFromJSON = function (o) + { + this.i = o["i"]; + this.active = o["a"]; + this.movement = o["mv"]; + this.wave = o["w"]; + this.period = o["p"]; + this.mag = o["mag"]; + this.initialValue = o["iv"]; + this.initialValue2 = o["iv2"] || 0; + this.ratio = o["r"]; + this.lastKnownValue = o["lkv"]; + this.lastKnownValue2 = o["lkv2"] || 0; + }; + behinstProto.init = function () + { + switch (this.movement) { + case 0: // horizontal + this.initialValue = this.inst.x; + break; + case 1: // vertical + this.initialValue = this.inst.y; + break; + case 2: // size + this.initialValue = this.inst.width; + this.ratio = this.inst.height / this.inst.width; + break; + case 3: // width + this.initialValue = this.inst.width; + break; + case 4: // height + this.initialValue = this.inst.height; + break; + case 5: // angle + this.initialValue = this.inst.angle; + break; + case 6: // opacity + this.initialValue = this.inst.opacity; + break; + case 7: + this.initialValue = 0; + break; + case 8: // forwards/backwards + this.initialValue = this.inst.x; + this.initialValue2 = this.inst.y; + break; + default: +; + } + this.lastKnownValue = this.initialValue; + this.lastKnownValue2 = this.initialValue2; + }; + behinstProto.waveFunc = function (x) + { + x = x % _2pi; + switch (this.wave) { + case 0: // sine + return Math.sin(x); + case 1: // triangle + if (x <= _pi_2) + return x / _pi_2; + else if (x <= _3pi_2) + return 1 - (2 * (x - _pi_2) / Math.PI); + else + return (x - _3pi_2) / _pi_2 - 1; + case 2: // sawtooth + return 2 * x / _2pi - 1; + case 3: // reverse sawtooth + return -2 * x / _2pi + 1; + case 4: // square + return x < Math.PI ? -1 : 1; + }; + return 0; + }; + behinstProto.tick = function () + { + var dt = this.runtime.getDt(this.inst); + if (!this.active || dt === 0) + return; + if (this.period === 0) + this.i = 0; + else + { + this.i += (dt / this.period) * _2pi; + this.i = this.i % _2pi; + } + this.updateFromPhase(); + }; + behinstProto.updateFromPhase = function () + { + switch (this.movement) { + case 0: // horizontal + if (this.inst.x !== this.lastKnownValue) + this.initialValue += this.inst.x - this.lastKnownValue; + this.inst.x = this.initialValue + this.waveFunc(this.i) * this.mag; + this.lastKnownValue = this.inst.x; + break; + case 1: // vertical + if (this.inst.y !== this.lastKnownValue) + this.initialValue += this.inst.y - this.lastKnownValue; + this.inst.y = this.initialValue + this.waveFunc(this.i) * this.mag; + this.lastKnownValue = this.inst.y; + break; + case 2: // size + this.inst.width = this.initialValue + this.waveFunc(this.i) * this.mag; + this.inst.height = this.inst.width * this.ratio; + break; + case 3: // width + this.inst.width = this.initialValue + this.waveFunc(this.i) * this.mag; + break; + case 4: // height + this.inst.height = this.initialValue + this.waveFunc(this.i) * this.mag; + break; + case 5: // angle + if (this.inst.angle !== this.lastKnownValue) + this.initialValue = cr.clamp_angle(this.initialValue + (this.inst.angle - this.lastKnownValue)); + this.inst.angle = cr.clamp_angle(this.initialValue + this.waveFunc(this.i) * this.mag); + this.lastKnownValue = this.inst.angle; + break; + case 6: // opacity + this.inst.opacity = this.initialValue + (this.waveFunc(this.i) * this.mag) / 100; + if (this.inst.opacity < 0) + this.inst.opacity = 0; + else if (this.inst.opacity > 1) + this.inst.opacity = 1; + break; + case 8: // forwards/backwards + if (this.inst.x !== this.lastKnownValue) + this.initialValue += this.inst.x - this.lastKnownValue; + if (this.inst.y !== this.lastKnownValue2) + this.initialValue2 += this.inst.y - this.lastKnownValue2; + this.inst.x = this.initialValue + Math.cos(this.inst.angle) * this.waveFunc(this.i) * this.mag; + this.inst.y = this.initialValue2 + Math.sin(this.inst.angle) * this.waveFunc(this.i) * this.mag; + this.lastKnownValue = this.inst.x; + this.lastKnownValue2 = this.inst.y; + break; + } + this.inst.set_bbox_changed(); + }; + behinstProto.onSpriteFrameChanged = function (prev_frame, next_frame) + { + switch (this.movement) { + case 2: // size + this.initialValue *= (next_frame.width / prev_frame.width); + this.ratio = next_frame.height / next_frame.width; + break; + case 3: // width + this.initialValue *= (next_frame.width / prev_frame.width); + break; + case 4: // height + this.initialValue *= (next_frame.height / prev_frame.height); + break; + } + }; + function Cnds() {}; + Cnds.prototype.IsActive = function () + { + return this.active; + }; + Cnds.prototype.CompareMovement = function (m) + { + return this.movement === m; + }; + Cnds.prototype.ComparePeriod = function (cmp, v) + { + return cr.do_cmp(this.period, cmp, v); + }; + Cnds.prototype.CompareMagnitude = function (cmp, v) + { + if (this.movement === 5) + return cr.do_cmp(this.mag, cmp, cr.to_radians(v)); + else + return cr.do_cmp(this.mag, cmp, v); + }; + Cnds.prototype.CompareWave = function (w) + { + return this.wave === w; + }; + behaviorProto.cnds = new Cnds(); + function Acts() {}; + Acts.prototype.SetActive = function (a) + { + this.active = (a === 1); + }; + Acts.prototype.SetPeriod = function (x) + { + this.period = x; + }; + Acts.prototype.SetMagnitude = function (x) + { + this.mag = x; + if (this.movement === 5) // angle + this.mag = cr.to_radians(this.mag); + }; + Acts.prototype.SetMovement = function (m) + { + if (this.movement === 5 && m !== 5) + this.mag = cr.to_degrees(this.mag); + this.movement = m; + this.init(); + }; + Acts.prototype.SetWave = function (w) + { + this.wave = w; + }; + Acts.prototype.SetPhase = function (x) + { + this.i = (x * _2pi) % _2pi; + this.updateFromPhase(); + }; + Acts.prototype.UpdateInitialState = function () + { + this.init(); + }; + behaviorProto.acts = new Acts(); + function Exps() {}; + Exps.prototype.CyclePosition = function (ret) + { + ret.set_float(this.i / _2pi); + }; + Exps.prototype.Period = function (ret) + { + ret.set_float(this.period); + }; + Exps.prototype.Magnitude = function (ret) + { + if (this.movement === 5) // angle + ret.set_float(cr.to_degrees(this.mag)); + else + ret.set_float(this.mag); + }; + Exps.prototype.Value = function (ret) + { + ret.set_float(this.waveFunc(this.i) * this.mag); + }; + behaviorProto.exps = new Exps(); +}()); +; +; +function trim (str) { + return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); +} +cr.behaviors.lunarray_Tween = function(runtime) +{ + this.runtime = runtime; +}; +(function () +{ + var behaviorProto = cr.behaviors.lunarray_Tween.prototype; + behaviorProto.Type = function(behavior, objtype) + { + this.behavior = behavior; + this.objtype = objtype; + this.runtime = behavior.runtime; + }; + var behtypeProto = behaviorProto.Type.prototype; + behtypeProto.onCreate = function() + { + }; + behaviorProto.Instance = function(type, inst) + { + this.type = type; + this.behavior = type.behavior; + this.inst = inst; // associated object instance to modify + this.runtime = type.runtime; + this.i = 0; // progress + }; + var behinstProto = behaviorProto.Instance.prototype; + behinstProto.groupUpdateProgress = function(v) + { + if (v > 1) v = 1; + if (cr.lunarray_tweenProgress[this.group] = -1) cr.lunarray_tweenProgress[this.group] = v; + if (cr.lunarray_tweenProgress[this.group] >= v) cr.lunarray_tweenProgress[this.group] = v; + } + behinstProto.groupSync = function() + { + if (this.group != "") { + if (typeof cr.lunarray_tweenGroup === "undefined") { + cr.lunarray_tweenGroup = {}; + cr.lunarray_tweenProgress = {}; + } + if (typeof cr.lunarray_tweenGroup[this.group] === "undefined") { + cr.lunarray_tweenGroup[this.group] = []; + cr.lunarray_tweenProgress[this.group] = -1; + } + if (cr.lunarray_tweenGroup[this.group].indexOf(this) == -1) { + cr.lunarray_tweenGroup[this.group].push(this); + } + } + } + behinstProto.saveState = function() + { + this.tweenSaveWidth = this.inst.width; + this.tweenSaveHeight = this.inst.height; + this.tweenSaveAngle = this.inst.angle; + this.tweenSaveOpacity = this.inst.opacity; + this.tweenSaveX = this.inst.x; + this.tweenSaveY = this.inst.y; + this.tweenSaveValue = this.value; + } + behinstProto.onCreate = function() + { + this.active = (this.properties[0] === 1); + this.tweened = this.properties[1]; // 0=Position|1=Size|2=Width|3=Height|4=Angle|5=Opacity|6=Value only|7=Pixel Size + this.easing = this.properties[2]; + this.initial = this.properties[3]; + this.target = this.properties[4]; + this.duration = this.properties[5]; + this.wait = this.properties[6]; + this.playmode = this.properties[7]; //0=Play Once|1=Repeat|2=Ping Pong|3=Play once and destroy|4=Loop|5=Ping Pong Stop|6=Play and stop + this.value = this.properties[8]; + this.coord_mode = this.properties[9]; //0=Absolute|1=Relative + this.forceInit = (this.properties[10] === 1); + this.group = this.properties[11]; + this.targetObject = null; + this.pingpongCounter = 0; + if (this.playmode == 5) this.pingpongCounter = 1; + this.groupSync(); + this.isPaused = false; + this.initialX = this.inst.x; + this.initialY = this.inst.y; + this.targetX = parseFloat(this.target.split(",")[0]); + this.targetY = parseFloat(this.target.split(",")[1]); + this.saveState(); + this.tweenInitialX = 0; + this.tweenInitialY = 0; + this.tweenTargetX = 0; + this.tweenTargetY = 0; + this.tweenTargetAngle = 0; + this.ratio = this.inst.height / this.inst.width; + this.reverse = false; + this.rewindMode = false; + this.doTweenX = true; + this.doTweenY = true; + this.loop = false; + this.initiating = 0; + this.cooldown = 0; + this.lastPlayMode = this.playmode; + this.lastKnownValue = this.tweenInitialX; + this.lastKnownX = this.tweenInitialX; + this.lastKnownY = this.tweenInitialY; + if (this.forceInit) this.init(); + if (this.initial == "") this.initial = "current"; + this.onStarted = false; + this.onStartedDone = false; + this.onWaitEnd = false; + this.onWaitEndDone = false; + this.onEnd = false; + this.onEndDone = false; + this.onCooldown = false; + this.onCooldownDone = false; + if (this.active) { + this.init(); + } + }; + behinstProto.init = function () + { + this.onStarted = false; + if (this.initial === "") this.initial = "current"; + if (this.target === "") this.target = "current"; + var isCurrent = (this.initial === "current"); + var targetIsCurrent = (this.target === "current"); + var isTargettingObject = (this.target === "OBJ"); + if (this.target === "OBJ") { + if (this.targetObject != null) { + if (this.tweened == 0) { + if (this.coord_mode == 1) //relative mode + this.target = (this.targetObject.x-this.inst.x) + "," + (this.targetObject.y-this.inst.y); + else //absolute mode + this.target = (this.targetObject.x) + "," + (this.targetObject.y); + } else if ((this.tweened == 1) || (this.tweened == 2) || (this.tweened == 3) || (this.tweened == 7)) { + if (this.coord_mode == 1) { //relative mode + this.target = ((this.tweened==2)?1:(this.targetObject.width)) + "," + ((this.tweened==3)?1:(this.targetObject.height)); + } else { + this.target = ((this.tweened==2)?1:(this.targetObject.width/this.tweenSaveWidth)) + "," + ((this.tweened==3)?1:(this.targetObject.height/this.tweenSaveHeight)); + } + } else if (this.tweened == 4) { + if (this.coord_mode == 1) //relative mode + this.target = cr.to_degrees(this.targetObject.angle-this.inst.angle) + ""; + else //absolute mode + this.target = cr.to_degrees(this.targetObject.angle) + ""; + } else if (this.tweened == 5) { + if (this.coord_mode == 1) //relative mode + this.target = ((this.targetObject.opacity-this.inst.opacity)*100) + ""; + else //absolute mode + this.target = (this.targetObject.opacity*100) + ""; + } + } + } + if (this.tweened == 0) { + if (targetIsCurrent) this.target = this.inst.x + "," + this.inst.y; + if (!isCurrent) { + if (!this.reverse) { + if (this.playmode != 1) { + this.inst.x = parseFloat(this.initial.split(",")[0]); + this.inst.y = parseFloat(this.initial.split(",")[1]); + } + } + } else { + if (this.coord_mode == 1) { + this.initial = this.inst.x + "," + this.inst.y; + } else { + this.initial = this.tweenSaveX + "," + this.tweenSaveY; + } + } + if (this.coord_mode == 1) { + if (this.loop) { + this.inst.x = this.tweenSaveX; + this.inst.y = this.tweenSaveY; + } + this.initialX = this.inst.x; + this.initialY = this.inst.y; + if (!this.reverse) { + this.targetX = parseFloat(this.target.split(",")[0]); + this.targetY = parseFloat(this.target.split(",")[1]); + } else { + this.targetX = -parseFloat(this.target.split(",")[0]); + this.targetY = -parseFloat(this.target.split(",")[1]); + } + this.tweenInitialX = this.initialX; + this.tweenInitialY = this.initialY; + this.tweenTargetX = this.tweenInitialX + this.targetX; + this.tweenTargetY = this.tweenInitialY + this.targetY; + } else { + if (!this.reverse) { + this.inst.x = this.tweenSaveX; + this.inst.y = this.tweenSaveY; + this.targetX = parseFloat(this.target.split(",")[0]); + this.targetY = parseFloat(this.target.split(",")[1]); + } else { + this.inst.x = parseFloat(this.target.split(",")[0]); + this.inst.y = parseFloat(this.target.split(",")[1]); + this.targetX = this.tweenSaveX; + this.targetY = this.tweenSaveY; + } + this.initialX = this.inst.x; + this.initialY = this.inst.y; + this.tweenInitialX = this.initialX; + this.tweenInitialY = this.initialY; + this.tweenTargetX = this.targetX; + this.tweenTargetY = this.targetY; + if (this.playmode == -6) { + this.tweenTargetX = this.tweenSaveX; + this.tweenTargetY = this.tweenSaveY; + } + } + } else if ((this.tweened == 1) || (this.tweened == 2) || (this.tweened == 3)) { + if (targetIsCurrent) this.target = "1,1"; + if (this.initial == "current") this.initial = "1,1"; + this.initial = "" + this.initial; + this.target = "" + this.target; + if (this.tweened == 2) { + if (this.initial.indexOf(',') == -1) this.initial = parseFloat(this.initial) + ",1"; + if (this.target.indexOf(',') == -1) this.target = parseFloat(this.target) + ",1"; + } else if (this.tweened == 3) { + if (this.initial.indexOf(',') == -1) this.initial = "1," + parseFloat(this.initial); + if (this.target.indexOf(',') == -1) this.target = "1," + parseFloat(this.target); + } else { + if (this.initial.indexOf(',') == -1) this.initial = parseFloat(this.initial) + "," + parseFloat(this.initial); + if (this.target.indexOf(',') == -1) this.target = parseFloat(this.target) + "," + parseFloat(this.target); + } + var ix = parseFloat(this.initial.split(",")[0]); + var iy = parseFloat(this.initial.split(",")[1]); + this.doTweenX = true; + var tx = parseFloat(this.target.split(",")[0]); + if ((tx == 0) || (isNaN(tx))) this.doTweenX = false; + if (this.tweened == 3) this.doTweenX = false; + this.doTweenY = true; + var ty = parseFloat(this.target.split(",")[1]); + if ((ty == 0) || (isNaN(ty))) this.doTweenY = false; + if (this.tweened == 2) this.doTweenY = false; + if (this.coord_mode == 1) { + if (this.loop) { + this.inst.width = this.tweenSaveWidth; + this.inst.height = this.tweenSaveHeight; + } + if (!isCurrent) { + if (!this.reverse) { + this.inst.width = this.inst.width * ix; + this.inst.height = this.inst.height * iy; + } else { + this.inst.width = this.inst.width * tx; + this.inst.height = this.inst.height * ty; + } + } + this.initialX = this.inst.width; + this.initialY = this.inst.height; + this.tweenInitialX = this.initialX; + this.tweenInitialY = this.initialY; + if (!this.reverse) { + this.targetX = this.initialX * tx; + this.targetY = this.initialY * ty; + } else { + this.targetX = this.initialX * ix/tx; + this.targetY = this.initialY * iy/ty; + } + this.tweenTargetX = this.targetX; + this.tweenTargetY = this.targetY; + } else { + if (!isCurrent) { + if (!this.reverse) { + this.inst.width = this.tweenSaveWidth * ix; + this.inst.height = this.tweenSaveHeight * iy; + } else { + this.inst.width = this.tweenSaveWidth * tx; + this.inst.height = this.tweenSaveHeight * ty; + } + } + this.initialX = this.inst.width; + this.initialY = this.inst.height; + this.tweenInitialX = this.initialX; + this.tweenInitialY = this.initialY; + if (!this.reverse) { + this.targetX = this.tweenSaveWidth * tx; + this.targetY = this.tweenSaveHeight * ty; + } else { + this.targetX = this.tweenSaveWidth * ix; + this.targetY = this.tweenSaveHeight * iy; + } + this.tweenTargetX = this.targetX; + this.tweenTargetY = this.targetY; + } + if (this.playmode == -6) { + this.tweenTargetX = this.tweenSaveWidth * ix; + this.tweenTargetY = this.tweenSaveHeight * iy; + } + } else if (this.tweened == 4) { + if (targetIsCurrent) this.target = cr.to_degrees(this.inst.angle); + if (this.initial != "current") { + if (!this.reverse) { + if (this.playmode != 1) { //if repeat, don't initialize + this.inst.angle = cr.to_radians(parseFloat(this.initial.split(",")[0])); + } + } + } + if (this.coord_mode == 1) { + if (this.loop) { + this.inst.angle = this.tweenSaveAngle; + } + this.initialX = this.inst.angle; + if (this.reverse) { + this.targetX = this.inst.angle - cr.to_radians(parseFloat(this.target.split(",")[0])); + } else { + this.targetX = this.inst.angle + cr.to_radians(parseFloat(this.target.split(",")[0])); + } + this.tweenInitialX = this.initialX; + this.tweenTargetX = cr.to_degrees(this.targetX); + } else { + if (this.reverse) { + this.inst.angle = cr.to_radians(parseFloat(this.target.split(",")[0]));; + this.initialX = this.inst.angle; + this.targetX = this.tweenSaveAngle; + this.tweenInitialX = this.initialX; + this.tweenTargetX = cr.to_degrees(this.targetX); + } else { + this.inst.angle = this.tweenSaveAngle; + this.initialX = this.inst.angle; + this.targetX = cr.to_radians(parseFloat(this.target.split(",")[0])); + this.tweenInitialX = this.initialX; + this.tweenTargetX = cr.to_degrees(this.targetX); + } + } + if (this.playmode == -6) { + this.tweenTargetX = cr.to_degrees(this.tweenSaveAngle); + } + this.tweenTargetAngle = cr.to_radians(this.tweenTargetX); + } else if (this.tweened == 5) { + if (this.initial == "current") this.initial = this.inst.opacity; + if (targetIsCurrent) this.target = ""+this.inst.opacity; + if (!isCurrent) { + if (!this.reverse) { + if (this.playmode != 1) { //if repeat, don't initialize + this.inst.opacity = parseFloat(this.initial.split(",")[0]) / 100; + } + } + } + if (this.coord_mode == 1) { + if (this.loop) { + this.inst.opacity = this.tweenSaveOpacity; + } + this.initialX = this.inst.opacity; + this.tweenInitialX = this.initialX; + if (!this.reverse) { + this.targetX = parseFloat(this.target.split(",")[0]) / 100; + } else { + this.targetX = -parseFloat(this.target.split(",")[0]) / 100; + } + this.tweenTargetX = this.tweenInitialX + this.targetX; + } else { + this.initialX = this.inst.opacity; + if (!this.reverse) { + this.tweenInitialX = this.initialX; + this.targetX = parseFloat(this.target.split(",")[0]) / 100; + } else { + this.tweenInitialX = parseFloat(this.target.split(",")[0]) / 100; + this.targetX = parseFloat(this.initial.split(",")[0]) / 100; + } + this.tweenTargetX = this.targetX; + } + if (this.playmode == -6) { + this.tweenTargetX = this.tweenSaveOpacity; + } + } else if (this.tweened == 6) { + if (isNaN(this.value)) this.value = 0; + if (this.initial == "current") this.initial = ""+this.value; + if (targetIsCurrent) this.target = ""+this.value; + if (!isCurrent) { + if (!this.reverse) { + if (this.playmode != 1) { //if repeat, don't initialize + this.value = parseFloat(this.initial.split(",")[0]); + } + } + } + if (this.coord_mode == 1) { + if (this.loop) { + this.value = this.tweenSaveValue; + } + if (!isCurrent) { + if (!this.reverse) { + this.value = parseFloat(this.initial.split(",")[0]); + } else { + this.value = parseFloat(this.target.split(",")[0]); + } + } + this.initialX = this.value; + if (!this.reverse) { + this.targetX = this.initialX + parseFloat(this.target.split(",")[0]); + } else { + this.targetX = this.initialX - parseFloat(this.target.split(",")[0]); + } + this.tweenInitialX = this.initialX; + this.tweenTargetX = this.targetX; + } else { + if (!isCurrent) { + if (!this.reverse) { + this.value = parseFloat(this.initial.split(",")[0]); + } else { + this.value = parseFloat(this.target.split(",")[0]); + } + } + this.initialX = this.value; + if (!this.reverse) { + this.targetX = parseFloat(this.target.split(",")[0]); + } else { + this.targetX = parseFloat(this.initial.split(",")[0]); + } + this.tweenInitialX = this.initialX; + this.tweenTargetX = this.targetX; + } + if (this.playmode == -6) { + this.tweenTargetX = this.tweenSaveValue; + } + } else if (this.tweened == 7) { + if (targetIsCurrent) this.target = this.inst.width + "," + this.inst.height; + if (this.initial != "current") { + if (!this.reverse) { + if (this.playmode != 1) { //if repeat, don't initialize + this.inst.width = parseFloat(this.initial.split(",")[0]); + this.inst.height = parseFloat(this.initial.split(",")[1]); + } + } + } + this.doTweenX = true; + var tx = parseFloat(this.target.split(",")[0]); + if ((tx < 0) || (isNaN(tx))) this.doTweenX = false; + this.doTweenY = true; + var ty = parseFloat(this.target.split(",")[1]); + if ((ty < 0) || (isNaN(ty))) this.doTweenY = false; + if (this.coord_mode == 1) { + if (this.loop) { + this.inst.width = this.tweenSaveWidth; + this.inst.height = this.tweenSaveHeight; + } + this.initialX = this.inst.width; + this.initialY = this.inst.height; + if (!this.reverse) { + this.targetX = this.initialX + parseFloat(this.target.split(",")[0]); + this.targetY = this.initialY + parseFloat(this.target.split(",")[1]); + } else { + this.targetX = this.initialX - parseFloat(this.target.split(",")[0]); + this.targetY = this.initialY - parseFloat(this.target.split(",")[1]); + } + this.tweenInitialX = this.initialX; + this.tweenInitialY = this.initialY; + this.tweenTargetX = this.targetX; + this.tweenTargetY = this.targetY; + } else { + if (!isCurrent) { + if (!this.reverse) { + this.inst.width = this.tweenSaveWidth; + this.inst.height = this.tweenSaveHeight; + } else { + this.inst.width = parseFloat(this.target.split(",")[0]); + this.inst.height = parseFloat(this.target.split(",")[1]); + } + } + this.initialX = this.inst.width; + this.initialY = this.inst.height; + if (!this.reverse) { + this.targetX = parseFloat(this.target.split(",")[0]); + this.targetY = parseFloat(this.target.split(",")[1]); + } else { + this.targetX = this.tweenSaveWidth; + this.targetY = this.tweenSaveHeight; + } + this.tweenInitialX = this.initialX; + this.tweenInitialY = this.initialY; + this.tweenTargetX = this.targetX; + this.tweenTargetY = this.targetY; + } + if (this.playmode == -6) { + this.tweenTargetX = this.tweenSaveWidth; + this.tweenTargetY = this.tweenSaveHeight; + } + } else { +; + } + this.lastKnownValue = this.tweenInitialX; + this.lastKnownX = this.tweenInitialX; + this.lastKnownY = this.tweenInitialY; + this.initiating = parseFloat(this.wait.split(",")[0]); + this.cooldown = parseFloat(this.wait.split(",")[1]); + if ((this.initiating < 0) || (isNaN(this.initiating))) this.initiating = 0; + if ((this.cooldown < 0) || (isNaN(this.cooldown))) this.cooldown = 0; + if (isCurrent) this.initial = "current"; + if (targetIsCurrent) this.target = "current"; + if (isTargettingObject) this.target = "OBJ"; + }; + function easeOutBounce(t,b,c,d) { + if ((t/=d) < (1/2.75)) { + return c*(7.5625*t*t) + b; + } else if (t < (2/2.75)) { + return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; + } else { + return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; + } + } + behinstProto.easeFunc = function (t, b, c, d) + { + switch (this.easing) { + case 0: // linear + return c*t/d + b; + case 1: // easeInQuad + return c*(t/=d)*t + b; + case 2: // easeOutQuad + return -c *(t/=d)*(t-2) + b; + case 3: // easeInOutQuad + if ((t/=d/2) < 1) return c/2*t*t + b; + return -c/2 * ((--t)*(t-2) - 1) + b; + case 4: // easeInCubic + return c*(t/=d)*t*t + b; + case 5: // easeOutCubic + return c*((t=t/d-1)*t*t + 1) + b; + case 6: // easeInOutCubic + if ((t/=d/2) < 1) + return c/2*t*t*t + b; + return c/2*((t-=2)*t*t + 2) + b; + case 7: // easeInQuart + return c*(t/=d)*t*t*t + b; + case 8: // easeOutQuart + return -c * ((t=t/d-1)*t*t*t - 1) + b; + case 9: // easeInOutQuart + if ((t/=d/2) < 1) return c/2*t*t*t*t + b; + return -c/2 * ((t-=2)*t*t*t - 2) + b; + case 10: // easeInQuint + return c*(t/=d)*t*t*t*t + b; + case 11: // easeOutQuint + return c*((t=t/d-1)*t*t*t*t + 1) + b; + case 12: // easeInOutQuint + if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; + return c/2*((t-=2)*t*t*t*t + 2) + b; + case 13: // easeInCircle + return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; + case 14: // easeOutCircle + return c * Math.sqrt(1 - (t=t/d-1)*t) + b; + case 15: // easeInOutCircle + if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; + return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; + case 16: // easeInBack + var s = 0; + if (s==0) s = 1.70158; + return c*(t/=d)*t*((s+1)*t - s) + b; + case 17: // easeOutBack + var s = 0; + if (s==0) s = 1.70158; + return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; + case 18: // easeInOutBack + var s = 0; + if (s==0) s = 1.70158; + if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; + return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; + case 19: //easeInElastic + var a = 0; + var p = 0; + if (t==0) return b; if ((t/=d)==1) return b+c; if (p==0) p=d*.3; + if (a==0 || a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + case 20: //easeOutElastic + var a = 0; + var p = 0; + if (t==0) return b; if ((t/=d)==1) return b+c; if (p == 0) p=d*.3; + if (a==0 || a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b); + case 21: //easeInOutElastic + var a = 0; + var p = 0; + if (t==0) return b; + if ((t/=d/2)==2) return b+c; + if (p==0) p=d*(.3*1.5); + if (a==0 || a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; + case 22: //easeInBounce + return c - easeOutBounce(d-t, 0, c, d) + b; + case 23: //easeOutBounce + return easeOutBounce(t,b,c,d); + case 24: //easeInOutBounce + if (t < d/2) return (c - easeOutBounce(d-(t*2), 0, c, d) + b) * 0.5 +b; + else return easeOutBounce(t*2-d, 0, c, d) * .5 + c*.5 + b; + case 25: //easeInSmoothstep + var mt = (t/d) / 2; + return (2*(mt * mt * (3 - 2*mt))); + case 26: //easeOutSmoothstep + var mt = ((t/d) + 1) / 2; + return ((2*(mt * mt * (3 - 2*mt))) - 1); + case 27: //easeInOutSmoothstep + var mt = (t / d); + return (mt * mt * (3 - 2*mt)); + }; + return 0; + }; + behinstProto.saveToJSON = function () + { + return { + "i": this.i, + "active": this.active, + "tweened": this.tweened, + "easing": this.easing, + "initial": this.initial, + "target": this.target, + "duration": this.duration, + "wait": this.wait, + "playmode": this.playmode, + "value": this.value, + "coord_mode": this.coord_mode, + "forceInit": this.forceInit, + "group": this.group, + "targetObject": this.targetObject, + "pingpongCounter": this.pingpongCounter, + "isPaused": this.isPaused, + "initialX": this.initialX, + "initialY": this.initialY, + "targetX": this.targetX, + "targetY": this.targetY, + "tweenSaveWidth": this.tweenSaveWidth, + "tweenSaveHeight": this.tweenSaveHeight, + "tweenSaveAngle": this.tweenSaveAngle, + "tweenSaveX": this.tweenSaveX, + "tweenSaveY": this.tweenSaveY, + "tweenSaveValue": this.tweenSaveValue, + "tweenInitialX": this.tweenInitialX, + "tweenInitialY": this.tweenInitialY, + "tweenTargetX": this.tweenTargetX, + "tweenTargetY": this.tweenTargetY, + "tweenTargetAngle": this.tweenTargetAngle, + "ratio": this.ratio, + "reverse": this.reverse, + "rewindMode": this.rewindMode, + "doTweenX": this.doTweenX, + "doTweenY": this.doTweenY, + "loop": this.loop, + "initiating": this.initiating, + "cooldown": this.cooldown, + "lastPlayMode": this.lastPlayMode, + "lastKnownValue": this.lastKnownValue, + "lastKnownX": this.lastKnownX, + "lastKnownY": this.lastKnownY, + "onStarted": this.onStarted, + "onStartedDone": this.onStartedDone, + "onWaitEnd": this.onWaitEnd, + "onWaitEndDone": this.onWaitEndDone, + "onEnd": this.onEnd, + "onEndDone": this.onEndDone, + "onCooldown": this.onCooldown, + "onCooldownDone": this.onCooldownDone + }; + }; + behinstProto.loadFromJSON = function (o) + { + this.i = o["i"]; + this.active = o["active"]; + this.tweened = o["tweened"]; + this.easing = o["easing"]; + this.initial = o["initial"]; + this.target = o["target"]; + this.duration = o["duration"]; + this.wait = o["wait"]; + this.playmode = o["playmode"]; + this.value = o["value"]; + this.coord_mode = o["coord_mode"]; + this.forceInit = o["forceInit"]; + this.group = o["group"]; + this.targetObject = o["targetObject"]; + this.pingpongCounter = o["pingpongCounter"]; + this.isPaused = o["isPaused"]; + this.initialX = o["initialX"]; + this.initialY = o["initialY"]; + this.targetX = o["targetX"]; + this.targetY = o["targetY"]; + this.tweenSaveWidth = o["tweenSaveWidth"]; + this.tweenSaveHeight = o["tweenSaveHeight"]; + this.tweenSaveAngle = o["tweenSaveAngle"]; + this.tweenSaveX = o["tweenSaveX"]; + this.tweenSaveY = o["tweenSaveY"]; + this.tweenSaveValue = o["tweenSaveValue"]; + this.tweenInitialX = o["tweenInitialX"]; + this.tweenInitialY = o["tweenInitialY"]; + this.tweenTargetX = o["tweenTargetX"]; + this.tweenTargetY = o["tweenTargetY"]; + this.tweenTargetAngle = o["tweenTargetAngle"]; + this.ratio = o["ratio"]; + this.reverse = o["reverse"]; + this.rewindMode = o["rewindMode"]; + this.doTweenX = o["doTweenX"]; + this.doTweenY = o["doTweenY"]; + this.loop = o["loop"]; + this.initiating = o["initiating"]; + this.cooldown = o["cooldown"]; + this.lastPlayMode = o["lastPlayMode"]; + this.lastKnownValue = o["lastKnownValue"]; + this.lastKnownX = o["lastKnownX"]; + this.lastKnownY = o["lastKnownY"]; + this.onStarted = o["onStarted"]; + this.onStartedDone = o["onStartedDone"]; + this.onWaitEnd = o["onWaitEnd"]; + this.onWaitEndDone = o["onWaitEndDone"] + this.onEnd = o["onEnd"]; + this.onEndDone = o["onEndDone"]; + this.onCooldown = o["onCooldown"]; + this.onCooldownDone = o["onCooldownDone"]; + this.groupSync(); + }; + behinstProto.tick = function () + { + var dt = this.runtime.getDt(this.inst); + var isForceStop = (this.i == -1); + if (!this.active || dt === 0) + return; + if (this.i == 0) { + if (!this.onStarted) { + this.onStarted = true; + this.onStartedDone = false; + this.onWaitEnd = false; + this.onWaitEndDone = false; + this.onEnd = false; + this.onEndDone = false; + this.onCooldown = false; + this.onCooldownDone = false; + this.runtime.trigger(cr.behaviors.lunarray_Tween.prototype.cnds.OnStart, this.inst); + this.onStartedDone = true; + } + } + if (this.i == -1) { + this.i = this.initiating + this.duration + this.cooldown; + } else { + this.i += dt; + } + if (this.i <= this.initiating) { + return; + } else { + if (this.onWaitEnd == false) { + this.onWaitEnd = true; + this.runtime.trigger(cr.behaviors.lunarray_Tween.prototype.cnds.OnWaitEnd, this.inst); + this.onWaitEndDone = true; + } + } + if (this.i <= (this.duration + this.initiating)) { + var factor = this.easeFunc(this.i-this.initiating, 0, 1, this.duration); + if (this.tweened == 0) { + if (this.coord_mode == 1) { + if (this.inst.x !== this.lastKnownX) { + this.tweenInitialX += (this.inst.x - this.lastKnownX); + this.tweenTargetX += (this.inst.x - this.lastKnownX); + } + if (this.inst.y !== this.lastKnownY) { + this.tweenInitialY += (this.inst.y - this.lastKnownY); + this.tweenTargetY += (this.inst.y - this.lastKnownY); + } + } else { + if (this.inst.x !== this.lastKnownX) + this.tweenInitialX += (this.inst.x - this.lastKnownX); + if (this.inst.y !== this.lastKnownY) + this.tweenInitialY += (this.inst.y - this.lastKnownY); + } + this.inst.x = this.tweenInitialX + (this.tweenTargetX - this.tweenInitialX) * factor; + this.inst.y = this.tweenInitialY + (this.tweenTargetY - this.tweenInitialY) * factor; + this.lastKnownX = this.inst.x; + this.lastKnownY = this.inst.y; + } else if ((this.tweened == 1) || (this.tweened == 2) || (this.tweened == 3)) { + if (this.inst.width !== this.lastKnownX) + this.tweenInitialX = this.inst.width; + if (this.inst.height !== this.lastKnownY) + this.tweenInitialY = this.inst.height; + if (this.doTweenX) { + this.inst.width = this.tweenInitialX + (this.tweenTargetX - this.tweenInitialX) * factor; + } + if (this.doTweenY) { + this.inst.height = this.tweenInitialY + (this.tweenTargetY - this.tweenInitialY) * factor; + } else { + if (this.tweened == 1) { + this.inst.height = this.inst.width * this.ratio; + } + } + this.lastKnownX = this.inst.width; + this.lastKnownY = this.inst.height; + } else if (this.tweened == 4) { + var tangle = this.tweenInitialX + (this.tweenTargetAngle - this.tweenInitialX) * factor; + if (this.i >= (this.duration + this.initiating)) + tangle = this.tweenTargetAngle; + this.inst.angle = cr.clamp_angle(tangle); + } else if (this.tweened == 5) { + if (this.coord_mode == 1) { + if (this.inst.opacity !== this.lastKnownX) + this.tweenInitialX = this.inst.opacity; + } + this.inst.opacity = this.tweenInitialX + (this.tweenTargetX - this.tweenInitialX) * factor; + this.lastKnownX = this.inst.opacity; + } else if (this.tweened == 6) { + this.value = this.tweenInitialX + (this.tweenTargetX - this.tweenInitialX) * factor; + } else if (this.tweened == 7) { + if (this.coord_mode == 1) { + if (this.inst.width !== this.lastKnownX) + this.tweenInitialX = this.inst.width; + if (this.inst.height !== this.lastKnownY) + this.tweenInitialY = this.inst.height; + } + if (this.doTweenX) this.inst.width = this.tweenInitialX + (this.tweenTargetX - this.tweenInitialX) * factor; + if (this.doTweenY) this.inst.height = this.tweenInitialY + (this.tweenTargetY - this.tweenInitialY) * factor; + this.lastKnownX = this.inst.width; + this.lastKnownY = this.inst.height; + } + this.inst.set_bbox_changed(); + } + if (this.i >= this.duration + this.initiating) { + this.doEndFrame(isForceStop); + this.inst.set_bbox_changed(); + if (this.onEnd == false) { + this.onEnd = true; + this.runtime.trigger(cr.behaviors.lunarray_Tween.prototype.cnds.OnEnd, this.inst); + this.onEndDone = true; + } + }; + }; + behinstProto.doEndFrame = function (isForceStop) + { + switch (this.tweened) { + case 0: // position + this.inst.x = this.tweenTargetX; + this.inst.y = this.tweenTargetY; + break; + case 1: // size + if (this.doTweenX) this.inst.width = this.tweenTargetX; + if (this.doTweenY) { + this.inst.height = this.tweenTargetY; + } else { + this.inst.height = this.inst.width * this.ratio; + } + break; + case 2: // width + this.inst.width = this.tweenTargetX; + break; + case 3: // height + this.inst.height = this.tweenTargetY; + break; + case 4: // angle + var tangle = this.tweenTargetAngle; + this.inst.angle = cr.clamp_angle(tangle); + this.lastKnownValue = this.inst.angle; + break; + case 5: // opacity + this.inst.opacity = this.tweenTargetX; + break; + case 6: // value + this.value = this.tweenTargetX; + break; + case 7: // size + if (this.doTweenX) this.inst.width = this.tweenTargetX; + if (this.doTweenY) this.inst.height = this.tweenTargetY; + break; + } + if (this.i >= this.duration + this.initiating + this.cooldown) { + if (this.playmode == 0) { + this.active = false; + this.reverse = false; + this.i = this.duration + this.initiating + this.cooldown; + } else if (this.playmode == 1) { + this.i = 0; + this.init(); + this.active = true; + } else if (this.playmode == 2) { + if (isForceStop) { + this.reverse = false; + this.init(); + } else { + this.reverse = !this.reverse; + this.i = 0; + this.init(); + this.active = true; + } + } else if (this.playmode == 3) { + this.runtime.DestroyInstance(this.inst); + } else if (this.playmode == 4) { + this.loop = true; + this.i = 0; + this.init(); + this.active = true; + } else if (this.playmode == 5) { + if (isForceStop) { + this.reverse = false; + this.init(); + } else { + if (this.pingpongCounter <= 0) { + this.i = this.duration + this.initiating + this.cooldown; + this.active = false; + } else { + if (!this.reverse) { + this.pingpongCounter -= 1; + this.reverse = true; + this.i = 0; + this.init(); + this.active = true; + } else { + this.pingpongCounter -= 1; + this.reverse = false; + this.i = 0; + this.init(); + this.active = true; + } + } + } + } else if (this.playmode == -6) { + this.playmode = this.lastPlayMode; + this.reverse = false; + this.i = 0; + this.active = false; + } else if (this.playmode == 6) { + this.reverse = false; + this.i = this.duration + this.initiating + this.cooldown; + this.active = false; + } + } + if (this.onCooldown == false) { + this.onCooldown = true; + this.runtime.trigger(cr.behaviors.lunarray_Tween.prototype.cnds.OnCooldownEnd, this.inst); + this.onCooldownDone = true; + } + } + behaviorProto.cnds = {}; + var cnds = behaviorProto.cnds; + cnds.IsActive = function () + { + return this.active; + }; + cnds.CompareGroupProgress = function (cmp, v) + { + var x = []; + cr.lunarray_tweenGroup[this.group].forEach(function (value) { + x.push((value.i / (value.duration + value.initiating + value.cooldown))); + } ); + return cr.do_cmp( Math.min.apply(null, x), cmp, v ); + } + cnds.CompareProgress = function (cmp, v) + { + return cr.do_cmp((this.i / (this.duration + this.initiating + this.cooldown)), cmp, v); + }; + cnds.OnStart = function () + { + if (this.onStartedDone === false) { + return this.onStarted; + } + }; + cnds.OnWaitEnd = function () + { + if (this.onWaitEndDone === false) { + return this.onWaitEnd; + } + }; + cnds.OnEnd = function (a, b, c) + { + if (this.onEndDone === false) { + return this.onEnd; + } + }; + cnds.OnCooldownEnd = function () + { + if (this.onCooldownDone === false) { + return this.onCooldown; + } + }; + behaviorProto.acts = {}; + var acts = behaviorProto.acts; + acts.SetActive = function (a) + { + this.active = (a === 1); + }; + acts.StartGroup = function (force, sgroup) + { + if (sgroup === "") sgroup = this.group; + var groupReady = (force === 1) || cr.lunarray_tweenGroup[sgroup].every(function(value2) { return !value2.active; } ); + if ( groupReady ) { + cr.lunarray_tweenGroup[sgroup].forEach( + function(value) { + if (force === 1) { + acts.Force.apply(value); + } else { + acts.Start.apply(value); + } + } + ); + } + } + acts.StopGroup = function (stopmode, sgroup) + { + if (sgroup === "") sgroup = this.group; + cr.lunarray_tweenGroup[sgroup].forEach( function(value) { + acts.Stop.apply(value, [stopmode]); + } ); + } + acts.ReverseGroup = function (force, rewindMode, sgroup) + { + if (sgroup === "") sgroup = this.group; + var groupReady = (force === 1) || cr.lunarray_tweenGroup[sgroup].every(function(value2) { return !value2.active; } ); + if ( groupReady ) { + cr.lunarray_tweenGroup[sgroup].forEach( + function(value) { + if (force === 1) { + acts.ForceReverse.apply(value, [rewindMode]); + } else { + acts.Reverse.apply(value, [rewindMode]); + } + } + ); + } + } + acts.Force = function () + { + this.loop = (this.playmode === 4); + if (this.playmode == 5) this.pingpongCounter = 1; + if ((this.playmode == 6) || (this.playmode == -6)) { + if (this.i < this.duration + this.cooldown + this.initiating) { + this.reverse = false; + this.init(); + this.active = true; + } + } else { + this.reverse = false; + this.i = 0; + this.init(); + this.active = true; + } + }; + acts.ForceReverse = function (rewindMode) + { + this.rewindMode = (rewindMode == 1); + this.loop = (this.playmode === 4); + if (this.playmode == 5) this.pingpongCounter = 1; + if ((this.playmode == 6) || (this.playmode == -6)) { + if (this.i < this.duration + this.cooldown + this.initiating) { + this.reverse = true; + this.init(); + this.active = true; + } + } else { + if (rewindMode) { + if (this.pingpongCounter == 1) { + if (this.i >= this.duration + this.cooldown + this.initiating) { + this.reverse = true; + this.i = 0; + this.pingpongCounter = 2; + this.init(); + this.active = true; + } + } + } else { + this.reverse = true; + this.i = 0; + this.init(); + this.active = true; + } + } + }; + acts.Start = function () + { + if (!this.active) { + this.loop = (this.playmode === 4); + if (this.playmode == 5) this.pingpongCounter = 1; + if ((this.playmode == 6) || (this.playmode == -6)) { + if (this.i < this.duration + this.cooldown + this.initiating) { + this.reverse = false; + this.init(); + this.active = true; + } + } else { + this.pingpongCounter = 1; + this.reverse = false; + this.i = 0; + this.init(); + this.active = true; + } + } + }; + acts.Stop = function (stopmode) + { + if (this.active) { + if ((this.playmode == 2) || (this.playmode == 4)) { + if (this.reverse) { + this.i = 0; + } else { + this.i = -1; + } + } else { + if (stopmode == 1) { + this.saveState(); + } else if (stopmode == 0) { + this.i = this.initiating + this.cooldown + this.duration; + } else { + this.i = 0; + } + } + this.tick(); + this.active = false; + } + }; + acts.Pause = function () { + if (this.active) { + this.isPaused = true; + this.active = false; + } + } + acts.Resume = function () { + if (this.isPaused) { + this.active = true; + this.isPaused = false; + } else { + if (!this.active) { + this.reverse = false; + this.i = 0; + this.init(); + this.active = true; + } + } + } + acts.Reverse = function (rewindMode) + { + this.rewindMode = (rewindMode == 1); + if (!this.active) { + this.loop = (this.playmode === 4); + if (this.playmode == 5) this.pingpongCounter = 1; + if ((this.playmode == 6) || (this.playmode == -6)) { + if (this.i < this.duration + this.cooldown + this.initiating) { + this.reverse = true; + this.init(); + this.active = true; + } + } else { + if (rewindMode) { + if (this.pingpongCounter == 1) { + if (this.i >= this.duration + this.cooldown + this.initiating) { + this.reverse = true; + this.i = 0; + this.pingpongCounter = 2; + this.init(); + this.active = true; + } + } + } else { + this.reverse = true; + this.i = 0; + this.init(); + this.active = true; + } + } + } + }; + acts.SetDuration = function (x) + { + this.duration = x; + }; + acts.SetWait = function (x) + { + this.wait = x; + this.initiating = parseFloat(this.wait.split(",")[0]); + this.cooldown = parseFloat(this.wait.split(",")[1]); + if ((this.initiating < 0) || (isNaN(this.initiating))) this.initiating = 0; + if ((this.cooldown < 0) || (isNaN(this.cooldown))) this.cooldown = 0; + }; + acts.SetTarget = function (x) + { + if (typeof(x) == "string") { + this.target = x; + this.targetX = parseFloat(x.split(",")[0]); + this.targetY = parseFloat(x.split(",")[1]); + } else { + this.target = x; + this.targetX = x; + } + if (!this.active) { + this.init(); + } else { + } + }; + acts.SetTargetObject = function (obj) + { + if (!obj) + return; + var otherinst = obj.getFirstPicked(); + if (!otherinst) + return; + this.targetObject = otherinst; + this.target = "OBJ"; + }; + acts.SetTargetX = function (x) + { + if ((this.tweened == 2) || (this.tweened == 3) || (this.tweened == 4) || (this.tweened == 5) || (this.tweened == 6)) { + if (typeof(x) == "string") { + this.target = parseFloat(x.split(",")[0]); + } else { + this.target = ""+x+","+this.targetY; + } + this.targetX = this.target; + } else { + var currY = this.target.split(",")[1]; + this.target = String(x) + "," + currY; + this.targetX = parseFloat(this.target.split(",")[0]); + this.targetY = parseFloat(this.target.split(",")[1]); + } + if (!this.active) { + this.saveState(); + this.init(); + } else { + } + }; + acts.SetTargetY = function (x) + { + if ((this.tweened == 2) || (this.tweened == 3) || (this.tweened == 4) || (this.tweened == 5) || (this.tweened == 6)) { + if (typeof(x) == "string") { + this.target = parseFloat(x)+""; + } else { + this.target = this.targetX+","+x; + } + this.targetX = this.target; + } else { + var currX = this.target.split(",")[0]; + this.target = currX + "," + String(x); + this.targetX = parseFloat(this.target.split(",")[0]); + this.targetY = parseFloat(this.target.split(",")[1]); + } + if (!this.active) { + this.saveState(); + this.init(); + } else { + } + }; + acts.SetInitial = function (x) + { + if (typeof(x) == "string") { + this.initial = x; + this.initialX = parseFloat(x.split(",")[0]); + this.initialY = parseFloat(x.split(",")[1]); + } else { + this.initial = ""+x; + this.initialX = x; + } + if (this.tweened == 6) { + this.value = this.initialX; + } + if (!this.active) { + this.saveState(); + this.init(); + } else { + } + }; + acts.SetInitialX = function (x) + { + if ((this.tweened == 2) || (this.tweened == 3) || (this.tweened == 4) || (this.tweened == 5) || (this.tweened == 6)) { + if (typeof(x) == "string") { + this.initial = parseFloat(x); + } else { + this.initial = ""+x+","+this.initialY; + } + this.initialX = this.initial; + } else { + if (this.initial == "") this.initial = "current"; + if (this.initial == "current") { + var currY = this.tweenSaveY; + } else { + var currY = this.initial.split(",")[1]; + } + this.initial = String(x) + "," + currY; + this.initialX = parseFloat(this.initial.split(",")[0]); + this.initialY = parseFloat(this.initial.split(",")[1]); + } + if (this.tweened == 6) { + this.value = this.initialX; + } + if (!this.active) { + this.saveState(); + this.init(); + } else { + } + }; + acts.SetInitialY = function (x) + { + if ((this.tweened == 2) || (this.tweened == 3) || (this.tweened == 4) || (this.tweened == 5) || (this.tweened == 6)) { + if (typeof(x) == "string") { + this.initial = parseFloat(x); + } else { + this.initial = ""+this.initialX+","+x; + } + this.initialX = this.initial; + } else { + if (this.initial == "") this.initial = "current"; + if (this.initial == "current") { + var currX = this.tweenSaveX; + } else { + var currX = this.initial.split(",")[0]; + } + this.initial = currX + "," + String(x); + this.initialX = parseFloat(this.initial.split(",")[0]); + this.initialY = parseFloat(this.initial.split(",")[1]); + } + if (!this.active) { + this.saveState(); + this.init(); + } else { + } + }; + acts.SetValue = function (x) + { + this.value = x; + }; + acts.SetTweenedProperty = function (m) + { + this.tweened = m; + }; + acts.SetEasing = function (w) + { + this.easing = w; + }; + acts.SetPlayback = function (x) + { + this.playmode = x; + }; + acts.SetParameter = function (tweened, playmode, easefunction, initial, target, duration, wait, cmode) + { + this.tweened = tweened; + this.playmode = playmode; + this.easing = easefunction; + acts.SetInitial.apply(this, [initial]); + acts.SetTarget.apply(this, [target]); + acts.SetDuration.apply(this, [duration]); + acts.SetWait.apply(this, [wait]); + this.coord_mode = cmode; + this.saveState(); + }; + behaviorProto.exps = {}; + var exps = behaviorProto.exps; + exps.Progress = function (ret) + { + ret.set_float(this.i / (this.duration + this.initiating + this.cooldown)); + }; + exps.ProgressTime = function (ret) + { + ret.set_float(this.i); + }; + exps.Duration = function (ret) + { + ret.set_float(this.duration); + }; + exps.Initiating = function (ret) + { + ret.set_float(this.initiating); + }; + exps.Cooldown = function (ret) + { + ret.set_float(this.cooldown); + }; + exps.Target = function (ret) + { + ret.set_string(this.target); + }; + exps.Value = function (ret) + { + ret.set_float(this.value); + }; + exps.isPaused = function (ret) + { + ret.set_int(this.isPaused ? 1: 0); + }; +}()); +cr.getObjectRefTable = function () { return [ + cr.plugins_.Audio, + cr.plugins_.Browser, + cr.plugins_.Function, + cr.plugins_.JSON, + cr.plugins_.SenaPlugin, + cr.plugins_.Sprite, + cr.plugins_.Touch, + cr.plugins_.Text, + cr.behaviors.Rex_MoveTo, + cr.behaviors.Fade, + cr.behaviors.DragnDrop, + cr.behaviors.lunarray_Tween, + cr.behaviors.Flash, + cr.behaviors.Sin, + cr.behaviors.Pin, + cr.behaviors.Anchor, + cr.system_object.prototype.cnds.OnLayoutStart, + cr.plugins_.SenaPlugin.prototype.acts.Load, + cr.system_object.prototype.acts.Wait, + cr.behaviors.DragnDrop.prototype.acts.SetEnabled, + cr.plugins_.Sprite.prototype.acts.SetInstanceVar, + cr.plugins_.Sprite.prototype.exps.Height, + cr.plugins_.Sprite.prototype.exps.Width, + cr.plugins_.SenaPlugin.prototype.cnds.OnLoad, + cr.plugins_.SenaPlugin.prototype.acts.Start, + cr.plugins_.Function.prototype.acts.CallFunction, + cr.plugins_.Browser.prototype.acts.ConsoleLog, + cr.plugins_.SenaPlugin.prototype.exps.getOptionsCount, + cr.system_object.prototype.cnds.Compare, + cr.system_object.prototype.acts.SetVar, + cr.plugins_.Function.prototype.cnds.OnFunction, + cr.plugins_.Text.prototype.acts.Destroy, + cr.plugins_.Sprite.prototype.acts.Destroy, + cr.plugins_.SenaPlugin.prototype.acts.CalcObjectPositions, + cr.plugins_.SenaPlugin.prototype.exps.getHintCount, + cr.system_object.prototype.exps.layoutwidth, + cr.system_object.prototype.cnds.Repeat, + cr.plugins_.SenaPlugin.prototype.exps.getHintValue, + cr.system_object.prototype.exps.loopindex, + cr.system_object.prototype.acts.CreateObject, + cr.plugins_.Sprite.prototype.acts.SetX, + cr.plugins_.SenaPlugin.prototype.exps.getPosXbyIndex, + cr.plugins_.Sprite.prototype.acts.SetY, + cr.plugins_.Sprite.prototype.acts.SetAnimFrame, + cr.plugins_.Sprite.prototype.acts.SetScale, + cr.plugins_.Sprite.prototype.exps.X, + cr.plugins_.Sprite.prototype.exps.Y, + cr.plugins_.Text.prototype.acts.SetText, + cr.plugins_.Text.prototype.acts.SetFontSize, + cr.behaviors.Pin.prototype.acts.Pin, + cr.plugins_.SenaPlugin.prototype.exps.getOptionsValue, + cr.system_object.prototype.acts.AddVar, + cr.system_object.prototype.cnds.Else, + cr.plugins_.Text.prototype.acts.MoveToTop, + cr.behaviors.DragnDrop.prototype.cnds.OnDragStart, + cr.behaviors.DragnDrop.prototype.cnds.IsEnabled, + cr.plugins_.Audio.prototype.acts.Play, + cr.plugins_.Sprite.prototype.acts.MoveToTop, + cr.behaviors.lunarray_Tween.prototype.acts.SetTarget, + cr.behaviors.lunarray_Tween.prototype.acts.Start, + cr.system_object.prototype.cnds.PickByComparison, + cr.plugins_.Sprite.prototype.cnds.CompareInstanceVar, + cr.plugins_.Sprite.prototype.cnds.IsOverlapping, + cr.behaviors.DragnDrop.prototype.cnds.OnDrop, + cr.plugins_.SenaPlugin.prototype.acts.SetData, + cr.system_object.prototype.exps.str, + cr.plugins_.SenaPlugin.prototype.acts.PostMessage, + cr.plugins_.Sprite.prototype.acts.SetPos, + cr.system_object.prototype.cnds.ForEach, + cr.system_object.prototype.cnds.CompareVar, + cr.plugins_.Sprite.prototype.exps.Count, + cr.plugins_.Sprite.prototype.acts.SetVisible, + cr.plugins_.Touch.prototype.cnds.OnTouchObject, + cr.plugins_.Sprite.prototype.cnds.IsVisible, + cr.plugins_.SenaPlugin.prototype.acts.PauseGame, + cr.behaviors.Flash.prototype.acts.Flash, + cr.system_object.prototype.cnds.TriggerOnce, + cr.system_object.prototype.exps.left, + cr.system_object.prototype.exps.len, + cr.plugins_.SenaPlugin.prototype.acts.Finish, + cr.plugins_.SenaPlugin.prototype.cnds.OnCorrect, + cr.plugins_.SenaPlugin.prototype.cnds.OnWrong, + cr.behaviors.Sin.prototype.acts.SetActive, + cr.plugins_.SenaPlugin.prototype.acts.PlayVoice, + cr.plugins_.Sprite.prototype.acts.SetHeight, + cr.plugins_.Sprite.prototype.acts.SetWidth, + cr.plugins_.SenaPlugin.prototype.cnds.OnMessage, + cr.plugins_.JSON.prototype.acts.LoadJSON, + cr.plugins_.SenaPlugin.prototype.exps.getLastMessageJSON, + cr.plugins_.JSON.prototype.exps.Value, + cr.system_object.prototype.exps["int"], + cr.behaviors.Rex_MoveTo.prototype.acts.SetTargetPos, + cr.behaviors.Rex_MoveTo.prototype.cnds.IsMoving, + cr.system_object.prototype.exps.mid +];}; diff --git a/SQ_Word_Hint-Audio-Teacher/data.js b/SQ_Word_Hint-Audio-Teacher/data.js new file mode 100644 index 0000000..88b57db --- /dev/null +++ b/SQ_Word_Hint-Audio-Teacher/data.js @@ -0,0 +1 @@ +๏ปฟ{"project": [null,"Game",[[0,true,false,false,false,false,false,false,false,false],[1,true,false,false,false,false,false,false,false,false],[2,true,false,false,false,false,false,false,false,false],[3,false,false,false,false,false,false,false,false,false],[4,true,false,false,false,false,false,false,false,false],[5,false,true,true,true,true,true,true,true,false],[6,true,false,false,false,false,false,false,false,false],[7,false,true,true,true,true,true,true,true,false]],[["t0",5,false,[864916470115508,671424700857603,742273295511675,915051182566084,438595278712365,792103718967953],5,0,null,[["Default",0,false,1,0,false,766361138730018,[["images/answers-sheet0.png",12383,0,0,199,85,1,0.5025125741958618,0.5058823823928833,[],[-0.346733570098877,-0.2941173911094666,0.3618084192276001,-0.3058823943138123,0.376884400844574,0.2588236331939697,-0.3567835688591003,0.2588236331939697],0]]]],[["MoveTo",8,604855247345446],["Fade",9,172183085978858],["DragDrop",10,421888048208530],["EaseTween",11,428975865074928],["EaseTween2",11,153601376400345]],false,false,521274050538780,[],null],["t1",6,false,[],0,0,null,null,[],false,false,786570836240034,[],null,[1]],["t2",2,false,[],0,0,null,null,[],false,false,293329078829759,[],null,[]],["t3",1,false,[],0,0,null,null,[],false,false,309246988327533,[],null,[]],["t4",5,false,[808559794937329,997079567163161,567648729382427,954939568499611,936471805758704],1,0,null,[["Default",0,false,1,0,false,163248314795401,[["images/answers-sheet0.png",12383,0,0,199,85,1,0.5025125741958618,0.5058823823928833,[],[-0.3718595802783966,-0.3058823943138123,0.3467334508895874,-0.317647397518158,0.3618084192276001,0.2352936267852783,-0.3718595802783966,0.247058629989624],0],["images/slot-sheet0.png",11183,0,0,199,82,1,0.5025125741958618,0.5,[],[-0.3567835688591003,-0.2804880142211914,0.3316574096679688,-0.2804880142211914,0.3417074084281921,0.2804880142211914,-0.3517585694789887,0.2560979723930359],0]]]],[["Fade",9,900753873870093]],false,false,519636697009154,[],null],["t5",5,false,[],3,0,null,[["Default",0,false,1,0,false,157803278794484,[["images/submit-sheet0.png",146996,0,0,489,325,1,0.5010225176811218,0.5015384554862976,[],[],0]]]],[["Flash",12,745974027953346],["Sine",13,122174234324725],["Fade",9,470725043295066]],false,false,588453873694452,[],null],["t6",0,false,[],0,0,null,null,[],false,false,975221106550751,[],null,[0,0,0,1,1,600,600,10000,1]],["t7",5,false,[],0,0,null,[["Default",5,false,1,0,false,430849449557794,[["images/sprite-sheet0.png",168,0,0,250,250,1,0.5,0.5,[],[],0]]]],[],false,false,787263586433186,[],null],["t8",7,false,[],2,0,null,null,[["Pin",14,668111541658451],["Fade",9,143982287745535]],false,false,865512087815474,[],null],["t9",5,false,[],2,0,null,[["Default",5,false,1,0,false,325577231432987,[["images/wrong-sheet0.png",27271,0,0,140,140,1,0.5,0.5,[],[-0.08866998553276062,0.05115598440170288,0,-0.05821299552917481,0.08374398946762085,0.05821299552917481,0.07635402679443359,-0.001763999462127686,0.1009849905967712,-0.03351700305938721,0,0.1005499958992004,-0.105910986661911,-0.02645999193191528,-0.08374398946762085,-0.001763999462127686],0]]]],[["Fade",9,938090566638553],["Pin",14,922984705911085]],false,false,786659809200098,[],null],["t10",5,false,[],2,0,null,[["Default",5,false,1,0,false,199500828138837,[["images/correct-sheet0.png",31182,0,0,140,140,1,0.5,0.5071428418159485,[],[-0.03694498538970947,-0.01037183403968811,0,-0.05661284923553467,0.4187189936637878,-0.4319769442081451,0.08374398946762085,-0.004931867122650147,0,0.133790135383606,-0.280788004398346,0.2725121378898621,-0.03940901160240173,-0.004931867122650147],0]]]],[["Fade",9,351180598525433],["Pin",14,692899677986212]],false,false,185378619927884,[],null],["t11",7,false,[],2,0,null,null,[["Pin",14,456906837996025],["Fade",9,218728013988059]],false,false,438300487857361,[],null],["t12",5,false,[147049293532184],0,0,null,[["Default",5,false,1,0,false,805374628770208,[["images/black-sheet0.png",2935,0,0,300,300,1,0.5,0.5,[],[],0]]]],[],false,false,142600631683249,[],null],["t13",4,false,[],0,0,null,null,[],false,false,222049282078427,[],null,["G2420S1T30"]],["t14",5,false,[571664197802793,504955010668769],2,0,null,[["Default",5,false,1,0,false,550719766144405,[["images/sound_question-sheet0.png",48496,0,0,430,155,1,0.5,0.5032258033752441,[],[-0.4418604969978333,-0.3419358134269714,0,-0.5032258033752441,0.4418600201606751,-0.3419358134269714,0.490697979927063,-0.006451815366744995,0.432558000087738,0.3096771836280823,0,0.4451612234115601,-0.434883713722229,0.316129207611084,-0.4930232465267181,-0.006451815366744995],0]]]],[["Sine",13,953382422895868],["Fade",9,320668710781584]],false,false,805565004792668,[],null],["t15",5,false,[],2,0,null,[["Default",5,false,1,0,false,194107302524015,[["images/newwords-sheet0.png",32993,0,0,272,153,1,0.5,0.5032680034637451,[],[-0.3404409885406494,-0.2207159996032715,0,-0.4466274082660675,0.1834560036659241,0.05727899074554443,0.1808819770812988,-0.003268003463745117,0.3154410123825073,0.1699090003967285,0,0.3782420158386231,-0.3683820068836212,0.2636590003967285,-0.25,-0.003268003463745117],0]]]],[["Anchor",15,131622581039889],["Fade",9,718058140080219]],false,false,773533559106825,[],null],["t16",3,false,[],0,0,null,null,[],true,false,993386916443881,[],null],["t17",5,false,[],0,0,null,[["Default",5,false,1,0,false,791641546306794,[["images/button2-sheet0.png",6124,0,0,120,50,1,0.5,0.5,[],[-0.3533329963684082,-0.1480000019073486,0,-0.3579999804496765,0.3591669797897339,-0.1620000004768372,0.4116669893264771,0,0.4383329749107361,0.3519999980926514,0,0.4020000100135803,-0.3675000071525574,0.1819999814033508,-0.375,0],0]]]],[],false,false,586778286145520,[],null],["t18",5,false,[],0,0,null,[["Default",5,false,1,0,false,188139577678295,[["images/button2-sheet0.png",6124,0,0,120,50,1,0.5,0.5,[],[-0.3533329963684082,-0.1480000019073486,0,-0.3579999804496765,0.3591669797897339,-0.1620000004768372,0.4116669893264771,0,0.4383329749107361,0.3519999980926514,0,0.4020000100135803,-0.3675000071525574,0.1819999814033508,-0.375,0],0]]]],[],false,false,172011489165788,[],null]],[],[["Game",1200,1200,false,"Game",288730111597454,[["Layer 0",0,763235347287340,true,[255,255,255],true,0,0,1,false,false,0,0,0,[[[631,634,0,4496.99267578125,4213.91796875,0,0,0.1000000014901161,0.5,0.5,0,0,[]],12,25,[[0]],[],[0,"Default",0,1]],[[-2554,338,0,199,85,0,0,1,0.5025125741958618,0.5058823823928833,0,0,[]],0,3,[[0],[0],[-1],[""],[0],[0]],[[1,3000,1500,1500],[1,1,0,0,0],[0,1],[0,7,17,"current","100, 100",0.3,"0,0",0,0,0,0,""],[0,7,5,"current","100, 100",0.3,"0,0",0,0,0,0,""]],[0,"Default",0,1]],[[-2660,530,0,199,82,0,0,1,0.5025125741958618,0.5,0,0,[]],4,9,[[-1],[0],[""],[0],[0]],[[1,1,0,0,0]],[0,"Default",1,1]],[[-3356,1133,0,168,74,0,0,1,0.5,0.5,0,0,[]],8,18,[],[[],[1,1,0,0,0]],["Answer",0,"bold 36pt Arial","rgb(255,255,255)",1,1,4,0,0]],[[-3089,1143,0,121,90,0,0,1,0.5,0.5,0,0,[]],11,1,[],[[],[1,1,0,0,0]],["Slot",0,"bold 36pt Arial","rgb(255,255,255)",1,1,4,0,0]],[[600,1000,0,300.8409118652344,199.9462127685547,0,0,1,0.5010225176811218,0.5015384554862976,0,0,[]],5,17,[],[[],[1,2,0,3,0,0,0,15,0],[1,1,0,0,0]],[1,"Default",0,1]],[[-3211,245,0,200.7819976806641,211.3489990234375,0,0,1,0.5,0.5,0,0,[]],9,23,[],[[1,0.5,0.5,0.5,1],[]],[0,"Default",0,1]],[[-2903.688720703125,253.1565093994141,0,200.7815856933594,211.3490447998047,0,0,1,0.5,0.5071428418159485,0,0,[]],10,39,[],[[1,0.5,0.5,0.5,1],[]],[0,"Default",0,1]],[[600,298,0,779.2402954101563,280.8889465332031,0,0,1,0.5,0.5032258033752441,0,0,[]],14,21,[[0],[0]],[[0,2,0,1,0,0,0,20,0],[1,1,0,0,1]],[0,"Default",0,1]],[[133.4931335449219,76.05494689941406,0,263.8059997558594,148.9730072021484,0,0,1,0.5,0.5032680034637451,0,0,[]],15,20,[],[[0,0,0,0,1],[1,1,0,0,0]],[0,"Default",0,1]],[[1028,962,0,268.8689880371094,112.0289993286133,0,0,1,0.5,0.5,0,0,[]],17,4,[],[],[0,"Default",0,1]],[[1046,1098,0,268.8689880371094,112.0289993286133,0,0,1,0.5,0.5,0,0,[]],18,6,[],[],[0,"Default",0,1]]],[]],["Layer 1",1,441325000409946,true,[255,255,255],true,1,1,1,false,false,1,0,0,[],[]],["Layer 2",2,317623978877020,false,[255,255,255],true,0,0,1,false,false,1,0,0,[[[628,605,0,714.6690063476563,669.6823120117188,0,0,0.699999988079071,0.5,0.5,0,0,[]],12,32,[[2]],[],[0,"Default",0,1]]],[]]],[[null,16,2,[],[],[]]],[]]],[["Game",[[1,"gameState",1,"Playing",false,false,199720598566624,false],[1,"OptionIndex",0,0,false,false,701702298089281,false],[1,"FinalAnswer",1,"",false,false,342353772129151,false],[1,"FilledCount",0,0,false,false,377137633613480,false],[1,"tempScale",0,1,false,false,529411214032395,false],[0,null,false,null,549205817072564,[[-1,16,null,1,false,false,false,597870668036321,false]],[[13,17,null,202557125263620,false],[-1,18,null,952196818529068,false,[[0,[0,1]]]],[0,19,"DragDrop",702939057496858,false,[[3,1]]],[14,20,null,809494142200282,false,[[10,0],[7,[20,14,21,false,null]]]],[14,20,null,989296159518223,false,[[10,1],[7,[20,14,22,false,null]]]]]],[0,null,false,null,768327268818740,[[13,23,null,1,false,false,false,157854561629165,false]],[],[[0,null,false,null,939160499379423,[],[[13,24,null,112633710369332,false],[2,25,null,215312930941469,false,[[1,[2,"SetupUI"]],[13]]],[3,26,null,810649571245244,false,[[3,0],[7,[10,[2,"SenaAI Loaded & Started! Options count: "],[20,13,27,false,null]]]]]],[[0,null,false,null,275281932743956,[[-1,28,null,0,false,false,false,966644000004331,false,[[7,[20,13,27,false,null]],[8,4],[7,[0,6]]]]],[[-1,29,null,167570100299072,false,[[11,"tempScale"],[7,[1,0.85]]]]]],[0,null,false,null,924626844575014,[[-1,28,null,0,false,false,false,434909502006706,false,[[7,[20,13,27,false,null]],[8,4],[7,[0,10]]]]],[[-1,29,null,570717869674839,false,[[11,"tempScale"],[7,[1,0.7]]]]]]]]]],[0,null,false,null,579497392478296,[[2,30,null,2,false,false,false,894377128803980,false,[[1,[2,"SetupUI"]]]]],[[-1,29,null,130502662612493,false,[[11,"OptionIndex"],[7,[0,0]]]],[8,31,null,804363046879822,false],[11,31,null,908445118959135,false],[4,32,null,947783578724586,false],[0,32,null,597263169611080,false],[13,33,null,823188349173873,false,[[0,[20,13,34,false,null]],[0,[6,[0,140],[23,"tempScale"]]],[0,[6,[0,80],[23,"tempScale"]]],[0,[19,35]],[0,[0,0]],[0,[0,0]],[1,[2,""]],[0,[0,0]]]],[-1,18,null,578236747375036,false,[[0,[1,0.1]]]]],[[0,null,false,null,420951645933385,[[-1,36,null,0,true,false,false,703700136369336,false,[[0,[20,13,34,false,null]]]]],[],[[0,null,false,null,455370097314226,[[-1,28,null,0,false,false,false,413739513101283,false,[[7,[20,13,37,false,null,[[19,38]]]],[8,0],[7,[2,"_"]]]]],[[-1,39,null,410642989172264,false,[[4,4],[5,[0,0]],[0,[0,0]],[0,[0,0]]]],[4,40,null,140706566386258,false,[[0,[20,13,41,false,null,[[19,38]]]]]],[4,42,null,285477521472615,false,[[0,[0,600]]]],[4,43,null,208939150633609,false,[[0,[0,1]]]],[4,20,null,358294085606629,false,[[10,4],[7,[0,0]]]],[4,20,null,762745403333695,false,[[10,0],[7,[19,38]]]],[4,44,null,148760556597463,false,[[0,[23,"tempScale"]]]],[-1,39,null,406503163078354,false,[[4,11],[5,[0,0]],[0,[20,4,45,false,null]],[0,[20,4,46,false,null]]]],[11,47,null,240961907969018,false,[[7,[21,4,true,null,2]]]],[11,48,null,400710477532726,false,[[0,[6,[0,36],[23,"tempScale"]]]]],[11,49,"Pin",516397285690983,false,[[4,4],[3,0]]],[-1,39,null,998994917807971,false,[[4,0],[5,[0,0]],[0,[0,0]],[0,[0,0]]]],[0,40,null,247766170395109,false,[[0,[20,13,41,false,null,[[19,38]]]]]],[0,44,null,789539844378330,false,[[0,[23,"tempScale"]]]],[0,42,null,659120042275762,false,[[0,[0,900]]]],[0,20,null,825308187830477,false,[[10,0],[7,[20,0,45,false,null]]]],[0,20,null,118876830921160,false,[[10,1],[7,[20,0,46,false,null]]]],[0,20,null,919942935192296,false,[[10,5],[7,[20,0,22,false,null]]]],[0,20,null,376584768872877,false,[[10,4],[7,[20,0,21,false,null]]]],[0,20,null,120370806104811,false,[[10,3],[7,[20,13,50,true,null,[[23,"OptionIndex"]]]]]],[-1,39,null,122191354564609,false,[[4,8],[5,[0,0]],[0,[20,0,45,false,null]],[0,[20,0,46,false,null]]]],[8,47,null,848448916783921,false,[[7,[21,0,true,null,3]]]],[8,48,null,998311746796944,false,[[0,[6,[0,36],[23,"tempScale"]]]]],[8,49,"Pin",699493768428686,false,[[4,0],[3,0]]],[-1,51,null,182730619643428,false,[[11,"OptionIndex"],[7,[0,1]]]]]],[0,null,false,null,304626328262125,[[-1,52,null,0,false,false,false,961464069246915,false]],[[-1,39,null,341749072471234,false,[[4,4],[5,[0,0]],[0,[0,0]],[0,[0,0]]]],[4,40,null,950657190119533,false,[[0,[20,13,41,false,null,[[19,38]]]]]],[4,42,null,604924286586907,false,[[0,[0,600]]]],[4,43,null,757159077034853,false,[[0,[0,0]]]],[4,20,null,469578461961545,false,[[10,4],[7,[0,1]]]],[4,20,null,542370827313726,false,[[10,0],[7,[19,38]]]],[4,44,null,110787545618608,false,[[0,[23,"tempScale"]]]],[-1,39,null,647586354625940,false,[[4,11],[5,[0,0]],[0,[20,4,45,false,null]],[0,[20,4,46,false,null]]]],[11,53,null,923005143097237,false],[11,47,null,554000673571406,false,[[7,[20,13,37,false,null,[[19,38]]]]]],[11,48,null,559499469199642,false,[[0,[6,[0,36],[23,"tempScale"]]]]],[11,49,"Pin",826606792383653,false,[[4,4],[3,0]]]]]]]]],[0,null,false,null,885232395664091,[[0,54,"DragDrop",1,false,false,false,462077248880784,false],[0,55,"DragDrop",0,false,false,false,881833931574563,false]],[[6,56,null,765474901635440,false,[[2,["card_drag",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[0,57,null,397403794429243,false],[0,58,"EaseTween",798607807460393,false,[[1,[10,[10,[6,[21,0,false,null,5],[1,1.25]],[2,","]],[6,[21,0,false,null,4],[1,1.25]]]]]],[0,59,"EaseTween",333043575480598,false]],[[0,null,false,null,715788682150145,[[-1,60,null,0,false,false,false,283348359728798,false,[[4,4],[7,[21,4,false,null,0]],[8,0],[7,[21,0,false,null,2]]]],[0,61,null,0,false,false,false,975555513158536,false,[[10,2],[8,1],[7,[0,-1]]]]],[[4,20,null,745135912100760,false,[[10,4],[7,[0,0]]]],[0,20,null,363961653226411,false,[[10,2],[7,[0,-1]]]],[2,25,null,741791155071768,false,[[1,[2,"CheckSubmitState"]],[13]]]]],[0,null,false,null,193892616913206,[[0,62,null,0,false,false,false,297897281213159,false,[[4,8]]]],[[8,53,null,812019026325329,false]]]]],[0,null,false,null,876456068332522,[[0,63,"DragDrop",1,false,false,false,792974910922911,false]],[[0,58,"EaseTween2",312326656063231,false,[[1,[10,[10,[21,0,false,null,5],[2,","]],[21,0,false,null,4]]]]],[0,59,"EaseTween2",997643361117365,false]],[[0,null,false,null,962248118287846,[[0,62,null,0,false,false,false,124677826324657,false,[[4,4]]],[4,61,null,0,false,false,false,852890087723952,false,[[10,4],[8,0],[7,[0,0]]]]],[[13,64,null,523387211388021,false,[[1,[21,0,true,null,3]],[1,[19,65,[[21,4,false,null,0]]]],[1,[2,""]],[1,[2,""]],[1,[2,""]]]],[13,66,null,197858526415653,false]]],[0,null,false,null,237085795779233,[[-1,52,null,0,false,false,false,461468372881317,false]],[[6,56,null,961784671294368,false,[[2,["card_swipe",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[0,67,null,626380774473394,false,[[0,[21,0,false,null,0]],[0,[21,0,false,null,1]]]],[2,25,null,785187084030838,false,[[1,[2,"CheckSubmitState"]],[13]]]]]]],[0,null,false,null,903256601857551,[[2,30,null,2,false,false,false,553171385010499,false,[[1,[2,"CheckSubmitState"]]]]],[[-1,29,null,151584341392847,false,[[11,"FilledCount"],[7,[0,0]]]]],[[0,null,false,null,326454811928491,[[-1,68,null,0,true,false,false,900563057628926,false,[[4,0]]]],[],[[0,null,false,null,512468327333204,[[0,61,null,0,false,false,false,273625493381606,false,[[10,2],[8,1],[7,[0,-1]]]]],[[-1,51,null,427897992150255,false,[[11,"FilledCount"],[7,[0,1]]]]]]]],[0,null,false,null,197957600391126,[[-1,69,null,0,false,false,false,676094959731453,false,[[11,"FilledCount"],[8,0],[7,[20,0,70,false,null]]]]],[[5,71,null,871171250612987,false,[[3,1]]]]],[0,null,false,null,830039838453468,[[-1,52,null,0,false,false,false,540974332855602,false]],[[5,71,null,801779902196330,false,[[3,0]]]]]]],[0,null,false,null,956282998966849,[[1,72,null,1,false,false,false,460379891558451,false,[[4,5]]],[5,73,null,0,false,false,false,271469166922398,false],[-1,69,null,0,false,false,false,367531128659836,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[-1,29,null,256663722334427,false,[[11,"gameState"],[7,[2,"End"]]]],[13,74,null,658653282719226,false],[-1,29,null,529456506010094,false,[[11,"FinalAnswer"],[7,[2,""]]]],[3,26,null,822902565203462,false,[[3,0],[7,[23,"FinalAnswer"]]]],[5,75,"Flash",388147726390308,false,[[0,[1,0.1]],[0,[1,0.1]],[0,[1,0.4]]]],[-1,18,null,725241333542329,false,[[0,[1,0.5]]]]],[[0,null,false,null,667347878010134,[[-1,36,null,0,true,false,false,389186915205398,false,[[0,[20,13,34,false,null]]]]],[],[[0,null,false,null,631589558920999,[[-1,28,null,0,false,false,false,253358370212568,false,[[7,[20,13,37,false,null,[[19,38]]]],[8,0],[7,[2,"_"]]]]],[],[[0,null,false,null,403636493907996,[[0,61,null,0,false,false,false,526836686186341,false,[[10,2],[8,0],[7,[19,38]]]]],[[-1,29,null,245728951174934,false,[[11,"FinalAnswer"],[7,[10,[10,[23,"FinalAnswer"],[21,0,true,null,3]],[2,"|"]]]]]]]]],[0,null,false,null,998053537243308,[[-1,52,null,0,false,false,false,403067100774907,false]],[[-1,29,null,357495810182952,false,[[11,"FinalAnswer"],[7,[10,[10,[23,"FinalAnswer"],[20,13,37,false,null,[[19,38]]]],[2,"|"]]]]]]]]]]],[0,null,false,null,834829664001846,[[-1,69,null,0,false,false,false,703961312743632,false,[[11,"FinalAnswer"],[8,1],[7,[2,""]]]]],[],[[0,null,false,null,790903249261419,[[-1,76,null,0,false,false,false,747721761156463,false]],[[-1,29,null,704223810105878,false,[[11,"FinalAnswer"],[7,[19,77,[[23,"FinalAnswer"],[5,[19,78,[[23,"FinalAnswer"]]],[0,1]]]]]]],[13,79,null,626944728118847,false,[[7,[23,"FinalAnswer"]]]],[5,71,null,593377222899578,false,[[3,0]]]]]]],[0,null,false,null,961823775126713,[[13,80,null,1,false,false,false,119018979468992,false]],[[0,19,"DragDrop",205409471313749,false,[[3,0]]],[6,56,null,634975830871135,false,[[2,["alert-234711",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[5,71,null,486294929517038,false,[[3,0]]],[-1,18,null,166118146748558,false,[[0,[1,0.1]]]],[-1,39,null,786114696442570,false,[[4,10],[5,[0,0]],[0,[20,5,45,false,null]],[0,[20,5,46,false,null]]]],[-1,18,null,609402064923823,false,[[0,[0,2]]]],[13,74,null,518261006133178,false]]],[0,null,false,null,433043078641250,[[13,81,null,1,false,false,false,889460128806113,false]],[[0,19,"DragDrop",146493902040842,false,[[3,0]]],[6,56,null,221256152272583,false,[[2,["error-010-206498",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[5,71,null,523842542618557,false,[[3,0]]],[-1,18,null,773344591454861,false,[[0,[1,0.1]]]],[-1,39,null,165468245100549,false,[[4,9],[5,[0,0]],[0,[20,5,45,false,null]],[0,[20,5,46,false,null]]]],[-1,18,null,585683943374630,false,[[0,[0,2]]]],[13,74,null,192197113002945,false]]],[0,null,false,null,710506800687011,[[1,72,null,1,false,false,false,251187822971843,false,[[4,14]]],[-1,69,null,0,false,false,false,679348084435936,false,[[11,"gameState"],[8,1],[7,[2,"End"]]]]],[[14,82,"Sine",816187014713162,false,[[3,1]]],[13,83,null,759234210112614,false,[[1,[2,"question"]]]],[-1,18,null,889484535202560,false,[[0,[0,2]]]],[14,82,"Sine",759168163743084,false,[[3,0]]],[14,84,null,320246019425197,false,[[0,[21,14,false,null,0]]]],[14,85,null,896375027645563,false,[[0,[21,14,false,null,1]]]],[-1,18,null,890463653358513,false,[[0,[1,0.5]]]]]],[1,"TouchCount",0,0,false,false,422857970605212,false],[1,"TouchCount2",0,0,false,false,661408861800932,false],[0,null,false,null,355323556080567,[[13,86,null,1,false,false,false,494023823839716,false]],[[16,87,null,110937716052308,false,[[1,[20,13,88,true,null]],[3,0],[13]]],[-1,18,null,133234382784398,false,[[0,[1,0.0001]]]]],[[1,"tempValue",1,"",false,false,826475942290356,false],[1,"tempSlotIndex",1,"",false,false,107072710894505,false],[0,null,false,null,675555444755080,[],[[-1,29,null,514840073038893,false,[[11,"tempValue"],[7,[19,65,[[20,16,89,false,null,[[0,0],[2,"data1"]]]]]]]],[-1,29,null,887511182564345,false,[[11,"tempSlotIndex"],[7,[19,65,[[20,16,89,false,null,[[0,0],[2,"data2"]]]]]]]]],[[0,null,false,null,241898890337222,[[-1,60,null,0,false,false,false,768559354214777,false,[[4,0],[7,[21,0,true,null,3]],[8,0],[7,[23,"tempValue"]]]]],[],[[0,null,false,null,351612359185900,[[-1,69,null,0,false,false,false,717954256919180,false,[[11,"tempSlotIndex"],[8,1],[7,[2,"-1"]]]]],[],[[0,null,false,null,421562706434007,[[-1,60,null,0,false,false,false,231489952805705,false,[[4,4],[7,[21,4,false,null,0]],[8,0],[7,[19,90,[[23,"tempSlotIndex"]]]]]]],[[0,91,"MoveTo",918046737381246,false,[[0,[20,4,45,false,null]],[0,[20,4,46,false,null]]]],[-1,18,null,863046835071781,false,[[0,[1,0.2]]]],[0,20,null,133267969690167,false,[[10,2],[7,[21,4,false,null,0]]]],[4,20,null,886706750705107,false,[[10,4],[7,[0,1]]]],[0,85,null,569601624428643,false,[[0,[20,4,22,false,null]]]],[4,84,null,904547644745992,false,[[0,[20,4,21,false,null]]]],[6,56,null,308999404059437,false,[[2,["pop-reverb-423718",false]],[3,0],[0,[0,-5]],[1,[2,""]]]],[2,25,null,300197299204273,false,[[1,[2,"CheckSubmitState"]],[13]]]],[[0,null,false,null,973632702110271,[[0,92,"MoveTo",0,false,false,false,389105761284647,false]],[[0,57,null,788421246012332,false],[8,53,null,638295480520146,false]]]]]]],[0,null,false,null,244065523306797,[[-1,52,null,0,false,false,false,848243730605480,false]],[[4,20,null,823527125844973,false,[[10,4],[7,[0,0]]]],[0,20,null,249924108378900,false,[[10,2],[7,[0,-1]]]],[6,56,null,443558764042126,false,[[2,["card_swipe",false]],[3,0],[0,[0,0]],[1,[2,""]]]],[0,91,"MoveTo",872612563275828,false,[[0,[21,0,false,null,0]],[0,[21,0,false,null,1]]]],[2,25,null,791126196364131,false,[[1,[2,"CheckSubmitState"]],[13]]]]]]]]]]],[0,null,false,null,417209781616788,[[1,72,null,1,false,false,false,696447155293404,false,[[4,18]]],[18,73,null,0,false,false,false,760918561892778,false]],[[13,64,null,880196547774786,false,[[1,[19,93,[[2,"LION"],[23,"TouchCount"],[0,1]]]],[1,[19,65,[[23,"TouchCount"]]]],[1,[2,""]],[1,[2,""]],[1,[2,""]]]],[13,66,null,675705692769680,false],[-1,51,null,190307756680160,false,[[11,"TouchCount"],[7,[0,1]]]]]],[0,null,false,null,640956519455981,[[1,72,null,1,false,false,false,733965701195774,false,[[4,17]]],[17,73,null,0,false,false,false,508144941795146,false]],[[13,64,null,942035303853959,false,[[1,[19,93,[[2,"LION"],[23,"TouchCount2"],[0,1]]]],[1,[2,"-1"]],[1,[2,""]],[1,[2,""]],[1,[2,""]]]],[13,66,null,336093195026216,false],[-1,51,null,546487210591396,false,[[11,"TouchCount2"],[7,[0,1]]]]]]]]],[["click.m4a",2444],["click.ogg",5621],["alert-234711.ogg",23907],["click-234708.ogg",6353],["error-010-206498.ogg",11425],["pick-92276.ogg",16164],["pop-reverb-423718.ogg",23653],["card_drag.ogg",7213],["card_flips.ogg",8015],["card_swipe.ogg",9018]],"media/",false,1200,1200,3,true,true,true,"1.0.0.0",true,false,3,0,40,false,true,1,true,"SQ_Word_Hint-Audio",0,[]]} \ No newline at end of file diff --git a/SQ_Word_Hint-Audio-Teacher/icon-114.png b/SQ_Word_Hint-Audio-Teacher/icon-114.png new file mode 100644 index 0000000000000000000000000000000000000000..bf56364da41841cdff16e406c4d5d818e03a102c GIT binary patch literal 25223 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%0A5%m_PO*V84?fv&&Duq6nw{Lpti^Twxo|kNT1Q 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 S2?iX6O(SjR}|-qqqr?Y=#6DQ9+SxzU+mS zft_f&Wt)Oy#jS6YZqB)OYkPOSUVG=$MT{|C^4uR!e&6r&d49j=i_tU&|NbZyom2i$ z(Tl~K*41Wbn>2mjI)~kp(=X{*O+FV-SQJHZqq4|9f{elawZCP*vH8fpG2h)0Wx_M6 zctURFy|&kuR_0I*Uv|GU+kWHm!I8ThrfTK({nHQ=X~Z0#LoIh+MAkMHY`P# z(1}S%Awfn=sVL|h_yK0-!Vrz|@YUr{m*MeNNy!4c%?5f_tq2Jbya5gbE^8I} zbbYm4WYvMmtcS=_9O9e^TOTfjva&U*$;r_2s7p%oanw!trl(t(o99st4{Dtj?%eTV zL~fqt((7*>+s+GVG|mL@$eq@**v698TcXiOVng9NTivee0|SFDL)D{?VWpc2uu1O> zc&Geu>HLKr^bE0M9iM*uW^wU)SVRO#Q3NR^1BphbrA0`m0A$d@??G4k#&8JRv7;Vu zefPNQ$7?_JAh>n{{U*XOeosx^Q+g?#h74*FQAm;qi;F1`5E&hdj{DM?HsGZ_ey09MZc&vRg2RfwmB z2=w*epyxs}XVAza_;MbobZ2yKw)D4&+cwKeYL=pDz%xP}0|9?fIn(i3RFW0cA09@= z16+Ss?=u3=doo(`eyE%dhp(}z(KL3`A2#NULP>D}Xc!$hdIy8fD~{TGKHujw!;)i8 zXA`2n`oC%XJK7d>{PT>#c<}*i{#7-jdj%!Wfc8~r;s34wOMn3Y*EgJK6ii?p00000 LNkvXXu0mjfnWFNZ literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/icon-256.png b/SQ_Word_Hint-Audio-Teacher/icon-256.png new file mode 100644 index 0000000000000000000000000000000000000000..0916f5734ed4474cfe03f4a496836ac3cb11eb8f GIT binary patch literal 98347 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

d*qGs2OXG_z~}TNeSxWgAp# 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 N002ovPDHLkV1g8}tnB~* literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/images/answers-sheet0.png b/SQ_Word_Hint-Audio-Teacher/images/answers-sheet0.png new file mode 100644 index 0000000000000000000000000000000000000000..c21085bfb5ffbffe621a86db37a6fbd8d4f64766 GIT binary patch literal 12383 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 R=+XcH002ovPDHLkV1iy@Xbk`W literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/images/black-sheet0.png b/SQ_Word_Hint-Audio-Teacher/images/black-sheet0.png new file mode 100644 index 0000000000000000000000000000000000000000..707b0c379503e60e70f112725feb552ffd626011 GIT binary patch literal 2935 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 literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/images/button2-sheet0.png b/SQ_Word_Hint-Audio-Teacher/images/button2-sheet0.png new file mode 100644 index 0000000000000000000000000000000000000000..fa32ccacf73d10f1081f64934a1ff0a68f92200f GIT binary patch literal 6124 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 literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/images/correct-sheet0.png b/SQ_Word_Hint-Audio-Teacher/images/correct-sheet0.png new file mode 100644 index 0000000000000000000000000000000000000000..acfca94090490a773f23408196b515acde47fdd6 GIT binary patch literal 31182 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 q1r$&~0RQYEzrq)TTDIsZDKa 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 literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/images/slot-sheet0.png b/SQ_Word_Hint-Audio-Teacher/images/slot-sheet0.png new file mode 100644 index 0000000000000000000000000000000000000000..2311d13579c903c0dc94395d58e3183f04499219 GIT binary patch literal 11183 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 N002ovPDHLkV1h@MZ`%L> literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/images/sound_question-sheet0.png b/SQ_Word_Hint-Audio-Teacher/images/sound_question-sheet0.png new file mode 100644 index 0000000000000000000000000000000000000000..2ef0f02802704e1d54ceb2e9f6115176bb2909ab GIT binary patch literal 48496 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 AU;qFB literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/images/sprite-sheet0.png b/SQ_Word_Hint-Audio-Teacher/images/sprite-sheet0.png new file mode 100644 index 0000000000000000000000000000000000000000..4f5f653ed9c399fa529300a29f51077417fbbad6 GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^zd)FS8A$FoTE!2fm;-!5Tp5`;zj*HH0&*Ekg8YJ4 zl|7v_0mupVba4!+hBdK<29)1LNOE41Yi-c)I$ztaD0e F0su9r9?Sp$ literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/images/submit-sheet0.png b/SQ_Word_Hint-Audio-Teacher/images/submit-sheet0.png new file mode 100644 index 0000000000000000000000000000000000000000..be85371842f0fb9d3dadbcf4c5e438cbdc400fae GIT binary patch literal 146996 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

)=tq> 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

$&8X@6mt`vBmD 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 Hu0mjf2|=-N literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/images/wrong-sheet0.png b/SQ_Word_Hint-Audio-Teacher/images/wrong-sheet0.png new file mode 100644 index 0000000000000000000000000000000000000000..b6a9daa97c740c4b824dce68ece7c2897d13c6be GIT binary patch literal 27271 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 + + + + + SQ_Word_Hint-Audio + + + + + + + + + + + + + + + + + + + + + + +

+
+ + +
+ + + +
+ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SQ_Word_Hint-Audio-Teacher/jquery-3.4.1.min.js b/SQ_Word_Hint-Audio-Teacher/jquery-3.4.1.min.js new file mode 100644 index 0000000..a1c07fd --- /dev/null +++ b/SQ_Word_Hint-Audio-Teacher/jquery-3.4.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0StO&>uS)ve<0AYj> z5AR{$W90N^4L=L-RlQUJ&DC0@ZjPh;=*jPLSYvv5M~MFBAl0-BNIsH15C~g000{K(ZT*WKal6< z?_01!^k@7iDG<<3=fuAC~28EsPoqkpK{9G%|Vj z005J}`Hw&=0RYXHq~ibpyyzHQsFW8>#s~laM4*8xut5h5!4#~(4xGUqyucR%VFpA% z3?#rj5JCpzfE)^;7?wd9RKPme1hudO8lVxH;SjXJF*pt9;1XPc>u?taU>Kgl7`%oF z1VP9M6Ja4bh!J9r*dopd7nzO(B4J20l7OTj>4+3jBE`sZqynizYLQ(?Bl0bB6giDt zK>Co|$RIL`{EECsF_eL_Q3KQhbwIhO9~z3rpmWi5G!I>XmZEFX8nhlgfVQHi(M#xc zbO3#dj$?q)F%D*o*1Pf{>6$SWH+$s3q(pv=X`qR|$iJF~TPzlc-O$C3+J1#CT#lv5;6stS0Uu9wDA3 zUMCI{Uz12A4#|?_P6{CkNG+sOq(0IRX`DyT~9-sA|ffUF>wk++Z! zkWZ5P$;0Hg6gtI-;!FvmBvPc55=u2?Kjj3apE5$3psG>Lsh-pbs)#zDT1jo7c2F-< zhp7`Zb($s3n-)XMq%EV>(3)vyY4>O^>2$gY-Gd%Qm(Z8eYv>2*=jns=cMJ`N4THx> zVkjAF8G9M07`GWOnM|ey)0dgZR4~^v8<}UA514ONSSt1^d=-((5|uiYR+WC0=c-gy zb5%dpd8!Lkt5pxHURHgkMpd&=fR^vEcAI*_=wwAG z2sV%zY%w@v@XU~7=xdm1xY6*0;iwVIXu6TaXrs|dqbIl~?uTdNHFy_3W~^@g_pF#!K2~{F^;XxcN!DEJEbDF7S8PxlSDOr*I-AS3sI8l= z#CDr)-xT5$k15hA^;2%zG3@;83hbKf2JJcaVfH2VZT8O{%p4LO);n}Nd~$Sk%yw*W zyz8XlG{dRHsl(}4XB%gsbDi@w7p6;)%MzD%mlsoQr;4X;pL)xc% z+^yMd)ZNTI#eJ*$O)i@o$z8)e??LqN_gLa_%;TM>o2SC_kmoO6c3xRt`@J4dvz#WL z)-Y|z+r(Soy~}%GIzByR`p)SCKE^%*pL(B%zNWq+-#xw~e%5}Oeh2)X`#bu}{g3#+ z;d$~F@lFL`0l@*~0lk45fwKc^10MvL1f>Tx1&sx}1}_Xg6+#RN4Ot&@lW)Km@*DYM zGu&q^n$Z=?2%QyL8~QNJCQKgI5srq>2;UHXZ>IT7>CCnWh~P(Th`1kV8JQRPeH1Aw zGO8}>QM6NZadh`A)~w`N`)9q5@sFvDxjWlxwsLl7tZHmhY-8-3xPZ8-xPf?w_(k!T z5_A(J3GIpG#Ms0=iQ{tu=WLoYoaCBRmULsT<=mpV7v|~C%bs^USv6UZd^m-e5|^?+ z<%1wXP%juy<)>~<9TW0|n}ttBzM_qyQL(qUN<5P0omQ3hINdvaL;7fjPeygdGYL;p zD|wL_lDQ-EO;$wK-mK5raoH_7l$?~Dqf!lNmb5F^Ft;eTPi8AClMUo~=55LwlZVRp z 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
=!yDab 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 z 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

}<-ac$ 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 literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/media/card_drag.ogg b/SQ_Word_Hint-Audio-Teacher/media/card_drag.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1290cc61ef17b4f04f0c71cef72da2d41a478097 GIT binary patch literal 7213 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 Kh6belkMduXNH`<_ literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/media/card_flips.ogg b/SQ_Word_Hint-Audio-Teacher/media/card_flips.ogg new file mode 100644 index 0000000000000000000000000000000000000000..552d28342491c84c65898e2ebf536cd1a76d51ed GIT binary patch literal 8015 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 literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/media/click-234708.ogg b/SQ_Word_Hint-Audio-Teacher/media/click-234708.ogg new file mode 100644 index 0000000000000000000000000000000000000000..59e494c74d6a8647dab5ee2d227dd152a7407127 GIT binary patch literal 6353 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 literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/media/click.m4a b/SQ_Word_Hint-Audio-Teacher/media/click.m4a new file mode 100644 index 0000000000000000000000000000000000000000..8874ebe34e77a168c43051bc8a4f1b3e05cc7a5b GIT binary patch literal 2444 zcmaJ@3pkVeAAdK|EUkr+TrwKwQfn@yPGWPLOTtF1mSvmFhFwVgRg)6AoS93a(8?u| znwW4(Dn*el(mi#^(TQ|UNI0GMRp;ONpXWUP&$I8opWpZL`@FyJ`##V60sydtBips_xDw{7SS#{NpFzIA1ryT!tR(jY|c%)vMvq1}0B%OvcS%7vn%)(icAo#p`@;^F-?$>_5y<5{E#_6aL ztjo^4me3G;6W zaK&9rMndgoUlFn+#&60vV|(Vju;wwF!F}3h0wgMYLnSJj64dH4Gu%6c38}|henEPA zOt`0zZPUCr+}^{lsBA3oW#94o-AKT5dL5-K?meS{BKLe;zwAp_xuJ-HhE>eRa;Y?# z9)+C^VCn60W%<^GW1;UP5*wL?>Sf#Im@vAd z#?6OUlV6nD)#EpahA6nbyX5bDw)14t$O>;m@x^g>r=rp7efAMraa*aH6o0D>4JS9> z3wd$Jrw#%eXCu_r)4J#5$Zt$_cNb`G_6$!-xSa8vtNgj-$Lfcs9Hp)xw`uGccm9cS z=)}WVBz1j?qRRz|_S^C;|ZeAJb0DGOX*mm`~*FgY+ zGBH%AW8FqtD?fGj+%}dQuk6_SO#Ps#kF_}`g zWOa=}xna^$cRS*0QRB^ePqPBLsp-`KwKF8UYb#9&dCO~5V~cDR$pv1K9gHNM{T#~Z z=JnEhrR3byB=YRgiE$J-ls$({Ny&;HkD?Tt?d7z{&@`B;7t)N_ua47343`FA z?ve48QV-2nmFG?hl9J%c&M4mvgA&l@L=G)Le2&@K-vXg3` z@uSu**Kwzqwh5zC+=2Ax#m|RVsb?e$2CiElaL=4XQN;>Z%New}u1&UWVQR_~vuIb` zTN%rpj+KJ`7%J+L^RSN>W)2s2xr@+_iM3dp>q4)lg=9 z&qbmd5Kv~%LICqb)_I5eif%nIoNv;Qi&O5gI`tkcOt12^K3)*!+vW>5*XhBw?K}{W zoj*YoM))2nD@mVbM;CGJCKhcotgDDu)=v)0d7mc)mo_@kvxD!epWXT@$ov&MzwJ)E zqFMdp#7l=K{@W5Mj9|6gqjb!3(pZIYH^bu4F-yxk#GhoZJY8$#p_s~+QO7r>O4{sT zR(Lv-AM7LXV+4{Y=pfw4q7KfwXa$*Dtq8qB=Nz?Zv@2Wl5~aI7=-GKfS$NzdRJysW zf+$o)2GAew%I~zQSi0uIQ+%~+zdB9#&3oR)J+kW#iJ$hxh{RG|-HGN_SSmINvBVuV zc0qqFBd7&yX-i2BwBI`$ZG>GKI9qOTcaubl=RD-rdzW5d7j}}##$zz&GoByJyv;UE zMO01Qz&y*}`r&<8_O#n?HY?iYfya^T00paq8qR4t|ST5_`RK|1*y{pm(q zA_BG`+!iw#|Iq%H>w!wty0Y{Y-G}A1_VXIgJH0J0XN?|dRgcKgMslisQku=H!pSaJ z^3j?cWX)+E%QTz1*2(Ea*z!Vm$E>iUS5lyCwkt+63zU4RaFz(E0zmFae(x$pp7B=Cl6&T(oO*0yaBXJmFtbqL{eozc}Or z!8Oa18O`Fcp&FP0KQfvF610f_byKJa#B$cxxB*MZhVl@g%hiYz@{GUnevx=P59BP7 zSTr~2Z*eO4$pKv`gzra$1867!-2xBAoaSqA!fpx1WB087B0opYuNM&O!g zH5fF&B_gqSt{&vjo@!tR=l}yyI~*b)p!m1koVNyZyXP`r|G*xYHE1Z%FrZ;UGX%{9 zOlyn8;W6K8p*{RSbBkk%nV`4lv*$dN#{PY{;0^ijprIrLL?llHeLNvHgO9|YPOE>I literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/media/click.ogg b/SQ_Word_Hint-Audio-Teacher/media/click.ogg new file mode 100644 index 0000000000000000000000000000000000000000..715aabf401eacadea9ae476f4078cc134a837ff5 GIT binary patch literal 5621 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 literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/media/error-010-206498.ogg b/SQ_Word_Hint-Audio-Teacher/media/error-010-206498.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9ebb79f79796b01c5a83d5eeaae30775b37ebb14 GIT binary patch literal 11425 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 Bly(3B literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/offline.js b/SQ_Word_Hint-Audio-Teacher/offline.js new file mode 100644 index 0000000..96aca3a --- /dev/null +++ b/SQ_Word_Hint-Audio-Teacher/offline.js @@ -0,0 +1,36 @@ +๏ปฟ{ + "version": 1771847416, + "fileList": [ + "data.js", + "c2runtime.js", + "jquery-3.4.1.min.js", + "offlineClient.js", + "images/answers-sheet0.png", + "images/slot-sheet0.png", + "images/submit-sheet0.png", + "images/sprite-sheet0.png", + "images/wrong-sheet0.png", + "images/correct-sheet0.png", + "images/black-sheet0.png", + "images/sound_question-sheet0.png", + "images/newwords-sheet0.png", + "images/button2-sheet0.png", + "media/click.m4a", + "media/click.ogg", + "media/alert-234711.ogg", + "media/click-234708.ogg", + "media/error-010-206498.ogg", + "media/pick-92276.ogg", + "media/pop-reverb-423718.ogg", + "media/card_drag.ogg", + "media/card_flips.ogg", + "media/card_swipe.ogg", + "icon-16.png", + "icon-32.png", + "icon-114.png", + "icon-128.png", + "icon-256.png", + "loading-logo.png", + "sena_sdk.js" + ] +} \ No newline at end of file diff --git a/SQ_Word_Hint-Audio-Teacher/offlineClient.js b/SQ_Word_Hint-Audio-Teacher/offlineClient.js new file mode 100644 index 0000000..4e546a7 --- /dev/null +++ b/SQ_Word_Hint-Audio-Teacher/offlineClient.js @@ -0,0 +1,53 @@ +"use strict"; + +(function() { + + class OfflineClient + { + constructor() + { + // Create a BroadcastChannel, if supported. + this._broadcastChannel = (typeof BroadcastChannel === "undefined" ? null : new BroadcastChannel("offline")); + + // Queue of messages received before a message callback is set. + this._queuedMessages = []; + + // The message callback. + this._onMessageCallback = null; + + // If BroadcastChannel is supported, listen for messages. + if (this._broadcastChannel) + this._broadcastChannel.onmessage = (e => this._OnBroadcastChannelMessage(e)); + } + + _OnBroadcastChannelMessage(e) + { + // Have a message callback set: just forward the call. + if (this._onMessageCallback) + { + this._onMessageCallback(e); + return; + } + + // Otherwise the app hasn't loaded far enough to set a message callback. + // Buffer the incoming messages to replay when the app sets a callback. + this._queuedMessages.push(e); + } + + SetMessageCallback(f) + { + this._onMessageCallback = f; + + // Replay any queued messages through the handler, then clear the queue. + for (let e of this._queuedMessages) + this._onMessageCallback(e); + + this._queuedMessages.length = 0; + } + }; + + // Create the offline client ASAP so we receive and start queueing any messages the SW broadcasts. + window.OfflineClientInfo = new OfflineClient(); + +}()); + diff --git a/SQ_Word_Hint-Audio-Teacher/sena_sdk.js b/SQ_Word_Hint-Audio-Teacher/sena_sdk.js new file mode 100644 index 0000000..937dee6 --- /dev/null +++ b/SQ_Word_Hint-Audio-Teacher/sena_sdk.js @@ -0,0 +1,1907 @@ +/** + * Sena SDK Constructor + * @param {Object} config - Configuration object for the SDK + * @param {Object} config.data - Quiz data containing question, options, and answer + */ +function SenaSDK(gid = "G2510S1T30") { + // Initialize data + this.data = null; + this.correctAnswer = null; + this.gameCode = gid; + // Initialize properties + this.timeLimit = 0; + this.shuffle = true; + // tracking time in game + this.startTime = 0; + this.endTime = 0; + // Initialize Web Speech API + this.speechSynthesis = window.speechSynthesis; + this.currentUtterance = null; + this.voiceSettings = { + lang: "en-US", + rate: 1.0, // Speed (0.1 to 10) + pitch: 1.0, // Pitch (0 to 2) + volume: 1.0, // Volume (0 to 1) + }; + + // Multi-question support (from postMessage) + this.list = []; + this.currentQuestion = null; + this.level = 0; + this.totalQuestions = 0; + this.userResults = []; + this.gameID = null; + this.userId = null; + this.postMessageDataLoaded = false; + this.isMatchingGame = false; // true nแบฟu lร  game matching (G3xxx) + + // PostMessage listener tracking + this._postMessageListenerRegistered = false; + this._waitingForPostMessage = false; + this._postMessageTimeout = null; + this._loadCallback = null; + + // Game interaction tracking - ฤ‘แปƒ biแบฟt cรณ thแปƒ reload data khรดng + this._gameStartedByUser = false; // true khi user ฤ‘รฃ tฦฐฦกng tรกc (click, drag, etc.) + this._dataLoadedFromServer = false; // true nแบฟu data tแปซ server (khรดng phแบฃi postMessage) + + // ========== MODE SUPPORT ========== + // 'live' - Chแป vรด hแบกn cho postMessage tแปซ server (production) + // 'preview' - Timeout 5s rแป“i fallback sample (testing vแป›i data thแบญt) + // 'dev' - Load sample ngay lแบญp tแปฉc (development) + this.mode = "preview"; // Default mode +} + +/** + * Shuffle array using Fisher-Yates algorithm + * @param {Array} array - Array to shuffle + */ +SenaSDK.prototype.shuffleArray = function (array) { + for (let i = array.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [array[i], array[j]] = [array[j], array[i]]; + } +}; + +/** + * Load data tแปซ postMessage (SERVER_PUSH_DATA) + * Game type ฤ‘ฦฐแปฃc xรกc ฤ‘แป‹nh tแปซ gameCode: + * - G1xxx = Quiz (trแบฏc nghiแป‡m) + * - G2xxx = Sort (sแบฏp xแบฟp) + * - G3xxx = Match (nแป‘i cแบทp) -> forward to tdv_sdk + * - G4xxx = Fill (ฤ‘iแปn tแปซ) + * - G5xxx = Custom + * + * Data format: + * { + * gameCode: "G1400S1T30", // Bแบฏt buแป™c - xรกc ฤ‘แป‹nh loแบกi game + * data: { request, question, options: [] }, + * answer: "..." + * } + */ +SenaSDK.prototype.loadFromPostMessage = function (inputJson, callback) { + let self = this; + + if (!inputJson) { + console.error("๐ŸŽฎ Sena SDK: No data in postMessage"); + if (callback) callback(false); + return false; + } + + console.log("๐Ÿ“ฆ Sena SDK: Loading from PostMessage:", inputJson); + + // ========== DETECT GAME TYPE Tแปช GAMECODE ========== + let gameCode = inputJson.gameCode || self.gameCode; + let gameCategory = gameCode.charAt(1); // G[category]xxx - 1=Quiz, 2=Sort, 3=Match, 4=Fill, 5=Custom + + console.log("๐ŸŽฎ Sena SDK: GameCode:", gameCode, "| Category:", gameCategory); + + // ========== MATCHING GAME (G3xxx) ========== + // Chuyแปƒn tiแบฟp cho tdv_sdk xแปญ lรฝ + if (gameCategory === "3") { + console.log( + "๐ŸŽฏ Sena SDK: Detected MATCHING GAME (G3xxx), forwarding to tdv_sdk...", + ); + + // Lฦฐu thรดng tin cฦก bแบฃn + self.gameCode = gameCode; + self.gameID = gameCode; + self.postMessageDataLoaded = true; + self.isMatchingGame = true; + self._dataLoadedFromServer = false; // Data tแปซ postMessage, khรดng phแบฃi server + + // Forward data cho tdv_sdk nแบฟu cรณ + if (window.tdv_sdk) { + window.tdv_sdk.loadFromPostMessage(inputJson, callback); + console.log("โœ… Sena SDK: Forwarded to tdv_sdk"); + } else { + console.warn("โš ๏ธ Sena SDK: tdv_sdk not found, storing data locally"); + self.data = inputJson.data; + self.correctAnswer = inputJson.answer; + if (callback) callback(true); + } + return true; + } + + // ========== QUIZ / SORT / FILL / CUSTOM (G1, G2, G4, G5) ========== + // Single question format: cรณ gameCode vร  data (khรดng phแบฃi array) + let isSingleQuestion = + inputJson.gameCode && inputJson.data && !Array.isArray(inputJson.data); + + if (isSingleQuestion) { + // ========== SINGLE QUESTION (SenaSDK format) ========== + console.log("๐ŸŽฏ Sena SDK: Detected SINGLE QUESTION format"); + + self.gameCode = inputJson.gameCode || self.gameCode; + self.gameID = inputJson.gameCode; + + // Parse game code ฤ‘แปƒ lแบฅy settings + self._parseGameCode(); + + // Set data trแปฑc tiแบฟp + self.data = { + question: inputJson.data.question || "", + request: inputJson.data.request || "", + options: inputJson.data.options || [], + image: inputJson.data.image || "", + audio: inputJson.data.audio || "", + hint: inputJson.data.hint || null, + }; + + // --- [UPDATE G5] KhแปŸi tแบกo Master List cho G5 --- + if (self.gameType === 5 && self.data && self.data.options) { + // Lฦฐu trแปฏ danh sรกch gแป‘c + self.masterList = [...self.data.options]; + // Tรญnh tแป•ng sแป‘ level + self.totalLevels = Math.ceil(self.masterList.length / self.itemCount); + self.currentLevel = 0; + + // Load Level 1 ngay lแบญp tแปฉc ฤ‘แปƒ self.data.options chแป‰ chแปฉa 6 card ฤ‘แบงu + self.loadLevelG5(1); + } + + self.correctAnswer = inputJson.answer; + + // Cลฉng set vร o list ฤ‘แปƒ hแป— trแปฃ multi-question API + self.list = [ + { + id: "Q1", + question: inputJson.data.question, + request: inputJson.data.request, + options: inputJson.data.options, + answer: inputJson.answer, + image: inputJson.data.image, + audio: inputJson.data.audio, + }, + ]; + self.totalQuestions = 1; + self.level = 0; + self.currentQuestion = self.list[0]; + self.userResults = []; + + // [UPDATE G4] Process G4 Data + if (self.gameType === 4) self._processG4Data(); + + console.log( + "โœ… Sena SDK: Single question loaded -", + inputJson.description || inputJson.data.question, + ); + } else { + // ========== MULTI-QUESTION (Exam mode) ========== + console.log("๐Ÿ“‹ Sena SDK: Detected MULTI-QUESTION format"); + + // Lฦฐu thรดng tin game + self.gameID = inputJson.game_id || "quiz_game"; + self.userId = inputJson.user_id || "guest"; + + // Lฦฐu danh sรกch cรขu hแปi + self.list = inputJson.data || inputJson.questions || []; + self.totalQuestions = self.list.length; + + // Xแปญ lรฝ thแปi gian + if (inputJson.total_time) { + self.timeLimit = parseInt(inputJson.total_time, 10); + } + + if (inputJson.end_time_iso) { + let endTimeDate = new Date(inputJson.end_time_iso); + let now = new Date(); + self.timeLimit = Math.max(0, Math.floor((endTimeDate - now) / 1000)); + } + + // Xแปญ lรฝ resume (cรขu hแปi ฤ‘รฃ hoร n thร nh) + let completedData = inputJson.completed_question_ids || []; + self.userResults = []; + let resumeLevel = 0; + + for (let i = 0; i < self.list.length; i++) { + let done = completedData.find( + (item) => (item.id || item) === self.list[i].id, + ); + if (done) { + self.userResults.push({ + id: self.list[i].id, + result: done.result !== undefined ? done.result : 0, + }); + resumeLevel = i + 1; + } else { + resumeLevel = i; + break; + } + } + + self.level = Math.min(resumeLevel, self.totalQuestions - 1); + + // Load cรขu hแปi ฤ‘แบงu tiรชn vร  convert sang ฤ‘แป‹nh dแบกng SenaSDK + self._loadCurrentQuestionToData(); + + console.log("โœ… Sena SDK: Loaded", self.totalQuestions, "questions"); + } + + self.postMessageDataLoaded = true; + + if (callback) callback(true); + return true; +}; + +/** + * [UPDATED] Parse game code ฤ‘แปƒ lแบฅy settings + * Cho phรฉp G1-G9 (thay vรฌ G1-G5) + */ +SenaSDK.prototype._parseGameCode = function () { + let self = this; + const gameCode = self.gameCode || "G4410S1T30"; // G4 mแบซu + + // Regex hแป— trแปฃ G1-G9 + const regex = /^G([1-9])(\d{1,2})([0-2])([0-2])(?:S([0-1]))?(?:T(\d+))?$/; + let match = gameCode.match(regex); + + if (match) { + self.gameType = parseInt(match[1], 10); + self.itemCount = parseInt(match[2], 10); + self.questionType = parseInt(match[3], 10); + self.optionType = parseInt(match[4], 10); + const shuffleFlag = match[5] !== undefined ? match[5] : "1"; + const timeStr = match[6] !== undefined ? match[6] : "0"; + self.shuffle = shuffleFlag === "1"; + // --- [UPDATE G5] Logic Time Per Card --- + if (self.gameType === 5) { + self.timePerCard = parseInt(timeStr, 10); // T5 = 5s mแป—i card + self.timeLimit = 0; // G5 khรดng giแป›i hแบกn tแป•ng thแปi gian + } else { + self.timeLimit = parseInt(timeStr, 10); + self.timePerCard = 0; + } + } +}; + +/** + * Load cรขu hแปi hiแป‡n tแบกi vร o this.data + */ +SenaSDK.prototype._loadCurrentQuestionToData = function () { + let self = this; + + if (self.list.length > 0 && self.level < self.list.length) { + self.currentQuestion = self.list[self.level]; + + // Convert sang ฤ‘แป‹nh dแบกng SenaSDK chuแบฉn + self.data = { + question: self.currentQuestion.question || "", + request: self.currentQuestion.request || "", + options: self.currentQuestion.options || [], + image: self.currentQuestion.image || "", + audio: self.currentQuestion.audio || "", + }; + self.correctAnswer = self.currentQuestion.answer; + } +}; + +/** + * Chuyแปƒn sang cรขu hแปi tiแบฟp theo (multi-question mode) + */ +SenaSDK.prototype.nextQuestion = function () { + let self = this; + + if (self.level < self.totalQuestions - 1) { + self.level++; + self._loadCurrentQuestionToData(); + console.log( + "๐ŸŽฎ Sena SDK: Next Question:", + self.level + 1, + "/", + self.totalQuestions, + ); + return true; + } + + console.log("๐ŸŽฎ Sena SDK: No more questions"); + return false; +}; + +/** + * Lแบฅy sแป‘ cรขu hแปi hiแป‡n tแบกi (1-indexed) + */ +SenaSDK.prototype.getCurrentNumber = function () { + return this.level + 1; +}; + +/** + * Lแบฅy tแป•ng sแป‘ cรขu hแปi + */ +SenaSDK.prototype.getTotalQuestions = function () { + return this.totalQuestions || 1; +}; + +// Settings cho postMessage waiting +SenaSDK.prototype.POSTMESSAGE_TIMEOUT_MS = 1000; // 5 giรขy (chแป‰ dรนng cho preview mode) + +SenaSDK.prototype.load = function (callback, template = "G2510S1T30") { + let self = this; + + // *** AUTO-REGISTER postMessage listener (chแป‰ 1 lแบงn) *** + if (!self._postMessageListenerRegistered) { + self.registerPostMessageListener(); + self._postMessageListenerRegistered = true; + } + + // Nแบฟu ฤ‘รฃ cรณ data tแปซ postMessage, khรดng cแบงn load lแบกi + if (self.postMessageDataLoaded && self.list.length > 0) { + console.log("๐ŸŽฎ Sena SDK: Data already loaded from postMessage"); + if (callback) callback(true); + return; + } + + // Nแบฟu ฤ‘รฃ cรณ data (tแปซ bแบฅt kแปณ nguแป“n nร o), khรดng cแบงn load lแบกi + if (self.data && self.data.options) { + console.log("๐ŸŽฎ Sena SDK: Data already available"); + if (callback) callback(true); + return; + } + + // ========== GET URL PARAMETERS ========== + const urlParams = new URLSearchParams(window.location.search); + + // Get LID (game code) from URL + const LID = urlParams.get("LID"); + if (LID) { + self.gameCode = LID; + } + + // Get MODE from URL: ?mode=live | ?mode=preview | ?mode=dev + const urlMode = urlParams.get("mode"); + if (urlMode && ["live", "preview", "dev"].includes(urlMode.toLowerCase())) { + self.mode = urlMode.toLowerCase(); + } + + console.log( + "๐ŸŽฎ Sena SDK: Mode =", + self.mode.toUpperCase(), + "| GameCode =", + self.gameCode, + ); + + // Lฦฐu callback ฤ‘แปƒ gแปi sau + self._loadCallback = callback; + + // ========== MODE-BASED LOADING ========== + switch (self.mode) { + case "live": + // LIVE MODE: Chแป vรด hแบกn cho postMessage tแปซ server + self._waitingForPostMessage = true; + console.log( + "โณ Sena SDK: [LIVE MODE] Waiting for server data via postMessage (no timeout)...", + ); + // Khรดng set timeout - chแป vรด hแบกn + // Gแปญi GAME_READY ฤ‘แปƒ server biแบฟt game sแบตn sร ng nhแบญn data + self._sendGameReady(); + break; + + case "dev": + // DEV MODE: Load sample data ngay lแบญp tแปฉc + console.log("๐Ÿ”ง Sena SDK: [DEV MODE] Loading sample data immediately..."); + self._waitingForPostMessage = false; + self._loadFromServer(callback, template); + break; + + case "preview": + default: + // PREVIEW MODE: Timeout 5s rแป“i fallback sample + self._waitingForPostMessage = true; + console.log( + "โณ Sena SDK: [PREVIEW MODE] Waiting for postMessage (" + + self.POSTMESSAGE_TIMEOUT_MS / 1000 + + "s timeout)...", + ); + + // Set timeout ฤ‘แปƒ fallback load tแปซ server + self._postMessageTimeout = setTimeout(function () { + if (self._waitingForPostMessage && !self.postMessageDataLoaded) { + console.warn( + "โš ๏ธ Sena SDK: No postMessage received, fallback to sample data...", + ); + self._loadFromServer(self._loadCallback, template); + } + }, self.POSTMESSAGE_TIMEOUT_MS); + break; + } +}; + +/** + * Gแปญi GAME_READY message cho parent window + * ฤแปƒ server biแบฟt game ฤ‘รฃ sแบตn sร ng nhแบญn data + */ +SenaSDK.prototype._sendGameReady = function () { + let self = this; + window.parent.postMessage( + { + type: "GAME_READY", + payload: { + game_id: self.gameID || self.gameCode, + game_code: self.gameCode, + mode: self.mode, + }, + }, + "*", + ); + console.log("๐Ÿ“ค Sena SDK: Sent GAME_READY to parent"); +}; + +/** + * Fallback: Load data tแปซ server khi khรดng cรณ postMessage + */ +SenaSDK.prototype._loadFromServer = function ( + callback, + template = "G2510S1T30", +) { + let self = this; + self._waitingForPostMessage = false; + + const validation = self.validateGameCode(self.gameCode); + if (!validation.valid) { + console.warn("๐ŸŽฎ Sena SDK: " + validation.error); + } + + console.log("๐Ÿ“ก Sena SDK: Fallback loading from server..."); + + fetch(`https://senaai.tech/sample/${self.gameCode}.json`) + .then((response) => response.json()) + .then((data) => { + self.data = data.data; + self.correctAnswer = data.answer || null; + const gameCode = self.gameCode || template; + + // FIX: Regex chแบฅp nhแบญn 2 chแปฏ sแป‘ cho Count + const strictRegex = + /^G([1-9])(\d{1,2})([0-2])([0-2])(?:S([0-1]))?(?:T(\d+))?$/; + let match = gameCode.match(strictRegex); + + if (match) { + self.gameType = parseInt(match[1], 10); + self.itemCount = parseInt(match[2], 10); + self.questionType = parseInt(match[3], 10); + self.optionType = parseInt(match[4], 10); + const shuffleFlag = match[5] !== undefined ? match[5] : "1"; + const timeStr = match[6] !== undefined ? match[6] : "0"; + self.shuffle = shuffleFlag === "1"; + self.timeLimit = parseInt(timeStr, 10); + + console.log("๐ŸŽฎ Sena SDK: โœ“ Valid game code parsed:", { + type: self.gameType, + count: self.itemCount, + time: self.timeLimit, + }); + } else { + console.error( + "๐ŸŽฎ Sena SDK: โœ— Cannot parse game code (Strict match failed):", + gameCode, + ); + // Fallback safe mode + self.shuffle = true; + // Nแบฟu load ฤ‘ฦฐแปฃc file json thรฌ ta cแปฉ tin tฦฐแปŸng lแบฅy time trong ฤ‘รณ nแบฟu cรณ, hoแบทc default 30s + self.timeLimit = 30; + } + // Mแปฅc ฤ‘รญch: Trรกo vแป‹ trรญ data ngay lแบญp tแปฉc sau khi load xong + if (self.shuffle && self.data && self.data.options) { + self.shuffleArray(self.data.options); + console.log("๐ŸŽฎ Sena SDK: Data shuffled immediately on load"); + } + + // --- [UPDATE G5] KhแปŸi tแบกo Master List cho G5 --- + if (self.gameType === 5 && self.data && self.data.options) { + // Lฦฐu trแปฏ danh sรกch gแป‘c + self.masterList = [...self.data.options]; + // Tรญnh tแป•ng sแป‘ level + self.totalLevels = Math.ceil(self.masterList.length / self.itemCount); + self.currentLevel = 0; + + // Load Level 1 ngay lแบญp tแปฉc ฤ‘แปƒ self.data.options chแป‰ chแปฉa 6 card ฤ‘แบงu + self.loadLevelG5(1); + } + + // [UPDATE G4] Process G4 Data + if (self.gameType === 4) self._processG4Data(); + + console.log("๐ŸŽฎ Sena SDK: Data loaded for", self.gameCode); + self._dataLoadedFromServer = true; + if (callback) callback(true); + }) + .catch((error) => { + console.error("๐ŸŽฎ Sena SDK: Error loading data:", error); + if (callback) callback(false); + }); +}; + +/** + * Validate game code format + * @param {string} code - Game code to validate + * @returns {Object} Validation result with valid flag and parsed values + */ +SenaSDK.prototype.validateGameCode = function (code) { + code = code || this.gameCode; + + // Format: G[type][count][qType][oType]S[shuffle]T[time] + // type: 1=Quiz, 2=Sort, 3=Match/Memory, 4=Fill, 5=Custom + // count: 2-9 + // qType/oType: 0=Text, 1=Image, 2=Audio + const regex = /^G([1-9])(\d{1,2})([0-2])([0-2])(?:S([0-1]))?(?:T(\d+))?$/; + const match = code.match(regex); + + if (!match) { + // Check what's wrong + let error = "Invalid game code format"; + const looseMatch = code.match(/^G([0-9])(\d{1,2})([0-9])([0-9])/); + + if (looseMatch) { + const issues = []; + // QUAN TRแปŒNG: Sแปญa '5' thร nh '9' แปŸ dรฒng dฦฐแป›i ฤ‘รขy + if (looseMatch[1] < "1" || looseMatch[1] > "9") + issues.push("type must be 1-9"); + if (looseMatch[2] < "2" || looseMatch[2] > "9") + issues.push("count must be 2-9"); + if (looseMatch[3] > "2") + issues.push("qType must be 0-2 (0=Text, 1=Image, 2=Audio)"); + if (looseMatch[4] > "2") + issues.push("oType must be 0-2 (0=Text, 1=Image, 2=Audio)"); + if (issues.length > 0) error = issues.join(", "); + } + + return { valid: false, error: error, code: code }; + } + + return { + valid: true, + code: code, + type: parseInt(match[1], 10), + count: parseInt(match[2], 10), + qType: parseInt(match[3], 10), + oType: parseInt(match[4], 10), + shuffle: match[5] !== "0", + time: match[6] ? parseInt(match[6], 10) : 0, + description: this.getGameCodeDescription(match), + }; +}; + +/** + * Get human-readable description of game code + */ +SenaSDK.prototype.getGameCodeDescription = function (match) { + if (!match) return ""; + + const types = { + 1: "Quiz", + 2: "Sort/Sequence", + 3: "Match/Memory", + 4: "Fill", + 5: "Custom", + }; + const contentTypes = ["Text", "Image", "Audio"]; + + const gameType = types[match[1]] || "Unknown"; + const qType = contentTypes[parseInt(match[3])] || "Unknown"; + const oType = contentTypes[parseInt(match[4])] || "Unknown"; + + return `${gameType}: ${match[2]} items, ${qType} โ†’ ${oType}`; +}; +/** + * Generate comprehensive developer guide based on game code + * @returns {string} Developer guide with implementation instructions + */ +SenaSDK.prototype.guide = function () { + let self = this; + const gameCode = self.gameCode || "G2510S1T30"; + const data = self.data || {}; + + /** + * Regex giแบฃi thรญch: + * ^G([1-5])([2-9])([0-2])([0-2]) : Bแบฏt buแป™c (Loแบกi, Sแป‘ lฦฐแปฃng, Q, O) + * (?:S([0-1]))? : Khรดng bแบฏt buแป™c, mแบทc ฤ‘แป‹nh S1 + * (?:T(\d+))? : Khรดng bแบฏt buแป™c, mแบทc ฤ‘แป‹nh T0 + */ + const regex = /^G([1-9])([2-9])([0-2])([0-2])(?:S([0-1]))?(?:T(\d+))?$/; + const match = gameCode.match(regex); + + if (!match) + return "Mรฃ game khรดng hแปฃp lแป‡! ฤแป‹nh dแบกng chuแบฉn: Gxxxx hoแบทc GxxxxSxTxx"; + + const category = match[1]; + const count = match[2]; + const qIdx = match[3]; + const oIdx = match[4]; + const shuffle = match[5] !== undefined ? match[5] : "1"; + const time = match[6] !== undefined ? match[6] : "0"; + + const types = { 0: "Text", 1: "Image", 2: "Audio" }; + let guide = ""; + + // Header + guide += `โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—\n`; + guide += `โ•‘ SENA SDK - DEVELOPER GUIDE: ${gameCode.padEnd(37)}โ•‘\n`; + guide += `โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•\n\n`; + + // Game Analysis + guide += `๐Ÿ“Š GAME ANALYSIS\n`; + guide += `โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n`; + + let gameName = "", + instruction = "", + displayMode = ""; + + switch (category) { + case "1": + gameName = "Quiz (Trแบฏc nghiแป‡m)"; + instruction = `Ngฦฐแปi dรนng chแปn 1 ฤ‘รกp รกn ฤ‘รบng trong ${count} options`; + displayMode = `Question: ${types[qIdx]} โ†’ Options: ${types[oIdx]}`; + break; + case "2": + if (qIdx === "0" && oIdx === "0") { + gameName = "Sort Word (Sแบฏp xแบฟp tแปซ)"; + instruction = `Sแบฏp xแบฟp ${count} tแปซ/kรฝ tแปฑ thร nh chuแป—i hoร n chแป‰nh`; + } else { + gameName = "Sequences (Sแบฏp xแบฟp chuแป—i)"; + instruction = `Sแบฏp xแบฟp ${count} items theo ฤ‘รบng thแปฉ tแปฑ`; + } + displayMode = `Hint: ${types[qIdx]} โ†’ Items: ${types[oIdx]}`; + break; + case "3": + if (qIdx === oIdx) { + gameName = "Memory Card (Trรญ nhแป›)"; + instruction = `Lแบญt vร  ghรฉp ${count} cแบทp thแบป giแป‘ng nhau`; + } else { + gameName = "Matching (Nแป‘i cแบทp)"; + instruction = `Nแป‘i ${count} items tแปซ 2 nhรณm vแป›i nhau`; + } + displayMode = `Group A: ${types[qIdx]} โ†” Group B: ${types[oIdx]}`; + break; + } + + guide += `Game Type : ${gameName}\n`; + guide += `Objective : ${instruction}\n`; + guide += `Display Mode : ${displayMode}\n`; + guide += `Items Count : ${count}\n`; + guide += `Shuffle : ${shuffle === "1" ? "YES (call sdk.start() to shuffle)" : "NO (S0)"}\n`; + guide += `Time Limit : ${time === "0" ? "Unlimited" : time + " seconds"}\n`; + + if (data.hint && data.hint.type) { + guide += `Hint Type : ${data.hint.type}\n`; + guide += `Hint Count : ${Array.isArray(data.hint.value) ? data.hint.value.length : "1"}\n`; + } + + guide += `\n๐Ÿ”ง IMPLEMENTATION STEPS\n`; + guide += `โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n\n`; + + // Step 1: Initialize + guide += `1๏ธโƒฃ INITIALIZE SDK\n`; + guide += ` var sdk = new SenaSDK('${gameCode}');\n`; + guide += ` sdk.load(function(success) {\n`; + guide += ` if (success) sdk.start();\n`; + guide += ` });\n\n`; + + // Step 2: Display based on game type + guide += `2๏ธโƒฃ DISPLAY UI\n`; + + if (category === "1") { + // Quiz + guide += ` // Display Question\n`; + if (qIdx === "0") { + guide += ` var questionText = sdk.getQuestionValue();\n`; + guide += ` displayText(questionText); // Show text\n`; + } else if (qIdx === "1") { + guide += ` var questionImg = sdk.getQuestionValue();\n`; + guide += ` displayImage(questionImg); // Show image URL\n`; + } else if (qIdx === "2") { + guide += ` sdk.playVoice('question'); // Auto play audio\n`; + } + + guide += `\n // Display Options\n`; + guide += ` var optionsCount = sdk.getOptionsCount(); // ${count} items\n`; + guide += ` for (var i = 0; i < optionsCount; i++) {\n`; + if (oIdx === "0") { + guide += ` var optionText = sdk.getOptionsValue(i).text;\n`; + guide += ` createButton(optionText, i); // Show text button\n`; + } else if (oIdx === "1") { + guide += ` var optionImg = sdk.getOptionsValue(i).image;\n`; + guide += ` createImageButton(optionImg, i); // Show image button\n`; + } else if (oIdx === "2") { + guide += ` createAudioButton(i); // Button to play audio\n`; + guide += ` // onClick: sdk.playVoice('option' + (i+1));\n`; + } + guide += ` }\n`; + } else if (category === "2") { + // Sort/Sequences + guide += ` // Display Hint (if exists)\n`; + if (qIdx === "0") { + guide += ` var hintText = sdk.getQuestionValue() || sdk.getRequestValue();\n`; + guide += ` if (hintText) displayHint(hintText);\n`; + } else if (qIdx === "1") { + guide += ` var hintImg = sdk.getQuestionValue();\n`; + guide += ` if (hintImg) displayHintImage(hintImg);\n`; + } + + guide += `\n // Display Draggable Items\n`; + guide += ` var itemsCount = sdk.getOptionsCount();\n`; + guide += ` for (var i = 0; i < itemsCount; i++) {\n`; + if (oIdx === "0") { + guide += ` var itemText = sdk.getOptionsValue(i).text;\n`; + guide += ` createDraggableText(itemText, i);\n`; + } else if (oIdx === "1") { + guide += ` var itemImg = sdk.getOptionsValue(i).image;\n`; + guide += ` createDraggableImage(itemImg, i);\n`; + } + guide += ` }\n`; + guide += ` // User drags to reorder items\n`; + } else if (category === "3") { + // Memory/Matching + guide += ` var itemsCount = sdk.getOptionsCount();\n`; + if (qIdx === oIdx) { + guide += ` // Memory Card - Create pairs\n`; + guide += ` var allCards = []; // Duplicate items for pairs\n`; + guide += ` for (var i = 0; i < itemsCount; i++) {\n`; + guide += ` allCards.push(sdk.getOptionsValue(i));\n`; + guide += ` allCards.push(sdk.getOptionsValue(i)); // Duplicate\n`; + guide += ` }\n`; + guide += ` shuffleArray(allCards);\n`; + guide += ` // Create face-down cards, flip on click\n`; + } else { + guide += ` // Matching - Create two groups\n`; + guide += ` for (var i = 0; i < itemsCount; i++) {\n`; + if (qIdx === "0") { + guide += ` var leftText = sdk.getOptionsValue(i).text;\n`; + guide += ` createLeftItem(leftText, i);\n`; + } else if (qIdx === "1") { + guide += ` var leftImg = sdk.getOptionsValue(i).image;\n`; + guide += ` createLeftItem(leftImg, i);\n`; + } + if (oIdx === "0") { + guide += ` var rightText = sdk.getOptionsValue(i).text; // Matching pair\n`; + guide += ` createRightItem(rightText, i);\n`; + } else if (oIdx === "1") { + guide += ` var rightImg = sdk.getOptionsValue(i).image;\n`; + guide += ` createRightItem(rightImg, i);\n`; + } + guide += ` }\n`; + guide += ` // User draws lines to match pairs\n`; + } + } + + // Step 3: Handle Hint + if (data.hint && data.hint.type) { + guide += `\n3๏ธโƒฃ HANDLE HINT (Optional)\n`; + guide += ` var hintType = sdk.getHintType(); // "${data.hint.type}"\n`; + if (data.hint.type === "display") { + guide += ` var hintCount = sdk.getHintCount();\n`; + guide += ` for (var i = 0; i < hintCount; i++) {\n`; + guide += ` var hintItem = sdk.getHintValue(i);\n`; + guide += ` displayHintItem(hintItem, i); // Show each hint\n`; + guide += ` }\n`; + } else if (data.hint.type === "audio") { + guide += ` var hintAudio = sdk.getHintValue();\n`; + guide += ` createHintButton(hintAudio); // Play audio hint\n`; + } else if (data.hint.type === "text") { + guide += ` var hintText = sdk.getHintValue();\n`; + guide += ` displayHintText(hintText);\n`; + } + } + + // Step 4: Check Answer + const stepNum = data.hint ? "4๏ธโƒฃ" : "3๏ธโƒฃ"; + guide += `\n${stepNum} CHECK ANSWER\n`; + + if (category === "1") { + guide += ` // User clicks an option\n`; + guide += ` function onOptionClick(selectedIndex) {\n`; + guide += ` var userAnswer = sdk.getOptionsValue(selectedIndex).text;\n`; + guide += ` var result = sdk.end(userAnswer, function(isCorrect) {\n`; + guide += ` if (isCorrect) showSuccess();\n`; + guide += ` else showError();\n`; + guide += ` });\n`; + guide += ` }\n`; + } else if (category === "2") { + guide += ` // User finishes sorting\n`; + guide += ` function onSubmitOrder(orderedArray) {\n`; + guide += ` var answerStr = orderedArray.map(item => item.text).join('|');\n`; + guide += ` sdk.end(answerStr, function(isCorrect) {\n`; + guide += ` if (isCorrect) showSuccess();\n`; + guide += ` else showCorrectOrder();\n`; + guide += ` });\n`; + guide += ` }\n`; + } else if (category === "3") { + guide += ` // User completes all matches/pairs\n`; + guide += ` function onAllMatched(matchedPairs) {\n`; + guide += ` var answerStr = matchedPairs.map(p => p.text).join('|');\n`; + guide += ` sdk.end(answerStr, function(isCorrect) {\n`; + guide += ` showResult(isCorrect);\n`; + guide += ` });\n`; + guide += ` }\n`; + } + + // Step 5: Timer + if (time !== "0") { + const nextStep = data.hint ? "5๏ธโƒฃ" : "4๏ธโƒฃ"; + guide += `\n${nextStep} TIMER COUNTDOWN\n`; + guide += ` var timeLimit = sdk.timeLimit; // ${time} seconds\n`; + guide += ` startCountdown(timeLimit);\n`; + guide += ` // If time runs out before sdk.end(), user fails\n`; + } + + // API Reference + guide += `\n\n๐Ÿ“š KEY API METHODS\n`; + guide += `โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n`; + guide += `sdk.load(callback, template) - Load data from server\n`; + guide += `sdk.start() - Start game, shuffle if needed\n`; + guide += `sdk.getQuestionValue() - Get question text/image/audio\n`; + guide += `sdk.getQuestionType() - Get question type (text/image/audio)\n`; + guide += `sdk.getOptionsCount() - Get number of options\n`; + guide += `sdk.getOptionsValue(index) - Get option object at index\n`; + guide += `sdk.getOptionsType() - Get options type\n`; + guide += `sdk.getHintType() - Get hint type\n`; + guide += `sdk.getHintValue(index) - Get hint value/array item\n`; + guide += `sdk.getHintCount() - Get hint items count\n`; + guide += `sdk.playVoice(type) - Play TTS (question/option1/hint)\n`; + guide += `sdk.end(answer, callback) - Check answer & return result\n`; + guide += `sdk.timeLimit - Time limit in seconds\n`; + guide += `sdk.shuffle - Whether to shuffle options\n`; + + guide += `\n\n๐Ÿ’ก TIPS\n`; + guide += `โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n`; + if (shuffle === "1") { + guide += `โ€ข Options are shuffled after sdk.start() - display in new order\n`; + } + if (time !== "0") { + guide += `โ€ข Implement timer UI and auto-submit when time expires\n`; + } + guide += `โ€ข Use Web Speech API: sdk.playVoice() for TTS in English\n`; + guide += `โ€ข Multiple answers format: "answer1|answer2|answer3"\n`; + guide += `โ€ข sdk.end() returns: {isCorrect, duration, correctAnswer, userAnswer}\n`; + + guide += `\n${"โ•".repeat(76)}\n`; + + return guide; +}; +/** + * Get the question text + * @returns {string} Question or request text + */ +SenaSDK.prototype.getQuestionValue = function () { + var q = String(this.data.question || "").trim(); + if (q.toLowerCase().startsWith("http")) { + return ""; + } + return q; +}; +/** + * Get the question type + * @returns {string} Question type (text, image, audio) + */ +SenaSDK.prototype.getQuestionType = function () { + let self = this; + // based on game code, determine question type + const gameCode = self.gameCode || "G2510S1T30"; + const regex = /^G([1-9])([2-9])([0-2])([0-2])(?:S([0-1]))?(?:T(\d+))?$/; + const match = gameCode.match(regex); + if (match) { + const qIdx = match[3]; + const types = { 0: "text", 1: "image", 2: "audio" }; + return types[qIdx] || "text"; + } + return "text"; +}; + +/** + * [UPDATE] Get the question image URL + * Dรนng cho G4 khi cแบงn hiแปƒn thแป‹ song song cแบฃ Text (getQuestionValue) vร  Image + * @returns {string} Image URL + */ +SenaSDK.prototype.getQuestionImage = function () { + if (this.data && this.data.image) { + return String(this.data.image).trim(); + } + return ""; +}; + +/** + * Get the request value + * @returns {string} Request text + */ +SenaSDK.prototype.getRequestValue = function () { + if (this.data && this.data.request && this.data.request !== "") { + return this.data.request; + } else { + return ""; + } +}; + +/** + * Get the request type (same as question type) + * @returns {string} Request type (text, image, audio) + */ +SenaSDK.prototype.getRequestType = function () { + return this.getQuestionType(); +}; + +/** + * Get total number of options + * @returns {number} Number of options + */ +SenaSDK.prototype.getOptionsCount = function () { + if (this.data && this.data.options) { + return this.data.options.length; + } + return 0; +}; + +/** + * Get options type based on game code + * @returns {string} Options type (text, image, audio) + */ +SenaSDK.prototype.getOptionsType = function () { + let self = this; + // based on game code, determine options type + const gameCode = self.gameCode || "G2510S1T30"; + const regex = /^G([1-9])([2-9])([0-2])([0-2])(?:S([0-1]))?(?:T(\d+))?$/; + const match = gameCode.match(regex); + if (match) { + const oIdx = match[4]; + const types = { 0: "text", 1: "image", 2: "audio" }; + return types[oIdx] || "text"; + } + return "text"; +}; +/** + * Get option value by index based on options type from game code + * @param {number} index - Option index + * @returns {string} Option value (text, image URL, or audio URL based on game code) + */ +SenaSDK.prototype.getOptionsValue = function (index) { + return this.data.options[index]; +}; + +/** + * Get hint type + * @returns {string} Hint type (e.g., 'display', 'audio', 'text', or empty string if no hint) + */ +SenaSDK.prototype.getHintType = function () { + if (this.data && this.data.hint && this.data.hint.type) { + return this.data.hint.type; + } + return ""; +}; + +/** + * Get hint count (number of elements if hint is an array, particularly for display type) + * @returns {number} Number of elements in hint array, or 1 if not an array, or 0 if no hint + */ +SenaSDK.prototype.getHintCount = function () { + const hintValue = this.getHintValue(); + if (hintValue === null) { + return 0; + } + if (Array.isArray(hintValue)) { + return hintValue.length; + } + return 1; +}; + +/** + * Get hint value + * @param {number} index - Optional index for array hints (display type) + * @returns {*} Hint value (string, array element, or null if no hint) + */ +SenaSDK.prototype.getHintValue = function (index) { + if (this.data && this.data.hint && this.data.hint.value !== undefined) { + const hintValue = this.data.hint.value; + const hintType = this.getHintType(); + + // If hint type is display and value is array, return specific index + if (hintType === "display" && Array.isArray(hintValue)) { + if (index !== undefined && index >= 0 && index < hintValue.length) { + return hintValue[index]; + } + // If no index provided or invalid, return the whole array + return hintValue; + } + + // For audio or text type, return the value directly + return hintValue; + } + return null; +}; + +/** + * Start the quiz - resets index and shuffles options + */ +SenaSDK.prototype.start = function () { + let self = this; + + // Nแบฟu lร  matching game, forward sang tdv_sdk.start() + if (self.isMatchingGame) { + console.log("๐ŸŽฎ Sena SDK: Matching game - forwarding start() to tdv_sdk"); + if (window.tdv_sdk && typeof window.tdv_sdk.start === "function") { + window.tdv_sdk.start(); + } + return; + } + + // Quiz/Sort/Fill games + self.curIndex = 0; + if (self.shuffle && self.data && self.data.options) { + self.shuffleArray(self.data.options); + } + self.startTime = Date.now(); + // Additional logic for tracking can be added here if needed +}; + +/** + * ฤรกnh dแบฅu user ฤ‘รฃ tฦฐฦกng tรกc vแป›i game + * Gแปi hร m nร y tแปซ Construct khi user click/drag lแบงn ฤ‘แบงu + * Sau khi gแปi, postMessage muแป™n sแบฝ bแป‹ bแป qua + */ +SenaSDK.prototype.markUserInteraction = function () { + if (!this._gameStartedByUser) { + this._gameStartedByUser = true; + console.log( + "๐ŸŽฎ Sena SDK: User interaction detected - late postMessage will be ignored", + ); + + // Cลฉng ฤ‘รกnh dแบฅu cho tdv_sdk nแบฟu lร  matching game + if (this.isMatchingGame && window.tdv_sdk) { + window.tdv_sdk._gameStartedByUser = true; + } + } +}; + +/** + * Kiแปƒm tra xem cรณ thแปƒ reload data khรดng (user chฦฐa tฦฐฦกng tรกc) + */ +SenaSDK.prototype.canReloadData = function () { + return !this._gameStartedByUser; +}; + +/** + * End the game and check answer + * [UPDATE] Support Unordered Answers & Auto-cleanup empty strings + */ +SenaSDK.prototype.end = function (answer, callback) { + let self = this; + + // ========== MATCHING GAME: Forward to tdv_sdk ========== + if (self.isMatchingGame && window.tdv_sdk) { + console.log("๐ŸŽฎ Sena SDK: Matching game - forwarding end() to tdv_sdk"); + + // Lแบฅy kแบฟt quแบฃ tแปซ tdv_sdk + let isCorrect = window.tdv_sdk.isCorrect() === 1; + let duration = window.tdv_sdk.getTimeSpent(); + let correctCount = window.tdv_sdk.getCorrectCount(); + let totalPairs = window.tdv_sdk.pairCount; + + console.log(`Time spent in game: ${duration} seconds`); + console.log( + `Result: ${correctCount}/${totalPairs} correct - ${isCorrect ? "CORRECT" : "INCORRECT"}`, + ); + + if (callback) callback(isCorrect); + return { + isCorrect: isCorrect, + duration: duration, + correctCount: correctCount, + totalPairs: totalPairs, + }; + } + + // ========== QUIZ/SORT/FILL GAMES ========== + self.endTime = Date.now(); + const duration = (self.endTime - self.startTime) / 1000; + + // 1. CLEANUP INPUT: Tรกch chuแป—i, Xรณa khoแบฃng trแบฏng, Chuyแปƒn thฦฐแปng, LแปŒC BแปŽ Rแป–NG + // .filter(a => a) sแบฝ loแบกi bแป ngay cรกi ฤ‘uรดi "" do dแบฅu | thแปซa tแบกo ra + const userAnswers = answer.includes("|") + ? answer + .split("|") + .map((a) => a.trim().toLowerCase()) + .filter((a) => a) + : [answer.trim().toLowerCase()].filter((a) => a); + + // 2. GET CORRECT ANSWERS + let correctAnswers = []; + if (self.correctAnswer) { + if (Array.isArray(self.correctAnswer)) { + correctAnswers = self.correctAnswer.map((a) => + (typeof a === "object" ? a.text || "" : String(a)).trim().toLowerCase(), + ); + } else { + let str = + typeof self.correctAnswer === "object" + ? self.correctAnswer.text + : String(self.correctAnswer); + correctAnswers = str.includes("|") + ? str.split("|").map((a) => a.trim().toLowerCase()) + : [str.trim().toLowerCase()]; + } + } + + // 3. COMPARE + // Nแบฟu lร  Game Type 2 (Sort) thรฌ giแปฏ nguyรชn thแปฉ tแปฑ, nแบฟu khรดng thรฌ sort (unordered) + const isStrictOrder = self.gameType === 2; + const finalUser = isStrictOrder ? [...userAnswers] : [...userAnswers].sort(); + const finalCorrect = isStrictOrder + ? [...correctAnswers] + : [...correctAnswers].sort(); + + let isCorrect = false; + + // Helper check file name for URL matching + const getFileName = (url) => { + if (!url.startsWith("http")) return url; + try { + return url.split("/").pop().split("?")[0]; + } catch (e) { + return url; + } + }; + + if (finalUser.length === finalCorrect.length) { + isCorrect = finalUser.every((uVal, index) => { + let cVal = finalCorrect[index]; + if (uVal === cVal) return true; + // Fuzzy match cho URL (so sรกnh tรชn file แบฃnh) + if (uVal.startsWith("http") || cVal.startsWith("http")) { + return getFileName(uVal) === getFileName(cVal); + } + return false; + }); + } + + // ----------------------------------------------------------- + // [BฦฏแปšC 1] Kiแปƒm tra Time Limit TRฦฏแปšC (Sแปญa biแบฟn isCorrect) + // ----------------------------------------------------------- + if (self.timeLimit > 0 && duration > self.timeLimit) { + isCorrect = false; // CHแปˆ sแปญa biแบฟn boolean, KHร”NG gแปi result.isCorrect + console.log("๐ŸŽฎ Sena SDK: Time Limit Exceeded -> Result set to False"); + } + + // ----------------------------------------------------------- + // [BฦฏแปšC 2] Sau ฤ‘รณ mแป›i tแบกo biแบฟn result (Dรนng isCorrect ฤ‘รฃ chแป‘t) + // ----------------------------------------------------------- + const result = { + isCorrect: isCorrect, // Lรบc nร y isCorrect ฤ‘รฃ ฤ‘ฦฐแปฃc xแปญ lรฝ xong xuรดi + duration: duration, + correctAnswer: correctAnswers.join(" | "), + userAnswer: userAnswers.join(" | "), + }; + + // ----------------------------------------------------------- + // [BฦฏแปšC 3] Log vร  Return + // ----------------------------------------------------------- + console.log(`Time spent: ${duration}s`); + console.log( + `Result: ${isCorrect ? "CORRECT" : "INCORRECT"} (User: ${result.userAnswer} vs Correct: ${result.correctAnswer})`, + ); + + if (callback) callback(result.isCorrect); + return result; // Return full object for debug +}; + +SenaSDK.prototype.playVoice = function (type) { + let self = this; + // type: 'question', 'optionA', 'optionB', ... + // if type is options, get corresponding option text like option0 -> index 0 + let textToSpeak = ""; + if (type.startsWith("option")) { + const optionIndex = parseInt(type.slice(6)) - 1; + textToSpeak = self.getOptionsValue(optionIndex); + } else if (type === "question") { + textToSpeak = self.getQuestionValue(); + } else if (type === "request") { + textToSpeak = self.getRequestValue(); + } else if (type === "hint") { + const hintValue = self.getHintValue(); + if (typeof hintValue === "string") { + textToSpeak = hintValue; + } + } + if (textToSpeak == "") return; + if (window["audioPlayer"]) { + window["audioPlayer"].pause(); + window["audioPlayer"].src = textToSpeak; + window["audioPlayer"].play(); + } else { + window["audioPlayer"] = new Audio(textToSpeak); + window["audioPlayer"].play(); + } +}; + +SenaSDK.prototype.helper = {}; + +SenaSDK.prototype.helper.CalcObjectPositions = function ( + n, + objectWidth, + margin, + maxWidth, +) { + let self = this; + self.positions = []; + const totalWidth = n * objectWidth + (n - 1) * margin; + const startX = (maxWidth - totalWidth) / 2; + let positions = []; + for (let i = 0; i < n; i++) { + positions.push(startX + i * (objectWidth + margin)); + } + positions.map((pos) => pos + objectWidth / 2); // Adjusting to center the objects + self.positions = positions; +}; +SenaSDK.prototype.helper.getPosXbyIndex = function (index) { + let self = this; + if (index < 0 || index >= self.positions.length) { + return null; // Return null if index is out of bounds + } + return self.positions[index]; +}; + +/** + * ฤฤƒng kรฝ listener nhแบญn data qua postMessage + * Gแปi hร m nร y sau khi tแบกo instance SenaSDK + */ +SenaSDK.prototype.registerPostMessageListener = function () { + let self = this; + + window.addEventListener("message", function (event) { + if (!event.data || !event.data.type) return; + + switch (event.data.type) { + case "SERVER_PUSH_DATA": + console.log( + "๐Ÿ“ฅ Sena SDK: Received SERVER_PUSH_DATA", + event.data.jsonData, + ); + + // Hแปงy timeout fallback nแบฟu ฤ‘ang chแป + if (self._postMessageTimeout) { + clearTimeout(self._postMessageTimeout); + self._postMessageTimeout = null; + } + self._waitingForPostMessage = false; + + // ========== LATE ARRIVAL HANDLING ========== + // Nแบฟu ฤ‘รฃ load tแปซ server NHฦฏNG user chฦฐa tฦฐฦกng tรกc โ†’ cho phรฉp override + if (self._dataLoadedFromServer && !self._gameStartedByUser) { + console.log( + "๐Ÿ”„ Sena SDK: PostMessage arrived late but user hasn't started - RELOADING DATA", + ); + // Reset state trฦฐแป›c khi load mแป›i + self.postMessageDataLoaded = false; + self._dataLoadedFromServer = false; + } + + // Nแบฟu user ฤ‘รฃ tฦฐฦกng tรกc โ†’ bแป qua postMessage muแป™n + if (self._gameStartedByUser) { + console.log( + "โš ๏ธ Sena SDK: PostMessage arrived late but user already playing - IGNORED", + ); + return; + } + + // Load data tแปซ postMessage + self.loadFromPostMessage(event.data.jsonData); + + // Nแบฟu lร  matching game, cลฉng forward cho tdv_sdk listener + let gameCode = event.data.jsonData && event.data.jsonData.gameCode; + if (gameCode && gameCode.charAt(1) === "3" && window.tdv_sdk) { + // Hแปงy timeout cแปงa tdv_sdk nแบฟu cรณ + if (window.tdv_sdk._postMessageTimeout) { + clearTimeout(window.tdv_sdk._postMessageTimeout); + window.tdv_sdk._postMessageTimeout = null; + } + window.tdv_sdk._waitingForPostMessage = false; + + // Gแปi callback cแปงa tdv_sdk nแบฟu cรณ + if (window.tdv_sdk._loadCallback) { + window.tdv_sdk._loadCallback(true); + window.tdv_sdk._loadCallback = null; + } + } + + // Gแปi callback nแบฟu cรณ (tแปซ hร m load()) + if (self._loadCallback) { + self._loadCallback(true); + self._loadCallback = null; + } + break; + + case "SYNC_TIME": + if (event.data.end_time_iso) { + let endTimeDate = new Date(event.data.end_time_iso); + let now = new Date(); + self.timeLimit = Math.max(0, Math.floor((endTimeDate - now) / 1000)); + console.log( + "๐ŸŽฎ Sena SDK: Time synced, remaining:", + self.timeLimit, + "s", + ); + + // Sync cho tdv_sdk nแบฟu cรณ + if (window.tdv_sdk) { + window.tdv_sdk.timeLimit = self.timeLimit; + window.tdv_sdk.endTime = endTimeDate; + } + } + break; + + // ========== NEW MESSAGE TYPES (theo README protocol) ========== + + case "SDK_DATA_READY": + // Server gแปญi sanitized data cho game render (LIVE mode) + console.log("๐Ÿ“ฅ Sena SDK: Received SDK_DATA_READY", event.data.payload); + self._handleSdkDataReady(event.data.payload); + break; + + case "SDK_PUSH_DATA": + // Preview mode: Game push data ฤ‘แปƒ SDK sanitize + console.log("๐Ÿ“ฅ Sena SDK: Received SDK_PUSH_DATA", event.data.payload); + if (event.data.payload && event.data.payload.items) { + // Convert items to our format vร  load + self._handleSdkPushData(event.data.payload.items); + } + break; + + case "SDK_ANSWER_RESULT": + // Server trแบฃ vแป kแบฟt quแบฃ verify answer + console.log( + "๐Ÿ“ฅ Sena SDK: Received SDK_ANSWER_RESULT", + event.data.payload, + ); + self._lastAnswerResult = event.data.payload; + // Trigger callback nแบฟu cรณ + if (self._answerResultCallback) { + self._answerResultCallback(event.data.payload); + self._answerResultCallback = null; + } + break; + + case "SEQUENCE_SYNC": + console.log("๐Ÿ“ฅ Sena SDK: Received SEQUENCE_SYNC", event.data); + if (event.data.uuid === self.uuid) { + console.log("๐Ÿ”„ Sena SDK: Own message echoed back, processing..."); + } + + if (typeof self.onCustomMessage === "function") { + self.onCustomMessage(event.data.data, event.data.uuid); + } + break; + + case "SDK_ERROR": + // Server gแปญi error + console.error("โŒ Sena SDK: Received SDK_ERROR", event.data.payload); + break; + } + }); + + console.log("๐ŸŽฎ Sena SDK: PostMessage listener registered"); + console.log( + " Supported types: SERVER_PUSH_DATA, SDK_DATA_READY, SDK_PUSH_DATA, SYNC_TIME", + ); + + // ฤฤƒng kรฝ tdv_sdk listener nแบฟu cรณ (khรดng cแบงn gแปi registerPostMessageListener riรชng) + if (window.tdv_sdk && !window.tdv_sdk._postMessageListenerRegistered) { + window.tdv_sdk._postMessageListenerRegistered = true; + console.log("๐ŸŽฎ Sena SDK: tdv_sdk will receive forwarded data"); + } +}; + +/** + * Handle SDK_DATA_READY message (LIVE mode - server gแปญi sanitized data) + */ +SenaSDK.prototype._handleSdkDataReady = function (payload) { + let self = this; + + if (!payload || !payload.items) { + console.error("๐ŸŽฎ Sena SDK: SDK_DATA_READY missing items"); + return; + } + + // Hแปงy timeout nแบฟu cรณ + if (self._postMessageTimeout) { + clearTimeout(self._postMessageTimeout); + self._postMessageTimeout = null; + } + self._waitingForPostMessage = false; + + // Convert SDK format to SenaSDK format + let items = payload.items; + + if (items.length === 1) { + // Single question + let item = items[0]; + self.data = { + question: item.question || "", + request: item.question || "", + options: item.options + ? item.options.map((o) => o.text || o.audio || o) + : [], + }; + self.gameID = item.id; + } else { + // Multi-question + self.list = items.map((item, idx) => ({ + id: item.id || idx, + question: item.question || "", + request: item.question || "", + options: item.options + ? item.options.map((o) => o.text || o.audio || o) + : [], + answer: null, // Server keeps answer + })); + self.totalQuestions = items.length; + self.level = payload.completed_count || 0; + self._loadCurrentQuestionToData(); + } + + self.postMessageDataLoaded = true; + console.log("โœ… Sena SDK: SDK_DATA_READY processed -", items.length, "items"); + + // Gแปi callback + if (self._loadCallback) { + self._loadCallback(true); + self._loadCallback = null; + } +}; + +/** + * Handle SDK_PUSH_DATA message (PREVIEW mode - game push data vแป›i answer) + */ +SenaSDK.prototype._handleSdkPushData = function (items) { + let self = this; + + if (!items || items.length === 0) { + console.error("๐ŸŽฎ Sena SDK: SDK_PUSH_DATA missing items"); + return; + } + + // Hแปงy timeout nแบฟu cรณ + if (self._postMessageTimeout) { + clearTimeout(self._postMessageTimeout); + self._postMessageTimeout = null; + } + self._waitingForPostMessage = false; + + if (items.length === 1) { + // Single question + let item = items[0]; + self.data = { + question: item.question || "", + request: item.question || "", + options: item.options + ? item.options.map((o) => o.text || o.audio || o) + : [], + }; + self.correctAnswer = item.answer; + self.gameID = item.id; + } else { + // Multi-question vแป›i answer + self.list = items.map((item, idx) => ({ + id: item.id || idx, + question: item.question || "", + request: item.question || "", + options: item.options + ? item.options.map((o) => o.text || o.audio || o) + : [], + answer: item.answer, + })); + self.totalQuestions = items.length; + self.level = 0; + self._loadCurrentQuestionToData(); + } + + self.postMessageDataLoaded = true; + console.log("โœ… Sena SDK: SDK_PUSH_DATA processed -", items.length, "items"); + + // Gแปi callback + if (self._loadCallback) { + self._loadCallback(true); + self._loadCallback = null; + } +}; + +/** + * Gแปญi SDK_CHECK_ANSWER cho server verify (LIVE mode) + */ +SenaSDK.prototype.checkAnswerViaServer = function ( + questionId, + choice, + callback, +) { + let self = this; + + self._answerResultCallback = callback; + + window.parent.postMessage( + { + type: "SDK_CHECK_ANSWER", + payload: { + question_id: questionId, + choice: choice, + time_spent: self.getTimeSpent ? self.getTimeSpent() * 1000 : 0, + }, + }, + "*", + ); + + console.log("๐Ÿ“ค Sena SDK: Sent SDK_CHECK_ANSWER for", questionId); +}; + +/** + * Get time spent in seconds + */ +SenaSDK.prototype.getTimeSpent = function () { + if (!this.startTime) return 0; + return Math.floor((Date.now() - this.startTime) / 1000); +}; + +/** + * Submit ฤ‘รกp รกn cho multi-question mode + * @param {string} selectedText - ฤรกp รกn ngฦฐแปi dรนng chแปn + * @param {boolean} isTimeout - True nแบฟu hแบฟt giแป + * @returns {Object} Result object {isCorrect, result} + */ +SenaSDK.prototype.play = function (selectedText, isTimeout) { + let self = this; + + // Nแบฟu khรดng cรณ list (single question mode), dรนng end() + if (!self.currentQuestion && self.data) { + let result = { isCorrect: false, result: 0 }; + self.end(selectedText, function (isCorrect) { + result.isCorrect = isCorrect; + result.result = isCorrect ? 1 : 0; + }); + return result.result; + } + + if (!self.currentQuestion) return 0; + + let isActuallyTimeout = isTimeout === true || String(isTimeout) === "true"; + + // Kiแปƒm tra ฤ‘รฃ trแบฃ lแปi cรขu nร y chฦฐa + let alreadyAnswered = self.userResults.find( + (r) => r.id === self.currentQuestion.id, + ); + if (alreadyAnswered) { + return alreadyAnswered.result; + } + + let isCorrect = false; + let userChoice = null; + + if (isActuallyTimeout) { + isCorrect = false; + userChoice = null; + } else { + userChoice = String(selectedText).trim(); + let correctAnswer = String(self.currentQuestion.answer).trim(); + isCorrect = userChoice.toLowerCase() === correctAnswer.toLowerCase(); + } + + let resultValue = isCorrect ? 1 : 0; + + let report = { + question_id: self.currentQuestion.id, + result: resultValue, + choice: userChoice, + is_timeout: isActuallyTimeout, + }; + + self.userResults.push({ id: report.question_id, result: report.result }); + + console.log("๐ŸŽฎ Sena SDK: Answer Report:", report); + + // Gแปญi kแบฟt quแบฃ cho parent window + window.parent.postMessage({ type: "ANSWER_REPORT", data: report }, "*"); + + return resultValue; +}; + +/** + * Kแบฟt thรบc bร i thi vร  gแปญi kแบฟt quแบฃ (multi-question mode) + */ +SenaSDK.prototype.submitResults = function () { + let self = this; + + // Loแบกi bแป duplicate results + let uniqueResults = []; + let seenIds = {}; + for (let i = self.userResults.length - 1; i >= 0; i--) { + if (!seenIds[self.userResults[i].id]) { + uniqueResults.unshift(self.userResults[i]); + seenIds[self.userResults[i].id] = true; + } + } + + let correctCount = uniqueResults.filter((r) => r.result === 1).length; + let totalScore = + self.totalQuestions > 0 + ? Math.round((correctCount / self.totalQuestions) * 100) / 10 + : 0; + let timeSpent = Math.floor((Date.now() - self.startTime) / 1000); + + let finalData = { + game_id: self.gameID, + user_id: self.userId, + score: totalScore, + time_spent: timeSpent, + correct_count: correctCount, + total_questions: self.totalQuestions, + details: uniqueResults, + }; + + console.log( + "๐ŸŽฎ Sena SDK: Final Result - Score:", + totalScore, + "Time Spent:", + timeSpent, + "s", + ); + + // Gแปญi kแบฟt quแบฃ cho parent window + window.parent.postMessage({ type: "FINAL_RESULT", data: finalData }, "*"); + + return finalData; +}; + +// Export for different module systems +if (typeof module !== "undefined" && module.exports) { + module.exports = SenaSDK; +} else if (typeof define === "function" && define.amd) { + define([], function () { + return SenaSDK; + }); +} else { + window.SenaSDK = SenaSDK; +} +/** + * [NEW] Get Target Name for G9 (Memory Shuffle) + * Lแบฅy tรชn ฤ‘รกp รกn ฤ‘รบng (Vรญ dแปฅ: "cat") + */ +SenaSDK.prototype.getTargetName = function () { + // Vแป›i G9, correctAnswer sแบฝ lฦฐu target name + if (this.correctAnswer) { + // Nแบฟu correctAnswer lร  object (trฦฐแปng hแปฃp hiแบฟm), lแบฅy text + if (typeof this.correctAnswer === "object" && this.correctAnswer.text) { + return this.correctAnswer.text; + } + return String(this.correctAnswer); + } + return ""; +}; +/** + * [NEW] Helpers for Card Object (G9) + */ +SenaSDK.prototype.getCardName = function (index) { + if (this.data && this.data.options && this.data.options[index]) { + let opt = this.data.options[index]; + return opt.name || opt.text || ""; + } + return ""; +}; +SenaSDK.prototype.getCardImage = function (index) { + if (this.data && this.data.options && this.data.options[index]) { + let opt = this.data.options[index]; + return opt.image || ""; + } + return ""; +}; +SenaSDK.prototype.getCardAudio = function (index) { + if (this.data && this.data.options && this.data.options[index]) { + let opt = this.data.options[index]; + return opt.audio || ""; + } + return ""; +}; + +/** + * [UPDATE G5] Load data cho level cแปฅ thแปƒ (Phรขn trang tแปฑ nhiรชn) + * Logic mแป›i: Lแบฅy vแปซa ฤ‘แปง sแป‘ lฦฐแปฃng cรฒn lแบกi, khรดng lแบทp lแบกi (wrap-around) data cลฉ. + */ +SenaSDK.prototype.loadLevelG5 = function (levelIndex) { + let self = this; + if (self.gameType !== 5 || !self.masterList) return false; + + self.currentLevel = levelIndex; + let count = self.itemCount; // Sแป‘ card tแป‘i ฤ‘a mแป—i trang (VD: 6) + + window.Sena_TotalLevels = Math.ceil(self.masterList.length / count); + + let startIndex = (levelIndex - 1) * count; + + // --- LOGIC MแปšI: CแบฎT DATA (SLICING) --- + // Tรญnh ฤ‘iแปƒm kแบฟt thรบc: Nแบฟu vฦฐแปฃt quรก ฤ‘แป™ dร i list thรฌ lแบฅy ฤ‘แป™ dร i list (khรดng wrap) + let endIndex = Math.min(startIndex + count, self.masterList.length); + + // Cแบฏt danh sรกch card cho level hiแป‡n tแบกi + let levelOptions = self.masterList.slice(startIndex, endIndex); + + // Gรกn vร o data.options ฤ‘แปƒ C2 render + self.data.options = levelOptions; + + console.log( + `๐ŸŽฎ Sena SDK: Loaded Level ${levelIndex} (G5) with ${levelOptions.length} cards`, + ); + return true; +}; + +/** + * [NEW G5] Lแบฅy thรดng tin Level + */ +SenaSDK.prototype.getTotalLevels = function () { + return this.totalLevels || 1; +}; + +SenaSDK.prototype.getTimePerCard = function () { + if (this.timePerCard === undefined) { + this._parseGameCode(); + } + + if (this.timePerCard && this.timePerCard > 0) { + return this.timePerCard; + } + + return 5; +}; + +SenaSDK.prototype.getCardType = function (index) { + // ฦฏu tiรชn 1: Lแบฅy tแปซ data.options (G4, G1, G2 ฤ‘ang chแบกy trรชn grid hiแป‡n tแบกi) + if (this.data && this.data.options && this.data.options[index]) { + return this.data.options[index].type || "text"; + } + + // ฦฏu tiรชn 2: Fallback cho G5 (Master List) + if (this.masterList && this.masterList[index]) { + return this.masterList[index].type || "text"; + } + + // Mแบทc ฤ‘แป‹nh + return "text"; +}; + +// [UPDATE G4] Xแปญ lรฝ data ฤ‘แบทc thรน cho Memory Card: Fill blank vร  Xแปญ lรฝ thแบป lแบป (Orphan) +SenaSDK.prototype._processG4Data = function () { + let self = this; + if (!self.data.options) self.data.options = []; + + // BฦฏแปšC 1: Xแปญ lรฝ thแบป lแบป (Sanitize Data) ngay tแบกi nguแป“n + // ฤแบฟm sแป‘ lฦฐแปฃng xuแบฅt hiแป‡n cแปงa tแปซng cแบทp tรชn + let counts = {}; + self.data.options.forEach((item) => { + if (item.type !== "blank" && item.name) { + counts[item.name] = (counts[item.name] || 0) + 1; + } + }); + + // Duyแป‡t lแบกi vร  biแบฟn nhแปฏng thแบป cรณ sแป‘ lฦฐแปฃng < 2 thร nh blank + self.data.options.forEach((item) => { + if (item.type !== "blank" && item.name) { + if (counts[item.name] < 2) { + console.log("๐ŸŽฎ Sena SDK: Orphan card detected & removed:", item.name); + item.type = "blank"; + item.name = "blank"; // Xรณa tรชn ฤ‘แปƒ trรกnh logic game bแบฏt nhแบงm + item.image = ""; // Xรณa แบฃnh + item.id = "blank_sanitized"; + } + } + }); + + // BฦฏแปšC 2: Fill thรชm thแบป blank cho ฤ‘แปง 9 รด (Logic cลฉ) + while (self.data.options.length < 9) { + self.data.options.push({ + id: "blank_" + self.data.options.length, + type: "blank", + name: "blank", + value: -1, + image: "", + }); + } + + // BฦฏแปšC 3: Shuffle (Trแป™n bร i) + if (self.shuffle) { + self.shuffleArray(self.data.options); + } +}; + +// [UPDATE G4] Hร m lแบฅy ID +SenaSDK.prototype.getCardID = function (index) { + if (this.data && this.data.options && this.data.options[index]) { + return this.data.options[index].id || ""; + } + return ""; +}; + +// [UPDATE G4] Hร m Check Pair (Logic tแบกm thแปi แปŸ Client cho Mock) +SenaSDK.prototype.checkPair = function (idx1, idx2, callback) { + let self = this; + + // Validate index + let card1 = self.data.options[idx1]; + let card2 = self.data.options[idx2]; + + if (!card1 || !card2) { + if (callback) callback(false); + return; + } + + // Logic so sรกnh: Name giแป‘ng nhau Vร€ ID khรกc nhau (trรกnh click 2 lแบงn 1 thแบป) Vร€ khรดng phแบฃi blank + let isMatch = false; + + if (card1.type !== "blank" && card2.type !== "blank") { + if (card1.id !== card2.id) { + // Check ko phแบฃi chรญnh nรณ + // So sรกnh name (vรญ dแปฅ: "dog" == "dog") + if ( + card1.name && + card2.name && + card1.name.toLowerCase() === card2.name.toLowerCase() + ) { + isMatch = true; + } + } + } + + console.log( + `๐ŸŽฎ Sena SDK: Check Pair [${idx1}] vs [${idx2}] -> ${isMatch ? "MATCH" : "WRONG"}`, + ); + + // [TODO] Sau nร y sแบฝ thay ฤ‘oแบกn nร y bแบฑng postMessage lรชn Server verify + if (callback) callback(isMatch); +}; + +/** + * [NEW v2.2] Gแปญi Custom Data lรชn Parent Window + * @param {Object} data - Object chแปฉa 5 trฦฐแปng data1 -> data5 + */ +SenaSDK.prototype.sendMessageToParent = function (data) { + let self = this; + + // Tแปฑ ฤ‘แป™ng tแบกo UUID cho session nแบฟu chฦฐa cรณ + if (!self.uuid) { + self.uuid = + "session-" + Date.now() + "-" + Math.floor(Math.random() * 10000); + } + + // ฤรณng gรณi payload ฤ‘รบng chuแบฉn tร i liแป‡u v2.2 + let payload = { + type: "SEQUENCE_SYNC", + uuid: self.uuid, + data: data, + timestamp: Date.now(), + }; + + console.log("๐Ÿ“ค Sena SDK: Sending SEQUENCE_SYNC to parent:", payload); + + // Gแปญi lรชn Parent Window (Backend/Iframe parent) + window.parent.postMessage(payload, "*"); +}; + +if (typeof module !== "undefined" && module.exports) { + module.exports = SenaSDK; +} else if (typeof define === "function" && define.amd) { + define([], function () { + return SenaSDK; + }); +} else { + window.SenaSDK = SenaSDK; +} diff --git a/SQ_Word_Hint-Audio-Teacher/sw.js b/SQ_Word_Hint-Audio-Teacher/sw.js new file mode 100644 index 0000000..32ced4d --- /dev/null +++ b/SQ_Word_Hint-Audio-Teacher/sw.js @@ -0,0 +1,403 @@ +"use strict"; + +const OFFLINE_DATA_FILE = "offline.js"; +const CACHE_NAME_PREFIX = "c2offline"; +const BROADCASTCHANNEL_NAME = "offline"; +const CONSOLE_PREFIX = "[SW] "; +const LAZYLOAD_KEYNAME = ""; + +// Create a BroadcastChannel if supported. +const broadcastChannel = (typeof BroadcastChannel === "undefined" ? null : new BroadcastChannel(BROADCASTCHANNEL_NAME)); + +////////////////////////////////////// +// Utility methods +function PostBroadcastMessage(o) +{ + if (!broadcastChannel) + return; // not supported + + // Impose artificial (and arbitrary!) delay of 3 seconds to make sure client is listening by the time the message is sent. + // Note we could remove the delay on some messages, but then we create a race condition where sometimes messages can arrive + // in the wrong order (e.g. "update ready" arrives before "started downloading update"). So to keep the consistent ordering, + // delay all messages by the same amount. + setTimeout(() => broadcastChannel.postMessage(o), 3000); +}; + +function Broadcast(type) +{ + PostBroadcastMessage({ + "type": type + }); +}; + +function BroadcastDownloadingUpdate(version) +{ + PostBroadcastMessage({ + "type": "downloading-update", + "version": version + }); +} + +function BroadcastUpdateReady(version) +{ + PostBroadcastMessage({ + "type": "update-ready", + "version": version + }); +} + +function IsUrlInLazyLoadList(url, lazyLoadList) +{ + if (!lazyLoadList) + return false; // presumably lazy load list failed to load + + try { + for (const lazyLoadRegex of lazyLoadList) + { + if (new RegExp(lazyLoadRegex).test(url)) + return true; + } + } + catch (err) + { + console.error(CONSOLE_PREFIX + "Error matching in lazy-load list: ", err); + } + + return false; +}; + +function WriteLazyLoadListToStorage(lazyLoadList) +{ + if (typeof localforage === "undefined") + return Promise.resolve(); // bypass if localforage not imported + else + return localforage.setItem(LAZYLOAD_KEYNAME, lazyLoadList) +}; + +function ReadLazyLoadListFromStorage() +{ + if (typeof localforage === "undefined") + return Promise.resolve([]); // bypass if localforage not imported + else + return localforage.getItem(LAZYLOAD_KEYNAME); +}; + +function GetCacheBaseName() +{ + // Include the scope to avoid name collisions with any other SWs on the same origin. + // e.g. "c2offline-https://example.com/foo/" (won't collide with anything under bar/) + return CACHE_NAME_PREFIX + "-" + self.registration.scope; +}; + +function GetCacheVersionName(version) +{ + // Append the version number to the cache name. + // e.g. "c2offline-https://example.com/foo/-v2" + return GetCacheBaseName() + "-v" + version; +}; + +// Return caches.keys() filtered down to just caches we're interested in (with the right base name). +// This filters out caches from unrelated scopes. +async function GetAvailableCacheNames() +{ + const cacheNames = await caches.keys(); + const cacheBaseName = GetCacheBaseName(); + return cacheNames.filter(n => n.startsWith(cacheBaseName)); +}; + +// Identify if an update is pending, which is the case when we have 2 or more available caches. +// One must be an update that is waiting, since the next navigate that does an upgrade will +// delete all the old caches leaving just one currently-in-use cache. +async function IsUpdatePending() +{ + const availableCacheNames = await GetAvailableCacheNames(); + return (availableCacheNames.length >= 2); +}; + +// Automatically deduce the main page URL (e.g. index.html or main.aspx) from the available browser windows. +// This prevents having to hard-code an index page in the file list, implicitly caching it like AppCache did. +async function GetMainPageUrl() +{ + const allClients = await clients.matchAll({ + includeUncontrolled: true, + type: "window" + }); + + for (const c of allClients) + { + // Parse off the scope from the full client URL, e.g. https://example.com/index.html -> index.html + let url = c.url; + if (url.startsWith(self.registration.scope)) + url = url.substring(self.registration.scope.length); + + if (url && url !== "/") // ./ is also implicitly cached so don't bother returning that + { + // If the URL is solely a search string, prefix it with / to ensure it caches correctly. + // e.g. https://example.com/?foo=bar needs to cache as /?foo=bar, not just ?foo=bar. + if (url.startsWith("?")) + url = "/" + url; + + return url; + } + } + + return ""; // no main page URL could be identified +}; + +// Hack to fetch optionally bypassing HTTP cache until fetch cache options are supported in Chrome (crbug.com/453190) +function fetchWithBypass(request, bypassCache) +{ + if (typeof request === "string") + request = new Request(request); + + if (bypassCache) + { + // bypass enabled: add a random search parameter to avoid getting a stale HTTP cache result + const url = new URL(request.url); + url.search += Math.floor(Math.random() * 1000000); + + return fetch(url, { + headers: request.headers, + mode: request.mode, + credentials: request.credentials, + redirect: request.redirect, + cache: "no-store" + }); + } + else + { + // bypass disabled: perform normal fetch which is allowed to return from HTTP cache + return fetch(request); + } +}; + +// Effectively a cache.addAll() that only creates the cache on all requests being successful (as a weak attempt at making it atomic) +// and can optionally cache-bypass with fetchWithBypass in every request +async function CreateCacheFromFileList(cacheName, fileList, bypassCache) +{ + // Kick off all requests and wait for them all to complete + const responses = await Promise.all(fileList.map(url => fetchWithBypass(url, bypassCache))); + + // Check if any request failed. If so don't move on to opening the cache. + // This makes sure we only open a cache if all requests succeeded. + let allOk = true; + + for (const response of responses) + { + if (!response.ok) + { + allOk = false; + console.error(CONSOLE_PREFIX + "Error fetching '" + response.url + "' (" + response.status + " " + response.statusText + ")"); + } + } + + if (!allOk) + throw new Error("not all resources were fetched successfully"); + + // Can now assume all responses are OK. Open a cache and write all responses there. + // TODO: ideally we can do this transactionally to ensure a complete cache is written as one atomic operation. + // This needs either new transactional features in the spec, or at the very least a way to rename a cache + // (so we can write to a temporary name that won't be returned by GetAvailableCacheNames() and then rename it when ready). + const cache = await caches.open(cacheName); + + try { + return await Promise.all(responses.map( + (response, i) => cache.put(fileList[i], response) + )); + } + catch (err) + { + // Not sure why cache.put() would fail (maybe if storage quota exceeded?) but in case it does, + // clean up the cache to try to avoid leaving behind an incomplete cache. + console.error(CONSOLE_PREFIX + "Error writing cache entries: ", err); + caches.delete(cacheName); + throw err; + } +}; + +async function UpdateCheck(isFirst) +{ + try { + // Always bypass cache when requesting offline.js to make sure we find out about new versions. + const response = await fetchWithBypass(OFFLINE_DATA_FILE, true); + + if (!response.ok) + throw new Error(OFFLINE_DATA_FILE + " responded with " + response.status + " " + response.statusText); + + const data = await response.json(); + + const version = data.version; + const fileList = data.fileList; + const lazyLoadList = data.lazyLoad; + const currentCacheName = GetCacheVersionName(version); + + const cacheExists = await caches.has(currentCacheName); + + // Don't recache if there is already a cache that exists for this version. Assume it is complete. + if (cacheExists) + { + // Log whether we are up-to-date or pending an update. + const isUpdatePending = await IsUpdatePending(); + if (isUpdatePending) + { + console.log(CONSOLE_PREFIX + "Update pending"); + Broadcast("update-pending"); + } + else + { + console.log(CONSOLE_PREFIX + "Up to date"); + Broadcast("up-to-date"); + } + return; + } + + // Implicitly add the main page URL to the file list, e.g. "index.html", so we don't have to assume a specific name. + const mainPageUrl = await GetMainPageUrl(); + + // Prepend the main page URL to the file list if we found one and it is not already in the list. + // Also make sure we request the base / which should serve the main page. + fileList.unshift("./"); + + if (mainPageUrl && fileList.indexOf(mainPageUrl) === -1) + fileList.unshift(mainPageUrl); + + console.log(CONSOLE_PREFIX + "Caching " + fileList.length + " files for offline use"); + + if (isFirst) + Broadcast("downloading"); + else + BroadcastDownloadingUpdate(version); + + // Note we don't bypass the cache on the first update check. This is because SW installation and the following + // update check caching will race with the normal page load requests. For any normal loading fetches that have already + // completed or are in-flight, it is pointless and wasteful to cache-bust the request for offline caching, since that + // forces a second network request to be issued when a response from the browser HTTP cache would be fine. + if (lazyLoadList) + await WriteLazyLoadListToStorage(lazyLoadList); // dump lazy load list to local storage# + + await CreateCacheFromFileList(currentCacheName, fileList, !isFirst); + const isUpdatePending = await IsUpdatePending(); + + if (isUpdatePending) + { + console.log(CONSOLE_PREFIX + "All resources saved, update ready"); + BroadcastUpdateReady(version); + } + else + { + console.log(CONSOLE_PREFIX + "All resources saved, offline support ready"); + Broadcast("offline-ready"); + } + } + catch (err) + { + // Update check fetches fail when we're offline, but in case there's any other kind of problem with it, log a warning. + console.warn(CONSOLE_PREFIX + "Update check failed: ", err); + } +}; + +self.addEventListener("install", event => +{ + // On install kick off an update check to cache files on first use. + // If it fails we can still complete the install event and leave the SW running, we'll just + // retry on the next navigate. + event.waitUntil( + UpdateCheck(true) // first update + .catch(() => null) + ); +}); + +async function GetCacheNameToUse(availableCacheNames, doUpdateCheck) +{ + // Prefer the oldest cache available. This avoids mixed-version responses by ensuring that if a new cache + // is created and filled due to an update check while the page is running, we keep returning resources + // from the original (oldest) cache only. + if (availableCacheNames.length === 1 || !doUpdateCheck) + return availableCacheNames[0]; + + // We are making a navigate request with more than one cache available. Check if we can expire any old ones. + const allClients = await clients.matchAll(); + + // If there are other clients open, don't expire anything yet. We don't want to delete any caches they + // might be using, which could cause mixed-version responses. + if (allClients.length > 1) + return availableCacheNames[0]; + + // Identify newest cache to use. Delete all the others. + const latestCacheName = availableCacheNames[availableCacheNames.length - 1]; + console.log(CONSOLE_PREFIX + "Updating to new version"); + + await Promise.all( + availableCacheNames.slice(0, -1) + .map(c => caches.delete(c)) + ); + + return latestCacheName; +}; + +async function HandleFetch(event, doUpdateCheck) +{ + const availableCacheNames = await GetAvailableCacheNames(); + + // No caches available: go to network + if (!availableCacheNames.length) + return fetch(event.request); + + const useCacheName = await GetCacheNameToUse(availableCacheNames, doUpdateCheck); + const cache = await caches.open(useCacheName); + const cachedResponse = await cache.match(event.request); + + if (cachedResponse) + return cachedResponse; // use cached response + + // We need to check if this request is to be lazy-cached. Send the request and load the lazy-load list + // from storage simultaneously. + const result = await Promise.all([fetch(event.request), ReadLazyLoadListFromStorage()]); + const fetchResponse = result[0]; + const lazyLoadList = result[1]; + + if (IsUrlInLazyLoadList(event.request.url, lazyLoadList)) + { + // Handle failure writing to the cache. This can happen if the storage quota is exceeded, which is particularly + // likely in Safari 11.1, which appears to have very tight storage limits. Make sure even in the event of an error + // we continue to return the response from the fetch. + try { + // Note clone response since we also respond with it + await cache.put(event.request, fetchResponse.clone()); + } + catch (err) + { + console.warn(CONSOLE_PREFIX + "Error caching '" + event.request.url + "': ", err); + } + } + + return fetchResponse; +}; + +self.addEventListener("fetch", event => +{ + /** NOTE (iain) + * This check is to prevent a bug with XMLHttpRequest where if its + * proxied with "FetchEvent.prototype.respondWith" no upload progress + * events are triggered. By returning we allow the default action to + * occur instead. Currently all cross-origin requests fall back to default. + */ + if (new URL(event.request.url).origin !== location.origin) + return; + + // Check for an update on navigate requests + const doUpdateCheck = (event.request.mode === "navigate"); + + const responsePromise = HandleFetch(event, doUpdateCheck); + + if (doUpdateCheck) + { + // allow the main request to complete, then check for updates + event.waitUntil( + responsePromise + .then(() => UpdateCheck(false)) // not first check + ); + } + + event.respondWith(responsePromise); +}); \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..ba94d8a --- /dev/null +++ b/readme.md @@ -0,0 +1,4 @@ +Sequence Word HintAudio - Teacher +Mรด tแบฃ cแปงa trรฒ chฦกi +Sequence + diff --git a/source/SQ_Word_Hint-Audio-Teacher.capx b/source/SQ_Word_Hint-Audio-Teacher.capx new file mode 100644 index 0000000000000000000000000000000000000000..42d3753130a86b78c0e0f8c00281773a3d96550c GIT binary patch literal 659143 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

Z)cNwmUuK?GCijXraJm-E}OORV*D_!RYWqz;LBr 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

x~%sJ){Q=>6#H*ydLms07*HR@1n={KR|OR;F= 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%0A~2DOFhL#zalO7r9vy4z4n#U0-I5UmkL^Oh@yeta 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�- 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 literal 0 HcmV?d00001

&~r*XV{KPw!;y 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 literal 0 HcmV?d00001 diff --git a/SQ_Word_Hint-Audio-Teacher/media/alert-234711.ogg b/SQ_Word_Hint-Audio-Teacher/media/alert-234711.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c170daf0eb19110587f58602a04bb246ade5b5cc GIT binary patch literal 23907 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