Added Script::getTextsOffset()

svn-id: r41792
This commit is contained in:
Sven Hesse 2009-06-23 01:20:21 +00:00
parent ec5b2d6c9a
commit 8e63d7989f
4 changed files with 17 additions and 16 deletions

View file

@ -121,15 +121,12 @@ void Game_v1::playTot(int16 skipPlay) {
debugC(4, kDebugFileIO, "IMA: %s", _curImaFile);
debugC(4, kDebugFileIO, "EXT: %s", _curExtFile);
byte *filePtr = _script->getData() + 0x30;
_totTextData = 0;
if (READ_LE_UINT32(filePtr) != (uint32) -1) {
if (_script->getTextsOffset() != ((uint32) -1)) {
_totTextData = new TotTextTable;
_totTextData->dataPtr =
(_script->getData() + READ_LE_UINT32(_script->getData() + 0x30));
_totTextData->dataPtr = _script->getData() + _script->getTextsOffset();
Common::MemoryReadStream totTextData(_totTextData->dataPtr,
4294967295U);
_script->getSize() - _script->getTextsOffset());
_totTextData->itemsCount = totTextData.readSint16LE();
@ -140,7 +137,7 @@ void Game_v1::playTot(int16 skipPlay) {
}
}
filePtr = _script->getData() + 0x34;
byte *filePtr = _script->getData() + 0x34;
_totResourceTable = 0;
if (READ_LE_UINT32(filePtr) != (uint32) -1) {
_totResourceTable = new TotResTable;

View file

@ -128,29 +128,25 @@ void Game_v2::playTot(int16 skipPlay) {
debugC(4, kDebugFileIO, "IMA: %s", _curImaFile);
debugC(4, kDebugFileIO, "EXT: %s", _curExtFile);
filePtr = _script->getData() + 0x30;
_totTextData = 0;
totTextLoc = false;
if (READ_LE_UINT32(filePtr) != (uint32) -1) {
if (_script->getTextsOffset() != ((uint32) -1)) {
_totTextData = new TotTextTable;
int32 size;
if (READ_LE_UINT32(filePtr) == 0) {
if (_script->getTextsOffset() == 0) {
_totTextData->dataPtr = loadLocTexts(&size);
totTextLoc = true;
} else {
_totTextData->dataPtr =
(_script->getData() + READ_LE_UINT32(_script->getData() + 0x30));
size = _script->getSize();
_totTextData->dataPtr = _script->getData() + _script->getTextsOffset();
size = _script->getSize() - _script->getTextsOffset();
_vm->_global->_language = _vm->_global->_languageWanted;
}
_totTextData->items = 0;
if (_totTextData->dataPtr != 0) {
Common::MemoryReadStream totTextData(_totTextData->dataPtr,
4294967295U);
Common::MemoryReadStream totTextData(_totTextData->dataPtr, size);
_totTextData->itemsCount = totTextData.readSint16LE() & 0x3FFF;
_totTextData->items = new TotTextItem[_totTextData->itemsCount];

View file

@ -413,6 +413,8 @@ bool Script::getTOTProperties() {
_variablesCount = READ_LE_UINT32(_totData + 44);
_textsOffset = READ_LE_UINT32(_totData + 48);
_imFileNumber = _totData[59];
_exFileNumber = _totData[60];
_communHandling = _totData[61];
@ -505,6 +507,10 @@ uint32 Script::getVariablesCount() const {
return _variablesCount;
}
uint32 Script::getTextsOffset() const {
return _textsOffset;
}
uint8 Script::getImFileNumber() const {
return _imFileNumber;
}

View file

@ -120,6 +120,7 @@ public:
uint8 getVersionMajor() const;
uint8 getVersionMinor() const;
uint32 getVariablesCount() const;
uint32 getTextsOffset() const;
uint8 getImFileNumber() const;
uint8 getExFileNumber() const;
uint8 getCommunHandling() const;
@ -147,6 +148,7 @@ private:
uint8 _versionMajor;
uint8 _versionMinor;
uint32 _variablesCount;
uint32 _textsOffset;
uint8 _imFileNumber;
uint8 _exFileNumber;
uint8 _communHandling;