private string loadDbgQBFile(string qbFilename)
{
string dbgFilename = qbFilename.Replace(string.Format(".qb.{0}", _pakFormat.FileExtension), string.Format(".{0}", _pakFormat.QbDebugExtension));
string key = null;
try
{
if (_dbgFile != null)
{
if (_dbgFile.Headers.ContainsKey(dbgFilename.ToLower()))
key = dbgFilename.ToLower();
else
{
dbgFilename = qbFilename.Replace(string.Format(".qb.{0}", _pakFormat.FileExtension), string.Format(".{0}.{1}", _pakFormat.QbDebugExtension, _pakFormat.FileExtension));
if (_dbgFile.Headers.ContainsKey(dbgFilename.ToLower()))
key = dbgFilename.ToLower();
else
{
//use the qb pak headers to lookup the debugQbKeys.
//the debug pak has QBKeys as the keys instead of filenames
foreach (PakHeaderItem phi in _pakFile.Headers.Values)
{
if (phi.Filename.ToLower() == qbFilename)
{
key = phi.DebugQbKey.ToString("X").PadLeft(8, '0').ToLower();
break;
}
}
}
}
if (key != null && _dbgFile != null && _dbgFile.Headers.ContainsKey(key))
return _dbgFile.ExtractFileToString(key);
}
}
catch
{
}
return string.Empty;
}