#============================================================================== # Some stuff to enhance Max Resolution Script. Put this script below it. # By Black Mage # Version 1.3 # # This script required Max Resolution Script to function properly. You can get # the script at: # https://pastebin.com/FyLyMzis # # You can add Tsukihime's Map Screenshot Script on your project to have a # better transition when changing into a higher resolution. The original script # function will be disabled, but you can turn it on through a setting below if # you wan to use it. # You can ge the script at: # http://himeworks.com/2013/02/map-screenshot/ # # ----------------------------------------------------------------------------- # What this script actualy do? # # Well, there's this black bar occupying the window if you change into a higher # resolution from map. When you access the menu, and back to the map again, the # black bar is gone, and you can freely change the resolution back and forth # without have to worry that the black bar will appear, unless you're changing # into a new higher resolution compared to the last resolution where the black # bar appeared. # # This script run a dummy scene to simulate the menu access in order to fix the # black bar problem when a higher resolution change is happened. # ----------------------------------------------------------------------------- # Note that the Max Resolution Script has a memory dependancy. If somehow your # project crashes when doing a playtest, just do some other stuff and hope that # when you playtest and changing resolution again, nothing wrong happened. XD # # Don't immediately playtest when a crashes occured! # ----------------------------------------------------------------------------- # Stuff that's not fixed yet from Max Resolution Script: # If you're on a big map, and you change resolution from the right corner of # the map, your map camera might shot a wrong part of the map for a few seconds, # or until you move your character to left for a bit. # # I'm not sure when I'll fix this in the future. If you somehow able to fix it, # let me know. #============================================================================== #============================================================================== # Changelog # Version 1.3 # - Add Hime Map Screenshot integration for a better transition. # # Version 1.2 # - Fix some bugs that made it unable to change resolution through other scene # except Scene_Map. # # Version 1.1 # - Add Game_Temp initialize, in case the resolution is changed when it's not # initialized yet. # # Version 1.0 # - Initial Version. #============================================================================== module BLACK # Set this to true if you have Hime Map Screenshot script on your project and # want to use it's original feature on your game. HIME_MAPSHOT = false end $imported = {} if $imported.nil? $imported["BM_MaxResoAddon"] = true class Game_Temp; attr_accessor :b_size; end module Graphics class << self; alias :b_r_s :resize_screen; end attr_reader :b_width; attr_reader :b_height def self.resize_screen(width, height) if SceneManager.scene_is?(Scene_Map) (save_w_h(width, height); return) if (!@b_width && !@b_height) (save_w_h(width, height); return) if (@b_width < width) && (@b_height < height) end b_r_s(width, height) end def self.save_w_h(width, height) $game_temp = Game_Temp.new if !$game_temp $game_temp.b_size = [width, height] SceneManager.call(Black_Scene) Window_MenuCommand::init_command_position @b_width = width; @b_height = height end end class Black_Scene < Scene_MenuBase def update super; a = $game_temp.b_size Graphics.resize_screen(a[0], a[1]) SceneManager.return end def create_background @background_sprite = Sprite.new @background_sprite.bitmap = SceneManager.reso_bmp # Hime Mapshot integration if $imported["TH_MapSaver"] w, h = [Graphics.width, Graphics.height] m_s1 = [($game_map.width * 32) - w, ($game_map.height * 32) - h] m_s2 = [$game_player.x * 32 - w/2 + 16, $game_player.y * 32 - h/2 + 32] error = [w/2 - $game_player.screen_x, h/2 - $game_player.screen_y] m_s2 = [m_s2[0] + error[0], m_s2[1] + error[1]] cor = [[[m_s2[0], 0].max, m_s1[0]].min, [[m_s2[1], 0].max, m_s1[1]].min] @background_sprite.x = -cor[0] @background_sprite.y = -cor[1] end end end module SceneManager @reso_bmp = nil class << self; alias :black_s_f_b :snapshot_for_background; end def self.snapshot_for_background black_s_f_b @reso_bmp.dispose if @reso_bmp # Hime Mapshot integration if $imported["TH_MapSaver"] && $game_map.map_id != 0 s = Map_Saver.new($game_map.map_id) s.set_scale(TH::Map_Saver::Mapshot_Scale) @reso_bmp = s.blackshot else @reso_bmp = Graphics.snap_to_bitmap end end def self.reso_bmp; @reso_bmp; end end if $imported["TH_MapSaver"] && BLACK::HIME_MAPSHOT #============================================================================== # This will disable Tsukihime's Map Screenshot Script from triggering, as we # don't want it to do so. #============================================================================== class Game_Player < Game_Character; def update; th_mapsaver_update; end; end end if $imported["TH_MapSaver"] #============================================================================== # New function for Hime Map_Saver #============================================================================== class Map_Saver def blackshot; @screen_local = false; redraw; return @map_image; end end end