Beispiel #1
0
 public void t全チップの選択を解除する()
 {
     this._Form.mgrUndoRedo管理者.tトランザクション記録を開始する();
     foreach (KeyValuePair <int, CMeasure> pair in this.mgr譜面管理者ref.dic小節)
     {
         CMeasure c小節 = pair.Value;
         for (int j = 0; j < c小節.listチップ.Count; j++)
         {
             CChip cチップ = c小節.listチップ[j];
             if (cチップ.n枠外レーン数 != 0)
             {
                 CChip cc = new CChip();
                 cc.tコピーfrom(cチップ);
                 CChipLocationUndoRedo redo = new CChipLocationUndoRedo(c小節.n小節番号0to3599, cc);
                 this._Form.mgrUndoRedo管理者.tノードを追加する(new CUndoRedoCell <CChipLocationUndoRedo>(null, new DGUndoを実行する <CChipLocationUndoRedo>(this.mgr譜面管理者ref.tチップ削除のUndo), new DGRedoを実行する <CChipLocationUndoRedo>(this.mgr譜面管理者ref.tチップ削除のRedo), redo, redo));
                 c小節.listチップ.Remove(cチップ);
                 j = -1;
             }
         }
     }
     for (int i = 0; i < this.mgr譜面管理者ref.dic小節.Count; i++)
     {
         CMeasure c小節2 = this.mgr譜面管理者ref.dic小節[i];
         for (int k = 0; k < c小節2.listチップ.Count; k++)
         {
             CChip cチップ3 = c小節2.listチップ[k];
             if (cチップ3.b確定選択中 || cチップ3.bドラッグで選択中)
             {
                 this.mgr譜面管理者ref.bOPENチップである(cチップ3);
                 for (int m = 0; m < c小節2.listチップ.Count; m++)
                 {
                     CChip cチップ4 = c小節2.listチップ[m];
                     if (((k != m) && (cチップ3.nレーン番号0to == cチップ4.nレーン番号0to)) && ((cチップ3.n位置grid == cチップ4.n位置grid) && !cチップ4.b確定選択中))
                     {
                         CChip cチップ5 = new CChip();
                         cチップ5.tコピーfrom(cチップ4);
                         CChipLocationUndoRedo redo2 = new CChipLocationUndoRedo(c小節2.n小節番号0to3599, cチップ5);
                         this._Form.mgrUndoRedo管理者.tノードを追加する(new CUndoRedoCell <CChipLocationUndoRedo>(null, new DGUndoを実行する <CChipLocationUndoRedo>(this.mgr譜面管理者ref.tチップ削除のUndo), new DGRedoを実行する <CChipLocationUndoRedo>(this.mgr譜面管理者ref.tチップ削除のRedo), redo2, redo2));
                         c小節2.listチップ.RemoveAt(m);
                         k = -1;
                         break;
                     }
                 }
             }
         }
     }
     foreach (KeyValuePair <int, CMeasure> pair2 in this.mgr譜面管理者ref.dic小節)
     {
         CMeasure c小節3 = pair2.Value;
         for (int n = 0; n < c小節3.listチップ.Count; n++)
         {
             CChip cチップ6 = c小節3.listチップ[n];
             if (cチップ6.b確定選択中)
             {
                 CChipPositionUndoRedo redo3 = new CChipPositionUndoRedo(c小節3.n小節番号0to3599, cチップ6.nレーン番号0to, cチップ6.n位置grid, cチップ6.n値_整数1to1295);
                 this._Form.mgrUndoRedo管理者.tノードを追加する(new CUndoRedoCell <CChipPositionUndoRedo>(null, new DGUndoを実行する <CChipPositionUndoRedo>(this.mgr譜面管理者ref.tチップ選択解除のUndo), new DGRedoを実行する <CChipPositionUndoRedo>(this.mgr譜面管理者ref.tチップ選択解除のRedo), redo3, redo3));
                 cチップ6.b移動済      = false;
                 cチップ6.bドラッグで選択中 = false;
                 cチップ6.b確定選択中    = false;
             }
         }
     }
     this._Form.mgrUndoRedo管理者.tトランザクション記録を終了する();
     this._Form.tUndoRedo用GUIの有効_無効を設定する();
 }
Beispiel #2
0
 public void tチップを指定位置から貼り付ける(CMeasure cs配置開始小節, int n貼り付け先頭grid)
 {
     if (this.cbボード.Count != 0)
     {
         List <CClipCell> list = new List <CClipCell>();
         foreach (CClipCell cクリップセル in this.cbボード)
         {
             CClipCell item = new CClipCell();
             item.pチップ = new CChip();
             item.pチップ.tコピーfrom(cクリップセル.pチップ);
             item.nレーン番号  = cクリップセル.nレーン番号;
             item.n位置grid = cクリップセル.n位置grid;
             item.b貼り付け済  = false;
             list.Add(item);
         }
         int num = list[0].n位置grid;
         foreach (CClipCell cクリップセル3 in list)
         {
             if (cクリップセル3.n位置grid < num)
             {
                 num = cクリップセル3.n位置grid;
             }
         }
         for (int i = 0; i < list.Count; i++)
         {
             CClipCell local1 = list[i];
             local1.n位置grid -= num;
             CClipCell local2 = list[i];
             local2.n位置grid += n貼り付け先頭grid;
         }
         this._Form.mgrUndoRedo管理者.tトランザクション記録を開始する();
         CMeasure c小節 = cs配置開始小節;
         for (int j = 0; j < list.Count; j++)
         {
             int num4 = list[j].n位置grid;
             if ((num4 >= 0) && (num4 < c小節.n小節長倍率を考慮した現在の小節の高さgrid))
             {
                 CChip cチップ = new CChip();
                 cチップ.tコピーfrom(list[j].pチップ);
                 cチップ.n位置grid   = num4;
                 cチップ.bドラッグで選択中 = false;
                 cチップ.b確定選択中    = true;
                 c小節.listチップ.Add(cチップ);
                 CChip cc = new CChip();
                 cc.tコピーfrom(cチップ);
                 CChipLocationUndoRedo redo = new CChipLocationUndoRedo(c小節.n小節番号0to3599, cc);
                 this._Form.mgrUndoRedo管理者.tノードを追加する(new CUndoRedoCell <CChipLocationUndoRedo>(null, new DGUndoを実行する <CChipLocationUndoRedo>(this._Form.mgr譜面管理者.tチップ配置のUndo), new DGRedoを実行する <CChipLocationUndoRedo>(this._Form.mgr譜面管理者.tチップ配置のRedo), redo, redo));
                 c小節 = cs配置開始小節;
             }
             else
             {
                 CClipCell local3 = list[j];
                 local3.n位置grid -= c小節.n小節長倍率を考慮した現在の小節の高さgrid;
                 int num5 = c小節.n小節番号0to3599 + 1;
                 c小節 = this._Form.mgr譜面管理者.p小節を返す(num5);
                 if (c小節 == null)
                 {
                     c小節 = new CMeasure(num5);
                     this._Form.mgr譜面管理者.dic小節.Add(num5, c小節);
                 }
                 j--;
             }
         }
         this._Form.mgrUndoRedo管理者.tトランザクション記録を終了する();
         this._Form.tUndoRedo用GUIの有効_無効を設定する();
         list.Clear();
     }
 }