Subversion Repositories spk

Rev

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

Rev 127 Rev 129
Line 197... Line 197...
197
			if ( f->IsFakePatch() ) continue;
197
			if ( f->IsFakePatch() ) continue;
198
			if ( f->CheckFileExt("cat") ) break;
198
			if ( f->CheckFileExt("cat") ) break;
199
		}
199
		}
200
 
200
 
201
		if ( f )
201
		if ( f )
202
			m_pGameVFS.LoadFilesystem(m_sCurrentDir.ToString(), f->GetFilePointer().ToString(), 0);
202
			m_pGameVFS.LoadFilesystem(m_sCurrentDir.ToString(), f->filePointer(), 0);
203
		else
203
		else
204
			m_pGameVFS.LoadFilesystem(m_sCurrentDir.ToString(), 0);
204
			m_pGameVFS.LoadFilesystem(m_sCurrentDir.ToString(), 0);
205
	}
205
	}
206
	else
206
	else
207
		m_pGameVFS.LoadFilesystem(m_sCurrentDir.ToString(), 0);
207
		m_pGameVFS.LoadFilesystem(m_sCurrentDir.ToString(), 0);
Line 1388... Line 1388...
1388
			// check if its already in the fake patch
1388
			// check if its already in the fake patch
1389
			if ( f->Data()->GetFullDir().IsIn("::") ) {
1389
			if ( f->Data()->GetFullDir().IsIn("::") ) {
1390
				continue;
1390
				continue;
1391
			}
1391
			}
1392
			Utils::String toFile;
1392
			Utils::String toFile;
1393
			if ( cat.AppendFile(f->Data()->GetFilePointer().ToString(), f->Data()->GetNameDirectory(pPackage).ToString(), true, (m_iGameFlags & EXEFLAG_NOXOR) ? false : true, &toFile) ) {
1393
			if ( cat.AppendFile(f->Data()->filePointer(), f->Data()->GetNameDirectory(pPackage).ToString(), true, (m_iGameFlags & EXEFLAG_NOXOR) ? false : true, &toFile) ) {
1394
				CLog::logf(CLog::Log_Install, 2, "Adding file: %s into the fake patch", f->Data()->GetNameDirectory(pPackage).c_str());
1394
				CLog::logf(CLog::Log_Install, 2, "Adding file: %s into the fake patch", f->Data()->GetNameDirectory(pPackage).c_str());
1395
				CFileIO::Remove(f->Data()->GetFilePointer().ToString());
1395
				CFileIO::Remove(f->Data()->filePointer());
1396
				f->Data()->SetFilename(m_sCurrentDir + "/PluginManager/PlugMan_Fake.cat::" + toFile);
1396
				f->Data()->SetFilename(m_sCurrentDir + "/PluginManager/PlugMan_Fake.cat::" + toFile);
1397
			}
1397
			}
1398
		}
1398
		}
1399
	}
1399
	}
1400
}
1400
}
Line 1574... Line 1574...
1574
						if ( catTo.open(findMatching->filePointer(), this->getAddonDir(), CATREAD_CATDECRYPT, false) == CATERR_NONE )
1574
						if ( catTo.open(findMatching->filePointer(), this->getAddonDir(), CATREAD_CATDECRYPT, false) == CATERR_NONE )
1575
						{
1575
						{
1576
							for (unsigned int i = 0; i < catFrom.GetNumFiles(); i++ )
1576
							for (unsigned int i = 0; i < catFrom.GetNumFiles(); i++ )
1577
							{
1577
							{
1578
								SInCatFile *c = catFrom.GetFile(i);								 
1578
								SInCatFile *c = catFrom.GetFile(i);								 
1579
								catTo.AppendFile(f->Data()->GetFilePointer().ToString() + "::" + c->sFile, c->sFile);
1579
								catTo.AppendFile(f->Data()->filePointer() + "::" + c->sFile, c->sFile);
1580
							}
1580
							}
1581
						}
1581
						}
1582
					}
1582
					}
1583
 
1583
 
