Open DavidGriffith opened 3 years ago
I haven't tried it yet, but I plan on experimenting with it when I get around to testing Bureaucracy unless someone beats me to it. Since I'm testing them in chronological order, that's at least a few months away though. (I'm not quite done with Leather Goddesses of Phobos, and I still have Moonmist and Hollywood Hijinx to get through before I get to Bureaucracy.)
By the way, thanks for filing this bug report. I meant to, but forgot about it. :-)
Here's a suggestion:
<DEFINE DELAY ("OPT" (SEC:FIX 1))
;"Wait for input SEC s ((SEC x 10) x 0.1 s) then call a routine that
returns true and aborts the input."
<INPUT 1 <* .SEC 10> ABORT-WAIT>
<RETURN>>
<ROUTINE ABORT-WAIT () <RTRUE>>
Havn't tried it yet, but building a copy now with the other changes to see if it fixes them.
This was reported at https://gitlab.com/DavidGriffith/frotz/-/issues/234 by @eriktorbjorn:
Near the end of Bureaucracy, you get to connect to the hacker's computer. Throughout this puzzle, there are several cases where the game is supposed to delay for a second or two, e.g. right when you first connect:
The DELAY routine, horribly, is implemented like this:
That is, it uses a busy-wait loop and hard-codes how many iterations it needs for every interpreter to get approximately a one-second delay. Of course, this does not work on modern hardware. I don't know why they didn't use timed input - which I think should have been available to them by then - but the game did have a long and troubled development history...
Now @davidgriffith speaking... Could this be repaired in the ZIL code by redoing the DELAY routine using timed input as suggested in the above paragraph?