public void WriteTo(BinaryWriter writer, MapTriggersFormatVersion formatVersion) { writer.Write((int)_type); if (_branch != -1) { writer.Write(_branch); } writer.WriteString(_name); writer.WriteBool(_isEnabled); foreach (var parameter in _parameters) { parameter.WriteTo(writer, formatVersion); } if (formatVersion >= MapTriggersFormatVersion.Tft) { writer.Write(_nestedFunctions.Count); foreach (var nestedFunction in _nestedFunctions) { nestedFunction.WriteTo(writer, formatVersion); } } }
internal void ReadFrom(BinaryReader reader, TriggerData triggerData, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) { Id = reader.ReadInt32(); Name = "<DELETED>"; ParentId = -1; }
internal override void WriteTo(BinaryWriter writer, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) { if (subVersion is not null) { writer.Write(Id); } }
public static TriggerFunction Parse(Stream stream, TriggerData triggerData, MapTriggersFormatVersion formatVersion, bool isChildFunction, bool leaveOpen) { var function = new TriggerFunction(); using (var reader = new BinaryReader(stream, new UTF8Encoding(false, true), leaveOpen)) { function._type = reader.ReadInt32 <TriggerFunctionType>(); function._branch = isChildFunction ? reader.ReadInt32() : -1; function._name = reader.ReadChars(); function._isEnabled = reader.ReadBool(); var parameterCount = triggerData.GetParameterCount(function._type, function._name); for (var i = 0; i < parameterCount; i++) { function._parameters.Add(TriggerFunctionParameter.Parse(stream, triggerData, formatVersion, true)); } if (formatVersion >= MapTriggersFormatVersion.Tft) { var nestedfunctionCount = reader.ReadInt32(); if (nestedfunctionCount > 0) { for (var i = 0; i < nestedfunctionCount; i++) { function._nestedFunctions.Add(Parse(stream, triggerData, formatVersion, true, true)); } } } } return(function); }
public static VariableDefinition Parse(Stream stream, MapTriggersFormatVersion formatVersion, bool useNewFormat, bool leaveOpen) { var variable = new VariableDefinition(); using (var reader = new BinaryReader(stream, new UTF8Encoding(false, true), leaveOpen)) { variable._name = reader.ReadChars(); variable._type = reader.ReadChars(); variable._unk = reader.ReadInt32(); variable._isArray = reader.ReadBool(); if (formatVersion >= MapTriggersFormatVersion.Tft) { variable._arraySize = reader.ReadInt32(); } variable._isInitialized = reader.ReadBool(); variable._initialValue = reader.ReadChars(); if (useNewFormat) { variable._id = reader.ReadInt32(); variable._parentId = reader.ReadInt32(); } } return(variable); }
public void WriteTo(BinaryWriter writer, MapTriggersFormatVersion formatVersion) { writer.Write((int)_type); writer.WriteString(_value); writer.WriteBool(!(_function is null)); _function?.WriteTo(writer, formatVersion); writer.WriteBool(!(_arrayIndexer is null)); _arrayIndexer?.WriteTo(writer, formatVersion); }
internal override void WriteTo(BinaryWriter writer, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) { writer.Write(Id); writer.WriteString(Name); if (formatVersion >= MapTriggersFormatVersion.Tft) { writer.WriteBool(IsComment); } if (subVersion is not null) { writer.Write(Unk); writer.Write(ParentId); } }
internal void ReadFrom(BinaryReader reader, TriggerData triggerData, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) { Id = reader.ReadInt32(); Name = reader.ReadChars(); if (formatVersion >= MapTriggersFormatVersion.Tft) { IsComment = reader.ReadBool(); } if (subVersion is not null) { Unk = reader.ReadInt32(); ParentId = reader.ReadInt32(); } }
internal void ReadFrom(BinaryReader reader, TriggerData triggerData, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) { Name = reader.ReadChars(); Type = reader.ReadChars(); Unk = reader.ReadInt32(); IsArray = reader.ReadBool(); if (formatVersion >= MapTriggersFormatVersion.Tft) { ArraySize = reader.ReadInt32(); } IsInitialized = reader.ReadBool(); InitialValue = reader.ReadChars(); if (subVersion is not null) { Id = reader.ReadInt32(); ParentId = reader.ReadInt32(); } }
public void WriteTo(BinaryWriter writer, MapTriggersFormatVersion formatVersion, bool useNewFormat) { writer.WriteString(_name); writer.WriteString(_type); writer.Write(_unk); writer.WriteBool(_isArray); if (formatVersion >= MapTriggersFormatVersion.Tft) { writer.Write(_arraySize); } writer.WriteBool(_isInitialized); writer.WriteString(_initialValue); if (useNewFormat) { writer.Write(_id); writer.Write(_parentId); } }
internal void WriteTo(BinaryWriter writer, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) { writer.WriteString(Name); writer.WriteString(Type); writer.Write(Unk); writer.WriteBool(IsArray); if (formatVersion >= MapTriggersFormatVersion.Tft) { writer.Write(ArraySize); } writer.WriteBool(IsInitialized); writer.WriteString(InitialValue); if (subVersion is not null) { writer.Write(Id); writer.Write(ParentId); } }
public abstract void WriteTo(BinaryWriter writer, MapTriggersFormatVersion formatVersion, bool useNewFormat);
public static void Write(this BinaryWriter writer, VariableDefinition variableDefinition, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) => variableDefinition.WriteTo(writer, formatVersion, subVersion);
public static void Write(this BinaryWriter writer, TriggerFunctionParameter triggerFunctionParameter, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) => triggerFunctionParameter.WriteTo(writer, formatVersion, subVersion);
public static TriggerFunctionParameter Parse(Stream stream, TriggerData triggerData, MapTriggersFormatVersion formatVersion, bool leaveOpen) { var parameter = new TriggerFunctionParameter(); using (var reader = new BinaryReader(stream, new UTF8Encoding(false, true), leaveOpen)) { parameter._type = reader.ReadInt32 <TriggerFunctionParameterType>(); parameter._value = reader.ReadChars(); var haveFunction = reader.ReadBool(); if (haveFunction) { if (parameter._type != TriggerFunctionParameterType.Function) { throw new InvalidDataException($"Parameter must be of type '{TriggerFunctionParameterType.Function}' to have a function."); } parameter._function = TriggerFunction.Parse(stream, triggerData, formatVersion, false, true); } var haveArrayIndexer = reader.ReadBool(); if (haveArrayIndexer) { if (parameter._type != TriggerFunctionParameterType.Variable) { throw new InvalidDataException($"Parameter must be of type '{TriggerFunctionParameterType.Variable}' to have an array indexer."); } parameter._arrayIndexer = Parse(stream, triggerData, formatVersion, true); } } return(parameter); }
public static void Write(this BinaryWriter writer, TriggerItem triggerItem, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) => triggerItem.WriteTo(writer, formatVersion, subVersion);
internal VariableDefinition(BinaryReader reader, TriggerData triggerData, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) { ReadFrom(reader, triggerData, formatVersion, subVersion); }
public static DeletedTriggerItem ReadDeletedTriggerItem(this BinaryReader reader, TriggerItemType triggerItemType, TriggerData triggerData, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) => new DeletedTriggerItem(reader, triggerItemType, triggerData, formatVersion, subVersion);
internal TriggerFunctionParameter(BinaryReader reader, TriggerData triggerData, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) { ReadFrom(reader, triggerData, formatVersion, subVersion); }
public static TriggerFunctionParameter ReadTriggerFunctionParameter(this BinaryReader reader, TriggerData triggerData, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) => new TriggerFunctionParameter(reader, triggerData, formatVersion, subVersion);
public static VariableDefinition ReadVariableDefinition(this BinaryReader reader, TriggerData triggerData, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) => new VariableDefinition(reader, triggerData, formatVersion, subVersion);
public static TriggerDefinition ReadTriggerDefinition(this BinaryReader reader, TriggerItemType triggerItemType, TriggerData triggerData, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) => new TriggerDefinition(reader, triggerItemType, triggerData, formatVersion, subVersion);
internal override void WriteTo(BinaryWriter writer, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) { writer.Write(Id); writer.WriteString(Name); writer.Write(ParentId); }
public static TriggerFunction ReadTriggerFunction(this BinaryReader reader, TriggerData triggerData, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion, bool isChildFunction) => new TriggerFunction(reader, triggerData, formatVersion, subVersion, isChildFunction);
/// <summary> /// Initializes a new instance of the <see cref="MapTriggers"/> class. /// </summary> /// <param name="formatVersion"></param> /// <param name="subVersion"></param> public MapTriggers(MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) { FormatVersion = formatVersion; SubVersion = subVersion; }
internal TriggerDefinition(BinaryReader reader, TriggerItemType triggerItemType, TriggerData triggerData, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion) : base(triggerItemType) { ReadFrom(reader, triggerData, formatVersion, subVersion); }
internal TriggerFunction(BinaryReader reader, TriggerData triggerData, MapTriggersFormatVersion formatVersion, MapTriggersSubVersion?subVersion, bool isChildFunction) { ReadFrom(reader, triggerData, formatVersion, subVersion, isChildFunction); }