public void Update(IXmlStaticData additionalData)
        {
            NpcConversationStaticData other = (NpcConversationStaticData)additionalData;

            if (other.m_dialogs != null)
            {
                Dictionary <Int32, Dialog> current = m_dialogs.ToDictionary(d => d.m_id);
                Dialog[] updated = other.m_dialogs;

                List <Dialog> result = new List <Dialog>(current.Count + updated.Length);
                result.AddRange(m_dialogs);

                foreach (Dialog newDialog in updated)
                {
                    Dialog oldDialog;
                    if (current.TryGetValue(newDialog.m_id, out oldDialog))
                    {
                        oldDialog.Update(newDialog);
                    }
                    else
                    {
                        result.Add(newDialog);
                    }
                }

                if (result.Count > m_dialogs.Length)
                {
                    m_dialogs = result.ToArray();
                }
            }
        }
Esempio n. 2
0
 public void Update(IXmlStaticData additionalData)
 {
     LegacyLogger.LogError("The method Update of the type CreditsData isn't implemented.");
 }