[Scummvm-cvs-logs] SF.net SVN: scummvm: [31541] scummvm/trunk/engines/kyra/resource.cpp
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Thu Apr 17 18:55:13 CEST 2008
Revision: 31541
http://scummvm.svn.sourceforge.net/scummvm/?rev=31541&view=rev
Author: lordhoto
Date: 2008-04-17 09:55:13 -0700 (Thu, 17 Apr 2008)
Log Message:
-----------
Fixed Kyra 3 TLK file loading.
Modified Paths:
--------------
scummvm/trunk/engines/kyra/resource.cpp
Modified: scummvm/trunk/engines/kyra/resource.cpp
===================================================================
--- scummvm/trunk/engines/kyra/resource.cpp 2008-04-17 16:38:26 UTC (rev 31540)
+++ scummvm/trunk/engines/kyra/resource.cpp 2008-04-17 16:55:13 UTC (rev 31541)
@@ -685,26 +685,19 @@
uint32 filename = stream.readUint32LE();
uint32 offset = stream.readUint32LE();
- entry.offset = offset;
- entry.size = 0;
+ entry.offset = offset+4;
char realFilename[20];
snprintf(realFilename, 20, "%.08u.AUD", filename);
+ uint32 curOffset = stream.pos();
+ stream.seek(entry.offset+2, SEEK_SET);
+ entry.size = stream.readUint32LE();
+ stream.seek(curOffset, SEEK_SET);
+
files.push_back(FileList::value_type(realFilename, entry));
}
- Common::sort(files.begin(), files.end(), ResLoaderTlk::sortTlkFileList);
-
- for (FileList::iterator iter = files.begin(); iter != files.end(); ++iter) {
- FileList::const_iterator next = ResLoaderTlk::nextFile(files, iter);
- uint32 endOffset = (next == files.end() ? stream.size() : next->entry.offset);
-
- assert(endOffset >= iter->entry.offset);
-
- iter->entry.size = endOffset - iter->entry.offset;
- }
-
return true;
}
@@ -717,20 +710,6 @@
return stream;
}
-bool ResLoaderTlk::sortTlkFileList(const File &l, const File &r) {
- return (l.entry.offset < r.entry.offset);
-}
-
-ResLoaderTlk::FileList::const_iterator ResLoaderTlk::nextFile(const FileList &list, FileList::const_iterator iter) {
- ResArchiveLoader::FileList::const_iterator next = iter;
- while ((++next) != list.end()) {
- if (next->entry.offset != iter->entry.offset)
- return next;
- }
-
- return next;
-}
-
#pragma mark -
void Resource::initializeLoaders() {
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