[Scummvm-cvs-logs] scummvm master -> 763eedd0df5aed045e121b9256c6664278451d68

sev- sev at scummvm.org
Fri Sep 13 23:20:57 CEST 2013


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
1e72640cba FULLPIPE: Fix leaked resource. CID 1063205
4db215a511 FULLPIPE: Move PreloadItem methods where they belong
763eedd0df FULLPIPE: Fix condition. CID 1063217


Commit: 1e72640cbacac854d87090f86f6a79ba9ccdd522
    https://github.com/scummvm/scummvm/commit/1e72640cbacac854d87090f86f6a79ba9ccdd522
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-09-13T14:08:50-07:00

Commit Message:
FULLPIPE: Fix leaked resource. CID 1063205

Changed paths:
    engines/fullpipe/sound.cpp



diff --git a/engines/fullpipe/sound.cpp b/engines/fullpipe/sound.cpp
index 7f34412..821049c 100644
--- a/engines/fullpipe/sound.cpp
+++ b/engines/fullpipe/sound.cpp
@@ -49,7 +49,7 @@ bool SoundList::load(MfcArchive &file, char *fname) {
 	for (int i = 0; i < _soundItemsCount; i++) {
 		Sound *snd = new Sound();
 
-		_soundItems[i] = 0;
+		_soundItems[i] = snd;
 		snd->load(file, _libHandle);
 	}
 


Commit: 4db215a511e9829734fb3cae0785a7adb353e816
    https://github.com/scummvm/scummvm/commit/4db215a511e9829734fb3cae0785a7adb353e816
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-09-13T14:14:49-07:00

Commit Message:
FULLPIPE: Move PreloadItem methods where they belong

Changed paths:
    engines/fullpipe/gameloader.cpp
    engines/fullpipe/gameloader.h
    engines/fullpipe/stateloader.cpp



diff --git a/engines/fullpipe/gameloader.cpp b/engines/fullpipe/gameloader.cpp
index fa8eddf..2a8f64d 100644
--- a/engines/fullpipe/gameloader.cpp
+++ b/engines/fullpipe/gameloader.cpp
@@ -246,7 +246,7 @@ bool CGameLoader::preloadScene(int sceneId, int entranceId) {
 	int idx = -1;
 
 	for (uint i = 0; i < _preloadItems.size(); i++)
-		if (_preloadItems[i].preloadId1 == sceneId && _preloadItems[i].preloadId2 == entranceId) {
+		if (_preloadItems[i]->preloadId1 == sceneId && _preloadItems[i]->preloadId2 == entranceId) {
 			idx = i;
 			break;
 		}
@@ -258,7 +258,7 @@ bool CGameLoader::preloadScene(int sceneId, int entranceId) {
 	}
 
 	if (_preloadCallback) {
-		if (!_preloadCallback(_preloadItems[idx], 0))
+		if (!_preloadCallback(*_preloadItems[idx], 0))
 			return false;
 	}
 
@@ -270,19 +270,19 @@ bool CGameLoader::preloadScene(int sceneId, int entranceId) {
 	unloadScene(sceneId);
 
 	if (_preloadCallback)
-		_preloadCallback(_preloadItems[idx], 50);
+		_preloadCallback(*_preloadItems[idx], 50);
 
-	loadScene(_preloadItems[idx].sceneId);
+	loadScene(_preloadItems[idx]->sceneId);
 
-	ExCommand *ex = new ExCommand(_preloadItems[idx].sceneId, 17, 62, 0, 0, 0, 1, 0, 0, 0);
+	ExCommand *ex = new ExCommand(_preloadItems[idx]->sceneId, 17, 62, 0, 0, 0, 1, 0, 0, 0);
 	ex->_excFlags = 2;
-	ex->_keyCode = _preloadItems[idx].keyCode;
+	ex->_keyCode = _preloadItems[idx]->keyCode;
 
 	_preloadSceneId = 0;
 	_preloadEntranceId = 0;
 
 	if (_preloadCallback)
-		_preloadCallback(_preloadItems[idx], 100);
+		_preloadCallback(*_preloadItems[idx], 100);
 
 	ex->postMessage();
 
@@ -476,6 +476,26 @@ bool Sc2::load(MfcArchive &file) {
 	return true;
 }
 
+bool PreloadItems::load(MfcArchive &file) {
+	debug(5, "PreloadItems::load()");
+
+	int count = file.readCount();
+
+	resize(count);
+
+	for (int i = 0; i < count; i++) {
+		PreloadItem *t = new PreloadItem();
+		t->preloadId1 = file.readUint32LE();
+		t->preloadId2 = file.readUint32LE();
+		t->sceneId = file.readUint32LE();
+		t->keyCode = file.readUint32LE();
+
+		push_back(t);
+	}
+
+	return true;
+}
+
 CGameVar *FullpipeEngine::getGameLoaderGameVar() {
 	if (_gameLoader)
 		return _gameLoader->_gameVar;
diff --git a/engines/fullpipe/gameloader.h b/engines/fullpipe/gameloader.h
index 87cd1f1..2f1f57a 100644
--- a/engines/fullpipe/gameloader.h
+++ b/engines/fullpipe/gameloader.h
@@ -67,7 +67,7 @@ struct PreloadItem {
 
 bool preloadCallback(const PreloadItem &pre, int flag);
 
-class PreloadItems : public Common::Array<PreloadItem>, public CObject {
+class PreloadItems : public Common::Array<PreloadItem *>, public CObject {
  public:
 	virtual bool load(MfcArchive &file);
 };
diff --git a/engines/fullpipe/stateloader.cpp b/engines/fullpipe/stateloader.cpp
index dd00361..55d74c4 100644
--- a/engines/fullpipe/stateloader.cpp
+++ b/engines/fullpipe/stateloader.cpp
@@ -143,26 +143,6 @@ GameProject::~GameProject() {
 	free(_headerFilename);
 }
 
-bool PreloadItems::load(MfcArchive &file) {
-	debug(5, "PreloadItems::load()");
-
-	int count = file.readCount();
-
-	resize(count);
-
-	for (int i = 0; i < count; i++) {
-		PreloadItem *t = new PreloadItem();
-		t->preloadId1 = file.readUint32LE();
-		t->preloadId2 = file.readUint32LE();
-		t->sceneId = file.readUint32LE();
-		t->keyCode = file.readUint32LE();
-
-		push_back(*t);
-	}
-
-	return true;
-}
-
 CGameVar::CGameVar() {
 	_subVars = 0;
 	_parentVarObj = 0;


Commit: 763eedd0df5aed045e121b9256c6664278451d68
    https://github.com/scummvm/scummvm/commit/763eedd0df5aed045e121b9256c6664278451d68
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2013-09-13T14:17:43-07:00

Commit Message:
FULLPIPE: Fix condition. CID 1063217

Changed paths:
    engines/fullpipe/statics.cpp



diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp
index 1fd02f8..7d692ab 100644
--- a/engines/fullpipe/statics.cpp
+++ b/engines/fullpipe/statics.cpp
@@ -549,7 +549,7 @@ void StaticANIObject::draw2() {
 MovTable *StaticANIObject::countMovements() {
 	CGameVar *preloadSubVar = g_fullpipe->getGameLoaderGameVar()->getSubVarByName(getName())->getSubVarByName("PRELOAD");
 
-	if (preloadSubVar || preloadSubVar->getSubVarsCount() == 0)
+	if (!preloadSubVar || preloadSubVar->getSubVarsCount() == 0)
 		return 0;
 
 	MovTable *movTable = new MovTable;






More information about the Scummvm-git-logs mailing list