[Scummvm-git-logs] scummvm master -> 0a59d0a1c233bfec944b1eae5e281392793f5059

sev- sev at scummvm.org
Fri Mar 10 09:20:25 CET 2017


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

Summary:
3c08904e5f DIRECTOR: Fixed global even handlers calling
f123a6e4eb DIRECTOR: More debug output for movie playback
2506f61575 DIRECTOR: Lingo: Reset scripts when switching movies
0a59d0a1c2 DIRECTOR: Lingo: Don't leak memory on restart


Commit: 3c08904e5f4fe6c3d9dc9cf35cfed2d63aaa46e5
    https://github.com/scummvm/scummvm/commit/3c08904e5f4fe6c3d9dc9cf35cfed2d63aaa46e5
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2017-03-10T09:00:35+01:00

Commit Message:
DIRECTOR: Fixed global even handlers calling

Handlers defined via 'when ...', should stay at global level

Changed paths:
    engines/director/events.cpp
    engines/director/score.cpp
    engines/director/score.h


diff --git a/engines/director/events.cpp b/engines/director/events.cpp
index 613e83c..a4e3f58 100644
--- a/engines/director/events.cpp
+++ b/engines/director/events.cpp
@@ -111,8 +111,7 @@ void DirectorEngine::processEvents() {
 					warning("Keycode: %d", _keyCode);
 				}
 
-				// TODO: is movie script correct? Can this be elsewhere?
-				_lingo->processEvent(kEventKeyDown, kMovieScript, 0);
+				_lingo->processEvent(kEventKeyDown, kGlobalScript, 0);
 			}
 		}
 
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 1ba0ab4..ea3ce9b 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -621,6 +621,9 @@ void Score::dumpScript(const char *script, ScriptType type, uint16 id) {
 	case kCastScript:
 		typeName = "cast";
 		break;
+	case kGlobalScript:
+		typeName = "global";
+		break;
 	}
 
 	sprintf(buf, "./dumps/%s-%s-%d.txt", _macName.c_str(), typeName.c_str(), id);
diff --git a/engines/director/score.h b/engines/director/score.h
index 3e7aa62..346a84c 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -48,8 +48,9 @@ enum ScriptType {
 	kSpriteScript = 1,
 	kFrameScript = 2,
 	kCastScript = 3,
+	kGlobalScript = 4,
 	kNoneScript = -1,
-	kMaxScriptType = 3
+	kMaxScriptType = 4
 };
 
 const char *scriptType2str(ScriptType scr);


Commit: f123a6e4eba2b859dbbea67354ea4b125627d8b1
    https://github.com/scummvm/scummvm/commit/f123a6e4eba2b859dbbea67354ea4b125627d8b1
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2017-03-10T09:10:11+01:00

Commit Message:
DIRECTOR: More debug output for movie playback

Changed paths:
    engines/director/director.cpp


diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index edea7ea..c6459ea 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -176,8 +176,12 @@ Common::Error DirectorEngine::run() {
 			_nextMovie.frameI = -1;
 		}
 
+		debugC(1, kDebugEvents, "Starting playback of score '%s'", _currentScore->getMacName().c_str());
+
 		_currentScore->startLoop();
 
+		debugC(1, kDebugEvents, "Finished playback of score '%s'", _currentScore->getMacName().c_str());
+
 		// If a loop was requested, do it
 		if (!_nextMovie.movie.empty()) {
 			_lingo->restartLingo();
@@ -193,7 +197,7 @@ Common::Error DirectorEngine::run() {
 			}
 
 			_currentScore = new Score(this, mov);
-			debug(0, "Score name %s", _currentScore->getMacName().c_str());
+			debug(0, "Switching to score '%s'", _currentScore->getMacName().c_str());
 
 			_nextMovie.movie.clear();
 			loop = true;


Commit: 2506f61575a694c27b759e4dd9d1ea194a3a9d0e
    https://github.com/scummvm/scummvm/commit/2506f61575a694c27b759e4dd9d1ea194a3a9d0e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2017-03-10T09:13:46+01:00

Commit Message:
DIRECTOR: Lingo: Reset scripts when switching movies

Changed paths:
    engines/director/lingo/lingo.cpp


diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 706f767..d7ba3db 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -318,6 +318,10 @@ void Lingo::processEvent(LEvent event, ScriptType st, int entityId) {
 void Lingo::restartLingo() {
 	warning("STUB: restartLingo()");
 
+	for (int i = 0; i <= kMaxScriptType; i++) {
+		_scripts[i].clear();
+	}
+
 	// TODO
 	//
 	// reset the following:


Commit: 0a59d0a1c233bfec944b1eae5e281392793f5059
    https://github.com/scummvm/scummvm/commit/0a59d0a1c233bfec944b1eae5e281392793f5059
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2017-03-10T09:19:00+01:00

Commit Message:
DIRECTOR: Lingo: Don't leak memory on restart

Changed paths:
    engines/director/lingo/lingo.cpp


diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index d7ba3db..2a089dd 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -319,6 +319,9 @@ void Lingo::restartLingo() {
 	warning("STUB: restartLingo()");
 
 	for (int i = 0; i <= kMaxScriptType; i++) {
+		for (ScriptHash::iterator it = _scripts[i].begin(); it != _scripts[i].end(); ++it)
+			delete it->_value;
+
 		_scripts[i].clear();
 	}
 





More information about the Scummvm-git-logs mailing list