From 42b36eaf902a9487bf9b74c512e1f5bdcfe7d7ea Mon Sep 17 00:00:00 2001 From: Jodiark Date: Tue, 9 May 2023 18:54:16 +0200 Subject: [PATCH] fix to bug regarding same icon for multiple fusions --- Data/Scripts/013_Items/004_1_PokeradarUI.rb | 10 ++++++++-- .../001_Pokemon-related/003_Pokemon_Sprites.rb | 11 +++++++++-- Data/Scripts/016_UI/017_UI_PokemonStorage.rb | 11 +++++++++-- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/Data/Scripts/013_Items/004_1_PokeradarUI.rb b/Data/Scripts/013_Items/004_1_PokeradarUI.rb index 5843dcdcb..3a25dc9f1 100644 --- a/Data/Scripts/013_Items/004_1_PokeradarUI.rb +++ b/Data/Scripts/013_Items/004_1_PokeradarUI.rb @@ -112,14 +112,20 @@ class PokeRadar_UI bitmap1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke)) bitmap2 = AnimatedBitmap.new(GameData::Species.icon_filename(bodyPoke)) + bitmapFileName = sprintf("Graphics/Pokemon/FusionIcons/icon%03d", pokemonId) + headPokeFileName = GameData::Species.icon_filename(headPoke) + bitmapPath = sprintf("%s.png", bitmapFileName) + IO.copy_stream(headPokeFileName, bitmapPath) + result_bitmap = AnimatedBitmap.new(bitmapPath) + for i in 0..bitmap1.width-1 for j in ((bitmap1.height / 2) + Settings::FUSION_ICON_SPRITE_OFFSET)..bitmap1.height-1 temp = bitmap2.bitmap.get_pixel(i, j) - bitmap1.bitmap.set_pixel(i, j, temp) + result_bitmap.bitmap.set_pixel(i, j, temp) end end icon = IconSprite.new(x, y) - icon.setBitmapDirectly(bitmap1) + icon.setBitmapDirectly(result_bitmap) return icon end diff --git a/Data/Scripts/014_Pokemon/001_Pokemon-related/003_Pokemon_Sprites.rb b/Data/Scripts/014_Pokemon/001_Pokemon-related/003_Pokemon_Sprites.rb index 56eca12ac..6c8a97268 100644 --- a/Data/Scripts/014_Pokemon/001_Pokemon-related/003_Pokemon_Sprites.rb +++ b/Data/Scripts/014_Pokemon/001_Pokemon-related/003_Pokemon_Sprites.rb @@ -187,13 +187,20 @@ class PokemonIconSprite < SpriteWrapper icon1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke)) icon2 = AnimatedBitmap.new(GameData::Species.icon_filename(bodyPoke)) + dexNum = getDexNumberForSpecies(@pokemon.species) + bitmapFileName = sprintf("Graphics/Pokemon/FusionIcons/icon%03d", dexNum) + headPokeFileName = GameData::Species.icon_filename(headPoke) + bitmapPath = sprintf("%s.png", bitmapFileName) + IO.copy_stream(headPokeFileName, bitmapPath) + result_icon = AnimatedBitmap.new(bitmapPath) + for i in 0..icon1.width-1 for j in ((icon1.height / 2) + Settings::FUSION_ICON_SPRITE_OFFSET)..icon1.height-1 temp = icon2.bitmap.get_pixel(i, j) - icon1.bitmap.set_pixel(i, j, temp) + result_icon.bitmap.set_pixel(i, j, temp) end end - return icon1 + return result_icon end def setOffset(offset = PictureOrigin::Center) diff --git a/Data/Scripts/016_UI/017_UI_PokemonStorage.rb b/Data/Scripts/016_UI/017_UI_PokemonStorage.rb index e415e50ee..a7bbc2edc 100644 --- a/Data/Scripts/016_UI/017_UI_PokemonStorage.rb +++ b/Data/Scripts/016_UI/017_UI_PokemonStorage.rb @@ -34,13 +34,20 @@ class PokemonBoxIcon < IconSprite icon1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke)) icon2 = AnimatedBitmap.new(GameData::Species.icon_filename(bodyPoke)) + dexNum = getDexNumberForSpecies(species) + bitmapFileName = sprintf("Graphics/Pokemon/FusionIcons/icon%03d", dexNum) + headPokeFileName = GameData::Species.icon_filename(headPoke) + bitmapPath = sprintf("%s.png", bitmapFileName) + IO.copy_stream(headPokeFileName, bitmapPath) + result_icon = AnimatedBitmap.new(bitmapPath) + for i in 0..icon1.width - 1 for j in ((icon1.height / 2) + Settings::FUSION_ICON_SPRITE_OFFSET)..icon1.height - 1 temp = icon2.bitmap.get_pixel(i, j) - icon1.bitmap.set_pixel(i, j, temp) + result_icon.bitmap.set_pixel(i, j, temp) end end - return icon1 + return result_icon end def release