diff --git a/Data/Scripts/003_Game processing/002_Scene_Map.rb b/Data/Scripts/003_Game processing/002_Scene_Map.rb index 248c8ddf1..e647450a8 100644 --- a/Data/Scripts/003_Game processing/002_Scene_Map.rb +++ b/Data/Scripts/003_Game processing/002_Scene_Map.rb @@ -23,7 +23,7 @@ class Scene_Map @spritesets[map.map_id] = Spriteset_Map.new(map) end $map_factory.setSceneStarted(self) - updateSpritesets + updateSpritesets(true) end def createSingleSpriteset(map) @@ -31,7 +31,7 @@ class Scene_Map @spritesets[map] = Spriteset_Map.new($map_factory.maps[map]) $scene.spriteset.restoreAnimations(temp) $map_factory.setSceneStarted(self) - updateSpritesets + updateSpritesets(true) end def disposeSpritesets @@ -133,7 +133,7 @@ class Scene_Map $map_factory.updateMaps(self) end - def updateSpritesets + def updateSpritesets(refresh = false) @spritesets = {} if !@spritesets $map_factory.maps.each do |map| @spritesets[map.map_id] = Spriteset_Map.new(map) if !@spritesets[map.map_id] @@ -150,6 +150,7 @@ class Scene_Map end @spritesetGlobal.update pbDayNightTint(@map_renderer) + @map_renderer.refresh if refresh @map_renderer.update EventHandlers.trigger(:on_frame_update) end diff --git a/Data/Scripts/006_Map renderer/001_TilemapRenderer.rb b/Data/Scripts/006_Map renderer/001_TilemapRenderer.rb index 5f8d5b2a3..da3fff9f3 100644 --- a/Data/Scripts/006_Map renderer/001_TilemapRenderer.rb +++ b/Data/Scripts/006_Map renderer/001_TilemapRenderer.rb @@ -292,6 +292,7 @@ class TilemapRenderer @ox = 0 @oy = 0 @visible = true + @need_refresh = true @disposed = false end @@ -347,7 +348,9 @@ class TilemapRenderer #============================================================================= - def refresh; end + def refresh + @need_refresh = true + end def refresh_tile_bitmap(tile, map, tile_id) tile.tile_id = tile_id @@ -538,7 +541,7 @@ class TilemapRenderer # Recalculate autotile frames @tilesets.update @autotiles.update - do_full_refresh = false + do_full_refresh = @need_refresh if @viewport.ox != @old_viewport_ox || @viewport.oy != @old_viewport_oy @old_viewport_ox = @viewport.ox @old_viewport_oy = @viewport.oy @@ -604,6 +607,7 @@ class TilemapRenderer end end end + @need_refresh = false @autotiles.changed = false end end diff --git a/Data/Scripts/012_Overworld/002_Battle triggering/002_Overworld_BattleIntroAnim.rb b/Data/Scripts/012_Overworld/002_Battle triggering/002_Overworld_BattleIntroAnim.rb index 240f31c7a..4d68ad541 100644 --- a/Data/Scripts/012_Overworld/002_Battle triggering/002_Overworld_BattleIntroAnim.rb +++ b/Data/Scripts/012_Overworld/002_Battle triggering/002_Overworld_BattleIntroAnim.rb @@ -49,11 +49,11 @@ class Game_Temp end def pbSceneStandby -# $scene.disposeSpritesets if $scene.is_a?(Scene_Map) -# RPG::Cache.clear -# Graphics.frame_reset + $scene.disposeSpritesets if $scene.is_a?(Scene_Map) + RPG::Cache.clear + Graphics.frame_reset yield -# $scene.createSpritesets if $scene.is_a?(Scene_Map) + $scene.createSpritesets if $scene.is_a?(Scene_Map) end def pbBattleAnimation(bgm = nil, battletype = 0, foe = nil) diff --git a/Data/Scripts/019_Utilities/001_Utilities.rb b/Data/Scripts/019_Utilities/001_Utilities.rb index 58c9e5fe3..e7434e2a5 100644 --- a/Data/Scripts/019_Utilities/001_Utilities.rb +++ b/Data/Scripts/019_Utilities/001_Utilities.rb @@ -556,6 +556,7 @@ def pbLoadRpgxpScene(scene) oldscene = $scene $scene = scene Graphics.freeze + oldscene.disposeSpritesets visibleObjects = pbHideVisibleObjects Graphics.transition Graphics.freeze @@ -565,6 +566,7 @@ def pbLoadRpgxpScene(scene) Graphics.transition Graphics.freeze $scene = oldscene + $scene.createSpritesets pbShowObjects(visibleObjects) Graphics.transition end