diff options
author | Simei Yin | 2017-07-18 19:03:45 +0200 |
---|---|---|
committer | Simei Yin | 2017-07-18 19:05:04 +0200 |
commit | 4fc6cef968fbf3dc12a6f60611689938dc76da8e (patch) | |
tree | 98f9c665ecf6fd9ec63fa2d6b42013474f213789 /engines/sludge/objtypes.cpp | |
parent | 798ec60f54064a6a7f5750ab792d06666f9ce8ea (diff) | |
download | scummvm-rg350-4fc6cef968fbf3dc12a6f60611689938dc76da8e.tar.gz scummvm-rg350-4fc6cef968fbf3dc12a6f60611689938dc76da8e.tar.bz2 scummvm-rg350-4fc6cef968fbf3dc12a6f60611689938dc76da8e.zip |
SLUDGE: Objectify resource manager
Diffstat (limited to 'engines/sludge/objtypes.cpp')
-rw-r--r-- | engines/sludge/objtypes.cpp | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/engines/sludge/objtypes.cpp b/engines/sludge/objtypes.cpp index 8b7f258c63..57365e22ae 100644 --- a/engines/sludge/objtypes.cpp +++ b/engines/sludge/objtypes.cpp @@ -25,6 +25,7 @@ #include "sludge/variable.h" #include "sludge/newfatal.h" #include "sludge/moreio.h" +#include "sludge/sludge.h" #include "sludge/fileset.h" #include "sludge/version.h" @@ -32,8 +33,6 @@ namespace Sludge { objectType *allObjectTypes = NULL; -#define DEBUG_COMBINATIONS 0 - bool initObjectTypes() { return true; } @@ -55,40 +54,41 @@ objectType *loadObjectType(int i) { objectType *newType = new objectType; if (checkNew(newType)) { - if (openObjectSlice(i)) { - nameNum = bigDataFile->readUint16BE(); - newType->r = (byte)bigDataFile->readByte(); - newType->g = (byte)bigDataFile->readByte(); - newType->b = (byte)bigDataFile->readByte(); - newType->speechGap = bigDataFile->readByte(); - newType->walkSpeed = bigDataFile->readByte(); - newType->wrapSpeech = bigDataFile->readUint32LE(); - newType->spinSpeed = bigDataFile->readUint16BE(); + if (g_sludge->_resMan->openObjectSlice(i)) { + Common::SeekableReadStream *readStream = g_sludge->_resMan->getData(); + nameNum = readStream->readUint16BE(); + newType->r = (byte)readStream->readByte(); + newType->g = (byte)readStream->readByte(); + newType->b = (byte)readStream->readByte(); + newType->speechGap = readStream->readByte(); + newType->walkSpeed = readStream->readByte(); + newType->wrapSpeech = readStream->readUint32LE(); + newType->spinSpeed = readStream->readUint16BE(); if (gameVersion >= VERSION(1, 6)) { // aaLoad - bigDataFile->readByte(); - bigDataFile->readFloatLE(); - bigDataFile->readFloatLE(); + readStream->readByte(); + readStream->readFloatLE(); + readStream->readFloatLE(); } if (gameVersion >= VERSION(1, 4)) { - newType->flags = bigDataFile->readUint16BE(); + newType->flags = readStream->readUint16BE(); } else { newType->flags = 0; } - newType->numCom = bigDataFile->readUint16BE(); + newType->numCom = readStream->readUint16BE(); newType->allCombis = (newType->numCom) ? new combination[newType->numCom] : NULL; for (a = 0; a < newType->numCom; a++) { - newType->allCombis[a].withObj = bigDataFile->readUint16BE(); - newType->allCombis[a].funcNum = bigDataFile->readUint16BE(); + newType->allCombis[a].withObj = readStream->readUint16BE(); + newType->allCombis[a].funcNum = readStream->readUint16BE(); } - finishAccess(); - newType->screenName = getNumberedString(nameNum); + g_sludge->_resMan->finishAccess(); + newType->screenName = g_sludge->_resMan->getNumberedString(nameNum); newType->objectNum = i; newType->next = allObjectTypes; allObjectTypes = newType; |