예제 #1
0
        private void tチップカーソルを描画する(Graphics g)
        {
            if ((this.rc現在のチップカーソル領域.Width > 0) && (this.rc現在のチップカーソル領域.Height > 0))
            {
                CLane cレーン = this.mgr譜面管理者ref.listレーン[this.n現在のチップカーソルがあるレーン番号0to];
                bool  flag = (Control.ModifierKeys & Keys.Control) == Keys.Control;
                int   num  = -1;
                switch (cレーン.eレーン種別)
                {
                case CLane.E種別.GtR:
                case CLane.E種別.GtG:
                case CLane.E種別.GtB:
                case CLane.E種別.GtY:
                case CLane.E種別.GtP:
                case CLane.E種別.BsR:
                case CLane.E種別.BsG:
                case CLane.E種別.BsB:
                case CLane.E種別.BsY:
                case CLane.E種別.BsP:
                case CLane.E種別.BPM:
                    num = -1;
                    break;

                default:
                    num = this._Form.n現在選択中のWAV_BMP_AVIリストの行番号0to1294 + 1;
                    if ((Control.ModifierKeys & Keys.Shift) != Keys.Shift)
                    {
                        int num2 = flag ? cレーン.nレーン割付チップ_裏0or1to1295 : cレーン.nレーン割付チップ_表0or1to1295;
                        if (num2 != 0)
                        {
                            num = num2;
                        }
                    }
                    break;
                }
                if (!flag)
                {
                    CChip.t表チップを描画する(g, this.rc現在のチップカーソル領域, num, cレーン.col背景色);
                }
                else
                {
                    CChip.t裏チップを描画する(g, this.rc現在のチップカーソル領域, num, cレーン.col背景色);
                }
                CChip.tチップの周囲の太枠を描画する(g, this.rc現在のチップカーソル領域);
            }
        }
예제 #2
0
 internal void MouseClick(MouseEventArgs e)
 {
     if (e.Y < (ScoreManager.nレーン割付チップ番号表示高さdot + 10))
     {
         CLane lc = this.mgr譜面管理者ref.listレーン[this.n現在のチップカーソルがあるレーン番号0to];
         if (lc.eレーン種別 == CLane.E種別.GtR || lc.eレーン種別 == CLane.E種別.GtG || lc.eレーン種別 == CLane.E種別.GtB || lc.eレーン種別 == CLane.E種別.GtY || lc.eレーン種別 == CLane.E種別.GtP || lc.eレーン種別 == CLane.E種別.BsR || lc.eレーン種別 == CLane.E種別.BsG || lc.eレーン種別 == CLane.E種別.BsB || lc.eレーン種別 == CLane.E種別.BsY || lc.eレーン種別 == CLane.E種別.BsP)
         {
             return;
         }
         if ((Control.ModifierKeys & Keys.Control) != Keys.Control)
         {
             int num = (e.Button == MouseButtons.Left) ? (this._Form.n現在選択中のWAV_BMP_AVIリストの行番号0to1294 + 1) : 0;
             if (num != lc.nレーン割付チップ_表0or1to1295)
             {
                 CLaneAllocationUndoRedo redo  = new CLaneAllocationUndoRedo(lc, lc.nレーン割付チップ_表0or1to1295, false);
                 CLaneAllocationUndoRedo redo2 = new CLaneAllocationUndoRedo(lc, num, false);
                 this._Form.mgrUndoRedo管理者.tノードを追加する(new CUndoRedoCell <CLaneAllocationUndoRedo>(null, new DGUndoを実行する <CLaneAllocationUndoRedo>(this.tレーン割付のUndo), new DGRedoを実行する <CLaneAllocationUndoRedo>(this.tレーン割付のRedo), redo, redo2));
                 this._Form.tUndoRedo用GUIの有効_無効を設定する();
                 lc.nレーン割付チップ_表0or1to1295 = num;
             }
         }
         else
         {
             int num2 = (e.Button == MouseButtons.Left) ? (this._Form.n現在選択中のWAV_BMP_AVIリストの行番号0to1294 + 1) : 0;
             if (num2 != lc.nレーン割付チップ_裏0or1to1295)
             {
                 CLaneAllocationUndoRedo redo3 = new CLaneAllocationUndoRedo(lc, lc.nレーン割付チップ_裏0or1to1295, true);
                 CLaneAllocationUndoRedo redo4 = new CLaneAllocationUndoRedo(lc, num2, true);
                 this._Form.mgrUndoRedo管理者.tノードを追加する(new CUndoRedoCell <CLaneAllocationUndoRedo>(null, new DGUndoを実行する <CLaneAllocationUndoRedo>(this.tレーン割付のUndo), new DGRedoを実行する <CLaneAllocationUndoRedo>(this.tレーン割付のRedo), redo3, redo4));
                 this._Form.tUndoRedo用GUIの有効_無効を設定する();
                 lc.nレーン割付チップ_裏0or1to1295 = num2;
             }
         }
     }
     else
     {
         this.tチップの配置または削除(e);
     }
     this._Form.pictureBox譜面パネル.Refresh();
 }
