#3868 closed defect (fixed)
FW: incrustSprite fails on savegame loading
Reported by: | SF/buddha_ | Owned by: | SF/buddha_ |
---|---|---|---|
Priority: | normal | Component: | Engine: Cine |
Version: | 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)
Change History (17)
by , 16 years ago
by , 16 years ago
Attachment: | scummvm-trunk-revision_32256-after_loading_savegame.png added |
---|
Picture after loading the provided savegame with trunk revision 32256
comment:2 by , 16 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.
comment:3 by , 16 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 , 16 years ago
Attachment: | scummvm-branch-0-12-0-revision_33966-after_working_savegame.png added |
---|
A screenshot of how the screen looks after getting behind the boxes in the working savegame
comment:4 by , 16 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 , 16 years ago
Attachment: | after_removing_the_mask_assertion_from_branch-0-12-0.png added |
---|
Screenshot of how things look after loading the bugging savegame in branch-0-12-0 without the assert(mask) in incrustSprite
comment:5 by , 16 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:7 by , 16 years ago
Priority: | normal → blocker |
---|
comment:8 by , 16 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 , 16 years ago
Priority: | blocker → normal |
---|
comment:11 by , 16 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 , 16 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
The failing savegame from Future Wars