mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-08 21:54:58 +00:00
Added more save data conversions
This commit is contained in:
@@ -13,6 +13,27 @@ SaveData.register_conversion(:v19_define_versions) do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
SaveData.register_conversion(:v19_convert_PokemonSystem) do
|
||||||
|
essentials_version 19
|
||||||
|
display_title 'Updating PokemonSystem class'
|
||||||
|
to_all do |save_data|
|
||||||
|
new_system = PokemonSystem.new
|
||||||
|
new_system.textspeed = save_data[:pokemon_system].textspeed || new_system.textspeed
|
||||||
|
new_system.battlescene = save_data[:pokemon_system].battlescene || new_system.battlescene
|
||||||
|
new_system.battlestyle = save_data[:pokemon_system].battlestyle || new_system.battlestyle
|
||||||
|
new_system.frame = save_data[:pokemon_system].frame || new_system.frame
|
||||||
|
new_system.textskin = save_data[:pokemon_system].textskin || new_system.textskin
|
||||||
|
new_system.font = save_data[:pokemon_system].font || new_system.font
|
||||||
|
new_system.screensize = save_data[:pokemon_system].screensize || new_system.screensize
|
||||||
|
new_system.language = save_data[:pokemon_system].language || new_system.language
|
||||||
|
new_system.runstyle = save_data[:pokemon_system].runstyle || new_system.runstyle
|
||||||
|
new_system.bgmvolume = save_data[:pokemon_system].bgmvolume || new_system.bgmvolume
|
||||||
|
new_system.sevolume = save_data[:pokemon_system].sevolume || new_system.sevolume
|
||||||
|
new_system.textinput = save_data[:pokemon_system].textinput || new_system.textinput
|
||||||
|
save_data[:pokemon_system] = new_system
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
SaveData.register_conversion(:v19_convert_player) do
|
SaveData.register_conversion(:v19_convert_player) do
|
||||||
essentials_version 19
|
essentials_version 19
|
||||||
display_title 'Converting player trainer class'
|
display_title 'Converting player trainer class'
|
||||||
@@ -23,20 +44,58 @@ SaveData.register_conversion(:v19_convert_player) do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
SaveData.register_conversion(:v19_convert_storage) do
|
SaveData.register_conversion(:v19_convert_global_metadata) do
|
||||||
essentials_version 19
|
essentials_version 19
|
||||||
display_title 'Converting classes of Pokémon in storage'
|
display_title 'Adding encounter version variable to global metadata'
|
||||||
to_value :storage_system do |storage|
|
to_value :global_metadata do |global|
|
||||||
storage.instance_eval do
|
global.bridge ||= 0
|
||||||
for box in 0...self.maxBoxes
|
global.encounter_version ||= 0
|
||||||
for i in 0...self.maxPokemon(box)
|
if global.pcItemStorage
|
||||||
next unless self[box, i]
|
global.pcItemStorage.items.each_with_index do |slot, i|
|
||||||
next if self[box, i].is_a?(Pokemon)
|
item_data = GameData::Item.try_get(slot[0])
|
||||||
self[box, i] = PokeBattle_Pokemon.copy(self[box, i])
|
if item_data
|
||||||
|
slot[0] = item_data.id
|
||||||
|
else
|
||||||
|
global.pcItemStorage.items[i] = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end # storage.instance_eval
|
global.pcItemStorage.items.compact!
|
||||||
end # to_value
|
end
|
||||||
|
if global.mailbox
|
||||||
|
global.mailbox.each_with_index do |mail, i|
|
||||||
|
global.mailbox[i] = PokemonMail.convert(mail) if mail
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if global.partner
|
||||||
|
global.partner[0] = GameData::TrainerType.get(global.partner[0]).id
|
||||||
|
global.partner[3].each_with_index do |pkmn, i|
|
||||||
|
global.partner[3][i] = PokeBattle_Pokemon.convert(pkmn) if pkmn
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if global.daycare
|
||||||
|
global.daycare.each do |slot|
|
||||||
|
slot[0] = PokeBattle_Pokemon.convert(slot[0]) if slot && slot[0]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if global.roamPokemon
|
||||||
|
global.roamPokemon.each_with_index do |p, i|
|
||||||
|
global.roamPokemon[i] = PokeBattle_Pokemon.convert(p) if p
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if global.hallOfFame
|
||||||
|
global.hallOfFame.each do |team|
|
||||||
|
next if !team
|
||||||
|
team.each_with_index do |p, i|
|
||||||
|
team[i] = PokeBattle_Pokemon.convert(p) if p
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if global.triads
|
||||||
|
global.triads.items.each do |card|
|
||||||
|
card[0] = GameData::Species.get(card[0]).id if card && card[0] && card[0] != 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
SaveData.register_conversion(:v19_convert_bag) do
|
SaveData.register_conversion(:v19_convert_bag) do
|
||||||
@@ -45,20 +104,47 @@ SaveData.register_conversion(:v19_convert_bag) do
|
|||||||
to_value :bag do |bag|
|
to_value :bag do |bag|
|
||||||
bag.instance_eval do
|
bag.instance_eval do
|
||||||
for pocket in self.pockets
|
for pocket in self.pockets
|
||||||
for item in pocket
|
pocket.each_with_index do |item, i|
|
||||||
next if !item || !item[0] || item[0] == 0
|
next if !item || !item[0] || item[0] == 0
|
||||||
item_data = GameData::Item.try_get(item[0])
|
item_data = GameData::Item.try_get(item[0])
|
||||||
item[0] = item_data.id if item_data
|
if item_data
|
||||||
|
item[0] = item_data.id
|
||||||
|
else
|
||||||
|
pocket[i] = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
pocket.compact!
|
||||||
|
end
|
||||||
|
self.registeredIndex
|
||||||
|
self.registeredItems.each_with_index do |item, i|
|
||||||
|
next if !item
|
||||||
|
if item == 0
|
||||||
|
self.registeredItems[i] = nil
|
||||||
|
else
|
||||||
|
item_data = GameData::Item.try_get(item)
|
||||||
|
if item_data
|
||||||
|
self.registeredItems = item_data.id
|
||||||
|
else
|
||||||
|
self.registeredItems[i] = nil
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
self.registeredItems.compact!
|
||||||
end # bag.instance_eval
|
end # bag.instance_eval
|
||||||
end # to_value
|
end # to_value
|
||||||
end
|
end
|
||||||
|
|
||||||
SaveData.register_conversion(:v19_convert_global_metadata) do
|
SaveData.register_conversion(:v19_convert_storage) do
|
||||||
essentials_version 19
|
essentials_version 19
|
||||||
display_title 'Adding encounter version variable to global metadata'
|
display_title 'Converting classes of Pokémon in storage'
|
||||||
to_value :global_metadata do |global|
|
to_value :storage_system do |storage|
|
||||||
global.encounter_version ||= 0
|
storage.instance_eval do
|
||||||
end
|
for box in 0...self.maxBoxes
|
||||||
|
for i in 0...self.maxPokemon(box)
|
||||||
|
next unless self[box, i]
|
||||||
|
self[box, i] = PokeBattle_Pokemon.convert(self[box, i])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end # storage.instance_eval
|
||||||
|
end # to_value
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class PokemonGlobalMetadata
|
|||||||
# Events
|
# Events
|
||||||
attr_accessor :eventvars
|
attr_accessor :eventvars
|
||||||
# Affecting the map
|
# Affecting the map
|
||||||
attr_writer :bridge
|
attr_accessor :bridge
|
||||||
attr_accessor :repel
|
attr_accessor :repel
|
||||||
attr_accessor :flashUsed
|
attr_accessor :flashUsed
|
||||||
attr_accessor :encounter_version
|
attr_accessor :encounter_version
|
||||||
@@ -129,10 +129,6 @@ class PokemonGlobalMetadata
|
|||||||
# Save file
|
# Save file
|
||||||
@safesave = false
|
@safesave = false
|
||||||
end
|
end
|
||||||
|
|
||||||
def bridge
|
|
||||||
return @bridge || 0
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ class PokeBattle_Trainer
|
|||||||
ret.character_ID = trainer.metaID if trainer.metaID
|
ret.character_ID = trainer.metaID if trainer.metaID
|
||||||
ret.outfit = trainer.outfit if trainer.outfit
|
ret.outfit = trainer.outfit if trainer.outfit
|
||||||
ret.language = trainer.language if trainer.language
|
ret.language = trainer.language if trainer.language
|
||||||
trainer.party.each { |p| ret.party.push(PokeBattle_Pokemon.copy(p)) }
|
trainer.party.each { |p| ret.party.push(PokeBattle_Pokemon.convert(p)) }
|
||||||
ret.badges = trainer.badges.clone
|
ret.badges = trainer.badges.clone
|
||||||
ret.money = trainer.money
|
ret.money = trainer.money
|
||||||
trainer.seen.each_with_index { |value, i| ret.set_seen(i) if value }
|
trainer.seen.each_with_index { |value, i| ret.set_seen(i) if value }
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ end
|
|||||||
class PokemonMail
|
class PokemonMail
|
||||||
attr_reader :item, :message, :sender, :poke1, :poke2, :poke3
|
attr_reader :item, :message, :sender, :poke1, :poke2, :poke3
|
||||||
|
|
||||||
def self.copy(mail)
|
def self.convert(mail)
|
||||||
|
return mail if mail.is_a?(Mail)
|
||||||
item.poke1[0] = GameData::Species.get(item.poke1[0]).id if item.poke1
|
item.poke1[0] = GameData::Species.get(item.poke1[0]).id if item.poke1
|
||||||
item.poke2[0] = GameData::Species.get(item.poke2[0]).id if item.poke2
|
item.poke2[0] = GameData::Species.get(item.poke2[0]).id if item.poke2
|
||||||
item.poke3[0] = GameData::Species.get(item.poke3[0]).id if item.poke3
|
item.poke3[0] = GameData::Species.get(item.poke3[0]).id if item.poke3
|
||||||
|
|||||||
@@ -190,6 +190,8 @@ end
|
|||||||
# The PC item storage object, which actually contains all the items
|
# The PC item storage object, which actually contains all the items
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
class PCItemStorage
|
class PCItemStorage
|
||||||
|
attr_reader :items
|
||||||
|
|
||||||
MAX_SIZE = 999 # Number of different slots in storage
|
MAX_SIZE = 999 # Number of different slots in storage
|
||||||
MAX_PER_SLOT = 999 # Max. number of items per slot
|
MAX_PER_SLOT = 999 # Max. number of items per slot
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ class PokeBattle_Pokemon
|
|||||||
raise "PokeBattle_Pokemon.new is deprecated. Use Pokemon.new instead."
|
raise "PokeBattle_Pokemon.new is deprecated. Use Pokemon.new instead."
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.copy(pkmn)
|
def self.convert(pkmn)
|
||||||
return pkmn if pkmn.is_a?(Pokemon)
|
return pkmn if pkmn.is_a?(Pokemon)
|
||||||
owner = Pokemon::Owner.new(pkmn.trainerID, pkmn.ot, pkmn.otgender, pkmn.language)
|
owner = Pokemon::Owner.new(pkmn.trainerID, pkmn.ot, pkmn.otgender, pkmn.language)
|
||||||
# Set level to 1 initially, as it will be recalculated later
|
# Set level to 1 initially, as it will be recalculated later
|
||||||
@@ -41,7 +41,7 @@ class PokeBattle_Pokemon
|
|||||||
ret.nature = pkmn.natureflag
|
ret.nature = pkmn.natureflag
|
||||||
ret.nature_for_stats = pkmn.natureOverride
|
ret.nature_for_stats = pkmn.natureOverride
|
||||||
ret.item = pkmn.item
|
ret.item = pkmn.item
|
||||||
ret.mail = PokemonMail.copy(pkmn.mail) if pkmn.mail
|
ret.mail = PokemonMail.convert(pkmn.mail) if pkmn.mail
|
||||||
pkmn.moves.each { |m| ret.moves.push(PBMove.copy(m)) if m && m.id > 0 }
|
pkmn.moves.each { |m| ret.moves.push(PBMove.copy(m)) if m && m.id > 0 }
|
||||||
if pkmn.firstmoves
|
if pkmn.firstmoves
|
||||||
pkmn.firstmoves.each { |m| ret.add_first_move(m) }
|
pkmn.firstmoves.each { |m| ret.add_first_move(m) }
|
||||||
@@ -71,7 +71,7 @@ class PokeBattle_Pokemon
|
|||||||
ret.timeReceived = pkmn.timeReceived
|
ret.timeReceived = pkmn.timeReceived
|
||||||
ret.timeEggHatched = pkmn.timeEggHatched
|
ret.timeEggHatched = pkmn.timeEggHatched
|
||||||
if pkmn.fused
|
if pkmn.fused
|
||||||
ret.fused = PokeBattle_Pokemon.copy(pkmn.fused) if pkmn.fused.is_a?(PokeBattle_Pokemon)
|
ret.fused = PokeBattle_Pokemon.convert(pkmn.fused) if pkmn.fused.is_a?(PokeBattle_Pokemon)
|
||||||
ret.fused = pkmn.fused if pkmn.fused.is_a?(Pokemon)
|
ret.fused = pkmn.fused if pkmn.fused.is_a?(Pokemon)
|
||||||
end
|
end
|
||||||
ret.personalID = pkmn.personalID
|
ret.personalID = pkmn.personalID
|
||||||
|
|||||||
@@ -6,14 +6,14 @@ class PokemonSystem
|
|||||||
attr_accessor :battlescene
|
attr_accessor :battlescene
|
||||||
attr_accessor :battlestyle
|
attr_accessor :battlestyle
|
||||||
attr_accessor :frame
|
attr_accessor :frame
|
||||||
attr_writer :textskin
|
attr_accessor :textskin
|
||||||
attr_accessor :font
|
attr_accessor :font
|
||||||
attr_accessor :screensize
|
attr_accessor :screensize
|
||||||
attr_writer :language
|
attr_accessor :language
|
||||||
attr_writer :runstyle
|
attr_accessor :runstyle
|
||||||
attr_writer :bgmvolume
|
attr_accessor :bgmvolume
|
||||||
attr_writer :sevolume
|
attr_accessor :sevolume
|
||||||
attr_writer :textinput
|
attr_accessor :textinput
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
@textspeed = 1 # Text speed (0=slow, 1=normal, 2=fast)
|
@textspeed = 1 # Text speed (0=slow, 1=normal, 2=fast)
|
||||||
@@ -30,13 +30,7 @@ class PokemonSystem
|
|||||||
@textinput = 0 # Text input mode (0=cursor, 1=keyboard)
|
@textinput = 0 # Text input mode (0=cursor, 1=keyboard)
|
||||||
end
|
end
|
||||||
|
|
||||||
def textskin; return @textskin || 0; end
|
def tilemap; return Settings::MAP_VIEW_MODE; end
|
||||||
def language; return @language || 0; end
|
|
||||||
def runstyle; return @runstyle || 0; end
|
|
||||||
def bgmvolume; return @bgmvolume || 100; end
|
|
||||||
def sevolume; return @sevolume || 100; end
|
|
||||||
def textinput; return @textinput || 0; end
|
|
||||||
def tilemap; return Settings::MAP_VIEW_MODE; end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
|||||||
@@ -262,9 +262,9 @@ class PurifyChamber
|
|||||||
def debugAdd(set,shadow,type1,type2=nil)
|
def debugAdd(set,shadow,type1,type2=nil)
|
||||||
pkmn=PseudoPokemon.new(shadow,type1,type2||type1)
|
pkmn=PseudoPokemon.new(shadow,type1,type2||type1)
|
||||||
if pkmn.shadowPokemon?
|
if pkmn.shadowPokemon?
|
||||||
self.setShadow(set,pkmn)
|
self.setShadow(set,pkmn)
|
||||||
else
|
else
|
||||||
self.insertAfter(set,setCount(set),pkmn)
|
self.insertAfter(set,setCount(set),pkmn)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -988,6 +988,8 @@ end
|
|||||||
|
|
||||||
|
|
||||||
class TriadStorage
|
class TriadStorage
|
||||||
|
attr_reader :items
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
@items = []
|
@items = []
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user