예제 #3
0
 private void t移動終了処理(MouseEventArgs e)
 {
     this.b移動のためにドラッグ中 = false;
     foreach (KeyValuePair <int, CMeasure> pair in this.mgr譜面管理者ref.dic小節)
     {
         for (int i = 0; i < pair.Value.listチップ.Count; i++)
         {
             CChip cチップ = pair.Value.listチップ[i];
             if (cチップ.b確定選択中 && (cチップ.n枠外レーン数 == 0))
             {
                 CLane cレーン = this.mgr譜面管理者ref.listレーン[cチップ.nレーン番号0to];
                 cチップ.nチャンネル番号00toFF = cチップ.b裏 ? cレーン.nチャンネル番号_裏00toFF : cレーン.nチャンネル番号_表00toFF;
                 if ((cレーン.bパターンレーンである() && (cチップ.n値_整数1to1295 != 1)) && (cチップ.n値_整数1to1295 != 2))
                 {
                     cチップ.n値_整数1to1295 = 1;
                 }
             }
         }
     }
     this._Form.mgrUndoRedo管理者.tトランザクション記録を開始する();
     foreach (KeyValuePair <int, CMeasure> pair2 in this.mgr譜面管理者ref.dic小節)
     {
         CMeasure c小節 = pair2.Value;
         for (int j = 0; j < pair2.Value.listチップ.Count; j++)
         {
             CChip cチップ2 = c小節.listチップ[j];
             if (cチップ2.b確定選択中 && (((cチップ2.n移動開始時の小節番号0to != c小節.n小節番号0to3599) || (cチップ2.n移動開始時のレーン番号0to != cチップ2.nレーン番号0to)) || (cチップ2.n移動開始時の小節内の位置grid != cチップ2.n位置grid)))
             {
                 CChipPositionUndoRedo redo  = new CChipPositionUndoRedo(cチップ2.n移動開始時の小節番号0to, cチップ2.n移動開始時のレーン番号0to, cチップ2.n移動開始時の小節内の位置grid, cチップ2.n値_整数1to1295);
                 CChipPositionUndoRedo redo2 = new CChipPositionUndoRedo(c小節.n小節番号0to3599, cチップ2.nレーン番号0to, cチップ2.n位置grid, cチップ2.n値_整数1to1295);
                 this._Form.mgrUndoRedo管理者.tノードを追加する(new CUndoRedoCell <CChipPositionUndoRedo>(null, new DGUndoを実行する <CChipPositionUndoRedo>(this.tチップ移動のUndo), new DGRedoを実行する <CChipPositionUndoRedo>(this.tチップ移動のRedo), redo, redo2));
             }
         }
     }
     this._Form.tUndoRedo用GUIの有効_無効を設定する();
     this._Form.mgrUndoRedo管理者.tトランザクション記録を終了する();
 }
예제 #4
0
 public CLaneAllocationUndoRedo(CLane lc, int n番号0or1to1295, bool b裏)
 {
     this.lc            = lc;
     this.n番号0or1to1295 = n番号0or1to1295;
     this.b裏            = b裏;
 }
