Menu

#2058 BS2: bug on boat in london.

Broken Sword 2
closed-fixed
3
2005-07-04
2005-06-03
Kurt Jeuris
No

Hi everybody, first of all, good job on the scummvm,
you all do an excellent job!

Platform: WinXP SP2
Language: I use the English CD version of BS2
I use ScummVM version 0.7.1 (2005-03-27)
(Sorry I don't know how to compile Scummvm so I don't
know if the bug has gotten rid of.

As for the bug, you play with Nicole on the boat in
london. When I try to take the mop before I close the
door (maybe even before I open the door) after the
patrolling man, the mop DISAPPEARS and suddenly Nicole
finds herself above the cupboard without having climbed
the ladder.

I added a savefile.

Discussion

  • Kurt Jeuris

    Kurt Jeuris - 2005-06-03
     
  • Torbjörn Andersson

    Logged In: YES
    user_id=577918

    I vaguely recall seeing that before. I wouldn't be surprised
    if it happens with the original interpreter as well, but I
    never bothered to check.

     
  • Eugene Sandulenko

    • summary: bug on boat in london. --> BS2: bug on boat in london.
     
  • Max Horn

    Max Horn - 2005-06-04
    • priority: 5 --> 3
     
  • Kurt Jeuris

    Kurt Jeuris - 2005-06-21

    Logged In: YES
    user_id=866211

    Sorry for the late response, I was confused by the "login
    and submit new' link above and I thought I couldn't reply
    back.

    I checked the revolution site but it didn't mention the bug,
    however, it doesn't mean it is not an game bug ^_-
    Should I start a thread on the forum and ask people if they
    noticed the bug ?

    Keep up the good work!

     
  • Torbjörn Andersson

    Logged In: YES
    user_id=577918

    I don't know. For what it's worth, I've started decoding the
    scripts used in that scene, but it'll take some time because
    the tool we have for that is extremely crude. (I should know
    -- I wrote it.)

    If it turns out to be a script bug I'll see if I can figure
    out a workaround, but I can't promise anything.

     
  • Torbjörn Andersson

    Logged In: YES
    user_id=577918

    In the docks scene, global variable 1003 is used to keep
    track of Nico:

    0: Hiding behind the first crate.
    1: Hiding behind the second crate.
    2: Standing in plain view on the deck.
    3: Hiding on the roof.

    Each object has a script that handles player interaction,
    i.e. it's run when you click on the object. These scripts
    are all quite similar, and might run something like

    * Check Nico's state and run the appropriate animation, e.g.
    peeking over the top of a crate.

    * Wait for the guard to pass.

    * Check Nico's state. Run an animation, or a series of
    animations, of her moving from that state to the new one.

    * Update global variable 1003 with Nico's new state.

    That's simplified, of course, and the scripts also handle
    examining objects and using an object on another object.

    However, in the mop's script, in the case where global
    variable 1003 is 3 (hiding on the roof), the variable is not
    changed to 2 (standing on the deck). Visually, Nico moves
    from the roof to the deck and picks up the broom, as far as
    the other scripts are concerned she's still hiding on the roof.

    Note that this bug only happens if you go directly from
    hiding on the roof to picking up the mop. If you do it in
    several steps (e.g. first climb down and then click on the
    mop), it won't happen. There's very little code-sharing
    between the different scripts, so each have their own set of
    instructions for moving Nico from one state to another.

    Could this be the bug you are seeing? I have an experimental
    workaround for it that I plan on committing later, once I've
    cleaned it up a bit.

    (Another glitch I noticed is that when taking the mop this
    way it vanishes for a few frames, but that doesn't seem
    worth fixing.)

     
  • Torbjörn Andersson

    Logged In: YES
    user_id=577918

    I've committed my fix. I'll leave the bug report open until
    I'm more sure that we're talking about the same bug.

     
  • Torbjörn Andersson

    Logged In: YES
    user_id=577918

    The disappearing mop glitch is probably because it's sending
    the event telling the mop to hide itself too early. I'll see
    if I can find a simple workaround for it. If not, I'll just
    ignore it.

     
  • Kurt Jeuris

    Kurt Jeuris - 2005-06-30

    Logged In: YES
    user_id=866211

    Thanks for the complete information on the script! It seems
    we are talking about the same bug. While working on the bug
    did you find yourself on top of the boat (cupboard) too ?
    That 's the major bug I think.

     
  • Torbjörn Andersson

    Logged In: YES
    user_id=577918

    Well, it's not really a bug in ScummVM since it's doing
    exactly what the script in the game data file is telling it
    to do. Since the game thinks she's hiding on top of the
    boat, wherever she goes after picking up the mop she has to
    climb down first. (Another consequence is that the guard
    won't notice her.)

    It's not even a serious bug, since it doesn't put the game
    in an unwinnable state. But I agree that it looks ugly
    having her disappear and reappear like that, which is why
    I've fixed it in the development version. I'd be grateful if
    you could try it with a recent ScummVM snapshot, in case
    there's another similar bug in the scene.

    (I haven't done anything about the mop disappearing briefly.
    It's a script error, and it's in the same script, but other
    than that it's a different bug.)

     
  • Kurt Jeuris

    Kurt Jeuris - 2005-07-03

    Logged In: YES
    user_id=866211

    Hiya! We are talking about the same bug! I checked what
    happened with both the stable version and the CVS one of 2nd
    of July. In the stable version when I tell her to go up
    the ladder while she is having the mop in her hands she
    suddenly reappears on the roof (without having climbed the
    ladder that is), this is NOT the case anymore in the the CVS
    version. There is only a small glitch left in both versions:
    when she is on the roof and I tell Nicole to take the mop ,
    the mop disappears until she has reached it. That 's all.
    Great improvement! You did a good job :)

     
  • Torbjörn Andersson

    • assigned_to: nobody --> eriktorbjorn
    • status: open --> closed-fixed
     
  • Torbjörn Andersson

    Logged In: YES
    user_id=577918

    Thanks! I'm closing the bug report since the main bug has
    been fixed. The remaining script bug is harder to work
    around in a nice way, and it much less serious I think. I've
    added it to the TODO list. Some day, maybe...