public void SelectQuest(QuestListContainer questListContainer)
        {
            if (questListContainer == null)
            {
                SelectQuest(null, null, 0);
                return;
            }
            var questListIndex = (questListContainer.GetInstanceID() == m_questListContainerInstanceID) ? m_questListIndex : 0;

            SelectQuest(questListContainer, questListIndex);
        }
        public void SelectQuest(Quest quest, QuestListContainer questListContainer, int questListIndex)
        {
            m_quest = quest;
            m_questSerializedObject = (quest != null) ? new SerializedObject(quest) : null;
            var questInstanceID = (quest != null) ? quest.GetInstanceID() : 0;

            if (quest != null && questInstanceID != m_questInstanceID)
            {
                m_selectedNodeListIndex = -1;
            }
            m_questInstanceID = questInstanceID;
            m_questListContainerInstanceID = (questListContainer != null) ? questListContainer.GetInstanceID() : 0;
            m_selectedQuestListContainer   = questListContainer;
            m_questListIndex = questListIndex;
            m_canvasGUI.AssignQuest(quest);
#if DEBUG_QUEST_EDITOR
            Debug.Log("<color=magenta>QuestEditorWindow.SelectQuest: quest=" + quest + " [instanceID=" + questInstanceID + ", isAsset=" +
                      ((quest != null) ? (!quest.isInstance).ToString() : "NA") + "], questListContainer=" + questListContainer +
                      " [instanceID=" + m_questListContainerInstanceID + "], questListIndex=" + questListIndex + "</color>");
#endif
            CheckQuestFileVersion();
        }