private ComboRecipe ImportComboRecipe(int slotNr) { if (Directory.Exists(Path.GetFullPath(AppDomain.CurrentDomain.BaseDirectory + "\\Recipes"))) { Directory.CreateDirectory(Path.GetFullPath(AppDomain.CurrentDomain.BaseDirectory + "\\Recipes")); } var ofd = new OpenFileDialog { Filter = "Guilty Gear Combo Recipe|*.ggcr", InitialDirectory = Path.GetFullPath(AppDomain.CurrentDomain.BaseDirectory + "\\Recipes") }; if (ofd.ShowDialog() == DialogResult.OK) { var data = File.ReadAllBytes(ofd.FileName); if (data.Length != ComboRecipe.SLOT_DATA_SIZE) { MessageBox.Show("Invalid size for GGCR file"); return(null); } var recipe = new ComboRecipe(data); ComboRecipeManager.WriteRecipe(recipe, slotNr); return(recipe); } return(null); }
public static ComboRecipe[] ReadComboRecipes() { var comboRecipeData = ProcessMemoryManager.ReadProcessMemory(PROCESS_NAME, SLOT1_OFFSET_POINTER, SLOT_DATA_SIZE * 5, true); var combo1 = new ComboRecipe(comboRecipeData, 0); var combo2 = new ComboRecipe(comboRecipeData, 1); var combo3 = new ComboRecipe(comboRecipeData, 2); var combo4 = new ComboRecipe(comboRecipeData, 3); var combo5 = new ComboRecipe(comboRecipeData, 4); return(new[] { combo1, combo2, combo3, combo4, combo5 }); }
public static void WriteRecipe(ComboRecipe recipe, int slotNr = 0) { var data = recipe.ToRecipeData(); ProcessMemoryManager.WriteProcessMemory(PROCESS_NAME, SLOT1_OFFSET_POINTER, data, true, SLOT_DATA_SIZE * slotNr); }