[Scummvm-cvs-logs] SF.net SVN: scummvm:[35679] scummvm/trunk/engines/saga

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Fri Jan 2 20:10:51 CET 2009


Revision: 35679
          http://scummvm.svn.sourceforge.net/scummvm/?rev=35679&view=rev
Author:   thebluegr
Date:     2009-01-02 19:10:51 +0000 (Fri, 02 Jan 2009)

Log Message:
-----------
Wrapped more engine-specific code around appropriate ifdefs

Modified Paths:
--------------
    scummvm/trunk/engines/saga/detection.cpp
    scummvm/trunk/engines/saga/displayinfo.h
    scummvm/trunk/engines/saga/resource.cpp
    scummvm/trunk/engines/saga/saga.h
    scummvm/trunk/engines/saga/script.cpp
    scummvm/trunk/engines/saga/sfuncs.cpp
    scummvm/trunk/engines/saga/sndres.cpp

Modified: scummvm/trunk/engines/saga/detection.cpp
===================================================================
--- scummvm/trunk/engines/saga/detection.cpp	2009-01-02 18:44:15 UTC (rev 35678)
+++ scummvm/trunk/engines/saga/detection.cpp	2009-01-02 19:10:51 UTC (rev 35679)
@@ -343,10 +343,12 @@
 		case GID_IHNM:
 			return IHNM_DisplayInfo;
 #endif
+#ifdef ENABLE_SAGA2
 		case GID_DINO:
 			return FTA2_DisplayInfo;	// TODO
 		case GID_FTA2:
 			return FTA2_DisplayInfo;
+#endif
 		default:
 			error("getDisplayInfo: Unknown game ID");
 			return ITE_DisplayInfo;		// unreachable

Modified: scummvm/trunk/engines/saga/displayinfo.h
===================================================================
--- scummvm/trunk/engines/saga/displayinfo.h	2009-01-02 18:44:15 UTC (rev 35678)
+++ scummvm/trunk/engines/saga/displayinfo.h	2009-01-02 19:10:51 UTC (rev 35679)
@@ -429,6 +429,7 @@
 };
 #endif
 
+#ifdef ENABLE_SAGA2
 // TODO: Fill in missing bits, currently contains IHNM_DisplayInfo
 static const GameDisplayInfo FTA2_DisplayInfo = {
 	640, 480,	// logical width&height
@@ -495,6 +496,7 @@
 	ARRAYSIZE(IHNM_SavePanelButtons),
 	IHNM_SavePanelButtons
 };
+#endif
 
 } // End of namespace Saga
 

Modified: scummvm/trunk/engines/saga/resource.cpp
===================================================================
--- scummvm/trunk/engines/saga/resource.cpp	2009-01-02 18:44:15 UTC (rev 35678)
+++ scummvm/trunk/engines/saga/resource.cpp	2009-01-02 19:10:51 UTC (rev 35679)
@@ -238,14 +238,18 @@
 		{	"soundsd.cmp",		true	}
 	};
 
+#ifdef ENABLE_IHNM
 	SoundFileInfo sfxFilesIHNM[] = {
 		{	"sfx.res",			false	},
 		{	"sfx.cmp",			true	}
 	};
+#endif
 
+#ifdef ENABLE_SAGA2
 	SoundFileInfo sfxFilesFTA2[] = {
 		{	"ftasound.hrs",		false	}
 	};
+#endif
 
 	if (!soundFileInArray) {
 		// If the sound file is not specified in the detector table, add it here
@@ -256,10 +260,13 @@
 				curSoundfiles = sfxFilesITE;
 				maxFile = 4;
 				break;
+#ifdef ENABLE_IHNM
 			case GID_IHNM:
 				curSoundfiles = sfxFilesIHNM;
 				maxFile = 2;
 				break;
+#endif
+#ifdef ENABLE_SAGA2
 			case GID_DINO:
 				// TODO
 				curSoundfiles = NULL;
@@ -269,6 +276,7 @@
 				curSoundfiles = sfxFilesFTA2;
 				maxFile = 1;
 				break;
+#endif
 		}
 
 		for (i = 0; i < maxFile; i++) {
@@ -303,16 +311,20 @@
 		{	"ite voices.bin",				false	}
 	};
 
+#ifdef ENABLE_IHNM
 	SoundFileInfo voiceFilesIHNM[] = {
 		{	"voicess.res",					false	},
 		{	"voicess.cmp",					true	},
 		{	"voicesd.res",					false	},
 		{	"voicesd.cmp",					true	},
 	};
+#endif
 
+#ifdef ENABLE_SAGA2
 	SoundFileInfo voiceFilesFTA2[] = {
 		{	"ftavoice.hrs",					false	},
 	};
+#endif
 
 	// Detect and add voice files
 	fileFound = false;
