[Scummvm-cvs-logs] scummvm master -> 0c3c0f212126e53a8a80fad2a05609749f95cf7d

dreammaster dreammaster at scummvm.org
Wed May 11 15:02:58 CEST 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
0c3c0f2121 TSAGE: Added missing code for loading scene regions in the CD/FW versions of the game


Commit: 0c3c0f212126e53a8a80fad2a05609749f95cf7d
    https://github.com/scummvm/scummvm/commit/0c3c0f212126e53a8a80fad2a05609749f95cf7d
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-05-11T06:01:15-07:00

Commit Message:
TSAGE: Added missing code for loading scene regions in the CD/FW versions of the game

Changed paths:
    engines/tsage/core.cpp



diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index 8ad920e..8e287df 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -2914,15 +2914,22 @@ void Region::uniteRect(const Rect &rect) {
 
 void SceneRegions::load(int sceneNum) {
 	clear();
-
-	byte *regionData = _resourceManager->getResource(RES_CONTROL, sceneNum, 9999, true);
+	bool altRegions = _vm->getFeatures() & GF_ALT_REGIONS;
+	byte *regionData = _resourceManager->getResource(RES_CONTROL, sceneNum, altRegions ? 1 : 9999, true);
 
 	if (regionData) {
 		int regionCount = READ_LE_UINT16(regionData);
 		for (int regionCtr = 0; regionCtr < regionCount; ++regionCtr) {
-			int rlbNum = READ_LE_UINT16(regionData + regionCtr * 6 + 2);
+			int regionId = READ_LE_UINT16(regionData + regionCtr * 6 + 2);
 
-			push_back(Region(sceneNum, rlbNum));
+			if (altRegions) {
+				// Load data from within this resource
+				uint32 dataOffset = READ_LE_UINT32(regionData + regionCtr * 6 + 4);
+				push_back(Region(regionId, regionData + dataOffset));
+			} else {
+				// Load region from a separate resource
+				push_back(Region(sceneNum, regionId));
+			}
 		}
 
 		DEALLOCATE(regionData);






More information about the Scummvm-git-logs mailing list