private void ExposeFactionData() { if (Scribe.mode == LoadSaveMode.Saving) { int currentFactionId = Faction.OfPlayer.loadID; Scribe_Custom.LookValue(currentFactionId, "currentFactionId"); var data = new Dictionary <int, FactionMapData>(factionData); data.Remove(currentFactionId); Scribe_Custom.LookValueDeep(ref data, "factionMapData", map); } else { // The faction whose data is currently set Scribe_Values.Look(ref currentFactionId, "currentFactionId"); Scribe_Custom.LookValueDeep(ref factionData, "factionMapData", map); if (factionData == null) { factionData = new Dictionary <int, FactionMapData>(); } } if (Scribe.mode == LoadSaveMode.LoadingVars) { factionData[currentFactionId] = FactionMapData.NewFromMap(map, currentFactionId); } }
public void ExposeData() { if (Scribe.mode == LoadSaveMode.Saving) { Scribe_Values.Look(ref opt.text, "text"); Scribe_Values.Look(ref opt.resolveTree, "resolveTree"); Scribe_Custom.LookValue(parent.saveNodes.FindIndex(n => n.node == opt.link), "linkIndex", true); Scribe_Values.Look(ref opt.disabled, "disabled"); Scribe_Values.Look(ref opt.disabledReason, "disabledReason"); Scribe_Defs.Look(ref opt.clickSound, "clickSound"); Scribe_Custom.LookValue(parent.fieldValues.FindIndex(f => Equals(f.value, opt.action)), "actionIndex", true); Scribe_Custom.LookValue(parent.fieldValues.FindIndex(f => Equals(f.value, opt.linkLateBind)), "linkLateBindIndex", true); } if (Scribe.mode == LoadSaveMode.LoadingVars) { Scribe_Values.Look(ref text, "text"); Scribe_Values.Look(ref resolveTree, "resolveTree"); Scribe_Values.Look(ref linkIndex, "linkIndex", -1); Scribe_Values.Look(ref disabled, "disabled"); Scribe_Values.Look(ref disabledReason, "disabledReason"); Scribe_Defs.Look(ref clickSound, "clickSound"); Scribe_Values.Look(ref actionIndex, "actionIndex"); Scribe_Values.Look(ref linkLateBindIndex, "linkLateBindIndex"); opt = new DiaOption() { text = text, resolveTree = resolveTree, disabled = disabled, disabledReason = disabledReason, clickSound = clickSound }; } if (Scribe.mode == LoadSaveMode.PostLoadInit) { opt.link = parent.saveNodes.ElementAtOrDefault(linkIndex)?.node; opt.action = (Action)parent.fieldValues.ElementAtOrDefault(actionIndex)?.value; opt.linkLateBind = (Func <DiaNode>)parent.fieldValues.ElementAtOrDefault(linkLateBindIndex)?.value; } }