[Scummvm-cvs-logs] SF.net SVN: scummvm: [25864] scummvm/trunk/engines/parallaction
peres001 at users.sourceforge.net
peres001 at users.sourceforge.net
Sun Feb 25 21:12:24 CET 2007
Revision: 25864
http://scummvm.svn.sourceforge.net/scummvm/?rev=25864&view=rev
Author: peres001
Date: 2007-02-25 12:12:23 -0800 (Sun, 25 Feb 2007)
Log Message:
-----------
got rid of ArchievedFile. Since only one single file is being read from the archives at every moment, the ArchivedFile structure used for bookkeeping is useless.
Modified Paths:
--------------
scummvm/trunk/engines/parallaction/animation.cpp
scummvm/trunk/engines/parallaction/archive.cpp
scummvm/trunk/engines/parallaction/disk.h
scummvm/trunk/engines/parallaction/graphics.cpp
scummvm/trunk/engines/parallaction/location.cpp
Modified: scummvm/trunk/engines/parallaction/animation.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/animation.cpp 2007-02-25 19:15:00 UTC (rev 25863)
+++ scummvm/trunk/engines/parallaction/animation.cpp 2007-02-25 20:12:23 UTC (rev 25864)
@@ -256,16 +256,16 @@
sprintf(vC8, "%s.script", filename);
- ArchivedFile *file = openArchivedFile(vC8);
- if (!file) errorFileNotFound(vC8);
+ if (!openArchivedFile(vC8))
+ errorFileNotFound(vC8);
uint32 size = getArchivedFileLength(vC8);
char* src = (char*)memAlloc(size+1);
- readArchivedFile(file, src, size);
+ readArchivedFile(src, size);
src[size] = '\0';
- closeArchivedFile(file);
+ closeArchivedFile();
_numLocals = 0;
Modified: scummvm/trunk/engines/parallaction/archive.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/archive.cpp 2007-02-25 19:15:00 UTC (rev 25863)
+++ scummvm/trunk/engines/parallaction/archive.cpp 2007-02-25 20:12:23 UTC (rev 25864)
@@ -27,16 +27,12 @@
namespace Parallaction {
-struct ArchivedFile {
- uint16 _index;
- uint32 _offset;
- uint32 _cursor;
- uint16 field_A; // unused
- uint16 field_C; // unused
- uint32 _endOffset;
-};
+static bool _file = false;
+static uint16 _fileIndex = 0;
+static uint32 _fileOffset = 0;
+static uint32 _fileCursor = 0;
+static uint32 _fileEndOffset = 0;
-
#define MAX_ARCHIVE_ENTRIES 384
#define DIRECTORY_OFFSET_IN_FILE 0x4000
@@ -53,7 +49,6 @@
static uint32 _archiveLenghts[MAX_ARCHIVE_ENTRIES];
static uint32 _archiveOffsets[MAX_ARCHIVE_ENTRIES];
-static uint32 _handle = MAX_ARCHIVE_ENTRIES;
void openArchive(const char *file) {
@@ -106,37 +101,36 @@
}
-ArchivedFile *openArchivedFile(const char *name) {
+bool openArchivedFile(const char *name) {
uint16 i = 0;
for ( ; i < MAX_ARCHIVE_ENTRIES; i++) {
if (!scumm_stricmp(_archiveDir[i], name)) break;
}
- if (i == MAX_ARCHIVE_ENTRIES) return NULL;
+ if (i == MAX_ARCHIVE_ENTRIES) return false;
debugC(1, kDebugDisk, "file '%s' found in slot %i", name, i);
- ArchivedFile *file = (ArchivedFile*)memAlloc(sizeof(ArchivedFile));
+ _file = true;
- if (!file)
- error("openArchivedFile: can't allocate buffer for '%s'", name);
+ _fileIndex = i;
+ _fileOffset = _archiveOffsets[i];
+ _fileCursor = _archiveOffsets[i];
+ _fileEndOffset = _archiveOffsets[i] + _archiveLenghts[i];
- file->_index = i;
- file->_offset = _archiveOffsets[i];
- file->_cursor = _archiveOffsets[i];
- file->_endOffset = _archiveOffsets[i] + _archiveLenghts[i];
+ _archive.seek(_fileOffset);
- _handle = file->_index;
- _archive.seek(file->_offset);
-
- return file;
+ return true;
}
-void closeArchivedFile(ArchivedFile *file) {
- if (file) memFree(file);
- _handle = MAX_ARCHIVE_ENTRIES;
+void closeArchivedFile() {
+ _file = false;
+ _fileIndex = 0;
+ _fileCursor = 0;
+ _fileOffset = 0;
+ _fileEndOffset = 0;
return;
}
@@ -156,17 +150,19 @@
-int16 readArchivedFile(ArchivedFile *file, void *buffer, uint16 size) {
+int16 readArchivedFile(void *buffer, uint16 size) {
// printf("readArchivedFile(%i, %i)\n", file->_cursor, file->_endOffset);
+ if (_file == false)
+ error("readArchiveFile: no archived file is currently open");
- if (file->_cursor == file->_endOffset) return -1;
+ if (_fileCursor == _fileEndOffset) return -1;
- if (file->_endOffset - file->_cursor < size)
- size = file->_endOffset - file->_cursor;
+ if (_fileEndOffset - _fileCursor < size)
+ size = _fileEndOffset - _fileCursor;
- _archive.seek(file->_cursor);
+ _archive.seek(_fileCursor);
int16 read = _archive.read(buffer, size);
- file->_cursor += read;
+ _fileCursor += read;
return read;
}
@@ -186,7 +182,9 @@
#endif
-char *readArchivedFileText(char *buf, uint16 size, void*) {
+char *readArchivedFileText(char *buf, uint16 size) {
+ if (_file == false)
+ error("readArchiveFileText: no archived file is currently open");
char *t = _archive.readLine(buf, size);
Modified: scummvm/trunk/engines/parallaction/disk.h
===================================================================
--- scummvm/trunk/engines/parallaction/disk.h 2007-02-25 19:15:00 UTC (rev 25863)
+++ scummvm/trunk/engines/parallaction/disk.h 2007-02-25 20:12:23 UTC (rev 25864)
@@ -36,13 +36,13 @@
void openArchive(const char *file);
void closeArchive();
-ArchivedFile *openArchivedFile(const char *name);
-void closeArchivedFile(ArchivedFile*);
+bool openArchivedFile(const char *name);
+void closeArchivedFile();
uint16 getArchivedFileLength(const char *name);
-int16 readArchivedFile(ArchivedFile*, void *buffer, uint16 size);
-char *readArchivedFileText(char *buf, uint16 size, void*);
+int16 readArchivedFile(void *buffer, uint16 size);
+char *readArchivedFileText(char *buf, uint16 size);
Modified: scummvm/trunk/engines/parallaction/graphics.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/graphics.cpp 2007-02-25 19:15:00 UTC (rev 25863)
+++ scummvm/trunk/engines/parallaction/graphics.cpp 2007-02-25 20:12:23 UTC (rev 25864)
@@ -1020,20 +1020,19 @@
char path[PATH_LEN];
strcpy(path, filename);
- ArchivedFile *file = openArchivedFile(path);
- if (!file) {
+ if (!openArchivedFile(path)) {
sprintf(path, "%s.pp", filename);
- file = openArchivedFile(path);
- if (!file) errorFileNotFound(path);
+ if (!openArchivedFile(path))
+ errorFileNotFound(path);
}
cnv->_width = cnv->_height = 0;
byte unk;
- readArchivedFile(file, &unk, 1);
- readArchivedFile(file, &unk, 1);
+ readArchivedFile(&unk, 1);
+ readArchivedFile(&unk, 1);
cnv->_width = unk;
- readArchivedFile(file, &unk, 1);
+ readArchivedFile(&unk, 1);
cnv->_height = unk;
uint16 compressedsize = getArchivedFileLength(path) - 3;
@@ -1042,8 +1041,8 @@
uint16 size = cnv->_width*cnv->_height;
cnv->_data0 = (byte*)memAlloc(size);
- readArchivedFile(file, compressed, compressedsize);
- closeArchivedFile(file);
+ readArchivedFile(compressed, compressedsize);
+ closeArchivedFile();
decompressChunk(compressed, cnv->_data0, size);
memFree(compressed);
@@ -1060,22 +1059,21 @@
char path[PATH_LEN];
strcpy(path, filename);
- ArchivedFile *file = openArchivedFile(path);
- if (!file) {
+ if (!openArchivedFile(path)) {
sprintf(path, "%s.pp", filename);
- file = openArchivedFile(path);
- if (!file) errorFileNotFound(path);
+ if (!openArchivedFile(path))
+ errorFileNotFound(path);
}
cnv->_count = cnv->_width = cnv->_height = 0;
byte unk;
- readArchivedFile(file, &unk, 1);
+ readArchivedFile(&unk, 1);
cnv->_count = unk;
- readArchivedFile(file, &unk, 1);
+ readArchivedFile(&unk, 1);
cnv->_width = unk;
- readArchivedFile(file, &unk, 1);
+ readArchivedFile(&unk, 1);
cnv->_height = unk;
uint16 framesize = cnv->_width*cnv->_height;
@@ -1085,7 +1083,7 @@
uint32 size = getArchivedFileLength(path) - 3;
byte *buf = (byte*)memAlloc(size);
- readArchivedFile(file, buf, size);
+ readArchivedFile(buf, size);
byte *s = buf;
@@ -1098,7 +1096,7 @@
s += read;
}
- closeArchivedFile(file);
+ closeArchivedFile();
memFree(buf);
@@ -1167,16 +1165,16 @@
void Graphics::loadBackground(const char *filename, Graphics::Buffers buffer) {
// printf("Graphics::loadBackground(%s)\n", filename);
- ArchivedFile *file = openArchivedFile(filename);
- if (!file) errorFileNotFound(filename);
+ if (!openArchivedFile(filename))
+ errorFileNotFound(filename);
// byte palette[PALETTE_SIZE];
byte v150[4];
- readArchivedFile(file, _palette, PALETTE_SIZE);
- readArchivedFile(file, &v150, 4);
+ readArchivedFile(_palette, PALETTE_SIZE);
+ readArchivedFile(&v150, 4);
byte tempfx[sizeof(PaletteFxRange)*6];
- readArchivedFile(file, &tempfx, sizeof(PaletteFxRange)*6);
+ readArchivedFile(&tempfx, sizeof(PaletteFxRange)*6);
// setPalette(palette);
@@ -1207,7 +1205,7 @@
memset(_buffers[kMask0], 0, SCREENMASK_WIDTH*SCREEN_HEIGHT);
byte *v4 = (byte*)memAlloc(SCREEN_SIZE);
- readArchivedFile(file, v4, SCREEN_SIZE);
+ readArchivedFile(v4, SCREEN_SIZE);
byte v144[SCREEN_WIDTH];
@@ -1218,7 +1216,7 @@
}
memFree(v4);
- closeArchivedFile(file);
+ closeArchivedFile();
return;
}
@@ -1231,17 +1229,17 @@
//
void Graphics::loadMaskAndPath(const char *filename) {
- ArchivedFile *file = openArchivedFile(filename);
- if (!file) errorFileNotFound(filename);
+ if (!openArchivedFile(filename))
+ errorFileNotFound(filename);
byte v4[4];
- readArchivedFile(file, v4, 4);
- readArchivedFile(file, _buffers[kPath0], SCREENPATH_WIDTH*SCREEN_HEIGHT);
- readArchivedFile(file, _buffers[kMask0], SCREENMASK_WIDTH*SCREEN_HEIGHT);
+ readArchivedFile(v4, 4);
+ readArchivedFile(_buffers[kPath0], SCREENPATH_WIDTH*SCREEN_HEIGHT);
+ readArchivedFile(_buffers[kMask0], SCREENMASK_WIDTH*SCREEN_HEIGHT);
for (uint16 _si = 0; _si < 4; _si++) _bgLayers[_si] = v4[_si];
- closeArchivedFile(file);
+ closeArchivedFile();
return;
}
Modified: scummvm/trunk/engines/parallaction/location.cpp
===================================================================
--- scummvm/trunk/engines/parallaction/location.cpp 2007-02-25 19:15:00 UTC (rev 25863)
+++ scummvm/trunk/engines/parallaction/location.cpp 2007-02-25 20:12:23 UTC (rev 25864)
@@ -66,11 +66,11 @@
_languageDir[2] = '\0';
openArchive(_languageDir);
_languageDir[2] = '/';
- ArchivedFile *file = openArchivedFile(archivefile);
- if (!file) {
+
+ if (!openArchivedFile(archivefile)) {
sprintf(archivefile, "%s%s.loc", _languageDir, filename);
- file = openArchivedFile(archivefile);
- if (!file) errorFileNotFound(filename);
+ if (!openArchivedFile(archivefile))
+ errorFileNotFound(filename);
}
uint32 count = getArchivedFileLength(archivefile);
@@ -78,8 +78,8 @@
_locationScript = new Script(location_src);
- readArchivedFile(file, location_src, count);
- closeArchivedFile(file);
+ readArchivedFile(location_src, count);
+ closeArchivedFile();
closeArchive();
fillBuffers(*_locationScript, true);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list