aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/scene.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/saga/scene.cpp')
-rw-r--r--engines/saga/scene.cpp34
1 files changed, 9 insertions, 25 deletions
diff --git a/engines/saga/scene.cpp b/engines/saga/scene.cpp
index 7bf68cdd53..1cc1eeda02 100644
--- a/engines/saga/scene.cpp
+++ b/engines/saga/scene.cpp
@@ -739,15 +739,6 @@ void Scene::loadScene(LoadSceneParams *loadSceneParams) {
q_event = NULL;
- //fix placard bug
- //i guess we should remove RF_PLACARD flag - and use _interface->getMode()
- event.type = kEvTOneshot;
- event.code = kGraphicsEvent;
- event.op = kEventClearFlag;
- event.param = RF_PLACARD;
-
- q_event = _vm->_events->chain(q_event, &event);
-
if (loadSceneParams->transitionType == kTransitionFade) {
_vm->_interface->setFadeMode(kFadeOut);
@@ -1335,8 +1326,6 @@ void Scene::clearPlacard() {
Event event;
Event *q_event;
- _vm->_interface->restoreMode();
-
_vm->_gfx->getCurrentPal(cur_pal);
event.type = kEvTImmediate;
@@ -1349,19 +1338,20 @@ void Scene::clearPlacard() {
q_event = _vm->_events->queue(&event);
event.type = kEvTOneshot;
- event.code = kGraphicsEvent;
- event.op = kEventClearFlag;
- event.param = RF_PLACARD;
-
- q_event = _vm->_events->chain(q_event, &event);
-
- event.type = kEvTOneshot;
event.code = kTextEvent;
event.op = kEventRemove;
event.data = _vm->_script->getPlacardTextEntry();
q_event = _vm->_events->chain(q_event, &event);
+ event.type = kEvTImmediate;
+ event.code = kInterfaceEvent;
+ event.op = kEventRestoreMode;
+ event.time = 0;
+ event.duration = 0;
+
+ q_event = _vm->_events->chain(q_event, &event);
+
_vm->_scene->getBGPal(pal);
event.type = kEvTImmediate;
@@ -1425,13 +1415,6 @@ void Scene::showPsychicProfile(const char *text) {
q_event = _vm->_events->chain(q_event, &event);
- event.type = kEvTOneshot;
- event.code = kGraphicsEvent;
- event.op = kEventSetFlag;
- event.param = RF_PLACARD;
-
- q_event = _vm->_events->chain(q_event, &event);
-
// Set the background and palette for the psychic profile
event.type = kEvTOneshot;
event.code = kPsychicProfileBgEvent;
@@ -1484,6 +1467,7 @@ void Scene::showPsychicProfile(const char *text) {
void Scene::clearPsychicProfile() {
if (_vm->_interface->getMode() == kPanelPlacard || _vm->getGameId() == GID_IHNM_DEMO) {
+ _vm->_interface->restoreMode();
_vm->_scene->clearPlacard();
_vm->_scene->_textList.clear();
_vm->_render->setFlag(RF_DISABLE_ACTORS);