diff --git a/Data/Scripts/011_Battle/004_Scene/003_Scene_ChooseCommands.rb b/Data/Scripts/011_Battle/004_Scene/003_Scene_ChooseCommands.rb index dc42d3a46..cb6eeb4b4 100644 --- a/Data/Scripts/011_Battle/004_Scene/003_Scene_ChooseCommands.rb +++ b/Data/Scripts/011_Battle/004_Scene/003_Scene_ChooseCommands.rb @@ -202,8 +202,12 @@ class Battle::Scene # Set Bag starting positions oldLastPocket = $bag.last_viewed_pocket oldChoices = $bag.last_pocket_selections.clone - $bag.last_viewed_pocket = @bagLastPocket if @bagLastPocket - $bag.last_pocket_selections = @bagChoices if @bagChoices + if @bagLastPocket + $bag.last_viewed_pocket = @bagLastPocket + $bag.last_pocket_selections = @bagChoices + else + $bag.reset_last_selections + end # Start Bag screen itemScene = PokemonBag_Scene.new itemScene.pbStartScene($bag, true, diff --git a/Data/Scripts/013_Items/008_PokemonBag.rb b/Data/Scripts/013_Items/008_PokemonBag.rb index 778b443bd..aa00492a9 100644 --- a/Data/Scripts/013_Items/008_PokemonBag.rb +++ b/Data/Scripts/013_Items/008_PokemonBag.rb @@ -16,17 +16,19 @@ class PokemonBag end def initialize - @last_viewed_pocket = 1 - @pockets = [] - @last_pocket_selections = [] - (0..PokemonBag.pocket_count).each do |i| - @pockets[i] = [] - @last_pocket_selections[i] = 0 - end + @pockets = [] + (0..PokemonBag.pocket_count).each { |i| @pockets[i] = [] } + reset_last_selections @registered_items = [] @ready_menu_selection = [0, 0, 1] # Used by the Ready Menu to remember cursor positions end + def reset_last_selections + @last_viewed_pocket = 1 + @last_pocket_selections ||= [] + (0..PokemonBag.pocket_count).each { |i| @last_pocket_selections[i] = 0 } + end + def clear @pockets.each { |pocket| pocket.clear } (PokemonBag.pocket_count + 1).times { |i| @last_pocket_selections[i] = 0 } diff --git a/Data/Scripts/016_UI/007_UI_Bag.rb b/Data/Scripts/016_UI/007_UI_Bag.rb index 56d049bbd..971e90384 100644 --- a/Data/Scripts/016_UI/007_UI_Bag.rb +++ b/Data/Scripts/016_UI/007_UI_Bag.rb @@ -586,6 +586,7 @@ class PokemonBagScreen def pbChooseItemScreen(proc = nil) oldlastpocket = @bag.last_viewed_pocket oldchoices = @bag.last_pocket_selections.clone + @bag.reset_last_selections if proc @scene.pbStartScene(@bag, true, proc) item = @scene.pbChooseItem @scene.pbEndScene