Skip to content
Snippets Groups Projects
Commit 6ebf3bce authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Allow color to be separately cycled from the border style

modopts/postmem.ini now supports:
- random (randomly selecct color/border when true)
- color (number of fg/bg attribute combo)
- border (number of border)
parent b4d19463
Branches
Tags
No related merge requests found
...@@ -5,19 +5,22 @@ ...@@ -5,19 +5,22 @@
require("key_defs.js", "KEY_LEFT"); require("key_defs.js", "KEY_LEFT");
require("sbbsdefs.js", "K_LINEWRAP"); require("sbbsdefs.js", "K_LINEWRAP");
var options = load({}, "modopts.js", "postmeme");
if (!options) options = {};
var lib = load({}, "meme_lib.js"); var lib = load({}, "meme_lib.js");
var maxMsgLen = 500; var maxMsgLen = 500;
function choose(style) function choose(border)
{ {
console.mnemonics(format("Style: ~@Next@, ~@Previous@, or ~@Quit@ [%u]: ", style)); console.mnemonics(format("Style: ~Color, ~@Next@, ~@Previous@, or ~@Quit@ [%u]: ", border % lib.BORDER_COUNT));
switch(console.getkeys(KEY_LEFT + KEY_RIGHT + "\r" + console.next_key + console.prev_key + console.quit_key)) { switch(console.getkeys("C" + KEY_LEFT + KEY_RIGHT + "\r" + console.next_key + console.prev_key + console.quit_key)) {
case console.quit_key: case console.quit_key:
console.aborted = true; return false;
return -1;
case '\r': case '\r':
return 0; return true;
case 'C':
return 'C';
case KEY_UP: case KEY_UP:
case KEY_LEFT: case KEY_LEFT:
case console.prev_key: case console.prev_key:
...@@ -40,21 +43,30 @@ var attr = [ ...@@ -40,21 +43,30 @@ var attr = [
"\x01H\x01W\x016", "\x01H\x01W\x016",
"\x01N\x01K\x017", "\x01N\x01K\x017",
]; ];
var style = 0; var border = Number(options.border);
var color = Number(options.color);
if (options.random) {
border = random(lib.BORDER_COUNT);
color = random(attr.length);
}
var msg; var msg;
while (!js.terminated) { while (!js.terminated) {
msg = lib.generate(attr[style % attr.length], style % lib.BORDER_COUNT, text); msg = lib.generate(attr[color % attr.length], border % lib.BORDER_COUNT, text);
console.clear(); console.clear();
print(msg); print(msg);
var ch = choose(style); var ch = choose(border);
if (console.aborted) if (ch === false)
exit(1); exit(1);
if (ch == 0) if (ch === true)
break; break;
style += ch; if (ch === 'C') {
if (style < 0) { ++color;
console.beep(); } else {
style = 0; border += ch;
if (border < 0) {
console.beep();
border = 0;
}
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment