class Window_Message < Window_Base #-------------------------------------------------------------------------- # 〇 全ウィンドウの作成 #-------------------------------------------------------------------------- alias _cao_actwnd_create_all_windows create_all_windows def create_all_windows _cao_actwnd_create_all_windows @face_window = Window_Base.new(0, 0, 120, 120) @face_window.openness = 0 end #-------------------------------------------------------------------------- # 〇 全ウィンドウの解放 #-------------------------------------------------------------------------- alias _cao_actwnd_dispose_all_windows dispose_all_windows def dispose_all_windows _cao_actwnd_dispose_all_windows @face_window.dispose end #-------------------------------------------------------------------------- # 〇 全ウィンドウの更新 #-------------------------------------------------------------------------- alias _cao_actwnd_update_all_windows update_all_windows def update_all_windows _cao_actwnd_update_all_windows @face_window.update end #-------------------------------------------------------------------------- # 〇 ウィンドウ背景の更新 #-------------------------------------------------------------------------- alias _cao_actwnd_update_background update_background def update_background _cao_actwnd_update_background @face_window.opacity = self.opacity end #-------------------------------------------------------------------------- # ● #-------------------------------------------------------------------------- def open_face_window @face_window.y = self.y - @face_window.height if @face_window.y < 0 @face_window.y = self.y + self.height end @face_window.open @face_window.contents.clear @face_window.draw_face( $game_message.face_name, $game_message.face_index, 0, 0) end #-------------------------------------------------------------------------- # ● #-------------------------------------------------------------------------- def close_face_window @face_window.close end #-------------------------------------------------------------------------- # 〇 ウィンドウを開き、完全に開くまで待つ #-------------------------------------------------------------------------- alias _cao_actwnd_open_and_wait open_and_wait def open_and_wait open_face_window unless $game_message.face_name.empty? _cao_actwnd_open_and_wait end #-------------------------------------------------------------------------- # ◎ #-------------------------------------------------------------------------- def close super close_face_window end #-------------------------------------------------------------------------- # 〇 全ウィンドウが完全に閉じているか判定 #-------------------------------------------------------------------------- alias _cao_actwnd_all_close? all_close? def all_close? return false unless @face_window.close? return _cao_actwnd_all_close? end #-------------------------------------------------------------------------- # 〇 改ページ処理 #-------------------------------------------------------------------------- def new_page(text, pos) if $game_message.face_name.empty? close_face_window else open_face_window Fiber.yield until @face_window.open? end contents.clear reset_font_settings pos[:x] = new_line_x pos[:y] = 0 pos[:new_x] = new_line_x pos[:height] = calc_line_height(text) clear_flags end #-------------------------------------------------------------------------- # 〇 改行位置の取得 #-------------------------------------------------------------------------- def new_line_x 0 end end