aboutsummaryrefslogtreecommitdiff
path: root/saga
diff options
context:
space:
mode:
authorEugene Sandulenko2004-08-10 23:52:19 +0000
committerEugene Sandulenko2004-08-10 23:52:19 +0000
commit6c060161e6bb4826de25b51a396c4ce768dc73f8 (patch)
treeb98e6ffe6c5705e16ffefea911865e3890139619 /saga
parentdfc04a7d237218c48ecc7eb6ed94b67c3d4c471d (diff)
downloadscummvm-rg350-6c060161e6bb4826de25b51a396c4ce768dc73f8.tar.gz
scummvm-rg350-6c060161e6bb4826de25b51a396c4ce768dc73f8.tar.bz2
scummvm-rg350-6c060161e6bb4826de25b51a396c4ce768dc73f8.zip
Correct scene transitions. Now intro seems to be complete.
svn-id: r14548
Diffstat (limited to 'saga')
-rw-r--r--saga/ite_introproc.cpp56
1 files changed, 40 insertions, 16 deletions
diff --git a/saga/ite_introproc.cpp b/saga/ite_introproc.cpp
index f522838f51..a79a56ee43 100644
--- a/saga/ite_introproc.cpp
+++ b/saga/ite_introproc.cpp
@@ -648,6 +648,8 @@ int ITE_IntroValleyProc(int param, R_SCENE_INFO *scene_info) {
R_TEXTLIST_ENTRY *entry_p;
R_EVENT event;
R_EVENT *q_event;
+ PALENTRY *pal;
+ static PALENTRY current_pal[R_PAL_ENTRIES];
int i;
const INTRO_CREDIT credits[] = {
@@ -666,19 +668,47 @@ int ITE_IntroValleyProc(int param, R_SCENE_INFO *scene_info) {
};
int n_credits = sizeof credits / sizeof credits[0];
- int event_delay = 0;
+ int event_delay = 3000;
switch (param) {
case SCENE_BEGIN:
+ // Fade to black out of the cave
+ _vm->_gfx->getCurrentPal(current_pal);
+ event.type = R_CONTINUOUS_EVENT;
+ event.code = R_PAL_EVENT;
+ event.op = EVENT_PALTOBLACK;
+ event.time = 0;
+ event.duration = PALETTE_FADE_DURATION;
+ event.data = current_pal;
+
+ q_event = _vm->_events->queue(&event);
+
// Display ITE title screen background
event.type = R_ONESHOT_EVENT;
event.code = R_BG_EVENT;
event.op = EVENT_DISPLAY;
- event.param = SET_PALETTE;
+ event.param = NO_SET_PALETTE;
event.time = 0;
- q_event = _vm->_events->queue(&event);
+ q_event = _vm->_events->chain(q_event, &event);
+
+ // Fade in from black to the scene background palette
+ _vm->_scene->getBGPal(&pal);
+ event.type = R_CONTINUOUS_EVENT;
+ event.code = R_PAL_EVENT;
+ event.op = EVENT_BLACKTOPAL;
+ event.time = 0;
+ event.duration = PALETTE_FADE_DURATION;
+ event.data = pal;
+
+ q_event = _vm->_events->chain(q_event, &event);
+
+ debug(0, "Beginning animation playback.");
+
+ // Begin title screen background animation
+ _vm->_anim->setFlag(0, ANIM_LOOP);
+ _vm->_anim->play(0, PALETTE_FADE_DURATION);
// Begin ITE title theme music
_vm->_music->stop();
@@ -708,16 +738,16 @@ int ITE_IntroValleyProc(int param, R_SCENE_INFO *scene_info) {
event.time = 3000;
event.duration = LOGO_DISSOLVE_DURATION;
- q_event = _vm->_events->queue(&event);
+ q_event = _vm->_events->chain(q_event, &event);
// Remove logo
event.type = R_CONTINUOUS_EVENT;
event.code = R_TRANSITION_EVENT;
event.op = EVENT_DISSOLVE;
- event.time = 6000;
+ event.time = 3000;
event.duration = LOGO_DISSOLVE_DURATION;
- q_event = _vm->_events->queue(&event);
+ q_event = _vm->_events->chain(q_event, &event);
// Unpause animation before logo
event.type = R_ONESHOT_EVENT;
@@ -725,23 +755,17 @@ int ITE_IntroValleyProc(int param, R_SCENE_INFO *scene_info) {
event.op = EVENT_CLEARFLAG;
event.param = 0;
event.param2 = ANIM_PAUSE;
- event.time = 6000 + LOGO_DISSOLVE_DURATION;
+ event.time = 3000 + LOGO_DISSOLVE_DURATION;
- q_event = _vm->_events->queue(&event);
+ q_event = _vm->_events->chain(q_event, &event);
event.type = R_ONESHOT_EVENT;
event.code = R_ANIM_EVENT;
event.op = EVENT_FRAME;
event.param = 0;
- event.time = 6000 + LOGO_DISSOLVE_DURATION;
-
- q_event = _vm->_events->queue(&event);
+ event.time = 3000 + LOGO_DISSOLVE_DURATION;
- debug(0, "Beginning animation playback.");
-
- // Begin title screen background animation
- _vm->_anim->setFlag(0, ANIM_LOOP);
- _vm->_anim->play(0, 0);
+ q_event = _vm->_events->chain(q_event, &event);
// Queue game credits list
text_entry.color = 255;