aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra
diff options
context:
space:
mode:
authorAlejandro Marzini2010-08-16 00:21:07 +0000
committerAlejandro Marzini2010-08-16 00:21:07 +0000
commitb0409d673921163085d2e2fa440911080a7cf884 (patch)
tree81b1bb895db6baed7881ca5cbc7ff3a830286189 /engines/kyra
parent503578ac1087b91dcb912fd7918454de73538b34 (diff)
parentb49761b6eae3a0aadefef4c4ffee6a7b583cc3ac (diff)
downloadscummvm-rg350-b0409d673921163085d2e2fa440911080a7cf884.tar.gz
scummvm-rg350-b0409d673921163085d2e2fa440911080a7cf884.tar.bz2
scummvm-rg350-b0409d673921163085d2e2fa440911080a7cf884.zip
Merge trunk, from r51777 to r52105
svn-id: r52108
Diffstat (limited to 'engines/kyra')
-rw-r--r--engines/kyra/detection_tables.h21
-rw-r--r--engines/kyra/lol.cpp2
-rw-r--r--engines/kyra/lol.h2
-rw-r--r--engines/kyra/sound_towns.cpp20
-rw-r--r--engines/kyra/staticres.cpp2
-rw-r--r--engines/kyra/staticres_lol.cpp23
6 files changed, 45 insertions, 25 deletions
diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index fe4cc7298f..2e1d5afc17 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -194,7 +194,7 @@ const KYRAGameDescription adGameDescs[] = {
Common::EN_ANY,
Common::kPlatformAmiga,
ADGF_NO_FLAGS,
- Common::GUIO_NOSPEECH
+ Common::GUIO_NOSPEECH | Common::GUIO_MIDIAMIGA
},
KYRA1_AMIGA_FLAGS
},
@@ -211,7 +211,7 @@ const KYRAGameDescription adGameDescs[] = {
Common::DE_DEU,
Common::kPlatformAmiga,
ADGF_NO_FLAGS,
- Common::GUIO_NOSPEECH
+ Common::GUIO_NOSPEECH | Common::GUIO_MIDIAMIGA
},
KYRA1_AMIGA_FLAGS
},
@@ -1113,6 +1113,23 @@ const KYRAGameDescription adGameDescs[] = {
"lol",
"Extracted",
{
+ { "GENERAL.PAK", 0, "0f1fabc1f67b772a30d8e05ece720ac5", -1 },
+ { "CHAPTER7.PAK", 0, "482308aba1c40ee32449b91b0c63b990", -1 },
+ { 0, 0, 0, 0 }
+ },
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NOSPEECH | Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK
+ },
+ LOL_FLOPPY_FLAGS
+ },
+
+ {
+ {
+ "lol",
+ "Extracted",
+ {
{ "GENERAL.PAK", 0, "996e66e81054d36249907a1d8158da3d", -1 },
{ "CHAPTER7.PAK", 0, "cabee57f00d6d84b65a732b6868a4959", -1 },
{ 0, 0, 0, 0 }
diff --git a/engines/kyra/lol.cpp b/engines/kyra/lol.cpp
index 98f0e31b69..03d52ec4ac 100644
--- a/engines/kyra/lol.cpp
+++ b/engines/kyra/lol.cpp
@@ -4291,7 +4291,7 @@ void LoLEngine::drawMapPage(int pageNum) {
if (!_defaultLegendData[ii].enable)
continue;
_screen->copyBlockAndApplyOverlay(_screen->_curPage, 235, (tY << 3) + 21 + yOffset, _screen->_curPage, 235 + xOffset, (tY << 3) + 21 + yOffset, 7, 6, 0, _mapOverlay);
- _screen->drawShape(_screen->_curPage, _automapShapes[_defaultLegendData[ii].shapeIndex << 2], 232 + xOffset, (tY << 3) + 18 + yOffset + _defaultLegendData[ii].x, 0, 0);
+ _screen->drawShape(_screen->_curPage, _automapShapes[_defaultLegendData[ii].shapeIndex << 2], 232 + xOffset, (tY << 3) + 18 + yOffset + _defaultLegendData[ii].y, 0, 0);
printMapText(_defaultLegendData[ii].stringId, 244 + xOffset, (tY << 3) + 22 + yOffset);
tY++;
}
diff --git a/engines/kyra/lol.h b/engines/kyra/lol.h
index b5a657ac15..57c127a94f 100644
--- a/engines/kyra/lol.h
+++ b/engines/kyra/lol.h
@@ -256,7 +256,7 @@ struct LevelTempData {
struct MapLegendData {
uint8 shapeIndex;
bool enable;
- int8 x;
+ int8 y;
uint16 stringId;
};
diff --git a/engines/kyra/sound_towns.cpp b/engines/kyra/sound_towns.cpp
index 8d01d47262..d27b075906 100644
--- a/engines/kyra/sound_towns.cpp
+++ b/engines/kyra/sound_towns.cpp
@@ -65,7 +65,9 @@ bool SoundTowns::init() {
if (!loadInstruments())
return false;
- _driver->cdaSetVolume(1, 118, 118);
+ _driver->intf()->callback(68);
+ _driver->intf()->callback(70, 0x33);
+ _driver->setOutputVolume(1, 118, 118);
return true;
}
@@ -91,7 +93,7 @@ void SoundTowns::playTrack(uint8 track) {
beginFadeOut();
if (_musicEnabled == 2 && trackNum != -1) {
- _driver->cdaSetVolume(1, 118, 118);
+ _driver->setOutputVolume(1, 118, 118);
g_system->getAudioCDManager()->play(trackNum + 1, loop ? -1 : 1, 0, 0);
g_system->getAudioCDManager()->updateCD();
_cdaPlaying = true;
@@ -229,24 +231,24 @@ void SoundTowns::stopAllSoundEffects() {
void SoundTowns::beginFadeOut() {
if (_cdaPlaying) {
for (int i = 118; i > 103; i--) {
- _driver->cdaSetVolume(1, i, i);
+ _driver->setOutputVolume(1, i, i);
_vm->delay(2 * _vm->tickLength());
}
for (int i = 103; i > 83; i -= 2) {
- _driver->cdaSetVolume(1, i, i);
+ _driver->setOutputVolume(1, i, i);
_vm->delay(2 * _vm->tickLength());
}
for (int i = 83; i > 58; i -= 2) {
- _driver->cdaSetVolume(1, i, i);
+ _driver->setOutputVolume(1, i, i);
_vm->delay(_vm->tickLength());
}
for (int i = 58; i > 0; i--)
- _driver->cdaSetVolume(1, i, i);
+ _driver->setOutputVolume(1, i, i);
- _driver->cdaSetVolume(1, 0, 0);
+ _driver->setOutputVolume(1, 0, 0);
} else {
if (_lastTrack == -1)
@@ -335,9 +337,9 @@ void SoundTowns::playEuphonyTrack(uint32 offset, int loop) {
for (int i = 0; i < 32; i++)
_driver->chanOrdr(i, *src++);
for (int i = 0; i < 32; i++)
- _driver->chanLevel(i, *src++);
+ _driver->chanVolumeShift(i, *src++);
for (int i = 0; i < 32; i++)
- _driver->chanTranspose(i, *src++);
+ _driver->chanNoteShift(i, *src++);
src = _musicTrackData + 1748;
for (int i = 0; i < 6; i++)
diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp
index 274acae22c..4b71b1d69d 100644
--- a/engines/kyra/staticres.cpp
+++ b/engines/kyra/staticres.cpp
@@ -42,7 +42,7 @@
namespace Kyra {
-#define RESFILE_VERSION 71
+#define RESFILE_VERSION 72
namespace {
bool checkKyraDat(Common::SeekableReadStream *file) {
diff --git a/engines/kyra/staticres_lol.cpp b/engines/kyra/staticres_lol.cpp
index dbf6808e37..3287ee37d6 100644
--- a/engines/kyra/staticres_lol.cpp
+++ b/engines/kyra/staticres_lol.cpp
@@ -372,31 +372,32 @@ void LoLEngine::initStaticResource() {
_autoMapStrings = _staticres->loadRawDataBe16(kLolMapStringId, _autoMapStringsSize);
- int tmpSize = 0;
- const uint8 *tmp = _staticres->loadRawData(kLolLegendData, tmpSize);
- tmpSize /= 5;
- if (tmp) {
- _defaultLegendData = new MapLegendData[tmpSize];
- for (int i = 0; i < tmpSize; i++) {
+ int tempSize;
+ const uint8 *tmp = _staticres->loadRawData(kLolLegendData, tempSize);
+ uint8 entrySize = tempSize / 12;
+ tempSize /= entrySize;
+ if (tempSize) {
+ _defaultLegendData = new MapLegendData[tempSize];
+ for (int i = 0; i < tempSize; i++) {
_defaultLegendData[i].shapeIndex = *tmp++;
_defaultLegendData[i].enable = *tmp++ ? true : false;
- _defaultLegendData[i].x = (int8)*tmp++;
+ _defaultLegendData[i].y = (entrySize == 5) ? (int8)*tmp++ : (i == 10 ? -5 : 0);
_defaultLegendData[i].stringId = READ_LE_UINT16(tmp);
tmp += 2;
}
_staticres->unloadId(kLolLegendData);
}
- tmp = _staticres->loadRawData(kLolMapCursorOvl, tmpSize);
- _mapCursorOverlay = new uint8[tmpSize];
- memcpy(_mapCursorOverlay, tmp, tmpSize);
+ tmp = _staticres->loadRawData(kLolMapCursorOvl, tempSize);
+ _mapCursorOverlay = new uint8[tempSize];
+ memcpy(_mapCursorOverlay, tmp, tempSize);
_staticres->unloadId(kLolMapCursorOvl);
_updateSpellBookCoords = _staticres->loadRawData(kLolSpellbookCoords, _updateSpellBookCoordsSize);
_updateSpellBookAnimData = _staticres->loadRawData(kLolSpellbookAnim, _updateSpellBookAnimDataSize);
_healShapeFrames = _staticres->loadRawData(kLolHealShapeFrames, _healShapeFramesSize);
- tmp = _staticres->loadRawData(kLolLightningDefs, tmpSize);
+ tmp = _staticres->loadRawData(kLolLightningDefs, tempSize);
if (tmp) {
_lightningProps = new LightningProperty[5];
for (int i = 0; i < 5; i++) {