Opened 5 days ago

Last modified 5 days ago

#15389 new defect

ADL: HIRES5: "GET ALL" fails where picking up individual objects doesn't

Reported by: eriktorbjorn Owned by:
Priority: normal Component: Engine: ADL
Version: Keywords:
Cc: Game: Hi-Res Adventure #5: Time Zone

Description

I'm trying to make myself an optimized walkthrough of Time Zone. (Don't ask!)

At some point, you will probably have to leave some objects to pick them up later. In my case, it was the oxygen mask, the skeleton key, and the iron bar. But when the time came to pick them up, "GET ALL" failed because the game claimed I was already carrying as much as I could.

However, picking the objects up one by one worked without problem. Is this a bug in "GET ALL", or is it a bug in regular "GET object"? It would be cruel indeed if you had to make several runs to the final time zone to get everything you needed there.

"GET ALL" will make calls to HiRes5Engine::isInventoryFull() while regular "GET object" apparently will not? I was also surprised that it uses item->description for the weight, but maybe that's just how it's designed.

I'm attaching my walkthrough file. The problem happens at line 718, at the comment where it says "GET ALL should work, but doesn't". The two "dummy" commands earlier in the file are there so that the file can be run using the run_script debug command.

Attachments (1)

timezone.txt (4.4 KB ) - added by eriktorbjorn 5 days ago.

Download all attachments as: .zip

Change History (4)

by eriktorbjorn, 5 days ago

Attachment: timezone.txt added

comment:1 by eriktorbjorn, 5 days ago

Please note that the walkthrough is still incomplete and contains errors. (It also exploits bugs.)

comment:2 by eriktorbjorn, 5 days ago

Looking at the description values, they do seem to make sense as weights. (And I should definitely get rid of the sword and the shield, not the tweezers! :-)

So if there is a bug, it's probably in "GET object", not "GET ALL".

comment:3 by eriktorbjorn, 5 days ago

Now that I know approximately what I'm looking for, here's a much shorter test case:

  1. N. GO MACHINE. GO MACHINE. SIT. SET BLUE. ASIA. SET ORANGE. 50BC. PUSH LEVER. LEAVE MACHINE. E. E. E. N. N. GET POLE. S. S. S. S. GO BOAT. E. LEAVE BOAT. N. N. N. N. E. N. W. GET SHOVEL. DIG. DIG. GET ALL. E. S. W. S. S. E. S. S. E. S. BUY RICE. WITH JADE. BUY ROPE. WITH JADE. W. W. N. GO BOAT. W. LEAVE BOAT. N. N. W. W. W. GO MACHINE. SIT. 1000AD. AFRICA. PUSH LEVER. LEAVE MACHINE. N. N. GET LOG. W. GET LOG. E. E. GET LOG. DROP SHOVEL. GET ALL. GET SHOVEL.

In the final two commands, "GET ALL" fails while "GET SHOVEL" does not.

I have not tried this in an Apple II emulator.

Note: See TracTickets for help on using tickets.