public void updateReligionForCharacter(CK2Character character, bool canOverwrite, HashSet <int> processed) { bool hasChar = !(processed.Add(character.getFamilyTreeID())); if (hasChar) { return; } if (character.getReligion() == null || canOverwrite) { character.setReligion(this.religion); } CK2Character father = character.getFather(); if (father != null) { updateReligionForCharacter(father, canOverwrite, processed); } List <CK2Character> children = character.getChildren(); if (children != null) { foreach (CK2Character child in children) { updateReligionForCharacter(child, canOverwrite, processed); } } }