diff --git a/src/HexManiac.Core/Core/Autos/StubDataModel.cs b/src/HexManiac.Core/Core/Autos/StubDataModel.cs index 3c4169a6..4b74d27f 100644 --- a/src/HexManiac.Core/Core/Autos/StubDataModel.cs +++ b/src/HexManiac.Core/Core/Autos/StubDataModel.cs @@ -23,7 +23,7 @@ namespace HavenSoft.HexManiac.Core.Models } public Action ResetChanges { get; set; } - + void IDataModel.ResetChanges() { if (this.ResetChanges != null) @@ -31,7 +31,9 @@ namespace HavenSoft.HexManiac.Core.Models this.ResetChanges(); } } - + + public bool SpartanMode { get; set; } + public delegate System.Collections.Generic.IEnumerable AllDelegate_() where T : Runs.IFormattedRun; private readonly Dictionary AllDelegates_ = new Dictionary(new EnumerableEqualityComparer()); public void ImplementAll(AllDelegate_ implementation) where T : Runs.IFormattedRun diff --git a/src/HexManiac.Core/Core/Autos/StubTabContent.cs b/src/HexManiac.Core/Core/Autos/StubTabContent.cs index b05deca1..b05070e4 100644 --- a/src/HexManiac.Core/Core/Autos/StubTabContent.cs +++ b/src/HexManiac.Core/Core/Autos/StubTabContent.cs @@ -50,6 +50,9 @@ namespace HavenSoft.HexManiac.Core.ViewModels return this.Name.get(); } } + + public bool SpartanMode { get; set; } + public PropertyImplementation IsMetadataOnlyChange = new PropertyImplementation(); bool ITabContent.IsMetadataOnlyChange diff --git a/src/HexManiac.Core/Core/Autos/StubViewPort.cs b/src/HexManiac.Core/Core/Autos/StubViewPort.cs index bc3c737f..96ed5671 100644 --- a/src/HexManiac.Core/Core/Autos/StubViewPort.cs +++ b/src/HexManiac.Core/Core/Autos/StubViewPort.cs @@ -150,7 +150,9 @@ namespace HavenSoft.HexManiac.Core.ViewModels } } public PropertyImplementation Width = new PropertyImplementation(); - + + public bool SpartanMode { get; set; } + int IViewPort.Width { get diff --git a/src/HexManiac.Core/Models/IDataModel.cs b/src/HexManiac.Core/Models/IDataModel.cs index e6fd9cd7..52d27e84 100644 --- a/src/HexManiac.Core/Models/IDataModel.cs +++ b/src/HexManiac.Core/Models/IDataModel.cs @@ -20,6 +20,7 @@ namespace HavenSoft.HexManiac.Core.Models { byte[] RawData { get; } ModelCacheScope CurrentCacheScope { get; } + bool SpartanMode { get; set; } bool HasChanged(int index); int ChangeCount { get; } void ResetChanges(); @@ -177,6 +178,8 @@ namespace HavenSoft.HexManiac.Core.Models { } } + public bool SpartanMode { get; set; } + public bool HasChanged(int index) => changes.Contains(index); public int ChangeCount => changes.Count; public void ResetChanges() => changes.Clear(); diff --git a/src/HexManiac.Core/Models/Runs/Sprites/LzSpriteRun.cs b/src/HexManiac.Core/Models/Runs/Sprites/LzSpriteRun.cs index c166bf03..fe47e06f 100644 --- a/src/HexManiac.Core/Models/Runs/Sprites/LzSpriteRun.cs +++ b/src/HexManiac.Core/Models/Runs/Sprites/LzSpriteRun.cs @@ -54,7 +54,7 @@ namespace HavenSoft.HexManiac.Core.Models.Runs.Sprites { int lastFormatRequested = int.MaxValue; public override IDataFormat CreateDataFormat(IDataModel data, int index) { var basicFormat = base.CreateDataFormat(data, index); - if (!CreateForLeftEdge) return basicFormat; + if (!CreateForLeftEdge || data.SpartanMode) return basicFormat; if (lastFormatRequested < index) { lastFormatRequested = index; return basicFormat; diff --git a/src/HexManiac.Core/Models/Runs/Sprites/LzTilemapRun.cs b/src/HexManiac.Core/Models/Runs/Sprites/LzTilemapRun.cs index 5c3b5d79..5d8321e2 100644 --- a/src/HexManiac.Core/Models/Runs/Sprites/LzTilemapRun.cs +++ b/src/HexManiac.Core/Models/Runs/Sprites/LzTilemapRun.cs @@ -474,7 +474,7 @@ namespace HavenSoft.HexManiac.Core.Models.Runs.Sprites { int lastFormatRequested = int.MaxValue; public override IDataFormat CreateDataFormat(IDataModel data, int index) { var basicFormat = base.CreateDataFormat(data, index); - if (!CreateForLeftEdge) return basicFormat; + if (!CreateForLeftEdge || data.SpartanMode) return basicFormat; if (lastFormatRequested < index) { lastFormatRequested = index; return basicFormat; diff --git a/src/HexManiac.Core/Models/Runs/Sprites/LzTilesetRun.cs b/src/HexManiac.Core/Models/Runs/Sprites/LzTilesetRun.cs index 2a8b1c46..ca48ca67 100644 --- a/src/HexManiac.Core/Models/Runs/Sprites/LzTilesetRun.cs +++ b/src/HexManiac.Core/Models/Runs/Sprites/LzTilesetRun.cs @@ -122,7 +122,7 @@ namespace HavenSoft.HexManiac.Core.Models.Runs.Sprites { int lastFormatRequested = int.MaxValue; public override IDataFormat CreateDataFormat(IDataModel data, int index) { var basicFormat = base.CreateDataFormat(data, index); - if (!CreateForLeftEdge) return basicFormat; + if (!CreateForLeftEdge || data.SpartanMode) return basicFormat; if (lastFormatRequested < index) { lastFormatRequested = index; return basicFormat; diff --git a/src/HexManiac.Core/Models/Runs/Sprites/SpriteRun.cs b/src/HexManiac.Core/Models/Runs/Sprites/SpriteRun.cs index 84141c08..cac4b2d9 100644 --- a/src/HexManiac.Core/Models/Runs/Sprites/SpriteRun.cs +++ b/src/HexManiac.Core/Models/Runs/Sprites/SpriteRun.cs @@ -43,7 +43,7 @@ namespace HavenSoft.HexManiac.Core.Models.Runs.Sprites { int lastFormatRequested = int.MaxValue; public override IDataFormat CreateDataFormat(IDataModel data, int index) { var basicFormat = new LzUncompressed(index); - if (!CreateForLeftEdge) return basicFormat; + if (!CreateForLeftEdge || data.SpartanMode) return basicFormat; if (lastFormatRequested < index) { lastFormatRequested = index; return basicFormat; diff --git a/src/HexManiac.Core/Models/Runs/Sprites/TilemapRun.cs b/src/HexManiac.Core/Models/Runs/Sprites/TilemapRun.cs index 93527a67..79b00589 100644 --- a/src/HexManiac.Core/Models/Runs/Sprites/TilemapRun.cs +++ b/src/HexManiac.Core/Models/Runs/Sprites/TilemapRun.cs @@ -80,7 +80,7 @@ namespace HavenSoft.HexManiac.Core.Models.Runs.Sprites { int lastFormatRequested = int.MaxValue; public override IDataFormat CreateDataFormat(IDataModel data, int index) { var basicFormat = CreateDataFormatCore(data, index); - if (!CreateForLeftEdge) return basicFormat; + if (!CreateForLeftEdge || data.SpartanMode) return basicFormat; if (lastFormatRequested < index) { lastFormatRequested = index; return basicFormat; diff --git a/src/HexManiac.Core/ViewModels/ChildViewPort.cs b/src/HexManiac.Core/ViewModels/ChildViewPort.cs index 33afcbac..a0f25618 100644 --- a/src/HexManiac.Core/ViewModels/ChildViewPort.cs +++ b/src/HexManiac.Core/ViewModels/ChildViewPort.cs @@ -82,6 +82,8 @@ namespace HavenSoft.HexManiac.Core.ViewModels { public string FullFileName => this[0].FullFileName; + public bool SpartanMode { get; set; } + public int PreferredWidth { get => this[0].PreferredWidth; set => ForEach(child => child.PreferredWidth = value); } public int Width { get => this[0].Width; set => ForEach(child => child.Width = value); } public int Height { get => this[0].Height; set => this[0].Height = value; } diff --git a/src/HexManiac.Core/ViewModels/DexReorderTab.cs b/src/HexManiac.Core/ViewModels/DexReorderTab.cs index 191477c8..96055be3 100644 --- a/src/HexManiac.Core/ViewModels/DexReorderTab.cs +++ b/src/HexManiac.Core/ViewModels/DexReorderTab.cs @@ -24,6 +24,8 @@ namespace HavenSoft.HexManiac.Core.ViewModels { public string FullFileName { get; } + public bool SpartanMode { get; set; } + private string filter = string.Empty; public string Filter { get => filter; diff --git a/src/HexManiac.Core/ViewModels/DiffViewPort.cs b/src/HexManiac.Core/ViewModels/DiffViewPort.cs index cf9bb4df..5cd91eca 100644 --- a/src/HexManiac.Core/ViewModels/DiffViewPort.cs +++ b/src/HexManiac.Core/ViewModels/DiffViewPort.cs @@ -70,6 +70,8 @@ namespace HavenSoft.HexManiac.Core.ViewModels { public string FullFileName => Name; + public bool SpartanMode { get; set; } + public int Width { get => leftWidth + rightWidth + 1; set { } } private int height; diff --git a/src/HexManiac.Core/ViewModels/EditorViewModel.cs b/src/HexManiac.Core/ViewModels/EditorViewModel.cs index ea6d1afa..eefea18d 100644 --- a/src/HexManiac.Core/ViewModels/EditorViewModel.cs +++ b/src/HexManiac.Core/ViewModels/EditorViewModel.cs @@ -360,6 +360,19 @@ namespace HavenSoft.HexManiac.Core.ViewModels { } } + private bool spartanMode = false; + public bool SpartanMode { + get => spartanMode; + set { + Set(ref spartanMode, value, arg => { + foreach (var tab in tabs) { + tab.SpartanMode = spartanMode; + tab.Refresh(); + } + }); + } + } + private bool focusOnGotoShortcuts = true; public bool FocusOnGotoShortcuts { get => focusOnGotoShortcuts; @@ -562,6 +575,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { LogAppStartupProgress = metadata.Contains("LogAppStartupProgress = True"); UseTableEntryHeaders = !metadata.Contains("UseTableEntryHeaders = False"); AllowSingleTableMode = !metadata.Contains("AllowSingleTableMode = False"); + SpartanMode = metadata.Contains("SpartanMode = True"); InsertAutoActive = !metadata.Contains("InsertAutoActive = False"); ShowMatrix = !metadata.Contains("ShowMatrixGrid = False"); FocusOnGotoShortcuts = !metadata.Contains("FocusOnGotoShortcuts = False"); @@ -615,6 +629,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { $"LastUpdateCheck = {LastUpdateCheck}", $"AcknowledgeTutorials = {TutorialsAcknowledged}", $"Base10Length = {Base10Length}", + $"SpartanMode = {SpartanMode}", MapTutorials.Serialize(), SerializeRecentFiles(), string.Empty @@ -813,6 +828,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { } public void Add(ITabContent content) { + content.SpartanMode = spartanMode; tabs.Add(content); SelectedIndex = tabs.Count - 1; AddContentListeners(content); diff --git a/src/HexManiac.Core/ViewModels/ITabContent.cs b/src/HexManiac.Core/ViewModels/ITabContent.cs index 4767e422..b01a5917 100644 --- a/src/HexManiac.Core/ViewModels/ITabContent.cs +++ b/src/HexManiac.Core/ViewModels/ITabContent.cs @@ -1,7 +1,6 @@ using HavenSoft.HexManiac.Core.Models; using System; using System.ComponentModel; -using System.Threading.Tasks; using System.Windows.Input; namespace HavenSoft.HexManiac.Core.ViewModels { @@ -42,6 +41,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { event EventHandler RequestCreatePatch; event EventHandler RequestRefreshGotoShortcuts; + bool SpartanMode { get; set; } bool CanIpsPatchRight { get; } bool CanUpsPatchRight { get; } void IpsPatchRight(); diff --git a/src/HexManiac.Core/ViewModels/ImageEditorViewModel.cs b/src/HexManiac.Core/ViewModels/ImageEditorViewModel.cs index 231501d5..5799db10 100644 --- a/src/HexManiac.Core/ViewModels/ImageEditorViewModel.cs +++ b/src/HexManiac.Core/ViewModels/ImageEditorViewModel.cs @@ -39,6 +39,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { public string Name => "Image Editor"; public string FullFileName { get; } + public bool SpartanMode { get; set; } public bool IsMetadataOnlyChange => false; public ICommand Save { get; } public ICommand SaveAs => null; @@ -772,6 +773,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { } private void UpdateSelectionFromPaletteHover(PaletteCollection sender, PropertyChangedEventArgs e) { + if (SpartanMode) return; int paletteStart = ReadPalette().initialBlankPages * 16; paletteStart += PalettePage * 16; var matches = new List(); diff --git a/src/HexManiac.Core/ViewModels/Map/MapEditorViewModel.cs b/src/HexManiac.Core/ViewModels/Map/MapEditorViewModel.cs index 50d73556..a4f2dff3 100644 --- a/src/HexManiac.Core/ViewModels/Map/MapEditorViewModel.cs +++ b/src/HexManiac.Core/ViewModels/Map/MapEditorViewModel.cs @@ -198,6 +198,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Map { public string Name => (primaryMap?.FullName ?? "Map") + (history.HasDataChange ? "*" : string.Empty); public string FullFileName => viewPort.FullFileName; + public bool SpartanMode { get; set; } public bool IsMetadataOnlyChange => false; public ICommand Save => viewPort.Save; public ICommand SaveAs => viewPort.SaveAs; @@ -555,6 +556,16 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Map { private IEnumerable GetMapNeighbors(BlockMapViewModel map, int recursionLevel) { if (recursionLevel < 1) return new BlockMapViewModel[0]; + if (SpartanMode) { + // return only neighbors based on the current map position + var centerX = (map.LeftEdge + map.RightEdge) / 2; + var centerY = (map.TopEdge + map.BottomEdge) / 2; + if (centerX > 0 && map.LeftEdge > map.TopEdge && map.LeftEdge > -map.BottomEdge) return map.GetNeighbors(MapDirection.Left); + if (centerX < 0 && map.RightEdge < map.BottomEdge && map.RightEdge < -map.TopEdge) return map.GetNeighbors(MapDirection.Right); + if (centerY > 0) return map.GetNeighbors(MapDirection.Up); + if (centerY < 0) return map.GetNeighbors(MapDirection.Down); + return Enumerable.Empty(); + } var directions = new List { MapDirection.Up, MapDirection.Down, MapDirection.Left, MapDirection.Right, MapDirection.Dive, MapDirection.Emerge, }; @@ -574,14 +585,6 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Map { } } return newMaps.Values.ToList(); - - //var newMaps = new List(directions.SelectMany(map.GetNeighbors)); - //foreach (var m in newMaps) { - // yield return m; - // if (recursionLevel > 1 && m.ZIndex >= 0) { - // foreach (var mm in GetMapNeighbors(m, recursionLevel - 1)) yield return mm; - // } - //} } #region Map Interaction @@ -625,7 +628,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Map { var p = ToBoundedMapTilePosition(map, x, y, 1, 1); map.HoverPoint = ToPixelPosition(map, x, y); if (UpdateHover(map, p.X, p.Y, 1, 1)) { - if (interactionType == PrimaryInteractionType.None && map.EventUnderCursor(x, y, false) is BaseEventViewModel ev) { + if (!SpartanMode && interactionType == PrimaryInteractionType.None && map.EventUnderCursor(x, y, false) is BaseEventViewModel ev) { return ShowEventHover(map, ev); } else { return EmptyTooltip; @@ -672,9 +675,6 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Map { PrimaryMap.BorderEditor.ShowBorderPanel = false; (cursorX, cursorY) = (x, y); (deltaX, deltaY) = (0, 0); - - var map = MapUnderCursor(x, y); - if (map != null) UpdatePrimaryMap(map); } public void DragMove(double x, double y, bool isMiddleClickMap) { @@ -689,7 +689,10 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Map { if (isMiddleClickMap) Hover(x, y); } - public void DragUp(double x, double y) { } + public void DragUp(double x, double y) { + var map = MapUnderCursor(x, y); + if (map != null) UpdatePrimaryMap(map); + } #region Primary Interaction (left-click) diff --git a/src/HexManiac.Core/ViewModels/Map/MapHeaderViewModel.cs b/src/HexManiac.Core/ViewModels/Map/MapHeaderViewModel.cs index b8e8317b..c5a4e903 100644 --- a/src/HexManiac.Core/ViewModels/Map/MapHeaderViewModel.cs +++ b/src/HexManiac.Core/ViewModels/Map/MapHeaderViewModel.cs @@ -222,13 +222,13 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Map { private readonly Lazy render; public IDataModel Model { get; } public int Address { get; } - public IPixelViewModel Render => render.Value; + public IPixelViewModel Render => render?.Value; public string AddressText => Address.ToAddress(); public BlocksetOption(IDataModel model, int address) { Model = model; Address = address; - render = new Lazy(() => new BlocksetModel(Model, Address).RenderBlockset(.5)); + if (!model.SpartanMode) render = new Lazy(() => new BlocksetModel(Model, Address).RenderBlockset(.5)); } } } diff --git a/src/HexManiac.Core/ViewModels/SearchResultsViewPort.cs b/src/HexManiac.Core/ViewModels/SearchResultsViewPort.cs index 234b351c..fc55cc5c 100644 --- a/src/HexManiac.Core/ViewModels/SearchResultsViewPort.cs +++ b/src/HexManiac.Core/ViewModels/SearchResultsViewPort.cs @@ -85,6 +85,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels { public string Name { get; } public string FullFileName { get; } public string FileName => string.Empty; + public bool SpartanMode { get; set; } public bool IsMetadataOnlyChange => false; public byte[] FindBytes { get; set; } public ICommand Save { get; } = new StubCommand(); diff --git a/src/HexManiac.Core/ViewModels/Tools/CodeBody.cs b/src/HexManiac.Core/ViewModels/Tools/CodeBody.cs index c76a85d0..70721003 100644 --- a/src/HexManiac.Core/ViewModels/Tools/CodeBody.cs +++ b/src/HexManiac.Core/ViewModels/Tools/CodeBody.cs @@ -51,7 +51,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Tools { public bool CanInsertFlag { get { - if (investigator == null) return false; + if (investigator == null || model.SpartanMode) return false; var context = SplitCurrentLine(); if (context.ContentBoundaryCount != 0) return false; @@ -72,7 +72,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Tools { public bool CanInsertVar { get { - if (investigator == null) return false; + if (investigator == null || model.SpartanMode) return false; var context = SplitCurrentLine(); if (context.ContentBoundaryCount != 0) return false; @@ -140,7 +140,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Tools { /// public bool CanFindUses { get { - if (CaretPosition < 0) return false; + if (CaretPosition < 0 || model.SpartanMode) return false; var context = SplitCurrentLine(); if (context.ContentBoundaryCount != 0) return false; int left = context.Index, right = context.Index; @@ -176,7 +176,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Tools { public bool CanGotoAddress { get { - if (CaretPosition < 0) return false; + if (CaretPosition < 0 || model.SpartanMode) return false; var context = SplitCurrentLine(); if (context.ContentBoundaryCount != 0) return false; int left = context.Index, right = context.Index; @@ -211,6 +211,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Tools { private bool TryGetSourceInfo(out string table, out string parsedToken) { table = null; parsedToken = null; + if (model.SpartanMode) return false; var context = SplitCurrentLine(); var tokens = ScriptLine.Tokenize(context.Line); var token = 0; @@ -264,6 +265,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Tools { #region complete public bool TryInsertAuto() { + if (model.SpartanMode) return false; var context = SplitCurrentLine(); var tokens = ScriptLine.Tokenize(context.Line); if (context.Line.Length > context.Index + 1) return false; @@ -382,6 +384,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Tools { } public void EvaluateTextLength() { + if (model.SpartanMode) return; foreach (var streamLine in LookForStreamLines()) { if (streamLine.Type != ExpectedPointerType.Text) continue; // 35*6 foreach (var error in model.TextConverter.GetOverflow(streamLine.Text, MaxEventTextWidth)) { diff --git a/src/HexManiac.Core/ViewModels/Tools/TableTool.cs b/src/HexManiac.Core/ViewModels/Tools/TableTool.cs index 0ebbdab4..1de734be 100644 --- a/src/HexManiac.Core/ViewModels/Tools/TableTool.cs +++ b/src/HexManiac.Core/ViewModels/Tools/TableTool.cs @@ -293,10 +293,11 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Tools { //nameof(Theme.Text1), //nameof(Theme.Text2), //nameof(Theme.Data1), - nameof(Theme.Data2), - nameof(Theme.Accent), + //nameof(Theme.Data2), + //nameof(Theme.Accent), //nameof(Theme.Stream1), //nameof(Theme.Stream2), + nameof(Theme.Background), }; private int childIndexGroup = 0, themeIndex = 0; @@ -405,7 +406,8 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Tools { var originalTableName = basename; if (!string.IsNullOrEmpty(arrayRun.LengthFromAnchor) && model.GetMatchedWords(arrayRun.LengthFromAnchor).Count == 0) basename = arrayRun.LengthFromAnchor; // basename is now a 'parent table' name, if there is one - var groups = model.GetTableGroups(basename) ?? new[] { new TableGroup(TableGroupViewModel.DefaultName, new[] { originalTableName }) }; + IReadOnlyList groups = new[] { new TableGroup(TableGroupViewModel.DefaultName, new[] { originalTableName }) }; + if (!viewPort.SpartanMode) groups = model.GetTableGroups(basename) ?? groups; if (groups.Count == 1) { if (Groups.Count == 2) { streamGroup = Groups[1]; @@ -620,7 +622,7 @@ namespace HavenSoft.HexManiac.Core.ViewModels.Tools { } // maps - if (viewPort.MapEditor != null && viewPort.MapEditor.IsValidState) { + if (viewPort.MapEditor != null && viewPort.MapEditor.IsValidState && !viewPort.SpartanMode) { var mapOptions = new MapOptionsArrayElementViewModel(dispatcher, viewPort.MapEditor, basename, index); mapOptions.MapPreviews.CollectionChanged += (sender, e) => NotifyPropertyChanged(nameof(HasUsageOptions)); AddUsageChild(mapOptions); // always add, but invisible when empty diff --git a/src/HexManiac.Core/ViewModels/ViewPort.cs b/src/HexManiac.Core/ViewModels/ViewPort.cs index 290602fa..2ea84b00 100644 --- a/src/HexManiac.Core/ViewModels/ViewPort.cs +++ b/src/HexManiac.Core/ViewModels/ViewPort.cs @@ -91,6 +91,16 @@ namespace HavenSoft.HexManiac.Core.ViewModels { private string fullFileName; public string FullFileName { get => fullFileName; private set => TryUpdate(ref fullFileName, value); } + private bool spartanMode; + public bool SpartanMode { + get => spartanMode; + set { + Set(ref spartanMode, value, arg => { + Model.SpartanMode = spartanMode; + }); + } + } + #region Scrolling Properties private readonly ScrollRegion scroll; diff --git a/src/HexManiac.WPF/Controls/MapTab.xaml b/src/HexManiac.WPF/Controls/MapTab.xaml index 5dde8b63..72c7fd7e 100644 --- a/src/HexManiac.WPF/Controls/MapTab.xaml +++ b/src/HexManiac.WPF/Controls/MapTab.xaml @@ -881,6 +881,11 @@ + + + + + diff --git a/src/HexManiac.WPF/Controls/TabView.xaml b/src/HexManiac.WPF/Controls/TabView.xaml index 026be79b..2ef16ff3 100644 --- a/src/HexManiac.WPF/Controls/TabView.xaml +++ b/src/HexManiac.WPF/Controls/TabView.xaml @@ -333,7 +333,7 @@ - @@ -352,8 +352,7 @@ - - + - - + + @@ -251,7 +251,19 @@ true - + + + + + + + Spartan Mode runs faster and uses less memory, + + but disables optional ease-of-use features. + + + +