Ejemplo n.º 1
0
unsigned CArchiveBase::FindFile(const std::string& name) const
{
	const std::string fileName = StringToLower(name);
	std::map<std::string, unsigned>::const_iterator it = lcNameIndex.find(fileName);
	if (it != lcNameIndex.end())
		return it->second;
	else
		return NumFiles();
}
Ejemplo n.º 2
0
unsigned int IArchive::FindFile(const std::string& filePath) const
{
	const std::string normalizedFilePath = StringToLower(filePath);
	const std::map<std::string, unsigned int>::const_iterator it = lcNameIndex.find(normalizedFilePath);
	if (it != lcNameIndex.end()) {
		return it->second;
	} else {
		return NumFiles();
	}
}
Ejemplo n.º 3
0
unsigned int IArchive::FindFile(const std::string& filePath) const
{
	const std::string& normalizedFilePath = StringToLower(filePath);
	const auto it = lcNameIndex.find(normalizedFilePath);

	if (it != lcNameIndex.end())
		return it->second;

	return NumFiles();
}
Ejemplo n.º 4
0
bool CArchiveBase::GetFile(const std::string& name, std::vector<boost::uint8_t>& buffer)
{
	unsigned fid = FindFile(name);
	if (fid < NumFiles())
	{
		GetFile(fid, buffer);
		return true;
	}
	else
		return false;
}
Ejemplo n.º 5
0
bool IArchive::GetFile(const std::string& name, std::vector<boost::uint8_t>& buffer)
{
	const unsigned int fid = FindFile(name);
	const bool found = (fid < NumFiles());

	if (found) {
		GetFile(fid, buffer);
		return true;
	}

	return found;
}
Ejemplo n.º 6
0
void CArchiveDir::FileInfo(unsigned fid, std::string& name, int& size) const
{
	assert(fid >= 0 && fid < NumFiles());

	name = searchFiles[fid];
	const std::string rawpath = filesystem.LocateFile(archiveName+name);
	std::ifstream ifs(rawpath.c_str(), std::ios::in | std::ios::binary);
	if (!ifs.bad() && ifs.is_open())
	{
		ifs.seekg(0, std::ios_base::end);
		size = ifs.tellg();
	}
	else
		size = 0;
}
Ejemplo n.º 7
0
bool CArchiveDir::GetFile(unsigned fid, std::vector<boost::uint8_t>& buffer)
{
	assert(fid >= 0 && fid < NumFiles());

	const std::string rawpath = filesystem.LocateFile(archiveName+searchFiles[fid]);
	std::ifstream ifs(rawpath.c_str(), std::ios::in | std::ios::binary);
	if (!ifs.bad() && ifs.is_open())
	{
		ifs.seekg(0, std::ios_base::end);
		buffer.resize(ifs.tellg());
		ifs.seekg(0, std::ios_base::beg);
		ifs.clear();
		ifs.read((char*)&buffer[0], buffer.size());
		return true;
	}
	else
		return false;
}