/// <summary> /// Create an instance that maps a game file to a local path /// </summary> /// <param name="gameName">Game path and filename</param> /// <param name="localName">Local disk path and filename</param> /// <param name="type">Type of file</param> /// <param name="isNew">true=import this file, false do not import this file, allow export</param> internal GameFile(string gameName, string localName, GameFileType type, bool isNew) { this.Type = type; this.GameName = gameName; this.LocalName = localName; if (isNew) this.LocalDateTime = DateTime.MinValue; // this will cause Changed to return true else this.UpdateLocalDateTime(); }
private void InferFileType() { switch (_gameFile?.Root?.Name.LocalName) { case "asl": Type = GameFileType.Game; break; case "library": Type = GameFileType.Library; break; } }
public GameFile(RpfFileEntry entry, GameFileType type) { RpfFileEntry = entry; Type = type; MemoryUsage = (entry != null) ? entry.GetFileSize() : 0; if (entry is RpfResourceFileEntry) { var resent = entry as RpfResourceFileEntry; var newuse = resent.SystemSize + resent.GraphicsSize; MemoryUsage = newuse; } else if (entry is RpfBinaryFileEntry) { var binent = entry as RpfBinaryFileEntry; var newuse = binent.FileUncompressedSize; if (newuse > MemoryUsage) { MemoryUsage = newuse; } } else { } }
public void RemoveFiles(GameFileType type) { string[] keys = new string[_files.Count]; _files.Keys.CopyTo(keys, 0); foreach (string k in keys) { if (_files[k].Type == type) _files.Remove(k); } }
public void RemoveAndDeleteFiles(GameFileType type) { string[] keys = new string[_files.Count]; _files.Keys.CopyTo(keys, 0); foreach (string k in keys) { if (_files[k].Type == type) { //#if (!DEBUG) //don't delete the game files FileHelper.Delete(_files[k].LocalName); //#endif _files.Remove(k); } } }
/// <summary> /// /// </summary> /// <param name="gameFileType"></param> /// <param name="callback"></param> /// <param name="gameFilenames"></param> /// <returns>Imported gamefiles.</returns> public GameFile[] Import(GameFileType gameFileType, FileCopyProgress callback, params string[] gameFilenames) { List<GameFile> gfs = new List<GameFile>(); foreach (string s in gameFilenames) gfs.Add(new GameFile(s, localGameFilename(s), gameFileType)); GameFile[] gf = gfs.ToArray(); Import(gf, callback); return gf; }
public GameFileCacheKey(uint hash, GameFileType type) { Hash = hash; Type = type; }
/// <summary> /// Create an instance that maps a game file to a local path /// </summary> /// <param name="gameName">Game path and filename</param> /// <param name="localName">Local disk path and filename</param> /// <param name="type">Type of file</param> internal GameFile(string gameName, string localName, GameFileType type) : this(gameName, localName, type, false) { }
public bool IsMatch(GameFileType typee) { return(Type == typee); }
public GameFile(string path, GameFileType fileType) { this.path = path; this.fileType = fileType; }