diff options
author | Filippos Karapetis | 2007-04-24 15:43:16 +0000 |
---|---|---|
committer | Filippos Karapetis | 2007-04-24 15:43:16 +0000 |
commit | aa8fa78f623b8a20eaa496f16cd29193668c9cff (patch) | |
tree | f1f3b06ab5d7a85073c3b9d74740407126d82def /engines/agi | |
parent | 5c3cd349636e8da7a6993d1cb041b011d45b6d62 (diff) | |
download | scummvm-rg350-aa8fa78f623b8a20eaa496f16cd29193668c9cff.tar.gz scummvm-rg350-aa8fa78f623b8a20eaa496f16cd29193668c9cff.tar.bz2 scummvm-rg350-aa8fa78f623b8a20eaa496f16cd29193668c9cff.zip |
Patch #1705791: Patch for #1648396 - AGI : SQ2 / 2.0F / IBM / priority line
Modify a workaround made for SQ1 to work on SQ1 only, not all AGI games. This fixes bug #1648396 with SQ2, a bug with LSL1 (Sarien bug #925074) and possibly others
svn-id: r26589
Diffstat (limited to 'engines/agi')
-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; |