diff --git a/README.md b/README.md
index 3b64e94..8ff3cb9 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
l__________/__________|___|______l__________j_____j
Ansi/Ansi Viewer in Ecmascript
- Coded by Sir Garbagetruck / Accession 2013
+ Coded by Sir Garbagetruck / Accession 2013+
Uses fonts by DMG, http:trueschool.se
Uses SixteenColors textmode js library for rendering
(well, my optimized version...)
@@ -63,6 +63,34 @@ This works just fine if you use remote urls for the files.
EVERY PERSON ALIVE, DEAD, OR IMAGINARY,
INCLUDING THE NONEXISTENT. ***
+Mr Doob (who I want to call Trace (: ) has a good page
+explaining how to do this and alternatives here:
+
+https://github.com/mrdoob/three.js/wiki/How-to-run-things-locally
+
+As you can see from that, as of right now (September 2016)
+if you're using Firefox, you should be EXTREMELY CAREFUL and be
+100% SURE YOU CHANGE THE SETTING BACK!
+
+** ESPECIALLY ON WINDOWS FOR CRYING OUT LOUD **
+
+Look if you're using Windows and Firefox to use this, and _YOU_
+don't set the setting back, YOU ARE GOING TO GET FUCKED.
+
+BECAUSE OF THIS: I DO NOT RECCOMEND, OR SUPPORT, RUNNING THIS
+ON WINDOWS AND FIREFOX. It works. I do not RECCOMEND it or
+support it. Someone is going to come back and fuck me over
+because of their stupidity and choice of OS. Fuck that.
+
+I may be able to turn this into a chrome app at some point, which
+will eliminate that issue. Possibly also a Firefox solution, but:
+As of today: I do not support this on Windows + Firefox. That is
+100% at your own risk, because of the possibility you will forget
+to set the setting back.
+
+It's just plain safer to install this on your webserver at the
+party place in a directory and use _that._
+
This product is licensed under the WTFPL. See:
http://www.wtfpl.net
for details, or just get the license:
@@ -98,3 +126,8 @@ Azzarro/Madwizards.
- More examples came from 16colors archive. When the final
Sahli ver. B comes out, I'll select some test files and
put those credits in here too.
+
+- Thanks to M0qui for submitting a patch for 'backwards'
+(in case you accidentally hit space. Which we c64 sceners
+never do, because that would be the NEXT demopart, and
+you'd have to reload (: )
diff --git a/index.html b/index.html
index 0c9660b..e070433 100644
--- a/index.html
+++ b/index.html
@@ -41,6 +41,8 @@
W Begin scrolling upward
A Stop scrolling
+ P Previous Picture
+
T Jump to Top of picture (resets zoom)
B Jump to Bottom
12345 Alter scrollspeed (fast -> slow)
diff --git a/sahli.coffee b/sahli.coffee
index a4cf8a0..9b2bb39 100644
--- a/sahli.coffee
+++ b/sahli.coffee
@@ -146,6 +146,13 @@ class @Sahli
$('body').stop()
@loadinfopanel i
+ @prevpic = =>
+ i = @currentpic-2
+ if i < 0
+ i = i + @filedata.length
+ @currentpic = i
+ @nextpic()
+
@togglefullscreen = ->
docElm = document.documentElement
if @fullscreen
@@ -315,6 +322,8 @@ class @Sahli
switch ev.which
when @keycode ' '
@nextpic()
+ when @keycode 'p'
+ @prevpic()
when @keycode 'f'
@togglefullscreen()
when @keycode 's'
diff --git a/sahli.js b/sahli.js
index 4dd5734..d3f2c48 100644
--- a/sahli.js
+++ b/sahli.js
@@ -1,4 +1,4 @@
-// Generated by CoffeeScript 1.9.0
+// Generated by CoffeeScript 1.9.3
/*
.___________________________________, ___
@@ -172,6 +172,31 @@ l__________/__________|___|______l__________j_____j
return Sahli.loadinfopanel(i);
};
+ Sahli.prevpic = function() {
+ var filedata, i, viewbox;
+ viewbox = $('div#sahliviewer');
+ viewbox.children().remove();
+ $('#panel').empty();
+ Sahli.scroll_direction = 1;
+ Sahli.scroll_speed = 5;
+ filedata = Sahli.filedata;
+ i = Sahli.currentpic - 2;
+ if (i < 0) {
+ i = i + filedata.length;
+ }
+ filedata[i].pic = $('' + filedata[i].file + '
');
+ viewbox.append(filedata[i].pic);
+ Sahli.loadpic(filedata[i], filedata[i].pic);
+ Sahli.currentpic = i + 1;
+ if (Sahli.currentpic > filedata.length - 1) {
+ Sahli.currentpic = 0;
+ }
+ $('#panel').hide();
+ $('#outbox').show();
+ $('body').stop();
+ return Sahli.loadinfopanel(i);
+ };
+
Sahli.togglefullscreen = function() {
var docElm;
docElm = document.documentElement;
@@ -281,7 +306,7 @@ l__________/__________|___|______l__________j_____j
};
Sahli.panelmode = function() {
- var canvs, ct, drawcol, level, newheight, newwidth, numcols, numpanels, outer, panelratio, panelslotheight, panelsperslot, pic, picdpercol, screenratio, wh, ww, x, _i, _j, _len, _len1, _results;
+ var canvs, ct, drawcol, j, k, len, len1, level, newheight, newwidth, numcols, numpanels, outer, panelratio, panelslotheight, panelsperslot, pic, picdpercol, results, screenratio, wh, ww, x;
$('#panel').toggle();
canvs = $('canvas');
$('.scrolly').width(this.origwidth);
@@ -309,9 +334,9 @@ l__________/__________|___|______l__________j_____j
drawcol = 1;
ct = 0;
outer.append(this.createpanel(1, newwidth - 6));
- _results = [];
- for (_i = 0, _len = canvs.length; _i < _len; _i++) {
- pic = canvs[_i];
+ results = [];
+ for (j = 0, len = canvs.length; j < len; j++) {
+ pic = canvs[j];
$("#column" + drawcol).append(pic);
level += 1;
ct += 1;
@@ -319,19 +344,19 @@ l__________/__________|___|______l__________j_____j
level = 0;
drawcol = drawcol + 1;
if (ct < numpanels) {
- _results.push(outer.append(this.createpanel(drawcol, newwidth - 6)));
+ results.push(outer.append(this.createpanel(drawcol, newwidth - 6)));
} else {
- _results.push(void 0);
+ results.push(void 0);
}
} else {
- _results.push(void 0);
+ results.push(void 0);
}
}
- return _results;
+ return results;
} else {
$('#outbox').show();
- for (_j = 0, _len1 = canvs.length; _j < _len1; _j++) {
- pic = canvs[_j];
+ for (k = 0, len1 = canvs.length; k < len1; k++) {
+ pic = canvs[k];
$('.scrolly').append(pic);
}
canvs.width(this.origwidth);
@@ -374,6 +399,8 @@ l__________/__________|___|______l__________j_____j
switch (ev.which) {
case _this.keycode(' '):
return _this.nextpic();
+ case _this.keycode('p'):
+ return _this.prevpic();
case _this.keycode('f'):
return _this.togglefullscreen();
case _this.keycode('s'):
diff --git a/todo.txt b/todo.txt
index f26a2e7..f29534b 100644
--- a/todo.txt
+++ b/todo.txt
@@ -7,3 +7,4 @@
(C) SAHLI ansi & ascii for load page
(C) redo load page (not popup, info)
(B) Preload
+(C) Chrome app