Comments (5)
After digging into various interpreters, here's what I find:
We have a de-facto rule that if you call set_cursor with a nonexistent row number, the status window height increases to allow that row to exist. Fizmo, GarGlk+Frotz, and the old Parchment both do this. The I6 library apparently relies on this behavior.
My patch adds the appropriate test to set_cursor, but it also required a couple of other changes. In set_window, I moved the glk_set_window() and format() calls to after the set_cursor call -- before that call, upperwin may not exist yet. I also added a this.io.height = 0
in one spot in split_window where it was missing.
With this change, Advent.z5 and Curses.z5 both handle their status lines correctly.
(Except that the Curses.z5 quote boxes still don't work. That will require special-case logic -- you've seen my notes on the subject.)
from ifvms.js.
(I went ahead and pushed this change out in a Lectrote release, which was presumptuous, but I'm pretty sure it's correct.)
from ifvms.js.
When I wrote the windowing code from scratch using Glk I decided to stick to only what the standard said, and to only add support for non-standard behaviour once there were clear examples of it, because I couldn't remember which story files exactly needed what, and whether all that was supported actually needed to be.
Thanks for the diagnosis and the patch!
from ifvms.js.
I've also given you commit access to the repository if you'd prefer to commit directly instead of making PRs.
from ifvms.js.
Thanks. I'll still do PRs, in general, so you can look stuff over.
from ifvms.js.
Related Issues (20)
- Support timed input HOT 1
- Use more ES6 features
- Save/Restore broken in some Z3 games
- Small autorestore issues HOT 2
- First Jigsaw piece is drawn wrong HOT 5
- Support more Infocom HOT 3
- Use ifvms without Glkote-term HOT 3
- Many games don't work properly because the window is too long
- Text input does not work with Polish letters
- zvm.js fails on Windows w/node v9.2.0 HOT 2
- @set_font 0
- An in-range update of yargs is breaking the build 🚨 HOT 1
- An in-range update of browserify is breaking the build 🚨 HOT 1
- Need help upgrading from 0.1.0 HOT 2
- More spec fixes
- Update API to match Quixe HOT 3
- zvm ">command prompt" HOT 3
- Issues with hitchhiker-invclues-r31-s871119.z5 HOT 1
- Autorestore formatting issue
- Use Glk input style for input and echoed input HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ifvms.js.