mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-09 14:14:59 +00:00
Added support for all three Gen 4 location sign styles, minor tweaks to other code
This commit is contained in:
@@ -252,7 +252,7 @@ MenuHandlers.add(:pause_menu, :pokegear, {
|
||||
MenuHandlers.add(:pause_menu, :town_map, {
|
||||
"name" => _INTL("Town Map"),
|
||||
"order" => 40,
|
||||
"condition" => proc { next !$player.has_pokegear && $bag.has?(:TOWNMAP) },
|
||||
"condition" => proc { next Settings::SHOW_TOWN_MAP_IN_PAUSE_MENU && !$player.has_pokegear && $bag.has?(:TOWNMAP) },
|
||||
"effect" => proc { |menu|
|
||||
pbPlayDecisionSE
|
||||
pbFadeOutIn do
|
||||
|
||||
@@ -751,7 +751,7 @@ class UI::Party < UI::BaseScreen
|
||||
# :battle_use_item For battle.
|
||||
# :use_item Like :choose_pokemon but with a different help text
|
||||
# :teach_pokemon Like :choose_pokemon but with a different help text
|
||||
# :choose_entry_order Battle Frontier thing
|
||||
# :choose_entry_order Battle Frontier thing
|
||||
def initialize(party, mode: :normal)
|
||||
@party = (party.is_a?(Array)) ? party : [party]
|
||||
@mode = mode
|
||||
@@ -880,14 +880,7 @@ class UI::Party < UI::BaseScreen
|
||||
@visuals.refresh_party
|
||||
end
|
||||
|
||||
# TODO: Get rid of this method once storage screen and PokemonDebugPartyScreen
|
||||
# have been rewritten.
|
||||
def pbRefreshSingle(_party_index)
|
||||
refresh
|
||||
end
|
||||
|
||||
# TODO: Get rid of this method once storage screen and PokemonDebugPartyScreen
|
||||
# have been rewritten.
|
||||
# TODO: Get rid of this method once ItemHandlers have been rewritten.
|
||||
def pbHardRefresh
|
||||
refresh_party
|
||||
refresh
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#===============================================================================
|
||||
class UI::TrainerCardVisuals < UI::BaseVisuals
|
||||
GRAPHICS_FOLDER = "Trainer Card/" # Subfolder in Graphics/UI
|
||||
|
||||
BADGE_SIZE = [32, 32] # [width, height] of a Gym Badge
|
||||
BADGE_SPACING = 16 # Size of gap between adjacent Gym Badges
|
||||
FIRST_BADGE_X = 72 # Left edge of the first Gym Badge
|
||||
|
||||
@@ -1,3 +1,47 @@
|
||||
module UI::LoadSaveDataMixin
|
||||
def load_all_save_data
|
||||
@save_data = []
|
||||
files = SaveData.all_save_files
|
||||
files.each do |file|
|
||||
this_save_data = load_save_file(SaveData::DIRECTORY, file)
|
||||
@save_data.push([file, this_save_data])
|
||||
end
|
||||
end
|
||||
|
||||
def load_save_file(directory, filename)
|
||||
ret = SaveData.read_from_file(directory + filename)
|
||||
if !SaveData.valid?(ret)
|
||||
if File.file?(directory + filename + ".bak")
|
||||
show_message(_INTL("The save file is corrupt. A backup will be loaded."))
|
||||
ret = load_save_file(directory, filename + ".bak")
|
||||
end
|
||||
if prompt_corrupted_save_deletion(filename)
|
||||
delete_save_data(filename)
|
||||
$PokemonSystem = PokemonSystem.new if self.is_a?(UI::Load)
|
||||
else
|
||||
exit
|
||||
end
|
||||
end
|
||||
return ret
|
||||
end
|
||||
|
||||
def prompt_corrupted_save_deletion(filename)
|
||||
show_message(_INTL("The save file is corrupt, or is incompatible with this game.") + "\1")
|
||||
pbPlayDecisionSE
|
||||
return show_confirm_serious_message(_INTL("Do you want to delete the save file and start anew?"))
|
||||
end
|
||||
|
||||
def delete_save_data(filename)
|
||||
begin
|
||||
SaveData.delete_file(filename)
|
||||
yield if block_given?
|
||||
show_message(_INTL("The save file was deleted."))
|
||||
rescue SystemCallError
|
||||
show_message(_INTL("The save file could not be deleted."))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#===============================================================================
|
||||
#
|
||||
#===============================================================================
|
||||
@@ -380,7 +424,7 @@ class UI::LoadVisuals < UI::BaseVisuals
|
||||
# Set the options, and change the language if relevant
|
||||
old_language = $PokemonSystem.language
|
||||
SaveData.load_bootup_values(@save_data[@slot_index][1], true)
|
||||
if $PokemonSystem.language != old_language
|
||||
if $PokemonSystem.language != old_language && Settings::LANGUAGES[$PokemonSystem.language]
|
||||
MessageTypes.load_message_files(Settings::LANGUAGES[$PokemonSystem.language][1])
|
||||
full_refresh
|
||||
end
|
||||
@@ -502,6 +546,16 @@ class UI::LoadVisuals < UI::BaseVisuals
|
||||
return :delete_save
|
||||
end
|
||||
return update_interaction(Input::USE)
|
||||
elsif Input.trigger?(Input::JUMPUP)
|
||||
if @index != @commands.keys[0]
|
||||
pbPlayCursorSE
|
||||
set_index(@commands.keys[0])
|
||||
end
|
||||
elsif Input.trigger?(Input::JUMPDOWN)
|
||||
if @index != @commands.keys[@commands.length - 1]
|
||||
pbPlayCursorSE
|
||||
set_index(@commands.keys[@commands.length - 1])
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
@@ -524,8 +578,11 @@ class UI::Load < UI::BaseScreen
|
||||
|
||||
SCREEN_ID = :load_screen
|
||||
|
||||
include UI::LoadSaveDataMixin
|
||||
|
||||
def initialize
|
||||
load_all_save_data
|
||||
determine_default_save_file
|
||||
if $DEBUG && !FileTest.exist?("Game.rgssad") && Settings::SKIP_CONTINUE_SCREEN
|
||||
@disposed = true
|
||||
perform_action((@save_data.empty?) ? :new_game : :continue)
|
||||
@@ -554,49 +611,18 @@ class UI::Load < UI::BaseScreen
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
# TODO: Move this kind of code into module SaveData.
|
||||
def load_all_save_data
|
||||
@save_data = []
|
||||
def determine_default_save_file
|
||||
@default_slot_index = 0
|
||||
last_edited_time = nil
|
||||
files = SaveData.all_save_files
|
||||
files.each do |file|
|
||||
# Load the save file
|
||||
this_save_data = load_save_file(SaveData::DIRECTORY, file)
|
||||
@save_data.push([file, this_save_data])
|
||||
# Find the most recently edited save file; default to selecting that one
|
||||
save_time = this_save_data[:stats].real_time_saved || 0
|
||||
@save_data.each_with_index do |data, i|
|
||||
save_time = data[1][:stats].real_time_saved || 0
|
||||
if !last_edited_time || save_time > last_edited_time
|
||||
last_edited_time = save_time
|
||||
@default_slot_index = @save_data.length - 1
|
||||
@default_slot_index = i
|
||||
end
|
||||
end
|
||||
SaveData.load_bootup_values(@save_data[@default_slot_index][1], true) if !@save_data.empty?
|
||||
MessageTypes.load_message_files(Settings::LANGUAGES[$PokemonSystem.language][1])
|
||||
end
|
||||
|
||||
# TODO: Move this kind of code into module SaveData.
|
||||
def load_save_file(directory, filename)
|
||||
ret = SaveData.read_from_file(directory + filename)
|
||||
if !SaveData.valid?(ret)
|
||||
if File.file?(directory + filename + ".bak")
|
||||
show_message(_INTL("The save file is corrupt. A backup will be loaded."))
|
||||
ret = load_save_file(directory, filename + ".bak")
|
||||
end
|
||||
if prompt_corrupted_save_deletion(filename)
|
||||
delete_save_data(filename)
|
||||
$PokemonSystem = PokemonSystem.new
|
||||
else
|
||||
exit
|
||||
end
|
||||
end
|
||||
return ret
|
||||
end
|
||||
|
||||
def prompt_corrupted_save_deletion(filename)
|
||||
show_message(_INTL("The save file is corrupt, or is incompatible with this game.") + "\1")
|
||||
pbPlayDecisionSE
|
||||
return show_confirm_serious_message(_INTL("Do you want to delete the save file and start anew?"))
|
||||
MessageTypes.load_message_files(Settings::LANGUAGES[$PokemonSystem.language][1]) if Settings::LANGUAGES[$PokemonSystem.language]
|
||||
end
|
||||
|
||||
def prompt_save_deletion(filename)
|
||||
@@ -612,16 +638,6 @@ class UI::Load < UI::BaseScreen
|
||||
end
|
||||
end
|
||||
|
||||
def delete_save_data(filename)
|
||||
begin
|
||||
SaveData.delete_file(filename)
|
||||
yield if block_given?
|
||||
show_message(_INTL("The save file was deleted."))
|
||||
rescue SystemCallError
|
||||
show_message(_INTL("The save file could not be deleted."))
|
||||
end
|
||||
end
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
def full_refresh
|
||||
|
||||
@@ -323,12 +323,16 @@ class UI::SaveVisuals < UI::BaseVisuals
|
||||
if @save_data[index][1][:game_system].adventure_magic_number == $game_system.adventure_magic_number
|
||||
save_time = @save_data[index][1][:stats].real_play_time
|
||||
delta_time = ($stats.play_time - save_time).to_i
|
||||
hour = (delta_time / 60) / 60
|
||||
min = (delta_time / 60) % 60
|
||||
if hour > 0
|
||||
draw_text(_INTL("Play time since save: {1}h {2}m", hour, min), 8, 4)
|
||||
if delta_time >= 0
|
||||
hour = (delta_time / 60) / 60
|
||||
min = (delta_time / 60) % 60
|
||||
if hour > 0
|
||||
draw_text(_INTL("Play time since save: {1}h {2}m", hour, min), 8, 4)
|
||||
else
|
||||
draw_text(_INTL("Play time since save: {1}m", min), 8, 4)
|
||||
end
|
||||
else
|
||||
draw_text(_INTL("Play time since save: {1}m", min), 8, 4)
|
||||
draw_text(_INTL("Alternate version of your adventure!"), 8, 4)
|
||||
end
|
||||
else
|
||||
draw_text(_INTL("Different adventure!"), 8, 4)
|
||||
@@ -411,9 +415,12 @@ class UI::Save < UI::BaseScreen
|
||||
|
||||
SCREEN_ID = :save_screen
|
||||
|
||||
include UI::LoadSaveDataMixin
|
||||
|
||||
def initialize
|
||||
create_current_save_data
|
||||
load_all_save_data
|
||||
determine_default_save_file
|
||||
super
|
||||
end
|
||||
|
||||
@@ -439,14 +446,7 @@ class UI::Save < UI::BaseScreen
|
||||
}]
|
||||
end
|
||||
|
||||
def load_all_save_data
|
||||
# Load the save file
|
||||
@save_data = []
|
||||
files = SaveData.all_save_files
|
||||
files.each do |file|
|
||||
this_save_data = load_save_file(SaveData::DIRECTORY, file)
|
||||
@save_data.push([file, this_save_data])
|
||||
end
|
||||
def determine_default_save_file
|
||||
# Find the save file index matching the current game's filename number
|
||||
if $stats.save_filename_number && $stats.save_filename_number >= 0
|
||||
expected_filename = SaveData.filename_from_index($stats.save_filename_number)
|
||||
@@ -457,38 +457,6 @@ class UI::Save < UI::BaseScreen
|
||||
end
|
||||
end
|
||||
|
||||
def load_save_file(directory, filename)
|
||||
ret = SaveData.read_from_file(directory + filename)
|
||||
if !SaveData.valid?(ret)
|
||||
if File.file?(directory + filename + ".bak")
|
||||
show_message(_INTL("The save file is corrupt. A backup will be loaded."))
|
||||
ret = load_save_file(directory, filename + ".bak")
|
||||
end
|
||||
if prompt_corrupted_save_deletion(filename)
|
||||
delete_save_data(filename)
|
||||
else
|
||||
exit
|
||||
end
|
||||
end
|
||||
return ret
|
||||
end
|
||||
|
||||
def prompt_corrupted_save_deletion(filename)
|
||||
show_message(_INTL("The save file is corrupt, or is incompatible with this game.") + "\1")
|
||||
pbPlayDecisionSE
|
||||
return show_confirm_serious_message(_INTL("Do you want to delete the save file and start anew?"))
|
||||
end
|
||||
|
||||
def delete_save_data(filename)
|
||||
begin
|
||||
SaveData.delete_file(filename)
|
||||
yield if block_given?
|
||||
show_message(_INTL("The save file was deleted."))
|
||||
rescue SystemCallError
|
||||
show_message(_INTL("The save file could not be deleted."))
|
||||
end
|
||||
end
|
||||
|
||||
def different_adventure?(slot_index)
|
||||
return false if !@save_data[slot_index]
|
||||
return false if !@save_data[slot_index][1][:game_system].adventure_magic_number
|
||||
|
||||
Reference in New Issue
Block a user