[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