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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Sat Jun 16 10:53:47 CEST 2007


Revision: 27445
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27445&view=rev
Author:   thebluegr
Date:     2007-06-16 01:53:46 -0700 (Sat, 16 Jun 2007)

Log Message:
-----------
IHNM: Implemented cutaway fadeout

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-16 08:51:30 UTC (rev 27444)
+++ scummvm/trunk/engines/saga/animation.cpp	2007-06-16 08:53:46 UTC (rev 27445)
@@ -96,8 +96,10 @@
 
 	_vm->_gfx->savePalette();
 
-	// TODO
-	/*if (fade) {
+	if (fade) {
+		_vm->_gfx->getCurrentPal(saved_pal);
+		// TODO
+		/*
 		Event event;
 		static PalEntry cur_pal[PAL_ENTRIES];
 
@@ -111,7 +113,8 @@
 		event.data = cur_pal;
 
 		_vm->_events->queue(&event);
-	}*/
+		*/
+	}
 
 	// Prepare cutaway
 	_vm->_gfx->showCursor(false);
@@ -219,14 +222,47 @@
 
 	debug(0, "returnFromCutaway()");
 
+
 	if (_cutawayActive) {
+		Event event;
+		Event *q_event = NULL;
+
+		if (_cutAwayFade) {
+			static PalEntry cur_pal[PAL_ENTRIES];
+
+			_vm->_gfx->getCurrentPal(cur_pal);
+
+			event.type = kEvTImmediate;
+			event.code = kPalEvent;
+			event.op = kEventPalToBlack;
+			event.time = 0;
+			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
+		/*
+		event.type = kEvTImmediate;
+		event.code = kCutawayEvent;
+		event.op = kEventClearCutaway;
+		event.time = 0;
+		event.duration = 0;
 
+		if (_cutAwayFade)
+			q_event = _vm->_events->chain(q_event, &event);		// chain with the other events
+		else
+			q_event = _vm->_events->queue(&event);
+		*/
+
+		// Restore the scene
+		_vm->_scene->restoreScene();
+
 		// Handle fade up, if we previously faded down
-		// TODO
-		/*if (_cutAwayFade) {
-			Event event;
+		if (_cutAwayFade) {
 			event.type = kEvTImmediate;
 			event.code = kPalEvent;
 			event.op = kEventBlackToPal;
@@ -234,12 +270,9 @@
 			event.duration = kNormalFadeDuration;
 			event.data = saved_pal;
 
-			_vm->_events->queue(&event);
-		}*/
+			q_event = _vm->_events->chain(q_event, &event);
+		}
 
-		// Restore the scene
-		_vm->_scene->restoreScene();
-
 		// Restore the animations
 		for (int i = 0; i < MAX_ANIMATIONS; i++) {
 			if (_animations[i] && _animations[i]->state == ANIM_PLAYING) {

Modified: scummvm/trunk/engines/saga/events.cpp
===================================================================
--- scummvm/trunk/engines/saga/events.cpp	2007-06-16 08:51:30 UTC (rev 27444)
+++ scummvm/trunk/engines/saga/events.cpp	2007-06-16 08:53:46 UTC (rev 27445)
@@ -469,6 +469,14 @@
 		default:
 			break;
 		}
+	case kCutawayEvent:
+		switch (event->op) {
+		case kEventClearCutaway:
+			_vm->_anim->clearCutaway();
+			break;
+		default:
+			break;
+		}
 	default:
 		break;
 	}

Modified: scummvm/trunk/engines/saga/events.h
===================================================================
--- scummvm/trunk/engines/saga/events.h	2007-06-16 08:51:30 UTC (rev 27444)
+++ scummvm/trunk/engines/saga/events.h	2007-06-16 08:53:46 UTC (rev 27445)
@@ -59,7 +59,8 @@
 	kActorEvent,
 	kScriptEvent,
 	kCursorEvent,
-	kGraphicsEvent
+	kGraphicsEvent,
+	kCutawayEvent
 };
 
 enum EventOps {
@@ -111,7 +112,9 @@
 	kEventBlackToPal = 2,
 	// TRANSITION events
 	kEventDissolve = 1,
-	kEventDissolveBGMask = 2
+	kEventDissolveBGMask = 2,
+	// CUTAWAY events
+	kEventClearCutaway = 1
 };
 
 enum EventParams {


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