[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