ruby-miyako 2.1.2 → 2.1.4

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -1,8 +1,8 @@
1
1
  *******************************************************************************
2
2
  【 作者名 】 サイロス誠
3
3
  【 ソフト名 】 Interactive Media Authoring System "Miyako"
4
- 【 バージョン 】 2.1.2
5
- 【 作成日 】 2009/10/25
4
+ 【 バージョン 】 2.1.4
5
+ 【 作成日 】 2009/11/10
6
6
  【 種別 】 フリーウェア
7
7
  【 開発言語 】 Ruby 1.9.1
8
8
  【 ランタイム 】 Ruby 1.9.1~,Ruby/SDL 2.1~,SDL
@@ -15,7 +15,7 @@
15
15
 
16
16
  【 注意事項 】
17
17
 
18
- 本バージョンは、2.1.1公式リリース版です。
18
+ 本バージョンは、2.1.4公式リリース版です。
19
19
  本バージョンでは、ドキュメント・リファレンスは不十分ですが、「サイログ。」内や、サンプルプログラムの紹介等で随時ドキュメントを公開して行きます。
20
20
  (RDOC化を進めていますので、我こそはと思う方は是非・・・)
21
21
 
@@ -1398,5 +1398,86 @@ v2.1.2(2009.10.25)
1398
1398
  ・Sprite#render_rect2_xy_to
1399
1399
  <インスタンスメソッド廃止>
1400
1400
 
1401
+ v2.1.3(2009.10.28)
1402
+ <バグ修正>
1403
+ <機能改善>
1404
+ ・Slideモジュールの見直し(update,update_animationなどをオーバーライドしやすいように)
1405
+ <仕様変更>
1406
+ <ファイル追加>
1407
+ <ファイル削除>
1408
+ <グローバル変数追加>
1409
+ <定数追加>
1410
+ <定数削除>
1411
+ <構造体追加>
1412
+ <クラス追加>
1413
+ <モジュール追加>
1414
+ <mixin>
1415
+ <クラス・モジュールメソッド追加>
1416
+ <クラス・モジュールメソッド廃止>
1417
+ <モジュール関数追加>
1418
+ Slide#.slide_body
1419
+ Slide#.slide_show
1420
+ Slide#.slide_hide
1421
+ Slide#.slide_update
1422
+ Slide#.slide_update_animation
1423
+ Slide#.slide_start
1424
+ Slide#.slide_stop
1425
+ Slide#.slide_reset
1426
+ <インスタンスメソッド追加>
1427
+ <インスタンスメソッド廃止>
1428
+
1429
+ v2.1.4(2009.11.10)
1430
+ <バグ修正>
1431
+ ・Yuki#commandメソッドで、テキストボックスとコマンドボックスを強要している時、コマンド選択後にテキストボックスが描画されないバグを修正
1432
+ ・TextBox#visible,visible=が機能していないバグを修正
1433
+ <機能改善>
1434
+ ・Slide.createの引数に、:emptyを追加(スライドを示すスプライトを作るかどうか)
1435
+ ・Yuki#select_textboxで指定した時に、自動的に同じボックスをコマンドボックスとして登録できるようにした(以前は同じボックスを共用するときでも、select_commandboxを呼び出す必要があった)
1436
+ ・サンプルゲーム「3つの部屋」を2.1.4準拠に変更
1437
+ <仕様変更>
1438
+ ・(Initiative)Yuki#select_textboxの引数に、省略可能な第2引数を追加(テキストボックス全体を渡せる)
1439
+ ・(Initiative)Yuki#select_commandboxの引数に、省略可能な第2引数を追加(テキストボックス全体を渡せる)
1440
+ ・メソッド名変更: (Initiative)Yuki#visibles -> visibles_names
1441
+ ・(Initiative)Yuki#visibles の内容を変更(表示可能なスプライト→表示対象のスプライト)
1442
+ ・(Initiative)Yuki#show,hideの引数を省略したときは、全ての画像を描画可能・不可能に変更
1443
+ <ファイル追加>
1444
+ <ファイル削除>
1445
+ <グローバル変数追加>
1446
+ <定数追加>
1447
+ <定数削除>
1448
+ <構造体追加>
1449
+ <クラス追加>
1450
+ <モジュール追加>
1451
+ <mixin>
1452
+ <クラス・モジュールメソッド追加>
1453
+ <クラス・モジュールメソッド廃止>
1454
+ <モジュール関数追加>
1455
+ <インスタンスメソッド追加>
1456
+ ・(Initiative)Yuki#textbox_all
1457
+ ・(Initiative)Yuki#commandbox_all
1458
+ ・(Initiative)Yuki#enable_mouse
1459
+ ・(Initiative)Yuki#disenable_mouse
1460
+ ・(Initiative)Yuki#mouse_enable?
1461
+ ・(Initiative)Yuki#pre_visibles_names
1462
+ ・(Initiative)Yuki#bgs_names
1463
+ ・(Initiative)Yuki#pre_visibles
1464
+ ・(Initiative)Yuki#bgs
1465
+ ・(Initiative)Yuki#load_sprite
1466
+ ・(Initiative)Yuki#load_bg
1467
+ ・(Initiative)Yuki#load_bgm
1468
+ ・(Initiative)Yuki#load_se
1469
+ ・(Initiative)Yuki#pre_show
1470
+ ・(Initiative)Yuki#pre_hide
1471
+ ・(Initiative)Yuki#bg_show
1472
+ ・(Initiative)Yuki#bg_hide
1473
+ ・(Initiative)Yuki#bg_show
1474
+ ・(Initiative)Yuki#bg_hide
1475
+ ・(Initiative)Yuki#show_textbox
1476
+ ・(Initiative)Yuki#show_commandbox
1477
+ ・(Initiative)Yuki#hide_textbox
1478
+ ・(Initiative)Yuki#hide_commandbox
1479
+ ・(Initiative)Yuki#box_shared?
1480
+ <インスタンスメソッド廃止>
1481
+
1401
1482
  *******************************************************************************
