public bool HandleMemoryCommand(MemoryCommand memory) { var maps = App.AssemblyStorage.AssemblyNetworkPoke.Maps; foreach (var map in maps) { var cacheFile = map.Item1; var rteProvider = map.Item2; if (memory.BuildName == cacheFile.BuildString && memory.CacheName == cacheFile.InternalName) { using (var metaStream = rteProvider.GetMetaStream(cacheFile)) { if (metaStream != null) { foreach (var action in memory.Actions) { if (cacheFile.MetaArea.ContainsBlockPointer(action.Position, action.Buffer.Length)) { metaStream.SeekTo(action.Position); metaStream.WriteBlock(action.Buffer); } } } return(true); } } } return(false); }
public static PokeCommand DeserializeCommand(Stream stream) { var commandType = (PokeCommandType)stream.ReadByte(); PokeCommand command; switch (commandType) { case PokeCommandType.Memory: command = new MemoryCommand(); break; case PokeCommandType.End: return(null); default: throw new NotImplementedException("Received an unsupported group poke command. It's possible this command came from a newer version of Assembly."); } command.Deserialize(stream); return(command); }
public void SendMemoryCommand(MemoryCommand memory) { _client.SendCommand(memory); }
public void SendMemoryCommand(MemoryCommand memory) { _server.SendCommandToAll(memory); memory.Handle(_handler); }