Opened 2 years ago

Closed 6 months ago

#9760 closed defect (fixed)

SCI: GK1: Animation glitch in grandmother's house

Reported by: esziarko Owned by: bluegr
Priority: normal Component: Engine: SCI
Keywords: sci32 original has-pull-request Cc: m-kiewitz
Game: Gabriel Knight 1

Description

ScummVM Version: 1.10.0git3200-g23b6dbb (Apr 30 2017)
OS: Windows 10 x64
Game version: Gabriel Knight 1 CD/Windows/English

There's a small animation glitch present at Gabriel's grandmother's house that I don't remember in the original. When sitting down but not talking, if you first look at something in the room one small frame of animation will play, then if you look at the staircase, a frame of Gabriel standing up will play.

Attachments (1)

gk1-cd-win.003 (52.7 KB) - added by esziarko 2 years ago.
Save game before the glitch

Download all attachments as: .zip

Change History (13)

Changed 2 years ago by esziarko

Attachment: gk1-cd-win.003 added

Save game before the glitch

comment:1 Changed 2 years ago by csnover

Cc: m-kiewitz added
Keywords: sci32 added; animation removed

Thanks for the report! I was able to reproduce the issue, and verified that it does not occur in the original interpreter.

The problems seems to be that the ego tries to turn to face the object that has been looked at. So, clicking any object to the right of the chair will cause an attempt to face the right, and to the left will cause an attempt to face the left. (And you can keep causing the glitches by switching between looking at objects on the left and objects on the right.)

m-kiewitz, you’re better at script debugging than me, would you be willing to look into this?

comment:2 Changed 2 years ago by m-kiewitz

Owner: set to m-kiewitz

sure, will look into it.

comment:3 Changed 2 years ago by m-kiewitz

room is 380
stairs::facingMe/notFacing triggers GKEgo::setHeading (latter script 18)

comment:4 Changed 2 years ago by m-kiewitz

Grycler is then used as cycler

Which then sets loop to 3 on first ::doit call.
(view 381 - Gabriel Knight, cel 1)

it seems there is code somewhere, that fixes the loop to 0 and original interpreter fixes it to 2, which would be the right loop.

comment:5 Changed 2 years ago by m-kiewitz

or maybe there is something else going wrong.
Grycler has numOfLoops = 4
Which is a bit weird because there are only 3 loops for that view
have to dig in deeper.

comment:6 Changed 2 years ago by m-kiewitz

numOfLoops being 4 seems to be "correct"

to reproduce without saved game:
warp to room 380
Gabriel will sit down automatically
talk to Granny
exit immediately
look at couch on the left
look at stairs on the right

comment:7 Changed 2 years ago by wjp

I can reproduce this using the original interpreter. (GOG version in dosbox.)

comment:8 Changed 2 years ago by m-kiewitz

Problem actually happens in the original too (thx wjp for thinking about that and checking).

Gabriel's head doesn't move in case you haven't talked with Granny.

I can't get in there for my version, because original interpreter is error'ing out when I try to go to Granny's house w/ error 999.

Will try to figure out a script patch.

comment:9 Changed 2 years ago by csnover

(For the record: I was not able to reproduce the issue in the original interpreter earlier because I did not question grandma first. Once I did that, the bug was reproduced.)

comment:10 Changed 6 months ago by sluicebox

I wrote a script patch: https://github.com/scummvm/scummvm/pull/1369

The script bug is in all versions but I can only consistently reproduce the animation glitch in the CD versions.

comment:11 Changed 6 months ago by digitall

Keywords: original has-pull-request added

comment:12 Changed 6 months ago by bluegr

Owner: changed from m-kiewitz to bluegr
Resolution: fixed
Status: newclosed

The pull request has been merged, so this can be closed now

Note: See TracTickets for help on using tickets.