Fixed playing the credits/changing $scene leaving a ghost image of the old map behind, fixed Pokémon icons sometimes disappearing in storage screen

This commit is contained in:
Maruno17
2022-07-03 16:40:25 +01:00
committed by infinitefusion
parent 799c1e27a6
commit 7d425b0e05
5 changed files with 28 additions and 9 deletions

View File

@@ -44,6 +44,14 @@ class Scene_Map
@spritesets = {}
end
def dispose
disposeSpritesets
@map_renderer.dispose
@map_renderer = nil
@spritesetGlobal.dispose
@spritesetGlobal = nil
end
def autofade(mapid)
playingBGM = $game_system.playing_bgm
playingBGS = $game_system.playing_bgs
@@ -252,7 +260,7 @@ class Scene_Map
break if $scene != self
end
Graphics.freeze
disposeSpritesets
dispose
if $game_temp.to_title
Graphics.transition(20)
Graphics.freeze

View File

@@ -280,10 +280,14 @@ class TilemapRenderer
@tiles.each do |col|
col.each do |coord|
coord.each { |tile| tile.dispose }
coord.clear
end
end
@tiles.clear
@tilesets.bitmaps.each_value { |bitmap| bitmap.dispose }
@tilesets.bitmaps.clear
@autotiles.bitmaps.each_value { |bitmap| bitmap.dispose }
@autotiles.bitmaps.clear
@self_viewport.dispose
@self_viewport = nil
@disposed = true

View File

@@ -499,7 +499,7 @@ class PokemonBoxSprite < SpriteWrapper
sprite.viewport = self.viewport
sprite.x = xval
sprite.y = yval
sprite.z = 0
sprite.z = 1
end
xval += 48
end
@@ -630,12 +630,11 @@ class PokemonBoxPartySprite < SpriteWrapper
@pokemonsprites.compact!
for j in 0...Settings::MAX_PARTY_SIZE
sprite = @pokemonsprites[j]
if sprite && !sprite.disposed?
sprite.viewport = self.viewport
sprite.x = self.x + xvalues[j]
sprite.y = self.y + yvalues[j]
sprite.z = 0
end
next if sprite.nil? || sprite.disposed?
sprite.viewport = self.viewport
sprite.x = self.x + xvalues[j]
sprite.y = self.y + yvalues[j]
sprite.z = 1
end
end

View File

@@ -572,7 +572,7 @@ def pbLoadRpgxpScene(scene)
oldscene = $scene
$scene = scene
Graphics.freeze
oldscene.disposeSpritesets
oldscene.dispose
visibleObjects = pbHideVisibleObjects
Graphics.transition(20)
Graphics.freeze

View File

@@ -35,6 +35,14 @@ class PokemonTilesetScene
pbDisposeSpriteHash(@sprites)
@viewport.dispose
@tilehelper.dispose
if $game_map && $map_factory
$map_factory.setup($game_map.map_id)
$game_player.center($game_player.x, $game_player.y)
if $scene.is_a?(Scene_Map)
$scene.dispose
$scene.createSpritesets
end
end
end
def load_tileset(id)