#===============================================================================
# RGSS3: Save File Output Control v.1.1
#===============================================================================
# by Cryranos
#===============================================================================
# Instructions: Paste In the Materials section. Edit Module as desired.
#===============================================================================
# Compatability: Completely rewrites DataManager#self.save_file_exists?,
# self.savefile_max, self.make_filename(index), dself.load_game(index), and
# Window_SaveFile#refresh. Aliases Scene_File < Scene_MenuBase#visible_max.
#===============================================================================
module CrySave
SaveNum = 16 # Absolute maximum number of save files. Default: 16
SaveNom = "Save" # First part of savefile name. Default: "Save"
SaveExt = ".rvdata2"# Extension of the savefile name. Default: ".rvdata2"
SaveVis = 4 # Number of savefiles visible on one screen. Default: 4
TestNum = 99 # Maximum number of save files available in test mode.
# If this number is too high, it will take a long time to load Window_SaveFile.
end
module Vocab
SaveMessage = "Save to which file?"
LoadMessage = "Load from which file?"
File = "Save"
end
class Save_File_Control_Output_Control
def DataManager.save_file_exists?
if CrySave::SaveNum == 1
!Dir.glob(CrySave::SaveNom + CrySave::SaveExt).empty?
elsif $TEST
!Dir.glob(CrySave::SaveNom + '*' + CrySave::SaveExt).empty?
else
!Dir.glob(CrySave::SaveNom + '*' + CrySave::SaveExt).empty?
end
end
def DataManager.savefile_max
if $TEST
return CrySave::TestNum
else
return CrySave::SaveNum
end
end
def DataManager.make_filename(index)
if CrySave::SaveNum == 1
sprintf(CrySave::SaveNom + CrySave::SaveExt, index + 1)
elsif $TEST
sprintf(CrySave::SaveNom + "%02d" + CrySave::SaveExt, index + 1)
else
sprintf(CrySave::SaveNom + "%02d" + CrySave::SaveExt, index + 1)
end
end
def DataManager.load_game(index)
load_game_without_rescue(index) rescue false
end
end
class Window_SaveFile
def refresh
contents.clear
change_color(normal_color)
if $TEST
name = Vocab::File + " #{@file_index + 1}"
elsif CrySave::SaveNum == 1
name = Vocab::File
else
name = Vocab::File + " #{@file_index + 1}"
end
draw_text(4, 0, 200, line_height, name)
@name_width = text_size(name).width
draw_party_characters(152, 58)
draw_playtime(0, contents.height - line_height, contents.width - 4, 2)
end
end
class Scene_File < Scene_MenuBase
alias visible_max_new visible_max
def visible_max
visible_max_new
return CrySave::SaveVis
end
end