示例#1
0
int handleGameAssets( ehttp &obj, void * cookie )
{
	string requestedFile = obj.getFilename();
	string requestedPath = requestedFile.substr(8);
	requestedPath = str_replaceallA(requestedPath,"/","\\");
	string filePath = SETTINGS::getInstance().getDataPath() + requestedPath;

	if(FileExists(filePath) && FileExt(filePath) == "dds")
	{
		
		BYTE * bytes;
		long len;
		if( filePath.find("bg.dds") != string::npos || filePath.find("box.dds") != string::npos ||
			filePath.find("screenshot") != string::npos)
			ConvertImageFileToBMPBuffer(filePath, &bytes, &len);
		else
			ConvertImageFromFileToPNGBuffer(filePath, &bytes, &len);

		DebugMsg("HTTPServer","Sending %s",filePath.c_str());
		obj.out_set_file(bytes, len, EHTTP_MEMORY_FILE);
	}

	return EHTTP_ERR_OK;
}
示例#2
0
文件: PathUtils.cpp 项目: 1ldk/mpc-hc
 bool IsLinkFile(LPCTSTR path)
 {
     return !FileExt(path).CompareNoCase(_T(".lnk"));
 }
示例#3
0
void SkinManager::getSkinList()
{
	/* Finding Skin.xzp files for processing. */
	WIN32_FIND_DATA findFileData;
	memset(&findFileData,0,sizeof(WIN32_FIND_DATA));
	string searchcmd;
		/* Now finding and validating skin folders*/
	searchcmd = m_BaseSkinPath + "*";
	searchcmd = str_replaceallA(searchcmd,"\\\\","\\");
	DebugMsg("SkinManager","Scanning %s for skins",searchcmd.c_str());

	HANDLE hFind = FindFirstFile(searchcmd.c_str(), &findFileData);
	if (hFind != INVALID_HANDLE_VALUE)
	{
		do {
			//DebugMsg("Confirming Skin", m_BaseSkinPath.c_str(), findFileData.cFileName);
			string searchxur = sprintfaA("%s%s\\skin.xur", m_BaseSkinPath.c_str(), findFileData.cFileName);
			if (FileExists(searchxur))
			{
				skinitem AddSkin;
				string szExecutablePath = ParseExecutablePath(DrivesManager::getInstance().getExecutablePath()) + "\\";
				szExecutablePath = str_replaceallA(m_BaseSkinPath, "game:\\", szExecutablePath);
				szExecutablePath = str_replaceallA(szExecutablePath, "\\\\", "\\");
				AddSkin.SkinPath = sprintfaA("%s%s\\", m_BaseSkinPath.c_str() , findFileData.cFileName);
				AddSkin.xmlpath = sprintfaA("%s%s\\", m_BaseSkinPath.c_str() , findFileData.cFileName);
				AddSkin.FullSkinPath = make_lowercaseA(sprintfaA("%s%s", szExecutablePath.c_str(), findFileData.cFileName)) + "\\";
				AddSkin.PreviewPath = sprintfaA("file://%s%s\\preview.png", m_BaseSkinPath.c_str() , findFileData.cFileName);
				AddSkin.IconPath = sprintfaA("file://%s%s\\devIcon.png", m_BaseSkinPath.c_str() , findFileData.cFileName);
				AddSkin.SkinFileName = findFileData.cFileName;
				AddSkin.isCompressed = false;
				ReadSkinSettings(&AddSkin);
				if (AddSkin.SkinName == "")
				{
					AddSkin.SkinName = findFileData.cFileName;
				}
				m_skinList[AddSkin.SkinFileName] = AddSkin;

			} else if (FileExt(findFileData.cFileName) == "xzp")
			{
				skinitem AddSkin;
				string szExecutablePath = ParseExecutablePath(DrivesManager::getInstance().getExecutablePath()) + "\\";
				szExecutablePath = str_replaceallA(m_BaseSkinPath, "game:\\", szExecutablePath);
				szExecutablePath = str_replaceallA(szExecutablePath, "\\\\", "\\");
				AddSkin.SkinPath = sprintfaA("%s", m_BaseSkinPath.c_str());
				AddSkin.SkinFileName = sprintfaA("%s", findFileData.cFileName);
				AddSkin.XZPPath = sprintfaA("%s%s#", m_BaseSkinPath.c_str(), findFileData.cFileName);
				AddSkin.FullSkinPath = make_lowercaseA(sprintfaA("%s%s", szExecutablePath.c_str(), findFileData.cFileName));
				AddSkin.xmlpath = sprintfaA("%sSkins\\%s\\", SETTINGS::getInstance().getDataPath().c_str(), findFileData.cFileName);
				AddSkin.PreviewPath = sprintfaA("file://%s%s#preview.png", m_BaseSkinPath.c_str(), findFileData.cFileName);
				AddSkin.IconPath = sprintfaA("file://%s%s#devIcon.png", m_BaseSkinPath.c_str(), findFileData.cFileName);
				AddSkin.isCompressed = true;
				ExtractSkinInfo(&AddSkin);
				ReadSkinSettings(&AddSkin);
				if (AddSkin.SkinName == "")
				{
					string skinName = findFileData.cFileName;
					skinName = TrimRightStr(skinName, ".xzp");
					skinName = skinName + " Compressed";
					AddSkin.SkinName = skinName;
				}
				m_skinList[AddSkin.SkinFileName] = AddSkin;
			}
		} while (FindNextFile(hFind, &findFileData));
		FindClose(hFind);
	}
	//DebugMsg("SkinManager","Finished listing skin");
}