Opened 11 years ago

Closed 10 years ago

Last modified 10 years ago

#4231 closed defect (fixed)

ZAK: Cannot pickup Ladder on Mars Youth Hostel

Reported by: SF/ottinger Owned by: Kirben
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Zak McKracken

Description

If i want to pick up the Ladder in the Youth Hostel on Mars, either as Melissa or Leslie, i get a message "I don't want to hurt you my friend!" and i can't pick it up.
using the debug console i identify the ladder as object 70. typing "object 70 pickup" crashes with the message "getResourceAddress Illegal Glob type Room (1) num 180!"

I found this Bug in the "V1/DOS/English" Version as well as in the "V2/AMIGA/German" Version. Probably applies to every V1&V2 Version of Zak McKracken.
I tried ScummVM 0.11.1 precompiled for Ubuntu 8.10 (x86_64) also tried a self compiled version 0.12.0 on Ubuntu x86_64 (so i guess it is a problem of the Scumm Interpreter)

Ticket imported from: #2687801. Ticket imported from: bugs/4231.

Attachments (1)

zak-v1.s05 (7.7 KB ) - added by SF/ottinger 11 years ago.
Savegame V1/DOS/English

Download all attachments as: .zip

Change History (16)

by SF/ottinger, 11 years ago

Attachment: zak-v1.s05 added

Savegame V1/DOS/English

comment:1 by SF/ottinger, 11 years ago

Summary: Cannot pickup Ladder on Mars Youth HostelZAK: Cannot pickup Ladder on Mars Youth Hostel

comment:2 by bluegr, 11 years ago

If I'm not mistaken, only Melissa can pick up the ladder, but I think you need to uncover the broom alien lying on the bed with Leslie first

comment:3 by SF/ottinger, 11 years ago

I took the alien broom with Leslie first - and i tried picking up the ladder with Melissa but no success.
The FM-Towns Version doesn't show this problem, so i guess it is actually a problem with the interpreter.

comment:4 by SF/ottinger, 11 years ago

I just tried the "V2/DOS/English" Version and it doesn't show the problem ...

comment:5 by fingolfin, 11 years ago

Well, it would be really good if somebody could verify what happened there with the original exe, using e.g.. DOSBox, but in the meantime, the following three possibilities seem most likely:

* The V1 version simply was different in this regard, and you still have to do something else before proceeding. It's not surprise then that it crashes when you "force" picking up an object using the debugger. You are just not supposed to do it.

* This could be a bug in V1 that was fixed in V2.

* This could be due to a bug in ScummVM, but that seems somewhat unlikely to me given the information I have so far. Can't rule it out completely, of course.

comment:6 by SF/ottinger, 11 years ago

first of all thanks fingolfin and thanks thebluegr,

i just played fast forward (V1/DOS/English) to the point and followed thebluegrp's hint
1.) i used Leslie to enter the hostel, and picked up the broom
2.) i used Melissa to pick up the Ladder and it

i still have to note three things:

* With the Savegame it is not possible to pick up the ladder anymore (i followed the german tutorial on http://www.cheaty.net/loesung_915_faq--walkthrough_zak-mckracken.htm)

* i cheated a little while playing fast foward with the following sequenz

1.) pick up remote control
2.) DEBUG: room 129
3.) use remote control to obtain blue crystal
4.) deposit crystal at Annie's house
5.) Switch to Leslie
6.) get fuse
7.) object 62 pickup (to get the tokken)
8.) open hostel & pickup broom
9.) switch to Melissa
10.) pick up broom

====

if i use the sequenz as above, but enter the hostel with Melissa and try picking up the broom, i can't pick up the Ladder anymore ..... this happens with Version V1/DOS/English & V2/DOS/English, but not with FM-TOWNS.

whatever this means ....

comment:7 by SF/ottinger, 11 years ago

i forgot to say that following thebluegr hints, that picking up the ladder works ...

point 10.) picking up the Ladder works ;-)

comment:8 by bluegr, 11 years ago

So I guess this report can now be closed, right?

comment:9 by SF/ottinger, 11 years ago

true. thanks again ...

comment:10 by SF/ottinger, 11 years ago

Status: newclosed

comment:11 by bluegr, 11 years ago

Resolution: worksforme

comment:12 by SF/madm00se, 10 years ago

I request that this bug be reopened. I have reproduced it in trunk ScummVM in Zak v1 and v2, and confirmed that the bug is not present in Zak v2 in DOSBox.

The pickup fails because the scripts think that somebody is standing on the ladder. This happens in the hostel because the ladder's walkbox is box 6, and outside, on mars, the starting walkbox is also 6.

So if you make Leslie pickup the ladder without doing anything with Melissa, it fails because Melissa is standing in walkbox 6.

I don't have a disasm or instrumented dosbox in front of me right now, but I would guess that o2_getActorWalkBox should return a dummy value if the actor inquired upon is not in the current room.

Pickup of object 70 (ladder) calls sentence 14 (hex E) on object 70, which calls sentence 253 on object 477.
This sets var[60] to 6 (the walkbox of the ladder) and calls script 83.
Script 83 goes through the 4 actors and tests if any of them are in walkbox 6. If any are, the ego actor says "I don't want to hurt my friend!" and the pickup fails.

comment:13 by fingolfin, 10 years ago

Resolution: worksforme
Status: closednew

comment:14 by Kirben, 10 years ago

Your right, the original code for the getActorWalkBox opcode would return a result of 0xFF, if the actor isn't currently in the room.

Fixed in ScummVM SVN, use the next daily snapshot of ScummVM SVN.

comment:15 by Kirben, 10 years ago

Owner: set to Kirben
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.