| 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") ){
|