ahope1 / BeebScott

An interpreter for playing Scott Adams text adventure games on a BBC Micro computer
3 stars 1 forks source link

Max inventory-size limit: implemented wrongly? #10

Open ahope1 opened 1 year ago

ahope1 commented 1 year ago

In Scott Adams's "original" TRS-80 terp ADVENTUR/CMD, and also in BeebScott, when a player tries to pick up an object, the terp first checks to see whether the number of objects the player's already carrying is equal to or greater than the inventory-size limit. If so then the player isn't allowed to pick up the object.

But in the later Windows version of the terp that's available to download from Scott Adams's own website, and also in ScottKit and in (some versions of) ScottFree, there's only a check to see whether the number of objects the player's carrying is equal to the inventory-size limit. If so, then the player isn't allowed to pick up the new object. But if the player is already carrying a greater number of objects than the inventory-size limit, the player will be allowed to pick up the new object! This seems counterintuitive but it's how most modern terps behave!

This issue is exposed by the widely available .DAT version of the game Return To Pirate's Isle (RTPI).

In the following screenshot, the issue is exposed by RTPI running in ADVENTUR/CMD on a TRS-80 (emulated):

Screenshot 2022-12-15 at 19 07 11

Below, the issue is exposed by RTPI running in BeebScott:

Screenshot 2022-12-15 at 19 13 54

But the Windows terp that's available from Scott Adams's own website sails through the chokepoint without any issue!:

Screenshot 2022-12-15 at 22 42 09
ahope1 commented 1 year ago

Angstsmurf @ intfiction.org seems to think this is actually a bug in certain versions of ScottFree and presumably also in ScottKit and in the Windows terp on Scott Adams's own website!:

https://intfiction.org/t/scott-adams-interpreter-discrepancies/48864/116

By Angstsmurf's logic, it would seem that ADVENTUR/CMD and BeebScott are behaving correctly.

ahope1 commented 1 year ago

Should probably add this test case to cases.DAT