Ejemplo n.º 1
0
        private void fnvClip_Click(object sender, EventArgs e)
        {
            DataGridViewSelectedRowCollection rows
                = this.resDGV.SelectedRows;

            if (rows != null && rows.Count > 0)
            {
                INamedResourceIndexEntry rie;
                foreach (DataGridViewRow row in rows)
                {
                    rie          = this.mResources[row.Index];
                    rie.Instance = FNVCLIP.HashString(rie.ResourceName);
                    this.resDGV.UpdateCellValue(
                        (int)ColumnName.IID, row.Index);
                }
                if (this.bDetectConflicts)
                {
                    this.ClearConflictHighlighting();
                    this.HighlightConflicts();
                }
                if (this.mColIndex == (int)ColumnName.IID)
                {
                    this.UpdateResDGV();
                }
            }
        }
Ejemplo n.º 2
0
        private void resCellValuePushed(object sender,
                                        DataGridViewCellValueEventArgs e)
        {
            if (e.RowIndex < this.mResources.Length)
            {
                uint   val32;
                ulong  val64;
                string str = e.Value == null ? null : e.Value.ToString();
                INamedResourceIndexEntry rie = this.mResources[e.RowIndex];
                switch ((ColumnName)e.ColumnIndex)
                {
                case ColumnName.Tag:
                    string[] strs = str.Split(' ');
                    if (RK.TryParseHex32(strs[1], out val32))
                    {
                        rie.ResourceType = val32;
                    }
                    if (this.mColIndex == (int)ColumnName.Tag ||
                        this.mColIndex == (int)ColumnName.TID)
                    {
                        if (this.CheckResDGVSorted(e.RowIndex))
                        {
                            this.resDGV.UpdateCellValue(
                                (int)ColumnName.TID, e.RowIndex);
                        }
                        else
                        {
                            this.UpdateResDGV();
                        }
                    }
                    else
                    {
                        this.resDGV.UpdateCellValue(
                            (int)ColumnName.TID, e.RowIndex);
                    }
                    if (this.bDetectConflicts)
                    {
                        this.ClearConflictHighlighting();
                        this.HighlightConflicts();
                    }
                    break;

                case ColumnName.TID:
                    if (RK.TryParseUInt32(str, out val32))
                    {
                        rie.ResourceType = val32;
                    }
                    if (this.mColIndex == (int)ColumnName.Tag ||
                        this.mColIndex == (int)ColumnName.TID)
                    {
                        if (this.CheckResDGVSorted(e.RowIndex))
                        {
                            this.resDGV.UpdateCellValue(
                                (int)ColumnName.Tag, e.RowIndex);
                        }
                        else
                        {
                            this.UpdateResDGV();
                        }
                    }
                    else
                    {
                        this.resDGV.UpdateCellValue(
                            (int)ColumnName.Tag, e.RowIndex);
                    }
                    if (this.bDetectConflicts)
                    {
                        this.ClearConflictHighlighting();
                        this.HighlightConflicts();
                    }
                    break;

                case ColumnName.GID:
                    if (RK.TryParseUInt32(str, out val32))
                    {
                        rie.ResourceGroup = val32;
                    }
                    if (this.mColIndex == (int)ColumnName.GID &&
                        !this.CheckResDGVSorted(e.RowIndex))
                    {
                        this.UpdateResDGV();
                    }
                    if (this.bDetectConflicts)
                    {
                        this.ClearConflictHighlighting();
                        this.HighlightConflicts();
                    }
                    break;

                case ColumnName.IID:
                    if (RK.TryParseUInt64(str, out val64))
                    {
                        rie.Instance = val64;
                    }
                    if (this.mColIndex == (int)ColumnName.IID &&
                        !this.CheckResDGVSorted(e.RowIndex))
                    {
                        this.UpdateResDGV();
                    }
                    if (this.bDetectConflicts)
                    {
                        this.ClearConflictHighlighting();
                        this.HighlightConflicts();
                    }
                    break;

                case ColumnName.Comp:
                    bool comp = (bool)e.Value;
                    rie.Compressed = (ushort)(comp ? 0xFFFF : 0x0000);
                    if (this.mColIndex == (int)ColumnName.Comp &&
                        !this.CheckResDGVSorted(e.RowIndex))
                    {
                        this.UpdateResDGV();
                    }
                    break;

                case ColumnName.Name:
                    rie.ResourceName = str;
                    if (this.mAutoHashing != Hashing.None)
                    {
                        val64 = 0;
                        if (str != null)
                        {
                            switch (this.mAutoHashing)
                            {
                            case Hashing.FNV32:
                                val64 = FNVHash.HashString32(str);
                                break;

                            case Hashing.FNV64:
                                val64 = FNVHash.HashString64(str);
                                break;

                            case Hashing.FNVCLIP:
                                val64 = FNVCLIP.HashString(str);
                                break;
                            }
                        }
                        rie.Instance = val64;
                        if (this.mColIndex == (int)ColumnName.IID ||
                            this.mColIndex == (int)ColumnName.Name)
                        {
                            if (this.CheckResDGVSorted(e.RowIndex))
                            {
                                this.resDGV.UpdateCellValue(
                                    (int)ColumnName.IID, e.RowIndex);
                            }
                            else
                            {
                                this.UpdateResDGV();
                            }
                        }
                        else
                        {
                            this.resDGV.UpdateCellValue(
                                (int)ColumnName.IID, e.RowIndex);
                        }
                        if (this.bDetectConflicts)
                        {
                            this.ClearConflictHighlighting();
                            this.HighlightConflicts();
                        }
                    }
                    if (this.mColIndex == (int)ColumnName.Name &&
                        !this.CheckResDGVSorted(e.RowIndex))
                    {
                        this.UpdateResDGV();
                    }
                    break;
                }
            }
        }