1402
1483
  このReadMeファイルは「れ~どめ~えじた~」によって作成されました。
@@ -99,7 +99,7 @@ module Miyako
99
99
  #_enabe_:: コマンド選択の時はtrue、選択不可の時はfalseを設定
100
100
  CommandEX = Struct.new(:body, :body_selected, :condition, :result, :end_select_proc, :body_disable, :enable)
101
101
 
102
- attr_reader :visibles, :base
102
+ attr_reader :visibles, :pre_visibles, :bgs, :base
103
103
  attr_reader :valign
104
104
  #release_checks:: ポーズ解除を問い合わせるブロックの配列。
105
105
  #callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
@@ -158,6 +158,8 @@ module Miyako
158
158
  @yuki = { }
159
159
  @text_box = nil
160
160
  @command_box = nil
161
+ @text_box_all = nil
162
+ @command_box_all = nil
161
163
 
162
164
  @exec_plot = nil
163
165
 
@@ -171,11 +173,15 @@ module Miyako
171
173
  @select_amount = [0, 0]
172
174
  @mouse_amount = nil
173
175
 
176
+ @mouse_enable = true
177
+
174
178
  @result = nil
175
179
  @plot_result = nil
176
180
 
177
181
  @parts = {}
178
182
  @visibles = SpriteList.new
183
+ @pre_visibles = SpriteList.new
184
+ @bgs = SpriteList.new
179
185
  @vars = {}
180
186
 
181
187
  @text_methods = {:char => self.method(:text_by_char),
@@ -184,15 +190,15 @@ module Miyako
184
190
 
185
191
  @valign = :middle
186
192
 
187
- @release_checks_default = [lambda{ Input.pushed_any?(:btn1, :spc) }, lambda{ Input.click?(:left) } ]
193
+ @release_checks_default = [lambda{ Input.pushed_any?(:btn1, :spc) }, lambda{ @mouse_enable && Input.click?(:left) } ]
188
194
  @release_checks = @release_checks_default.dup
189
195
 
190
196
  @ok_checks_default = [lambda{ Input.pushed_any?(:btn1, :spc) },
191
- lambda{ self.commandbox.attach_any_command?(*Input.get_mouse_position) && Input.click?(:left) } ]
197
+ lambda{ @mouse_enable && self.commandbox.attach_any_command?(*Input.get_mouse_position) && Input.click?(:left) } ]
192
198
  @ok_checks = @ok_checks_default.dup
