コード例 #1
0
 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);
 }
コード例 #2
0
 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);
 }
コード例 #3
0
        // 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);
        }
コード例 #4
0
 internal SecondarySetTriggerBlockBase(BinaryReader binaryReader)
 {
     this.combinationRule = (CombinationRule)binaryReader.ReadInt16();
     this.dialogueType    = (DialogueTypeWhenThisEndingIsTriggeredLaunchADialogueEventOfTheGivenType)binaryReader.ReadInt16();
     this.triggers        = ReadTriggerReferencesArray(binaryReader);
 }
コード例 #5
0
 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);
             }
         }
     }
 }
コード例 #6
0
 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);
             }
         }
     }
 }
コード例 #7
0
 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);
             }
         }
     }
 }
コード例 #8
0
 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);
             }
         }
     }
 }
コード例 #9
0
 internal AiSceneTriggerBlockBase(BinaryReader binaryReader)
 {
     this.combinationRule = (CombinationRule)binaryReader.ReadInt16();
     this.invalidName_    = binaryReader.ReadBytes(2);
     this.triggers        = ReadTriggerReferencesArray(binaryReader);
 }