예제 #1
0
        public void GetEntries()
        {
            int count1 = 0xAF;
            int count2 = 0x64;

            QuestMap = new QMapStruct();
            byte[] buff = pcc.Exports[3].Data;
            int    pos  = 0xC;

            BitConverter.IsLittleEndian = true;
            QuestMap.List1 = new QMapEntryStruct[count1];
            for (int i = 0; i < count1; i++)
            {
                QMapEntryStruct e = new QMapEntryStruct();
                e.Values = new int[0xC];
                for (int j = 0; j < 0xC; j++)
                {
                    e.Values[j] = BitConverter.ToInt32(buff, pos + j * 4);
                }
                QuestMap.List1[i] = e;
                pos += 0x30;
            }
            QuestMap.List2 = new QMapEntryStruct[count2];
            for (int i = 0; i < count2; i++)
            {
                QMapEntryStruct e = new QMapEntryStruct();
                e.Values = new int[0x8];
                for (int j = 0; j < 0x8; j++)
                {
                    e.Values[j] = BitConverter.ToInt32(buff, pos + j * 4);
                }
                QuestMap.List2[i] = e;
                pos += 0x20;
            }
        }
예제 #2
0
        private void saveChangesToolStripMenuItem_Click(object sender, EventArgs ee)
        {
            int count1 = 0xAF;
            int count2 = 0x64;

            BitConverter.IsLittleEndian = true;
            MemoryStream m = new MemoryStream();

            m.Write(pcc.Exports[3].Data, 0, 0xC);
            for (int i = 0; i < count1; i++)
            {
                QMapEntryStruct e = QuestMap.List1[i];
                for (int j = 0; j < 0xC; j++)
                {
                    m.Write(BitConverter.GetBytes(e.Values[j]), 0, 4);
                }
            }
            for (int i = 0; i < count2; i++)
            {
                QMapEntryStruct e = QuestMap.List2[i];
                for (int j = 0; j < 0x8; j++)
                {
                    m.Write(BitConverter.GetBytes(e.Values[j]), 0, 4);
                }
            }
            pcc.Exports[3].Data = m.ToArray();
            pcc.altSaveToFile(pcc.pccFileName, true);
            MessageBox.Show("Done");
        }
예제 #3
0
 public void GetEntries()
 {
     int count1 = 0xAF;
     int count2 = 0x64;
     QuestMap = new QMapStruct();
     byte[] buff = pcc.Exports[3].Data;
     int pos = 0xC;
     BitConverter.IsLittleEndian = true;
     QuestMap.List1 = new QMapEntryStruct[count1];            
     for (int i = 0; i < count1; i++)
     {
         QMapEntryStruct e = new QMapEntryStruct();
         e.Values = new int[0xC];
         for (int j = 0; j < 0xC; j++)
             e.Values[j] = BitConverter.ToInt32(buff, pos + j * 4);
         QuestMap.List1[i] = e;
         pos += 0x30;
     }
     QuestMap.List2 = new QMapEntryStruct[count2];
     for (int i = 0; i < count2; i++)
     {
         QMapEntryStruct e = new QMapEntryStruct();
         e.Values = new int[0x8];
         for (int j = 0; j < 0x8; j++)
             e.Values[j] = BitConverter.ToInt32(buff, pos + j * 4);
         QuestMap.List2[i] = e;
         pos += 0x20;
     }
 }
예제 #4
0
        private void treeView1_DoubleClick(object sender, EventArgs e)
        {
            TreeNode t = treeView1.SelectedNode;

            if (t == null || t.Parent == null || !(t.Parent.Text == "List 1" || t.Parent.Text == "List 2"))
            {
                return;
            }
            if (t.Parent.Text == "List 1")
            {
                string          s     = "";
                QMapEntryStruct entry = QuestMap.List1[t.Index];
                for (int i = 0; i < 0xB; i++)
                {
                    s += entry.Values[i] + ", ";
                }
                s += entry.Values[0xB];
                string   result = Microsoft.VisualBasic.Interaction.InputBox("Please enter new values", "ME3Explorer", s, 0, 0);
                string[] sres   = result.Split(',');
                if (sres.Length != 0xC)
                {
                    return;
                }
                for (int i = 0; i < 0xC; i++)
                {
                    entry.Values[i] = Convert.ToInt32(sres[i].Trim());
                }
                QuestMap.List1[t.Index] = entry;
                RefreshTree();
            }
            else
            {
                string          s     = "";
                QMapEntryStruct entry = QuestMap.List2[t.Index];
                for (int i = 0; i < 0x7; i++)
                {
                    s += entry.Values[i] + ", ";
                }
                s += entry.Values[0x7];
                string   result = Microsoft.VisualBasic.Interaction.InputBox("Please enter new values", "ME3Explorer", s, 0, 0);
                string[] sres   = result.Split(',');
                if (sres.Length != 0x8)
                {
                    return;
                }
                for (int i = 0; i < 0x8; i++)
                {
                    entry.Values[i] = Convert.ToInt32(sres[i].Trim());
                }
                QuestMap.List2[t.Index] = entry;
                RefreshTree();
            }
        }