Menu

#3868 FW: incrustSprite fails on savegame loading

Future Wars
closed-fixed
5
2008-08-24
2008-08-17
No

Loading the provided savegame (fw.0) fails with
revision 33951 of branch-0-12-0 and with revision 32257
of trunk. It fails in FWRenderer::incrustSprite in
engines/cine/gfx.cpp line 201: assert(mask);

But in revision 32256 of trunk it loads with a warning:
WARNING: drawSpriteRaw: maskPtr == NULL! I'm not sure
if the screen after loading is correct though (See
attached picture).

Discussion

  • Kari Salminen

    Kari Salminen - 2008-08-17

    The failing savegame from Future Wars

     
  • Kari Salminen

    Kari Salminen - 2008-08-17

    Logged In: YES
    user_id=1803212
    Originator: YES

    File Added: scummvm-trunk-revision_32256-after_loading_savegame.png

     
  • Kari Salminen

    Kari Salminen - 2008-08-17

    Picture after loading the provided savegame with trunk revision 32256

     
  • Kari Salminen

    Kari Salminen - 2008-08-17

    Logged In: YES
    user_id=1803212
    Originator: YES

    The tested game version is Future Wars's
    English DOS floppy version and the savegame
    was made with branch-0-12-0.

    Using the current trunk (Revision 33969) the
    savegame can't be loaded either, it fails
    in the same code position as the others.

     
  • Torbjörn Andersson

    Logged In: YES
    user_id=577918
    Originator: NO

    I've attached a working savegame from earlier in the same room. (When you've loaded it, hurry or the guards will get you.)
    File Added: fw-1.2

     
  • Torbjörn Andersson

    Working savegame just before.

     
  • Kari Salminen

    Kari Salminen - 2008-08-17

    Logged In: YES
    user_id=1803212
    Originator: YES

    I loaded the working savegame fw-1.2,
    got to the right of the door, used pill
    on myself, waited that the guards got into
    the room, walked through the open doorway
    and walked behind the boxes. I've attached a
    screenshot of how it looks (Looks correct to me).
    File Added: scummvm-branch-0-12-0-revision_33966-after_working_savegame.png

     
  • Kari Salminen

    Kari Salminen - 2008-08-17

    Screenshot of how things look after loading the bugging savegame in branch-0-12-0 without the assert(mask) in incrustSprite

     
  • Kari Salminen

    Kari Salminen - 2008-08-17

    Logged In: YES
    user_id=1803212
    Originator: YES

    The bugging savegame loads if I remove the
    assert(mask) from incrustSprite in branch-0-12-0
    and the screen looks like this after loading:
    File Added: after_removing_the_mask_assertion_from_branch-0-12-0.png

     
  • Eugene Sandulenko

    Logged In: YES
    user_id=166507
    Originator: NO

    Raising priority. This is a release-critical bug.

     
  • Eugene Sandulenko

    • priority: 5 --> 9
     
  • Torbjörn Andersson

    Logged In: YES
    user_id=577918
    Originator: NO

    Whatever object it's trying to draw has an empty 'name' field, so it's hard to say for sure what it's supposed to be.

     
  • Eugene Sandulenko

    • priority: 9 --> 5
     
  • Eugene Sandulenko

    Logged In: YES
    user_id=166507
    Originator: NO

    What is the status of this item?

     
  • Kari Salminen

    Kari Salminen - 2008-08-24

    Logged In: YES
    user_id=1803212
    Originator: YES

    I changed the rows

    assert(mask);
    drawSpriteRaw(data, mask, width, height, _background, x, y);

    from FWRenderer::incrustSprite(const objectStruct &obj) to

    if (mask) {
    drawSpriteRaw(data, mask, width, height, _background, x, y);
    }

    and therefore omit drawing sprites that have no mask in that function.
    What little testing I did, it seems to work, at least the provided
    savegames load ok and look correct. So more testing would definitely
    still be nice.

    Fix committed to trunk in revision 34132:
    http://scummvm.svn.sourceforge.net/scummvm/?rev=34132&view=rev

    Fix backported to branch-0-12-0 in revision 34133:
    http://scummvm.svn.sourceforge.net/scummvm/?rev=34133&view=rev

     
  • Kari Salminen

    Kari Salminen - 2008-08-24
    • status: open --> closed-fixed