diff options
author | Paweł Kołodziejski | 2003-04-28 18:19:48 +0000 |
---|---|---|
committer | Paweł Kołodziejski | 2003-04-28 18:19:48 +0000 |
commit | 850ee739afcb2a15d016d78b782fd073bf5b75ca (patch) | |
tree | 589e73fcdd9b07673caee88c0892b8fb840a9ce5 | |
parent | 12c44ba73d8a3317c47aed7ae172fca6766feab8 (diff) | |
download | scummvm-rg350-850ee739afcb2a15d016d78b782fd073bf5b75ca.tar.gz scummvm-rg350-850ee739afcb2a15d016d78b782fd073bf5b75ca.tar.bz2 scummvm-rg350-850ee739afcb2a15d016d78b782fd073bf5b75ca.zip |
fixed two offsets for V2 and two warnings
svn-id: r7185
-rw-r--r-- | scumm/object.cpp | 12 | ||||
-rw-r--r-- | scumm/scummvm.cpp | 2 | ||||
-rw-r--r-- | sky/intro.cpp | 8 |
3 files changed, 16 insertions, 6 deletions
diff --git a/scumm/object.cpp b/scumm/object.cpp index f6e43d514e..e1aa5f0976 100644 --- a/scumm/object.cpp +++ b/scumm/object.cpp @@ -538,7 +538,11 @@ void Scumm::loadRoomObjectsOldBundle() { if (_numObjectsInRoom > _numLocalObjects) error("More than %d objects in room %d", _numLocalObjects, _roomResource); - ptr = room + 29; + if (_features & GF_AFTER_V2) + ptr = room + 28; + else + ptr = room + 29; + for (i = 0; i < _numObjectsInRoom; i++) { od = &_objs[findLocalObjectSlot()]; @@ -980,7 +984,11 @@ void Scumm::findObjectInRoom(FindObjectInRoom *fo, byte findWhat, uint id, uint error("findObjectInRoom: More (%d) than %d objects in room %d", numobj, _numLocalObjects, room); if (_features & GF_OLD_BUNDLE) { - searchptr = roomptr + 29; + if (_features & GF_AFTER_V2) + searchptr = roomptr + 28; + else + searchptr = roomptr + 29; + for (i = 0; i < numobj; i++) { obimptr = roomptr + READ_LE_UINT16(searchptr); obcdptr = roomptr + READ_LE_UINT16(searchptr + 2 * _numObjectsInRoom); diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp index e14ab5c4dd..447f88642c 100644 --- a/scumm/scummvm.cpp +++ b/scumm/scummvm.cpp @@ -1096,7 +1096,7 @@ void Scumm::initRoomSubBlocks() { // HACK: to determine the sizes of the local scripts, we assume that // a) their order in the data file is the same as in the index // b) the last script at the same time is the last item in the room "header" - int len = - _localScriptList[id - _numGlobalScripts] + _resourceHeaderSize; + int len = - (int)_localScriptList[id - _numGlobalScripts] + _resourceHeaderSize; if (*ptr) len += READ_LE_UINT16(ptr + 1); else diff --git a/sky/intro.cpp b/sky/intro.cpp index 5350868a7a..4b755d8eb6 100644 --- a/sky/intro.cpp +++ b/sky/intro.cpp @@ -478,7 +478,9 @@ void SkyState::showIntroText(uint32 *&cmdPtr) { //save current screen contents byte *savePtr = (byte *)_workScreen + startPos; - for (unsigned int i = 0; i < height; i++) { + uint i, j; + + for (i = 0; i < height; i++) { memcpy(saveBuf, savePtr, width); saveBuf += width; savePtr += GAME_SCREEN_WIDTH; @@ -489,11 +491,11 @@ void SkyState::showIntroText(uint32 *&cmdPtr) { byte *textBuf = _introTextSpace + sizeof(struct dataFileHeader); byte *curPos = (byte *)_workScreen + startPos; - for (unsigned int i = 0; i < height; i++) { + for (i = 0; i < height; i++) { byte *prevPos = curPos; - for (unsigned int j = 0; j < width; j++) { + for (j = 0; j < width; j++) { uint8 pixel = *textBuf++; if (pixel) |