コード例 #1
0
 public BpmInterpreter(string[] string0)
 {
     for (var i = 0; i < string0.Length; i++)
     {
         var text  = string0[i];
         var array = text.Split(new[]
         {
             ' ',
             '\t',
             '='
         }, StringSplitOptions.RemoveEmptyEntries);
         var    num  = ChartParser.GetNoteFromResolution(array[0]);
         var    num2 = Convert.ToInt32(array[2]);
         string a;
         if ((a = array[1]) != null)
         {
             if (!(a == "TS"))
             {
                 if (a == "B" && (BpmList.Count == 0 || BpmList[num] != num2))
                 {
                     BpmList.Add(num, num2);
                 }
             }
             else if (TsList.Count == 0 || TsList[num] != num2)
             {
                 TsList.Add(num, num2);
             }
         }
     }
     if (!TsList.ContainsKey(0))
     {
         TsList.Add(0, 4);
     }
 }
コード例 #2
0
ファイル: InstrumentType.cs プロジェクト: uwx/Open-GHTCP
 public InstrumentType(string[] string0) : this()
 {
     if (string0.Length != 0)
     {
         for (var i = 0; i < string0.Length; i++)
         {
             var text  = string0[i];
             var array = text.Split(new[]
             {
                 ' ',
                 '\t',
                 '=',
                 '"',
                 'E'
             }, StringSplitOptions.RemoveEmptyEntries);
             method_5(ChartParser.GetNoteFromResolution(array[0]), array[1]);
         }
     }
 }
コード例 #3
0
 public SectionInterpreter(string[] string0)
 {
     for (var i = 0; i < string0.Length; i++)
     {
         var text  = string0[i];
         var array = text.Split(new[]
         {
             '=',
             '"'
         }, 3, StringSplitOptions.RemoveEmptyEntries);
         if (array.Length == 3 && !(array[1].Trim() != "E"))
         {
             array[2] = array[2].TrimEnd(' ', '\t');
             if (array[2].EndsWith("\""))
             {
                 array[2] = array[2].Substring(0, array[2].Length - 1);
             }
             var num = ChartParser.GetNoteFromResolution(array[0].Trim());
             if (array[2].StartsWith("section "))
             {
                 SectionList.Add(num,
                                 CultureInfo.CurrentCulture.TextInfo.ToTitleCase(array[2]
                                                                                 .Substring("section ".Length)
                                                                                 .Replace('_', ' ')));
             }
             else if (OtherList.ContainsKey(num))
             {
                 OtherList[num].Add(array[2]);
             }
             else
             {
                 OtherList.Add(num, new List <string>());
                 OtherList[num].Add(array[2]);
             }
         }
     }
 }
コード例 #4
0
        public NoteEventInterpreter(string[] stringImported, int constant480)
        {
            if (!(AlwaysTrue = (stringImported.Length == 0))) //If string is empty
            {
                //Cycles through the string array imported (All notes/SP)
                for (var i = 0; i < stringImported.Length; i++)
                {
                    var currentString = stringImported[i];

                    /*
                     * Indexes:
                     * 0=Offset
                     * 1=Event Type
                     * 2=Note Value
                     * 3=Sustain Length
                     */
                    var notesEventsArray = currentString.Split(new[]
                    {
                        ' ',
                        '\t',
                        '='
                    }, StringSplitOptions.RemoveEmptyEntries);
                    var    offset = ChartParser.GetNoteFromResolution(notesEventsArray[0]);
                    string eventType;
                    if ((eventType = notesEventsArray[1]) != null)
                    {
                        if (!(eventType == "N"))
                        {
                            if (!(eventType == "S"))
                            {
                                if (eventType == "E")
                                {
                                    //Interprets Events
                                    if (EventList.ContainsKey(offset))
                                    {
                                        _currentEventLine = notesEventsArray[2];
                                        for (var j = 3; j < notesEventsArray.Length; j++)
                                        {
                                            _currentEventLine = _currentEventLine + " " + notesEventsArray[j];
                                        }
                                        EventList[offset].Add(_currentEventLine);
                                    }
                                    else
                                    {
                                        _currentEventLine = notesEventsArray[2];
                                        for (var k = 3; k < notesEventsArray.Length; k++)
                                        {
                                            _currentEventLine = _currentEventLine + " " + notesEventsArray[k];
                                        }
                                        EventList.Add(offset, new List <string>());
                                        EventList[offset].Add(_currentEventLine);
                                    }
                                }
                            }
                            //Interprets Starpower
                            else
                            {
                                switch (Convert.ToInt32(notesEventsArray[2]))
                                {
                                case 0:
                                    if (!Class2282.ContainsKey(offset))
                                    {
                                        Class2282.Add(offset,
                                                      ChartParser.GetNoteFromResolution(notesEventsArray[3]));
                                    }
                                    break;

                                case 1:
                                    if (!Class2283.ContainsKey(offset))
                                    {
                                        Class2283.Add(offset,
                                                      ChartParser.GetNoteFromResolution(notesEventsArray[3]));
                                    }
                                    break;

                                case 2:
                                    if (!Class2281.ContainsKey(offset))
                                    {
                                        Class2281.Add(offset,
                                                      ChartParser.GetNoteFromResolution(notesEventsArray[3]));
                                    }
                                    break;

                                case 3:
                                    if (!Class2284.ContainsKey(offset))
                                    {
                                        Class2284.Add(offset,
                                                      ChartParser.GetNoteFromResolution(notesEventsArray[3]));
                                    }
                                    break;

                                case 4:
                                    if (!Class2285.ContainsKey(offset))
                                    {
                                        Class2285.Add(offset,
                                                      ChartParser.GetNoteFromResolution(notesEventsArray[3]));
                                    }
                                    break;

                                case 5:
                                    if (!Class2286.ContainsKey(offset))
                                    {
                                        Class2286.Add(offset,
                                                      ChartParser.GetNoteFromResolution(notesEventsArray[3]));
                                    }
                                    break;
                                }
                            }
                        }
                        //Interprets Notes

                        /*
                         * Indexes:
                         * 0=Offset
                         * 1=Event Type
                         * 2=Note Value
                         * 3=Sustain Length
                         */
                        else
                        {
                            var notes         = new bool[32];
                            var sustainLength = ChartParser.GetNoteFromResolution(notesEventsArray[3]);
                            if (sustainLength <= constant480 / 4)
                            {
                                sustainLength = 0;
                            }
                            if (!NoteList.ContainsKey(offset))
                            {
                                NoteList.Add(offset, new NotesAtOffset(notes, sustainLength));
                            }
                            else
                            {
                                var currentSustainLength = NoteList[offset].SustainLength;
                                //Updates sustain length
                                if (currentSustainLength < sustainLength)
                                {
                                    NoteList[offset].SustainLength = sustainLength;
                                }
                            }
                            var note = Convert.ToInt32(notesEventsArray[2]);
                            NoteList[offset].NoteValues[note] = true;
                        }
                    }
                }
            }
        }