CASCExplorer.CASCHandler.OpenFile C# (CSharp) Method

OpenFile() public method

public OpenFile ( int fileDataId ) : Stream
fileDataId int
return Stream
        public override Stream OpenFile(int fileDataId)
        {
            WowRootHandler rh = Root as WowRootHandler;

            if (rh != null)
                return OpenFile(rh.GetHashByFileDataId(fileDataId));

            if (CASCConfig.ThrowOnFileNotFound)
                throw new FileNotFoundException("FileData: " + fileDataId.ToString());
            return null;
        }

Same methods

CASCHandler::OpenFile ( string name ) : Stream
CASCHandler::OpenFile ( ulong hash ) : Stream

Usage Example

Example #1
0
        public void LoadFileDataComplete(CASCHandler casc)
        {
            if (!casc.FileExists("DBFilesClient\\FileDataComplete.db2"))
            {
                return;
            }

            Logger.WriteLine("WowRootHandler: loading file names from FileDataComplete.db2...");

            using (var s = casc.OpenFile("DBFilesClient\\FileDataComplete.db2"))
            {
                WDC1Reader fd = new WDC1Reader(s);

                Jenkins96 hasher = new Jenkins96();

                foreach (var row in fd)
                {
                    string path = row.Value.GetField <string>(0);
                    string name = row.Value.GetField <string>(1);

                    string fullname = path + name;

                    ulong fileHash = hasher.ComputeHash(fullname);

                    // skip invalid names
                    if (!casc.FileExists(fileHash))
                    {
                        //Logger.WriteLine("Invalid file name: {0}", fullname);
                        continue;
                    }

                    CASCFile.Files[fileHash] = new CASCFile(fileHash, fullname);
                }
            }
        }
All Usage Examples Of CASCExplorer.CASCHandler::OpenFile