aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/gargoyle/streams.cpp32
1 files changed, 17 insertions, 15 deletions
diff --git a/engines/gargoyle/streams.cpp b/engines/gargoyle/streams.cpp
index 659fcd00d6..41f3caf1b4 100644
--- a/engines/gargoyle/streams.cpp
+++ b/engines/gargoyle/streams.cpp
@@ -459,29 +459,31 @@ glui32 MemoryStream::getPosition() const {
}
void MemoryStream::setPosition(glui32 pos, glui32 seekMode) {
+ glsi32 newPos = pos;
+
if (!_unicode) {
if (seekMode == seekmode_Current)
- pos = ((unsigned char *)_bufPtr - (unsigned char *)_buf) + pos;
+ newPos = ((unsigned char *)_bufPtr - (unsigned char *)_buf) + newPos;
else if (seekMode == seekmode_End)
- pos = ((unsigned char *)_bufEof - (unsigned char *)_buf) + pos;
+ newPos = ((unsigned char *)_bufEof - (unsigned char *)_buf) + newPos;
else
- /* pos = pos */;
- if (pos < 0)
- pos = 0;
- if (pos > (glui32)((unsigned char *)_bufEof - (unsigned char *)_buf))
- pos = ((unsigned char *)_bufEof - (unsigned char *)_buf);
- _bufPtr = (unsigned char *)_buf + pos;
+ /* newPos = newPos */;
+ if (newPos < 0)
+ newPos = 0;
+ if (newPos > ((unsigned char *)_bufEof - (unsigned char *)_buf))
+ newPos = ((unsigned char *)_bufEof - (unsigned char *)_buf);
+ _bufPtr = (unsigned char *)_buf + newPos;
} else {
if (seekMode == seekmode_Current)
- pos = ((glui32 *)_bufPtr - (glui32 *)_buf) + pos;
+ newPos = ((glui32 *)_bufPtr - (glui32 *)_buf) + newPos;
else if (seekMode == seekmode_End)
- pos = ((glui32 *)_bufEof - (glui32 *)_buf) + pos;
+ newPos = ((glui32 *)_bufEof - (glui32 *)_buf) + newPos;
- if (pos < 0)
- pos = 0;
- if (pos > (glui32)((glui32 *)_bufEof - (glui32 *)_buf))
- pos = ((glui32 *)_bufEof - (glui32 *)_buf);
- _bufPtr = (glui32 *)_buf + pos;
+ if (newPos < 0)
+ newPos = 0;
+ if (newPos > ((glui32 *)_bufEof - (glui32 *)_buf))
+ newPos = ((glui32 *)_bufEof - (glui32 *)_buf);
+ _bufPtr = (glui32 *)_buf + newPos;
}
}