mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-07 13:15:01 +00:00
Fix for tiles being invisible after a map transfer if they were on screen before it
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user