Example #1
0
        public void Run()
        {
            TwoDimArray source = TwoDimArrayFactory.Load2da(options.SourceFile);

            foreach (string patchPath in options.PatchFiles)
            {
                Console.WriteLine($"Processing patch: {patchPath}");
                TwoDimArray patch = TwoDimArrayFactory.Load2da(patchPath);
                ProcessPatch(source, patch);
                Console.WriteLine($"Patch processed: {patchPath}");
            }

            ExportResult(source);
        }
Example #2
0
        private void DoAdd(TwoDimArray source, int index, TwoDimArrayEntry entryToAdd)
        {
            if (index < source.Entries.Count)
            {
                Console.WriteLine($"ADD patch entry at index {index} overwrites an existing value. Use REPLACE if replacement is intentional. Skipping...");
                return;
            }

            if (index > source.Entries.Count)
            {
                TwoDimArrayEntry padding = TwoDimArrayFactory.CreateEmptyEntry(source.Entries[0].Values.Keys);
                for (int i = source.Entries.Count - 1; i < index; i++)
                {
                    source.Entries.Add(padding);
                }
            }

            foreach (string column in PatchColumns)
            {
                entryToAdd.Values.Remove(column);
            }
            source.Entries.Add(entryToAdd);
        }