Exemplo n.º 1
0
        //シナリオデータとして解析
        public void Init(AdvSettingDataManager dataManager, AdvMacroManager macroManger)
        {
            isInit = false;
            List <AdvCommand> commandList = new List <AdvCommand>();

            foreach (StringGridRow row in DataGrid.Rows)
            {
                if (row.RowIndex < DataGrid.DataTopRow)
                {
                    continue;                                                                           //データの行じゃない
                }
                if (row.IsEmptyOrCommantOut)
                {
                    continue;                                                                                                   //データがない
                }
                List <AdvCommand> macroCommnadList;
                AdvCommand.StartCheckEntity(dataManager.DefaultParam.GetParameter);
                bool isMacro = macroManger.TryParseMacro(row, dataManager, out macroCommnadList);
                AdvCommand.EndCheckEntity();
                if (isMacro)
                {
                    //マクロの場合
                    commandList.AddRange(macroCommnadList);
                }
                else
                {
                    //通常コマンド
                    AdvCommand command = AdvCommandParser.CreateCommand(row, dataManager);
                    if (null != command)
                    {
                        commandList.Add(command);
                    }
                }
            }
            //選択肢終了などの特別なコマンドを自動解析して追加
            AddExtraCommand(commandList, dataManager);
            //シナリオラベルデータを作成
            MakeScanerioLabelData(commandList);
            isInit = true;
        }