diff --git a/Source/ViewModels/NewScriptDialogViewModel.cs b/Source/ViewModels/NewScriptDialogViewModel.cs index f2145039..9306c544 100644 --- a/Source/ViewModels/NewScriptDialogViewModel.cs +++ b/Source/ViewModels/NewScriptDialogViewModel.cs @@ -249,31 +249,37 @@ private void LoadLeaderboards() } } - private void LoadNotes() + private void LoadNote(CodeNote note) { - _publishedAssets.LoadNotes(); + var memoryAccessor = new MemoryAccessorAlias(note.Address, note); + var index = _memoryAccessors.BinarySearch(memoryAccessor, memoryAccessor); - foreach (var note in _publishedAssets.Notes.Values) + var size = note.Size; + switch (size) { - var memoryAccessor = new MemoryAccessorAlias(note.Address, note); - var index = _memoryAccessors.BinarySearch(memoryAccessor, memoryAccessor); - - if (index >= 0) - continue; + case FieldSize.None: + case FieldSize.Array: + // these sizes don't have accessor functions, fallback to byte() + size = FieldSize.Byte; + break; + } - var size = note.Size; - switch (size) - { - case FieldSize.None: - case FieldSize.Array: - // these sizes don't have accessor functions, fallback to byte() - size = FieldSize.Byte; - break; - } + memoryAccessor.ReferenceSize(size); - memoryAccessor.ReferenceSize(size); + if (index >= 0) + _memoryAccessors[index] = memoryAccessor; + else _memoryAccessors.Insert(~index, memoryAccessor); - } + } + + private void LoadNotes() + { + _publishedAssets.LoadNotes(); + foreach (var note in _publishedAssets.Notes.Values) + LoadNote(note); + + foreach (var note in _localAssets.Notes) + LoadNote(new CodeNote(note.Key, note.Value)); } private static int CompareMemoryItems(MemoryItem left, MemoryItem right)