aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/resource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/resource.cpp')
-rw-r--r--engines/sci/resource.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index f620e1cb3f..d31a3656ef 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -1859,6 +1859,35 @@ void ResourceManager::detectSciVersion() {
}
}
+bool ResourceManager::detectHires() {
+ // SCI 1.1 and prior is never hires
+ if (getSciVersion() <= SCI_VERSION_1_1)
+ return false;
+
+#ifdef ENABLE_SCI32
+ for (int i = 0; i < 32768; i++) {
+ Resource *res = findResource(ResourceId(kResourceTypePic, i), 0);
+
+ if (res) {
+ if (READ_LE_UINT16(res->data) == 0x0e) {
+ // SCI32 picture
+ uint16 width = READ_LE_UINT16(res->data + 14);
+ uint16 height = READ_LE_UINT16(res->data + 16);
+ if ((width == 320) && ((height == 190) || (height == 200)))
+ return false;
+ if ((width >= 600) || (height >= 400))
+ return true;
+ }
+ }
+ }
+
+ warning("resMan: Couldn't detect hires");
+ return false;
+#else
+ error("no sci32 support");
+#endif
+}
+
// Functions below are based on PD code by Brian Provinciano (SCI Studio)
bool ResourceManager::hasOldScriptHeader() {
Resource *res = findResource(ResourceId(kResourceTypeScript, 0), 0);