From 0a6a93ec475b8acdacdca4d7e073e47506ec4c44 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Sat, 30 Aug 2025 16:33:47 -0400 Subject: [PATCH] v3.2.3: various UI tweaks to accommodate iPhones (curves mainly) --- .../shatteredpixeldungeon/scenes/AboutScene.java | 3 ++- .../scenes/HeroSelectScene.java | 11 ++++++++++- .../scenes/InterlevelScene.java | 2 +- .../shatteredpixeldungeon/scenes/RankingsScene.java | 2 +- .../shatteredpixeldungeon/scenes/TitleScene.java | 4 ++-- .../shatteredpixeldungeon/ui/CurrencyIndicator.java | 12 ++++++------ .../shatteredpixeldungeon/ui/ExitButton.java | 3 ++- 7 files changed, 24 insertions(+), 13 deletions(-) diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/AboutScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/AboutScene.java index 42db5c1da..a06c3f435 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/AboutScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/AboutScene.java @@ -241,7 +241,8 @@ public class AboutScene extends PixelScene { list.scrollTo(0, 0); ExitButton btnExit = new ExitButton(); - btnExit.setPos( Camera.main.width - btnExit.width(), 0 ); + int ofs = PixelScene.landscape() ? 0 : 4; + btnExit.setPos( Camera.main.width - btnExit.width() - ofs, ofs ); add( btnExit ); //fadeIn(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/HeroSelectScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/HeroSelectScene.java index 1181a003a..fd8cb378c 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/HeroSelectScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/HeroSelectScene.java @@ -55,6 +55,7 @@ import com.watabou.noosa.Game; import com.watabou.noosa.Image; import com.watabou.noosa.NinePatch; import com.watabou.noosa.PointerArea; +import com.watabou.noosa.SkinnedBlock; import com.watabou.noosa.tweeners.Tweener; import com.watabou.noosa.ui.Component; import com.watabou.utils.DeviceCompat; @@ -330,6 +331,13 @@ public class HeroSelectScene extends PixelScene { curX += btnWidth; } + //add a black bar along bottom + if (insets.bottom > 0){ + SkinnedBlock bar = new SkinnedBlock(Camera.main.width, insets.bottom, TextureCache.createSolid(0xFF000000)); + bar.y = h + insets.top; + add(bar); + } + title.setPos(insets.left + (w - title.width()) / 2f, insets.top + (h - HeroBtn.HEIGHT - title.height() - 4)); btnOptions.setRect(heroBtns.get(0).left() + 16, Camera.main.height-HeroBtn.HEIGHT-16, 20, 21); @@ -337,7 +345,8 @@ public class HeroSelectScene extends PixelScene { } btnExit = new ExitButton(); - btnExit.setPos( Camera.main.width - btnExit.width(), 0 ); + int ofs = PixelScene.landscape() ? 0 : 4; + btnExit.setPos( Camera.main.width - btnExit.width() - ofs, ofs ); add( btnExit ); btnExit.visible = btnExit.active = !SPDSettings.intro(); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java index ddc595a41..fd197fd94 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/InterlevelScene.java @@ -266,7 +266,7 @@ public class InterlevelScene extends PixelScene { loadingText = PixelScene.renderTextBlock( text, 9 ); loadingText.setPos( - insets.left + w - loadingText.width() - 8, + insets.left + w - loadingText.width() - 12, insets.top + h - loadingText.height() - 6 ); align(loadingText); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/RankingsScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/RankingsScene.java index 19363ae0c..e54c0e8ea 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/RankingsScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/RankingsScene.java @@ -150,7 +150,7 @@ public class RankingsScene extends PixelScene { btnExit.setPos( Camera.main.width - btnExit.width() - insets.right, insets.top ); add( btnExit ); - float left = insets.left; + float left = insets.left + (PixelScene.landscape() ? 10 : 0); if (Rankings.INSTANCE.latestDaily != null) { IconButton btnDailies = new IconButton(Icons.CALENDAR.get()) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java index 8788f6d92..9f2a52151 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java @@ -223,8 +223,8 @@ public class TitleScene extends PixelScene { version.measure(); version.hardlight( 0x888888 ); //TODO perhaps extra check for Android top-right / top-left notches? - version.x = insets.left + w - version.width() - 4; - version.y = insets.top + h - version.height() - 2; + version.x = insets.left + w - version.width() - 8; + version.y = insets.top + h - version.height() - 4; add( version ); if (DeviceCompat.isDesktop()) { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/CurrencyIndicator.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/CurrencyIndicator.java index 1af7af41f..8ffc9902b 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/CurrencyIndicator.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/CurrencyIndicator.java @@ -61,14 +61,14 @@ public class CurrencyIndicator extends Component { @Override protected void layout() { - energy.x = x + (width - energy.width()) / 2; - energy.y = bottom() - energy.height(); + gold.x = x+1; + gold.y = top() + 1; - gold.x = x + (width - gold.width()) / 2; - if (energy.visible) { - gold.y = bottom() - gold.height()- gold.height() + 2; + energy.x = x+1; + if (gold.visible) { + energy.y = top() + energy.height() - 1; } else { - gold.y = bottom() - gold.height(); + energy.y = top() + 1; } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ExitButton.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ExitButton.java index 0bed248fb..954071067 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ExitButton.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/ExitButton.java @@ -23,6 +23,7 @@ package com.shatteredpixel.shatteredpixeldungeon.ui; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.TitleScene; import com.shatteredpixel.shatteredpixeldungeon.windows.WndKeyBindings; import com.watabou.input.GameAction; @@ -33,7 +34,7 @@ public class ExitButton extends IconButton { public ExitButton() { super(Icons.EXIT.get()); - width = 20; + width = PixelScene.landscape() ? 40 : 20; height = 20; }