diff options
author | Matthew Stewart | 2018-08-08 20:59:21 -0400 |
---|---|---|
committer | Filippos Karapetis | 2019-05-28 08:08:52 +0300 |
commit | 552b88cbd5464d1468b6b3b7f3cf4cc44378b8fc (patch) | |
tree | 36628c71e74f03009f8aaab165cb8c1b493a51b7 /engines | |
parent | add9b3e699acf43d2300e6f6fbf119dc1ce85c42 (diff) | |
download | scummvm-rg350-552b88cbd5464d1468b6b3b7f3cf4cc44378b8fc.tar.gz scummvm-rg350-552b88cbd5464d1468b6b3b7f3cf4cc44378b8fc.tar.bz2 scummvm-rg350-552b88cbd5464d1468b6b3b7f3cf4cc44378b8fc.zip |
STARTREK: Bugfix to map preview of republic
Diffstat (limited to 'engines')
-rw-r--r-- | engines/startrek/awaymission.h | 1 | ||||
-rw-r--r-- | engines/startrek/menu.cpp | 10 |
2 files changed, 9 insertions, 2 deletions
diff --git a/engines/startrek/awaymission.h b/engines/startrek/awaymission.h index 7db9ef8e19..9c4d591073 100644 --- a/engines/startrek/awaymission.h +++ b/engines/startrek/awaymission.h @@ -629,6 +629,7 @@ struct AwayMission { bool bridgeCrewmanDead; // 0x30 bool scannedCaptainsChair; // 0x31 bool scannedComputerBank; // 0x32 + bool showedRepublicMapFirstTime; // 0x33 bool impulseEnginesOn; // 0x34 // 0: beam still in place diff --git a/engines/startrek/menu.cpp b/engines/startrek/menu.cpp index fdbbf1911d..d284809268 100644 --- a/engines/startrek/menu.cpp +++ b/engines/startrek/menu.cpp @@ -1023,7 +1023,7 @@ void StarTrekEngine::showRepublicMap(int16 arg0, int16 turbolift) { actorFunc1(); _gfx->pushSprites(); - if (!_awayMission.veng.scannedComputerBank) { + if (!_awayMission.veng.showedRepublicMapFirstTime) { _gfx->setBackgroundImage(_gfx->loadBitmap("veng9b")); _gfx->copyBackgroundScreen(); _system->updateScreen(); @@ -1071,7 +1071,13 @@ void StarTrekEngine::showRepublicMap(int16 arg0, int16 turbolift) { } } - _awayMission.veng.scannedComputerBank = true; // FIXME? + // BUGFIX: Original game used variable "scannedComputerBank" (0x32) instead of + // "showedRepublicMapFirstTime" (0x33), which is used elsewhere. Byte 0x33 is + // otherwise unused, so maybe this is a weird off-by-1 error. + // The effective result is that scanning the computer bank would cause the preview + // of the map screen to not appear. + _awayMission.veng.showedRepublicMapFirstTime = true; + _gfx->fadeoutScreen(); } |