summaryrefslogtreecommitdiff
path: root/www/js/api.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js/api.js')
-rw-r--r--www/js/api.js93
1 files changed, 40 insertions, 53 deletions
diff --git a/www/js/api.js b/www/js/api.js
index 44923ac..da45467 100644
--- a/www/js/api.js
+++ b/www/js/api.js
@@ -79,6 +79,10 @@ window.html5ks.api = {
video = html5ks.elements.video,
src = "dump/video/" + vid_src + ".";
+ this.stop("all");
+ this.speed("auto", false);
+ this.speed("skip", false);
+
if (Modernizr.video.webm) {
video.src = src + "webm";
} else if (Modernizr.video.ogg) {
@@ -87,8 +91,6 @@ window.html5ks.api = {
video.src = src + "mp4";
}
- this.stop("all");
-
video.load();
video.style.display = "block";
video.volume = html5ks.persistent.musicVolume;
@@ -149,10 +151,8 @@ window.html5ks.api = {
if (this[cmd]) {
return this[cmd].apply(this, args);
} else if (inst.length === 1) {
- console.log("hopefully this is dialogue");
return this.character("name_only", cmd);
} else if (/^[A-Z]/.test(cmd)) {
- console.log("cmd starts with caps, probably character");
return this.character(cmd, args[0]);
} else {
console.error("no such cmd " + cmd);
@@ -305,33 +305,17 @@ window.html5ks.api = {
return str;
},
- nvlsay: function (text) {
- var deferred = when.defer();
- html5ks.elements.nvlsay.innerHTML += "<span class='nvl-block'>" + text + "</span>";
- html5ks.elements.nvlctc.style.display = "block";
- html5ks.next = function () {
- html5ks.elements.nvlctc.style.display = "none";
- deferred.resolve();
- html5ks.next = function () {};
- };
- return deferred.promise;
- },
-
- character: function (name, str, extend, noc) {
+ character: function (charName, str, extend) {
var deferred = when.defer(),
text = this.tag(str),
- char = html5ks.data.characters[name],
- w = /{w(=\d*\.\d*)?}/.exec(str);
+ char = typeof charName === "string" ? html5ks.data.characters[charName] : charName,
+ w = /{w=?(\d*\.\d*)?}(.*)/.exec(str);
if (!char) {
- if (name) {
- char = {
- name: name,
- };
- } else {
- char = this._lastchar;
- }
+ char = {
+ name: name
+ };
}
if (typeof char.what_prefix === "undefined") {
char.what_prefix = "“";
@@ -348,9 +332,14 @@ window.html5ks.api = {
}
if (char.kind === "nvl") {
- this.nvlsay(text).then(function () {
+ var deferred = when.defer();
+ html5ks.elements.nvlsay.innerHTML += "<span class='nvl-block'>" + text + "</span>";
+ html5ks.elements.nvlctc.style.display = "block";
+ html5ks.next = function () {
+ html5ks.elements.nvlctc.style.display = "none";
deferred.resolve();
- });
+ html5ks.next = function () {};
+ };
return deferred.promise;
}
var who = html5ks.elements.who;
@@ -369,37 +358,35 @@ window.html5ks.api = {
html5ks.elements.say.innerHTML = text;
}
- if (!noc) {
- if (w) {
- html5ks.next = function () {
- html5ks.next = function () {};
- html5ks.api.extend(str.substring(w.index + w[0].length)).then(function () {
- deferred.resolve();
- });
- };
- if (w[1]) {
- setTimeout(html5ks.next, parseFloat(w[1].substring(1), 10) * 1000);
- return deferred.promise;
- }
- } else {
- html5ks.next = function () {
- html5ks.elements.ctc.style.display = "none";
- deferred.resolve(text);
- html5ks.next = function () {};
- };
- }
- html5ks.elements.ctc.style.display = "block";
- if (html5ks.state.skip || str.indexOf("{nw}") > -1) {
- html5ks.next();
- } else if (html5ks.state.auto) {
- setTimeout(html5ks.next, 1000 + html5ks.persistent.autoModeDelay * text.length);
+ if (w) {
+ html5ks.next = function () {
+ html5ks.next = function () {};
+ html5ks.api.extend(w[2]).then(function () {
+ deferred.resolve();
+ });
+ };
+ if (w[1]) {
+ setTimeout(html5ks.next, parseFloat(w[1], 10) * 1000);
+ return deferred.promise;
}
+ } else {
+ html5ks.next = function () {
+ html5ks.elements.ctc.style.display = "none";
+ deferred.resolve(text);
+ html5ks.next = function () {};
+ };
+ }
+ html5ks.elements.ctc.style.display = "block";
+ if (html5ks.state.skip || str.indexOf("{nw}") > -1) {
+ html5ks.next();
+ } else if (html5ks.state.auto) {
+ setTimeout(html5ks.next, 3.5 * html5ks.persistent.autoModeDelay * (3000 + text.length));
}
return deferred.promise;
},
extend: function (str) {
- return this.character(null, str, true);
+ return this.character(this._lastchar, str, true);
},
Pause: function (duration) {