aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorChris Apers2015-01-24 10:51:51 +0100
committerChris Apers2015-01-24 11:13:32 +0100
commit6691f9d8122aa36a0640fa33f6c2a3c6a72a6dd8 (patch)
tree845a1ab1d7bc6dc970e245c3e55e1857a681b5be /engines
parentd75fbe79f064e3ee017764024aac173a7d599583 (diff)
downloadscummvm-rg350-6691f9d8122aa36a0640fa33f6c2a3c6a72a6dd8.tar.gz
scummvm-rg350-6691f9d8122aa36a0640fa33f6c2a3c6a72a6dd8.tar.bz2
scummvm-rg350-6691f9d8122aa36a0640fa33f6c2a3c6a72a6dd8.zip
MORTEVIELLE: Added missing mesgId handling for 3rd intro screen
This message is displayed during disk access, so it is not visible as is in ScummVM version, a delay is required. Also delay should hide the mouse to prevent frozen screen.
Diffstat (limited to 'engines')
-rw-r--r--engines/mortevielle/mortevielle.h1
-rw-r--r--engines/mortevielle/mouse.cpp4
-rw-r--r--engines/mortevielle/utils.cpp15
3 files changed, 18 insertions, 2 deletions
diff --git a/engines/mortevielle/mortevielle.h b/engines/mortevielle/mortevielle.h
index 5f7f175c26..b6fee3f19f 100644
--- a/engines/mortevielle/mortevielle.h
+++ b/engines/mortevielle/mortevielle.h
@@ -92,6 +92,7 @@ enum DataType {
#define MORT_DAT_REQUIRED_VERSION 1
#define MORT_DAT "mort.dat"
#define GAME_FRAME_DELAY (1000 / 50)
+#define DISK_ACCESS_DELAY 3000
const int kTime1 = 410;
const int kTime2 = 250;
diff --git a/engines/mortevielle/mouse.cpp b/engines/mortevielle/mouse.cpp
index 8f96ba3ef5..7551da3934 100644
--- a/engines/mortevielle/mouse.cpp
+++ b/engines/mortevielle/mouse.cpp
@@ -51,7 +51,7 @@ void MouseHandler::initMouse() {
* @remarks Originally called 'hide_mouse'
*/
void MouseHandler::hideMouse() {
- // No implementation needed in ScummVM
+ g_system->showMouse(false);
}
/**
@@ -59,7 +59,7 @@ void MouseHandler::hideMouse() {
* @remarks Originally called 'show_mouse'
*/
void MouseHandler::showMouse() {
- // ScummVM implementation uses CursorMan for drawing the cursor
+ g_system->showMouse(true);
}
/**
diff --git a/engines/mortevielle/utils.cpp b/engines/mortevielle/utils.cpp
index 40136ad78b..a89af1ab5c 100644
--- a/engines/mortevielle/utils.cpp
+++ b/engines/mortevielle/utils.cpp
@@ -234,6 +234,7 @@ void MortevielleEngine::setMousePos(const Common::Point &pt) {
void MortevielleEngine::delay(int amount) {
uint32 endTime = g_system->getMillis() + amount;
+ _mouse->hideMouse();
while (g_system->getMillis() < endTime) {
if (g_system->getMillis() > (_lastGameFrame + GAME_FRAME_DELAY)) {
_lastGameFrame = g_system->getMillis();
@@ -244,6 +245,7 @@ void MortevielleEngine::delay(int amount) {
g_system->delayMillis(10);
}
+ _mouse->showMouse();
}
/**
@@ -2124,6 +2126,7 @@ void MortevielleEngine::showTitleScreen() {
_caff = 51;
_text->taffich();
testKeyboard();
+ delay(DISK_ACCESS_DELAY);
clearScreen();
draw(0, 0);
@@ -2521,6 +2524,18 @@ void MortevielleEngine::handleDescriptionText(int f, int mesgId) {
_coreVar._pctHintFound[10] = '*';
}
break;
+ case 7: {
+ prepareScreenType3();
+ Common::String tmpStr = getString(mesgId);
+ // CHECKME: original code seems to consider one extra character
+ // See text position in the 3rd intro screen
+ int size = tmpStr.size() + 1;
+ if (size < 40)
+ _text->displayStr(tmpStr, 252 - size * 3, 86, 50, 3, 5);
+ else
+ _text->displayStr(tmpStr, 144, 86, 50, 3, 5);
+ }
+ break;
default:
break;
}