public static void PokePatch(string originalMap, string patchPath) { XboxDebugCommunicator debugCommunicator = new XboxDebugCommunicator(AppSettings.Settings.IP_and_XDK_Name); if (!debugCommunicator.Connected) { try { debugCommunicator.Connect(); } catch { } } XboxMemoryStream xboxMemoryStream = debugCommunicator.ReturnXboxMemoryStream(); debugCommunicator.Disconnect(); HaloReach3d.IO.EndianIO endianIo = new HaloReach3d.IO.EndianIO((Stream)xboxMemoryStream, HaloReach3d.IO.EndianType.BigEndian); endianIo.Open(); HaloMap haloMap = new HaloMap(originalMap); haloMap.ReloadMap(); int mapMagic = haloMap.Map_Header.mapMagic; haloMap.CloseIO(); BinaryReader binaryReader = new BinaryReader((Stream) new FileStream(patchPath, FileMode.Open, FileAccess.Read)); try { while (binaryReader.BaseStream.Position != binaryReader.BaseStream.Length - 8L) { int num = binaryReader.ReadInt32(); int count = binaryReader.ReadInt32(); endianIo.Out.BaseStream.Position = (long)(num + mapMagic); endianIo.Out.Write(binaryReader.ReadBytes(count)); } } catch { } binaryReader.Close(); endianIo.Close(); xboxMemoryStream.Close(); }