aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2005-08-11 16:13:10 +0000
committerEugene Sandulenko2005-08-11 16:13:10 +0000
commit2478c430deb91cf29b47afefd2c73a0af6f45557 (patch)
tree203a9ea213f23308ee6bd17b15bd984d84f51c8f
parent801bb09bb5d4d5e0b94cc175ad28b34fb66edd2c (diff)
downloadscummvm-rg350-2478c430deb91cf29b47afefd2c73a0af6f45557.tar.gz
scummvm-rg350-2478c430deb91cf29b47afefd2c73a0af6f45557.tar.bz2
scummvm-rg350-2478c430deb91cf29b47afefd2c73a0af6f45557.zip
Fix bugs #1256398 "ITE: Clicking doesn't skip dialogue"
svn-id: r18660
-rw-r--r--saga/input.cpp10
-rw-r--r--saga/interface.cpp5
-rw-r--r--saga/interface.h3
3 files changed, 16 insertions, 2 deletions
diff --git a/saga/input.cpp b/saga/input.cpp
index 12a15a38c5..3d2754220a 100644
--- a/saga/input.cpp
+++ b/saga/input.cpp
@@ -62,7 +62,8 @@ int SagaEngine::processInput() {
_interface->draw();
break;
-/* case 269:
+#if 0
+ case 269:
case 270:
case 273:
case 274:
@@ -73,7 +74,8 @@ int SagaEngine::processInput() {
_vm->_isoMap->_viewScroll.y += (_vm->_isoMap->_viewDiff * (event.kbd.keycode == 274) - _vm->_isoMap->_viewDiff * (event.kbd.keycode == 273));
_vm->_isoMap->_viewScroll.x += (_vm->_isoMap->_viewDiff * (event.kbd.keycode == 275) - _vm->_isoMap->_viewDiff * (event.kbd.keycode == 276));
}
- break;*/
+ break;
+#endif
case 282: // F1
_render->toggleFlag(RF_SHOW_FPS);
_actor->_handleActionDiv = (_actor->_handleActionDiv == 15) ? 50 : 15;
@@ -87,6 +89,10 @@ int SagaEngine::processInput() {
case 285: // F4
_render->toggleFlag(RF_OBJECTMAP_TEST);
break;
+ case 286: // F5
+ if (_interface->getSaveReminderState() > 0)
+ _interface->setMode(kPanelOption);
+ break;
case 287: // F6
_render->toggleFlag(RF_ACTOR_PATH_TEST);
break;
diff --git a/saga/interface.cpp b/saga/interface.cpp
index 6a2fd1d5e6..540b5aac5a 100644
--- a/saga/interface.cpp
+++ b/saga/interface.cpp
@@ -1080,9 +1080,11 @@ void Interface::setSave(PanelButton *panelButton) {
fileName = _vm->calcSaveFileName(_vm->getSaveFile(_optionSaveFileTitleNumber)->slotNumber);
_vm->save(fileName, _textInputString);
}
+ _textInput = false;
setMode(kPanelOption);
break;
case kTextCancel:
+ _textInput = false;
setMode(kPanelOption);
break;
}
@@ -1258,6 +1260,9 @@ void Interface::setOption(PanelButton *panelButton) {
void Interface::update(const Point& mousePoint, int updateFlag) {
+ if (!_active && _panelMode == kPanelNull && (updateFlag & UPDATE_MOUSECLICK))
+ _vm->_actor->abortSpeech();
+
if (_vm->_scene->isInDemo() || _fadeMode == kFadeOut || !_active) {
return;
}
diff --git a/saga/interface.h b/saga/interface.h
index 9e14ea9644..78fa69b780 100644
--- a/saga/interface.h
+++ b/saga/interface.h
@@ -195,6 +195,9 @@ public:
_saveReminderState = state;
draw();
}
+ int getSaveReminderState() {
+ return _saveReminderState;
+ }
bool isActive() { return _active; }
void setMode(int mode);
int getMode(void) const { return _panelMode; }