added limit threshold before clearing cache

This commit is contained in:
infinitefusion
2021-09-05 16:57:18 -04:00
parent 2c86a187af
commit ace5657d23
3 changed files with 24 additions and 14 deletions

View File

@@ -8,7 +8,7 @@ class Scene_Map
def spriteset def spriteset
for i in @spritesets.values for i in @spritesets.values
return i if i.map==$game_map return i if i.map == $game_map
end end
return @spritesets.values[0] return @spritesets.values[0]
end end
@@ -51,43 +51,48 @@ class Scene_Map
map = load_data(sprintf("Data/Map%03d.rxdata", mapid)) map = load_data(sprintf("Data/Map%03d.rxdata", mapid))
if playingBGM && map.autoplay_bgm if playingBGM && map.autoplay_bgm
if (PBDayNight.isNight? rescue false) if (PBDayNight.isNight? rescue false)
pbBGMFade(0.8) if playingBGM.name!=map.bgm.name && playingBGM.name!=map.bgm.name+"_n" pbBGMFade(0.8) if playingBGM.name != map.bgm.name && playingBGM.name != map.bgm.name + "_n"
else else
pbBGMFade(0.8) if playingBGM.name!=map.bgm.name pbBGMFade(0.8) if playingBGM.name != map.bgm.name
end end
end end
if playingBGS && map.autoplay_bgs if playingBGS && map.autoplay_bgs
pbBGMFade(0.8) if playingBGS.name!=map.bgs.name pbBGMFade(0.8) if playingBGS.name != map.bgs.name
end end
Graphics.frame_reset Graphics.frame_reset
end end
#todo #todo
def cacheNeedsClearing def cacheNeedsClearing
return false p RPG::Cache.size
return RPG::Cache.size >= 100
end end
def transfer_player(cancelVehicles=true) def transfer_player(cancelVehicles = true)
$game_temp.player_transferring = false $game_temp.player_transferring = false
pbCancelVehicles($game_temp.player_new_map_id) if cancelVehicles pbCancelVehicles($game_temp.player_new_map_id) if cancelVehicles
autofade($game_temp.player_new_map_id) autofade($game_temp.player_new_map_id)
pbBridgeOff pbBridgeOff
@spritesetGlobal.playersprite.clearShadows @spritesetGlobal.playersprite.clearShadows
if $game_map.map_id!=$game_temp.player_new_map_id if $game_map.map_id != $game_temp.player_new_map_id
$MapFactory.setup($game_temp.player_new_map_id) $MapFactory.setup($game_temp.player_new_map_id)
end end
$game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y) $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
case $game_temp.player_new_direction case $game_temp.player_new_direction
when 2 then $game_player.turn_down when 2 then
when 4 then $game_player.turn_left $game_player.turn_down
when 6 then $game_player.turn_right when 4 then
when 8 then $game_player.turn_up $game_player.turn_left
when 6 then
$game_player.turn_right
when 8 then
$game_player.turn_up
end end
$game_player.straighten $game_player.straighten
$game_map.update $game_map.update
disposeSpritesets disposeSpritesets
if cacheNeedsClearing() if RPG::Cache.need_clearing
RPG::Cache.clear RPG::Cache.clear
end end
createSpritesets createSpritesets
@@ -217,7 +222,7 @@ class Scene_Map
end end
end end
def reset_map(fadeout=false) def reset_map(fadeout = false)
$MapFactory.setup($game_map.map_id) $MapFactory.setup($game_map.map_id)
$game_player.moveto($game_player.x, $game_player.y) $game_player.moveto($game_player.x, $game_player.y)
$game_player.straighten $game_player.straighten

View File

@@ -31,6 +31,9 @@ module RPG
return obj return obj
end end
def self.need_clearing()
return @cache.size >= 100
end
def self.load_bitmap(folder_name, filename, hue = 0) def self.load_bitmap(folder_name, filename, hue = 0)

View File

@@ -3,7 +3,9 @@
#=============================================================================== #===============================================================================
def pbSceneStandby def pbSceneStandby
$scene.disposeSpritesets if $scene && $scene.is_a?(Scene_Map) $scene.disposeSpritesets if $scene && $scene.is_a?(Scene_Map)
if RPG::Cache.need_clearing
RPG::Cache.clear RPG::Cache.clear
end
Graphics.frame_reset Graphics.frame_reset
yield yield
$scene.createSpritesets if $scene && $scene.is_a?(Scene_Map) $scene.createSpritesets if $scene && $scene.is_a?(Scene_Map)