193
199
 
194
200
  @cancel_checks_default = [lambda{ Input.pushed_any?(:btn2, :esc) },
195
- lambda{ Input.click?(:right) } ]
201
+ lambda{ @mouse_enable && Input.click?(:right) } ]
196
202
  @cancel_checks = @cancel_checks_default.dup
197
203
 
198
204
  @key_amount_proc = lambda{ Input.pushed_amount }
@@ -264,6 +270,33 @@ module Miyako
264
270
  @base.waiting_inner(yuki)
265
271
  end
266
272
 
273
+ #===マウスでの制御を可能にする
274
+ #ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、
275
+ #それに加えて、マウスでもゲームパッド・キーボードでの制御が行える
276
+ #Yukiクラスインスタンス生成時はマウス利用可能
277
+ #返却値:: 自分自身を返す
278
+ def enable_mouse
279
+ @mouse_enable = true
280
+ return self
281
+ end
282
+
283
+ #===マウスでの制御を不可にする
284
+ #ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、
285
+ #マウスでの利用を制限する
286
+ #Yukiクラスインスタンス生成時はマウス利用可能
287
+ #返却値:: 自分自身を返す
288
+ def disable_mouse
289
+ @mouse_enable = false
290
+ return self
291
+ end
292
+
293
+ #===マウスでの制御を可・不可を問い合わせる
294
+ #マウスを利用できるときはtrue、利用できないときはfalseを返す
295
+ #返却値:: true/false
296
+ def mouse_enable?
297
+ @mouse_enable
298
+ end
299
+
267
300
  #===Yuki#showで表示指定した画像を描画する
268
301
  #描画順は、showメソッドで指定した順に描画される(先に指定した画像は後ろに表示される)
269
302
  #なお、visibleの値がfalseの時は描画されない。
@@ -370,10 +403,34 @@ module Miyako
370
403
  #(例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
371
404
  #
372
405
  #返却値:: 描画対象リスト
373
- def visibles
406
+ def visibles_names
374
407
  @visibles.names
375
408
  end
376
409
 
410
+ #===現在描画対象のパーツ名のリストを取得する
411
+ #[[Yukiスクリプトとして利用可能]]
412
+ #現在描画しているパーツ名の配列を参照する。
413
+ #実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。
414
+ #Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される
415
+ #(例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
416
+ #
417
+ #返却値:: 描画対象リスト
418
+ def pre_visibles_names
419
+ @pre_visibles.names
420
+ end
421
+
422
+ #===現在描画対象のパーツ名のリストを取得する
423
+ #[[Yukiスクリプトとして利用可能]]
424
+ #現在描画しているパーツ名の配列を参照する。
425
+ #実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。
426
+ #Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される
427
+ #(例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
428
+ #
429
+ #返却値:: 描画対象リスト
430
+ def bgs_names
431
+ @bgs.names
432
+ end
433
+
377
434
  #===オブジェクトを登録する
378
435
  #[[Yukiスクリプトとして利用可能]]
379
436
  #オブジェクトをパーツnameとして登録する。
@@ -388,29 +445,45 @@ module Miyako
388
445
  end
389
446
 
390
447
  #===表示・描画対象のテキストボックスを選択する
448
+ #第2引数として、テキストボックス全体を渡せる(省略可能)
449
+ #第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、
450
+ #テキストボックス全体を制御可能
451
+ #第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する
391
452
  #[[Yukiスクリプトとして利用可能]]
392
- #_box_:: テキストボックスのインスタンス
453
+ #_box_:: テキストボックス本体
454
+ #_box_all_:: テキストボックス全体
393
455
  #
394
456
  #返却値:: 自分自身を返す
395
- def select_textbox(box)
457
+ def select_textbox(box, box_all = nil)
396
458
  @text_box = box
