diff options
-rw-r--r-- | engines/hopkins/dialogs.cpp | 1 | ||||
-rw-r--r-- | engines/sci/detection_tables.h | 40 | ||||
-rw-r--r-- | engines/sci/parser/grammar.cpp | 4 | ||||
-rw-r--r-- | engines/toon/anim.cpp | 4 |
4 files changed, 36 insertions, 13 deletions
diff --git a/engines/hopkins/dialogs.cpp b/engines/hopkins/dialogs.cpp index 5b9fb8afc2..c8a478f93b 100644 --- a/engines/hopkins/dialogs.cpp +++ b/engines/hopkins/dialogs.cpp @@ -422,6 +422,7 @@ void DialogsManager::showInventory() { if (cursorId != 1 && cursorId != 2 && cursorId != 3 && cursorId != 16) { if (mouseButton == 2) { _vm->_objectsMan->nextObjectIcon(newInventoryItem); + cursorId = _vm->_events->_mouseCursorId; if (cursorId != 23) _vm->_events->changeMouseCursor(cursorId); } diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h index c8137c8fb4..62d88ba1a5 100644 --- a/engines/sci/detection_tables.h +++ b/engines/sci/detection_tables.h @@ -696,6 +696,14 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::DE_DEU, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Gabriel Knight - French DOS Floppy (supplied my kervala in bug report #3611487) + // SCI interpreter version 2.000.000 + {"gk1", "", { + {"resource.map", 0, "236e36cc847cdeafdd5e5fa8cba916ed", 10801}, + {"resource.000", 0, "091cf08910780feabc56f8551b09cb36", 13033072}, + AD_LISTEND}, + Common::FR_FRA, Common::kPlatformPC, ADGF_UNSTABLE, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Gabriel Knight - English DOS CD (from jvprat) // Executable scanning reports "2.000.000", VERSION file reports "01.100.000" {"gk1", "CD", { @@ -1911,17 +1919,6 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::EN_ANY, Common::kPlatformAmiga, 0, GUIO4(GUIO_NOSPEECH, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, - // Larry 3 - English DOS - // SCI interpreter version 0.000.572 - {"lsl3", "", { - {"resource.map", 0, "0b6bd3e039682830a51c5755c06591db", 5916}, - {"resource.001", 0, "f18441027154292836b973c655fa3175", 456722}, - {"resource.002", 0, "f18441027154292836b973c655fa3175", 578024}, - {"resource.003", 0, "f18441027154292836b973c655fa3175", 506807}, - {"resource.004", 0, "f18441027154292836b973c655fa3175", 513651}, - AD_LISTEND}, - Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, - // Larry 3 - English DOS (supplied by ssburnout in bug report #3049193) // 1.021 8x5.25" (label: Int#5.15.90) {"lsl3", "", { @@ -1950,6 +1947,27 @@ static const struct ADGameDescription SciGameDescriptions[] = { AD_LISTEND}, Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Larry 3 - English DOS + // SCI interpreter version 0.000.572 + {"lsl3", "", { + {"resource.map", 0, "0b6bd3e039682830a51c5755c06591db", 5916}, + {"resource.001", 0, "f18441027154292836b973c655fa3175", 456722}, + {"resource.002", 0, "f18441027154292836b973c655fa3175", 578024}, + {"resource.003", 0, "f18441027154292836b973c655fa3175", 506807}, + {"resource.004", 0, "f18441027154292836b973c655fa3175", 513651}, + AD_LISTEND}, + Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + + // Larry 3 - English DOS (supplied by kervala in bug report #3611488) + {"lsl3", "", { + {"resource.map", 0, "534d8946f10bc71a71b5bf89a84c31be", 5916}, + {"resource.001", 0, "f18441027154292836b973c655fa3175", 456265}, + {"resource.002", 0, "f18441027154292836b973c655fa3175", 577059}, + {"resource.003", 0, "f18441027154292836b973c655fa3175", 506817}, + {"resource.004", 0, "f18441027154292836b973c655fa3175", 513337}, + AD_LISTEND}, + Common::EN_ANY, Common::kPlatformPC, 0, GUIO5(GUIO_NOSPEECH, GAMEOPTION_EGA_UNDITHER, GAMEOPTION_PREFER_DIGITAL_SFX, GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FB01_MIDI) }, + // Larry 3 - English DOS Non-Interactive Demo // SCI interpreter version 0.000.530 {"lsl3", "Demo", { diff --git a/engines/sci/parser/grammar.cpp b/engines/sci/parser/grammar.cpp index 6e02eb75e3..26e3ec9238 100644 --- a/engines/sci/parser/grammar.cpp +++ b/engines/sci/parser/grammar.cpp @@ -386,8 +386,10 @@ ParseRuleList *Vocabulary::buildGNF(bool verbose) { for (uint i = 1; i < _parserBranches.size(); i++) { // branch rule 0 is treated specially ParseRule *rule = _vbuild_rule(&_parserBranches[i]); - if (!rule) + if (!rule) { + freeRuleList(ntlist); return NULL; + } ntlist = _vocab_add_rule(ntlist, rule); } diff --git a/engines/toon/anim.cpp b/engines/toon/anim.cpp index 1c85a8d798..a6744568f7 100644 --- a/engines/toon/anim.cpp +++ b/engines/toon/anim.cpp @@ -78,8 +78,10 @@ bool Animation::loadAnimation(const Common::String &file) { delete[] _frames; _frames = new AnimationFrame[_numFrames]; for (int32 e = 0; e < _numFrames; e++) { - if (READ_LE_UINT32(data) != 0x12345678) + if (READ_LE_UINT32(data) != 0x12345678) { + delete[] finalBuffer; return false; + } int32 oldRef = READ_LE_UINT32(data + 4); uint32 compressedSize = READ_LE_UINT32(data + 8); |