From 10478617c699ad1e6fa272c5609cc743efd98fab Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sat, 28 Oct 2006 01:28:41 +0000 Subject: SCUMM: Take advantage of the fact that Chunk now is a ReadStream subclass svn-id: r24546 --- engines/scumm/smush/chunk.cpp | 8 ++++---- engines/scumm/smush/chunk.h | 2 +- engines/scumm/smush/imuse_channel.cpp | 18 +++++++----------- engines/scumm/smush/saud_channel.cpp | 6 ++---- engines/scumm/smush/smush_player.cpp | 2 +- 5 files changed, 15 insertions(+), 21 deletions(-) (limited to 'engines') diff --git a/engines/scumm/smush/chunk.cpp b/engines/scumm/smush/chunk.cpp index 72d14c9776..a0b5fb86e4 100644 --- a/engines/scumm/smush/chunk.cpp +++ b/engines/scumm/smush/chunk.cpp @@ -62,15 +62,15 @@ void BaseChunk::seek(int32 delta, int dir) { case SEEK_SET: if (delta < 0) error("invalid seek request"); - _curPos = (uint32)delta; break; case SEEK_END: if (delta > 0 || _size < (uint32)-delta) error("invalid seek request"); - _curPos = (uint32)(_size + delta); break; + default: + break; } if (_curPos > _size) { @@ -116,7 +116,7 @@ FileChunk::~FileChunk() { Chunk *FileChunk::subBlock() { FileChunk *ptr = new FileChunk(_data, _offset + _curPos); - seek(sizeof(Chunk::type) + sizeof(uint32) + ptr->size(), SEEK_CUR); + skip(sizeof(Chunk::type) + sizeof(uint32) + ptr->size()); return ptr; } @@ -146,7 +146,7 @@ MemoryChunk::MemoryChunk(byte *data) { Chunk *MemoryChunk::subBlock() { MemoryChunk *ptr = new MemoryChunk(_data + _curPos); - seek(sizeof(Chunk::type) + sizeof(uint32) + ptr->size(), SEEK_CUR); + skip(sizeof(Chunk::type) + sizeof(uint32) + ptr->size()); return ptr; } diff --git a/engines/scumm/smush/chunk.h b/engines/scumm/smush/chunk.h index 5398693949..fbb0194fff 100644 --- a/engines/scumm/smush/chunk.h +++ b/engines/scumm/smush/chunk.h @@ -55,7 +55,7 @@ public: uint32 size() const; bool eos() const; uint32 pos() const; - void seek(int32 delta, int dir = SEEK_CUR); + void seek(int32 delta, int dir); }; class FileChunk : public BaseChunk { diff --git a/engines/scumm/smush/imuse_channel.cpp b/engines/scumm/smush/imuse_channel.cpp index dc5641f859..44baedc076 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.readUint32LE(); imus_type = SWAP_BYTES_32(imus_type); - uint32 imus_size = b.readUint32LE(); imus_size = SWAP_BYTES_32(imus_size); + Chunk::type imus_type = b.readUint32BE(); + /*uint32 imus_size =*/ b.readUint32BE(); if (imus_type != MKID_BE('iMUS')) error("Invalid Chunk for imuse_channel"); size -= 8; @@ -103,15 +103,11 @@ bool ImuseChannel::appendData(Chunk &b, int32 size) { bool ImuseChannel::handleFormat(Chunk &src) { 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, SEEK_CUR); - _bitsize = src.readUint32LE(); - _bitsize = SWAP_BYTES_32(_bitsize); - _rate = src.readUint32LE(); - _rate = SWAP_BYTES_32(_rate); - _channels = src.readUint32LE(); - _channels = SWAP_BYTES_32(_channels); + /*uint32 imuse_start =*/ src.readUint32BE(); + src.skip(4); + _bitsize = src.readUint32BE(); + _rate = src.readUint32BE(); + _channels = src.readUint32BE(); assert(_channels == 1 || _channels == 2); return true; } diff --git a/engines/scumm/smush/saud_channel.cpp b/engines/scumm/smush/saud_channel.cpp index 09d7034ea8..7a0f146e10 100644 --- a/engines/scumm/smush/saud_channel.cpp +++ b/engines/scumm/smush/saud_channel.cpp @@ -133,10 +133,8 @@ 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.readUint32LE(); - saud_type = SWAP_BYTES_32(saud_type); - uint32 saud_size = b.readUint32LE(); - saud_size = SWAP_BYTES_32(saud_size); + Chunk::type saud_type = b.readUint32BE(); + /*uint32 saud_size =*/ b.readUint32BE(); if (saud_type != MKID_BE('SAUD')) error("Invalid Chunk for SaudChannel : %X", saud_type); size -= 8; diff --git a/engines/scumm/smush/smush_player.cpp b/engines/scumm/smush/smush_player.cpp index 337b068e41..952665ce80 100644 --- a/engines/scumm/smush/smush_player.cpp +++ b/engines/scumm/smush/smush_player.cpp @@ -989,7 +989,7 @@ void SmushPlayer::handleFrame(Chunk &b) { b.reseek(); if (sub->size() & 1) - b.seek(1, SEEK_CUR); + b.skip(1); delete sub; } -- cgit v1.2.3