diff --git a/Data/Scripts/001_Settings.rb b/Data/Scripts/001_Settings.rb index 99416549d..012038553 100644 --- a/Data/Scripts/001_Settings.rb +++ b/Data/Scripts/001_Settings.rb @@ -22,7 +22,7 @@ module Settings #Infinite fusion settings NB_POKEMON = 501 - CUSTOM_BASE_SPRITES_FOLDER = "Graphics/CustomBattlers/local_spritesBaseSprites/" + CUSTOM_BASE_SPRITES_FOLDER = "Graphics/CustomBattlers/local_sprites/BaseSprites/" CUSTOM_BATTLERS_FOLDER = "Graphics/CustomBattlers/" CUSTOM_SPRITES_TO_IMPORT_FOLDER = "Graphics/CustomBattlers/Sprites to import/" CUSTOM_BATTLERS_FOLDER_INDEXED = "Graphics/CustomBattlers/local_sprites/indexed/" diff --git a/Data/Scripts/048_Fusion/DoublePreviewScreen.rb b/Data/Scripts/048_Fusion/DoublePreviewScreen.rb index f2060d2b5..85b88e8f9 100644 --- a/Data/Scripts/048_Fusion/DoublePreviewScreen.rb +++ b/Data/Scripts/048_Fusion/DoublePreviewScreen.rb @@ -111,7 +111,7 @@ class DoublePreviewScreen spriteLoader = BattleSpriteLoader.new bitmap = spriteLoader.load_fusion_sprite(head_pokemon,body_pokemon) bitmap.scale_bitmap(Settings::FRONTSPRITE_SCALE) - + pif_sprite = spriteLoader.obtain_fusion_pif_sprite(head_pokemon,body_pokemon) #hasCustom = picturePath.include?("CustomBattlers") #hasCustom = customSpriteExistsBase(body_pokemon,head_pokemon) hasCustom = customSpriteExists(body_pokemon,head_pokemon) @@ -123,10 +123,12 @@ class DoublePreviewScreen drawFusionInformation(dexNumber, level, x) if !$Trainer.seen?(dexNumber) - if hasCustom - previewwindow.picture.pbSetColor(150, 255, 150, 200) + if pif_sprite.local_path() + previewwindow.picture.pbSetColor(170, 200, 250, 200) #blue + elsif hasCustom + previewwindow.picture.pbSetColor(150, 255, 150, 200) #green else - previewwindow.picture.pbSetColor(255, 255, 255, 200) + previewwindow.picture.pbSetColor(255, 255, 255, 200) #white end end return previewwindow diff --git a/Data/Scripts/048_Fusion/PokemonFusion.rb b/Data/Scripts/048_Fusion/PokemonFusion.rb index f1038572c..210f0aa0e 100644 --- a/Data/Scripts/048_Fusion/PokemonFusion.rb +++ b/Data/Scripts/048_Fusion/PokemonFusion.rb @@ -954,6 +954,7 @@ end def drawSpriteCredits(pif_sprite, viewport) overlay = BitmapSprite.new(Graphics.width, Graphics.height, @viewport).bitmap return if pif_sprite.type == :AUTOGEN + return if pif_sprite.local_path x = Graphics.width / 2 y = 240 spritename = pif_sprite.to_filename() diff --git a/Data/Scripts/048_Fusion/Sprites/002_PIFSpriteExtracter.rb b/Data/Scripts/048_Fusion/Sprites/002_PIFSpriteExtracter.rb index 51e4b09c8..319a79750 100644 --- a/Data/Scripts/048_Fusion/Sprites/002_PIFSpriteExtracter.rb +++ b/Data/Scripts/048_Fusion/Sprites/002_PIFSpriteExtracter.rb @@ -9,26 +9,26 @@ class PIFSpriteExtracter def load_sprite(pif_sprite,download_allowed=true) begin - start_time = Time.now - bitmap = @@spritesheet_cache.get_bitmap(pif_sprite) - loaded_from_spritesheet=false + start_time = Time.now + bitmap = @@spritesheet_cache.get_bitmap(pif_sprite) + loaded_from_spritesheet=false - if !bitmap - download_new_spritesheet(pif_sprite) if should_update_spritesheet?(pif_sprite) && download_allowed - if pbResolveBitmap(getSpritesheetPath(pif_sprite)) - bitmap = load_bitmap_from_spritesheet(pif_sprite) - loaded_from_spritesheet=true - @@spritesheet_cache.add(pif_sprite, bitmap) - else - return nil + if !bitmap + download_new_spritesheet(pif_sprite) if should_update_spritesheet?(pif_sprite) && download_allowed + if pbResolveBitmap(getSpritesheetPath(pif_sprite)) + bitmap = load_bitmap_from_spritesheet(pif_sprite) + loaded_from_spritesheet=true + @@spritesheet_cache.add(pif_sprite, bitmap) + else + return nil + end end - end - sprite_bitmap = AnimatedBitmap.from_bitmap(bitmap) - sprite_bitmap.scale_bitmap(get_resize_scale()) - end_time = Time.now - source = loaded_from_spritesheet ? :"spritesheet" : "cache" - echoln "Loaded sprite for from #{source} in #{end_time - start_time} seconds" - return sprite_bitmap + sprite_bitmap = AnimatedBitmap.from_bitmap(bitmap) + sprite_bitmap.scale_bitmap(get_resize_scale()) + end_time = Time.now + source = loaded_from_spritesheet ? :"spritesheet" : "cache" + echoln "Loaded sprite for from #{source} in #{end_time - start_time} seconds" + return sprite_bitmap rescue Exception e = $! echoln "Error loading sprite: #{e}" if bitmap @@ -91,41 +91,8 @@ class PIFSpriteExtracter @@spritesheet_cache.clear end - end +end class PokemonGlobalMetadata attr_accessor :current_spritepack_date end - - - - - -# class SpritesBitmapCache -# @@cache = {} # Cache storage for spritesheets -# @@usage_order = [] # Tracks usage order for LRU eviction -# -# def self.fetch(key) -# if @@cache.key?(key) -# # Move key to the end to mark it as recently used -# @@usage_order.delete(key) -# @@usage_order << key -# return @@cache[key] -# end -# -# # Load spritesheet via block if not found in cache -# spritesheet = yield -# -# if @@cache.size >= Settings::SPRITE_CACHE_MAX_NB -# # Evict least recently used (first in order) -# oldest_key = @@usage_order.shift -# @@cache.delete(oldest_key) -# echoln "Evicted: #{oldest_key} from spritesheet cache" -# end -# -# # Add new spritesheet to cache and track its usage -# @@cache[key] = spritesheet -# @@usage_order << key -# spritesheet -# end -# end \ No newline at end of file diff --git a/Data/Scripts/048_Fusion/Sprites/BattleSpriteLoader.rb b/Data/Scripts/048_Fusion/Sprites/BattleSpriteLoader.rb index 16663e96f..8fb7ed77c 100644 --- a/Data/Scripts/048_Fusion/Sprites/BattleSpriteLoader.rb +++ b/Data/Scripts/048_Fusion/Sprites/BattleSpriteLoader.rb @@ -4,6 +4,9 @@ class BattleSpriteLoader end def load_pif_sprite_directly(pif_sprite) + if pif_sprite.local_path && pbResolveBitmap(pif_sprite.local_path) + return AnimatedBitmap.new(pif_sprite.local_path) + end extractor = get_sprite_extractor_instance(pif_sprite.type) return extractor.load_sprite(pif_sprite) end @@ -22,8 +25,8 @@ class BattleSpriteLoader def preload_sprite_from_pokemon(pokemon) return if !pokemon substitution_id = get_sprite_substitution_id_from_dex_number(pokemon.species) - echoln substitution_id - echoln $PokemonGlobal.alt_sprite_substitutions + # echoln substitution_id + # echoln $PokemonGlobal.alt_sprite_substitutions pif_sprite = $PokemonGlobal.alt_sprite_substitutions[substitution_id] if $PokemonGlobal if !pif_sprite pif_sprite = get_pif_sprite_from_species(pokemon.species) @@ -65,19 +68,25 @@ class BattleSpriteLoader def obtain_fusion_pif_sprite(head_id,body_id) substitution_id = get_sprite_substitution_id_for_fusion(head_id, body_id) pif_sprite = $PokemonGlobal.alt_sprite_substitutions[substitution_id] if $PokemonGlobal + pif_sprite.dump_info if pif_sprite if !pif_sprite pif_sprite = select_new_pif_fusion_sprite(head_id, body_id) + local_path = check_for_local_sprite(pif_sprite) + if local_path + pif_sprite.local_path = local_path + pif_sprite.type = :CUSTOM + end substitution_id = get_sprite_substitution_id_for_fusion(head_id, body_id) $PokemonGlobal.alt_sprite_substitutions[substitution_id] = pif_sprite if $PokemonGlobal end return pif_sprite end + def load_fusion_sprite(head_id, body_id) pif_sprite = obtain_fusion_pif_sprite(head_id,body_id) - local_path = check_for_local_sprite(pif_sprite) - if local_path - return AnimatedBitmap.new(local_path) + if pif_sprite.local_path + return AnimatedBitmap.new(pif_sprite.local_path) end extractor = get_sprite_extractor_instance(pif_sprite.type) loaded_sprite = extractor.load_sprite(pif_sprite, @download_allowed) @@ -94,9 +103,8 @@ class BattleSpriteLoader pif_sprite = select_new_pif_base_sprite(dex_number) $PokemonGlobal.alt_sprite_substitutions[substitution_id] = pif_sprite if $PokemonGlobal end - local_path = check_for_local_sprite(pif_sprite) - if local_path - return AnimatedBitmap.new(local_path) + if pif_sprite.local_path + return AnimatedBitmap.new(pif_sprite.local_path) end extractor = get_sprite_extractor_instance(pif_sprite.type) loaded_sprite = extractor.load_sprite(pif_sprite) @@ -137,6 +145,7 @@ class BattleSpriteLoader end def check_for_local_sprite(pif_sprite) + return pif_sprite.local_path if pif_sprite.local_path if pif_sprite.type == :BASE sprite_path = "#{Settings::CUSTOM_BASE_SPRITES_FOLDER}#{pif_sprite.head_id}#{pif_sprite.alt_letter}.png" else diff --git a/Data/Scripts/048_Fusion/Sprites/PIFSprite.rb b/Data/Scripts/048_Fusion/Sprites/PIFSprite.rb index b937a5f3a..e3c4cecb8 100644 --- a/Data/Scripts/048_Fusion/Sprites/PIFSprite.rb +++ b/Data/Scripts/048_Fusion/Sprites/PIFSprite.rb @@ -4,16 +4,33 @@ class PIFSprite attr_accessor :head_id attr_accessor :body_id attr_accessor :alt_letter + attr_accessor :local_path #types: # :AUTOGEN, :CUSTOM, :BASE - def initialize(type, head_id, body_id, alt_letter="") + def initialize(type, head_id, body_id, alt_letter = "") @type = type @head_id = head_id @body_id = body_id @alt_letter = alt_letter + @local_path = nil end + def dump_info() + echoln "Type: #{@type}" + echoln "Head: #{@head_id}" + echoln "Body: #{@body_id}" + echoln "Alt letter: #{@alt_letter}" + echoln "Local path: #{@local_path}" + end + + def equals(other_pif_sprite) + return @type == other_pif_sprite.type && + @head_id == other_pif_sprite.head_id && + @body_id == other_pif_sprite.body_id && + @alt_letter == other_pif_sprite.alt_letter && + @local_path == other_pif_sprite.local_path + end #little hack for old methods that expect a filename for a sprite def to_filename() @@ -27,9 +44,9 @@ class PIFSprite end end - def setup_from_spritename(spritename,type) + def setup_from_spritename(spritename, type) @type = type - cleaned_name = spritename.gsub(".png","") + cleaned_name = spritename.gsub(".png", "") if cleaned_name =~ /(\d+)\.(\d+)([a-zA-Z]*)/ head_id = $1 body_id = $2 @@ -40,39 +57,36 @@ class PIFSprite @alt_letter = alt_letter end - def self.from_spritename(spritename,type) + def self.from_spritename(spritename, type) obj = allocate - obj.send(:setup_from_spritename, spritename,type) + obj.send(:setup_from_spritename, spritename, type) obj end - end -def new_pif_sprite_from_dex_num(type, dexNum,alt_letter) +def new_pif_sprite_from_dex_num(type, dexNum, alt_letter) body_id = getBodyID(dexNum) - head_id = getHeadID(dexNum,body_id) - return PIFSprite.new(type,head_id,body_id,alt_letter) + head_id = getHeadID(dexNum, body_id) + return PIFSprite.new(type, head_id, body_id, alt_letter) end - - def pif_sprite_from_spritename(spritename, autogen = false) spritename = spritename.split(".png")[0] #remove the extension - if spritename =~ /^(\d+)\.(\d+)([a-zA-Z]*)$/ # Two numbers with optional letters + if spritename =~ /^(\d+)\.(\d+)([a-zA-Z]*)$/ # Two numbers with optional letters type = :CUSTOM - head_id = $1.to_i # Head (e.g., "1" in "1.2.png") - body_id = $2.to_i # Body (e.g., "2" in "1.2.png") - alt_letter = $3 # Optional trailing letter (e.g., "a" in "1.2a.png") + head_id = $1.to_i # Head (e.g., "1" in "1.2.png") + body_id = $2.to_i # Body (e.g., "2" in "1.2.png") + alt_letter = $3 # Optional trailing letter (e.g., "a" in "1.2a.png") - elsif spritename =~ /^(\d+)([a-zA-Z]*)$/ # One number with optional letters + elsif spritename =~ /^(\d+)([a-zA-Z]*)$/ # One number with optional letters type = :BASE - head_id = $1.to_i # Head (e.g., "1" in "1.png") - alt_letter = $2 # Optional trailing letter (e.g., "a" in "1a.png") + head_id = $1.to_i # Head (e.g., "1" in "1.png") + alt_letter = $2 # Optional trailing letter (e.g., "a" in "1a.png") else echoln "Invalid sprite format: #{spritename}" return nil end type = :AUTOGEN if autogen - return PIFSprite.new(type,head_id,body_id,alt_letter) + return PIFSprite.new(type, head_id, body_id, alt_letter) end diff --git a/Data/Scripts/052_AddOns/MultiSaves.rb b/Data/Scripts/052_AddOns/MultiSaves.rb index 11963fdef..6c8c00518 100644 --- a/Data/Scripts/052_AddOns/MultiSaves.rb +++ b/Data/Scripts/052_AddOns/MultiSaves.rb @@ -378,9 +378,7 @@ class PokemonLoadScreen def check_for_spritepack_update() $updated_spritesheets = [] if !$updated_spritesheets - echoln "wawawa" if new_spritepack_was_released() - echoln "waaaah!" reset_updated_spritesheets_cache() $updated_spritesheets = [] end @@ -443,8 +441,6 @@ class PokemonLoadScreen handleReplaceExistingSprites() end if ($game_temp.nb_imported_sprites && $game_temp.nb_imported_sprites > 0) - echoln $game_temp.nb_imported_sprites - echoln $game_temp.nb_imported_sprites.to_s pbMessage(_INTL("{1} new custom sprites were imported into the game", $game_temp.nb_imported_sprites.to_s)) end checkEnableSpritesDownload diff --git a/Data/Scripts/052_AddOns/PokedexUtils.rb b/Data/Scripts/052_AddOns/PokedexUtils.rb index 1e4db7314..2df127f5c 100644 --- a/Data/Scripts/052_AddOns/PokedexUtils.rb +++ b/Data/Scripts/052_AddOns/PokedexUtils.rb @@ -12,16 +12,43 @@ class PokedexUtils return $game_temp.base_sprites_list[dex_number] end + def getLocalBaseSpriteAlts(dex_number) + local_sprite_alts = [] + baseFilename = "#{dex_number}" + possible_alt_letters = getAltLettersList() + possible_alt_letters << "" + possible_alt_letters.each { |alt_letter| + spritename = "#{baseFilename}#{alt_letter}" + local_path = "#{Settings::CUSTOM_BASE_SPRITES_FOLDER}/#{spritename}.png" + if pbResolveBitmap(local_path) + local_sprite_alts << getLocalSpriteID(local_path) + end + } + return local_sprite_alts + end + + def getLocalFusionSpriteAlts(head_id,body_id) + local_sprite_alts = [] + baseFilename = "#{head_id}.#{body_id}" + possible_alt_letters = getAltLettersList() + possible_alt_letters << "" + possible_alt_letters.each { |alt_letter| + spritename = "#{baseFilename}#{alt_letter}" + local_path = "#{Settings::CUSTOM_BATTLERS_FOLDER_INDEXED}/#{head_id.to_s}/#{spritename}.png" + if pbResolveBitmap(local_path) + local_sprite_alts << getLocalSpriteID(local_path) + end + } + return local_sprite_alts + end + + def getLocalSpriteID(sprite_path) + return "local_#{sprite_path}" + end + def getFusionSpriteAlts(head_id, body_id) sprite_id = get_fusion_symbol(head_id,body_id) return $game_temp.custom_sprites_list[sprite_id] - # available_alts = [] - # species_id = get_fusion_id(head_id,body_id).to_s - # for pokemon_id in $game_temp.custom_sprites_list - # available_alts << pokemon_id if pokemon_id.to_s.start_with?(species_id) - # end - # echoln available_alts - # return available_alts end def pbGetAvailableAlts(species, includeAutogens=false) @@ -30,49 +57,19 @@ class PokedexUtils body_id = getBodyID(dex_number) head_id = getHeadID(dex_number,body_id) available_alts = getFusionSpriteAlts(head_id,body_id) + available_alts = [] if !available_alts + local_alts = getLocalFusionSpriteAlts(head_id,body_id) else available_alts= getBaseSpritesAlts(dex_number) + available_alts = [] if !available_alts + local_alts = getLocalBaseSpriteAlts(dex_number) end - available_alts = [] if !available_alts + available_alts += local_alts if local_alts available_alts << "autogen" if includeAutogens return available_alts - - - # ret = [] - # return ret if !species - # dexNum = getDexNumberForSpecies(species) - # isFusion = dexNum > NB_POKEMON - # if !isFusion - # altLetters = getAltLettersList() - # altLetters << "" - # altLetters.each { |alt_letter| - # altFilePath = Settings::CUSTOM_BASE_SPRITES_FOLDER + dexNum.to_s + alt_letter + ".png" - # if pbResolveBitmap(altFilePath) - # ret << altFilePath - # end - # } - # return ret - # end - # body_id = getBodyID(species) - # head_id = getHeadID(species, body_id) - # - # baseFilename = head_id.to_s + "." + body_id.to_s - # baseFilePath = Settings::CUSTOM_BATTLERS_FOLDER_INDEXED + head_id.to_s + "/" + baseFilename + ".png" - # if pbResolveBitmap(baseFilePath) - # ret << baseFilePath - # end - # getAltLettersList().each { |alt_letter| - # if alt_letter != "" #empty is included in alt letters because unfused sprites can be alts and not have a letter - # altFilePath = Settings::CUSTOM_BATTLERS_FOLDER_INDEXED + head_id.to_s + "/" + baseFilename + alt_letter + ".png" - # if pbResolveBitmap(altFilePath) - # ret << altFilePath - # end - # end - # } - # ret << Settings::BATTLERS_FOLDER + head_id.to_s + "/" + baseFilename + ".png" - # return ret end + #todo: return array for split evolution lines that have multiple final evos def getFinalEvolution(species) #ex: [[B3H4,Level 32],[B2H5, Level 35]] diff --git a/Data/Scripts/052_AddOns/UI_Pokedex_SpritesPage.rb b/Data/Scripts/052_AddOns/UI_Pokedex_SpritesPage.rb index 3364a7fde..ac134ffe4 100644 --- a/Data/Scripts/052_AddOns/UI_Pokedex_SpritesPage.rb +++ b/Data/Scripts/052_AddOns/UI_Pokedex_SpritesPage.rb @@ -98,7 +98,7 @@ class PokemonPokedexInfo_Scene if altsList.size >= 3 animated_bitmap = - @sprites["previousSprite"].bitmap = load_pif_sprite(@previous_pif_sprite) + @sprites["previousSprite"].bitmap = load_pif_sprite(@previous_pif_sprite) @sprites["previousSprite"].visible = true end @@ -110,13 +110,6 @@ class PokemonPokedexInfo_Scene return nil end - # def get_currently_selected_sprite() - # species_dex = getDexNumberForSpecies(@species).to_s - # initialize_alt_sprite_substitutions() - # substitution_id = getSpritesSubstutionFromSpecies(species_dex) - # return $PokemonGlobal.alt_sprite_substitutions[substitution_id] - # end - def get_substitution_id(dex_number) if isFusion(dex_number) body_id = getBodyID(dex_number) @@ -129,8 +122,8 @@ class PokemonPokedexInfo_Scene end def set_displayed_to_current_alt(altsList) - dex_number= getDexNumberForSpecies(@species) - species_id= get_substitution_id(dex_number) + dex_number = getDexNumberForSpecies(@species) + species_id = get_substitution_id(dex_number) initialize_alt_sprite_substitutions() return if !$PokemonGlobal.alt_sprite_substitutions[species_id] @@ -164,6 +157,9 @@ class PokemonPokedexInfo_Scene previous_index = @selected_index == 0 ? @available.size - 1 : @selected_index - 1 next_index = @selected_index == @available.size - 1 ? 0 : @selected_index + 1 + echoln "selected sprite:" + get_pif_sprite(@available[@selected_index]).dump_info() + @sprites["bgSelected_previous"].visible = true if is_main_sprite(previous_index) && @available.size > 2 @sprites["bgSelected_center"].visible = true if is_main_sprite(@selected_index) @sprites["bgSelected_next"].visible = true if is_main_sprite(next_index) && @available.size > 1 @@ -174,17 +170,29 @@ class PokemonPokedexInfo_Scene if isFusion(dex_number) body_id = getBodyID(dex_number) head_id = getHeadID(dex_number, body_id) + #Autogen sprite if alt_letter == "autogen" pif_sprite = PIFSprite.new(:AUTOGEN, head_id, body_id) + #Imported custom sprite else + #Spritesheet custom sprite pif_sprite = PIFSprite.new(:CUSTOM, head_id, body_id, alt_letter) end else pif_sprite = PIFSprite.new(:BASE, dex_number, nil, alt_letter) end + #use local sprites instead if they exist + if alt_letter && isLocalSprite(alt_letter) + sprite_path = alt_letter.split("_", 2)[1] + pif_sprite.local_path = sprite_path + end return pif_sprite end + def isLocalSprite(alt_letter) + return alt_letter.start_with?("local_") + end + def isBaseSpritePath(path) filename = File.basename(path).downcase return filename.match?(/\A\d+\.png\Z/) @@ -199,10 +207,9 @@ class PokemonPokedexInfo_Scene if previousIndex < 0 previousIndex = @available.size - 1 end - # @sprites["previousSprite"].visible = @available.size > 2 - # @sprites["nextSprite"].visible = @available.size > 1 - @selected_pif_sprite = get_pif_sprite(@available[@selected_index]) + + @previous_pif_sprite = get_pif_sprite(@available[previousIndex]) @next_pif_sprite = get_pif_sprite(@available[nextIndex]) @@ -234,7 +241,7 @@ class PokemonPokedexInfo_Scene #todo give credits to Japeal - need to differenciate unfused sprites discord_name = "" #"Japeal\n(Generated)" end - + discord_name = "Imported sprite" if @selected_pif_sprite.local_path author_name = File.basename(discord_name, '#*') label_base_color = Color.new(248, 248, 248) @@ -311,30 +318,20 @@ class PokemonPokedexInfo_Scene @sprites["downarrow"].visible = false end - # def is_main_sprite(index = nil) - # return false if !@available - # if index == nil - # index = @selected_index - # end - # return true if @available.size <= 1 - # if @speciesData.always_use_generated - # selected_sprite = @available[index] - # return selected_sprite.start_with?(Settings::BATTLERS_FOLDER) - # end - # return index == 0 - # end - def is_main_sprite(index = nil) - dex_number= getDexNumberForSpecies(@species) + dex_number = getDexNumberForSpecies(@species) if !index index = @selected_index end - selected_sprite = @available[index] species_id = get_substitution_id(dex_number) - if $PokemonGlobal.alt_sprite_substitutions[species_id] - return $PokemonGlobal.alt_sprite_substitutions[species_id].alt_letter == selected_sprite + current_pif_sprite = $PokemonGlobal.alt_sprite_substitutions[species_id] + selected_pif_sprite = get_pif_sprite(@available[index]) + + if current_pif_sprite + return current_pif_sprite.equals(selected_pif_sprite) end + return false end def sprite_is_alt(sprite_path) @@ -344,7 +341,7 @@ class PokemonPokedexInfo_Scene def select_sprite(brief = false) if @available.length > 1 - if is_main_sprite + if is_main_sprite() if brief pbMessage("This sprite will remain the displayed sprite") return true @@ -365,59 +362,12 @@ class PokemonPokedexInfo_Scene end def swap_main_sprite - old_main_sprite = @available[0] - new_alt_letter = @available[@selected_index] species_number = dexNum(@species) substitution_id = get_substitution_id(species_number) $PokemonGlobal.alt_sprite_substitutions[substitution_id] = @selected_pif_sprite end - - # def swap_main_sprite - # begin - # old_main_sprite = @available[0] - # new_main_sprite = @available[@selected_index] - # - # if main_sprite_is_non_custom() - # @speciesData.set_always_use_generated_sprite(false) - # return - # # new_name_without_ext = File.basename(old_main_sprite, ".png") - # # new_name_without_letter=new_name_without_ext.chop - # # File.rename(new_main_sprite, Settings::CUSTOM_BATTLERS_FOLDER+new_name_without_letter + ".png") - # end - # - # if new_main_sprite.start_with?(Settings::BATTLERS_FOLDER) - # @speciesData.set_always_use_generated_sprite(true) - # return - # # new_name_without_ext = File.basename(old_main_sprite, ".png") - # # File.rename(old_main_sprite, Settings::CUSTOM_BATTLERS_FOLDER+new_name_without_ext+"x" + ".png")x - # # return - # end - # File.rename(new_main_sprite, new_main_sprite + "temp") - # File.rename(old_main_sprite, new_main_sprite) - # File.rename(new_main_sprite + "temp", old_main_sprite) - # rescue - # pbMessage("There was an error while swapping the sprites. Please save and restart the game as soon as possible.") - # end - # end - - # def main_sprite_is_non_custom() - # speciesData = getSpecies(@species) - # return speciesData.always_use_generated || @available.size <= 1 - # end end class PokemonGlobalMetadata attr_accessor :alt_sprite_substitutions end - -# def set_alt_sprite_substitution(original_sprite_name, selected_alt, formIndex = 0) -# if !$PokemonGlobal.alt_sprite_substitutions -# initialize_alt_sprite_substitutions() -# end -# if formIndex -# form_suffix = formIndex != 0 ? "_" + formIndex.to_s : "" -# else -# form_suffix = "" -# end -# $PokemonGlobal.alt_sprite_substitutions[original_sprite_name.to_s + form_suffix] = selected_alt -# end