@@ -322,10 +334,13 @@
 			curSoundfiles = voiceFilesITE;
 			maxFile = 7;
 			break;
+#ifdef ENABLE_IHNM
 		case GID_IHNM:
 			curSoundfiles = voiceFilesIHNM;
 			maxFile = 4;
 			break;
+#endif
+#ifdef ENABLE_SAGA2
 		case GID_DINO:
 			// TODO
 			curSoundfiles = NULL;
@@ -335,6 +350,7 @@
 			curSoundfiles = voiceFilesFTA2;
 			maxFile = 1;
 			break;
+#endif
 	}
 
 	for (i = 0; i < maxFile; i++) {

Modified: scummvm/trunk/engines/saga/saga.h
===================================================================
--- scummvm/trunk/engines/saga/saga.h	2009-01-02 18:44:15 UTC (rev 35678)
+++ scummvm/trunk/engines/saga/saga.h	2009-01-02 19:10:51 UTC (rev 35679)
@@ -84,7 +84,6 @@
 #define OBJECT_TYPE_SHIFT 13
 #define OBJECT_TYPE_MASK ((1 << OBJECT_TYPE_SHIFT) - 1)
 
-#define OBJ_SPRITE_BASE 9
 #define IHNM_OBJ_PROFILE 0x4000
 
 #define memoryError(Place) error("%s Memory allocation error.", Place)

Modified: scummvm/trunk/engines/saga/script.cpp
===================================================================
--- scummvm/trunk/engines/saga/script.cpp	2009-01-02 18:44:15 UTC (rev 35678)
+++ scummvm/trunk/engines/saga/script.cpp	2009-01-02 19:10:51 UTC (rev 35679)
@@ -305,6 +305,7 @@
 		OPCODE(opAnimate)		// 87
 	};
 
+#ifdef ENABLE_SAGA2
 	static const ScriptOpDescription SAGA2ScriptOpcodes[] = {
 		OPCODE(opDummy),		// 00: Undefined
 		// Internal operations
@@ -423,11 +424,14 @@
 		OPCODE(opJmpSeedRandom),// 97: Seeded random jump
 		OPCODE(opDummy)			// 98: Get seeded export number (unused)
 	};
+#endif
 
 	if (!_vm->isSaga2()) {
 		_scriptOpsList = SAGA1ScriptOpcodes;
+#ifdef ENABLE_SAGA2
 	} else {
-		_scriptOpsList = SAGA2ScriptOpcodes;		
+		_scriptOpsList = SAGA2ScriptOpcodes;
+#endif
 	}
 }
 
@@ -1222,8 +1226,8 @@
 		case kVerbOptions:
 			return kVerbITEOptions;
 		}
-	}
-	else {
+#ifdef ENABLE_IHNM
+	} else if (_vm->getGameId() == GID_IHNM) {
 		switch (verbType) {
 		case kVerbNone:
 			return kVerbIHNMNone;
@@ -1252,6 +1256,7 @@
 		case kVerbOptions:
 			return kVerbIHNMOptions;
 		}
+#endif
 	}
 	error("Script::getVerbType() unknown verb type %d", verbType);
 }

Modified: scummvm/trunk/engines/saga/sfuncs.cpp
===================================================================
--- scummvm/trunk/engines/saga/sfuncs.cpp	2009-01-02 18:44:15 UTC (rev 35678)
+++ scummvm/trunk/engines/saga/sfuncs.cpp	2009-01-02 19:10:51 UTC (rev 35679)
@@ -500,12 +500,8 @@
 void Script::sfSetObjImage(SCRIPTFUNC_PARAMS) {
 	uint16 objectId = thread->pop();
 	uint16 spriteId = thread->pop();
-	ObjectData *obj = _vm->_actor->getObj(objectId);
 
-	if (_vm->getGameId() == GID_IHNM)
-		obj->_spriteListResourceId = spriteId;
-	else
-		obj->_spriteListResourceId = OBJ_SPRITE_BASE + spriteId;
+	_vm->_actor->getObj(objectId)->_spriteListResourceId = spriteId + (_vm->getGameId() == GID_ITE ? 9 : 0);
 	_vm->_interface->refreshInventory();
 }
 
@@ -515,21 +511,14 @@
 void Script::sfSetObjName(SCRIPTFUNC_PARAMS) {
 	uint16 objectId = thread->pop();
 	uint16 nameIdx = thread->pop();
-	ObjectData *obj = _vm->_actor->getObj(objectId);
-
-	obj->_nameIndex = nameIdx;
+	_vm->_actor->getObj(objectId)->_nameIndex = nameIdx;
 }
 
 // Script function #19 (0x13)
 // Param1: object id
 void Script::sfGetObjImage(SCRIPTFUNC_PARAMS) {
 	uint16 objectId = thread->pop();
-	ObjectData *obj = _vm->_actor->getObj(objectId);
-
-	if (_vm->getGameId() == GID_IHNM)
-		thread->_returnValue = obj->_spriteListResourceId;
-	else
-		thread->_returnValue = obj->_spriteListResourceId - OBJ_SPRITE_BASE;
+	thread->_returnValue = _vm->_actor->getObj(objectId)->_spriteListResourceId - (_vm->getGameId() == GID_ITE ? 9 : 0);
 }
 
 // Script function #20 (0x14)