459
+ @text_box_all = box_all || box
460
+ unless @command_box
461
+ @command_box = @text_box
462
+ @command_box_all = @text_box_all
463
+ end
397
464
  return self
398
465
  end
399
466
 
400
467
  #===表示・描画対象のコマンドボックスを選択する
468
+ #第2引数として、テキストボックス全体を渡せる(省略可能)
469
+ #第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、
470
+ #テキストボックス全体を制御可能
471
+ #第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する
401
472
  #[[Yukiスクリプトとして利用可能]]
402
- #_box_:: テキストボックスのインスタンス
473
+ #_box_:: テキストボックス本体
474
+ #_box_all_:: テキストボックス全体
403
475
  #
404
476
  #返却値:: 自分自身を返す
405
- def select_commandbox(box)
477
+ def select_commandbox(box, box_all = nil)
406
478
  @command_box = box
479
+ @command_box_all = box_all || box
407
480
  return self
408
481
  end
409
482
 
410
483
  #===テキストボックスを取得する
411
484
  #[[Yukiスクリプトとして利用可能]]
412
485
  #テキストボックスが登録されていないときはnilを返す
413
- #返却値:: テキストボックスのインスタンス
486
+ #返却値:: テキストボックス
414
487
  def textbox
415
488
  return @text_box
416
489
  end
@@ -418,11 +491,68 @@ module Miyako
418
491
  #===コマンドボックスを取得する
419
492
  #[[Yukiスクリプトとして利用可能]]
420
493
  #コマンドボックスが登録されていないときはnilを返す
421
- #返却値:: コマンドボックスのインスタンス
494
+ #返却値:: コマンドボックス
422
495
  def commandbox
423
496
  return @command_box
424
497
  end
425
498
 
499
+ #===テキストボックス全体を取得する
500
+ #[[Yukiスクリプトとして利用可能]]
501
+ #テキストボックスが登録されていないときはnilを返す
502
+ #返却値:: テキストボックス全体
503
+ def textbox_all
504
+ return @text_box_all
505
+ end
506
+
507
+ #===コマンドボックス全体を取得する
508
+ #[[Yukiスクリプトとして利用可能]]
509
+ #コマンドボックスが登録されていないときはnilを返す
510
+ #返却値:: コマンドボックス全体
511
+ def commandbox_all
512
+ return @command_box_all
513
+ end
514
+
515
+ #===テキストボックスを描画可能にする
516
+ #[[Yukiスクリプトとして利用可能]]
517
+ #返却値:: レシーバ
518
+ def show_textbox
519
+ @text_box_all.show
520
+ return self
521
+ end
522
+
523
+ #===コマンドボックスを描画可能にする
524
+ #[[Yukiスクリプトとして利用可能]]
525
+ #返却値:: レシーバ
526
+ def show_commandbox
527
+ @command_box_all.show
528
+ return self
529
+ end
530
+
531
+ #===テキストボックスを描画不可能にする
532
+ #[[Yukiスクリプトとして利用可能]]
533
+ #返却値:: レシーバ
534
+ def hide_textbox
535
+ @text_box_all.hide
536
+ return self
537
+ end
538
+
539
+ #===コマンドボックスを描画不可能にする
540
+ #[[Yukiスクリプトとして利用可能]]
541
+ #返却値:: レシーバ
542
+ def hide_commandbox
543
+ @command_box_all.hide
544
+ return self
545
+ end
546
+
547
+ #===コマンドボックスとテキストボックスを共用しているか問い合わせる
548
+ #[[Yukiスクリプトとして利用可能]]
549
+ #テキストボックスとコマンドボックスを共用しているときはtrueを返す
550
+ #共用していなければfalseを返す
551
+ #返却値:: true/false
552
+ def box_shared?
553
+ @text_box_all.object_id == @command_box_all.object_id
554
+ end
555
+
426
556
  #===オブジェクトの登録を解除する
427
557
  #[[Yukiスクリプトとして利用可能]]
428
558
  #パーツnameとして登録されているオブジェクトを登録から解除する。
@@ -441,9 +571,13 @@ module Miyako
441
571
  #_names_:: パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
