diff --git a/Data/Scripts/001_Technical/002_Ruby Utilities.rb b/Data/Scripts/001_Technical/002_RubyUtilities.rb similarity index 100% rename from Data/Scripts/001_Technical/002_Ruby Utilities.rb rename to Data/Scripts/001_Technical/002_RubyUtilities.rb diff --git a/Data/Scripts/001_Technical/011_Input.rb b/Data/Scripts/001_Technical/003_Input.rb similarity index 100% rename from Data/Scripts/001_Technical/011_Input.rb rename to Data/Scripts/001_Technical/003_Input.rb diff --git a/Data/Scripts/001_Technical/005_Sockets.rb b/Data/Scripts/001_Technical/005_HTTPUtilities.rb similarity index 100% rename from Data/Scripts/001_Technical/005_Sockets.rb rename to Data/Scripts/001_Technical/005_HTTPUtilities.rb diff --git a/Data/Scripts/002_Battle settings.rb b/Data/Scripts/002_BattleSettings.rb similarity index 100% rename from Data/Scripts/002_Battle settings.rb rename to Data/Scripts/002_BattleSettings.rb diff --git a/Data/Scripts/002_Save data/004_Conversion.rb b/Data/Scripts/002_Save data/004_Conversion.rb index fb7d6807e..639b7a451 100644 --- a/Data/Scripts/002_Save data/004_Conversion.rb +++ b/Data/Scripts/002_Save data/004_Conversion.rb @@ -64,6 +64,13 @@ module SaveData @all_proc.call(save_data) if @all_proc.is_a?(Proc) end + # Runs the conversion on the given object. + # @param object + # @param key [Symbol] + def run_single(object, key) + @value_procs[key].call(object) if @value_procs[key].is_a?(Proc) + end + private # @!group Configuration @@ -198,4 +205,16 @@ module SaveData save_data[:game_version] = Settings::GAME_VERSION return true end + + # Runs all possible conversions on the given object. + # @param object [Hash] object to run conversions on + # @param key [Hash] object's key in save data + # @param save_data [Hash] save data to run conversions on + def self.run_single_conversions(object, key, save_data) + validate key => Symbol + conversions_to_run = self.get_conversions(save_data) + conversions_to_run.each do |conversion| + conversion.run_single(object, key) + end + end end diff --git a/Data/Scripts/002_Save data/005_BuiltinConversions.rb b/Data/Scripts/002_Save data/005_BuiltinConversions.rb index 66e2d73bb..913aac0b7 100644 --- a/Data/Scripts/002_Save data/005_BuiltinConversions.rb +++ b/Data/Scripts/002_Save data/005_BuiltinConversions.rb @@ -173,6 +173,27 @@ SaveData.register_conversion(:v19_convert_bag) do end # to_value end +SaveData.register_conversion(:v19_convert_game_variables) do + essentials_version 19 + display_title 'Converting classes of things in Game Variables' + to_all do |save_data| + variables = save_data[:variables] + variables.each_with_index do |value, i| + if value.is_a?(Array) + value.each_with_index do |value2, j| + if value2.is_a?(PokeBattle_Pokemon) + value[j] = PokeBattle_Pokemon.convert(value2) + end + end + elsif value.is_a?(PokeBattle_Pokemon) + variables[i] = PokeBattle_Pokemon.convert(value) + elsif value.is_a?(PokemonBag) + SaveData.run_single_conversions(value, :bag, save_data) + end + end + end +end + SaveData.register_conversion(:v19_convert_storage) do essentials_version 19 display_title 'Converting classes of Pokémon in storage' diff --git a/Data/Scripts/004_Game classes/005_Game_MapAutoscroll.rb b/Data/Scripts/004_Game classes/005_Game_Map_Autoscroll.rb similarity index 100% rename from Data/Scripts/004_Game classes/005_Game_MapAutoscroll.rb rename to Data/Scripts/004_Game classes/005_Game_Map_Autoscroll.rb diff --git a/Data/Scripts/004_Game classes/010_Game_PlayerVisuals.rb b/Data/Scripts/004_Game classes/010_Game_Player_Visuals.rb similarity index 100% rename from Data/Scripts/004_Game classes/010_Game_PlayerVisuals.rb rename to Data/Scripts/004_Game classes/010_Game_Player_Visuals.rb diff --git a/Data/Scripts/011_Data/001_Game data.rb b/Data/Scripts/011_Data/001_GameData.rb similarity index 100% rename from Data/Scripts/011_Data/001_Game data.rb rename to Data/Scripts/011_Data/001_GameData.rb diff --git a/Data/Scripts/011_Data/002_PBS data/007_Berry plant.rb b/Data/Scripts/011_Data/002_PBS data/007_BerryPlant.rb similarity index 100% rename from Data/Scripts/011_Data/002_PBS data/007_Berry plant.rb rename to Data/Scripts/011_Data/002_PBS data/007_BerryPlant.rb diff --git a/Data/Scripts/011_Data/002_PBS data/009_Species files.rb b/Data/Scripts/011_Data/002_PBS data/009_Species_Files.rb similarity index 100% rename from Data/Scripts/011_Data/002_PBS data/009_Species files.rb rename to Data/Scripts/011_Data/002_PBS data/009_Species_Files.rb diff --git a/Data/Scripts/011_Data/002_PBS data/012_Trainer type.rb b/Data/Scripts/011_Data/002_PBS data/012_TrainerType.rb similarity index 100% rename from Data/Scripts/011_Data/002_PBS data/012_Trainer type.rb rename to Data/Scripts/011_Data/002_PBS data/012_TrainerType.rb diff --git a/Data/Scripts/011_Data/002_PBS data/015_Map metadata.rb b/Data/Scripts/011_Data/002_PBS data/015_MapMetadata.rb similarity index 100% rename from Data/Scripts/011_Data/002_PBS data/015_Map metadata.rb rename to Data/Scripts/011_Data/002_PBS data/015_MapMetadata.rb diff --git a/Data/Scripts/015_Items/001_PItem_Items.rb b/Data/Scripts/015_Items/001_Item_Utilities.rb similarity index 100% rename from Data/Scripts/015_Items/001_PItem_Items.rb rename to Data/Scripts/015_Items/001_Item_Utilities.rb diff --git a/Data/Scripts/015_Items/002_PItem_ItemEffects.rb b/Data/Scripts/015_Items/002_Item_Effects.rb similarity index 100% rename from Data/Scripts/015_Items/002_PItem_ItemEffects.rb rename to Data/Scripts/015_Items/002_Item_Effects.rb diff --git a/Data/Scripts/015_Items/003_PItem_BattleItemEffects.rb b/Data/Scripts/015_Items/003_Item_BattleEffects.rb similarity index 100% rename from Data/Scripts/015_Items/003_PItem_BattleItemEffects.rb rename to Data/Scripts/015_Items/003_Item_BattleEffects.rb diff --git a/Data/Scripts/015_Items/004_PItem_Phone.rb b/Data/Scripts/015_Items/004_Item_Phone.rb similarity index 100% rename from Data/Scripts/015_Items/004_PItem_Phone.rb rename to Data/Scripts/015_Items/004_Item_Phone.rb diff --git a/Data/Scripts/015_Items/005_PItem_PokeRadar.rb b/Data/Scripts/015_Items/005_Item_PokeRadar.rb similarity index 100% rename from Data/Scripts/015_Items/005_PItem_PokeRadar.rb rename to Data/Scripts/015_Items/005_Item_PokeRadar.rb diff --git a/Data/Scripts/015_Items/006_PItem_Mail.rb b/Data/Scripts/015_Items/006_Item_Mail.rb similarity index 100% rename from Data/Scripts/015_Items/006_PItem_Mail.rb rename to Data/Scripts/015_Items/006_Item_Mail.rb diff --git a/Data/Scripts/015_Items/007_PItem_Sprites.rb b/Data/Scripts/015_Items/007_Item_Sprites.rb similarity index 100% rename from Data/Scripts/015_Items/007_PItem_Sprites.rb rename to Data/Scripts/015_Items/007_Item_Sprites.rb diff --git a/Data/Scripts/015_Items/008_PItem_Bag.rb b/Data/Scripts/015_Items/008_PokemonBag.rb similarity index 100% rename from Data/Scripts/015_Items/008_PItem_Bag.rb rename to Data/Scripts/015_Items/008_PokemonBag.rb diff --git a/Data/Scripts/016_Pokemon/001_Pokemon-related/002_Pokemon_Forms.rb b/Data/Scripts/016_Pokemon/001_Pokemon-related/002_FormHandlers.rb similarity index 100% rename from Data/Scripts/016_Pokemon/001_Pokemon-related/002_Pokemon_Forms.rb rename to Data/Scripts/016_Pokemon/001_Pokemon-related/002_FormHandlers.rb diff --git a/Data/Scripts/016_Pokemon/001_Pokemon-related/004_Pokemon_ShadowPokemon.rb b/Data/Scripts/016_Pokemon/001_Pokemon-related/004_ShadowPokemon_Other.rb similarity index 100% rename from Data/Scripts/016_Pokemon/001_Pokemon-related/004_Pokemon_ShadowPokemon.rb rename to Data/Scripts/016_Pokemon/001_Pokemon-related/004_ShadowPokemon_Other.rb diff --git a/Data/Scripts/016_Pokemon/001_Pokemon-related/009_Pokemon_Storage.rb b/Data/Scripts/016_Pokemon/001_Pokemon-related/009_PokemonStorage.rb similarity index 100% rename from Data/Scripts/016_Pokemon/001_Pokemon-related/009_Pokemon_Storage.rb rename to Data/Scripts/016_Pokemon/001_Pokemon-related/009_PokemonStorage.rb diff --git a/Data/Scripts/017_UI/001_Animations/001_UI_SplashesAndTitleScreen.rb b/Data/Scripts/017_UI/001_Non-interactive/001_UI_SplashesAndTitleScreen.rb similarity index 100% rename from Data/Scripts/017_UI/001_Animations/001_UI_SplashesAndTitleScreen.rb rename to Data/Scripts/017_UI/001_Non-interactive/001_UI_SplashesAndTitleScreen.rb diff --git a/Data/Scripts/017_UI/001_Animations/002_UI_Controls.rb b/Data/Scripts/017_UI/001_Non-interactive/002_UI_Controls.rb similarity index 100% rename from Data/Scripts/017_UI/001_Animations/002_UI_Controls.rb rename to Data/Scripts/017_UI/001_Non-interactive/002_UI_Controls.rb diff --git a/Data/Scripts/017_UI/001_Animations/003_UI_Credits.rb b/Data/Scripts/017_UI/001_Non-interactive/003_UI_Credits.rb similarity index 100% rename from Data/Scripts/017_UI/001_Animations/003_UI_Credits.rb rename to Data/Scripts/017_UI/001_Non-interactive/003_UI_Credits.rb diff --git a/Data/Scripts/017_UI/001_Animations/020_UI_EggHatching.rb b/Data/Scripts/017_UI/001_Non-interactive/020_UI_EggHatching.rb similarity index 100% rename from Data/Scripts/017_UI/001_Animations/020_UI_EggHatching.rb rename to Data/Scripts/017_UI/001_Non-interactive/020_UI_EggHatching.rb diff --git a/Data/Scripts/017_UI/001_Animations/021_UI_Evolution.rb b/Data/Scripts/017_UI/001_Non-interactive/021_UI_Evolution.rb similarity index 100% rename from Data/Scripts/017_UI/001_Animations/021_UI_Evolution.rb rename to Data/Scripts/017_UI/001_Non-interactive/021_UI_Evolution.rb diff --git a/Data/Scripts/017_UI/001_Animations/022_UI_Trading.rb b/Data/Scripts/017_UI/001_Non-interactive/022_UI_Trading.rb similarity index 100% rename from Data/Scripts/017_UI/001_Animations/022_UI_Trading.rb rename to Data/Scripts/017_UI/001_Non-interactive/022_UI_Trading.rb diff --git a/Data/Scripts/017_UI/001_Animations/027_UI_HallOfFame.rb b/Data/Scripts/017_UI/001_Non-interactive/027_UI_HallOfFame.rb similarity index 100% rename from Data/Scripts/017_UI/001_Animations/027_UI_HallOfFame.rb rename to Data/Scripts/017_UI/001_Non-interactive/027_UI_HallOfFame.rb diff --git a/Data/Scripts/019_Other battles/001_PBattle_SafariZone.rb b/Data/Scripts/019_Alternate battle modes/001_PBattle_SafariZone.rb similarity index 100% rename from Data/Scripts/019_Other battles/001_PBattle_SafariZone.rb rename to Data/Scripts/019_Alternate battle modes/001_PBattle_SafariZone.rb diff --git a/Data/Scripts/019_Other battles/002_PBattle_BugContest.rb b/Data/Scripts/019_Alternate battle modes/002_PBattle_BugContest.rb similarity index 100% rename from Data/Scripts/019_Other battles/002_PBattle_BugContest.rb rename to Data/Scripts/019_Alternate battle modes/002_PBattle_BugContest.rb diff --git a/Data/Scripts/019_Other battles/003_PBattle_OrgBattle.rb b/Data/Scripts/019_Alternate battle modes/003_PBattle_OrgBattle.rb similarity index 100% rename from Data/Scripts/019_Other battles/003_PBattle_OrgBattle.rb rename to Data/Scripts/019_Alternate battle modes/003_PBattle_OrgBattle.rb diff --git a/Data/Scripts/019_Other battles/004_PBattle_OrgBattleRules.rb b/Data/Scripts/019_Alternate battle modes/004_PBattle_OrgBattleRules.rb similarity index 100% rename from Data/Scripts/019_Other battles/004_PBattle_OrgBattleRules.rb rename to Data/Scripts/019_Alternate battle modes/004_PBattle_OrgBattleRules.rb diff --git a/Data/Scripts/019_Other battles/005_PBattle_OrgBattleGenerator.rb b/Data/Scripts/019_Alternate battle modes/005_PBattle_OrgBattleGenerator.rb similarity index 100% rename from Data/Scripts/019_Other battles/005_PBattle_OrgBattleGenerator.rb rename to Data/Scripts/019_Alternate battle modes/005_PBattle_OrgBattleGenerator.rb diff --git a/Data/Scripts/019_Other battles/006_PBattle_BattleSwap.rb b/Data/Scripts/019_Alternate battle modes/006_PBattle_BattleSwap.rb similarity index 100% rename from Data/Scripts/019_Other battles/006_PBattle_BattleSwap.rb rename to Data/Scripts/019_Alternate battle modes/006_PBattle_BattleSwap.rb diff --git a/Data/Scripts/020_System and utilities/005_PSystem_Utilities.rb b/Data/Scripts/020_Utilities/001_Utilities.rb similarity index 100% rename from Data/Scripts/020_System and utilities/005_PSystem_Utilities.rb rename to Data/Scripts/020_Utilities/001_Utilities.rb diff --git a/Data/Scripts/020_System and utilities/004_PSystem_PokemonUtilities.rb b/Data/Scripts/020_Utilities/002_Utilities_Pokemon.rb similarity index 100% rename from Data/Scripts/020_System and utilities/004_PSystem_PokemonUtilities.rb rename to Data/Scripts/020_Utilities/002_Utilities_Pokemon.rb diff --git a/Data/Scripts/020_System and utilities/003_PSystem_BattleAudioUtilities.rb b/Data/Scripts/020_Utilities/003_Utilities_BattleAudio.rb similarity index 100% rename from Data/Scripts/020_System and utilities/003_PSystem_BattleAudioUtilities.rb rename to Data/Scripts/020_Utilities/003_Utilities_BattleAudio.rb diff --git a/Data/Scripts/022_Compiler/005_Compiler_Sprite renamer.rb b/Data/Scripts/022_Compiler/005_Compiler_SpriteRenamer.rb similarity index 100% rename from Data/Scripts/022_Compiler/005_Compiler_Sprite renamer.rb rename to Data/Scripts/022_Compiler/005_Compiler_SpriteRenamer.rb