fix to bug regarding same icon for multiple fusions

This commit is contained in:
Jodiark
2023-05-09 18:54:16 +02:00
parent c022e95bca
commit 42b36eaf90
3 changed files with 26 additions and 6 deletions

View File

@@ -112,14 +112,20 @@ class PokeRadar_UI
bitmap1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke)) bitmap1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke))
bitmap2 = AnimatedBitmap.new(GameData::Species.icon_filename(bodyPoke)) 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 i in 0..bitmap1.width-1
for j in ((bitmap1.height / 2) + Settings::FUSION_ICON_SPRITE_OFFSET)..bitmap1.height-1 for j in ((bitmap1.height / 2) + Settings::FUSION_ICON_SPRITE_OFFSET)..bitmap1.height-1
temp = bitmap2.bitmap.get_pixel(i, j) temp = bitmap2.bitmap.get_pixel(i, j)
bitmap1.bitmap.set_pixel(i, j, temp) result_bitmap.bitmap.set_pixel(i, j, temp)
end end
end end
icon = IconSprite.new(x, y) icon = IconSprite.new(x, y)
icon.setBitmapDirectly(bitmap1) icon.setBitmapDirectly(result_bitmap)
return icon return icon
end end

View File

@@ -187,13 +187,20 @@ class PokemonIconSprite < SpriteWrapper
icon1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke)) icon1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke))
icon2 = AnimatedBitmap.new(GameData::Species.icon_filename(bodyPoke)) 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 i in 0..icon1.width-1
for j in ((icon1.height / 2) + Settings::FUSION_ICON_SPRITE_OFFSET)..icon1.height-1 for j in ((icon1.height / 2) + Settings::FUSION_ICON_SPRITE_OFFSET)..icon1.height-1
temp = icon2.bitmap.get_pixel(i, j) temp = icon2.bitmap.get_pixel(i, j)
icon1.bitmap.set_pixel(i, j, temp) result_icon.bitmap.set_pixel(i, j, temp)
end end
end end
return icon1 return result_icon
end end
def setOffset(offset = PictureOrigin::Center) def setOffset(offset = PictureOrigin::Center)

View File

@@ -34,13 +34,20 @@ class PokemonBoxIcon < IconSprite
icon1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke)) icon1 = AnimatedBitmap.new(GameData::Species.icon_filename(headPoke))
icon2 = AnimatedBitmap.new(GameData::Species.icon_filename(bodyPoke)) 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 i in 0..icon1.width - 1
for j in ((icon1.height / 2) + Settings::FUSION_ICON_SPRITE_OFFSET)..icon1.height - 1 for j in ((icon1.height / 2) + Settings::FUSION_ICON_SPRITE_OFFSET)..icon1.height - 1
temp = icon2.bitmap.get_pixel(i, j) temp = icon2.bitmap.get_pixel(i, j)
icon1.bitmap.set_pixel(i, j, temp) result_icon.bitmap.set_pixel(i, j, temp)
end end
end end
return icon1 return result_icon
end end
def release def release