Subversion Repositories spk

Rev

Rev 102 | Rev 125 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 102 Rev 124
Line 57... Line 57...
57
	// extract the matching file
57
	// extract the matching file
58
	Utils::String sToFile = CFileIO(m_sTempDir + "/" + CFileIO(c->sFile).filename()).fullFilename();
58
	Utils::String sToFile = CFileIO(m_sTempDir + "/" + CFileIO(c->sFile).filename()).fullFilename();
59
	if ( !m_pCatFile->ExtractFile(sModFile, sToFile) ) return false;
59
	if ( !m_pCatFile->ExtractFile(sModFile, sToFile) ) return false;
60
 
60
 
61
	// create a diff
61
	// create a diff
62
	Utils::String to = m_fileSystem.ExtractGameFile(c->sFile.ToString(), sToFile + ".compare");
62
	Utils::String to = m_fileSystem.ExtractGameFile(c->sFile, sToFile + ".compare");
63
	if ( !to.empty() ) {
63
	if ( !to.empty() ) {
64
		SDiffFile *diff = diffFile(to, sToFile, c->sFile.ToString());
64
		SDiffFile *diff = diffFile(to, sToFile, c->sFile);
65
		if ( diff ) { 
65
		if ( diff ) { 
66
			this->_adjustFile(sModFile, diff, false);
66
			this->_adjustFile(sModFile, diff, false);
67
		}
67
		}
68
		CFileIO::Remove(to);
68
		CFileIO::Remove(to);
69
	}
69
	}
Line 179... Line 179...
179
 
179
 
180
	// we'll need to read in all the types/text files
180
	// we'll need to read in all the types/text files
181
	for ( int i = 0; i < cat.GetNumFiles(); i++ )
181
	for ( int i = 0; i < cat.GetNumFiles(); i++ )
182
	{
182
	{
183
		SInCatFile *f = cat.GetFile(i);
183
		SInCatFile *f = cat.GetFile(i);
184
		Utils::String checkFile = f->sFile.FindReplace("\\", "/").ToString();
184
		Utils::String checkFile = f->sFile.findReplace("\\", "/");
185
		if ( (checkFile.left(6).Compare("types/") || checkFile.left(2).Compare("t/") || checkFile.left(6 + addonSize).Compare(addonDir + "/types/") || checkFile.left(2 + addonSize).Compare(addonDir + "/t/")) && _validFile(checkFile) )
185
		if ( (checkFile.left(6).Compare("types/") || checkFile.left(2).Compare("t/") || checkFile.left(6 + addonSize).Compare(addonDir + "/types/") || checkFile.left(2 + addonSize).Compare(addonDir + "/t/")) && _validFile(checkFile) )
186
		{
186
		{
187
			// extract the file to the temp dir
187
			// extract the file to the temp dir
188
			Utils::String toFile = CFileIO(m_sTempDir + "/" + CFileIO(f->sFile).filename()).fullFilename();
188
			Utils::String toFile = CFileIO(m_sTempDir + "/" + CFileIO(f->sFile).filename()).fullFilename();
189
			if ( cat.ExtractFile(f, toFile ) )
189
			if ( cat.ExtractFile(f, toFile ) )
190
			{
190
			{
191
				// now extract the matching file from the game dir
191
				// now extract the matching file from the game dir
192
				if ( m_fileSystem.ExtractGameFile(f->sFile.ToString(), toFile + ".compare") )
192
				if ( m_fileSystem.ExtractGameFile(f->sFile, toFile + ".compare") )
193
				{
193
				{
194
					diffFile(toFile + ".compare", toFile, f->sFile.ToString());
194
					diffFile(toFile + ".compare", toFile, f->sFile);
195
					CFileIO::Remove(toFile + ".compare");
195
					CFileIO::Remove(toFile + ".compare");
196
				}
196
				}
197
				// make sure we clear up afterwards
197
				// make sure we clear up afterwards
198
				CFileIO::Remove(toFile);
198
				CFileIO::Remove(toFile);
199
			}
199
			}