[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