[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