aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schickel2006-01-08 13:50:35 +0000
committerJohannes Schickel2006-01-08 13:50:35 +0000
commit5713d00eab77e3b9911114986c0ce75b9c30f938 (patch)
tree3107aab0dabdee44cbf7e96807ad649c9e03b88e
parentd34acdb4627c39f274e43ba8813bacc6204e110c (diff)
downloadscummvm-rg350-5713d00eab77e3b9911114986c0ce75b9c30f938.tar.gz
scummvm-rg350-5713d00eab77e3b9911114986c0ce75b9c30f938.tar.bz2
scummvm-rg350-5713d00eab77e3b9911114986c0ce75b9c30f938.zip
Fixed bug with sequences playing and fixed a bug with an invaild write.
svn-id: r19945
-rw-r--r--kyra/kyra.cpp2
-rwxr-xr-xkyra/seqplayer.cpp2
-rw-r--r--kyra/staticres.cpp4
3 files changed, 4 insertions, 4 deletions
diff --git a/kyra/kyra.cpp b/kyra/kyra.cpp
index a4d86656a9..3706f93204 100644
--- a/kyra/kyra.cpp
+++ b/kyra/kyra.cpp
@@ -2703,7 +2703,7 @@ void KyraEngine::initAnimStateList() {
void KyraEngine::initSceneObjectList(int brandonAlive) {
debug(9, "KyraEngine::initSceneObjectList(%d)", brandonAlive);
- for (int i = 0; i < 31; ++i) {
+ for (int i = 0; i < 28; ++i) {
_animator->actors()[i].active = 0;
}
diff --git a/kyra/seqplayer.cpp b/kyra/seqplayer.cpp
index 3102b4d7d0..618cdcd571 100755
--- a/kyra/seqplayer.cpp
+++ b/kyra/seqplayer.cpp
@@ -417,7 +417,7 @@ void SeqPlayer::s1_allocTempBuffer() {
if (_vm->features() & GF_DEMO) {
_seqQuitFlag = true;
} else {
- if (!_specialBuffer) {
+ if (!_specialBuffer && !_copyViewOffs) {
_specialBuffer = new uint8[40960];
assert(_specialBuffer);
int page = _screen->_curPage;
diff --git a/kyra/staticres.cpp b/kyra/staticres.cpp
index 2b846dcf3b..8a12825b0a 100644
--- a/kyra/staticres.cpp
+++ b/kyra/staticres.cpp
@@ -257,7 +257,7 @@ void KyraEngine::res_loadResources(int type) {
void KyraEngine::res_unloadResources(int type) {
debug(9, "res_unloadResources(%d)", type);
- if ((type & RES_INTRO) || (type & RES_OUTRO) || type == RES_ALL) {
+ if ((type & RES_INTRO) || (type & RES_OUTRO) || type & RES_ALL) {
res_freeLangTable(&_seq_WSATable, &_seq_WSATable_Size);
res_freeLangTable(&_seq_CPSTable, &_seq_CPSTable_Size);
res_freeLangTable(&_seq_COLTable, &_seq_COLTable_Size);
@@ -278,7 +278,7 @@ void KyraEngine::res_unloadResources(int type) {
res_freeLangTable(&_homeString, &_homeString_Size);
}
- if ((type & RES_INGAME) || type == RES_ALL) {
+ if ((type & RES_INGAME) || type & RES_ALL) {
res_freeLangTable(&_roomFilenameTable, &_roomFilenameTableSize);
delete [] _roomTable; _roomTable = 0;