aboutsummaryrefslogtreecommitdiff
path: root/saga/scene.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2005-01-07 00:57:43 +0000
committerEugene Sandulenko2005-01-07 00:57:43 +0000
commit1fe593995d98939c0d2e2dc2d6c6e11b647e1ca0 (patch)
tree01bb948cbcbbaf729cb167ad407c4f4f5c1d9bd2 /saga/scene.cpp
parentd5d801b01c2990f8e07e42abebd9ccbf33d39407 (diff)
downloadscummvm-rg350-1fe593995d98939c0d2e2dc2d6c6e11b647e1ca0.tar.gz
scummvm-rg350-1fe593995d98939c0d2e2dc2d6c6e11b647e1ca0.tar.bz2
scummvm-rg350-1fe593995d98939c0d2e2dc2d6c6e11b647e1ca0.zip
o Fix for popped up actors at initial scene fade out
o Stub for new Wyrmkeep demos with substituted scenes o Converted some script func parameters to apropriate types o More panel fixes svn-id: r16472
Diffstat (limited to 'saga/scene.cpp')
-rw-r--r--saga/scene.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/saga/scene.cpp b/saga/scene.cpp
index 1d8527db09..c4d8102c5a 100644
--- a/saga/scene.cpp
+++ b/saga/scene.cpp
@@ -611,6 +611,9 @@ int Scene::loadScene(int scene_num, int load_flag, SCENE_PROC scene_proc, SCENE_
EVENT *q_event;
static PALENTRY current_pal[PAL_ENTRIES];
+ _vm->_interface->rememberMode();
+ _vm->_interface->setMode(kPanelFade, true);
+
// Fade to black out
_vm->_gfx->getCurrentPal(current_pal);
event.type = IMMEDIATE_EVENT;
@@ -640,6 +643,14 @@ int Scene::loadScene(int scene_num, int load_flag, SCENE_PROC scene_proc, SCENE_
event.duration = 0;
q_event = _vm->_events->chain(q_event, &event);
+ // Restore interface mode
+ event.type = IMMEDIATE_EVENT;
+ event.code = INTERFACE_EVENT;
+ event.op = EVENT_RESTORE_MODE;
+ event.time = 0;
+ event.duration = 0;
+ q_event = _vm->_events->chain(q_event, &event);
+
// Start the scene pre script, but stay with black palette
if (_desc.startScriptNum > 0) {
event.type = ONESHOT_EVENT;
@@ -652,7 +663,7 @@ int Scene::loadScene(int scene_num, int load_flag, SCENE_PROC scene_proc, SCENE_
event.param4 = 0; // With Object - TODO: should be 'entrance'
event.param5 = 0; // Actor
- _vm->_events->chain(q_event, &event);
+ q_event = _vm->_events->chain(q_event, &event);
}
// Fade in from black to the scene background palette
@@ -1046,7 +1057,10 @@ int Scene::defaultScene(int param, SCENE_INFO *scene_info) {
EVENT event;
EVENT *q_event;
- _inGame = true;
+ if (!_inGame) {
+ _inGame = true;
+ _vm->_interface->setMode(kPanelInventory);
+ }
switch (param) {
case SCENE_BEGIN: