aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Kołodziejski2003-04-28 18:19:48 +0000
committerPaweł Kołodziejski2003-04-28 18:19:48 +0000
commit850ee739afcb2a15d016d78b782fd073bf5b75ca (patch)
tree589e73fcdd9b07673caee88c0892b8fb840a9ce5
parent12c44ba73d8a3317c47aed7ae172fca6766feab8 (diff)
downloadscummvm-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.cpp12
-rw-r--r--scumm/scummvm.cpp2
-rw-r--r--sky/intro.cpp8
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)