Opened 17 years ago

Closed 16 years ago

Last modified 16 years ago

#524 closed defect (fixed)

DIG: Actor lockup in tomb

Reported by: SF/xplo Owned by: fingolfin
Priority: blocker Component: Engine: SCUMM
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 17 years ago.
german save in tomb

Download all attachments as: .zip

Change History (21)

by SF/xplo, 17 years ago

Attachment: dig.s21 added

german save in tomb

comment:1 by fingolfin, 17 years ago

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

comment:2 by fingolfin, 17 years ago

What OS? What version of ScummVM?

comment:3 by SF/xplo, 17 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, 17 years ago

Priority: normalhigh

comment:5 by SF/ender, 17 years ago

Owner: set to SF/ender
Priority: highblocker

comment:6 by SF/ender, 17 years ago

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

comment:7 by SF/bugzapper, 17 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, 17 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, 17 years ago

Still happens with latest CVS :-(

comment:10 by SF/marticus, 16 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, 16 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, 16 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, 16 years ago

Owner: SF/ender removed

comment:14 by fingolfin, 16 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, 16 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, 16 years ago

Owner: set to fingolfin

comment:17 by fingolfin, 16 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, 16 years ago

Status: newclosed

comment:19 by fingolfin, 16 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, 16 years ago

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