diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java index fbaae026d..5c69e7125 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java @@ -753,7 +753,7 @@ public class GameScene extends PixelScene { toDestroy.clear(); } - public static Point lastOffset = null; + private static Point lastOffset = null; @Override public synchronized Gizmo erase (Gizmo g) { @@ -1137,6 +1137,13 @@ public class GameScene extends PixelScene { } } + public static void centerNextWndOnInvPane(){ + if (scene != null && scene.inventory != null && scene.inventory.visible){ + lastOffset = new Point((int)scene.inventory.centerX() - uiCamera.width/2, + (int)scene.inventory.centerY() - uiCamera.height/2); + } + } + public static void updateFog(){ if (scene != null) { scene.fog.updateFog(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/InventoryPane.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/InventoryPane.java index bee6e380e..134aaf63d 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/InventoryPane.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/InventoryPane.java @@ -126,8 +126,7 @@ public class InventoryPane extends Component { protected void onClick(PointerEvent event) { if (selector != null && !bg.overlapsScreenPoint((int)event.current.x, (int)event.current.y)){ //any windows opened as a consequence of this should be centered on the inventory - GameScene.lastOffset = new Point((int)InventoryPane.this.centerX() - camera.width/2, - (int)InventoryPane.this.centerY() - camera.height/2); + GameScene.centerNextWndOnInvPane(); selector.onSelect(null); selector = null; updateInventory(); @@ -475,8 +474,7 @@ public class InventoryPane extends Component { } //any windows opened as a consequence of this button should be centered on the inventory - GameScene.lastOffset = new Point((int)InventoryPane.this.centerX() - camera.width/2, - (int)InventoryPane.this.centerY() - camera.height/2); + GameScene.centerNextWndOnInvPane(); if (selector != null) { WndBag.ItemSelector activating = selector; selector = null; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java index 0824e7932..7e1ada0df 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java @@ -95,6 +95,7 @@ public class QuickSlotButton extends Button { } else { Item item = select(slotNum); if (Dungeon.hero.belongings.contains(item)) { + GameScene.centerNextWndOnInvPane(); item.execute(Dungeon.hero); if (item.usesTargeting) { useTargeting();