[Scummvm-cvs-logs] SF.net SVN: scummvm:[34517] scummvm/trunk/engines/scumm/smush
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Sat Sep 13 22:22:53 CEST 2008
Revision: 34517
http://scummvm.svn.sourceforge.net/scummvm/?rev=34517&view=rev
Author: fingolfin
Date: 2008-09-13 20:22:52 +0000 (Sat, 13 Sep 2008)
Log Message:
-----------
SCUMM: Merged class Chunk & FileChunk
Modified Paths:
--------------
scummvm/trunk/engines/scumm/smush/chunk.cpp
scummvm/trunk/engines/scumm/smush/chunk.h
scummvm/trunk/engines/scumm/smush/smush_player.cpp
scummvm/trunk/engines/scumm/smush/smush_player.h
Modified: scummvm/trunk/engines/scumm/smush/chunk.cpp
===================================================================
--- scummvm/trunk/engines/scumm/smush/chunk.cpp 2008-09-13 20:04:19 UTC (rev 34516)
+++ scummvm/trunk/engines/scumm/smush/chunk.cpp 2008-09-13 20:22:52 UTC (rev 34517)
@@ -66,7 +66,8 @@
return true;
}
-FileChunk::FileChunk(BaseScummFile *data, int offset) {
+Chunk::Chunk(BaseScummFile *data, int offset)
+ : _type(0), _size(0), _curPos(0) {
_data = data;
_deleteData = false;
@@ -77,11 +78,12 @@
_curPos = 0;
}
-FileChunk::FileChunk(const Common::String &name, int offset) {
+Chunk::Chunk(const Common::String &name, int offset)
+ : _type(0), _size(0), _curPos(0) {
_data = new ScummFile();
_deleteData = true;
if (!g_scumm->openFile(*_data, name))
- error("FileChunk: Unable to open file %s", name.c_str());
+ error("Chunk: Unable to open file %s", name.c_str());
_data->seek(offset, SEEK_SET);
_type = _data->readUint32BE();
@@ -91,22 +93,22 @@
_name = name;
}
-FileChunk::~FileChunk() {
+Chunk::~Chunk() {
if (_deleteData)
delete _data;
}
-Chunk *FileChunk::subBlock() {
- FileChunk *ptr = new FileChunk(_data, _offset + _curPos);
+Chunk *Chunk::subBlock() {
+ Chunk *ptr = new Chunk(_data, _offset + _curPos);
skip(sizeof(Chunk::type) + sizeof(uint32) + ptr->size());
return ptr;
}
-void FileChunk::reseek() {
+void Chunk::reseek() {
_data->seek(_offset + _curPos, SEEK_SET);
}
-uint32 FileChunk::read(void *buffer, uint32 dataSize) {
+uint32 Chunk::read(void *buffer, uint32 dataSize) {
if (dataSize <= 0 || (_curPos + dataSize) > _size)
error("invalid buffer read request");
Modified: scummvm/trunk/engines/scumm/smush/chunk.h
===================================================================
--- scummvm/trunk/engines/scumm/smush/chunk.h 2008-09-13 20:04:19 UTC (rev 34516)
+++ scummvm/trunk/engines/scumm/smush/chunk.h 2008-09-13 20:22:52 UTC (rev 34517)
@@ -34,7 +34,6 @@
class BaseScummFile;
-// Common functionality for concrete chunks (FileChunk, MemoryChunk)
class Chunk : public Common::SeekableReadStream {
public:
typedef uint32 type;
@@ -45,32 +44,24 @@
uint32 _curPos;
Common::String _name;
- Chunk() : _type(0), _size(0), _curPos(0) {}
+ BaseScummFile *_data;
+ bool _deleteData;
+ uint32 _offset;
+ Chunk(BaseScummFile *data, int offset);
public:
+ Chunk(const Common::String &name, int offset = 0);
+ virtual ~Chunk();
+
Chunk::type getType() const { return _type; }
+ Chunk *subBlock();
+ void reseek();
+
int32 size() const { return _size; }
bool eos() const { return _curPos >= _size; }
int32 pos() const { return _curPos; }
bool seek(int32 delta, int dir);
-
- virtual Chunk *subBlock() = 0;
- virtual void reseek() = 0;
-};
-
-class FileChunk : public Chunk {
-private:
- BaseScummFile *_data;
- bool _deleteData;
- uint32 _offset;
-
- FileChunk(BaseScummFile *data, int offset);
-public:
- FileChunk(const Common::String &name, int offset = 0);
- virtual ~FileChunk();
- Chunk *subBlock();
- void reseek();
uint32 read(void *buffer, uint32 size);
};
Modified: scummvm/trunk/engines/scumm/smush/smush_player.cpp
===================================================================
--- scummvm/trunk/engines/scumm/smush/smush_player.cpp 2008-09-13 20:04:19 UTC (rev 34516)
+++ scummvm/trunk/engines/scumm/smush/smush_player.cpp 2008-09-13 20:22:52 UTC (rev 34517)
@@ -992,7 +992,7 @@
if (_seekFile.size() > 0) {
delete _base;
- _base = new FileChunk(_seekFile);
+ _base = new Chunk(_seekFile);
if (_seekPos > 0) {
assert(_seekPos > 8);
Modified: scummvm/trunk/engines/scumm/smush/smush_player.h
===================================================================
--- scummvm/trunk/engines/scumm/smush/smush_player.h 2008-09-13 20:04:19 UTC (rev 34516)
+++ scummvm/trunk/engines/scumm/smush/smush_player.h 2008-09-13 20:22:52 UTC (rev 34517)
@@ -51,7 +51,7 @@
StringResource *_strings;
Codec37Decoder *_codec37;
Codec47Decoder *_codec47;
- FileChunk *_base;
+ Chunk *_base;
byte *_frameBuffer;
byte *_specialBuffer;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list