#==============================================================================
#                        「選択肢の幅修正」(ACE) Ver.1.0
#   製作者:奈々(なな)
#   へぷたなすくろーる http://heptanas.mamagoto.com/
#
#   ◇使用規約
#   使用される場合はスクリプト作成者として「奈々」を明記して下さい。
#   スクリプトの改変は自由に行って頂いて構いませんが
#   その場合も元のスクリプトの作成者として名前を載せて下さい。
#   また配布前に必ず、ブログにある利用規約を確認して下さい。
#
#------------------------------------------------------------------------------
#   
#   選択肢のウィンドウ幅は「入力した文章」を元に決まる仕様です。
#   制御文字を考慮していないので、幅が合わないことがあります。
#   これを「表示される文章」の幅に合わせるよう修正します。
#   
#   また短い文字だと強制的に余白が入っていた仕様も修正します。
#   余白を入れたい場合はスペースを入力して下さい。
#   
#   使い方は、スクリプトを導入するだけでOKです。
#   
#==============================================================================
#==============================================================================
# ■ Window_ChoiceList
#------------------------------------------------------------------------------
#  イベントコマンド[選択肢の表示]に使用するウィンドウです。
#==============================================================================

class Window_ChoiceList < Window_Command
  #--------------------------------------------------------------------------
  # ● ウィンドウ位置の更新
  #--------------------------------------------------------------------------
  def update_placement
    self.width = max_choice_width + 12 + padding * 2
    self.width = [width, Graphics.width].min
    self.height = fitting_height($game_message.choices.size)
    self.x = Graphics.width - width
    if @message_window.y >= Graphics.height / 2
      self.y = @message_window.y - height
    else
      self.y = @message_window.y + @message_window.height
    end
  end
  #--------------------------------------------------------------------------
  # ● 選択肢の最大幅を取得
  #--------------------------------------------------------------------------
  def max_choice_width
    $game_message.choices.collect {|s| text_size(n7_converted_text(s)).width }.max
  end
  #--------------------------------------------------------------------------
  # ● 実際の文章
  #--------------------------------------------------------------------------
  def n7_converted_text(text)
    r = convert_escape_characters(text)
    r.gsub!(/\e(?:I|II)\[\d+\]/i){"  "}
    r.gsub!(/\e\w+\[\d+\]/i){""}
    return r
  end
end