#============================================================================
# ** Scene_File Visual Fix (requested by dark angel)
#------------------------------------------------------------------------------------------------------------------------
# by Fantasist
# Version 1.0
# 20-Mar-2008
#============================================================================
Scene_File_BG = 'title' # 'title' for title pic, name of pic in Pictures folder for other pic, nil for nothing
Scene_File_Win_Opacity = 160 # opacity of windows
Center_Help_Text = true # whether the help text is centered or not. Set to true or false.
#==============================================================================
# ** Window_SaveFile
#==============================================================================
class Window_SaveFile < Window_Base
attr_reader :filename, :selected
def initialize(file_index, filename)
super(64, 64 + file_index % 4 * 104, 512, 104)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = Scene_File_Win_Opacity
@file_index = file_index
@filename = "Save#{@file_index + 1}.rxdata"
@time_stamp = Time.at(0)
@file_exist = FileTest.exist?(@filename)
if @file_exist
file = File.open(@filename, "r")
@time_stamp = file.mtime
@characters = Marshal.load(file)
@frame_count = Marshal.load(file)
@game_system = Marshal.load(file)
@game_switches = Marshal.load(file)
@game_variables = Marshal.load(file)
@total_sec = @frame_count / Graphics.frame_rate
file.close
end
refresh
@selected = false
end
def refresh
self.contents.clear
self.contents.font.color = normal_color
name = "File#{@file_index + 1}"
self.contents.draw_text(4, 0, 472, 32, name)
@name_width = contents.text_size(name).width
if @file_exist
(0...@characters.size).each {|i|
bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])
cw = bitmap.rect.width / 4
ch = bitmap.rect.height / 4
src_rect = Rect.new(0, 0, cw, ch)
x = 260 - @characters.size * 32 + i * 48 - cw / 2
self.contents.blt(x, 68 - ch, bitmap, src_rect)
}
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(4, 8, 472, 32, time_string, 2)
self.contents.font.color = normal_color
time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")
self.contents.draw_text(4, 40, 472, 32, time_string, 2)
end
end
end
#==============================================================================
# ** Window_Help
#==============================================================================
class Window_Help < Window_Base
def initialize
w = $scene.is_a?(Scene_File) ? 512 : 640
x = $scene.is_a?(Scene_File) ? 64 : 0
super(x, 0, w, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = Scene_File_Win_Opacity if $scene.is_a?(Scene_File)
end
alias fant_scene_file_win_size_fix_set_text set_text
def set_text(txt, align=0)
align = $scene.is_a?(Scene_File) && Center_Help_Text ? 1 : 0
fant_scene_file_win_size_fix_set_text(txt, align)
end
end
#==============================================================================
# ** Scene_File
#==============================================================================
class Scene_File
alias fant_scene_file_win_size_fix_main main
def main
@bg = Sprite.new
@bg.bitmap = get_title
fant_scene_file_win_size_fix_main
@bg.dispose
end
def get_title
if Scene_File_BG == 'title'
RPG::Cache.title($data_system.title_name) rescue Bitmap.new(32, 32)
else
RPG::Cache.picture(Scene_File_BG) rescue Bitmap.new(32, 32)
end
end
end