Subversion Repositories spk

Rev

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

Rev 52 Rev 54
Line 1342... Line 1342...
1342
	return installed;
1342
	return installed;
1343
}
1343
}
1344
 
1344
 
1345
void CPackages::_addToFakePatch(CBaseFile *pPackage)
1345
void CPackages::_addToFakePatch(CBaseFile *pPackage)
1346
{
1346
{
1347
	CLog::logf(CLog::Log_Install, 4, "Preparing to move files to fake patch, %s", (m_sCurrentDir + "/PluginManager/PlugMan_Fake.cat").c_str());
-
 
1348
	CCatFile cat;
1347
	CCatFile cat;
1349
	if ( CCatFile::Opened(cat.Open(m_sCurrentDir + "/PluginManager/PlugMan_Fake.cat", this->GetAddonDir(), CATREAD_DAT)) ) {
1348
	if ( CCatFile::Opened(cat.Open(m_sCurrentDir + "/PluginManager/PlugMan_Fake.cat", this->GetAddonDir(), CATREAD_DAT)) ) {
1350
		for ( CListNode<C_File> *f = pPackage->GetFileList()->Front(); f; f = f->next() ) {
1349
		for ( CListNode<C_File> *f = pPackage->GetFileList()->Front(); f; f = f->next() ) {
1351
			CLog::logf(CLog::Log_Install, 4, "Start next file...");
-
 
1352
			CLog::logf(CLog::Log_Install, 4, "File: %s", f->Data()->GetFilePointer().c_str());
-
 
1353
			if ( f->Data()->GetFileType() != FILETYPE_SHIPSCENE && f->Data()->GetFileType() != FILETYPE_COCKPITSCENE && f->Data()->GetFileType() != FILETYPE_SHIPMODEL && f->Data()->GetFileType() != FILETYPE_SHIPOTHER ) {
1350
			if ( f->Data()->GetFileType() != FILETYPE_SHIPSCENE && f->Data()->GetFileType() != FILETYPE_COCKPITSCENE && f->Data()->GetFileType() != FILETYPE_SHIPMODEL && f->Data()->GetFileType() != FILETYPE_SHIPOTHER ) {
1354
				CLog::logf(CLog::Log_Install, 4, "Not a valid file type to add to fake patch (%d)", f->Data()->GetFileType());
-
 
1355
				continue;
1351
				continue;
1356
			}
1352
			}
1357
			CLog::logf(CLog::Log_Install, 4, "checking addon dir");
-
 
1358
			if ( CCatFile::IsAddonDir(f->Data()->GetNameDirectory(pPackage)) ) {
1353
			if ( CCatFile::IsAddonDir(f->Data()->GetNameDirectory(pPackage)) ) {
1359
				CLog::logf(CLog::Log_Install, 4, "Is an addon directory, skipping, %s", f->Data()->GetNameDirectory(pPackage).c_str());
-
 
1360
				continue;
1354
				continue;
1361
			}
1355
			}
1362
			// check if its already in the fake patch
1356
			// check if its already in the fake patch
1363
			CLog::logf(CLog::Log_Install, 4, "checking full dir");
-
 
1364
			if ( f->Data()->GetFullDir().IsIn("::") ) {
1357
			if ( f->Data()->GetFullDir().IsIn("::") ) {
1365
				CLog::logf(CLog::Log_Install, 4, "Is already in a mod file, skipping, %s", f->Data()->GetNameDirectory(pPackage).c_str());
-
 
1366
				continue;
1358
				continue;
1367
			}
1359
			}
1368
			Utils::String toFile;
1360
			Utils::String toFile;
1369
			CLog::logf(CLog::Log_Install, 2, "Adding file: %s into the fake patch", f->Data()->GetNameDirectory(pPackage).c_str());
-
 
1370
			CLog::logf(CLog::Log_Install, 4, "Cat File: %s", cat.GetCatFilename().c_str());
-
 
1371
 
-
 
1372
			Utils::String sFilename = f->Data()->GetFilePointer().ToString();
-
 
1373
			CLog::logf(CLog::Log_Install, 4, "- Filename: %s", sFilename.c_str());
-
 
1374
			Utils::String sTo = f->Data()->GetNameDirectory(pPackage).ToString();
-
 
1375
			CLog::logf(CLog::Log_Install, 4, "- To: %s", sTo.c_str());
-
 
1376
			if ( cat.AppendFile(sFilename, sTo, true, (m_iGameFlags & EXEFLAG_NOXOR) ? false : true, &toFile) ) {
1361
			if ( cat.AppendFile(f->Data()->GetFilePointer().ToString(), f->Data()->GetNameDirectory(pPackage).ToString(), true, (m_iGameFlags & EXEFLAG_NOXOR) ? false : true, &toFile) ) {
1377
				CLog::logf(CLog::Log_Install, 3, "Removing old file, %s", f->Data()->GetFilePointer().c_str());
1362
				CLog::logf(CLog::Log_Install, 2, "Adding file: %s into the fake patch", f->Data()->GetNameDirectory(pPackage).c_str());
1378
				CFileIO::Remove(f->Data()->GetFilePointer().ToString());
1363
				CFileIO::Remove(f->Data()->GetFilePointer().ToString());
1379
				CLog::logf(CLog::Log_Install, 3, "Adjusting file pointer to fake patch, %s => %s", f->Data()->GetFilePointer().c_str(), (m_sCurrentDir + "/PluginManager/PlugMan_Fake.cat::" + toFile).c_str());
-
 
1380
				f->Data()->SetFilename(m_sCurrentDir + "/PluginManager/PlugMan_Fake.cat::" + toFile);
1364
				f->Data()->SetFilename(m_sCurrentDir + "/PluginManager/PlugMan_Fake.cat::" + toFile);
1381
			}
1365
			}
1382
		}
1366
		}
1383
	}
1367
	}
1384
}
1368
}
Line 2565... Line 2549...
2565
		{
2549
		{
2566
			if ( fakePatch.AppendFile(file.ToString(), "PlugMan\\TFake.pck") )
2550
			if ( fakePatch.AppendFile(file.ToString(), "PlugMan\\TFake.pck") )
2567
			{
2551
			{
2568
				// find next available fake patch
2552
				// find next available fake patch
2569
				m_iFakePatch = this->FindNextFakePatch();
2553
				m_iFakePatch = this->FindNextFakePatch();
-
 
2554
				fakePatch.WriteCatFile();
2570
 
2555
 
2571
				CyString filename = CyString::Number(m_iFakePatch).PadNumber(2);
2556
				CyString filename = CyString::Number(m_iFakePatch).PadNumber(2);
2572
				if ( catFile.Rename(m_sCurrentDir + "/" + filename + ".cat") )
2557
				if ( catFile.Rename(m_sCurrentDir + "/" + filename + ".cat") )
2573
				{
2558
				{
2574
					if ( datFile.Rename(m_sCurrentDir + "/" + filename + ".dat") ){
2559
					if ( datFile.Rename(m_sCurrentDir + "/" + filename + ".dat") ){