/// <summary> /// Apply patches. /// </summary> /// <param name="symbols">Symbols</param> /// <param name="options">Options</param> public void Apply(Symbols symbols, AsmOptionsGameplay options) { // Write patch data to existing MMFiles WriteToROM(symbols); // For our custom data, create and insert our own MMFile var file = CreateMMFile(symbols); RomUtils.AppendFile(file); // Encode Symbols into a special MMFile and insert that too var symbolsFile = symbols.CreateMMFile(); RomUtils.AppendFile(symbolsFile); // Write subset of configuration (hardcoded into patch) symbols.ApplyConfiguration(options); }
/// <summary> /// Apply configuration which will be hardcoded into the patch file. /// </summary> /// <param name="options">Options</param> public void ApplyConfiguration(AsmOptionsGameplay options) { this.WriteMiscConfig(options.MiscConfig); }
/// <summary> /// Apply and write patch data. /// </summary> /// <param name="options">Options</param> public void ApplyPatch(AsmOptionsGameplay options) { this.Patcher.Apply(this.Symbols, options); this.ExtraMessages = this.Symbols.CreateInitialExtMessageTable(); this.MimicTable = this.Symbols.CreateMimicItemTable(); }
/// <summary> /// Apply patches using <see cref="Symbols"/> loaded from the internal resource. /// </summary> /// <param name="options">Options</param> public void Apply(AsmOptionsGameplay options) { Apply(Symbols.Load(), options); }