|
@@ -69,232 +69,5 @@ bool Stream::uncompress_to(Stream* stream, size_t& unzipped_size, Compressor* co
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-BinaryReader::BinaryReader(Stream* s)
|
|
|
|
|
-{
|
|
|
|
|
- //BinaryReader takes the ownership of the stream.
|
|
|
|
|
- m_stream = s;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-BinaryReader::~BinaryReader()
|
|
|
|
|
-{
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-int8_t BinaryReader::read_byte()
|
|
|
|
|
-{
|
|
|
|
|
- int8_t buffer;
|
|
|
|
|
- m_stream->read(&buffer, sizeof(int8_t));
|
|
|
|
|
- return buffer;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-int16_t BinaryReader::read_int16()
|
|
|
|
|
-{
|
|
|
|
|
- int16_t buffer;
|
|
|
|
|
- m_stream->read(&buffer, sizeof(int16_t));
|
|
|
|
|
- return buffer;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-uint16_t BinaryReader::read_uint16()
|
|
|
|
|
-{
|
|
|
|
|
- uint16_t buffer;
|
|
|
|
|
- m_stream->read(&buffer, sizeof(uint16_t));
|
|
|
|
|
- return buffer;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-int32_t BinaryReader::read_int32()
|
|
|
|
|
-{
|
|
|
|
|
- int32_t buffer;
|
|
|
|
|
- m_stream->read(&buffer, sizeof(int32_t));
|
|
|
|
|
- return buffer;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-uint32_t BinaryReader::read_uint32()
|
|
|
|
|
-{
|
|
|
|
|
- uint32_t buffer;
|
|
|
|
|
- m_stream->read(&buffer, sizeof(uint32_t));
|
|
|
|
|
- return buffer;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-int64_t BinaryReader::read_int64()
|
|
|
|
|
-{
|
|
|
|
|
- int64_t buffer;
|
|
|
|
|
- m_stream->read(&buffer, sizeof(int64_t));
|
|
|
|
|
- return buffer;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-double BinaryReader::read_double()
|
|
|
|
|
-{
|
|
|
|
|
- double buffer;
|
|
|
|
|
- m_stream->read(&buffer, sizeof(double));
|
|
|
|
|
- return buffer;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-float BinaryReader::read_float()
|
|
|
|
|
-{
|
|
|
|
|
- float buffer;
|
|
|
|
|
- m_stream->read(&buffer, sizeof(float));
|
|
|
|
|
- return buffer;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-BinaryWriter::BinaryWriter(Stream* s)
|
|
|
|
|
-{
|
|
|
|
|
- //BinaryWriter takes the ownership of the stream.
|
|
|
|
|
- m_stream = s;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-BinaryWriter::~BinaryWriter()
|
|
|
|
|
-{
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-void BinaryWriter::write_byte(int8_t buffer)
|
|
|
|
|
-{
|
|
|
|
|
- m_stream->write(&buffer, sizeof(int8_t));
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-void BinaryWriter::write_int16(int16_t buffer)
|
|
|
|
|
-{
|
|
|
|
|
- m_stream->write(&buffer, sizeof(int16_t));
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-void BinaryWriter::write_uint16(uint16_t buffer)
|
|
|
|
|
-{
|
|
|
|
|
- m_stream->write(&buffer, sizeof(uint16_t));
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-void BinaryWriter::write_int32(int32_t buffer)
|
|
|
|
|
-{
|
|
|
|
|
- m_stream->write(&buffer, sizeof(int32_t));
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-void BinaryWriter::write_uint32(uint32_t buffer)
|
|
|
|
|
-{
|
|
|
|
|
- m_stream->write(&buffer, sizeof(uint32_t));
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-void BinaryWriter::write_int64(int64_t buffer)
|
|
|
|
|
-{
|
|
|
|
|
- m_stream->write(&buffer, sizeof(int64_t));
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-void BinaryWriter::write_double(double buffer)
|
|
|
|
|
-{
|
|
|
|
|
- m_stream->write(&buffer, sizeof(double));
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-void BinaryWriter::write_float(float buffer)
|
|
|
|
|
-{
|
|
|
|
|
- m_stream->write(&buffer, sizeof(float));
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-void BinaryWriter::insert_byte(int8_t val, size_t offset)
|
|
|
|
|
-{
|
|
|
|
|
- size_t tmpSize = m_stream->size() - offset;
|
|
|
|
|
- int8_t* tmp = new int8_t[tmpSize];
|
|
|
|
|
-
|
|
|
|
|
- m_stream->seek(offset);
|
|
|
|
|
- m_stream->read(tmp, tmpSize);
|
|
|
|
|
-
|
|
|
|
|
- m_stream->seek(offset);
|
|
|
|
|
-
|
|
|
|
|
- m_stream->write_byte(val);
|
|
|
|
|
-
|
|
|
|
|
- m_stream->write(tmp, tmpSize);
|
|
|
|
|
-
|
|
|
|
|
- delete[] tmp;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-TextReader::TextReader(Stream* s)
|
|
|
|
|
-{
|
|
|
|
|
- m_stream = s;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-TextReader::~TextReader()
|
|
|
|
|
-{
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-char TextReader::read_char()
|
|
|
|
|
-{
|
|
|
|
|
- return m_stream->read_byte();
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-char* TextReader::read_string(char* string, uint32_t count)
|
|
|
|
|
-{
|
|
|
|
|
- char currentChar;
|
|
|
|
|
- uint32_t i = 0;
|
|
|
|
|
-
|
|
|
|
|
- while(!m_stream->end_of_stream() && i < count - 1)
|
|
|
|
|
- {
|
|
|
|
|
- currentChar = m_stream->read_byte();
|
|
|
|
|
- string[i] = currentChar;
|
|
|
|
|
-
|
|
|
|
|
- i++;
|
|
|
|
|
-
|
|
|
|
|
- if (currentChar == '\n')
|
|
|
|
|
- {
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (i == 0)
|
|
|
|
|
- {
|
|
|
|
|
- return NULL;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- string[i] = '\0';
|
|
|
|
|
-
|
|
|
|
|
- return string;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-TextWriter::TextWriter(Stream* s)
|
|
|
|
|
-{
|
|
|
|
|
- m_stream = s;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-TextWriter::~TextWriter()
|
|
|
|
|
-{
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-void TextWriter::write_char(char c)
|
|
|
|
|
-{
|
|
|
|
|
- m_stream->write_byte(c);
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-//-----------------------------------------------------------------------------
|
|
|
|
|
-void TextWriter::write_string(const char* string)
|
|
|
|
|
-{
|
|
|
|
|
- size_t count = 0;
|
|
|
|
|
-
|
|
|
|
|
- while(string[count] != '\0')
|
|
|
|
|
- {
|
|
|
|
|
- m_stream->write_byte(string[count]);
|
|
|
|
|
- count++;
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
} // namespace crown
|
|
} // namespace crown
|
|
|
|
|
|