Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#3868 closed defect (fixed)

FW: incrustSprite fails on savegame loading

Reported by: SF/buddha_ Owned by: SF/buddha_
Priority: normal Component: Engine: Cine
Keywords: Cc:
Game: Future Wars

Description

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).

Ticket imported from: #2055912. Ticket imported from: bugs/3868.

Attachments (5)

fw.0 (1.6 KB ) - added by SF/buddha_ 11 years ago.
The failing savegame from Future Wars
scummvm-trunk-revision_32256-after_loading_savegame.png (27.9 KB ) - added by SF/buddha_ 11 years ago.
Picture after loading the provided savegame with trunk revision 32256
fw-1.2 (1.4 KB ) - added by eriktorbjorn 11 years ago.
Working savegame just before.
scummvm-branch-0-12-0-revision_33966-after_working_savegame.png (28.8 KB ) - added by SF/buddha_ 11 years ago.
A screenshot of how the screen looks after getting behind the boxes in the working savegame
after_removing_the_mask_assertion_from_branch-0-12-0.png (25.1 KB ) - added by SF/buddha_ 11 years ago.
Screenshot of how things look after loading the bugging savegame in branch-0-12-0 without the assert(mask) in incrustSprite

Download all attachments as: .zip

Change History (17)

by SF/buddha_, 11 years ago

Attachment: fw.0 added

The failing savegame from Future Wars

by SF/buddha_, 11 years ago

Picture after loading the provided savegame with trunk revision 32256

comment:1 by SF/buddha_, 11 years ago

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

comment:2 by SF/buddha_, 11 years ago

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.

by eriktorbjorn, 11 years ago

Attachment: fw-1.2 added

Working savegame just before.

comment:3 by eriktorbjorn, 11 years ago

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

by SF/buddha_, 11 years ago

A screenshot of how the screen looks after getting behind the boxes in the working savegame

comment:4 by SF/buddha_, 11 years ago

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

by SF/buddha_, 11 years ago

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

comment:5 by SF/buddha_, 11 years ago

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

comment:6 by sev-, 11 years ago

Raising priority. This is a release-critical bug.

comment:7 by sev-, 11 years ago

Priority: normalblocker

comment:8 by eriktorbjorn, 11 years ago

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.

comment:9 by sev-, 11 years ago

Priority: blockernormal

comment:10 by sev-, 11 years ago

What is the status of this item?

comment:11 by SF/buddha_, 11 years ago

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

comment:12 by SF/buddha_, 11 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.