MORTEVIELLE: added missing inter screen messages

This commit is contained in:
Chris Apers 2015-01-26 22:16:31 +01:00
parent e695c01862
commit bdd75f975d
4 changed files with 52 additions and 3 deletions

View File

@ -571,6 +571,7 @@ void MortevielleEngine::fctSearch() {
_curSearchObjId = getFirstObject();
if (_curSearchObjId != 0) {
_searchCount = 0;
_is = 0;
_heroSearching = true;
_menu->setSearchMenu();
prepareNextObject();
@ -1678,9 +1679,8 @@ void MortevielleEngine::endGame() {
handleDescriptionText(2, 35);
startMusicOrSpeech(0);
testKey(false);
// A wait message was displayed.
// testKey (aka tkey1) was called before and after.
// This double call is useless, thus removed
displayInterScreenMessage(2036);
testKey(false);
resetVariables();
}

View File

@ -416,6 +416,7 @@ public:
int _maff;
int _caff;
int _crep;
int _is; // ???
byte _destinationArray[7][25];
@ -466,6 +467,7 @@ public:
void gameLoaded();
void initGame();
void displayAloneText();
void displayInterScreenMessage(int mesgId);
void draw(int x, int y);
void charToHour();
void hourToChar();

View File

@ -227,7 +227,31 @@ void TextHandler::taffich() {
Common::String filename, altFilename;
if ((a != 50) && (a != 51)) {
int m = a + 2000;
if ((m > 2001) && (m < 2010))
m = 2001;
else if (m == 2011)
m = 2010;
if (a == 32)
m = 2034;
else if ((a == 17) && (_vm->_maff == 14))
m = 2018;
else if (a > 99) {
if ((_vm->_is == 1) || (_vm->_is == 0))
m = 2031;
else
m = 2032;
}
if ( ((a > 69) && (a < 80)) || (a == 30) || (a == 31) || (a == 144) || (a == 147) || (a == 149) )
m = 2030;
else if ( ((a < 27) && ( ((_vm->_maff > 69) && (!_vm->_coreVar._alreadyEnteredManor)) || (_vm->_maff > 99) )) || ((_vm->_maff > 29) && (_vm->_maff < 33)) )
m = 2033;
_vm->displayInterScreenMessage(m);
_vm->_maff = a;
if (a == 159)
a = 86;
else if (a > 140)

View File

@ -1359,6 +1359,7 @@ void MortevielleEngine::endSearch() {
_heroSearching = false;
_obpart = false;
_searchCount = 0;
_is = 0;
_menu->unsetSearchMenu();
}
@ -1469,6 +1470,7 @@ void MortevielleEngine::gameLoaded() {
_num = 0;
_startTime = 0;
_endTime = 0;
_is = 0;
_searchCount = 0;
_roomDoorId = OWN_ROOM;
_syn = true;
@ -2988,6 +2990,26 @@ void MortevielleEngine::displayNarrativePicture(int af, int ob) {
_crep = 998;
}
/**
* Display a message switching from a screen to another.
* @remarks Originally called 'messint'
*/
void MortevielleEngine::displayInterScreenMessage(int mesgId) {
clearUpperLeftPart();
clearDescriptionBar();
clearVerbBar();
GfxSurface surface;
surface.decode(_rightFramePict + 1008);
surface._offset.x = 80;
surface._offset.y = 40;
setPal(90);
_screenSurface->drawPicture(surface, 0, 0);
_screenSurface->drawPicture(surface, 0, 70);
handleDescriptionText(7, mesgId);
delay(DISK_ACCESS_DELAY);
}
/**
* Prepare Display Text
* @remarks Originally called 'affrep'
@ -3196,6 +3218,7 @@ void MortevielleEngine::prepareNextObject() {
} while ((objId == 0) && (_searchCount <= 9));
if ((objId != 0) && (_searchCount < 11)) {
_is++;
_caff = objId;
_crep = _caff + 400;
if (_currBitIndex != 0)