@@ -732,7 +721,7 @@
 		if (spriteId > 0 || (spriteId == 0 && objectId == IHNM_OBJ_PROFILE))
 			obj->_spriteListResourceId = spriteId;
 	} else {
-		obj->_spriteListResourceId = OBJ_SPRITE_BASE + spriteId;
+		obj->_spriteListResourceId = spriteId + 9;
 	}
 }
 
@@ -1360,7 +1349,8 @@
 		} else {
 			_vm->_music->stop();
 		}
-	} else {
+#ifdef ENABLE_IHNM
+	} else if (_vm->getGameId() == GID_IHNM) {
 		int16 param1 = thread->pop();
 		int16 param2 = thread->pop();
 
@@ -1382,6 +1372,7 @@
 				_vm->_scene->setChapterPointsChanged(false);
 			}
 		}
+#endif
 	}
 }
 

Modified: scummvm/trunk/engines/saga/sndres.cpp
===================================================================
--- scummvm/trunk/engines/saga/sndres.cpp	2009-01-02 18:44:15 UTC (rev 35678)
+++ scummvm/trunk/engines/saga/sndres.cpp	2009-01-02 19:10:51 UTC (rev 35679)
@@ -38,7 +38,9 @@
 #include "sound/wave.h"
 #include "sound/adpcm.h"
 #include "sound/aiff.h"
+#ifdef ENABLE_SAGA2
 #include "sound/shorten.h"
+#endif
 #include "sound/audiostream.h"
 
 namespace Saga {
@@ -96,24 +98,29 @@
 		_fxTable = 0;
 		_fxTableLen = 0;
 #endif
+#ifdef ENABLE_SAGA2
 	} else if (_vm->getGameId() == GID_DINO) {
 		// TODO
 	} else if (_vm->getGameId() == GID_FTA2) {
 		// TODO
+#endif
 	}
 }
 
 SndRes::~SndRes() {
+#ifdef ENABLE_IHNM
 	if (_vm->getGameId() == GID_IHNM) {
 		free(_fxTable);
 		free(_fxTableIDs);
 	}
+#endif
 }
 
 void SndRes::setVoiceBank(int serial) {
 	if (_voiceSerial == serial)
 		return;
 
+#ifdef ENABLE_IHNM
 	// If we got the Macintosh version of IHNM, just set the voice bank
 	// so that we know which voices* subfolder to look for later
 	if (_vm->getGameId() == GID_IHNM && _vm->isMacResources()) {
@@ -125,6 +132,7 @@
 		_voiceContext->serial = 0;
 		return;
 	}
+#endif
 
 	// If there are no voice files present, don't set the voice bank
 	if (!_vm->_voiceFilesExist)
@@ -192,6 +200,7 @@
 		return false;
 	}
 
+#ifdef ENABLE_IHNM
 	if (_vm->getGameId() == GID_IHNM && _vm->isMacResources()) {
 		char soundFileName[40];
 		int dirIndex = resourceId / 64;
@@ -210,14 +219,14 @@
 
 		file->open(soundFileName);
 		soundResourceLength = file->size();
-	} else {
-
+	} else 
+#endif
+	{
 		ResourceData* resourceData = context->getResourceData(resourceId);
 		file = context->getFile(resourceData);
 
 		file->seek(resourceData->offset);
 		soundResourceLength = resourceData->size;
-
 	}
 
 	Common::SeekableReadStream& readS = *file;
@@ -314,13 +323,15 @@
 			result = Audio::loadWAVFromStream(readS, size, rate, flags);
 		} else if (resourceType == kSoundAIFF) {
 			result = Audio::loadAIFFFromStream(readS, size, rate, flags);
-		} else if (resourceType == kSoundShorten) {
-			result = Audio::loadShortenFromStream(readS, size, rate, flags);
 		} else if (resourceType == kSoundVOC) {
 			data = Audio::loadVOCFromStream(readS, size, rate);
 			result = (data != 0);
 			if (onlyHeader)
 				free(data);
+#ifdef ENABLE_SAGA2
+		} else if (resourceType == kSoundShorten) {
+			result = Audio::loadShortenFromStream(readS, size, rate, flags);
+#endif
 		}
 
 		if (result) {


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list