Ejemplo n.º 3
0
        private void FillKNMP(KNMPackage knmp, IDictionary <ulong, string> map)
        {
            GenCLIP gc;
            ulong   h, ch;
            string  s, cs;

            foreach (KeyValuePair <ulong, string> nm in map)
            {
                h = nm.Key;
                s = nm.Value;
                if (FNVHash.HashString64(s) == h ||
                    FNVHash.HashString32(s) == h)
                {
                    knmp.Names[h] = s;
                }
                else if (FNVCLIP.HashString(s) == h)
                {
                    cs = FNVCLIP.GetGenericValue(s);
                    ch = FNVHash.HashString64(cs) & 0x7FFFFFFFFFFFFFFF;
                    knmp.Generics[ch] = cs;
                    if (!this.mGenCLIPs.TryGetValue(ch, out gc))
                    {
                        gc = new GenCLIP(cs);
                        this.mGenCLIPs.Add(ch, gc);
                    }
                    gc.CLIPNames[h] = new CLIP(s, knmp.Path);
                }
                else
                {
                    knmp.Labels[h] = s;
                }
            }
            if (knmp.Names.Count > 0)
            {
                List <KeyValuePair <ulong, string> > names
                    = new List <KeyValuePair <ulong, string> >(knmp.Names);
                foreach (KeyValuePair <ulong, string> name in names)
                {
                    s = name.Value;
                    if (name.Key < 0x100000000)
                    {
                        h = FNVHash.HashString64(s);
                        if (!knmp.Names.ContainsKey(h))
                        {
                            knmp.Names[h] = s;
                        }
                    }
                    else
                    {
                        h = FNVHash.HashString32(s);
                        if (!knmp.Names.ContainsKey(h))
                        {
                            knmp.Names[h] = s;
                        }
                    }
                    cs = FNVCLIP.GetGenericValue(s);
                    if (!string.Equals(s, cs,
                                       StringComparison.OrdinalIgnoreCase))
                    {
                        h = FNVHash.HashString32(cs);
                        if (!knmp.Names.ContainsKey(h))
                        {
                            knmp.Names[h] = cs;
                        }
                        h = FNVHash.HashString64(cs);
                        if (!knmp.Names.ContainsKey(h))
                        {
                            knmp.Names[h] = cs;
                        }
                    }
                }
            }
            if (knmp.Generics.Count > 0)
            {
                foreach (KeyValuePair <ulong, string> gen in knmp.Generics)
                {
                    s = gen.Value;
                    h = FNVHash.HashString32(s);
                    if (!knmp.Names.ContainsKey(h))
                    {
                        knmp.Names[h] = s;
                    }
                    h = FNVHash.HashString64(s);
                    if (!knmp.Names.ContainsKey(h))
                    {
                        knmp.Names[h] = s;
                    }
                    cs = FNVCLIP.GetGenericValue(s);
                    h  = FNVHash.HashString32(cs);
                    if (!knmp.Names.ContainsKey(h))
                    {
                        knmp.Names[h] = cs;
                    }
                    h = FNVHash.HashString64(cs);
                    if (!knmp.Names.ContainsKey(h))
                    {
                        knmp.Names[h] = cs;
                    }
                    cs = string.Concat(cs, ".ma");
                    h  = FNVHash.HashString32(cs);
                    if (!knmp.Names.ContainsKey(h))
                    {
                        knmp.Names[h] = cs;
                    }
                    h = FNVHash.HashString64(cs);
                    if (!knmp.Names.ContainsKey(h))
                    {
                        knmp.Names[h] = cs;
                    }
                    s = string.Concat(s, ".ma");
                    h = FNVHash.HashString32(s);
                    if (!knmp.Names.ContainsKey(h))
                    {
                        knmp.Names[h] = s;
                    }
                    h = FNVHash.HashString64(s);
                    if (!knmp.Names.ContainsKey(h))
                    {
                        knmp.Names[h] = s;
                    }
                }
            }
            if (knmp.Labels.Count > 0)
            {
                foreach (KeyValuePair <ulong, string> label in knmp.Labels)
                {
                    s = label.Value;
                    h = FNVHash.HashString32(s);
                    if (!knmp.Names.ContainsKey(h))
                    {
                        knmp.Names[h] = s;
                    }
                    h = FNVHash.HashString64(s);
                    if (!knmp.Names.ContainsKey(h))
                    {
                        knmp.Names[h] = s;
                    }
                    cs = FNVCLIP.GetGenericValue(s);
                    if (!string.Equals(s, cs,
                                       StringComparison.OrdinalIgnoreCase))
                    {
                        h = FNVHash.HashString32(cs);
                        if (!knmp.Names.ContainsKey(h))
                        {
                            knmp.Names[h] = cs;
                        }
                        h = FNVHash.HashString64(cs);
                        if (!knmp.Names.ContainsKey(h))
                        {
                            knmp.Names[h] = cs;
                        }
                        cs = string.Concat(cs, ".ma");
                        h  = FNVHash.HashString32(cs);
                        if (!knmp.Names.ContainsKey(h))
                        {
                            knmp.Names[h] = cs;
                        }
                        h = FNVHash.HashString64(cs);
                        if (!knmp.Names.ContainsKey(h))
                        {
                            knmp.Names[h] = cs;
                        }
                    }
                    s = string.Concat(s, ".ma");
                    h = FNVHash.HashString32(s);
                    if (!knmp.Names.ContainsKey(h))
                    {
                        knmp.Names[h] = s;
                    }
                    h = FNVHash.HashString64(s);
                    if (!knmp.Names.ContainsKey(h))
                    {
                        knmp.Names[h] = s;
                    }
                }
            }
        }