internal TriggersBlockBase(BinaryReader binaryReader) { this.name = binaryReader.ReadString32(); this.triggerFlags = (TriggerFlags)binaryReader.ReadInt32(); this.combinationRule = (CombinationRule)binaryReader.ReadInt16(); this.invalidName_ = binaryReader.ReadBytes(2); this.conditions = ReadOrderCompletionConditionArray(binaryReader); }
internal OrderEndingBlockBase(BinaryReader binaryReader) { this.nextOrder = binaryReader.ReadShortBlockIndex1(); this.combinationRule = (CombinationRule)binaryReader.ReadInt16(); this.delayTime = binaryReader.ReadSingle(); this.dialogueType = (DialogueTypeWhenThisEndingIsTriggeredLaunchADialogueEventOfTheGivenType)binaryReader.ReadInt16(); this.invalidName_ = binaryReader.ReadBytes(2); this.triggers = ReadTriggerReferencesArray(binaryReader); }
// Make loads for export from combination rules private void applyCombinationRule(CombinationRule rule) { //Prepare new load LoadForExport combinedLoad = new LoadForExport(); combinedLoad.name = rule.name; // Take bytes' count from 1st load combinedLoad.bytes = new byte[this.loads[0].bytes.Length]; // Combine byte by byte for (int i=0; i < combinedLoad.bytes.Length; i += 4) { // Combine only necessary sections in members if (this.sections[(int)((i % (13 * 4 * 6)) / (6 * 4))] == true) { // Prepare array with values float[] arrayValues = new float[this.loadsCount]; // Prepare array with frequencies double[] arrayFrequencies = new double[this.loadsCount]; // Fill array for (int k = 0; k < this.loadsCount; k++) { //Read 4 bytes arrayValues[k] = BitConverter.ToSingle(this.loads[k].bytes, i); //Get frequency arrayFrequencies[k] = this.loads[k].frequency; } //Combine array float result = (float)rule.combine(arrayValues, arrayFrequencies); //Write value to combined load Array.Copy(BitConverter.GetBytes(result), 0, combinedLoad.bytes, i, 4); } } // Add combined load this.loads.Add(combinedLoad); }
internal SecondarySetTriggerBlockBase(BinaryReader binaryReader) { this.combinationRule = (CombinationRule)binaryReader.ReadInt16(); this.dialogueType = (DialogueTypeWhenThisEndingIsTriggeredLaunchADialogueEventOfTheGivenType)binaryReader.ReadInt16(); this.triggers = ReadTriggerReferencesArray(binaryReader); }
public TriggersBlock(BinaryReader binaryReader) { this.name = binaryReader.ReadString32(); this.triggerFlags = (TriggerFlags)binaryReader.ReadInt32(); this.combinationRule = (CombinationRule)binaryReader.ReadInt16(); this.padding = binaryReader.ReadBytes(2); { var count = binaryReader.ReadInt32(); var address = binaryReader.ReadInt32(); var elementSize = Marshal.SizeOf(typeof(OrderCompletionCondition)); this.conditions = new OrderCompletionCondition[count]; using (binaryReader.BaseStream.Pin()) { for (int i = 0; i < count; ++i) { binaryReader.BaseStream.Position = address + i * elementSize; this.conditions[i] = new OrderCompletionCondition(binaryReader); } } } }
public OrderEndingBlock(BinaryReader binaryReader) { this.nextOrder = binaryReader.ReadShortBlockIndex1(); this.combinationRule = (CombinationRule)binaryReader.ReadInt16(); this.delayTime = binaryReader.ReadSingle(); this.dialogueTypeWhenThisEndingIsTriggeredLaunchADialogueEventOfTheGivenType = (DialogueTypeWhenThisEndingIsTriggeredLaunchADialogueEventOfTheGivenType)binaryReader.ReadInt16(); this.padding = binaryReader.ReadBytes(2); { var count = binaryReader.ReadInt32(); var address = binaryReader.ReadInt32(); var elementSize = Marshal.SizeOf(typeof(TriggerReferences)); this.triggers = new TriggerReferences[count]; using (binaryReader.BaseStream.Pin()) { for (int i = 0; i < count; ++i) { binaryReader.BaseStream.Position = address + i * elementSize; this.triggers[i] = new TriggerReferences(binaryReader); } } } }
public SecondarySetTriggerBlock(BinaryReader binaryReader) { this.combinationRule = (CombinationRule)binaryReader.ReadInt16(); this.dialogueTypeWhenThisEndingIsTriggeredLaunchADialogueEventOfTheGivenType = (DialogueTypeWhenThisEndingIsTriggeredLaunchADialogueEventOfTheGivenType)binaryReader.ReadInt16(); { var count = binaryReader.ReadInt32(); var address = binaryReader.ReadInt32(); var elementSize = Marshal.SizeOf(typeof(TriggerReferences)); this.triggers = new TriggerReferences[count]; using (binaryReader.BaseStream.Pin()) { for (int i = 0; i < count; ++i) { binaryReader.BaseStream.Position = address + i * elementSize; this.triggers[i] = new TriggerReferences(binaryReader); } } } }
public AiSceneTriggerBlock(BinaryReader binaryReader) { this.combinationRule = (CombinationRule)binaryReader.ReadInt16(); this.padding = binaryReader.ReadBytes(2); { var count = binaryReader.ReadInt32(); var address = binaryReader.ReadInt32(); var elementSize = Marshal.SizeOf(typeof(TriggerReferences)); this.triggers = new TriggerReferences[count]; using (binaryReader.BaseStream.Pin()) { for (int i = 0; i < count; ++i) { binaryReader.BaseStream.Position = address + i * elementSize; this.triggers[i] = new TriggerReferences(binaryReader); } } } }
internal AiSceneTriggerBlockBase(BinaryReader binaryReader) { this.combinationRule = (CombinationRule)binaryReader.ReadInt16(); this.invalidName_ = binaryReader.ReadBytes(2); this.triggers = ReadTriggerReferencesArray(binaryReader); }