Opened 22 years ago

Closed 21 years ago

Last modified 21 years ago

#524 closed defect (fixed)

DIG: Actor lockup in tomb

Reported by: SF/xplo Owned by: fingolfin
Priority: blocker Component: Engine: SCUMM
Version: Keywords:
Cc: Game: The Dig

Description

In the tomb (the bright room with the statue of that dragon creature). Everything works as usual. Then yout have to touch the statue. It'll vanish as expected. But afterwards you cannot combine certain inventory items anymore in this room. Boston will turn around and not do nor speak anything. Cursor locked. No special console warning.

Attached is a (german) savegame *before* the statue has been touched. To reproduce try to combine for example the ripcage with the green crystals.

Ticket imported from: #630570. Ticket imported from: bugs/524.

Attachments (1)

dig.s21 (217.8 KB ) - added by SF/xplo 22 years ago.
german save in tomb

Download all attachments as: .zip

Change History (21)

by SF/xplo, 22 years ago

Attachment: dig.s21 added

german save in tomb

comment:1 by fingolfin, 21 years ago

Summary: DIG: actor lockup in tombDIG: Actor lockup in tomb

comment:2 by fingolfin, 21 years ago

What OS? What version of ScummVM?

comment:3 by SF/xplo, 21 years ago

WinXP (compiled in VS.NET), Version was the CVS of the creation day. Still happens with the CVS pulled 5 mins ago (2002-11-18 17:16)

comment:4 by fingolfin, 21 years ago

Priority: normalhigh

comment:5 by SF/ender, 21 years ago

Owner: set to SF/ender
Priority: highblocker

comment:6 by SF/ender, 21 years ago

Sounds like a speech bug, I'll look into it.

comment:7 by SF/bugzapper, 21 years ago

After riding the lift down into the tomb and coming back out, if you attempt to remove the rod that is jamming down the floor trigger the cursor will also lock.

comment:8 by fingolfin, 21 years ago

Why do you think this is a speech issue, ender?

BTW, it seems that of the 20 or so bug reports we have on the Dig, a lot are related to speech & scrolling issues.

comment:9 by fingolfin, 21 years ago

Still happens with latest CVS :-(

comment:10 by SF/marticus, 21 years ago

Also an actor lockup problem when you enter the tomb and use the rod on the loose stone. Boston wont leave the stone when you click around the room; He can place the blue crystal without moving from the stone, and will basically teleport out of the room if you click the exit.

comment:11 by SF/hartge, 21 years ago

The actor also stops walking, the sprite just "glides" around without any proper animation after the you used the rod with the loose stone.

You are also not able to walk onto the lift, only "look" is possible.

This bug totally renders The Dig uncompletable.

comment:12 by fingolfin, 21 years ago

If you get out of the tomb entrance first, before doing anything, you usually can avoid the problem. One trick that often works for me is to click 1-2 on the ground plate (*not* the rod) until Low starts walking to it, then click somewhere else on the ground. From this point on, you should be "safe"

So this bug seems to be walking related to me. Something with walkboxes, walkscripts, wait opcodes etc. must be messed up (that's a vague remark cause I only have a vague idea on this right now :-).

comment:13 by fingolfin, 21 years ago

Owner: SF/ender removed

comment:14 by fingolfin, 21 years ago

I disabled walkscripts, but the problem persists (in fact it's worse because essentially I can only enter the statue room, or leave it, but nothing else.

Some data: Low is actor 3. When you enter the statue room (#58), when he stands in the entrance (hidden, basically, by the stones), he is at x:307, y:141, walk box 25

My guess is that he shouldn't stand there, but rather walk into view or so... it would be very useful if somebody owning the original game could test this, and tell me what exactly happens when you enter the status room (does it do the same as we, i..e Low is not visible when entering because he stands in the entrace? or does he take some steps forward? Or what else?

comment:15 by fingolfin, 21 years ago

Some more details: Script roomobj-55-387 is the one which loads room 58:

[012E] (85) loadRoomWithEgo(399,191,40)

(399 is an object in room 58). If one looks as the loadRoomWithEgo opcode, then it *should* cause the main actor (low) to walk to position (191,40), but for some reasons that doens't happen.

comment:16 by fingolfin, 21 years ago

Owner: set to fingolfin

comment:17 by fingolfin, 21 years ago

Yay! Lockup is fixed: problem was that a script in the background was repeatedly setting the actor elevation, and we then always made the actor redraw (even if the elevation didn't change compared to its old value), which caused waitForActorDrawn opcode to be stuck in an endless loop (each time frame, first the script changing the elevation was run, then another waiting for the actor to be drawn). The reason the room doesn't lock up immediately is that relative order of those two scripts which initially is the other way around.

Anyway, the elevation change opcode now only causes a redraw if the elevation actually has changed.

I am not yet closing this, because there is another bug in the statue room now. Basically, when I enter it, I can't move into the room, only can exit it. Looking into that now.

comment:18 by fingolfin, 21 years ago

Status: newclosed

comment:19 by fingolfin, 21 years ago

Added a workaround for the "can't properly enter Tomb" bug. Scene now works just fine for me (except for some issues regarding text not been removed properly, but that's another issue :-)

comment:20 by fingolfin, 21 years ago

Resolution: fixed
Note: See TracTickets for help on using tickets.