public static void ReadRom(BackgroundWorker worker, byte[] rawData, MarioKart64ReaderResults finalResults) { CourseReaderResults results = new CourseReaderResults(); CourseDataReferenceBlock courseBlock; if (!RomProject.Instance.Files[0].HasElementExactlyAt(MarioKartRomInfo.CourseReferenceDataTableLocation)) { ProgressService.SetMessage("Loading Course Resources"); byte[] refBlock = new byte[0x13 * 0x30]; Array.Copy(rawData, MarioKartRomInfo.CourseReferenceDataTableLocation, refBlock, 0, 0x13 * 0x30); courseBlock = new CourseDataReferenceBlock(MarioKartRomInfo.CourseReferenceDataTableLocation, refBlock); //RomProject.Instance.Files[0].AddElement(block); results.NewElements.Add(courseBlock); } else { courseBlock = (CourseDataReferenceBlock)RomProject.Instance.Files[0].GetElementAt(MarioKartRomInfo.CourseReferenceDataTableLocation); } results.CourseDataBlock = courseBlock; //MarioKart64ElementHub.Instance.CourseDataBlock = courseBlock; finalResults.CourseResults = results; }
public static void ApplyResults(CourseReaderResults results) { foreach (N64DataElement element in results.NewElements) { RomProject.Instance.Files[0].AddElement(element); } MarioKart64ElementHub.Instance.CourseDataBlock = results.CourseDataBlock; }