aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2006-10-28 01:20:19 +0000
committerMax Horn2006-10-28 01:20:19 +0000
commit9698d133a6b4559b7dbc1b1ec5cd8b6198e22466 (patch)
treebd4c646c18c718fae17c40d3ac7d73bf911df72d
parent3652229147389477fe72a530cfeab9130761b35e (diff)
downloadscummvm-rg350-9698d133a6b4559b7dbc1b1ec5cd8b6198e22466.tar.gz
scummvm-rg350-9698d133a6b4559b7dbc1b1ec5cd8b6198e22466.tar.bz2
scummvm-rg350-9698d133a6b4559b7dbc1b1ec5cd8b6198e22466.zip
SCUMM: Changed class Chunk (and subclasses) to inherit from Common::SeekableReadStream
svn-id: r24544
-rw-r--r--engines/scumm/insane/insane.cpp6
-rw-r--r--engines/scumm/insane/insane_iact.cpp44
-rw-r--r--engines/scumm/smush/chunk.cpp123
-rw-r--r--engines/scumm/smush/chunk.h38
-rw-r--r--engines/scumm/smush/imuse_channel.cpp24
-rw-r--r--engines/scumm/smush/saud_channel.cpp8
-rw-r--r--engines/scumm/smush/smush_player.cpp112
7 files changed, 129 insertions, 226 deletions
diff --git a/engines/scumm/insane/insane.cpp b/engines/scumm/insane/insane.cpp
index 4d769c4d84..de5b5f04d3 100644
--- a/engines/scumm/insane/insane.cpp
+++ b/engines/scumm/insane/insane.cpp
@@ -1320,7 +1320,7 @@ void Insane::procSKIP(Chunk &b) {
if ((_vm->_game.features & GF_DEMO) && (_vm->_game.platform == Common::kPlatformPC)) {
_player->checkBlock(b, MKID_BE('SKIP'), 2);
- par1 = b.getWord();
+ par1 = b.readUint16LE();
if (isBitSet(par1))
_player->_skipNext = true;
return;
@@ -1328,8 +1328,8 @@ void Insane::procSKIP(Chunk &b) {
_player->checkBlock(b, MKID_BE('SKIP'), 4);
- par1 = b.getWord();
- par2 = b.getWord();
+ par1 = b.readUint16LE();
+ par2 = b.readUint16LE();
if (!par2) {
diff --git a/engines/scumm/insane/insane_iact.cpp b/engines/scumm/insane/insane_iact.cpp
index e4275377f0..e43fb0d352 100644
--- a/engines/scumm/insane/insane_iact.cpp
+++ b/engines/scumm/insane/insane_iact.cpp
@@ -74,7 +74,7 @@ void Insane::iactScene1(byte *renderBitmap, int32 codecparam, int32 setupsan12,
if (par3 != 1)
break;
- par5 = b.getWord(); // si
+ par5 = b.readUint16LE(); // si
if (_actor[0].field_8 == 112) {
setBit(par5);
break;
@@ -92,27 +92,27 @@ void Insane::iactScene1(byte *renderBitmap, int32 codecparam, int32 setupsan12,
break;
case 3:
if (par3 == 1) {
- setBit(b.getWord());
+ setBit(b.readUint16LE());
_approachAnim = -1;
}
break;
case 4:
if (par3 == 1 && (_approachAnim < 0 || _approachAnim > 4))
- setBit(b.getWord());
+ setBit(b.readUint16LE());
break;
case 5:
if (par2 != 13)
break;
- tmp = b.getWord(); // +8
- tmp = b.getWord(); // +10
- par7 = b.getWord(); // +12 dx
- tmp = b.getWord(); // +14
- par9 = b.getWord(); // +16 bx
- tmp = b.getWord(); // +18
- par11 = b.getWord(); // +20 cx
- tmp = b.getWord(); // +22
- par13 = b.getWord(); // +24 ax
+ tmp = b.readUint16LE(); // +8
+ tmp = b.readUint16LE(); // +10
+ par7 = b.readUint16LE(); // +12 dx
+ tmp = b.readUint16LE(); // +14
+ par9 = b.readUint16LE(); // +16 bx
+ tmp = b.readUint16LE(); // +18
+ par11 = b.readUint16LE(); // +20 cx
+ tmp = b.readUint16LE(); // +22
+ par13 = b.readUint16LE(); // +24 ax
if (par13 > _actor[0].x || par11 < _actor[0].x) {
_tiresRustle = true;
@@ -143,8 +143,8 @@ void Insane::iactScene1(byte *renderBitmap, int32 codecparam, int32 setupsan12,
_continueFrame1, 1300);
break;
case 9:
- par5 = b.getWord(); // si
- par6 = b.getWord(); // bx
+ par5 = b.readUint16LE(); // si
+ par6 = b.readUint16LE(); // bx
smlayer_setFluPalette(_smush_roadrsh3Rip, 0);
if (par5 == par6 - 1)
smlayer_setFluPalette(_smush_roadrashRip, 0);
@@ -153,10 +153,10 @@ void Insane::iactScene1(byte *renderBitmap, int32 codecparam, int32 setupsan12,
case 7:
switch (par4) {
case 1:
- _actor[0].x -= (b.getWord() - 160) / 10;
+ _actor[0].x -= (b.readUint16LE() - 160) / 10;
break;
case 2:
- par5 = b.getWord();
+ par5 = b.readUint16LE();
if (par5 - 8 > _actor[0].x || par5 + 8 < _actor[0].x) {
if (smlayer_isSoundRunning(86))
@@ -297,8 +297,8 @@ void Insane::iactScene3(byte *renderBitmap, int32 codecparam, int32 setupsan12,
int par2, par3;
if (command == 6) {
if (par1 == 9) {
- par2 = b.getWord(); // ptr + 8
- par3 = b.getWord(); // ptr + 10
+ par2 = b.readUint16LE(); // ptr + 8
+ par3 = b.readUint16LE(); // ptr + 10
if (!par2)
smlayer_setFluPalette(_smush_roadrsh3Rip, 0);
@@ -322,7 +322,7 @@ void Insane::iactScene4(byte *renderBitmap, int32 codecparam, int32 setupsan12,
switch (par1) {
case 2:
case 4:
- par5 = b.getWord(); // si
+ par5 = b.readUint16LE(); // si
switch (par3) {
case 1:
if (par4 == 1) {
@@ -397,7 +397,7 @@ void Insane::iactScene6(byte *renderBitmap, int32 codecparam, int32 setupsan12,
switch (par1) {
case 7:
- par5 = b.getWord();
+ par5 = b.readUint16LE();
if (par4 != 3)
break;
@@ -408,7 +408,7 @@ void Insane::iactScene6(byte *renderBitmap, int32 codecparam, int32 setupsan12,
break;
case 2:
case 4:
- par5 = b.getWord();
+ par5 = b.readUint16LE();
switch (par3) {
case 1:
if (par4 == 1) {
@@ -483,7 +483,7 @@ void Insane::iactScene17(byte *renderBitmap, int32 codecparam, int32 setupsan12,
case 3:
case 4:
if (par3 == 1) {
- setBit(b.getWord());
+ setBit(b.readUint16LE());
_approachAnim = -1;
}
break;
diff --git a/engines/scumm/smush/chunk.cpp b/engines/scumm/smush/chunk.cpp
index 7c7c27ac72..e70018b6f7 100644
--- a/engines/scumm/smush/chunk.cpp
+++ b/engines/scumm/smush/chunk.cpp
@@ -38,11 +38,11 @@ BaseChunk::BaseChunk() :
_name("") {
}
-bool BaseChunk::eof() const {
+bool BaseChunk::eos() const {
return _curPos >= _size;
}
-uint32 BaseChunk::tell() const {
+uint32 BaseChunk::pos() const {
return _curPos;
}
@@ -50,22 +50,22 @@ Chunk::type BaseChunk::getType() const {
return _type;
}
-uint32 BaseChunk::getSize() const {
+uint32 BaseChunk::size() const {
return _size;
}
-bool BaseChunk::seek(int32 delta, seek_type dir) {
+void BaseChunk::seek(int32 delta, int dir) {
switch (dir) {
- case seek_cur:
+ case SEEK_CUR:
_curPos += delta;
break;
- case seek_start:
+ case SEEK_SET:
if (delta < 0)
error("invalid seek request");
_curPos = (uint32)delta;
break;
- case seek_end:
+ case SEEK_END:
if (delta > 0 || _size < (uint32)-delta)
error("invalid seek request");
@@ -82,14 +82,13 @@ bool BaseChunk::seek(int32 delta, seek_type dir) {
warning("Looks like you compressed file %s in wrong way. It has FLU index which was not updated", _name.c_str());
error("invalid seek request : %d > %d (delta == %d)", _curPos, _size, delta);
}
- return true;
}
FileChunk::FileChunk(BaseScummFile *data, int offset) {
_data = data;
_deleteData = false;
- _data->seek(offset, seek_start);
+ _data->seek(offset, SEEK_SET);
_type = _data->readUint32BE();
_size = _data->readUint32BE();
_offset = _data->pos();
@@ -102,7 +101,7 @@ FileChunk::FileChunk(const Common::String &name, int offset) {
if (!g_scumm->openFile(*_data, name))
error("FileChunk: Unable to open file %s", name.c_str());
- _data->seek(offset, seek_start);
+ _data->seek(offset, SEEK_SET);
_type = _data->readUint32BE();
_size = _data->readUint32BE();
_offset = _data->pos();
@@ -117,56 +116,22 @@ FileChunk::~FileChunk() {
Chunk *FileChunk::subBlock() {
FileChunk *ptr = new FileChunk(_data, _offset + _curPos);
- seek(sizeof(Chunk::type) + sizeof(uint32) + ptr->getSize());
+ seek(sizeof(Chunk::type) + sizeof(uint32) + ptr->size(), SEEK_CUR);
return ptr;
}
void FileChunk::reseek() {
- _data->seek(_offset + _curPos);
+ _data->seek(_offset + _curPos, SEEK_CUR);
}
-bool FileChunk::read(void *buffer, uint32 size) {
- if (size <= 0 || (_curPos + size) > _size)
+uint32 FileChunk::read(void *buffer, uint32 dataSize) {
+ if (dataSize <= 0 || (_curPos + dataSize) > _size)
error("invalid buffer read request");
- _data->read(buffer, size);
- _curPos += size;
- return true;
-}
-
-int8 FileChunk::getChar() {
- return (int8)getByte();
-}
-
-byte FileChunk::getByte() {
- _curPos++;
-
- if (_curPos > _size)
- error("invalid byte read request");
-
- return _data->readByte();
-}
-
-int16 FileChunk::getShort() {
- return (int16)getWord();
-}
-
-uint16 FileChunk::getWord() {
- _curPos += 2;
-
- if (_curPos > _size)
- error("invalid word read request");
-
- return _data->readUint16LE();
-}
-
-uint32 FileChunk::getDword() {
- _curPos += 4;
-
- if (_curPos > _size)
- error("invalid dword read request");
-
- return _data->readUint32LE();
+ dataSize = _data->read(buffer, dataSize);
+ _curPos += dataSize;
+
+ return dataSize;
}
MemoryChunk::MemoryChunk(byte *data) {
@@ -181,62 +146,20 @@ MemoryChunk::MemoryChunk(byte *data) {
Chunk *MemoryChunk::subBlock() {
MemoryChunk *ptr = new MemoryChunk(_data + _curPos);
- seek(sizeof(Chunk::type) + sizeof(uint32) + ptr->getSize());
+ seek(sizeof(Chunk::type) + sizeof(uint32) + ptr->size(), SEEK_CUR);
return ptr;
}
void MemoryChunk::reseek() {
}
-bool MemoryChunk::read(void *buffer, uint32 size) {
- if (size <= 0 || (_curPos + size) > _size)
+uint32 MemoryChunk::read(void *buffer, uint32 dataSize) {
+ if (dataSize <= 0 || (_curPos + dataSize) > _size)
error("invalid buffer read request");
- memcpy(buffer, _data + _curPos, size);
- _curPos += size;
- return true;
-}
-
-int8 MemoryChunk::getChar() {
- if (_curPos >= _size)
- error("invalid char read request");
-
- return _data[_curPos++];
-}
-
-byte MemoryChunk::getByte() {
- if (_curPos >= _size)
- error("invalid byte read request");
-
- byte *ptr = (byte *)(_data + _curPos);
- _curPos += 1;
- return *ptr;
-}
-
-int16 MemoryChunk::getShort() {
- if (_curPos >= _size - 1)
- error("invalid int16 read request");
-
- int16 buffer = getWord();
- return *((int16 *)&buffer);
-}
-
-uint16 MemoryChunk::getWord() {
- if (_curPos >= _size - 1)
- error("invalid word read request");
-
- uint16 *ptr = (uint16 *)(_data + _curPos);
- _curPos += 2;
- return READ_LE_UINT16(ptr);
-}
-
-uint32 MemoryChunk::getDword() {
- if (_curPos >= _size - 3)
- error("invalid dword read request");
-
- uint32 *ptr = (uint32 *)(_data + _curPos);
- _curPos += 4;
- return READ_LE_UINT32(ptr);
+ memcpy(buffer, _data + _curPos, dataSize);
+ _curPos += dataSize;
+ return dataSize;
}
} // End of namespace Scumm
diff --git a/engines/scumm/smush/chunk.h b/engines/scumm/smush/chunk.h
index 22ca675413..5398693949 100644
--- a/engines/scumm/smush/chunk.h
+++ b/engines/scumm/smush/chunk.h
@@ -25,29 +25,19 @@
#include "common/scummsys.h"
#include "common/str.h"
+#include "common/stream.h"
namespace Scumm {
class BaseScummFile;
-class Chunk {
+class Chunk : public Common::SeekableReadStream {
public:
- virtual ~Chunk() {};
- enum seek_type { seek_start, seek_end, seek_cur };
typedef uint32 type;
+
virtual type getType() const = 0;
- virtual uint32 getSize() const = 0;
virtual Chunk *subBlock() = 0;
virtual void reseek() = 0;
- virtual bool eof() const = 0;
- virtual uint32 tell() const = 0;
- virtual bool seek(int32 delta, seek_type dir = seek_cur) = 0;
- virtual bool read(void *buffer, uint32 size) = 0;
- virtual int8 getChar() = 0;
- virtual byte getByte() = 0;
- virtual int16 getShort() = 0;
- virtual uint16 getWord() = 0;
- virtual uint32 getDword() = 0;
};
// Common functionality for concrete chunks (FileChunk, MemoryChunk)
@@ -62,10 +52,10 @@ protected:
public:
Chunk::type getType() const;
- uint32 getSize() const;
- bool eof() const;
- uint32 tell() const;
- bool seek(int32 delta, seek_type dir = seek_cur);
+ uint32 size() const;
+ bool eos() const;
+ uint32 pos() const;
+ void seek(int32 delta, int dir = SEEK_CUR);
};
class FileChunk : public BaseChunk {
@@ -80,12 +70,7 @@ public:
virtual ~FileChunk();
Chunk *subBlock();
void reseek();
- bool read(void *buffer, uint32 size);
- int8 getChar();
- byte getByte();
- short getShort();
- uint16 getWord();
- uint32 getDword();
+ uint32 read(void *buffer, uint32 size);
};
class MemoryChunk : public BaseChunk {
@@ -96,12 +81,7 @@ public:
MemoryChunk(byte *data);
Chunk *subBlock();
void reseek();
- bool read(void *buffer, uint32 size);
- int8 getChar();
- byte getByte();
- int16 getShort();
- uint16 getWord();
- uint32 getDword();
+ uint32 read(void *buffer, uint32 size);
};
} // End of namespace Scumm
diff --git a/engines/scumm/smush/imuse_channel.cpp b/engines/scumm/smush/imuse_channel.cpp
index e197fe2ccd..dc5641f859 100644
--- a/engines/scumm/smush/imuse_channel.cpp
+++ b/engines/scumm/smush/imuse_channel.cpp
@@ -60,8 +60,8 @@ bool ImuseChannel::checkParameters(int32 index, int32 nbframes, int32 size, int3
bool ImuseChannel::appendData(Chunk &b, int32 size) {
if (_dataSize == -1) {
assert(size > 8);
- Chunk::type imus_type = b.getDword(); imus_type = SWAP_BYTES_32(imus_type);
- uint32 imus_size = b.getDword(); imus_size = SWAP_BYTES_32(imus_size);
+ Chunk::type imus_type = b.readUint32LE(); imus_type = SWAP_BYTES_32(imus_type);
+ uint32 imus_size = b.readUint32LE(); imus_size = SWAP_BYTES_32(imus_size);
if (imus_type != MKID_BE('iMUS'))
error("Invalid Chunk for imuse_channel");
size -= 8;
@@ -102,34 +102,34 @@ bool ImuseChannel::appendData(Chunk &b, int32 size) {
}
bool ImuseChannel::handleFormat(Chunk &src) {
- if (src.getSize() != 20) error("invalid size for FRMT Chunk");
- uint32 imuse_start = src.getDword();
+ if (src.size() != 20) error("invalid size for FRMT Chunk");
+ uint32 imuse_start = src.readUint32LE();
imuse_start = SWAP_BYTES_32(imuse_start);
- src.seek(4);
- _bitsize = src.getDword();
+ src.seek(4, SEEK_CUR);
+ _bitsize = src.readUint32LE();
_bitsize = SWAP_BYTES_32(_bitsize);
- _rate = src.getDword();
+ _rate = src.readUint32LE();
_rate = SWAP_BYTES_32(_rate);
- _channels = src.getDword();
+ _channels = src.readUint32LE();
_channels = SWAP_BYTES_32(_channels);
assert(_channels == 1 || _channels == 2);
return true;
}
bool ImuseChannel::handleRegion(Chunk &src) {
- if (src.getSize() != 8)
+ if (src.size() != 8)
error("invalid size for REGN Chunk");
return true;
}
bool ImuseChannel::handleStop(Chunk &src) {
- if (src.getSize() != 4)
+ if (src.size() != 4)
error("invalid size for STOP Chunk");
return true;
}
bool ImuseChannel::handleMap(Chunk &map) {
- while (!map.eof()) {
+ while (!map.eos()) {
Chunk *sub = map.subBlock();
switch (sub->getType()) {
case MKID_BE('FRMT'):
@@ -144,7 +144,7 @@ bool ImuseChannel::handleMap(Chunk &map) {
handleStop(*sub);
break;
default:
- error("Unknown iMUS subChunk found : %s, %d", tag2str(sub->getType()), sub->getSize());
+ error("Unknown iMUS subChunk found : %s, %d", tag2str(sub->getType()), sub->size());
}
delete sub;
}
diff --git a/engines/scumm/smush/saud_channel.cpp b/engines/scumm/smush/saud_channel.cpp
index 2c8893d57f..09d7034ea8 100644
--- a/engines/scumm/smush/saud_channel.cpp
+++ b/engines/scumm/smush/saud_channel.cpp
@@ -41,7 +41,7 @@ bool SaudChannel::isTerminated() const {
}
void SaudChannel::handleStrk(Chunk &b) {
- int32 size = b.getSize();
+ int32 size = b.size();
if (size != 14 && size != 10) {
error("STRK has an invalid size : %d", size);
}
@@ -52,7 +52,7 @@ void SaudChannel::handleSmrk(Chunk &b) {
}
void SaudChannel::handleShdr(Chunk &b) {
- int32 size = b.getSize();
+ int32 size = b.size();
if (size != 4)
error("SHDR has an invalid size : %d", size);
}
@@ -133,9 +133,9 @@ bool SaudChannel::checkParameters(int32 index, int32 nb, int32 flags, int32 volu
bool SaudChannel::appendData(Chunk &b, int32 size) {
if (_dataSize == -1) {
assert(size > 8);
- Chunk::type saud_type = b.getDword();
+ Chunk::type saud_type = b.readUint32LE();
saud_type = SWAP_BYTES_32(saud_type);
- uint32 saud_size = b.getDword();
+ uint32 saud_size = b.readUint32LE();
saud_size = SWAP_BYTES_32(saud_size);
if (saud_type != MKID_BE('SAUD'))
error("Invalid Chunk for SaudChannel : %X", saud_type);
diff --git a/engines/scumm/smush/smush_player.cpp b/engines/scumm/smush/smush_player.cpp
index 6e51aba652..337b068e41 100644
--- a/engines/scumm/smush/smush_player.cpp
+++ b/engines/scumm/smush/smush_player.cpp
@@ -360,8 +360,8 @@ void SmushPlayer::checkBlock(const Chunk &b, Chunk::type type_expected, uint32 m
if (type_expected != b.getType()) {
error("Chunk type is different from expected : %x != %x", b.getType(), type_expected);
}
- if (min_size > b.getSize()) {
- error("Chunk size is inferior than minimum required size : %d < %d", b.getSize(), min_size);
+ if (min_size > b.size()) {
+ error("Chunk size is inferior than minimum required size : %d < %d", b.size(), min_size);
}
}
@@ -392,16 +392,16 @@ void SmushPlayer::handleSoundFrame(Chunk &b) {
checkBlock(b, MKID_BE('PSAD'));
debugC(DEBUG_SMUSH, "SmushPlayer::handleSoundFrame()");
- int32 track_id = b.getWord();
- int32 index = b.getWord();
- int32 max_frames = b.getWord();
- int32 flags = b.getWord();
- int32 vol = b.getByte();
- int32 pan = b.getChar();
+ int32 track_id = b.readUint16LE();
+ int32 index = b.readUint16LE();
+ int32 max_frames = b.readUint16LE();
+ int32 flags = b.readUint16LE();
+ int32 vol = b.readByte();
+ int32 pan = b.readSByte();
if (index == 0) {
debugC(DEBUG_SMUSH, "track_id:%d, max_frames:%d, flags:%d, vol:%d, pan:%d", track_id, max_frames, flags, vol, pan);
}
- int32 size = b.getSize() - 10;
+ int32 size = b.size() - 10;
handleSoundBuffer(track_id, index, max_frames, flags, vol, pan, b, size);
}
@@ -424,10 +424,10 @@ void SmushPlayer::handleIACT(Chunk &b) {
checkBlock(b, MKID_BE('IACT'), 8);
debugC(DEBUG_SMUSH, "SmushPlayer::IACT()");
- int code = b.getWord();
- int flags = b.getWord();
- int unknown = b.getShort();
- int track_flags = b.getWord();
+ int code = b.readUint16LE();
+ int flags = b.readUint16LE();
+ int unknown = b.readSint16LE();
+ int track_flags = b.readUint16LE();
if ((code != 8) && (flags != 46)) {
_vm->_insane->procIACT(_dst, 0, 0, 0, b, 0, 0, code, flags, unknown, track_flags);
@@ -439,11 +439,11 @@ void SmushPlayer::handleIACT(Chunk &b) {
}
assert(flags == 46 && unknown == 0);
- int track_id = b.getWord();
- int index = b.getWord();
- int nbframes = b.getWord();
- int32 size = b.getDword();
- int32 bsize = b.getSize() - 18;
+ int track_id = b.readUint16LE();
+ int index = b.readUint16LE();
+ int nbframes = b.readUint16LE();
+ int32 size = b.readUint32LE();
+ int32 bsize = b.size() - 18;
if (_vm->_game.id != GID_CMI) {
int32 track = track_id;
@@ -546,23 +546,23 @@ void SmushPlayer::handleIACT(Chunk &b) {
}
void SmushPlayer::handleTextResource(Chunk &b) {
- int pos_x = b.getShort();
- int pos_y = b.getShort();
- int flags = b.getShort();
- int left = b.getShort();
- int top = b.getShort();
- int right = b.getShort();
- /*int32 height =*/ b.getShort();
- /*int32 unk2 =*/ b.getWord();
+ int pos_x = b.readSint16LE();
+ int pos_y = b.readSint16LE();
+ int flags = b.readSint16LE();
+ int left = b.readSint16LE();
+ int top = b.readSint16LE();
+ int right = b.readSint16LE();
+ /*int32 height =*/ b.readSint16LE();
+ /*int32 unk2 =*/ b.readUint16LE();
const char *str;
char *string = NULL, *string2 = NULL;
if (b.getType() == MKID_BE('TEXT')) {
- string = (char *)malloc(b.getSize() - 16);
+ string = (char *)malloc(b.size() - 16);
str = string;
- b.read(string, b.getSize() - 16);
+ b.read(string, b.size() - 16);
} else {
- int string_id = b.getWord();
+ int string_id = b.readUint16LE();
if (!_strings)
return;
str = _strings->get(string_id);
@@ -745,21 +745,21 @@ void SmushPlayer::handleDeltaPalette(Chunk &b) {
checkBlock(b, MKID_BE('XPAL'));
debugC(DEBUG_SMUSH, "SmushPlayer::handleDeltaPalette()");
- if (b.getSize() == 0x300 * 3 + 4) {
+ if (b.size() == 0x300 * 3 + 4) {
- b.getWord();
- b.getWord();
+ b.readUint16LE();
+ b.readUint16LE();
for (int i = 0; i < 0x300; i++) {
- _deltaPal[i] = b.getWord();
+ _deltaPal[i] = b.readUint16LE();
}
readPalette(_pal, b);
setDirtyColors(0, 255);
- } else if (b.getSize() == 6) {
+ } else if (b.size() == 6) {
- b.getWord();
- b.getWord();
- b.getWord();
+ b.readUint16LE();
+ b.readUint16LE();
+ b.readUint16LE();
for (int i = 0; i < 0x300; i++) {
_pal[i] = delta_color(_pal[i], _deltaPal[i]);
@@ -790,7 +790,7 @@ void SmushPlayer::handleZlibFrameObject(Chunk &b) {
return;
}
- int32 chunkSize = b.getSize();
+ int32 chunkSize = b.size();
byte *chunkBuffer = (byte *)malloc(chunkSize);
assert(chunkBuffer);
b.read(chunkBuffer, chunkSize);
@@ -869,11 +869,11 @@ void SmushPlayer::handleFrameObject(Chunk &b) {
return;
}
- int codec = b.getWord();
- int left = b.getWord();
- int top = b.getWord();
- int width = b.getWord();
- int height = b.getWord();
+ int codec = b.readUint16LE();
+ int left = b.readUint16LE();
+ int top = b.readUint16LE();
+ int width = b.readUint16LE();
+ int height = b.readUint16LE();
if ((height == 242) && (width == 384)) {
if (_specialBuffer == 0)
@@ -901,10 +901,10 @@ void SmushPlayer::handleFrameObject(Chunk &b) {
_height = _vm->_screenHeight;
}
- b.getWord();
- b.getWord();
+ b.readUint16LE();
+ b.readUint16LE();
- int32 chunk_size = b.getSize() - 14;
+ int32 chunk_size = b.size() - 14;
byte *chunk_buffer = (byte *)malloc(chunk_size);
assert(chunk_buffer);
b.read(chunk_buffer, chunk_size);
@@ -944,7 +944,7 @@ void SmushPlayer::handleFrame(Chunk &b) {
_vm->_insane->procPreRendering();
}
- while (!b.eof()) {
+ while (!b.eos()) {
Chunk *sub = b.subBlock();
switch (sub->getType()) {
case MKID_BE('NPAL'):
@@ -984,12 +984,12 @@ void SmushPlayer::handleFrame(Chunk &b) {
handleTextResource(*sub);
break;
default:
- error("Unknown frame subChunk found : %s, %d", tag2str(sub->getType()), sub->getSize());
+ error("Unknown frame subChunk found : %s, %d", tag2str(sub->getType()), sub->size());
}
b.reseek();
- if (sub->getSize() & 1)
- b.seek(1);
+ if (sub->size() & 1)
+ b.seek(1, SEEK_CUR);
delete sub;
}
@@ -1017,9 +1017,9 @@ void SmushPlayer::handleAnimHeader(Chunk &b) {
checkBlock(b, MKID_BE('AHDR'), 0x300 + 6);
debugC(DEBUG_SMUSH, "SmushPlayer::handleAnimHeader()");
- _version = b.getWord();
- _nbframes = b.getWord();
- b.getWord();
+ _version = b.readUint16LE();
+ _nbframes = b.readUint16LE();
+ b.readUint16LE();
if (_skipPalette)
return;
@@ -1106,14 +1106,14 @@ void SmushPlayer::parseNextFrame() {
_skipPalette = true;
}
- _base->seek(_seekPos, FileChunk::seek_start);
+ _base->seek(_seekPos, SEEK_SET);
_frame = _seekFrame;
_seekPos = -1;
}
assert(_base);
- if (_base->eof()) {
+ if (_base->eos()) {
_vm->_smushVideoShouldFinish = true;
_endOfFile = true;
return;
@@ -1129,7 +1129,7 @@ void SmushPlayer::parseNextFrame() {
handleFrame(*sub);
break;
default:
- error("Unknown Chunk found at %x: %x, %d", _base->tell(), sub->getType(), sub->getSize());
+ error("Unknown Chunk found at %x: %x, %d", _base->pos(), sub->getType(), sub->size());
}
delete sub;