public static void FillMovieFromBuffer(byte[] buffer, MadTVMovie movie = null) { if (movie == null) { movie = new MadTVMovie(); } movie.Genre = buffer[0]; movie.Pause = buffer[2]; movie.Blocks = buffer[4]; var gradeTemp = (int)buffer[6]; if (gradeTemp >= 64) { movie.Auction = true; gradeTemp = gradeTemp - 64; } movie.Quality = gradeTemp - 31; movie.XRated = (buffer[7] == 8); movie.Country = buffer[19]; movie.Year = buffer[20]; movie.Critics = buffer[21]; movie.Box = buffer[22]; }
//nameFilePath = "SOURCE1.RSC" //namesEntryPoint = 478040 //valuesFilePath = "SOURCE1.RSC" //valuesEntryPoint = 439856 public void ImportMovies(string nameFilePath, int namesEntryPoint, string valuesFilePath, int valuesEntryPoint) { List <MadTVMovie> result = new List <MadTVMovie>(); using (FileStream file = new FileStream(nameFilePath, FileMode.Open, FileAccess.Read)) { var positionIndex = namesEntryPoint; file.Position = positionIndex; byte[] buffer = new byte[200]; file.Read(buffer, 0, buffer.Length); while (true) { var encoding = GetMadTVEncoding(); var movie = new MadTVMovie(); var titleLength = (int)buffer[0]; movie.Title = encoding.GetString(buffer.SubArray(1, titleLength)); var descLength = (int)buffer[titleLength + 1]; movie.Description = encoding.GetString(buffer.SubArray(titleLength + 2, descLength)); if (movie.Title.Contains("~") || movie.Description.Contains("~")) { break; } result.Add(movie); positionIndex = positionIndex + movie.Title.Length + movie.Description.Length + 2; file.Position = positionIndex; file.Read(buffer, 0, buffer.Length); } } using (FileStream file = new FileStream(valuesFilePath, FileMode.Open, FileAccess.Read)) { file.Position = valuesEntryPoint; byte[] buffer = new byte[23]; file.Read(buffer, 0, buffer.Length); int index = 0; while (MadTVMovieImporter.ValidBuffer(buffer)) { if (result.Count <= index) { break; } var currentMovie = result[index]; MadTVMovieImporter.FillMovieFromBuffer(buffer, currentMovie); file.Read(buffer, 0, buffer.Length); index++; } } var kul = result.FirstOrDefault(x => x.Title.StartsWith("Im ")); }