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); }
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); }
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); }
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); }
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(); }
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 { } }
public void RemoveStat(CHandle <gameStatModifierData_Deprecated> statsHandle, gameSavedStatsData statsData) { statsData.StatModifiers.Remove(statsHandle); }