[Scummvm-cvs-logs] CVS: scummvm/scumm/smush codec37.cpp,1.26,1.26.2.1 smush_player.cpp,1.111.2.1,1.111.2.2 smush_player.h,1.26,1.26.2.1
Travis Howell
kirben at users.sourceforge.net
Thu Apr 22 05:29:10 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm/smush
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4537/scumm/smush
Modified Files:
Tag: branch-0-6-0
codec37.cpp smush_player.cpp smush_player.h
Log Message:
Add some fixes from main branch:
special case for 384x242 smush resolution for ft pc demo, it use additional buffer
Fix bad array size (part of bug report #924685)
Index: codec37.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/codec37.cpp,v
retrieving revision 1.26
retrieving revision 1.26.2.1
diff -u -d -r1.26 -r1.26.2.1
--- codec37.cpp 6 Jan 2004 12:45:31 -0000 1.26
+++ codec37.cpp 22 Apr 2004 12:27:22 -0000 1.26.2.1
@@ -464,7 +464,7 @@
memcpy(_deltaBufs[_curtable], src + 16, decoded_size);
break;
case 1:
- error("codec37: missing opcode 1");
+ warning("codec37: missing opcode 1");
break;
case 2:
bompDecodeLine(_deltaBufs[_curtable], src + 16, decoded_size);
Index: smush_player.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/smush_player.cpp,v
retrieving revision 1.111.2.1
retrieving revision 1.111.2.2
diff -u -d -r1.111.2.1 -r1.111.2.2
--- smush_player.cpp 29 Feb 2004 01:08:17 -0000 1.111.2.1
+++ smush_player.cpp 22 Apr 2004 12:27:22 -0000 1.111.2.2
@@ -224,7 +224,8 @@
_sf[4] = NULL;
_base = NULL;
_frameBuffer = NULL;
-
+ _specialBuffer = NULL;
+
_skipNext = false;
_subtitles = ConfMan.getBool("subtitles");
_dst = NULL;
@@ -284,6 +285,11 @@
_base = NULL;
}
+ if (_specialBuffer) {
+ free(_specialBuffer);
+ _specialBuffer = NULL;
+ }
+
_vm->_mixer->stopHandle(_IACTchannel);
_vm->_fullRedraw = true;
@@ -680,13 +686,14 @@
int width = b.getWord();
int height = b.getWord();
- if ((height > _vm->_screenHeight) || (width > _vm->_screenWidth))
+ if ((height == 242) && (width == 384)) {
+ _dst = _specialBuffer = (byte *)malloc(242 * 384);
+ } else if ((height > _vm->_screenHeight) || (width > _vm->_screenWidth))
return;
-
// FT Insane uses smaller frames to draw overlays with moving objects
// Other .san files do have them as well but their purpose in unknown
// and often it causes memory overdraw. So just skip those frames
- if (!_insanity && ((height != _vm->_screenHeight) || (width != _vm->_screenWidth)))
+ else if (!_insanity && ((height != _vm->_screenHeight) || (width != _vm->_screenWidth)))
return;
if (!_alreadyInit) {
@@ -695,8 +702,8 @@
_alreadyInit = true;
}
- _width = _vm->_screenWidth;
- _height = _vm->_screenHeight;
+ _width = width;
+ _height = height;
b.getWord();
b.getWord();
Index: smush_player.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/smush_player.h,v
retrieving revision 1.26
retrieving revision 1.26.2.1
diff -u -d -r1.26 -r1.26.2.1
--- smush_player.h 9 Feb 2004 18:57:05 -0000 1.26
+++ smush_player.h 22 Apr 2004 12:27:22 -0000 1.26.2.1
@@ -49,6 +49,7 @@
Codec47Decoder _codec47;
FileChunk *_base;
byte *_frameBuffer;
+ byte *_specialBuffer;
bool _skipNext;
bool _subtitles;
More information about the Scummvm-git-logs
mailing list