mirror of
https://github.com/He4eT/cheap-glkote.git
synced 2026-05-04 16:37:23 +00:00
Simplify player.stdio
This commit is contained in:
parent
a9842cd696
commit
b367e16941
1 changed files with 17 additions and 30 deletions
|
|
@ -16,60 +16,47 @@ const formats = [
|
||||||
extensions: /z([3458]|blorb)$/,
|
extensions: /z([3458]|blorb)$/,
|
||||||
engine: 'bocfel.js',
|
engine: 'bocfel.js',
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
id: 'glulxe',
|
id: 'glulxe',
|
||||||
extensions: /(gblorb|ulx)$/,
|
extensions: /(gblorb|ulx)$/,
|
||||||
engine: 'glulxe.js',
|
engine: 'glulxe.js',
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
id: 'git',
|
id: 'git',
|
||||||
extensions: /(gblorb|ulx)$/,
|
extensions: /(gblorb|ulx)$/,
|
||||||
engine: 'git.js',
|
engine: 'git.js',
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
id: 'hugo',
|
id: 'hugo',
|
||||||
extensions: /hex$/,
|
extensions: /hex$/,
|
||||||
engine: 'hugo.js',
|
engine: 'hugo.js',
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
id: 'tads',
|
id: 'tads',
|
||||||
extensions: /(gam|t3)$/,
|
extensions: /(gam|t3)$/,
|
||||||
engine: 'tads.js',
|
engine: 'tads.js',
|
||||||
},
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
function run() {
|
|
||||||
const argv = minimist(process.argv.slice(2))
|
|
||||||
|
|
||||||
const storyfile = argv._[0]
|
const argv = minimist(process.argv.slice(2))
|
||||||
|
const storyfile = argv._[0]
|
||||||
|
|
||||||
let format
|
const format = formats.find(x =>
|
||||||
for (const formatspec of formats) {
|
x.extensions.test(storyfile))
|
||||||
if (
|
|
||||||
formatspec.id === argv.vm ||
|
|
||||||
(!argv.vm && formatspec.extensions.test(storyfile))
|
|
||||||
) {
|
|
||||||
format = formatspec
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!format) {
|
if (!format) {
|
||||||
console.error('Unknown storyfile format')
|
console.error('Unknown storyfile format')
|
||||||
return
|
return
|
||||||
}
|
|
||||||
|
|
||||||
const { glkInterface, sendFn } = CheapGlkOte(handlers)
|
|
||||||
handlers.setSend(sendFn)
|
|
||||||
|
|
||||||
const engine = require('emglken/src/' + format.engine)
|
|
||||||
const vm = new engine()
|
|
||||||
vm.prepare(fs.readFileSync(storyfile), glkInterface)
|
|
||||||
vm.start()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
run()
|
const { glkInterface, sendFn } = CheapGlkOte(handlers)
|
||||||
|
handlers.setSend(sendFn)
|
||||||
|
|
||||||
|
const engine = require('emglken/src/' + format.engine)
|
||||||
|
const vm = new engine()
|
||||||
|
|
||||||
|
vm.prepare(
|
||||||
|
fs.readFileSync(storyfile),
|
||||||
|
glkInterface)
|
||||||
|
vm.start()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue