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 29ca39af1..88e575590 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java @@ -92,9 +92,11 @@ public class QuickSlotButton extends Button implements WndBag.Listener { } } else { Item item = select(slotNum); - item.execute( Dungeon.hero ); - if (item.usesTargeting) { - useTargeting(); + if (Dungeon.hero.belongings.contains(item)) { + item.execute(Dungeon.hero); + if (item.usesTargeting) { + useTargeting(); + } } } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoItem.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoItem.java index 872c7edab..45526f713 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoItem.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoItem.java @@ -34,11 +34,19 @@ public class WndInfoItem extends Window { private static final int WIDTH_MIN = 120; private static final int WIDTH_MAX = 220; - + + //only one WndInfoItem can appear at a time + private static WndInfoItem INSTANCE; + public WndInfoItem( Heap heap ) { - + super(); + if (INSTANCE != null){ + INSTANCE.hide(); + } + INSTANCE = this; + if (heap.type == Heap.Type.HEAP) { fillFields( heap.peek() ); @@ -50,6 +58,11 @@ public class WndInfoItem extends Window { public WndInfoItem( Item item ) { super(); + + if (INSTANCE != null){ + INSTANCE.hide(); + } + INSTANCE = this; fillFields( item ); } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndUseItem.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndUseItem.java index b29c6e565..cf12e3889 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndUseItem.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndUseItem.java @@ -57,7 +57,9 @@ public class WndUseItem extends WndInfoItem { protected void onClick() { hide(); if (owner != null && owner.parent != null) owner.hide(); - if (Dungeon.hero.isAlive()) item.execute( Dungeon.hero, action ); + if (Dungeon.hero.isAlive() && Dungeon.hero.belongings.contains(item)){ + item.execute( Dungeon.hero, action ); + } } }; btn.setSize( btn.reqWidth(), BUTTON_HEIGHT ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndWandmaker.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndWandmaker.java index a7eb9e84e..e78da359f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndWandmaker.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndWandmaker.java @@ -136,7 +136,11 @@ public class WndWandmaker extends Window { } @Override protected void onClick() { - ShatteredPixelDungeon.scene().addToFront(new RewardWindow(item)); + if (Dungeon.hero.belongings.contains(item)) { + ShatteredPixelDungeon.scene().addToFront(new RewardWindow(item)); + } else { + hide(); + } } }; add(slot);