1584
					// now remove the files
1584
					// now remove the files
Line 7471... Line 7471...
7471
	}
7471
	}
7472
 
7472
 
7473
	return NULL;
7473
	return NULL;
7474
}
7474
}
7475
 
7475
 
-
 
7476
bool CPackages::extractAll(CBaseFile *baseFile, const Utils::String &dir, int game, bool includedir, CProgressInfo *progress) const
-
 
7477
{
-
 
7478
	if (!baseFile)
-
 
7479
		return false;
-
 
7480
 
-
 
7481
	Utils::CStringList gameAddons;
-
 
7482
	for (unsigned int i = 0; i < m_gameExe.gameCount(); ++i)
-
 
7483
	{
-
 
7484
		SGameExe *exe = m_gameExe.GetGame(i);
-
 
7485
		if (!exe->sAddon.empty())
-
 
7486
			gameAddons.pushBack(Utils::String::Number(i + 1), exe->sAddon);
-
 
7487
	}
-
 
7488
 
-
 
7489
	return baseFile->extractAll(dir, game, gameAddons, includedir, progress);
-
 
7490
}
-
 
7491
 
7476
bool CPackages::generatePackagerScript(CBaseFile *baseFile, bool wildcard, Utils::CStringList *list, int game, bool datafile) const
7492
bool CPackages::generatePackagerScript(CBaseFile *baseFile, bool wildcard, Utils::CStringList *list, int game, bool datafile) const
7477
{	
7493
{	
7478
	if (!baseFile)
7494
	if (!baseFile)
7479
		return false;
7495
		return false;
7480
 
7496
 
Line 7812... Line 7828...
7812
		if ( !f.ReadFromFile() )
7828
		if ( !f.ReadFromFile() )
7813
			return false;
7829
			return false;
7814
		f.UnPCKFile();
7830
		f.UnPCKFile();
7815
 
7831
 
7816
		f.SetFilename(m_sTempDir + "/tships.txt");
7832
		f.SetFilename(m_sTempDir + "/tships.txt");
7817
		if ( !f.WriteFilePointer() )
7833
		if ( !f.writeFilePointer() )
7818
			return false;
7834
			return false;
7819
 
7835
 
7820
		File.open(m_sTempDir + "/tships.txt");
7836
		File.open(m_sTempDir + "/tships.txt");
7821
		deleteFile = true;
7837
		deleteFile = true;
7822
	}
7838
	}
Line 7949... Line 7965...
7949
		if ( !f.ReadFromFile() )
7965
		if ( !f.ReadFromFile() )
7950
			return false;
7966
			return false;
7951
		f.UnPCKFile();
7967
		f.UnPCKFile();
7952
 
7968
 
7953
		f.SetFilename(m_sTempDir + "/textfile.xml");
7969
		f.SetFilename(m_sTempDir + "/textfile.xml");
7954
		if ( !f.WriteFilePointer() )
7970
		if ( !f.writeFilePointer() )
7955
			return false;
7971
			return false;
7956
 
7972
 
7957
		File.open(m_sTempDir + "/textfile.xml");
7973
		File.open(m_sTempDir + "/textfile.xml");
7958
		deleteFile = true;
7974
		deleteFile = true;
7959
	}
7975
	}
Line 8372... Line 8388...
8372
	}
8388
	}
8373
	
8389
	
8374
	for ( CListNode<C_File> *fNode = newFile->GetFileList()->Front(); fNode; fNode = fNode->next() )
8390
	for ( CListNode<C_File> *fNode = newFile->GetFileList()->Front(); fNode; fNode = fNode->next() )
8375
	{
8391
	{
8376
		C_File *f = fNode->Data();
8392
		C_File *f = fNode->Data();
8377
		CFileIO::Remove(f->GetFilePointer().ToString());
8393
		CFileIO::Remove(f->filePointer());
8378
		f->SetFullDir("");
8394
		f->SetFullDir("");
8379
	}
8395
	}
8380
 
8396
 
8381
	return count;
8397
	return count;
8382
}
8398
}