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

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Mon Jun 11 04:30:07 CEST 2007


Revision: 27338
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27338&view=rev
Author:   thebluegr
Date:     2007-06-10 19:30:04 -0700 (Sun, 10 Jun 2007)

Log Message:
-----------
Implemented Scene::RestoreScene and fixed some animation bugs. Animations and videos in IHNM should display correctly now

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

Modified: scummvm/trunk/engines/saga/animation.cpp
===================================================================
--- scummvm/trunk/engines/saga/animation.cpp	2007-06-11 01:22:45 UTC (rev 27337)
+++ scummvm/trunk/engines/saga/animation.cpp	2007-06-11 02:30:04 UTC (rev 27338)
@@ -82,7 +82,10 @@
 
 	_cutAwayFade = fade;
 
-	if (fade) {
+	_vm->_gfx->savePalette();
+
+	// TODO
+	/*if (fade) {
 		Event event;
 		static PalEntry cur_pal[PAL_ENTRIES];
 
@@ -96,7 +99,7 @@
 		event.data = cur_pal;
 
 		_vm->_events->queue(&event);
-	}
+	}*/
 
 	if (!_cutawayActive) {
 		_vm->_gfx->showCursor(false);
@@ -200,7 +203,8 @@
 		clearCutaway();
 
 		// Handle fade up, if we previously faded down
-		if (_cutAwayFade) {
+		// TODO
+		/*if (_cutAwayFade) {
 			Event event;
 			event.type = kEvTImmediate;
 			event.code = kPalEvent;
@@ -210,7 +214,7 @@
 			event.data = saved_pal;
 
 			_vm->_events->queue(&event);
-		}
+		}*/
 
 		// Restore the scene
 		_vm->_scene->restoreScene();
@@ -243,9 +247,6 @@
 void Anim::startVideo(int vid, bool fade) {
 	debug(0, "startVideo(%d, %d)", vid, fade);
 
-	Event event;
-	_vm->_gfx->getCurrentPal(saved_pal);
-
 	_vm->_interface->setStatusText("");
 	_vm->_frameCount = 0;
 

Modified: scummvm/trunk/engines/saga/gfx.h
===================================================================
--- scummvm/trunk/engines/saga/gfx.h	2007-06-11 01:22:45 UTC (rev 27337)
+++ scummvm/trunk/engines/saga/gfx.h	2007-06-11 02:30:04 UTC (rev 27338)
@@ -146,6 +146,8 @@
 	void setPalette(const PalEntry *pal, bool full = false);
 	void setPaletteColor(int n, int r, int g, int b);
 	void getCurrentPal(PalEntry *src_pal);
+	void savePalette() { getCurrentPal(_savedPalette); }
+	void restorePalette() { setPalette(_savedPalette, true); }
 	void palToBlack(PalEntry *src_pal, double percent);
 	void blackToPal(PalEntry *src_pal, double percent);
 	void showCursor(bool state);
@@ -159,6 +161,7 @@
 	SagaEngine *_vm;
 
 	PalEntry _globalPalette[PAL_ENTRIES];
+	PalEntry _savedPalette[PAL_ENTRIES];
 };
 
 } // End of namespace Saga

Modified: scummvm/trunk/engines/saga/scene.cpp
===================================================================
--- scummvm/trunk/engines/saga/scene.cpp	2007-06-11 01:22:45 UTC (rev 27337)
+++ scummvm/trunk/engines/saga/scene.cpp	2007-06-11 02:30:04 UTC (rev 27338)
@@ -1210,8 +1210,23 @@
 }
 
 void Scene::restoreScene() {
-	// TODO
-	warning("TODO: restoreScene()");
+	// There is no implementation for tiled scenes, since this function is only used
+	// in IHNM, which has no tiled scenes
+
+	Event event;
+
+	_vm->_gfx->showCursor(false);
+	_vm->_gfx->restorePalette();
+
+	event.type = kEvTImmediate;
+	event.code = kBgEvent;
+	event.op = kEventDisplay;
+	event.param = kEvPNoSetPalette;
+	event.time = 0;
+	event.duration = 0;
+	_vm->_events->queue(&event);
+
+	_vm->_gfx->showCursor(true);
 }
 
 void Scene::cmdSceneChange(int argc, const char **argv) {


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