[Scummvm-cvs-logs] SF.net SVN: scummvm: [28953] scummvm/trunk/engines/saga
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Wed Sep 19 01:15:48 CEST 2007
Revision: 28953
http://scummvm.svn.sourceforge.net/scummvm/?rev=28953&view=rev
Author: thebluegr
Date: 2007-09-18 16:15:48 -0700 (Tue, 18 Sep 2007)
Log Message:
-----------
Fixed some glitches which occured when closing the psychic profile in IHNM
Modified Paths:
--------------
scummvm/trunk/engines/saga/events.cpp
scummvm/trunk/engines/saga/events.h
scummvm/trunk/engines/saga/scene.cpp
Modified: scummvm/trunk/engines/saga/events.cpp
===================================================================
--- scummvm/trunk/engines/saga/events.cpp 2007-09-18 23:07:27 UTC (rev 28952)
+++ scummvm/trunk/engines/saga/events.cpp 2007-09-18 23:15:48 UTC (rev 28953)
@@ -474,6 +474,9 @@
case kEventRestoreMode:
_vm->_interface->restoreMode();
break;
+ case kEventSetMode:
+ _vm->_interface->setMode(event->param);
+ break;
default:
break;
}
Modified: scummvm/trunk/engines/saga/events.h
===================================================================
--- scummvm/trunk/engines/saga/events.h 2007-09-18 23:07:27 UTC (rev 28952)
+++ scummvm/trunk/engines/saga/events.h 2007-09-18 23:15:48 UTC (rev 28953)
@@ -93,6 +93,7 @@
kEventClearStatus = 4,
kEventSetFadeMode = 5,
kEventRestoreMode = 6,
+ kEventSetMode = 7,
// ACTOR events
kEventMove = 1,
// SCRIPT events
Modified: scummvm/trunk/engines/saga/scene.cpp
===================================================================
--- scummvm/trunk/engines/saga/scene.cpp 2007-09-18 23:07:27 UTC (rev 28952)
+++ scummvm/trunk/engines/saga/scene.cpp 2007-09-18 23:15:48 UTC (rev 28953)
@@ -1310,7 +1310,6 @@
void Scene::clearPlacard() {
static PalEntry cur_pal[PAL_ENTRIES];
- PalEntry *pal;
Event event;
Event *q_event;
@@ -1335,11 +1334,15 @@
event.duration = 0;
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);
+ if (_vm->getGameType() == GType_ITE) {
+ event.type = kEvTOneshot;
+ event.code = kTextEvent;
+ event.op = kEventRemove;
+ event.data = _vm->_script->getPlacardTextEntry();
+ q_event = _vm->_events->chain(q_event, &event);
+ } else {
+ _vm->_scene->_textList.clear();
+ }
event.type = kEvTImmediate;
event.code = kInterfaceEvent;
@@ -1348,16 +1351,53 @@
event.duration = 0;
q_event = _vm->_events->chain(q_event, &event);
- _vm->_scene->getBGPal(pal);
+ if (_vm->getGameType() == GType_IHNM) {
+ // set mode to main
+ event.type = kEvTImmediate;
+ event.code = kInterfaceEvent;
+ event.op = kEventSetMode;
+ event.param = kPanelMain;
+ event.time = 0;
+ event.duration = 0;
+ q_event = _vm->_events->chain(q_event, &event);
+ }
+ // Display scene background, but stay with black palette
event.type = kEvTImmediate;
+ event.code = kBgEvent;
+ event.op = kEventDisplay;
+ event.param = kEvPNoSetPalette;
+ event.time = 0;
+ event.duration = 0;
+ q_event = _vm->_events->chain(q_event, &event);
+
+ // set fade mode
+ event.type = kEvTImmediate;
+ event.code = kInterfaceEvent;
+ event.op = kEventSetFadeMode;
+ event.param = kFadeIn;
+ event.time = 0;
+ event.duration = 0;
+ q_event = _vm->_events->chain(q_event, &event);
+
+ // Fade in from black to the scene background palette
+ event.type = kEvTImmediate;
event.code = kPalEvent;
event.op = kEventBlackToPal;
event.time = 0;
event.duration = kNormalFadeDuration;
- event.data = pal;
+ event.data = _bg.pal;
q_event = _vm->_events->chain(q_event, &event);
+ // set fade mode
+ event.type = kEvTImmediate;
+ event.code = kInterfaceEvent;
+ event.op = kEventSetFadeMode;
+ event.param = kNoFade;
+ event.time = 0;
+ event.duration = 0;
+ q_event = _vm->_events->chain(q_event, &event);
+
event.type = kEvTOneshot;
event.code = kCursorEvent;
event.op = kEventShow;
@@ -1464,12 +1504,8 @@
void Scene::clearPsychicProfile() {
if (_vm->_interface->getMode() == kPanelPlacard || _vm->getGameId() == GID_IHNM_DEMO) {
- _vm->_interface->restoreMode();
+ _vm->_render->setFlag(RF_DISABLE_ACTORS);
_vm->_scene->clearPlacard();
- _vm->_scene->_textList.clear();
- _vm->_render->setFlag(RF_DISABLE_ACTORS);
- _vm->_gfx->restorePalette();
- _vm->_scene->restoreScene();
_vm->_interface->activate();
}
}
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