442
572
  #返却値:: 自分自身を返す
443
573
  def show(*names)
574
+ if names.length == 0
575
+ @visibles.each_value{|sprite| sprite.show}
576
+ return self
577
+ end
444
578
  names.each{|name|
445
- @visibles.add(name, @parts[name])
446
- @parts[name].show
579
+ @visibles.add(name, @parts[name]) unless @visibles.include?(name)
580
+ @visibles[name].show
447
581
  }
448
582
  return self
449
583
  end
@@ -454,13 +588,134 @@ module Miyako
454
588
  #_names_:: パーツ名(シンボル)、複数指定可能
455
589
  #返却値:: 自分自身を返す
456
590
  def hide(*names)
591
+ if names.length == 0
592
+ @visibles.each_value{|sprite| sprite.hide}
593
+ return self
594
+ end
595
+ names.each{|name| @visibles[name].hide }
596
+ return self
597
+ end
598
+
599
+ #===パーツで指定したオブジェクトを先頭に表示する
600
+ #[[Yukiスクリプトとして利用可能]]
601
+ #描画時に、指定したパーツを描画する
602
+ #すでにshowメソッドで表示指定している場合は、先頭に表示させる
603
+ #_names_:: パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
604
+ #返却値:: 自分自身を返す
605
+ def pre_show(*names)
606
+ if names.length == 0
607
+ @pre_visibles.each_value{|sprite| sprite.show}
608
+ return self
609
+ end
610
+ names.each{|name|
611
+ @pre_visibles.add(name, @parts[name]) unless @pre_visibles.include?(name)
612
+ @pre_visibles[name].show
613
+ }
614
+ return self
615
+ end
616
+
617
+ #===パーツで指定したオブジェクトを隠蔽する
618
+ #[[Yukiスクリプトとして利用可能]]
619
+ #描画時に、指定したパーツを描画させないよう指定する
620
+ #_names_:: パーツ名(シンボル)、複数指定可能
621
+ #返却値:: 自分自身を返す
622
+ def pre_hide(*names)
623
+ if names.length == 0
624
+ @pre_visibles.each_value{|sprite| sprite.hide}
625
+ return self
626
+ end
627
+ names.each{|name| @pre_visibles[name].hide }
628
+ return self
629
+ end
630
+
631
+ #===パーツで指定した背景を表示する
632
+ #[[Yukiスクリプトとして利用可能]]
633
+ #描画時に、指定したパーツを描画する
634
+ #すでにshowメソッドで表示指定している場合は、先頭に表示させる
635
+ #_names_:: パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
636
+ #返却値:: 自分自身を返す
637
+ def bg_show(*names)
638
+ if names.length == 0
639
+ @bgs.each_value{|sprite| sprite.show}
640
+ return self
641
+ end
457
642
  names.each{|name|
458
- @parts[name].hide
459
- @visibles.delete(name)
643
+ @bgs.add(name, @parts[name]) unless @bgs.include?(name)
644
+ @bgs[name].show
460
645
  }
461
646
  return self
462
647
  end
463
648
 
