diff options
author | Johannes Schickel | 2010-10-13 03:57:44 +0000 |
---|---|---|
committer | Johannes Schickel | 2010-10-13 03:57:44 +0000 |
commit | 75e8452b6e6a2bf4fb2f588aa00b428a60d873b5 (patch) | |
tree | f29541d55309487a94bd1d38e8b53bb3dde9aec6 /engines/drascula | |
parent | 48ee83b88957dab86bc763e9ef21a70179fa8679 (diff) | |
parent | e9f50882ea5b6beeefa994040be9d3bab6a1f107 (diff) | |
download | scummvm-rg350-75e8452b6e6a2bf4fb2f588aa00b428a60d873b5.tar.gz scummvm-rg350-75e8452b6e6a2bf4fb2f588aa00b428a60d873b5.tar.bz2 scummvm-rg350-75e8452b6e6a2bf4fb2f588aa00b428a60d873b5.zip |
OPENGL: Merged from trunk, from rev 52105 to 53396.
This includes an rather hacky attempt to merge all the recent gp2x backend
changes into the branch. I suppose the gp2x backend and probably all new
backends, i.e. gph, dingux etc., might not compile anymore.
Since I have no way of testing those it would be nice if porters could look
into getting those up to speed in this branch.
svn-id: r53399
Diffstat (limited to 'engines/drascula')
-rw-r--r-- | engines/drascula/animation.cpp | 7 | ||||
-rw-r--r-- | engines/drascula/converse.cpp | 10 | ||||
-rw-r--r-- | engines/drascula/detection.cpp | 17 | ||||
-rw-r--r-- | engines/drascula/interface.cpp | 11 | ||||
-rw-r--r-- | engines/drascula/objects.cpp | 9 | ||||
-rw-r--r-- | engines/drascula/saveload.cpp | 4 |
6 files changed, 38 insertions, 20 deletions
diff --git a/engines/drascula/animation.cpp b/engines/drascula/animation.cpp index d6a3bafd9f..10f1bf4651 100644 --- a/engines/drascula/animation.cpp +++ b/engines/drascula/animation.cpp @@ -761,17 +761,10 @@ void DrasculaEngine::animation_16_2() { clearRoom(); - // FIXME: Track 31 is missing from the soundtrack available - // from ScummVM's downloads page, so for now we're using the - // Spanish track 29 -#if 1 - playMusic(30); -#else if (_lang == kSpanish) playMusic(30); else playMusic(32); -#endif if (getScan() != 0) goto asco; diff --git a/engines/drascula/converse.cpp b/engines/drascula/converse.cpp index 0e70348148..d0906fdf55 100644 --- a/engines/drascula/converse.cpp +++ b/engines/drascula/converse.cpp @@ -211,6 +211,7 @@ void DrasculaEngine::converse(int index) { } updateEvents(); + flushKeyBuffer(); phrase1_bottom = 8 * print_abc_opc(phrase1, 2, game1); phrase2_bottom = phrase1_bottom + 8 * print_abc_opc(phrase2, phrase1_bottom + 2, game2); @@ -287,8 +288,12 @@ void DrasculaEngine::response(int function) { playTalkSequence(function); if (currentChapter == 2) { - if (function == 16 || function == 20 || function == 23 || function == 29 || function == 31) + bool reloadConversationCharset = false; + + if (function == 16 || function == 20 || function == 23 || function == 29 || function == 31) { + reloadConversationCharset = true; loadPic(menuBackground, backSurface); + } if (function == 16) animation_16_2(); @@ -300,6 +305,9 @@ void DrasculaEngine::response(int function) { animation_29_2(); else if (function == 31) animation_31_2(); + + if (reloadConversationCharset) + loadPic("car.alg", backSurface); } else if (currentChapter == 3) { grr(); } diff --git a/engines/drascula/detection.cpp b/engines/drascula/detection.cpp index c10222cadd..0dafcdc3cd 100644 --- a/engines/drascula/detection.cpp +++ b/engines/drascula/detection.cpp @@ -240,6 +240,23 @@ static const DrasculaGameDescription gameDescriptions[] = { GUIO_NONE }, }, + + { + // Drascula French version (ScummVM repacked files) + { + "drascula", + 0, + { + {"packet.001", 0, "c6a8697396e213a18472542d5f547cb4", 32847563}, + {"packet.002", 1, "7b83cedb9bb326ed5143e5c459508d43", 722383}, + {NULL, 0, NULL, 0} + }, + Common::FR_FRA, + Common::kPlatformPC, + GF_PACKED, + GUIO_NONE + }, + }, { AD_TABLE_END_MARKER } }; diff --git a/engines/drascula/interface.cpp b/engines/drascula/interface.cpp index 1495694a1b..1d17c77f83 100644 --- a/engines/drascula/interface.cpp +++ b/engines/drascula/interface.cpp @@ -120,7 +120,7 @@ void DrasculaEngine::showMenu() { x = whichObject(); strcpy(textIcon, iconName[x]); - for (n = 1; n < 43; n++) { + for (n = 1; n < ARRAYSIZE(inventoryObjects); n++) { h = inventoryObjects[n]; if (h != 0) { @@ -194,11 +194,10 @@ void DrasculaEngine::enterName() { } bool DrasculaEngine::checkMenuFlags() { - for (int n = 0; n < 43; n++) { - if (whichObject() == n) { - if (inventoryObjects[n] != 0 && checkAction(inventoryObjects[n])) - return true; - } + int n = whichObject(); + if (n != 0) { + if (inventoryObjects[n] != 0 && checkAction(inventoryObjects[n])) + return true; } return false; diff --git a/engines/drascula/objects.cpp b/engines/drascula/objects.cpp index 73aea7b7f2..2bd1014083 100644 --- a/engines/drascula/objects.cpp +++ b/engines/drascula/objects.cpp @@ -221,16 +221,17 @@ void DrasculaEngine::addObject(int obj) { * If no inventory slot is under the mouse cursor, return 0. */ int DrasculaEngine::whichObject() { - int n = 0; + int n; for (n = 1; n < ARRAYSIZE(inventoryObjects); n++) { if (mouseX > _itemLocations[n].x && mouseY > _itemLocations[n].y && mouseX < _itemLocations[n].x + OBJWIDTH && - mouseY < _itemLocations[n].y + OBJHEIGHT) - break; + mouseY < _itemLocations[n].y + OBJHEIGHT) { + return n; + } } - return n; + return 0; } void DrasculaEngine::updateVisible() { diff --git a/engines/drascula/saveload.cpp b/engines/drascula/saveload.cpp index abf17d0e8e..4aaec5ec0e 100644 --- a/engines/drascula/saveload.cpp +++ b/engines/drascula/saveload.cpp @@ -210,7 +210,7 @@ bool DrasculaEngine::loadGame(const char *gameName) { curY = sav->readSint32LE(); trackProtagonist = sav->readSint32LE(); - for (l = 1; l < 43; l++) { + for (l = 1; l < ARRAYSIZE(inventoryObjects); l++) { inventoryObjects[l] = sav->readSint32LE(); } @@ -241,7 +241,7 @@ void DrasculaEngine::saveGame(char gameName[]) { out->writeSint32LE(curY); out->writeSint32LE(trackProtagonist); - for (l = 1; l < 43; l++) { + for (l = 1; l < ARRAYSIZE(inventoryObjects); l++) { out->writeSint32LE(inventoryObjects[l]); } |