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

sev at users.sourceforge.net sev at users.sourceforge.net
Sun Jun 17 03:00:07 CEST 2007


Revision: 27502
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27502&view=rev
Author:   sev
Date:     2007-06-16 18:00:06 -0700 (Sat, 16 Jun 2007)

Log Message:
-----------
More efforts to implement proper fade after cutaway. One little glitch is left.

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

Modified: scummvm/trunk/engines/saga/animation.cpp
===================================================================
--- scummvm/trunk/engines/saga/animation.cpp	2007-06-16 23:50:57 UTC (rev 27501)
+++ scummvm/trunk/engines/saga/animation.cpp	2007-06-17 01:00:06 UTC (rev 27502)
@@ -236,7 +236,7 @@
 			event.code = kPalEvent;
 			event.op = kEventPalToBlack;
 			event.time = 0;
-			event.duration = kNormalFadeDuration;
+			event.duration = 5000; //kNormalFadeDuration;
 			event.data = cur_pal;
 
 			q_event = _vm->_events->queue(&event);
@@ -257,15 +257,8 @@
 		else
 			q_event = _vm->_events->queue(&event);
 
-		// Restore the scene
-		event.type = kEvTImmediate;
-		event.code = kSceneEvent;
-		event.op = kEventRestore;
-		event.time = 0;
-		event.duration = 0;
+		_vm->_scene->restoreScene();
 
-		q_event = _vm->_events->chain(q_event, &event);		// chain with the other events
-
 		// Restore the animations
 		event.type = kEvTImmediate;
 		event.code = kAnimEvent;
@@ -281,15 +274,24 @@
 			event.code = kPalEvent;
 			event.op = kEventBlackToPal;
 			event.time = 0;
-			event.duration = 3000; //kNormalFadeDuration;
+			event.duration = 5000; //kNormalFadeDuration;
 			event.data = saved_pal;
 
 			q_event = _vm->_events->chain(q_event, &event);
+
 		}
+
+		event.type = kEvTOneshot;
+		event.code = kScriptEvent;
+		event.op = kEventThreadWake;
+		event.param = kWaitTypeWakeUp;
+
+		q_event = _vm->_events->chain(q_event, &event);
 	}
 }
 
 void Anim::clearCutaway(void) {
+	debug(1, "clearCutaway()");
 	if (_cutawayActive) {
 		_cutawayActive = false;
 

Modified: scummvm/trunk/engines/saga/events.cpp
===================================================================
--- scummvm/trunk/engines/saga/events.cpp	2007-06-16 23:50:57 UTC (rev 27501)
+++ scummvm/trunk/engines/saga/events.cpp	2007-06-17 01:00:06 UTC (rev 27502)
@@ -372,9 +372,6 @@
 		case kEventEnd:
 			_vm->_scene->nextScene();
 			return kEvStBreak;
-		case kEventRestore:
-			_vm->_scene->restoreScene();
-			return kEvStBreak;
 		default:
 			break;
 		}

Modified: scummvm/trunk/engines/saga/events.h
===================================================================
--- scummvm/trunk/engines/saga/events.h	2007-06-16 23:50:57 UTC (rev 27501)
+++ scummvm/trunk/engines/saga/events.h	2007-06-17 01:00:06 UTC (rev 27502)
@@ -79,7 +79,6 @@
 	kEventStop = 2,
 	// SCENE events
 	kEventEnd = 2,
-	kEventRestore = 3,
 	// TEXT events
 	kEventHide = 2,
 	kEventRemove = 3,

Modified: scummvm/trunk/engines/saga/interface.cpp
===================================================================
--- scummvm/trunk/engines/saga/interface.cpp	2007-06-16 23:50:57 UTC (rev 27501)
+++ scummvm/trunk/engines/saga/interface.cpp	2007-06-17 01:00:06 UTC (rev 27502)
@@ -340,15 +340,20 @@
 	assert (_savedMode == -1);
 
 	_savedMode = _panelMode;
+
+	debug(1, "rememberMode(%d)", _savedMode);
 }
 
-void Interface::restoreMode() {
+void Interface::restoreMode(bool draw_) {
 	assert (_savedMode != -1);
 
+	debug(1, "restoreMode(%d)", _savedMode);
+
 	_panelMode = _savedMode;
 	_savedMode = -1;
 
-	draw();
+	if (draw_)
+		draw();
 }
 
 void Interface::setMode(int mode) {

Modified: scummvm/trunk/engines/saga/interface.h
===================================================================
--- scummvm/trunk/engines/saga/interface.h	2007-06-16 23:50:57 UTC (rev 27501)
+++ scummvm/trunk/engines/saga/interface.h	2007-06-17 01:00:06 UTC (rev 27502)
@@ -197,7 +197,7 @@
 		return _fadeMode;
 	}
 	void rememberMode();
-	void restoreMode();
+	void restoreMode(bool draw_ = true);
 	bool isInMainMode() { return _inMainMode; }
 	void setStatusText(const char *text, int statusColor = -1);
 	void loadScenePortraits(int resourceId);

Modified: scummvm/trunk/engines/saga/script.h
===================================================================
--- scummvm/trunk/engines/saga/script.h	2007-06-16 23:50:57 UTC (rev 27501)
+++ scummvm/trunk/engines/saga/script.h	2007-06-17 01:00:06 UTC (rev 27502)
@@ -105,7 +105,8 @@
 	kWaitTypePause = 7,
 	kWaitTypePlacard = 8,
 	kWaitTypeStatusTextInput = 9,
-	kWaitTypeWaitFrames = 10    // IHNM. waiting for a frame count
+	kWaitTypeWaitFrames = 10,   // IHNM. waiting for a frame count
+	kWaitTypeWakeUp = 11		// IHNM. wait until get waken up
 };
 
 enum OpCodes {

Modified: scummvm/trunk/engines/saga/sfuncs.cpp
===================================================================
--- scummvm/trunk/engines/saga/sfuncs.cpp	2007-06-16 23:50:57 UTC (rev 27501)
+++ scummvm/trunk/engines/saga/sfuncs.cpp	2007-06-17 01:00:06 UTC (rev 27502)
@@ -1900,6 +1900,7 @@
 
 void Script::sfReturnFromCutAway(SCRIPTFUNC_PARAMS) {
 	_vm->_anim->returnFromCutaway();
+	thread->wait(kWaitTypeWakeUp);
 }
 
 void Script::sfEndCutAway(SCRIPTFUNC_PARAMS) {


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