コード例 #1
0
        public void ParseAll(SR1_Reader reader)
        {
            if (reader.Events == null)
            {
                return;
            }

            unsafe
            {
                foreach (Event scriptEvent in reader.Events.events)
                {
                    SR1_StructureArray <ScriptPCode> conditionals        = scriptEvent.conditionals;
                    SR1_StructureArray <ScriptPCode> actions             = scriptEvent.actions;
                    SR1_PointerArray <ScriptPCode>   conditionalPointers = scriptEvent.conditionalPointers;
                    SR1_PointerArray <ScriptPCode>   actionPointers      = scriptEvent.actionPointers;
                    reader.LogScript("// Event " + scriptEvent.eventNumber + " \r\n");
                    int c = 0;
                    int a = 0;

                    for (int b = 0; b < scriptEvent.numActions.Value; b++)
                    {
                        reader.LogScript("\t// Event " + scriptEvent.eventNumber + ", Action " + b.ToString() + " \r\n");

                        if (conditionalPointers[c].Offset != 0)
                        {
                            Parse(reader, scriptEvent, ScriptType.Condition, ((ScriptPCode)conditionals[c]).dataBuf);
                            c++;
                        }

                        if (actionPointers[a].Offset != 0)
                        {
                            Parse(reader, scriptEvent, ScriptType.Action, ((ScriptPCode)actions[a]).dataBuf);
                            a++;
                        }
                    }
                }
            }
        }
コード例 #2
0
 public Events(int numEvents)
     : base()
 {
     events = new SR1_StructureArray <Event>(numEvents);
 }