aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/agi/agi.h3
-rw-r--r--engines/agi/detection.cpp16
-rw-r--r--engines/agi/sprite.cpp8
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;