aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/sound.cpp3
-rw-r--r--simon/res.cpp8
-rw-r--r--simon/simon.cpp27
3 files changed, 9 insertions, 29 deletions
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index fc5fcca168..2d8a065d72 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -1300,8 +1300,7 @@ int Sound::getCachedTrack(int track) {
mad_frame_finish(&frame);
mad_stream_finish(&stream);
// Get file size
- file->seek(0, SEEK_END);
- _mp3_size[current_index] = file->pos();
+ _mp3_size[current_index] = file->size();
_mp3_tracks[current_index] = file;
return current_index;
diff --git a/simon/res.cpp b/simon/res.cpp
index 705504c2a4..ad66db8895 100644
--- a/simon/res.cpp
+++ b/simon/res.cpp
@@ -123,13 +123,11 @@ bool SimonState::loadGamePcFile(const char *filename)
if (in->isOpen() == false)
return false;
- in->seek(0, SEEK_END);
- file_size = in->pos();
+ file_size = in->size();
_tbl_list = (byte *)malloc(file_size);
if (_tbl_list == NULL)
error("Out of memory for strip table list");
- in->seek(0, SEEK_SET);
in->read(_tbl_list, file_size);
in->close();
@@ -143,12 +141,10 @@ bool SimonState::loadGamePcFile(const char *filename)
if (in->isOpen() == false)
return false;
- in->seek(0, SEEK_END);
- file_size = in->pos();
+ file_size = in->size();
_stripped_txt_mem = (byte *)malloc(file_size);
if (_stripped_txt_mem == NULL)
error("Out of memory for strip text list");
- in->seek(0, SEEK_SET);
in->read(_stripped_txt_mem, file_size);
in->close();
diff --git a/simon/simon.cpp b/simon/simon.cpp
index fc5a7906d5..be02131988 100644
--- a/simon/simon.cpp
+++ b/simon/simon.cpp
@@ -869,9 +869,7 @@ uint SimonState::loadTextFile_simon1(const char *filename, byte *dst)
if (fo.isOpen() == false)
error("loadTextFile: Cannot open '%s'", filename);
- fo.seek(0, SEEK_END);
- size = fo.pos();
- fo.seek(0, SEEK_SET);
+ size = fo.size();
if (fo.read(dst, size) != size)
error("loadTextFile: fread failed");
@@ -1421,15 +1419,12 @@ void SimonState::loadIconFile()
if (in.isOpen() == false)
error("Cannot open icon.dat");
- in.seek(0, SEEK_END);
- size = in.pos();
+ size = in.size();
_icon_file_ptr = (byte *)malloc(size);
if (_icon_file_ptr == NULL)
error("Out of icon memory");
- in.seek(0, SEEK_SET);
-
in.read(_icon_file_ptr, size);
in.close();
}
@@ -3276,10 +3271,7 @@ void SimonState::readSfxFile(const char *filename)
return;
}
- in.seek(0, SEEK_END);
- size = in.pos();
-
- in.seek(0, SEEK_SET);
+ size = in.size();
/* stop all sounds */
_mixer->stopAll();
@@ -4036,9 +4028,7 @@ void SimonState::read_vga_from_datfile_1(uint vga_id)
return;
}
- in.seek(0, SEEK_END);
- size = in.pos();
- in.seek(0, SEEK_SET);
+ size = in.size();
if (in.read(_vga_buffer_pointers[11].vgaFile2, size) != size)
error("read_vga_from_datfile_1: read failed");
@@ -4066,9 +4056,7 @@ byte *SimonState::read_vga_from_datfile_2(uint id)
if (in.isOpen() == false)
error("read_vga_from_datfile_2: cannot open %s", buf);
- in.seek(0, SEEK_END);
- size = in.pos();
- in.seek(0, SEEK_SET);
+ size = in.size();
dst = setup_vga_destination(size);
@@ -4880,10 +4868,7 @@ void SimonState::playMusic(uint music)
/* FIXME: not properly implemented */
if (_game & GAME_WIN) {
- int32 offset = _game_offsets_ptr[gss->MUSIC_INDEX_BASE + music];
- if (_game & GAME_SIMON2)
- offset--;
- _game_file->seek(offset, SEEK_SET);
+ _game_file->seek(_game_offsets_ptr[gss->MUSIC_INDEX_BASE + music], SEEK_SET);
File *f = _game_file;
midi.read_all_songs(f);
} else {