diff options
Diffstat (limited to 'engines/lastexpress')
-rw-r--r-- | engines/lastexpress/data/scene.h | 4 | ||||
-rw-r--r-- | engines/lastexpress/data/snd.cpp | 2 | ||||
-rw-r--r-- | engines/lastexpress/detection.cpp | 20 | ||||
-rw-r--r-- | engines/lastexpress/entities/abbot.cpp | 2 | ||||
-rw-r--r-- | engines/lastexpress/entities/august.cpp | 2 | ||||
-rw-r--r-- | engines/lastexpress/entities/francois.cpp | 2 | ||||
-rw-r--r-- | engines/lastexpress/entities/mertens.cpp | 2 | ||||
-rw-r--r-- | engines/lastexpress/game/action.cpp | 2 | ||||
-rw-r--r-- | engines/lastexpress/game/entities.cpp | 21 | ||||
-rw-r--r-- | engines/lastexpress/game/savegame.cpp | 4 |
10 files changed, 28 insertions, 33 deletions
diff --git a/engines/lastexpress/data/scene.h b/engines/lastexpress/data/scene.h index 0c0d12b9c0..69a1417459 100644 --- a/engines/lastexpress/data/scene.h +++ b/engines/lastexpress/data/scene.h @@ -76,10 +76,6 @@ class SeekableReadStream; class String; } -namespace Graphics { -struct Surface; -} - namespace LastExpress { class Scene; diff --git a/engines/lastexpress/data/snd.cpp b/engines/lastexpress/data/snd.cpp index 6845be8808..a9bee6155d 100644 --- a/engines/lastexpress/data/snd.cpp +++ b/engines/lastexpress/data/snd.cpp @@ -396,7 +396,7 @@ public: // First nibble idx = data >> 4; step = stepTable[idx + _status.ima_ch[0].stepIndex / 4]; - sample = CLIP(imaTable[idx + _status.ima_ch[0].stepIndex / 4] + _status.ima_ch[0].last, -32767, 32767); + sample = CLIP<int>(imaTable[idx + _status.ima_ch[0].stepIndex / 4] + _status.ima_ch[0].last, -32767, 32767); buffer[samples] = (_stepAdjust2 * sample) >> _stepAdjust1; // Second nibble diff --git a/engines/lastexpress/detection.cpp b/engines/lastexpress/detection.cpp index 0a177809dd..82a6520522 100644 --- a/engines/lastexpress/detection.cpp +++ b/engines/lastexpress/detection.cpp @@ -48,7 +48,7 @@ static const ADGameDescription gameDescriptions[] = { Common::EN_ANY, Common::kPlatformUnknown, ADGF_UNSTABLE, - Common::GUIO_NONE + GUIO1(GUIO_NOASPECT) }, // The Last Express (English) - UK Broderbund Release @@ -66,7 +66,7 @@ static const ADGameDescription gameDescriptions[] = { Common::EN_ANY, Common::kPlatformUnknown, ADGF_UNSTABLE, - Common::GUIO_NONE + GUIO1(GUIO_NOASPECT) }, // The Last Express (English) - Interplay Release @@ -84,7 +84,7 @@ static const ADGameDescription gameDescriptions[] = { Common::EN_ANY, Common::kPlatformUnknown, ADGF_UNSTABLE, - Common::GUIO_NONE + GUIO1(GUIO_NOASPECT) }, // The Last Express (Demo - English) - Broderbund @@ -99,7 +99,7 @@ static const ADGameDescription gameDescriptions[] = { Common::EN_ANY, Common::kPlatformUnknown, ADGF_DEMO | ADGF_UNSTABLE, - Common::GUIO_NONE + GUIO1(GUIO_NOASPECT) }, // The Last Express (French) - Broderbund Release @@ -117,7 +117,7 @@ static const ADGameDescription gameDescriptions[] = { Common::FR_FRA, Common::kPlatformUnknown, ADGF_UNSTABLE, - Common::GUIO_NONE + GUIO1(GUIO_NOASPECT) }, // The Last Express (German) @@ -135,7 +135,7 @@ static const ADGameDescription gameDescriptions[] = { Common::DE_DEU, Common::kPlatformUnknown, ADGF_UNSTABLE, - Common::GUIO_NONE + GUIO1(GUIO_NOASPECT) }, // The Last Express (Spanish) @@ -153,7 +153,7 @@ static const ADGameDescription gameDescriptions[] = { Common::ES_ESP, Common::kPlatformUnknown, ADGF_UNSTABLE, - Common::GUIO_NONE + GUIO1(GUIO_NOASPECT) }, // The Last Express (Italian) @@ -171,7 +171,7 @@ static const ADGameDescription gameDescriptions[] = { Common::IT_ITA, Common::kPlatformUnknown, ADGF_UNSTABLE, - Common::GUIO_NONE + GUIO1(GUIO_NOASPECT) }, // The Last Express (Russian) @@ -189,7 +189,7 @@ static const ADGameDescription gameDescriptions[] = { Common::RU_RUS, Common::kPlatformUnknown, ADGF_UNSTABLE, - Common::GUIO_NONE + GUIO1(GUIO_NOASPECT) }, AD_TABLE_END_MARKER @@ -200,7 +200,7 @@ class LastExpressMetaEngine : public AdvancedMetaEngine { public: LastExpressMetaEngine() : AdvancedMetaEngine(gameDescriptions, sizeof(ADGameDescription), lastExpressGames) { _singleid = "lastexpress"; - _guioptions = Common::GUIO_NOSUBTITLES | Common::GUIO_NOSFX; + _guioptions = GUIO2(GUIO_NOSUBTITLES, GUIO_NOSFX); } const char *getName() const { diff --git a/engines/lastexpress/entities/abbot.cpp b/engines/lastexpress/entities/abbot.cpp index c5c6f2a44d..301c52e142 100644 --- a/engines/lastexpress/entities/abbot.cpp +++ b/engines/lastexpress/entities/abbot.cpp @@ -841,7 +841,7 @@ IMPLEMENT_FUNCTION(31, Abbot, function31) case kActionNone: if (params->param4 != kTimeInvalid && params->param2 < getState()->time) { - if (getState()->time < getState()->time) { + if (params->param3 < getState()->time) { params->param4 = kTimeInvalid; setCallback(1); diff --git a/engines/lastexpress/entities/august.cpp b/engines/lastexpress/entities/august.cpp index eb3b09af59..cfde8a2d6f 100644 --- a/engines/lastexpress/entities/august.cpp +++ b/engines/lastexpress/entities/august.cpp @@ -2118,7 +2118,7 @@ IMPLEMENT_FUNCTION_II(41, August, function41, CarIndex, EntityPosition) && getEntities()->isDistanceBetweenEntities(kEntityAugust, kEntityPlayer, 1000) && !getEntities()->isInsideCompartments(kEntityPlayer) && !getEntities()->checkFields10(kEntityPlayer)) { - if (getData()->car == kCarGreenSleeping || getData()->car == kCarGreenSleeping) { + if (getData()->car == kCarGreenSleeping || getData()->car == kCarRedSleeping) { getAction()->playAnimation(kEventAugustMerchandise); getEntities()->loadSceneFromEntityPosition(getData()->car, (EntityPosition)(getData()->entityPosition + (750 * (getData()->direction == kDirectionUp ? -1 : 1))), getData()->direction == kDirectionUp); diff --git a/engines/lastexpress/entities/francois.cpp b/engines/lastexpress/entities/francois.cpp index 2b170d93a3..46cd790ffb 100644 --- a/engines/lastexpress/entities/francois.cpp +++ b/engines/lastexpress/entities/francois.cpp @@ -450,7 +450,7 @@ label_callback: if (isNight()) getAction()->playAnimation(getData()->entityPosition <= getEntityData(kEntityPlayer)->entityPosition ? kEventFrancoisWhistleNightD : kEventFrancoisWhistleNight); else - getAction()->playAnimation(getData()->entityPosition <= getEntityData(kEntityPlayer)->entityPosition ? kEventFrancoisWhistleD : kEventFrancoisWhistleD); + getAction()->playAnimation(getData()->entityPosition <= getEntityData(kEntityPlayer)->entityPosition ? kEventFrancoisWhistleD : kEventFrancoisWhistle); } getEntities()->loadSceneFromEntityPosition(getData()->car, (EntityPosition)(getData()->entityPosition + 750 * (getData()->direction == kDirectionUp ? -1 : 1)), getData()->direction == kDirectionUp); break; diff --git a/engines/lastexpress/entities/mertens.cpp b/engines/lastexpress/entities/mertens.cpp index e222af4805..d88962fce2 100644 --- a/engines/lastexpress/entities/mertens.cpp +++ b/engines/lastexpress/entities/mertens.cpp @@ -390,7 +390,7 @@ IMPLEMENT_FUNCTION_II(10, Mertens, updateEntity, CarIndex, EntityPosition) break; case kActionDefault: - if ((!getProgress().eventCorpseFound && !getEvent(kEventMertensAskTylerCompartment) && !getEvent(kEventMertensAskTylerCompartment)) + if ((!getProgress().eventCorpseFound && !getEvent(kEventMertensAskTylerCompartment) && !getEvent(kEventMertensAskTylerCompartmentD)) || (ENTITY_PARAM(0, 4) && getProgress().jacket == kJacketGreen && !getEvent(kEventMertensDontMakeBed) && !getProgress().eventCorpseThrown)) params->param3 = 1; diff --git a/engines/lastexpress/game/action.cpp b/engines/lastexpress/game/action.cpp index 2ef4c20d70..98d74dd1a7 100644 --- a/engines/lastexpress/game/action.cpp +++ b/engines/lastexpress/game/action.cpp @@ -1806,7 +1806,7 @@ CursorStyle Action::getCursor(const SceneHotspot &hotspot) const { if (getProgress().jacket != kJacketGreen) return kCursorNormal; - if ((getEvent(kEventCathLookOutsideWindowDay) || getEvent(kEventCathLookOutsideWindowDay) || getObjects()->get(kObjectCompartment1).location2 == kObjectLocation1) + if ((getEvent(kEventCathLookOutsideWindowDay) || getEvent(kEventCathLookOutsideWindowNight) || getObjects()->get(kObjectCompartment1).location2 == kObjectLocation1) && getProgress().isTrainRunning && (object != kObjectOutsideAnnaCompartment || (getEntities()->isInsideCompartment(kEntityRebecca, kCarRedSleeping, kPosition_4840) && getObjects()->get(kObjectOutsideBetweenCompartments).location == 2)) && getInventory()->getSelectedItem() != kItemBriefcase && getInventory()->getSelectedItem() != kItemFirebird) diff --git a/engines/lastexpress/game/entities.cpp b/engines/lastexpress/game/entities.cpp index 1b31339b7b..894663dda6 100644 --- a/engines/lastexpress/game/entities.cpp +++ b/engines/lastexpress/game/entities.cpp @@ -87,16 +87,15 @@ static const EntityPosition objectsPosition[8] = {kPosition_8200, kPosition_7500 kPosition_4840, kPosition_4070, kPosition_3050, kPosition_2740}; -static const EntityPosition entityPositions[41] = { - kPositionNone, kPosition_851, kPosition_1430, kPosition_2110, kPositionNone, - kPosition_2410, kPosition_2980, kPosition_3450, kPosition_3760, kPosition_4100, - kPosition_4680, kPosition_5140, kPosition_5440, kPosition_5810, kPosition_6410, - kPosition_6850, kPosition_7160, kPosition_7510, kPosition_8514, kPositionNone, - kPositionNone, kPositionNone, kPosition_2086, kPosition_2690, kPositionNone, - kPosition_3110, kPosition_3390, kPosition_3890, kPosition_4460, kPosition_4770, - kPosition_5090, kPosition_5610, kPosition_6160, kPosition_6460, kPosition_6800, - kPosition_7320, kPosition_7870, kPosition_8160, kPosition_8500, kPosition_9020, - kPosition_9269}; +static const EntityPosition entityPositions[41] = {kPositionNone, kPosition_851, kPosition_1430, kPosition_2110, kPositionNone, + kPosition_2410, kPosition_2980, kPosition_3450, kPosition_3760, kPosition_4100, + kPosition_4680, kPosition_5140, kPosition_5440, kPosition_5810, kPosition_6410, + kPosition_6850, kPosition_7160, kPosition_7510, kPosition_8514, kPositionNone, + kPositionNone, kPositionNone, kPosition_2086, kPosition_2690, kPositionNone, + kPosition_3110, kPosition_3390, kPosition_3890, kPosition_4460, kPosition_4770, + kPosition_5090, kPosition_5610, kPosition_6160, kPosition_6460, kPosition_6800, + kPosition_7320, kPosition_7870, kPosition_8160, kPosition_8500, kPosition_9020, + kPosition_9269}; #define ADD_ENTITY(class) \ _entities.push_back(new class(engine)); @@ -105,7 +104,7 @@ static const EntityPosition entityPositions[41] = { sequenceTo = sequenceFrom; \ for (int seqIdx = 0; seqIdx < 7; seqIdx++) \ sequenceTo.deleteLastChar(); \ - if (isInsideTrainCar(entityIndex, kCarGreenSleeping) || isInsideTrainCar(entityIndex, kCarGreenSleeping)) { \ + if (isInsideTrainCar(entityIndex, kCarGreenSleeping) || isInsideTrainCar(entityIndex, kCarRedSleeping)) { \ if (data->car < getData(kEntityPlayer)->car || (data->car == getData(kEntityPlayer)->car && data->entityPosition < getData(kEntityPlayer)->entityPosition)) \ sequenceTo += "R.SEQ"; \ else \ diff --git a/engines/lastexpress/game/savegame.cpp b/engines/lastexpress/game/savegame.cpp index 57c18b5697..9c464feb6e 100644 --- a/engines/lastexpress/game/savegame.cpp +++ b/engines/lastexpress/game/savegame.cpp @@ -154,11 +154,11 @@ void SaveLoad::loadStream(GameId id) { error("[SaveLoad::loadStream] Savegame stream is invalid"); // Load all savegame data - uint8* buf = new uint8[8192]; + uint8 *buf = new uint8[8192]; while (!save->eos() && !save->err()) { _engine->pollEvents(); - uint32 count = save->read(buf, sizeof(buf)); + uint32 count = save->read(buf, 8192); if (count) { uint32 w = _savegame->write(buf, count); assert (w == count); |