> There is a big bug left, one can use the terminal several times.
> I had the (trivial) fix in my tree, but I lost it when doing some other
> commit. For me that's the only release critical thing left.

Fixed it. It was a trivial one indeed.


> > The thing that bugged me most was the walk/talk anim overlap, but it
> > might need some lengthy analysis of the original scripts to find a
> > solution.
> 
> Sadly, I haven't nailed down the problem either. I suspect that happend
> when the stop_talking and walking anims are launched during the same
> frame. A debugger would be of great help here, but sadly scvm is not
> that far yet :/ (althought actors can walk around since some times :)


I thought we already had the problem nailed down. Here's an old
description from November:

> > If you talk, and
> > then start walking, the walk anim is applied while the speech text
> > continues. The problem is, when the text ends, the talkStop anim is
> > applied and overrides the walk anim while the guy is still on the move,
> > so he slides across the ground.


In other words, 2 scripts are running in parallel:

1. If you provoke a speech response, a talk script is started. It fires
the talkStart anim and displays the speech. However, if the mouse script
isn't suspended, a second command can be given immediately.
2. If you start walking now (while the speech is still displayed), the
walk script fires the walk anim, overriding the talkStart anim. However,
the talk script is still running.
3. Once the time for the speech runs out, the talk script fires the
talkStop anim, overriding the walk anim.
4. The walk script still moves the character around, but it doesn't
restart the walk anim. The character now seems to slide across the
ground.


One old suggestion was to block all walks while the character is
talking:

> You must prevent the actor
> from walking if an animation is still playing. I suppose just adding a
> waitForAnimation() before the walkActorTo() should do the trick.

That would be rather annoying though, as you'd have to wait through
every boring little comment before being able to try out something new.
It's not the way the original games handle the problem either, I think.


If you play DOTT and provoke a two-sentence response, try start walking
before the second sentence starts. You can see that no talkStart anim is
fired when the character is walking. Instead, only the speech of the
second sentence is displayed, without any special animation. The mouth
stays closed, but it doesn't show, because there's enough movement in
the arms and legs to distract the audience.

One possible fix would thus be to disable talkStart and talkStop while
the character is walking, maybe setting them to NULL or to walk. I hope
we find a cleaner solution in the original scripts, though.


I'll try to play around with the scripts a bit, but as you said, it's
hardly release-critical. If more important bugs still show up, let me
know. :)




-- 
http://www.fastmail.fm - The way an email service should be


_______________________________________________
ScummC-general mailing list
[email protected]
https://mail.gna.org/listinfo/scummc-general

Reply via email to