Exemplo n.º 1
0
 private void EditTrigger(int fileid, int blockid, int triggerid, QuestTrigger trigger, bool Expand)
 {
     tree.BeginUpdate();
     DelTrigger(fileid, blockid, triggerid);
     AddTrigger(fileid, blockid, triggerid, trigger.Clone(), Expand);
     tree.EndUpdate();
 }
Exemplo n.º 2
0
        private void RenameTrigger(int fileid, int blockid, int triggerid, string name)
        {
            TreeNode     node    = tree.Nodes[fileid].Nodes[blockid].Nodes[triggerid];
            QuestTrigger trigger = (QuestTrigger)node.Tag;

            trigger.Name = name;
            node.Text    = trigger.GetNodeText();
            form.SelectNode(node);
        }
Exemplo n.º 3
0
        private void AddTrigger(int fileid, int blockid, int triggerid, QuestTrigger trigger, bool Expand)
        {
            TreeNode newNode = form.AddToTree(trigger, tree.Nodes[fileid].Nodes[blockid], triggerid);

            form.SelectNode(newNode);

            if (Expand)
            {
                newNode.ExpandAll();
            }
        }
Exemplo n.º 4
0
        void ShowTriggerInGrids(QuestTrigger trigger, TreeNode triggerNode)
        {
            //  Console.WriteLine("ShowTriggerInGrids, Selected node");
            m_SelectedTriggerNode = triggerNode;

            gridCondition.ColumnCount           = 1;
            gridCondition.Columns[0].HeaderText = "Conditions";
            gridCondition.Columns[0].SortMode   = DataGridViewColumnSortMode.NotSortable;
            gridCondition.Rows.Clear();

            gridReward.ColumnCount           = 1;
            gridReward.Columns[0].HeaderText = "Rewards";
            gridReward.Columns[0].SortMode   = DataGridViewColumnSortMode.NotSortable;
            gridReward.Rows.Clear();

            if (trigger == null)
            {
                toolStripStatusLabel1.Text = "";
            }
            else
            {
                toolStripStatusLabel1.Text = "Active trigger: " + ((QuestTrigger)triggerNode.Tag).Name;

                locked_edit = true;
                {
                    for (int row = 0; row < triggerNode.Nodes[0].Nodes.Count; row++)
                    {
                        gridCondition.Rows.Add();
                        int col = 0;
                        ObjectToGrid(gridCondition, ref col, row, triggerNode.Nodes[0].Nodes[row].Tag);
                    }

                    for (int row = 0; row < triggerNode.Nodes[1].Nodes.Count; row++)
                    {
                        gridReward.Rows.Add();
                        int col = 0;
                        ObjectToGrid(gridReward, ref col, row, triggerNode.Nodes[1].Nodes[row].Tag);
                    }
                }
                locked_edit = false;
            }

            for (int col = 0; col < gridCondition.Columns.Count; col++)
            {
                gridCondition.Columns[col].SortMode = DataGridViewColumnSortMode.NotSortable;
            }

            for (int col = 0; col < gridReward.Columns.Count; col++)
            {
                gridReward.Columns[col].SortMode = DataGridViewColumnSortMode.NotSortable;
            }
        }
Exemplo n.º 5
0
        // Clone is only to be used when the Trigger has been generated from a tree. Otherwise edits will be missing
        public QuestTrigger Clone()
        {
            QuestTrigger trigger = new QuestTrigger();

            trigger.Name      = this.Name;
            trigger.CheckNext = this.CheckNext;

            foreach (Condition c in this.Conditions)
            {
                trigger.Conditions.Add(c.Clone());
            }

            foreach (Reward r in this.Rewards)
            {
                trigger.Rewards.Add(r.Clone());
            }

            return(trigger);
        }
Exemplo n.º 6
0
        public void Load(string Filename)
        {
            this.FileName = Filename;

            FileHandler fh = new FileHandler(Filename, FileHandler.FileOpenMode.Reading, Encoding.GetEncoding("EUC-KR"));

            Version = fh.Read <int>();
            int blockCount = fh.Read <int>();

            Title = fh.Read <string>(fh.Read <short>()).Trim('\0');

            for (int i = 0; i < blockCount; i++)
            {
                QuestBlock block = new QuestBlock();

                int triggersCount = fh.Read <int>();
                block.Name = fh.Read <string>(fh.Read <short>()).Trim('\0');

                for (int j = 0; j < triggersCount; j++)
                {
                    QuestTrigger trigger = new QuestTrigger();
                    trigger.CheckNext = (fh.Read <byte>() != 0);
                    int ConditionsCount = fh.Read <int>();
                    int RewardsCount    = fh.Read <int>();
                    trigger.Name = fh.Read <string>(fh.Read <short>()).Trim('\0');

                    for (int c = 0; c < ConditionsCount; c++)
                    {
                        int    size = fh.Read <int>();
                        int    type = fh.Read <int>();
                        byte[] data = fh.Read <byte[]>(size - 8);

                        try
                        {
                            object obj = CreateObject((ConditionType)type);
                            StructReader.Convert(data, ref obj);

                            Condition condition = (Condition)obj;
                            condition.setOriginalData(data);
                            trigger.Conditions.Add(condition);
                        }
                        catch
                        {
                            object    obj       = CreateObject(ConditionType.COND000);
                            Condition condition = (Condition)obj;
                            condition.setOriginalData(data);
                            trigger.Conditions.Add(condition);
                        }
                    }

                    for (int c = 0; c < RewardsCount; c++)
                    {
                        int    size = fh.Read <int>();
                        int    type = fh.Read <int>() & 0x0ffff;
                        byte[] data = fh.Read <byte[]>(size - 8);

                        try
                        {
                            object obj = CreateObject((RewardType)type);
                            StructReader.Convert(data, ref obj);
                            Reward reward = (Reward)obj;
                            reward.setOriginalData(data);
                            trigger.Rewards.Add(reward);
                        }
                        catch
                        {
                            object obj    = CreateObject(RewardType.REWD000);
                            Reward reward = (Reward)obj;
                            reward.setOriginalData(data);
                            trigger.Rewards.Add(reward);
                        }
                    }
                    block.Triggers.Add(trigger);
                }
                this.Blocks.Add(block);
            }
            fh.Close();
        }