* JSONCache for caching JSON data (vs reading + parsing every time)
* Minor changes
This commit is contained in:
@@ -458,7 +458,6 @@ function display(options, cb) {
|
|||||||
var continous = false;
|
var continous = false;
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
parser.on('row update', function rowUpdate(row) {
|
parser.on('row update', function rowUpdate(row) {
|
||||||
if(row >= nextPauseTermHeight) {
|
if(row >= nextPauseTermHeight) {
|
||||||
if(!continous && 'termHeight' === options.pause) {
|
if(!continous && 'termHeight' === options.pause) {
|
||||||
@@ -475,7 +474,6 @@ function display(options, cb) {
|
|||||||
nextPauseTermHeight += options.client.term.termHeight;
|
nextPauseTermHeight += options.client.term.termHeight;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
*/
|
|
||||||
|
|
||||||
parser.on('mci', function mciEncountered(mciInfo) {
|
parser.on('mci', function mciEncountered(mciInfo) {
|
||||||
|
|
||||||
@@ -507,7 +505,7 @@ function display(options, cb) {
|
|||||||
|
|
||||||
mciPosQueue.push(mapKey);
|
mciPosQueue.push(mapKey);
|
||||||
|
|
||||||
options.client.term.rawWrite(ansi.queryPos());
|
options.client.term.write(ansi.queryPos(), false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -542,12 +540,12 @@ function display(options, cb) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(ansiFont.length > 1) {
|
if(ansiFont.length > 1) {
|
||||||
options.client.term.rawWrite(ansiFont);
|
options.client.term.write(ansiFont, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(iceColors) {
|
if(iceColors) {
|
||||||
options.client.term.rawWrite(ansi.blinkToBrightIntensity());
|
options.client.term.write(ansi.blinkToBrightIntensity(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
parser.reset(options.art);
|
parser.reset(options.art);
|
||||||
|
|||||||
@@ -124,6 +124,11 @@ function connectEntry(client) {
|
|||||||
//
|
//
|
||||||
displayBanner(term);
|
displayBanner(term);
|
||||||
|
|
||||||
|
/*
|
||||||
|
theme.displayThemeArt({client : client, name : 'DM-ENIG2.ANS'}, function onArt() {
|
||||||
|
|
||||||
|
});*/
|
||||||
|
|
||||||
setTimeout(function onTimeout() {
|
setTimeout(function onTimeout() {
|
||||||
client.gotoMenuModule( { name : Config.firstMenu });
|
client.gotoMenuModule( { name : Config.firstMenu });
|
||||||
}, 500);
|
}, 500);
|
||||||
|
|||||||
@@ -28,22 +28,6 @@ function FTNMailPacket(options) {
|
|||||||
var self = this;
|
var self = this;
|
||||||
self.KLUDGE_PREFIX = '\x01';
|
self.KLUDGE_PREFIX = '\x01';
|
||||||
|
|
||||||
/*
|
|
||||||
this.loadNodeAddresses = function() {
|
|
||||||
if(Config.networks) {
|
|
||||||
for(var name in Config.networks) {
|
|
||||||
if(!Config.networks[name].address) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.nodeAddresses[name] = Config.networks[name].address;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
this.loadNodeAddresses();
|
|
||||||
*/
|
|
||||||
|
|
||||||
this.getPacketHeaderAddress = function() {
|
this.getPacketHeaderAddress = function() {
|
||||||
return {
|
return {
|
||||||
zone : self.packetHeader.destZone,
|
zone : self.packetHeader.destZone,
|
||||||
|
|||||||
@@ -43,18 +43,6 @@ function getDateFromFtnDateTime(dateTime) {
|
|||||||
return (new Date(Date.parse(dateTime))).toISOString();
|
return (new Date(Date.parse(dateTime))).toISOString();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFormattedFTNAddress3D(zone, net, node) {
|
|
||||||
return util.format('%d:%d/%d', zone, net, node);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getFormattedFTNAddress4D(zone, net, node, point) {
|
|
||||||
return util.format('%d:%d/%d.%d', zone, net, node, point);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getFormattedFTNAddress5D(zone, net, node, point, domain) {
|
|
||||||
// :TODO:
|
|
||||||
}
|
|
||||||
|
|
||||||
function getFormattedFTNAddress(address, dimensions) {
|
function getFormattedFTNAddress(address, dimensions) {
|
||||||
var addr = util.format('%d:%d', address.zone, address.net);
|
var addr = util.format('%d:%d', address.zone, address.net);
|
||||||
switch(dimensions) {
|
switch(dimensions) {
|
||||||
|
|||||||
65
core/json_cache.js
Normal file
65
core/json_cache.js
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
/* jslint node: true */
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var Config = require('./config.js').config;
|
||||||
|
var Log = require('./logger.js').log;
|
||||||
|
|
||||||
|
var paths = require('path');
|
||||||
|
var fs = require('fs');
|
||||||
|
var Gaze = require('gaze').Gaze;
|
||||||
|
var stripJsonComments = require('strip-json-comments');
|
||||||
|
var assert = require('assert');
|
||||||
|
|
||||||
|
module.exports = exports = new JSONCache();
|
||||||
|
|
||||||
|
function JSONCache() {
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
this.cache = {}; // filePath -> JSON
|
||||||
|
this.gaze = new Gaze();
|
||||||
|
|
||||||
|
this.reCacheJSONFromFile = function(filePath, cb) {
|
||||||
|
fs.readFile(filePath, { encoding : 'utf-8' }, function fileRead(err, data) {
|
||||||
|
try {
|
||||||
|
self.cache[filePath] = JSON.parse(stripJsonComments(data));
|
||||||
|
cb(null, self.cache[filePath]);
|
||||||
|
} catch(e) {
|
||||||
|
cb(e);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
this.gaze.on('error', function gazeErr(err) {
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
this.gaze.on('changed', function fileChanged(filePath) {
|
||||||
|
assert(filePath in self.cache);
|
||||||
|
|
||||||
|
Log.info( { filePath : filePath }, 'JSON file changed; recaching');
|
||||||
|
|
||||||
|
self.reCacheJSONFromFile(filePath, function reCached(err) {
|
||||||
|
if(err) {
|
||||||
|
Log.error( { error : err, filePath : filePath } , 'Error recaching JSON');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONCache.prototype.getJSON = function(fileName, cb) {
|
||||||
|
var self = this;
|
||||||
|
var filePath = paths.join(Config.paths.mods, fileName);
|
||||||
|
console.log(filePath)
|
||||||
|
|
||||||
|
if(filePath in this.cache) {
|
||||||
|
cb(null, this.cache[filePath]);
|
||||||
|
} else {
|
||||||
|
this.reCacheJSONFromFile(filePath, function fileCached(err, json) {
|
||||||
|
if(!err) {
|
||||||
|
self.gaze.add(filePath);
|
||||||
|
}
|
||||||
|
cb(err, json);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@ var conf = require('./config.js'); // :TODO: remove me!
|
|||||||
var Config = require('./config.js').config;
|
var Config = require('./config.js').config;
|
||||||
var asset = require('./asset.js');
|
var asset = require('./asset.js');
|
||||||
var theme = require('./theme.js');
|
var theme = require('./theme.js');
|
||||||
|
var jsonCache = require('./json_cache.js');
|
||||||
|
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var paths = require('path');
|
var paths = require('path');
|
||||||
@@ -22,28 +23,13 @@ exports.getFormConfigByIDAndMap = getFormConfigByIDAndMap;
|
|||||||
exports.handleAction = handleAction;
|
exports.handleAction = handleAction;
|
||||||
exports.applyThemeCustomization = applyThemeCustomization;
|
exports.applyThemeCustomization = applyThemeCustomization;
|
||||||
|
|
||||||
|
|
||||||
function loadModJSON(fileName, cb) {
|
|
||||||
// :TODO: really need to cache menu.json and prompt.json only reloading if they change - see chokidar & gaze npms
|
|
||||||
var filePath = paths.join(Config.paths.mods, fileName);
|
|
||||||
|
|
||||||
fs.readFile(filePath, { encoding : 'utf8' }, function jsonData(err, data) {
|
|
||||||
try {
|
|
||||||
var json = JSON.parse(stripJsonComments(data));
|
|
||||||
cb(null, json);
|
|
||||||
} catch(e) {
|
|
||||||
cb(e);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function getMenuConfig(name, cb) {
|
function getMenuConfig(name, cb) {
|
||||||
var menuConfig;
|
var menuConfig;
|
||||||
|
|
||||||
async.waterfall(
|
async.waterfall(
|
||||||
[
|
[
|
||||||
function loadMenuJSON(callback) {
|
function loadMenuJSON(callback) {
|
||||||
loadModJSON('menu.json', function loaded(err, menuJson) {
|
jsonCache.getJSON('menu.json', function loaded(err, menuJson) {
|
||||||
callback(err, menuJson);
|
callback(err, menuJson);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -57,7 +43,7 @@ function getMenuConfig(name, cb) {
|
|||||||
},
|
},
|
||||||
function loadPromptJSON(callback) {
|
function loadPromptJSON(callback) {
|
||||||
if(_.isString(menuConfig.prompt)) {
|
if(_.isString(menuConfig.prompt)) {
|
||||||
loadModJSON('prompt.json', function loaded(err, promptJson) {
|
jsonCache.getJSON('prompt.json', function loaded(err, promptJson) {
|
||||||
callback(err, promptJson);
|
callback(err, promptJson);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ exports.getRandomTheme = getRandomTheme;
|
|||||||
exports.initAvailableThemes = initAvailableThemes;
|
exports.initAvailableThemes = initAvailableThemes;
|
||||||
exports.displayThemeArt = displayThemeArt;
|
exports.displayThemeArt = displayThemeArt;
|
||||||
|
|
||||||
|
// :TODO: use JSONCache here... may need to fancy it up a bit in order to have events for after re-cache, e.g. to update helpers below:
|
||||||
function loadTheme(themeID, cb) {
|
function loadTheme(themeID, cb) {
|
||||||
var path = paths.join(Config.paths.themes, themeID, 'theme.json');
|
var path = paths.join(Config.paths.themes, themeID, 'theme.json');
|
||||||
|
|
||||||
|
|||||||
52
mods/art/test.ans
Normal file
52
mods/art/test.ans
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
You should never see this!
|
||||||
|
|
||||||
|
|
||||||
|
... nor this
|
||||||
|
[2J[0m[?33h
|
||||||
|
[1;31m fONT tEST[0m
|
||||||
|
[1;30m ~~~~~~~~~[0m
|
||||||
|
|
||||||
|
|[1;33m 0[0m |[1;33m 1[0m |[1;33m 2[0m |[1;33m 3[0m |[1;33m 4[0m |[1;33m 5[0m |[1;33m 6[0m |[1;33m 7[0m |[1;33m 8[0m |[1;33m 9[0m |[1;33m A[0m |[1;33m B[0m |[1;33m C[0m |[1;33m D[0m |[1;33m E[0m |[1;33m F[0m
|
||||||
|
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||||
|
[1;33m0 [0m|[1;36mNUL[0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;36mBS [0m|[1;36mHT [0m|[1;36mLF [0m|[1;37m [0m|[1;37m [0m|[1;36mCR [0m|[1;37m [0m|[1;37m [0m
|
||||||
|
[1;33m1 [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;36mEOF[0m|[1;36mESC[0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m
|
||||||
|
[1;33m2 [0m|[1;37m [0m|[1;37m ! [0m|[1;37m " [0m|[1;37m # [0m|[1;37m $ [0m|[1;37m % [0m|[1;37m & [0m|[1;37m ' [0m|[1;37m ( [0m|[1;37m ) [0m|[1;37m * [0m|[1;37m + [0m|[1;37m , [0m|[1;37m - [0m|[1;37m . [0m|[1;37m / [0m
|
||||||
|
[1;33m3 [0m|[1;37m 0 [0m|[1;37m 1 [0m|[1;37m 2 [0m|[1;37m 3 [0m|[1;37m 4 [0m|[1;37m 5 [0m|[1;37m 6 [0m|[1;37m 7 [0m|[1;37m 8 [0m|[1;37m 9 [0m|[1;37m : [0m|[1;37m ; [0m|[1;37m < [0m|[1;37m = [0m|[1;37m > [0m|[1;37m ? [0m
|
||||||
|
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||||
|
[1;33m4 [0m|[1;37m @ [0m|[1;37m A [0m|[1;37m B [0m|[1;37m C [0m|[1;37m D [0m|[1;37m E [0m|[1;37m F [0m|[1;37m G [0m|[1;37m H [0m|[1;37m I [0m|[1;37m J [0m|[1;37m K [0m|[1;37m L [0m|[1;37m M [0m|[1;37m N [0m|[1;37m O [0m
|
||||||
|
[1;33m5 [0m|[1;37m P [0m|[1;37m Q [0m|[1;37m R [0m|[1;37m S [0m|[1;37m T [0m|[1;37m U [0m|[1;37m V [0m|[1;37m W [0m|[1;37m X [0m|[1;37m Y [0m|[1;37m Z [0m|[1;37m [ [0m|[1;37m \ [0m|[1;37m ] [0m|[1;37m ^ [0m|[1;37m _ [0m
|
||||||
|
[1;33m6 [0m|[1;37m ` [0m|[1;37m a [0m|[1;37m b [0m|[1;37m c [0m|[1;37m d [0m|[1;37m e [0m|[1;37m f [0m|[1;37m g [0m|[1;37m h [0m|[1;37m i [0m|[1;37m j [0m|[1;37m k [0m|[1;37m l [0m|[1;37m m [0m|[1;37m n [0m|[1;37m o [0m
|
||||||
|
[1;33m7 [0m|[1;37m p [0m|[1;37m q [0m|[1;37m r [0m|[1;37m s [0m|[1;37m t [0m|[1;37m u [0m|[1;37m v [0m|[1;37m w [0m|[1;37m x [0m|[1;37m y [0m|[1;37m z [0m|[1;37m { [0m|[1;37m | [0m|[1;37m } [0m|[1;37m ~ [0m|[1;37m [0m
|
||||||
|
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||||
|
[1;33m8 [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m
|
||||||
|
[1;33m9 [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m
|
||||||
|
[1;33mA [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m
|
||||||
|
[1;33mB [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m
|
||||||
|
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||||
|
[1;33mC [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m
|
||||||
|
[1;33mD [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m
|
||||||
|
[1;33mE [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m
|
||||||
|
[1;33mF [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m|[1;37m <20> [0m
|
||||||
|
|
||||||
|
|
||||||
|
[1;31m cOLOR tEST[0m
|
||||||
|
[1;30m ~~~~~~~~~~[0m
|
||||||
|
|
||||||
|
[0;30;40m<30><6D><EFBFBD><EFBFBD>[0;30;41m<31><6D><EFBFBD><EFBFBD>[0;30;42m<32><6D><EFBFBD><EFBFBD>[0;30;43m<33><6D><EFBFBD><EFBFBD>[0;30;44m<34><6D><EFBFBD><EFBFBD>[0;30;45m<35><6D><EFBFBD><EFBFBD>[0;30;46m<36><6D><EFBFBD><EFBFBD>[0;30;47m<37><6D><EFBFBD><EFBFBD>[1;30;40m<30><6D><EFBFBD><EFBFBD>[1;30;41m<31><6D><EFBFBD><EFBFBD>[1;30;42m<32><6D><EFBFBD><EFBFBD>[1;30;43m<33><6D><EFBFBD><EFBFBD>[1;30;44m<34><6D><EFBFBD><EFBFBD>[1;30;45m<35><6D><EFBFBD><EFBFBD>[1;30;46m<36><6D><EFBFBD><EFBFBD>[1;30;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[0;31;40m<30><6D><EFBFBD><EFBFBD>[0;31;41m<31><6D><EFBFBD><EFBFBD>[0;31;42m<32><6D><EFBFBD><EFBFBD>[0;31;43m<33><6D><EFBFBD><EFBFBD>[0;31;44m<34><6D><EFBFBD><EFBFBD>[0;31;45m<35><6D><EFBFBD><EFBFBD>[0;31;46m<36><6D><EFBFBD><EFBFBD>[0;31;47m<37><6D><EFBFBD><EFBFBD>[1;31;40m<30><6D><EFBFBD><EFBFBD>[1;31;41m<31><6D><EFBFBD><EFBFBD>[1;31;42m<32><6D><EFBFBD><EFBFBD>[1;31;43m<33><6D><EFBFBD><EFBFBD>[1;31;44m<34><6D><EFBFBD><EFBFBD>[1;31;45m<35><6D><EFBFBD><EFBFBD>[1;31;46m<36><6D><EFBFBD><EFBFBD>[1;31;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[0;32;40m<30><6D><EFBFBD><EFBFBD>[0;32;41m<31><6D><EFBFBD><EFBFBD>[0;32;42m<32><6D><EFBFBD><EFBFBD>[0;32;43m<33><6D><EFBFBD><EFBFBD>[0;32;44m<34><6D><EFBFBD><EFBFBD>[0;32;45m<35><6D><EFBFBD><EFBFBD>[0;32;46m<36><6D><EFBFBD><EFBFBD>[0;32;47m<37><6D><EFBFBD><EFBFBD>[1;32;40m<30><6D><EFBFBD><EFBFBD>[1;32;41m<31><6D><EFBFBD><EFBFBD>[1;32;42m<32><6D><EFBFBD><EFBFBD>[1;32;43m<33><6D><EFBFBD><EFBFBD>[1;32;44m<34><6D><EFBFBD><EFBFBD>[1;32;45m<35><6D><EFBFBD><EFBFBD>[1;32;46m<36><6D><EFBFBD><EFBFBD>[1;32;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[0;33;40m<30><6D><EFBFBD><EFBFBD>[0;33;41m<31><6D><EFBFBD><EFBFBD>[0;33;42m<32><6D><EFBFBD><EFBFBD>[0;33;43m<33><6D><EFBFBD><EFBFBD>[0;33;44m<34><6D><EFBFBD><EFBFBD>[0;33;45m<35><6D><EFBFBD><EFBFBD>[0;33;46m<36><6D><EFBFBD><EFBFBD>[0;33;47m<37><6D><EFBFBD><EFBFBD>[1;33;40m<30><6D><EFBFBD><EFBFBD>[1;33;41m<31><6D><EFBFBD><EFBFBD>[1;33;42m<32><6D><EFBFBD><EFBFBD>[1;33;43m<33><6D><EFBFBD><EFBFBD>[1;33;44m<34><6D><EFBFBD><EFBFBD>[1;33;45m<35><6D><EFBFBD><EFBFBD>[1;33;46m<36><6D><EFBFBD><EFBFBD>[1;33;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[0;34;40m<30><6D><EFBFBD><EFBFBD>[0;34;41m<31><6D><EFBFBD><EFBFBD>[0;34;42m<32><6D><EFBFBD><EFBFBD>[0;34;43m<33><6D><EFBFBD><EFBFBD>[0;34;44m<34><6D><EFBFBD><EFBFBD>[0;34;45m<35><6D><EFBFBD><EFBFBD>[0;34;46m<36><6D><EFBFBD><EFBFBD>[0;34;47m<37><6D><EFBFBD><EFBFBD>[1;34;40m<30><6D><EFBFBD><EFBFBD>[1;34;41m<31><6D><EFBFBD><EFBFBD>[1;34;42m<32><6D><EFBFBD><EFBFBD>[1;34;43m<33><6D><EFBFBD><EFBFBD>[1;34;44m<34><6D><EFBFBD><EFBFBD>[1;34;45m<35><6D><EFBFBD><EFBFBD>[1;34;46m<36><6D><EFBFBD><EFBFBD>[1;34;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[0;35;40m<30><6D><EFBFBD><EFBFBD>[0;35;41m<31><6D><EFBFBD><EFBFBD>[0;35;42m<32><6D><EFBFBD><EFBFBD>[0;35;43m<33><6D><EFBFBD><EFBFBD>[0;35;44m<34><6D><EFBFBD><EFBFBD>[0;35;45m<35><6D><EFBFBD><EFBFBD>[0;35;46m<36><6D><EFBFBD><EFBFBD>[0;35;47m<37><6D><EFBFBD><EFBFBD>[1;35;40m<30><6D><EFBFBD><EFBFBD>[1;35;41m<31><6D><EFBFBD><EFBFBD>[1;35;42m<32><6D><EFBFBD><EFBFBD>[1;35;43m<33><6D><EFBFBD><EFBFBD>[1;35;44m<34><6D><EFBFBD><EFBFBD>[1;35;45m<35><6D><EFBFBD><EFBFBD>[1;35;46m<36><6D><EFBFBD><EFBFBD>[1;35;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[0;36;40m<30><6D><EFBFBD><EFBFBD>[0;36;41m<31><6D><EFBFBD><EFBFBD>[0;36;42m<32><6D><EFBFBD><EFBFBD>[0;36;43m<33><6D><EFBFBD><EFBFBD>[0;36;44m<34><6D><EFBFBD><EFBFBD>[0;36;45m<35><6D><EFBFBD><EFBFBD>[0;36;46m<36><6D><EFBFBD><EFBFBD>[0;36;47m<37><6D><EFBFBD><EFBFBD>[1;36;40m<30><6D><EFBFBD><EFBFBD>[1;36;41m<31><6D><EFBFBD><EFBFBD>[1;36;42m<32><6D><EFBFBD><EFBFBD>[1;36;43m<33><6D><EFBFBD><EFBFBD>[1;36;44m<34><6D><EFBFBD><EFBFBD>[1;36;45m<35><6D><EFBFBD><EFBFBD>[1;36;46m<36><6D><EFBFBD><EFBFBD>[1;36;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[0;37;40m<30><6D><EFBFBD><EFBFBD>[0;37;41m<31><6D><EFBFBD><EFBFBD>[0;37;42m<32><6D><EFBFBD><EFBFBD>[0;37;43m<33><6D><EFBFBD><EFBFBD>[0;37;44m<34><6D><EFBFBD><EFBFBD>[0;37;45m<35><6D><EFBFBD><EFBFBD>[0;37;46m<36><6D><EFBFBD><EFBFBD>[0;37;47m<37><6D><EFBFBD><EFBFBD>[1;37;40m<30><6D><EFBFBD><EFBFBD>[1;37;41m<31><6D><EFBFBD><EFBFBD>[1;37;42m<32><6D><EFBFBD><EFBFBD>[1;37;43m<33><6D><EFBFBD><EFBFBD>[1;37;44m<34><6D><EFBFBD><EFBFBD>[1;37;45m<35><6D><EFBFBD><EFBFBD>[1;37;46m<36><6D><EFBFBD><EFBFBD>[1;37;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[5;30;40m<30><6D><EFBFBD><EFBFBD>[5;30;41m<31><6D><EFBFBD><EFBFBD>[5;30;42m<32><6D><EFBFBD><EFBFBD>[5;30;43m<33><6D><EFBFBD><EFBFBD>[5;30;44m<34><6D><EFBFBD><EFBFBD>[5;30;45m<35><6D><EFBFBD><EFBFBD>[5;30;46m<36><6D><EFBFBD><EFBFBD>[5;30;47m<37><6D><EFBFBD><EFBFBD>[1;5;30;40m<30><6D><EFBFBD><EFBFBD>[1;5;30;41m<31><6D><EFBFBD><EFBFBD>[1;5;30;42m<32><6D><EFBFBD><EFBFBD>[1;5;30;43m<33><6D><EFBFBD><EFBFBD>[1;5;30;44m<34><6D><EFBFBD><EFBFBD>[1;5;30;45m<35><6D><EFBFBD><EFBFBD>[1;5;30;46m<36><6D><EFBFBD><EFBFBD>[1;5;30;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[5;31;40m<30><6D><EFBFBD><EFBFBD>[5;31;41m<31><6D><EFBFBD><EFBFBD>[5;31;42m<32><6D><EFBFBD><EFBFBD>[5;31;43m<33><6D><EFBFBD><EFBFBD>[5;31;44m<34><6D><EFBFBD><EFBFBD>[5;31;45m<35><6D><EFBFBD><EFBFBD>[5;31;46m<36><6D><EFBFBD><EFBFBD>[5;31;47m<37><6D><EFBFBD><EFBFBD>[1;5;31;40m<30><6D><EFBFBD><EFBFBD>[1;5;31;41m<31><6D><EFBFBD><EFBFBD>[1;5;31;42m<32><6D><EFBFBD><EFBFBD>[1;5;31;43m<33><6D><EFBFBD><EFBFBD>[1;5;31;44m<34><6D><EFBFBD><EFBFBD>[1;5;31;45m<35><6D><EFBFBD><EFBFBD>[1;5;31;46m<36><6D><EFBFBD><EFBFBD>[1;5;31;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[5;32;40m<30><6D><EFBFBD><EFBFBD>[5;32;41m<31><6D><EFBFBD><EFBFBD>[5;32;42m<32><6D><EFBFBD><EFBFBD>[5;32;43m<33><6D><EFBFBD><EFBFBD>[5;32;44m<34><6D><EFBFBD><EFBFBD>[5;32;45m<35><6D><EFBFBD><EFBFBD>[5;32;46m<36><6D><EFBFBD><EFBFBD>[5;32;47m<37><6D><EFBFBD><EFBFBD>[1;5;32;40m<30><6D><EFBFBD><EFBFBD>[1;5;32;41m<31><6D><EFBFBD><EFBFBD>[1;5;32;42m<32><6D><EFBFBD><EFBFBD>[1;5;32;43m<33><6D><EFBFBD><EFBFBD>[1;5;32;44m<34><6D><EFBFBD><EFBFBD>[1;5;32;45m<35><6D><EFBFBD><EFBFBD>[1;5;32;46m<36><6D><EFBFBD><EFBFBD>[1;5;32;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[5;33;40m<30><6D><EFBFBD><EFBFBD>[5;33;41m<31><6D><EFBFBD><EFBFBD>[5;33;42m<32><6D><EFBFBD><EFBFBD>[5;33;43m<33><6D><EFBFBD><EFBFBD>[5;33;44m<34><6D><EFBFBD><EFBFBD>[5;33;45m<35><6D><EFBFBD><EFBFBD>[5;33;46m<36><6D><EFBFBD><EFBFBD>[5;33;47m<37><6D><EFBFBD><EFBFBD>[1;5;33;40m<30><6D><EFBFBD><EFBFBD>[1;5;33;41m<31><6D><EFBFBD><EFBFBD>[1;5;33;42m<32><6D><EFBFBD><EFBFBD>[1;5;33;43m<33><6D><EFBFBD><EFBFBD>[1;5;33;44m<34><6D><EFBFBD><EFBFBD>[1;5;33;45m<35><6D><EFBFBD><EFBFBD>[1;5;33;46m<36><6D><EFBFBD><EFBFBD>[1;5;33;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[5;34;40m<30><6D><EFBFBD><EFBFBD>[5;34;41m<31><6D><EFBFBD><EFBFBD>[5;34;42m<32><6D><EFBFBD><EFBFBD>[5;34;43m<33><6D><EFBFBD><EFBFBD>[5;34;44m<34><6D><EFBFBD><EFBFBD>[5;34;45m<35><6D><EFBFBD><EFBFBD>[5;34;46m<36><6D><EFBFBD><EFBFBD>[5;34;47m<37><6D><EFBFBD><EFBFBD>[1;5;34;40m<30><6D><EFBFBD><EFBFBD>[1;5;34;41m<31><6D><EFBFBD><EFBFBD>[1;5;34;42m<32><6D><EFBFBD><EFBFBD>[1;5;34;43m<33><6D><EFBFBD><EFBFBD>[1;5;34;44m<34><6D><EFBFBD><EFBFBD>[1;5;34;45m<35><6D><EFBFBD><EFBFBD>[1;5;34;46m<36><6D><EFBFBD><EFBFBD>[1;5;34;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[5;35;40m<30><6D><EFBFBD><EFBFBD>[5;35;41m<31><6D><EFBFBD><EFBFBD>[5;35;42m<32><6D><EFBFBD><EFBFBD>[5;35;43m<33><6D><EFBFBD><EFBFBD>[5;35;44m<34><6D><EFBFBD><EFBFBD>[5;35;45m<35><6D><EFBFBD><EFBFBD>[5;35;46m<36><6D><EFBFBD><EFBFBD>[5;35;47m<37><6D><EFBFBD><EFBFBD>[1;5;35;40m<30><6D><EFBFBD><EFBFBD>[1;5;35;41m<31><6D><EFBFBD><EFBFBD>[1;5;35;42m<32><6D><EFBFBD><EFBFBD>[1;5;35;43m<33><6D><EFBFBD><EFBFBD>[1;5;35;44m<34><6D><EFBFBD><EFBFBD>[1;5;35;45m<35><6D><EFBFBD><EFBFBD>[1;5;35;46m<36><6D><EFBFBD><EFBFBD>[1;5;35;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[5;36;40m<30><6D><EFBFBD><EFBFBD>[5;36;41m<31><6D><EFBFBD><EFBFBD>[5;36;42m<32><6D><EFBFBD><EFBFBD>[5;36;43m<33><6D><EFBFBD><EFBFBD>[5;36;44m<34><6D><EFBFBD><EFBFBD>[5;36;45m<35><6D><EFBFBD><EFBFBD>[5;36;46m<36><6D><EFBFBD><EFBFBD>[5;36;47m<37><6D><EFBFBD><EFBFBD>[1;5;36;40m<30><6D><EFBFBD><EFBFBD>[1;5;36;41m<31><6D><EFBFBD><EFBFBD>[1;5;36;42m<32><6D><EFBFBD><EFBFBD>[1;5;36;43m<33><6D><EFBFBD><EFBFBD>[1;5;36;44m<34><6D><EFBFBD><EFBFBD>[1;5;36;45m<35><6D><EFBFBD><EFBFBD>[1;5;36;46m<36><6D><EFBFBD><EFBFBD>[1;5;36;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
[5;37;40m<30><6D><EFBFBD><EFBFBD>[5;37;41m<31><6D><EFBFBD><EFBFBD>[5;37;42m<32><6D><EFBFBD><EFBFBD>[5;37;43m<33><6D><EFBFBD><EFBFBD>[5;37;44m<34><6D><EFBFBD><EFBFBD>[5;37;45m<35><6D><EFBFBD><EFBFBD>[5;37;46m<36><6D><EFBFBD><EFBFBD>[5;37;47m<37><6D><EFBFBD><EFBFBD>[1;5;37;40m<30><6D><EFBFBD><EFBFBD>[1;5;37;41m<31><6D><EFBFBD><EFBFBD>[1;5;37;42m<32><6D><EFBFBD><EFBFBD>[1;5;37;43m<33><6D><EFBFBD><EFBFBD>[1;5;37;44m<34><6D><EFBFBD><EFBFBD>[1;5;37;45m<35><6D><EFBFBD><EFBFBD>[1;5;37;46m<36><6D><EFBFBD><EFBFBD>[1;5;37;47m<37><6D><EFBFBD><EFBFBD>[0m
|
||||||
|
|
||||||
|
[0m
|
||||||
@@ -468,6 +468,8 @@
|
|||||||
"VM1" : {
|
"VM1" : {
|
||||||
"items" : [
|
"items" : [
|
||||||
"Defaults - DOS ANSI",
|
"Defaults - DOS ANSI",
|
||||||
|
"bw_mindgames.ans - DOS",
|
||||||
|
"test.ans - DOS",
|
||||||
"Defaults - Amiga",
|
"Defaults - Amiga",
|
||||||
"Pause at Term Height"
|
"Pause at Term Height"
|
||||||
],
|
],
|
||||||
@@ -480,7 +482,15 @@
|
|||||||
{
|
{
|
||||||
"value" : { "1" : 0 },
|
"value" : { "1" : 0 },
|
||||||
"action" : "@menu:demoDefaultsDosAnsi"
|
"action" : "@menu:demoDefaultsDosAnsi"
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
"value" : { "1" : 1 },
|
||||||
|
"action" : "@menu:demoDefaultsDosAnsi_bw_mindgames"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value" : { "1" : 2 },
|
||||||
|
"action" : "@menu:demoDefaultsDosAnsi_test"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -488,7 +498,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"demoDefaultsDosAnsi" : {
|
"demoDefaultsDosAnsi" : {
|
||||||
"art" : "WE-CIZB.ANS",
|
"art" : "DM-ENIG2.ANS",
|
||||||
|
"options" : { "cls" : true }
|
||||||
|
},
|
||||||
|
"demoDefaultsDosAnsi_bw_mindgames" : {
|
||||||
|
"art" : "bw_mindgames.ans",
|
||||||
|
"options" : { "cls" : true }
|
||||||
|
},
|
||||||
|
"demoDefaultsDosAnsi_test" : {
|
||||||
|
"art" : "test.ans",
|
||||||
"options" : { "cls" : true }
|
"options" : { "cls" : true }
|
||||||
},
|
},
|
||||||
"demoFullScreenEditor" : {
|
"demoFullScreenEditor" : {
|
||||||
|
|||||||
Reference in New Issue
Block a user