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.js38
1 files changed, 21 insertions, 17 deletions
diff --git a/www/js/api.js b/www/js/api.js
index c92d3d7..e88ac91 100644
--- a/www/js/api.js
+++ b/www/js/api.js
@@ -56,7 +56,7 @@ window.html5ks.api = {
setTimeout(function () {
if (el.src && el.oncanplaythrough) {
- console.warn("video not playing after 3 seconds");
+ console.warn("media not playing after 3 seconds");
el.oncanplaythrough();
}
}, 3000);
@@ -77,8 +77,8 @@ window.html5ks.api = {
},
play: function (cmd, args) {
- var channel = cmd[1];
- this.stop(channel);
+ var channel = cmd[0];
+ this.stop([channel]);
var deferred = when.defer(),
audio = html5ks.elements.audio[channel];
if (channel === "music" || channel === "ambient") {
@@ -98,7 +98,7 @@ window.html5ks.api = {
break;
case "ambient":
case "sound":
- src += "sfx/" + html5ks.data.sfx[name];
+ src += "sfx/" + html5ks.data.sfx[args.file];
volume = html5ks.persistent.sfxVolume;
}
@@ -121,18 +121,19 @@ window.html5ks.api = {
return deferred.promise;
},
- stop: function (channel, ignore, fade) {
- if (channel === "all") {
+ stop: function (cmd, args) {
+ if (cmd === "all") {
return ["music", "sound", "ambient"].forEach(function (channel) {
- html5ks.api.stop(channel, ignore, fade);
+ html5ks.api.stop([channel], args);
});
}
+ var channel = cmd[0];
var audio = html5ks.elements.audio[channel];
if (this._fading[channel]) {
clearInterval(this._fading[channel]);
}
- if (fade) {
- this.set_volume(0, fade, channel);
+ if (args && args.fadeout) {
+ this.set_volume(0, args.fadeout, channel);
} else {
audio.pause();
}
@@ -203,8 +204,9 @@ window.html5ks.api = {
return deferred.promise;
},
- _safeCall: function (n, f, args) {
- if (f) return f.apply(this, args);
+ _safeCall: function (obj, key, args) {
+ console.debug(key, args);
+ if (obj[key]) return obj[key].apply(obj, args);
else {
console.error("no such function " + n);
debugger;
@@ -216,12 +218,12 @@ window.html5ks.api = {
runInst: function (inst) {
console.debug(inst);
var cmd = inst[0].replace(/"/g, '');
- return this._safeCall(cmd, this[cmd], inst.slice(1));
+ return this._safeCall(this, cmd, inst.slice(1));
},
UserStatement: function (line, parsed) {
- var c = parsed[0][0];
- return this._safeCall(c, this[c], parsed);
+ console.debug(parsed);
+ return this._safeCall(this, parsed[0][0], [parsed[0].slice(1)].concat(parsed.slice(1)));
},
With: function () {
@@ -230,6 +232,7 @@ window.html5ks.api = {
window: function (action) {
+ if (action instanceof Array) action = action[0];
var windw = html5ks.elements.window;
switch (action) {
case true:
@@ -402,11 +405,12 @@ window.html5ks.api = {
chr = html5ks.data.characters[who],
w = /{w=?(\d*\.\d*)?}(.*)/.exec(what);
- if (!chr) {
+ if (chr) {
+ chr.what_prefix = chr.what_prefix || "“";
+ chr.what_suffix = chr.what_suffix || "“";
+ } else {
chr = { name: who };
}
- chr.what_prefix = chr.what_prefix || "“";
- chr.what_suffix = chr.what_suffix || "“";
this._lastchar = chr;