aboutsummaryrefslogtreecommitdiff
path: root/common/file.cpp
diff options
context:
space:
mode:
authorPaweł Kołodziejski2002-09-02 07:53:43 +0000
committerPaweł Kołodziejski2002-09-02 07:53:43 +0000
commitca03c9b5fc58b6beb5dbc6c1307464ef9e2c9f45 (patch)
tree539f84d8edc7002ccb01278aa06a174ab53bda3d /common/file.cpp
parent97ef7c2a34c4077d6d046f0aabce7e1dde04e092 (diff)
downloadscummvm-rg350-ca03c9b5fc58b6beb5dbc6c1307464ef9e2c9f45.tar.gz
scummvm-rg350-ca03c9b5fc58b6beb5dbc6c1307464ef9e2c9f45.tar.bz2
scummvm-rg350-ca03c9b5fc58b6beb5dbc6c1307464ef9e2c9f45.zip
changed file io in sounds to class File
svn-id: r4896
Diffstat (limited to 'common/file.cpp')
-rw-r--r--common/file.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/common/file.cpp b/common/file.cpp
index faa09dde1e..809c843ecf 100644
--- a/common/file.cpp
+++ b/common/file.cpp
@@ -114,7 +114,7 @@ void File::seek(uint32 offs, int whence) {
clearerr(_handle);
}
-void File::read(void *ptr, uint32 size) {
+uint32 File::read(void *ptr, uint32 size) {
byte *ptr2 = (byte *)ptr;
if (_handle == NULL) {
@@ -125,14 +125,19 @@ void File::read(void *ptr, uint32 size) {
if (size == 0)
return;
- if ((uint32)fread(ptr2, size, 1, _handle) != 1) {
+ if ((uint32)fread(ptr2, 1, size, _handle) != size) {
clearerr(_handle);
_readFailed = true;
}
- do {
- *ptr2++ ^= _encbyte;
- } while (--size);
+ if (_encbyte != 0) {
+ uint32 t_size = size;
+ do {
+ *ptr2++ ^= _encbyte;
+ } while (--t_size);
+ }
+
+ return size;
}
byte File::readByte() {