private void MarkMany(MarkCommand.MarkManyProperty markProperty, int markStart, object markValue, int markCount) { var snesApi = Project.Data.GetSnesApi(); if (snesApi == null) { return; } var newNavigatedOffset = markProperty switch { MarkCommand.MarkManyProperty.Flag => snesApi.MarkTypeFlag(markStart, (FlagType)markValue, markCount), MarkCommand.MarkManyProperty.DataBank => snesApi.MarkDataBank(markStart, (int)markValue, markCount), MarkCommand.MarkManyProperty.DirectPage => snesApi.MarkDirectPage(markStart, (int)markValue, markCount), MarkCommand.MarkManyProperty.MFlag => snesApi.MarkMFlag(markStart, (bool)markValue, markCount), MarkCommand.MarkManyProperty.XFlag => snesApi.MarkXFlag(markStart, (bool)markValue, markCount), MarkCommand.MarkManyProperty.CpuArch => snesApi.MarkArchitecture(markStart, (Architecture)markValue, markCount), _ => - 1 }; ProjectController.MarkChanged(); if (moveWithStep && newNavigatedOffset != -1) { SelectOffset(newNavigatedOffset, new ISnesNavigation.HistoryArgs { Description = "Mark (multi)" }); } }
public MarkCommand PromptMarkMany(int offset, MarkCommand.MarkManyProperty property) { var markManyController = CreateMarkManyController(offset, property); var markCommand = markManyController.GetMarkCommand(); if (markCommand != null) { SavedMarkManySettings = markManyController.Settings; } return(markCommand); }
public MarkManyController(int offset, MarkCommand.MarkManyProperty initialProperty, TDataSource data, IMarkManyView <TDataSource> view) { Data = data; MarkManyView = view; MarkManyView.Controller = this; DataRange = new CorrectingRange(Data.GetRomSize()); DataRange.StartIndex = offset; DataRange.RangeCount = Math.Min( DesiredStartingCount, DataRange.MaxCount - DataRange.StartIndex ); MarkManyView.Property = initialProperty; }
private void MarkMany(int offset, MarkCommand.MarkManyProperty property) { if (!RomDataPresent()) { return; } var mark = PromptMarkMany(offset, property); if (mark == null) { return; } MarkMany(mark.Property, mark.Start, mark.Value, mark.Count); UpdateSomeUI2(); }