[Scummvm-cvs-logs] SF.net SVN: scummvm: [27504] scummvm/trunk/engines/saga

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Sun Jun 17 03:50:50 CEST 2007


Revision: 27504
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27504&view=rev
Author:   thebluegr
Date:     2007-06-16 18:50:49 -0700 (Sat, 16 Jun 2007)

Log Message:
-----------
Fixed the remaining glitch with fading after a cutaway is shown

Modified Paths:
--------------
    scummvm/trunk/engines/saga/animation.cpp
    scummvm/trunk/engines/saga/events.cpp
    scummvm/trunk/engines/saga/events.h

Modified: scummvm/trunk/engines/saga/animation.cpp
===================================================================
--- scummvm/trunk/engines/saga/animation.cpp	2007-06-17 01:35:28 UTC (rev 27503)
+++ scummvm/trunk/engines/saga/animation.cpp	2007-06-17 01:50:49 UTC (rev 27504)
@@ -236,16 +236,13 @@
 			event.code = kPalEvent;
 			event.op = kEventPalToBlack;
 			event.time = 0;
-			event.duration = 5000; //kNormalFadeDuration;
+			event.duration = kNormalFadeDuration;
 			event.data = cur_pal;
 
 			q_event = _vm->_events->queue(&event);
 		}
 
-		// Note that clearCutaway() sets _cutawayActive to false.
-		// clearCutaway();
-		// TODO: Clearing the cutaway via an event is better, but it breaks things up
-
+		// Clear the cutaway. Note that this sets _cutawayActive to false
 		event.type = kEvTImmediate;
 		event.code = kCutawayEvent;
 		event.op = kEventClearCutaway;
@@ -268,13 +265,22 @@
 
 		q_event = _vm->_events->chain(q_event, &event);		// chain with the other events
 
+		// Draw the scene
+		event.type = kEvTImmediate;
+		event.code = kSceneEvent;
+		event.op = kEventDrawScene;
+		event.time = 0;
+		event.duration = 0;
+
+		q_event = _vm->_events->chain(q_event, &event);		// chain with the other events
+
 		// Handle fade up, if we previously faded down
 		if (_cutAwayFade) {
 			event.type = kEvTImmediate;
 			event.code = kPalEvent;
 			event.op = kEventBlackToPal;
 			event.time = 0;
-			event.duration = 5000; //kNormalFadeDuration;
+			event.duration = kNormalFadeDuration;
 			event.data = saved_pal;
 
 			q_event = _vm->_events->chain(q_event, &event);

Modified: scummvm/trunk/engines/saga/events.cpp
===================================================================
--- scummvm/trunk/engines/saga/events.cpp	2007-06-17 01:35:28 UTC (rev 27503)
+++ scummvm/trunk/engines/saga/events.cpp	2007-06-17 01:50:49 UTC (rev 27504)
@@ -369,6 +369,19 @@
 		break;
 	case kSceneEvent:
 		switch (event->op) {
+		case kEventDrawScene:
+			{
+				Surface *backGroundSurface;
+				BGInfo bgInfo;
+
+				backBuffer = _vm->_gfx->getBackBuffer();
+				backGroundSurface = _vm->_render->getBackGroundSurface();
+				_vm->_scene->getBGInfo(bgInfo);
+				backGroundSurface->blit(bgInfo.bounds, bgInfo.buffer);
+
+				_vm->_scene->draw();
+			}
+			break;
 		case kEventEnd:
 			_vm->_scene->nextScene();
 			return kEvStBreak;

Modified: scummvm/trunk/engines/saga/events.h
===================================================================
--- scummvm/trunk/engines/saga/events.h	2007-06-17 01:35:28 UTC (rev 27503)
+++ scummvm/trunk/engines/saga/events.h	2007-06-17 01:50:49 UTC (rev 27504)
@@ -78,6 +78,7 @@
 	kEventPlay = 1,
 	kEventStop = 2,
 	// SCENE events
+	kEventDrawScene = 1,
 	kEventEnd = 2,
 	// TEXT events
 	kEventHide = 2,


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list