예제 #5
0
 private void tチップの配置または削除(MouseEventArgs e)
 {
     if ((this.rc現在のチップカーソル領域.Width > 0) && (this.rc現在のチップカーソル領域.Height > 0))
     {
         if (e.Button == MouseButtons.Left)
         {
             bool  flag  = (Control.ModifierKeys & Keys.Control) == Keys.Control;
             bool  flag2 = (Control.ModifierKeys & Keys.Shift) == Keys.Shift;
             CLane cレーン  = this.mgr譜面管理者ref.listレーン[this.n現在のチップカーソルがあるレーン番号0to];
             if (cレーン.eレーン種別 != CLane.E種別.BPM)
             {
                 if ((cレーン.eレーン種別 == CLane.E種別.GtV) || (cレーン.eレーン種別 == CLane.E種別.BsV))
                 {
                     int num5 = flag ? cレーン.nレーン割付チップ_裏0or1to1295 : cレーン.nレーン割付チップ_表0or1to1295;
                     if ((num5 == 0) || flag2)
                     {
                         num5 = this._Form.n現在選択中のWAV_BMP_AVIリストの行番号0to1294 + 1;
                     }
                     this._Form.mgrUndoRedo管理者.tトランザクション記録を開始する();
                     this.mgr譜面管理者ref.tチップを配置または置換する(this.n現在のチップカーソルがあるレーン番号0to, this.n現在のチップカーソルの譜面先頭からの位置grid, num5, 0f, flag);
                     if (this.b指定位置にRGBチップがひとつもない(this.n現在のチップカーソルの譜面先頭からの位置grid, this.n現在のチップカーソルがあるレーン番号0to + 1, this.n現在のチップカーソルがあるレーン番号0to + 2, this.n現在のチップカーソルがあるレーン番号0to + 3))
                     {
                         this.mgr譜面管理者ref.tチップを配置または置換する(this.n現在のチップカーソルがあるレーン番号0to + 1, this.n現在のチップカーソルの譜面先頭からの位置grid, 2, 0f, false);
                     }
                     this._Form.mgrUndoRedo管理者.tトランザクション記録を終了する();
                 }
                 else if (cレーン.eレーン種別 == CLane.E種別.GtR || cレーン.eレーン種別 == CLane.E種別.GtG || cレーン.eレーン種別 == CLane.E種別.GtB || cレーン.eレーン種別 == CLane.E種別.GtY || cレーン.eレーン種別 == CLane.E種別.GtP)
                 {
                     if (flag)
                     {
                         for (int i = 0; i < this.mgr譜面管理者ref.listレーン.Count; i++)
                         {
                             CLane cレーン2 = this.mgr譜面管理者ref.listレーン[i];
                             if (cレーン2.eレーン種別 == CLane.E種別.GtR)
                             {
                                 this.mgr譜面管理者ref.tチップを配置または置換する(i, this.n現在のチップカーソルの譜面先頭からの位置grid, 2, 0f, false);
                                 break;
                             }
                         }
                     }
                     else
                     {
                         this.mgr譜面管理者ref.tチップを配置または置換する(this.n現在のチップカーソルがあるレーン番号0to, this.n現在のチップカーソルの譜面先頭からの位置grid, 1, 0f, false);
                     }
                 }
                 else if (cレーン.eレーン種別 == CLane.E種別.BsR || cレーン.eレーン種別 == CLane.E種別.BsG || cレーン.eレーン種別 == CLane.E種別.BsB || cレーン.eレーン種別 == CLane.E種別.BsY || cレーン.eレーン種別 == CLane.E種別.BsP)
                 {
                     if (flag)
                     {
                         for (int j = 0; j < this.mgr譜面管理者ref.listレーン.Count; j++)
                         {
                             CLane cレーン3 = this.mgr譜面管理者ref.listレーン[j];
                             if (cレーン3.eレーン種別 == CLane.E種別.BsR)
                             {
                                 this.mgr譜面管理者ref.tチップを配置または置換する(j, this.n現在のチップカーソルの譜面先頭からの位置grid, 2, 0f, false);
                                 break;
                             }
                         }
                     }
                     else
                     {
                         this.mgr譜面管理者ref.tチップを配置または置換する(this.n現在のチップカーソルがあるレーン番号0to, this.n現在のチップカーソルの譜面先頭からの位置grid, 1, 0f, false);
                     }
                 }
                 else
                 {
                     int num8 = flag ? cレーン.nレーン割付チップ_裏0or1to1295 : cレーン.nレーン割付チップ_表0or1to1295;
                     if ((num8 == 0) || flag2)
                     {
                         num8 = this._Form.n現在選択中のWAV_BMP_AVIリストの行番号0to1294 + 1;
                     }
                     this.mgr譜面管理者ref.tチップを配置または置換する(this.n現在のチップカーソルがあるレーン番号0to, this.n現在のチップカーソルの譜面先頭からの位置grid, num8, 0f, flag);
                 }
             }
             else
             {
                 this._Form.dlgチップパレット.t一時的に隠蔽する();
                 CNumericInputDialog c数値入力ダイアログ = new CNumericInputDialog(this.mgr譜面管理者ref.dc譜面先頭からの位置gridにおけるBPMを返す(this.n現在のチップカーソルの譜面先頭からの位置grid), 0.0001M, 1000M, Resources.strBPM選択ダイアログの説明文);
                 Point point = this._Form.pictureBox譜面パネル.PointToScreen(new Point(e.X, e.Y));
                 c数値入力ダイアログ.Left = point.X - (c数値入力ダイアログ.Width / 2);
                 c数値入力ダイアログ.Top  = point.Y + 4;
                 DialogResult result = c数値入力ダイアログ.ShowDialog();
                 this._Form.dlgチップパレット.t一時的な隠蔽を解除する();
                 if (result != DialogResult.OK)
                 {
                     return;
                 }
                 float num = (float)c数値入力ダイアログ.dc数値;
                 int   key = -1;
                 foreach (KeyValuePair <int, float> pair in this.mgr譜面管理者ref.dicBPx)
                 {
                     if (pair.Value == num)
                     {
                         key = pair.Key;
                         break;
                     }
                 }
                 if (key == -1)
                 {
                     for (int k = 1; k < 36 * 36; k++)
                     {
                         if (!this.mgr譜面管理者ref.dicBPx.ContainsKey(k))
                         {
                             this.mgr譜面管理者ref.dicBPx.Add(k, num);
                             key = k;
                             break;
                         }
                     }
                 }
                 this.mgr譜面管理者ref.tチップを配置または置換する(this.n現在のチップカーソルがあるレーン番号0to, this.n現在のチップカーソルの譜面先頭からの位置grid, key, num, false);
             }
             if (this._Form.appアプリ設定.PlaySoundOnWAVChipAllocated && (((cレーン.eレーン種別 == CLane.E種別.WAV) || (cレーン.eレーン種別 == CLane.E種別.GtV)) || (cレーン.eレーン種別 == CLane.E種別.BsV)))
             {
                 int num9 = flag ? cレーン.nレーン割付チップ_裏0or1to1295 : cレーン.nレーン割付チップ_表0or1to1295;
                 if ((num9 == 0) || flag2)
                 {
                     num9 = this._Form.n現在選択中のWAV_BMP_AVIリストの行番号0to1294 + 1;
                 }
                 CWAV wc = this._Form.mgrWAVリスト管理者.tWAVをキャッシュから検索して返す(num9);
                 if ((wc != null) && (!this._Form.appアプリ設定.NoPreviewBGM || !wc.bBGMとして使用))
                 {
                     this._Form.mgrWAVリスト管理者.tプレビュー音を再生する(wc);
                 }
             }
         }
         if (e.Button == MouseButtons.Right)
         {
             this.mgr譜面管理者ref.tチップを削除する(this.n現在のチップカーソルがあるレーン番号0to, this.n現在のチップカーソルの譜面先頭からの位置grid);
         }
     }
 }