diff options
Diffstat (limited to 'engines/titanic/continue_save_dialog.cpp')
-rw-r--r-- | engines/titanic/continue_save_dialog.cpp | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/engines/titanic/continue_save_dialog.cpp b/engines/titanic/continue_save_dialog.cpp index f4c778083c..c74e1c7634 100644 --- a/engines/titanic/continue_save_dialog.cpp +++ b/engines/titanic/continue_save_dialog.cpp @@ -176,8 +176,18 @@ void CContinueSaveDialog::mouseMove(const Point &mousePos) { } void CContinueSaveDialog::leftButtonDown(const Point &mousePos) { - _mouseDown = true; - mouseMove(mousePos); + Rect eye1(188, 190, 192, 195), eye2(209, 192, 213, 197); + + if (g_vm->_events->isSpecialPressed(MK_SHIFT) && + (eye1.contains(mousePos) || eye2.contains(mousePos))) { + // Show the Easter Egg "Evil Twin" + _evilTwinShown = true; + render(); + } else { + // Standard mouse handling + _mouseDown = true; + mouseMove(mousePos); + } } void CContinueSaveDialog::leftButtonUp(const Point &mousePos) { @@ -185,6 +195,12 @@ void CContinueSaveDialog::leftButtonUp(const Point &mousePos) { Rect startRect(START_X, START_Y, START_X + _startU.w, START_Y + _startU.h); _mouseDown = false; + if (_evilTwinShown) { + _evilTwinShown = false; + render(); + return; + } + if (restoreRect.contains(mousePos)) { // Flag to exit dialog and load highlighted slot. If no slot was // selected explicitly, then fall back on loading the first slot @@ -205,22 +221,6 @@ void CContinueSaveDialog::leftButtonUp(const Point &mousePos) { } } -void CContinueSaveDialog::rightButtonDown(const Point &mousePos) { - Rect eye1(188, 190, 192, 195), eye2(209, 192, 213, 197); - - if (eye1.contains(mousePos) || eye2.contains(mousePos)) { - _evilTwinShown = true; - render(); - } -} - -void CContinueSaveDialog::rightButtonUp(const Point &mousePos) { - if (_evilTwinShown) { - _evilTwinShown = false; - render(); - } -} - void CContinueSaveDialog::keyDown(Common::KeyState keyState) { if (keyState.keycode == Common::KEYCODE_ESCAPE) _selectedSlot = EXIT_GAME; |