diff options
-rw-r--r-- | engines/agi/agi.h | 3 | ||||
-rw-r--r-- | engines/agi/detection.cpp | 16 | ||||
-rw-r--r-- | engines/agi/sprite.cpp | 8 |
3 files changed, 15 insertions, 12 deletions
diff --git a/engines/agi/agi.h b/engines/agi/agi.h index b9fac16b48..385bf6b247 100644 --- a/engines/agi/agi.h +++ b/engines/agi/agi.h @@ -111,7 +111,8 @@ enum AgiGameFeatures { GF_MACGOLDRUSH = (1 << 5), GF_FANMADE = (1 << 6), GF_ESC_MENU = (1 << 7), - GF_MANHUNTER = (1 << 8) + GF_MANHUNTER = (1 << 8), + GF_SQ1 = (1 << 9) }; struct AGIGameDescription; diff --git a/engines/agi/detection.cpp b/engines/agi/detection.cpp index 608abf9b14..97f4ecd200 100644 --- a/engines/agi/detection.cpp +++ b/engines/agi/detection.cpp @@ -1236,7 +1236,7 @@ static const AGIGameDescription gameDescriptions[] = { Common::ADGF_NO_FLAGS }, GType_V2, - 0, + GF_SQ1, 0x2440, }, @@ -1252,7 +1252,7 @@ static const AGIGameDescription gameDescriptions[] = { Common::ADGF_NO_FLAGS }, GType_V2, - 0, + GF_SQ1, 0x2272, }, @@ -1268,7 +1268,7 @@ static const AGIGameDescription gameDescriptions[] = { Common::ADGF_NO_FLAGS }, GType_V2, - 0, + GF_SQ1, 0x2440, }, @@ -1284,7 +1284,7 @@ static const AGIGameDescription gameDescriptions[] = { Common::ADGF_NO_FLAGS }, GType_V2, - 0, + GF_SQ1, 0x2440, }, @@ -1300,7 +1300,7 @@ static const AGIGameDescription gameDescriptions[] = { Common::ADGF_NO_FLAGS }, GType_V2, - 0, + GF_SQ1, 0x2917, }, @@ -1316,7 +1316,7 @@ static const AGIGameDescription gameDescriptions[] = { Common::ADGF_NO_FLAGS }, GType_V2, - 0, + GF_SQ1, 0x2089, }, @@ -1332,7 +1332,7 @@ static const AGIGameDescription gameDescriptions[] = { Common::ADGF_NO_FLAGS }, GType_V2, - 0, + GF_SQ1, 0x2272, }, @@ -1348,7 +1348,7 @@ static const AGIGameDescription gameDescriptions[] = { Common::ADGF_NO_FLAGS }, GType_V2, - 0, + GF_SQ1, 0x2440, }, diff --git a/engines/agi/sprite.cpp b/engines/agi/sprite.cpp index 8a67f2e60e..e4cb6ed175 100644 --- a/engines/agi/sprite.cpp +++ b/engines/agi/sprite.cpp @@ -618,10 +618,12 @@ void SpritesMgr::addToPic(int view, int loop, int cel, int x, int y, int pri, in /* add rectangle around object, don't clobber control * info in priority data. The box extends to the end of * its priority band! - * - * SQ1 needs +1 (see bug #810331) */ - y3 = (y2 / 12) * 12 + 1; + y3 = (y2 / 12) * 12; + + // SQ1 needs +1 (see bug #810331) + if (_vm->getFeatures() & GF_SQ1) + y3++; // don't let box extend below y. if (y3 > y2) y3 = y2; |