I hope this hasn’t already been addressed; it’s not an easy thing to search for, unfortunately.
I’m experiencing an issue in the Inform 7 IDE and Zoom that I think is specific to the Basic Screen Effects extension and, I believe, to Mac OS X 10.8. Constructing a “fancy status line” with multiple rows (à la Bronze’s compass rose) causes the interpreter to stop responding (the blinking line disappears; typing, clicking, and muttering do nothing) after one or two turns.
[code]Include Basic Screen Effects by Emily Short.
Rule for constructing the status line:
fill status bar with Table of Fancy Status;
rule succeeds.
Table of Fancy Status
left central right
“HEY” “NOW” “YOU’RE”
“AN” “ALL” “STAR”
Smash Mouth is a room.[/code]
This only happens when compiling to Z8 or Z5. Compiling to Z6 instead causes some extremely weird text display problems; compiling to Glulx works just fine, although the status bar looks a little wonky (the blackspace isn’t completely even, at least in the IDE). I haven’t experienced these problems while using OS X version 10.6.8.
that will include some fixes. The result was that it got Inform running in 10.7, but I haven’t heard anything about 10.8 (either pro or con) so I offer no guarantee, but I wish you luck.
Btw, I’m just reporting hearsay I’ve collated. The way I’ve been finding info on this topic from the boards is by doing a search for ‘zoom lion’
The uneven blackspace happens in all versions of the Zoom/IDE interpreter. Basically, the text-grid window proper consists of a given number of fixed-width characters, but the window as displayed can be an arbitrary width. Zoom uses white to fill out the difference. You can manually adjust your window to fix this (outside the IDE, “white” for Zoom is a pale goldenrod). Gargoyle has the same issue, though it tends not to be as noticeable unless you have added additional windows to your layout.
This isn’t necessarily something that interpreters should do differently. I believe that the “background color” of the status lines generated by Inform is technically white. The printed portions of the window are given a reversed style so that the background color is used for characters. Assuming that the white for the “leftover” portions is the pure, nonreversed background showing through, this could be fixed by building the library status lines differently–using colors rather than reverse stylehints. At least, that should work for Glulx, not sure about Z-code…
I am seeing the same problem using Mac OS 10.8.3 and the IDE Inform (1.2 6.31/6H98).
While running in the IDE, including Basic Screen Effects by Emily Short, and running a rule that fills the status line with a fancy compass, the game window locks up when trying to update the status.
The (almost) root problem seems to be:
fill status bar calls
deepen status line to __n rows; calls
(- AltDeepStatus({depth}); -); calls
VM_StatusLineHeight(depth); Blam!
If VM_StatusLineHeight is called with any number greater than 1, then the game window locks up. It is possible to rewrite this chain of calls so that the DeepStatus invocation does not include the offending operation. Unfortunately, that messes up the scrollable area and looks very untidy.
It has been a very, very long time since I wandered through the depths of Z-code; does anyone know how to go about addressing the problem with VM_StatusLineHeight?
The @split_window opcode is the one that sets the status window height. There’s nothing wrong with that code. (As noted, it works correctly in other interpreters.)
By all evidence, this is a bug in the MacOS UI library shared between Mac Zoom and the Mac I7 IDE. However, it’s not a simple bug, or it would fail for everybody. I strongly suspect that there is a memory-handling bug and the symptom will always be flaky.
Hello. I am currently attempting to debug a problem with an interpreter that does a poor job with modifications to the status line. The “Smash Mouth” example in this forum topic was a useful reference. Does anybody else have some examples to share? Are there testing scripts like this to reference on how it should appear in accordance with the Glulx and Z8 standards? Sample code and expected layout appreciated.