[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