v1.2.0: fixed cases where inv pane wouldn't work for item selecting

This commit is contained in:
Evan Debenham 2022-02-20 19:28:41 -05:00
parent 18d4005c55
commit e853413649
3 changed files with 11 additions and 5 deletions

View File

@ -28,7 +28,6 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.Actor;
import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.Char;
import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob;
import com.shatteredpixel.shatteredpixeldungeon.items.Heap; import com.shatteredpixel.shatteredpixeldungeon.items.Heap;
import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite;
import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap; import com.shatteredpixel.shatteredpixeldungeon.tiles.DungeonTilemap;
import com.watabou.input.ControllerHandler; import com.watabou.input.ControllerHandler;
import com.watabou.input.GameAction; import com.watabou.input.GameAction;
@ -145,7 +144,7 @@ public class CellSelector extends ScrollArea {
} }
public void select( int cell, int button ) { public void select( int cell, int button ) {
if (enabled && Dungeon.hero.ready && !GameScene.InterfaceBlockingHero() if (enabled && Dungeon.hero.ready && !GameScene.interfaceBlockingHero()
&& listener != null && cell != -1) { && listener != null && cell != -1) {
switch (button){ switch (button){

View File

@ -1110,7 +1110,7 @@ public class GameScene extends PixelScene {
} }
} }
public static boolean InterfaceBlockingHero(){ public static boolean interfaceBlockingHero(){
if (scene == null) return false; if (scene == null) return false;
for (Gizmo g : scene.members){ for (Gizmo g : scene.members){
@ -1227,7 +1227,8 @@ public class GameScene extends PixelScene {
cancelCellSelector(); cancelCellSelector();
if (scene != null) { if (scene != null) {
if (scene.inventory != null && scene.inventory.visible){ //TODO can the inventory pane work in these cases? bad to fallback to mobile window
if (scene.inventory != null && scene.inventory.visible && !interfaceBlockingHero()){
scene.inventory.setSelector(listener); scene.inventory.setSelector(listener);
return null; return null;
} else { } else {

View File

@ -37,6 +37,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.bags.ScrollHolder;
import com.shatteredpixel.shatteredpixeldungeon.items.bags.VelvetPouch; import com.shatteredpixel.shatteredpixeldungeon.items.bags.VelvetPouch;
import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand; import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand;
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet;
@ -374,7 +375,12 @@ public class WndBag extends WndTabbed {
@Override @Override
protected void onClick( Tab tab ) { protected void onClick( Tab tab ) {
hide(); hide();
Game.scene().addToFront(new WndBag(((BagTab) tab).bag, selector)); Window w = new WndBag(((BagTab) tab).bag, selector);
if (Game.scene() instanceof GameScene){
GameScene.show(w);
} else {
Game.scene().addToFront(w);
}
} }
@Override @Override