i7 / counterfeit-monkey

Counterfeit Monkey by Emily Short
http://ifdb.tads.org/viewgame?id=aearuuxv83plclpl
Other
168 stars 30 forks source link

"Programming error" in the Lecture Hall #101

Closed toriningen closed 6 years ago

toriningen commented 6 years ago

Upon entering the Lecture Hall, following message is shown:

<snip>
The room extends south, full of hard wooden seats.
[** Programming error:  (object number 4501415)  has no property p178_referencing to read **]
Abandoned on one near the back is a coat.

This reproduces on the Release 6, and was played in Frotz for iOS 1.8.2. As reported by "version", interpreter version is 1.3.3, VM version is 3.1.2. I have also retried it on Lectrote 1.2.9 (Interpreter version 2.1.6 / VM 3.1.2), error message is less informative:

[** Programming error: tried to read (something) **]

I am attaching zipped savefile to help reproduce the issue. To reproduce, restore the savefile in Release 6 version, then go east.

angstsmurf commented 6 years ago

This is a dupe of #50, which I couldn't reproduce with the then-current code. I never found out why it happened in older versions, but I'm pretty sure that you won't be able to reproduce it with this current build for example.

Of course old saves won't work, so let me know if you need help skipping ahead in the game.

toriningen commented 6 years ago

This issue does not reproduce on the build you have provided. Althrough I had to actually walk through the game back to that point (skipping all the scenery of course) it would be nice to know if any "cheats" exist out there.

angstsmurf commented 6 years ago

Thanks a lot for testing this!

The most obvious "cheat" is the "run a command script" feature we implemented in #98. If you place a text file named autotesting.txt with a list of commands wherever your interpreter looks for external files, the game should automatically run them at startup, as if they were typed-in commands. There are some example scripts in tools/command scripts.

angstsmurf commented 6 years ago

I just tested this myself, and it seems that Gargoyle looks for a file named just "autotesting" without the ".txt" suffix, in the same folder as the game file. Lectrote has its own folder for external files, which on my Mac is located at ~/Library/Application Support/Lectrote/quixe-files. Both interpreters won't show anything on screen until the script is finished, which might take several minutes on Lectrote.

I have no idea how any of this would work on iOS Frotz, if it at all.

toriningen commented 6 years ago

Well, I thought you have some commands similar to "summon car" or "unlock act 3" :) That's why I have referred to these as cheats. Anyway, as this issue no longer reproduces, I think it's safe to close this one?

angstsmurf commented 6 years ago

Yeah, I think we can close this.

If you use a debug build of the game like this you can use all the regular Inform debug commands such as PURLOIN and GONEAR, including a lot of TEST commands that walks you through parts or all of the game. Try TEST ACT1 at the start of the game, for instance.

Most of the script files in the commands scripts folders are in fact extracted from those internal command, so typing TEST QUAGMIRE has the same effect as running the test_quagmire.txt script. The functions of some of these test commands might be guessed by looking at the source of Tests.i7x .