649
+ #===パーツで指定した背景を隠蔽する
650
+ #[[Yukiスクリプトとして利用可能]]
651
+ #描画時に、指定したパーツを描画させないよう指定する
652
+ #_names_:: パーツ名(シンボル)、複数指定可能
653
+ #返却値:: 自分自身を返す
654
+ def bg_hide(*names)
655
+ if names.length == 0
656
+ @bgs.each_value{|sprite| sprite.hide}
657
+ return self
658
+ end
659
+ names.each{|name| @bgs[name].hide }
660
+ return self
661
+ end
662
+
663
+ #===ファイル名で指定したスプライトを登録する
664
+ #[[Yukiスクリプトとして利用可能]]
665
+ #画面に表示するスプライトを登録する
666
+ #すでにshowメソッドで表示指定している場合は、先頭に表示させる
667
+ #_name_:: スプライト名(重複するときは上書き)
668
+ #_filename_:: 読み込むファイル名
669
+ #_pre_:: pre_visiblesに登録するときはtrue、visiblesに登録するときはfalseを渡す
670
+ # 省略時はfalse
671
+ #返却値:: 自分自身を返す
672
+ def load_sprite(name, filename, pre=false)
673
+ spr = Sprite.new(:file=>filename, :type=>:ac)
674
+ @parts[name] = spr
675
+ @parts[name].hide
676
+ pre ? @pre_visibles.add(name, @parts[name]) : @visibles.add(name, @parts[name])
677
+ return self
678
+ end
679
+
680
+ #===背景を登録する
681
+ #[[Yukiスクリプトとして利用可能]]
682
+ #画面に表示する背景を登録する
683
+ #すでにshowメソッドで表示指定している場合は、先頭に表示させる
684
+ #_name_:: スプライト名(重複するときは上書き)
685
+ #_filename_:: 読み込むファイル名
686
+ #返却値:: 自分自身を返す
687
+ def load_bg(name, filename)
688
+ spr = Sprite.new(:file=>filename, :type=>:ac)
689
+ @parts[name] = spr
690
+ @parts[name].hide
691
+ @bgs.add(name, @parts[name])
692
+ return self
693
+ end
694
+
695
+ #===BGMを登録する
696
+ #[[Yukiスクリプトとして利用可能]]
697
+ #音声ファイルを読み込み、BGMとして登録する
698
+ #登録したBGMはpartsメソッドを使って参照できる
699
+ #_name_:: スプライト名(重複するときは上書き)
700
+ #_filename_:: 読み込むファイル名
701
+ #返却値:: 自分自身を返す
702
+ def load_bgm(name, filename)
703
+ @parts[name] = Audio::BGM.new(filename)
704
+ return self
705
+ end
706
+
707
+ #===効果音を登録する
708
+ #[[Yukiスクリプトとして利用可能]]
709
+ #音声ファイルを読み込み、効果音として登録する
710
+ #登録した効果音はpartsメソッドを使って参照できる
711
+ #_name_:: スプライト名(重複するときは上書き)
712
+ #_filename_:: 読み込むファイル名
713
+ #返却値:: 自分自身を返す
714
+ def load_se(name, filename)
715
+ @parts[name] = Audio::SE.new(filename)
716
+ return self
717
+ end
718
+
464
719
  #===パーツで指定したオブジェクトの処理を開始する
465
720
  #[[Yukiスクリプトとして利用可能]]
466
721
  #nameで指定したパーツが持つ処理(例:アニメーション)を開始する。
@@ -1068,6 +1323,7 @@ module Miyako
1068
1323
  @pre_command.each{|proc| proc.call}
1069
1324
  @pre_cancel.each{|proc| proc.call}
1070
1325
  yield if block_given?
1326
+ @command_box_all.show if @command_box_all.object_id != @text_box_all.object_id
1071
1327
  @command_box.command(@command_box.create_choices_chain(choices, &chain_block))
1072
1328
  @result = nil
1073
1329
  selecting = true
@@ -1090,12 +1346,14 @@ module Miyako
1090
1346
  end
1091
1347
  @result = @command_box.result
1092
1348
  @command_box.finish_command
1349
+ @command_box_all.hide if @command_box_all.object_id != @text_box_all.object_id
1093
1350
  @text_box.release
1094
1351
  selecting = false
1095
1352
  reset_selecting
1096
1353
  elsif @select_cancel
1097
1354
  @result = @cancel
1098
1355
  @command_box.finish_command
1356
+ @command_box_all.hide if @command_box_all.object_id != @text_box_all.object_id
1099
1357
  @text_box.release
1100
1358
  selecting = false
1101
1359
  reset_selecting
@@ -1103,7 +1361,7 @@ module Miyako
1103
1361
  @command_box.move_cursor(*@select_amount)
1104
1362
  reset_selecting
1105
1363
  elsif @mouse_amount
1106
- @command_box.attach_cursor(*@mouse_amount.to_a)
1364
+ @command_box.attach_cursor(*@mouse_amount.to_a) if @mouse_enable
1107
1365
  reset_selecting
1108
1366
  end
1109
1367
  post_process