aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/continue_save_dialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/continue_save_dialog.cpp')
-rw-r--r--engines/titanic/continue_save_dialog.cpp36
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;