On Sat, 1 Dec 2001, Christoph Reichenbach wrote:

> > > If CanBeHere() returns non-zero, it means that the view object can be
> > > there, i.e. no collission occured. If no collission occured and this was
> > > really the last step, the relevant DoBresen() call should print something
> > > like "Mover finished for object 0x%04x". I have no theory to cover the
> > > case where it does. Otherwise, it ends up in an endless loop of sorts, or
> > > stops in a later DoBresen().
> >
> > Okay -- I'll add some printf's to that function to see where it goes into
> > the endless loop.
>
> The interpreted code seems to be the one going into the endless loop...
>
> > Sorry for the long message, but did you notice that FreeSCI's
> > lsTop/Bottom/Left/Right for that object were are zero'd instead of the
> > values in Sierra SCI? Is that normal?
>
> Not quite. I'm not sure if the lsRect is supposed to be updated by
> script code or by Animate() ATM, though; this should be looked into.

Update from todays trials...

ego appears to be colliding with Wilbur and stops. The MoveTo for ego then
never finishes, putting the game into the state where you can't move/type,
but menus work.

Sierra SCI appears to let ego move one more pixel right, allowing the
MoveTo to finish. (I think.)

Is this an OB1 error in collision checking in general, or an interpreter
difference or..?

On a side note, I've entered the lsRect values not being setin that scene
as bug #278.


--
http://www.clock.org/~matt


Reply via email to