aboutsummaryrefslogtreecommitdiff
path: root/engines/tony/utils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tony/utils.cpp')
-rw-r--r--engines/tony/utils.cpp363
1 files changed, 13 insertions, 350 deletions
diff --git a/engines/tony/utils.cpp b/engines/tony/utils.cpp
index 8dc1f5d615..a3f79decaf 100644
--- a/engines/tony/utils.cpp
+++ b/engines/tony/utils.cpp
@@ -35,360 +35,21 @@ namespace Tony {
/**
* Extracts a string from a data stream
* @param df data stream
- * @param var String
*/
-RMDataStream &operator>>(RMDataStream &df, Common::String &var) {
+Common::String readString(Common::ReadStream &df) {
+ Common::String var;
uint8 len;
int i;
- df >> len;
+ len = df.readByte();
for (i = 0; i < len; i++) {
char c;
- df >> c;
+ c = df.readByte();
var += c;
}
- return df;
-}
-
-/****************************************************************************\
-* RMFileStreamSlow Methods
-\****************************************************************************/
-
-RMFileStreamSlow::RMFileStreamSlow() : RMDataStream() {
- _stream = NULL;
-}
-
-RMFileStreamSlow::~RMFileStreamSlow() {
- close();
-}
-
-void RMFileStreamSlow::close() {
- delete _stream;
-}
-
-bool RMFileStreamSlow::openFile(Common::File &file) {
- _stream = file.readStream(file.size());
-
- _length = _stream->pos();
-
- return true;
-}
-
-bool RMFileStreamSlow::openFile(const char *lpFN) {
- // Open file for reading
- Common::File f;
- if (!f.open(lpFN))
- return false;
-
- _length = f.size();
- _stream = f.readStream(f.size());
-
- return true;
-}
-
-RMDataStream &RMFileStreamSlow::operator+=(int nBytes) {
- seek(nBytes);
- return *this;
-}
-
-int RMFileStreamSlow::pos() {
- return _stream->pos();
-}
-
-bool RMFileStreamSlow::isEOF() {
- return (pos() >= _length);
-}
-
-int RMFileStreamSlow::seek(int nBytes, RMDSPos where) {
- switch (where) {
- case START:
- return _stream->seek(nBytes);
-
- case END:
- return _stream->seek(nBytes, SEEK_END);
-
- case CUR:
- return _stream->seek(nBytes, SEEK_CUR);
-
- default:
- return 0;
- }
-}
-
-bool RMFileStreamSlow::read(void *buf, int size) {
- uint32 dwRead;
-
- dwRead = _stream->read(buf, size);
- return ((int)dwRead == size);
-}
-
-RMFileStreamSlow &operator>>(RMFileStreamSlow &df, char &var) {
- df.read(&var, 1);
- return df;
-}
-
-RMFileStreamSlow &operator>>(RMFileStreamSlow &df, byte &var) {
- df.read(&var, 1);
- return df;
-}
-
-RMFileStreamSlow &operator>>(RMFileStreamSlow &df, uint16 &var) {
- uint16 v;
- df.read(&v, 2);
- v = FROM_LE_16(v);
- return df;
-}
-
-RMFileStreamSlow &operator>>(RMFileStreamSlow &df, int16 &var) {
- uint16 v;
- df.read(&v, 2);
- var = (int16)FROM_LE_16(v);
- return df;
-}
-
-RMFileStreamSlow &operator>>(RMFileStreamSlow &df, int &var) {
- int v;
- df.read(&v, 4);
- var = FROM_LE_32(v);
- return df;
-}
-
-RMFileStreamSlow &operator>>(RMFileStreamSlow &df, uint32 &var) {
- uint32 v;
- df.read(&v, 4);
- var = FROM_LE_32(v);
- return df;
-}
-
-/****************************************************************************\
-* RMDataStream methods
-\****************************************************************************/
-
-/**
- * Constructor
- */
-RMDataStream::RMDataStream() {
- _length = 0;
- _pos = 0;
- _bError = false;
-
- _buf = NULL;
- _ecode = 0;
-}
-
-/**
- * Destructor
- */
-RMDataStream::~RMDataStream() {
- close();
-}
-
-/**
- * Close a stream
- */
-void RMDataStream::close() {
- _length = 0;
- _pos = 0;
-}
-
-/**
- * Takes the address of the buffer from which will be read the data.
- * @param lpBuf Data buffer
- * @param size Size of the buffer
- * @remarks If the length of the buffer is not known, and cannot be
- * specified, then EOF() and Seek() to end won't work.
- */
-void RMDataStream::openBuffer(const byte *lpBuf, int size) {
- _length = size;
- _buf = lpBuf;
- _bError = false;
- _pos = 0;
-}
-
-/**
- * Returns the length of the stream
- * @returns Stream length
- */
-int RMDataStream::length() {
- return _length;
-}
-
-/**
- * Determines if the end of the stream has been reached
- * @returns true if end of stream reached, false if not
- */
-bool RMDataStream::isEOF() {
- return (_pos >= _length);
-}
-
-/**
- * Extracts data from the stream
- * @param df Stream
- * @param var Variable of a supported type
- * @returns Value read from the stream
- */
-RMDataStream &operator>>(RMDataStream &df, char &var) {
- df.read(&var, 1);
- return df;
-}
-
-/**
- * Extracts data from the stream
- * @param df Stream
- * @param var Variable of a supported type
- * @returns Value read from the stream
- */
-RMDataStream &operator>>(RMDataStream &df, uint8 &var) {
- df.read(&var, 1);
- return df;
-}
-
-/**
- * Extracts data from the stream
- * @param df Stream
- * @param var Variable of a supported type
- * @returns Value read from the stream
- */
-RMDataStream &operator>>(RMDataStream &df, uint16 &var) {
- uint16 v;
- df.read(&v, 2);
-
- var = FROM_LE_16(v);
- return df;
-}
-
-/**
- * Extracts data from the stream
- * @param df Stream
- * @param var Variable of a supported type
- * @returns Value read from the stream
- */
-RMDataStream &operator>>(RMDataStream &df, int16 &var) {
- uint16 v;
- df.read(&v, 2);
-
- var = (int16)FROM_LE_16(v);
- return df;
-}
-
-/**
- * Extracts data from the stream
- * @param df Stream
- * @param var Variable of a supported type
- * @returns Value read from the stream
- */
-RMDataStream &operator>>(RMDataStream &df, int &var) {
- uint32 v;
- df.read(&v, 4);
-
- var = (int)FROM_LE_32(v);
- return df;
-}
-
-/**
- * Extracts data from the stream
- * @param df Stream
- * @param var Variable of a supported type
- * @returns Value read from the stream
- */
-RMDataStream &operator>>(RMDataStream &df, uint32 &var) {
- uint32 v;
- df.read(&v, 4);
-
- var = FROM_LE_32(v);
- return df;
-}
-
-/**
- * Reads a series of data from the stream in a buffer
- * @param lpBuf Data buffer
- * @param size Size of the buffer
- * @returns true if we have reached the end, false if not
- */
-bool RMDataStream::read(void *lpBuf, int size) {
- byte *dest = (byte *)lpBuf;
-
- if ((_pos + size) > _length) {
- Common::copy(_buf + _pos, _buf + _pos + (_length - _pos), dest);
-
- return true;
- } else {
- Common::copy(_buf + _pos, _buf + _pos + size, dest);
-
- _pos += size;
- return false;
- }
-}
-
-/**
- * Skips a number of bytes in the stream
- * @param nBytres Number of bytes to skip
- * @returns The stream
- */
-RMDataStream &RMDataStream::operator+=(int nBytes) {
- _pos += nBytes;
- return *this;
-}
-
-/**
- * Seeks to a position within the stream
- * @param nBytes Number of bytes from specified origin
- * @param origin Origin to do offset from
- * @returns The absolute current position in bytes
- */
-int RMDataStream::seek(int nBytes, RMDSPos origin) {
- switch (origin) {
- case CUR:
- break;
-
- case START:
- _pos = 0;
- break;
-
- case END:
- if (_length == SIZENOTKNOWN)
- return _pos;
- _pos = _length;
- break;
- }
-
- _pos += nBytes;
- return _pos;
-}
-
-/**
- * Returns the current position of the stream
- * @returns The current position
- */
-int RMDataStream::pos() {
- return _pos;
-}
-
-/**
- * Check if an error occurred during reading the stream
- * @returns true if there was an error, false otherwise
- */
-bool RMDataStream::isError() {
- return _bError;
-}
-
-/**
- * Sets an error code for the stream
- * @param code Error code
- */
-void RMDataStream::setError(int code) {
- _bError = true;
- _ecode = code;
-}
-
-/**
- * Returns the error code for the stream
- * @returns Error code
- */
-int RMDataStream::getError() {
- return _ecode;
+ return var;
}
/****************************************************************************\
@@ -507,9 +168,9 @@ bool RMPoint::operator!=(RMPoint p) {
/**
* Reads a point from a stream
*/
-RMDataStream &operator>>(RMDataStream &ds, RMPoint &p) {
- ds >> p._x >> p._y;
- return ds;
+void RMPoint::readFromStream(Common::ReadStream &ds) {
+ _x = ds.readSint32LE();
+ _y = ds.readSint32LE();
}
/****************************************************************************\
@@ -663,9 +324,11 @@ void RMRect::normalizeRect() {
setRect(MIN(_x1, _x2), MIN(_y1, _y2), MAX(_x1, _x2), MAX(_y1, _y2));
}
-RMDataStream &operator>>(RMDataStream &ds, RMRect &rc) {
- ds >> rc._x1 >> rc._y1 >> rc._x2 >> rc._y2;
- return ds;
+void RMRect::readFromStream(Common::ReadStream &ds) {
+ _x1 = ds.readSint32LE();
+ _y1 = ds.readSint32LE();
+ _x2 = ds.readSint32LE();
+ _y2 = ds.readSint32LE();
}
/****************************************************************************\