Fixed the Bag lists having incorrect starting positions when choosing an item from a subset of your Bag

This commit is contained in:
Maruno17
2022-06-15 20:03:43 +01:00
parent b8e9251fb4
commit 3238ff817c
3 changed files with 16 additions and 9 deletions

View File

@@ -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,

View File

@@ -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 }

View File

@@ -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