From 897d94b5fc3e5f3e4d83c1ce7220c43a5eb84490 Mon Sep 17 00:00:00 2001 From: Empress Sela <empresssela@cock.li> Date: Wed, 8 Jul 2020 16:29:04 -0400 Subject: [PATCH] Add COI to NGP --- src/data/newGamePlus.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/data/newGamePlus.js b/src/data/newGamePlus.js index f5a569ea612..506bf21159e 100644 --- a/src/data/newGamePlus.js +++ b/src/data/newGamePlus.js @@ -69,15 +69,32 @@ App.Data.NewGamePlus = (function() { const ngUpdateMissingTable = function(missingTable) { const newTable = {}; + let needed = []; (V.slaves || []) .forEach(s => ([s.pregSource + NGPOffset, s.mother + NGPOffset, s.father + NGPOffset] .filter(i => (i in missingTable)) .forEach(i => { - newTable[i - NGPOffset] = missingTable[i]; - newTable[i - NGPOffset].ID -= NGPOffset; + if (needed.index(i) === -1) + needed.push(i); }))); + while (needed.length > 0) { + let s = needed.shift(); + newTable[i - NGPOffset] = s; + s.ID -= NGPOffset; + if (s.mother in missingTable) { + s.mother -= NGPOffset; + if (!(s.mother in newTable) && needed.indexOf(s.mother + NGPOffset) === -1) + needed.push(s.mother + NGPOffset); + } + if (s.father in missingTable) { + s.father -= NGPOffset; + if (!(s.father in newTable) && needed.indexOf(s.father + NGPOffset) === -1) + needed.push(s.father + NGPOffset); + } + } + return newTable; }; -- GitLab