Esempio n. 1
0
        public override IRedHandle <T> ReadCHandle <T>()
        {
            var handle = new CHandle <T>();

            int pointer;

            if (header.version == 2)
            {
                pointer = _reader.ReadInt16();
            }
            else if (header.version == 3 || header.version == 04)
            {
                pointer = _reader.ReadInt32();
            }
            else
            {
                throw new NotImplementedException(nameof(ReadCHandle));
            }

            if (!HandleQueue.ContainsKey(pointer))
            {
                HandleQueue.Add(pointer, new List <IRedBaseHandle>());
            }

            HandleQueue[pointer].Add(handle);

            return(handle);
        }
Esempio n. 2
0
        public CHandle CreateHandle(string type, string handle, string varname = "")
        {
            var reg        = new Regex(@"(\w+):(.+)");
            var match      = reg.Match(type);
            var targetType = type;

            if (match.Success)
            {
                targetType = match.Groups[2].Value;
            }

            if (handle != null)
            {
                handle = handle.Replace('/', '\\');
            }
            var ptr = new CHandle(this);

            ptr.Name = varname;
            ptr.Type = type;

            ptr.Handle   = handle;
            ptr.FileType = targetType;

            return(ptr);
        }
Esempio n. 3
0
        public CHandle <gameStatModifierData_Deprecated> AddStat(Type statType, gameSavedStatsData statsData, gameStatModifierData_Deprecated modifierData = null)
        {
            var newModifierData = System.Activator.CreateInstance(statType);

            if (statType == typeof(gameCurveStatModifierData_Deprecated))
            {
                ((gameCurveStatModifierData_Deprecated)newModifierData).ColumnName = "<null>";
                ((gameCurveStatModifierData_Deprecated)newModifierData).CurveName  = "<null>";
            }

            if (modifierData != null)
            {
                newModifierData = modifierData;
            }

            var final = new CHandle <gameStatModifierData_Deprecated>((gameStatModifierData_Deprecated)newModifierData);

            statsData.StatModifiers.Add(final);

            return(final);
        }
Esempio n. 4
0
        public CHandle CreateHandle(string type, string handle, string varname = "")
        {
            var match = new Regex("(\\w+):(.+)").Match(type);
            var str   = type;

            if (match.Success)
            {
                str = match.Groups[2].Value;
            }
            if (handle != null)
            {
                handle = handle.Replace('/', '\\');
            }
            var chandle = new CHandle(this);

            chandle.Name     = varname;
            chandle.Type     = type;
            chandle.Handle   = handle;
            chandle.FileType = str;
            return(chandle);
        }
Esempio n. 5
0
        public void LoadStat(CHandle <gameStatModifierData_Deprecated> stat, Func <bool> callback)
        {
            callbackFunc = callback;
            activeStat   = stat;

            if (stat.Chunk is gameCombinedStatModifierData_Deprecated comStat)
            {
                statTabControl.TabPages.Remove(constantStatTab);
                statTabControl.TabPages.Remove(curveStatTab);

                combinedModifier.Text    = comStat.ModifierType.ToString();
                combinedOperation.Text   = comStat.Operation.ToString();
                combinedRefObject.Text   = comStat.RefObject.ToString();
                combinedRefStatType.Text = comStat.RefStatType.ToString();
                combinedStatType.Text    = comStat.StatType.ToString();
                combinedValue.Text       = comStat.Value.ToString();
            }
            else if (stat.Chunk is gameConstantStatModifierData_Deprecated constantStat)
            {
                statTabControl.TabPages.Remove(combinedStatTab);
                statTabControl.TabPages.Remove(curveStatTab);

                constantModifier.Text = constantStat.ModifierType.ToString();
                constantStatType.Text = constantStat.StatType.ToString();
                constantValue.Text    = constantStat.Value.ToString();
            }
            else if (stat.Chunk is gameCurveStatModifierData_Deprecated curvStat)
            {
                statTabControl.TabPages.Remove(constantStatTab);
                statTabControl.TabPages.Remove(combinedStatTab);

                curveColumnName.Text = curvStat.ColumnName.ToString();
                curveName.Text       = curvStat.CurveName.ToString();
                curveStat.Text       = curvStat.CurveStat.ToString();
                curveModifier.Text   = curvStat.ModifierType.ToString();
                curveStatType.Text   = curvStat.StatType.ToString();
            }

            this.ShowDialog();
        }
Esempio n. 6
0
        private void ReadBytes(int bytestart, BinaryReader reader)
        {
            reader.BaseStream.Seek(bytestart, SeekOrigin.Begin);

            try
            {
                var obj = new CVector(File);
                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CVector";
            }
            catch
            {
            }

            reader.BaseStream.Seek(bytestart, SeekOrigin.Begin);

            try
            {
                var obj = new CUInt64(File);
                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CUInt64";
            }
            catch
            {
            }

            reader.BaseStream.Seek(bytestart, SeekOrigin.Begin);

            try
            {
                var obj = new CUInt32(File);
                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CUInt32";
            }
            catch
            {
            }


            reader.BaseStream.Seek(bytestart, SeekOrigin.Begin);

            try
            {
                var obj = new CUInt16(File);
                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CUInt16";
            }
            catch
            {
            }

            reader.BaseStream.Seek(bytestart, SeekOrigin.Begin);

            try
            {
                var obj = new CUInt8(File);

                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CUInt8";
            }
            catch
            {
            }

            reader.BaseStream.Seek(bytestart, SeekOrigin.Begin);

            try
            {
                var obj = new CDynamicInt(File);
                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CDynamicInt";
            }
            catch
            {
            }

            reader.BaseStream.Seek(bytestart, SeekOrigin.Begin);

            try
            {
                var obj = new CFloat(File);
                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CFloat";
            }
            catch
            {
            }

            reader.BaseStream.Seek(bytestart, SeekOrigin.Begin);

            try
            {
                var obj = new CName(File);

                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CName";

                var valueTest = v.Value;
            }
            catch
            {
            }

            reader.BaseStream.Seek(bytestart, SeekOrigin.Begin);

            try
            {
                var obj = new CHandle(File);

                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CHandle";

                var valueTest = v.Value;
            }
            catch
            {
            }

            reader.BaseStream.Seek(bytestart, SeekOrigin.Begin);

            try
            {
                var obj = new CSoft(File);

                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "CSoft";

                var valueTest = v.Value;
            }
            catch
            {
            }

            reader.BaseStream.Seek(bytestart, SeekOrigin.Begin);

            try
            {
                var obj = File.ReadVariable(reader);

                obj.Read(reader, (uint)(bytes.Length - bytestart));
                var v = CreatePropertyLayout(obj);
                v.Endpos   = (int)reader.BaseStream.Position;
                v.HexValue = bytes[bytestart].ToString("X2");
                v.Method   = "ReadVariable";
            }
            catch
            {
            }
        }
Esempio n. 7
0
 public void RemoveStat(CHandle <gameStatModifierData_Deprecated> statsHandle, gameSavedStatsData statsData)
 {
     statsData.StatModifiers.Remove(statsHandle);
 }