diff options
| author | Filippos Karapetis | 2010-11-17 14:28:32 +0000 | 
|---|---|---|
| committer | Filippos Karapetis | 2010-11-17 14:28:32 +0000 | 
| commit | 47e137fd8e26471ff678b49355a2f01cfe1e6c39 (patch) | |
| tree | 166aa1ee57cd5b92b1060beafd6fae60b200296f /engines/sci/engine/features.cpp | |
| parent | c003032b4cb25e1ea9e3f9cdee904604c30fb4ff (diff) | |
| download | scummvm-rg350-47e137fd8e26471ff678b49355a2f01cfe1e6c39.tar.gz scummvm-rg350-47e137fd8e26471ff678b49355a2f01cfe1e6c39.tar.bz2 scummvm-rg350-47e137fd8e26471ff678b49355a2f01cfe1e6c39.zip | |
SCI: lofsa/lofss functionality for SCI3
- Updated detectLofsType() for SCI3
- Cleaned up op_lofsa and op_lofss and updated them for SCI3
svn-id: r54293
Diffstat (limited to 'engines/sci/engine/features.cpp')
| -rw-r--r-- | engines/sci/engine/features.cpp | 11 | 
1 files changed, 10 insertions, 1 deletions
| diff --git a/engines/sci/engine/features.cpp b/engines/sci/engine/features.cpp index 97eec38caf..7d9b4f43fc 100644 --- a/engines/sci/engine/features.cpp +++ b/engines/sci/engine/features.cpp @@ -270,11 +270,20 @@ SciVersion GameFeatures::detectLofsType() {  			return _lofsType;  		} -		if (getSciVersion() >= SCI_VERSION_1_1) { +		if (getSciVersion() >= SCI_VERSION_1_1 && getSciVersion() <= SCI_VERSION_2_1) { +			// SCI1.1 type, i.e. we compensate for the fact that the heap is attached +			// to the end of the script  			_lofsType = SCI_VERSION_1_1;  			return _lofsType;  		} +		if (getSciVersion() == SCI_VERSION_3) { +			// SCI3 type, same as pre-SCI1.1, really, as there is no separate heap +			// resource +			_lofsType = SCI_VERSION_3; +			return _lofsType; +		} +  		// Find a function of the "Game" object (which is the game super class) which invokes lofsa/lofss  		reg_t gameSuperClass = g_sci->getGameSuperClassAddress();  		bool found = false; | 
