aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjörn Andersson2005-01-02 15:45:38 +0000
committerTorbjörn Andersson2005-01-02 15:45:38 +0000
commitb944ad808bb7f596a1877838e03eb3d928324578 (patch)
tree9d1c7f254bb2c7884b9fe746e7eb132d7379f603
parent2c7f25435e479e57c8e4b5c5ce66c348fb560e96 (diff)
downloadscummvm-rg350-b944ad808bb7f596a1877838e03eb3d928324578.tar.gz
scummvm-rg350-b944ad808bb7f596a1877838e03eb3d928324578.tar.bz2
scummvm-rg350-b944ad808bb7f596a1877838e03eb3d928324578.zip
Pausing an animation is done by changing its state now, not by setting a
flag. Added yet another event, and changed the ITE intro to reflect that. (Which means the waterfalls are no longer drawn over the game title.) svn-id: r16410
-rw-r--r--saga/events.cpp3
-rw-r--r--saga/events.h7
-rw-r--r--saga/ite_introproc.cpp14
3 files changed, 9 insertions, 15 deletions
diff --git a/saga/events.cpp b/saga/events.cpp
index 15374ebf08..f0f2e63e92 100644
--- a/saga/events.cpp
+++ b/saga/events.cpp
@@ -329,6 +329,9 @@ int Events::handleOneShot(EVENT *event) {
case EVENT_PLAY:
_vm->_anim->play(event->param, event->time, true);
break;
+ case EVENT_STOP:
+ _vm->_anim->stop(event->param);
+ break;
case EVENT_FRAME:
_vm->_anim->play(event->param, event->time, false);
break;
diff --git a/saga/events.h b/saga/events.h
index 0ef5ce0782..a119d5dd46 100644
--- a/saga/events.h
+++ b/saga/events.h
@@ -65,9 +65,10 @@ enum EVENT_OPS {
EVENT_DISPLAY = 1,
// ANIM events
// EVENT_PLAY = 1, // reused
- EVENT_FRAME = 2,
- EVENT_SETFLAG = 3,
- EVENT_CLEARFLAG = 4,
+ // EVENT_STOP = 2, // reused
+ EVENT_FRAME = 3,
+ EVENT_SETFLAG = 4,
+ EVENT_CLEARFLAG = 5,
// MUISC & SOUND events
EVENT_PLAY = 1,
EVENT_STOP = 2,
diff --git a/saga/ite_introproc.cpp b/saga/ite_introproc.cpp
index 47f48256cf..c17cee2b71 100644
--- a/saga/ite_introproc.cpp
+++ b/saga/ite_introproc.cpp
@@ -680,9 +680,8 @@ int Scene::ITEIntroValleyProc(int param, SCENE_INFO *scene_info) {
// Pause animation before logo
event.type = ONESHOT_EVENT;
event.code = ANIM_EVENT;
- event.op = EVENT_SETFLAG;
+ event.op = EVENT_STOP;
event.param = 0;
- event.param2 = ANIM_PAUSE;
event.time = 3000;
q_event = _vm->_events->chain(q_event, &event);
@@ -708,18 +707,9 @@ int Scene::ITEIntroValleyProc(int param, SCENE_INFO *scene_info) {
// Unpause animation before logo
event.type = ONESHOT_EVENT;
event.code = ANIM_EVENT;
- event.op = EVENT_CLEARFLAG;
- event.param = 0;
- event.param2 = ANIM_PAUSE;
+ event.op = EVENT_PLAY;
event.time = 0;
-
- q_event = _vm->_events->chain(q_event, &event);
-
- event.type = ONESHOT_EVENT;
- event.code = ANIM_EVENT;
- event.op = EVENT_FRAME;
event.param = 0;
- event.time = LOGO_DISSOLVE_DURATION;
q_event = _vm->_events->chain(q_event, &event);