/// <summary> /// Load a text resource file. /// </summary> public void Load(string arena2Path, string filename, FileUsage usage = FileUsage.UseMemory, bool readOnly = true) { // Check text resource file is supported if (filename != Filename) { throw new Exception(string.Format("TextFile: File '{0}' is not a supported text file.", filename)); } // Setup new file header = new TextRecordDatabaseHeader(); recordIdToIndexDict.Clear(); isLoaded = false; // Load file fileProxy = new FileProxy(Path.Combine(arena2Path, filename), usage, readOnly); // Read file BinaryReader reader = fileProxy.GetReader(); ReadHeader(reader); ReadTextRecordHeaders(reader); // Raise loaded flag isLoaded = true; }
/// <summary> /// Loads a text resource file from raw bytes. /// Binary data must still match expected format. /// </summary> /// <param name="data">Binary data of RSC file.</param> /// <param name="filename">Custom filename. Does not have to match standard TEXT.RSC filename.</param> public void Load(byte[] data, string filename) { // Setup new file header = new TextRecordDatabaseHeader(); recordIdToIndexDict.Clear(); isLoaded = false; // Load file from bytes fileProxy = new FileProxy(data, filename); // Read file BinaryReader reader = fileProxy.GetReader(); ReadHeader(reader); ReadTextRecordHeaders(reader); // Raise loaded flag isLoaded = true; }