diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/effects/FloatingText.java b/src/com/shatteredpixel/shatteredpixeldungeon/effects/FloatingText.java index bc07e9bd5..41e0b523c 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/effects/FloatingText.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/effects/FloatingText.java @@ -20,16 +20,16 @@ */ package com.shatteredpixel.shatteredpixeldungeon.effects; -import java.util.ArrayList; - -import com.watabou.noosa.Camera; -import com.watabou.noosa.Game; import com.shatteredpixel.shatteredpixeldungeon.DungeonTilemap; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.watabou.noosa.Camera; +import com.watabou.noosa.Game; import com.watabou.noosa.RenderedText; import com.watabou.utils.SparseArray; +import java.util.ArrayList; + public class FloatingText extends RenderedText { private static final float LIFESPAN = 1f; @@ -89,10 +89,9 @@ public class FloatingText extends RenderedText { text( text ); hardlight( color ); - - //measure(); - this.x = x - width() / 2; - this.y = y - height(); + + this.x = PixelScene.align( Camera.main, x - width() / 2); + this.y = PixelScene.align( Camera.main, y - height()); timeLeft = LIFESPAN; } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/items/Weightstone.java b/src/com/shatteredpixel/shatteredpixeldungeon/items/Weightstone.java index b371e85bc..ff0287964 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/items/Weightstone.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/items/Weightstone.java @@ -28,11 +28,11 @@ import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; import com.shatteredpixel.shatteredpixeldungeon.windows.IconTitle; import com.shatteredpixel.shatteredpixeldungeon.windows.WndBag; -import com.watabou.noosa.RenderedTextMultiline; import com.watabou.noosa.audio.Sample; import java.util.ArrayList; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/AboutScene.java b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/AboutScene.java index de03f5fa7..b956cd69d 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/AboutScene.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/AboutScene.java @@ -22,20 +22,19 @@ package com.shatteredpixel.shatteredpixeldungeon.scenes; import android.content.Intent; import android.net.Uri; - import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; +import com.shatteredpixel.shatteredpixeldungeon.effects.Flare; +import com.shatteredpixel.shatteredpixeldungeon.ui.Archs; import com.shatteredpixel.shatteredpixeldungeon.ui.ExitButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.Icons; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; +import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.watabou.input.Touchscreen.Touch; import com.watabou.noosa.Camera; import com.watabou.noosa.Game; import com.watabou.noosa.Image; import com.watabou.noosa.RenderedText; -import com.watabou.noosa.RenderedTextMultiline; import com.watabou.noosa.TouchArea; -import com.shatteredpixel.shatteredpixeldungeon.effects.Flare; -import com.shatteredpixel.shatteredpixeldungeon.ui.Archs; -import com.shatteredpixel.shatteredpixeldungeon.ui.Icons; -import com.shatteredpixel.shatteredpixeldungeon.ui.Window; public class AboutScene extends PixelScene { @@ -65,6 +64,7 @@ public class AboutScene extends PixelScene { Image shpx = Icons.SHPX.get(); shpx.x = (colWidth - shpx.width()) / 2; shpx.y = colTop; + align(shpx); add( shpx ); new Flare( 7, 64 ).color( 0x225511, true ).show( shpx, 0 ).angularSpeed = +20; @@ -75,12 +75,14 @@ public class AboutScene extends PixelScene { shpxtitle.x = (colWidth - shpxtitle.width()) / 2; shpxtitle.y = shpx.y + shpx.height + 5; + align(shpxtitle); RenderedTextMultiline shpxtext = renderMultiline( TXT_SHPX, 8 ); shpxtext.maxWidth((int)Math.min(colWidth, 120)); add( shpxtext ); shpxtext.setPos((colWidth - shpxtext.width()) / 2, shpxtitle.y + shpxtitle.height() + 12); + align(shpxtext); RenderedTextMultiline shpxlink = renderMultiline( LNK_SHPX, 8 ); shpxlink.maxWidth(shpxtext.maxWidth()); @@ -88,6 +90,7 @@ public class AboutScene extends PixelScene { add( shpxlink ); shpxlink.setPos((colWidth - shpxlink.width()) / 2, shpxtext.bottom() + 6); + align(shpxlink); TouchArea shpxhotArea = new TouchArea( shpxlink.left(), shpxlink.top(), shpxlink.width(), shpxlink.height() ) { @Override @@ -103,6 +106,7 @@ public class AboutScene extends PixelScene { wata.y = ShatteredPixelDungeon.landscape() ? colTop: shpxlink.top() + wata.height + 20; + align(wata); add( wata ); new Flare( 7, 64 ).color( 0x112233, true ).show( wata, 0 ).angularSpeed = +20; @@ -113,12 +117,14 @@ public class AboutScene extends PixelScene { wataTitle.x = wataOffset + (colWidth - wataTitle.width()) / 2; wataTitle.y = wata.y + wata.height + 11; + align(wataTitle); RenderedTextMultiline wataText = renderMultiline( TXT_WATA, 8 ); wataText.maxWidth((int)Math.min(colWidth, 120)); add( wataText ); wataText.setPos(wataOffset + (colWidth - wataText.width()) / 2, wataTitle.y + wataTitle.height() + 12); + align(wataText); RenderedTextMultiline wataLink = renderMultiline( LNK_WATA, 8 ); wataLink.maxWidth((int)Math.min(colWidth, 120)); @@ -126,6 +132,7 @@ public class AboutScene extends PixelScene { add(wataLink); wataLink.setPos(wataOffset + (colWidth - wataLink.width()) / 2 , wataText.bottom() + 6); + align(wataLink); TouchArea hotArea = new TouchArea( wataLink.left(), wataLink.top(), wataLink.width(), wataLink.height() ) { @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/AmuletScene.java b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/AmuletScene.java index 1493c8eba..dd0e3774d 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/AmuletScene.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/AmuletScene.java @@ -20,17 +20,17 @@ */ package com.shatteredpixel.shatteredpixeldungeon.scenes; -import com.shatteredpixel.shatteredpixeldungeon.items.Amulet; -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; -import com.watabou.noosa.Camera; -import com.watabou.noosa.Game; -import com.watabou.noosa.Image; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.effects.Flare; import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; +import com.shatteredpixel.shatteredpixeldungeon.items.Amulet; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; -import com.watabou.noosa.RenderedTextMultiline; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; +import com.watabou.noosa.Camera; +import com.watabou.noosa.Game; +import com.watabou.noosa.Image; import com.watabou.utils.Random; public class AmuletScene extends PixelScene { @@ -84,7 +84,8 @@ public class AmuletScene extends PixelScene { amulet.x = (Camera.main.width - amulet.width) / 2; amulet.y = (Camera.main.height - height) / 2; - + align(amulet); + btnExit.setPos( (Camera.main.width - btnExit.width()) / 2, amulet.y + amulet.height + LARGE_GAP ); btnStay.setPos( btnExit.left(), btnExit.bottom() + SMALL_GAP ); @@ -93,8 +94,10 @@ public class AmuletScene extends PixelScene { amulet.x = (Camera.main.width - amulet.width) / 2; amulet.y = (Camera.main.height - height) / 2; + align(amulet); text.setPos((Camera.main.width - text.width()) / 2, amulet.y + amulet.height + LARGE_GAP); + align(text); btnExit.setPos( (Camera.main.width - btnExit.width()) / 2, text.top() + text.height() + LARGE_GAP ); btnStay.setPos( btnExit.left(), btnExit.bottom() + SMALL_GAP ); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/BadgesScene.java b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/BadgesScene.java index 27c6f7a34..e371302bf 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/BadgesScene.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/BadgesScene.java @@ -20,20 +20,20 @@ */ package com.shatteredpixel.shatteredpixeldungeon.scenes; +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Badges; +import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.effects.BadgeBanner; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.ui.Archs; +import com.shatteredpixel.shatteredpixeldungeon.ui.ExitButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.shatteredpixel.shatteredpixeldungeon.windows.WndBadge; import com.watabou.noosa.Camera; import com.watabou.noosa.Game; import com.watabou.noosa.Image; import com.watabou.noosa.RenderedText; import com.watabou.noosa.audio.Music; -import com.shatteredpixel.shatteredpixeldungeon.Assets; -import com.shatteredpixel.shatteredpixeldungeon.Badges; -import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; -import com.shatteredpixel.shatteredpixeldungeon.ui.Archs; -import com.shatteredpixel.shatteredpixeldungeon.ui.ExitButton; -import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.watabou.noosa.audio.Sample; import com.watabou.noosa.ui.Button; import com.watabou.utils.Callback; @@ -75,6 +75,7 @@ public class BadgesScene extends PixelScene { title.hardlight(Window.TITLE_COLOR); title.x = (w - title.width()) / 2 ; title.y = (top - title.baseLine()) / 2 ; + align(title); add(title); Badges.loadGlobal(); @@ -88,6 +89,7 @@ public class BadgesScene extends PixelScene { button.setPos( left + j * size + (size - button.width()) / 2, top + i * size + (size - button.height()) / 2); + align(button); add( button ); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java index 6f2c3387d..cb1783362 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/ChangesScene.java @@ -25,12 +25,12 @@ import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.Archs; import com.shatteredpixel.shatteredpixeldungeon.ui.ExitButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.ScrollPane; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.watabou.noosa.Camera; import com.watabou.noosa.NinePatch; import com.watabou.noosa.RenderedText; -import com.watabou.noosa.RenderedTextMultiline; import com.watabou.noosa.ui.Component; //TODO: update this class with relevant info as new versions come out. @@ -98,6 +98,7 @@ public class ChangesScene extends PixelScene { title.hardlight(Window.TITLE_COLOR); title.x = (w - title.width()) / 2 ; title.y = 4; + align(title); add(title); ExitButton btnExit = new ExitButton(); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java index 843f97aa5..24b19ecb6 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/GameScene.java @@ -556,8 +556,8 @@ public class GameScene extends PixelScene { private void showBanner( Banner banner ) { banner.camera = uiCamera; - banner.x = (uiCamera.width - banner.width) / 2 ; - banner.y = (uiCamera.height - banner.height) / 3 ; + banner.x = align( uiCamera, (uiCamera.width - banner.width) / 2 ); + banner.y = align( uiCamera, (uiCamera.height - banner.height) / 3 ); add( banner ); } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/PixelScene.java b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/PixelScene.java index 9942895eb..7aed187e1 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/PixelScene.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/PixelScene.java @@ -25,6 +25,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.effects.BadgeBanner; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.watabou.glwrap.Texture; import com.watabou.input.Touchscreen; @@ -35,9 +36,9 @@ import com.watabou.noosa.Camera; import com.watabou.noosa.ColorBlock; import com.watabou.noosa.Game; import com.watabou.noosa.RenderedText; -import com.watabou.noosa.RenderedTextMultiline; import com.watabou.noosa.Scene; import com.watabou.noosa.Visual; +import com.watabou.noosa.ui.Component; import com.watabou.utils.BitmapCache; import javax.microedition.khronos.opengles.GL10; @@ -217,23 +218,25 @@ public class PixelScene extends Scene { } /** - * These three methods align UI elements to device pixels. + * These methods align UI elements to device pixels. * e.g. if we have a scale of 3x then valid positions are #.0, #.33, #.67 */ + public static float align( float pos ) { + return Math.round(pos * defaultZoom) / (float)defaultZoom; + } + public static float align( Camera camera, float pos ) { return Math.round(pos * camera.zoom) / camera.zoom; } - // This one should be used for UI elements - public static float align( float pos ) { - return Math.round(pos * defaultZoom) / (float)defaultZoom; + public static void align( Visual v ) { + v.x = align( v.x ); + v.y = align( v.y ); } - public static void align( Visual v ) { - Camera c = v.camera(); - v.x = align( c, v.x ); - v.y = align( c, v.y ); + public static void align( Component c ){ + c.setPos(align(c.left()), align(c.top())); } public static boolean noFade = false; @@ -252,8 +255,8 @@ public class PixelScene extends Scene { public static void showBadge( Badges.Badge badge ) { BadgeBanner banner = BadgeBanner.show( badge.image ); banner.camera = uiCamera; - banner.x = (banner.camera.width - banner.width) / 2 ; - banner.y = (banner.camera.height - banner.height) / 3 ; + banner.x = align( banner.camera, (banner.camera.width - banner.width) / 2 ); + banner.y = align( banner.camera, (banner.camera.height - banner.height) / 3 ); Game.scene().add( banner ); } @@ -313,8 +316,8 @@ public class PixelScene extends Scene { @Override protected void updateMatrix() { - float sx = Math.round(scroll.x + shakeX); - float sy = Math.round(scroll.y + shakeY); + float sx = align( this, scroll.x + shakeX ); + float sy = align( this, scroll.y + shakeY ); matrix[0] = +zoom * invW2; matrix[5] = -zoom * invH2; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/RankingsScene.java b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/RankingsScene.java index a4db7b040..bf1244c73 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/RankingsScene.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/RankingsScene.java @@ -30,6 +30,7 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; import com.shatteredpixel.shatteredpixeldungeon.ui.Archs; import com.shatteredpixel.shatteredpixeldungeon.ui.ExitButton; import com.shatteredpixel.shatteredpixeldungeon.ui.Icons; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.shatteredpixel.shatteredpixeldungeon.windows.WndError; import com.shatteredpixel.shatteredpixeldungeon.windows.WndRanking; @@ -37,7 +38,6 @@ import com.watabou.noosa.BitmapText; import com.watabou.noosa.Camera; import com.watabou.noosa.Image; import com.watabou.noosa.RenderedText; -import com.watabou.noosa.RenderedTextMultiline; import com.watabou.noosa.audio.Music; import com.watabou.noosa.ui.Button; import com.watabou.utils.GameMath; @@ -76,6 +76,7 @@ public class RankingsScene extends PixelScene { title.hardlight(Window.SHPX_COLOR); title.x = (w - title.width()) / 2; title.y = GAP; + align(title); add(title); if (Rankings.INSTANCE.records.size() > 0) { @@ -123,6 +124,10 @@ public class RankingsScene extends PixelScene { total.x = won.x + won.width(); label.y = won.y = total.y = h - label.height() - GAP; + align(label); + align(total); + align(won); + } } else { @@ -256,10 +261,12 @@ public class RankingsScene extends PixelScene { super.layout(); shield.x = x; - shield.y = y + (height - shield.height) / 2; + shield.y = y + (height - shield.height) / 2f; + align(shield); - position.x = shield.x + (shield.width - position.width()) / 2; - position.y = shield.y + (shield.height - position.height()) / 2 + 1; + position.x = shield.x + (shield.width - position.width()) / 2f; + position.y = shield.y + (shield.height - position.height()) / 2f + 1; + align(position); if (flare != null) { flare.point( shield.center() ); @@ -268,17 +275,20 @@ public class RankingsScene extends PixelScene { classIcon.x = x + width - classIcon.width; classIcon.y = shield.y; - level.x = classIcon.x + (classIcon.width - level.width()) / 2; - level.y = classIcon.y + (classIcon.height - level.height()) / 2 + 1; + level.x = classIcon.x + (classIcon.width - level.width()) / 2f; + level.y = classIcon.y + (classIcon.height - level.height()) / 2f + 1; + align(level); steps.x = x + width - steps.width - classIcon.width; steps.y = shield.y; - depth.x = steps.x + (steps.width - depth.width()) / 2; - depth.y = steps.y + (steps.height - depth.height()) / 2 + 1; + depth.x = steps.x + (steps.width - depth.width()) / 2f; + depth.y = steps.y + (steps.height - depth.height()) / 2f + 1; + align(depth); desc.maxWidth((int)(steps.x - (shield.x + shield.width + GAP))); - desc.setPos(shield.x + shield.width + GAP, shield.y + (shield.height - desc.height()) / 2 + 1); + desc.setPos(shield.x + shield.width + GAP, shield.y + (shield.height - desc.height()) / 2f + 1); + align(desc); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/StartScene.java b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/StartScene.java index e1f4b9042..4d73cc74e 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/StartScene.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/StartScene.java @@ -34,6 +34,7 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.Archs; import com.shatteredpixel.shatteredpixeldungeon.ui.ExitButton; import com.shatteredpixel.shatteredpixeldungeon.ui.Icons; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.windows.WndChallenges; import com.shatteredpixel.shatteredpixeldungeon.windows.WndClass; import com.shatteredpixel.shatteredpixeldungeon.windows.WndMessage; @@ -43,7 +44,6 @@ import com.watabou.noosa.Game; import com.watabou.noosa.Group; import com.watabou.noosa.Image; import com.watabou.noosa.RenderedText; -import com.watabou.noosa.RenderedTextMultiline; import com.watabou.noosa.audio.Sample; import com.watabou.noosa.particles.BitmaskEmitter; import com.watabou.noosa.particles.Emitter; @@ -108,6 +108,7 @@ public class StartScene extends PixelScene { Image title = BannerSprites.get( Type.SELECT_YOUR_HERO ); title.x = (w - title.width()) / 2; title.y = top; + align( title ); add( title ); buttonX = left; @@ -163,6 +164,7 @@ public class StartScene extends PixelScene { for (int i=0; i < classes.length; i++) { ClassShield shield = shields.get( classes[i] ); shield.setRect( left + i * shieldW, top, shieldW, shieldH ); + align(shield); } ChallengeButton challenge = new ChallengeButton(); @@ -181,12 +183,14 @@ public class StartScene extends PixelScene { left + (i % 2) * shieldW, top + (i / 2) * shieldH, shieldW, shieldH ); + align(shield); } ChallengeButton challenge = new ChallengeButton(); challenge.setPos( w/2 - challenge.width()/2, top + shieldH - challenge.height()/2 ); + align(challenge); add( challenge ); } @@ -200,6 +204,7 @@ public class StartScene extends PixelScene { text.maxWidth((int)width); text.hardlight( 0xFFFF00 ); text.setPos(w / 2 - text.width() / 2, (bottom - BUTTON_HEIGHT) + (BUTTON_HEIGHT - text.height()) / 2); + align(text); unlock.add(text); } @@ -332,6 +337,8 @@ public class StartScene extends PixelScene { } else { text.y = y + (height - text.baseLine()) / 2; } + align(text); + align(secondary); } public void secondary( String text, boolean highlighted ) { @@ -411,9 +418,11 @@ public class StartScene extends PixelScene { avatar.x = x + (width - avatar.width()) / 2; avatar.y = y + (height - avatar.height() - name.height()) / 2; + align(avatar); name.x = x + (width - name.width()) / 2; name.y = avatar.y + avatar.height() + SCALE; + align(name); } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/SurfaceScene.java b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/SurfaceScene.java index 1355f8206..abd56272e 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/SurfaceScene.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/SurfaceScene.java @@ -20,11 +20,15 @@ */ package com.shatteredpixel.shatteredpixeldungeon.scenes; -import java.nio.FloatBuffer; -import java.util.Calendar; - +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Badges; +import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.sprites.RatSprite; +import com.shatteredpixel.shatteredpixeldungeon.ui.Archs; +import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; import com.watabou.gltextures.Gradient; import com.watabou.gltextures.SmartTexture; import com.watabou.glwrap.Matrix; @@ -40,16 +44,12 @@ import com.watabou.noosa.TextureFilm; import com.watabou.noosa.TouchArea; import com.watabou.noosa.Visual; import com.watabou.noosa.audio.Music; -import com.shatteredpixel.shatteredpixeldungeon.Assets; -import com.shatteredpixel.shatteredpixeldungeon.Badges; -import com.shatteredpixel.shatteredpixeldungeon.Dungeon; -import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass; -import com.shatteredpixel.shatteredpixeldungeon.sprites.RatSprite; -import com.shatteredpixel.shatteredpixeldungeon.ui.Archs; -import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; import com.watabou.utils.Point; import com.watabou.utils.Random; +import java.nio.FloatBuffer; +import java.util.Calendar; + public class SurfaceScene extends PixelScene { private static final int FRAME_WIDTH = 88; @@ -85,8 +85,8 @@ public class SurfaceScene extends PixelScene { archs.setSize( w, h ); add( archs ); - float vx = (w - SKY_WIDTH) / 2; - float vy = (h - SKY_HEIGHT - BUTTON_HEIGHT) / 2; + float vx = align((w - SKY_WIDTH) / 2f); + float vy = align((h - SKY_HEIGHT - BUTTON_HEIGHT) / 2f); Point s = Camera.main.cameraToScreen( vx, vy ); viewport = new Camera( s.x, s.y, SKY_WIDTH, SKY_HEIGHT, defaultZoom ); @@ -132,12 +132,14 @@ public class SurfaceScene extends PixelScene { a.am = 2; a.aa = -1; a.x = (SKY_WIDTH - a.width) / 2; a.y = SKY_HEIGHT - a.height; + align(a); window.add( a ); final Pet pet = new Pet(); pet.rm = pet.gm = pet.bm = 1.2f; pet.x = SKY_WIDTH / 2 + 2; pet.y = SKY_HEIGHT - pet.height; + align(pet); window.add( pet ); window.add( new TouchArea( sky ) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java index 757f3ae76..aec82f88a 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/TitleScene.java @@ -212,9 +212,11 @@ public class TitleScene extends PixelScene { image.x = x + (width - image.width()) / 2; image.y = y; + align(image); label.x = x + (width - label.width()) / 2; label.y = image.y + image.height() +2; + align(label); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java index 5623f409c..ce5dd7b11 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/scenes/WelcomeScene.java @@ -9,10 +9,10 @@ import com.shatteredpixel.shatteredpixeldungeon.effects.BannerSprites; import com.shatteredpixel.shatteredpixeldungeon.effects.Fireball; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.watabou.noosa.Camera; import com.watabou.noosa.Game; import com.watabou.noosa.Image; -import com.watabou.noosa.RenderedTextMultiline; import com.watabou.noosa.audio.Sample; import javax.microedition.khronos.opengles.GL10; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/ui/AttackIndicator.java b/src/com/shatteredpixel/shatteredpixeldungeon/ui/AttackIndicator.java index 9c3107d9b..c106cc186 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/ui/AttackIndicator.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/ui/AttackIndicator.java @@ -20,8 +20,6 @@ */ package com.shatteredpixel.shatteredpixeldungeon.ui; -import java.util.ArrayList; - import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; @@ -31,6 +29,8 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.watabou.noosa.Game; import com.watabou.utils.Random; +import java.util.ArrayList; + public class AttackIndicator extends Tag { private static final float ENABLED = 1.0f; @@ -68,6 +68,7 @@ public class AttackIndicator extends Tag { if (sprite != null) { sprite.x = x + (width - sprite.width()) / 2; sprite.y = y + (height - sprite.height()) / 2; + PixelScene.align(sprite); } } @@ -142,6 +143,7 @@ public class AttackIndicator extends Tag { sprite.x = x + (width - sprite.width()) / 2 + 1; sprite.y = y + (height - sprite.height()) / 2; + PixelScene.align(sprite); } catch (Exception e) { } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/ui/BadgesList.java b/src/com/shatteredpixel/shatteredpixeldungeon/ui/BadgesList.java index f7ddd3271..aecb43bd6 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/ui/BadgesList.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/ui/BadgesList.java @@ -20,18 +20,18 @@ */ package com.shatteredpixel.shatteredpixeldungeon.ui; -import java.util.ArrayList; - -import com.watabou.noosa.Game; -import com.watabou.noosa.Image; -import com.watabou.noosa.RenderedText; -import com.watabou.noosa.audio.Sample; -import com.watabou.noosa.ui.Component; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.effects.BadgeBanner; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.windows.WndBadge; +import com.watabou.noosa.Game; +import com.watabou.noosa.Image; +import com.watabou.noosa.RenderedText; +import com.watabou.noosa.audio.Sample; +import com.watabou.noosa.ui.Component; + +import java.util.ArrayList; public class BadgesList extends ScrollPane { @@ -108,9 +108,11 @@ public class BadgesList extends ScrollPane { protected void layout() { icon.x = x; icon.y = y + (height - icon.height) / 2; + PixelScene.align(icon); label.x = icon.x + icon.width + 2; label.y = y + (height - label.baseLine()) / 2; + PixelScene.align(label); } public boolean onClick( float x, float y ) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/ui/CheckBox.java b/src/com/shatteredpixel/shatteredpixeldungeon/ui/CheckBox.java index 50ffd4ae0..8584d2214 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/ui/CheckBox.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/ui/CheckBox.java @@ -40,11 +40,13 @@ public class CheckBox extends RedButton { text.x = x + margin; text.y = y + margin; + PixelScene.align(text); margin = (height - icon.height) / 2; icon.x = x + width - margin - icon.width; icon.y = y + margin; + PixelScene.align(icon); } public boolean checked() { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/ui/DangerIndicator.java b/src/com/shatteredpixel/shatteredpixeldungeon/ui/DangerIndicator.java index c72697c15..949037037 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/ui/DangerIndicator.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/ui/DangerIndicator.java @@ -20,12 +20,12 @@ */ package com.shatteredpixel.shatteredpixeldungeon.ui; -import com.watabou.noosa.BitmapText; -import com.watabou.noosa.Camera; -import com.watabou.noosa.Image; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.watabou.noosa.BitmapText; +import com.watabou.noosa.Camera; +import com.watabou.noosa.Image; public class DangerIndicator extends Tag { @@ -69,7 +69,8 @@ public class DangerIndicator extends Tag { private void placeNumber() { number.x = right() - 11 - number.width(); - number.y = y + (height - number.baseLine()) / 2; + number.y = y + (height - number.baseLine()) / 2f; + PixelScene.align(number); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/ui/GameLog.java b/src/com/shatteredpixel/shatteredpixeldungeon/ui/GameLog.java index 336623ae0..44c4155d7 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/ui/GameLog.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/ui/GameLog.java @@ -23,7 +23,6 @@ package com.shatteredpixel.shatteredpixeldungeon.ui; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.CharSprite; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; -import com.watabou.noosa.RenderedTextMultiline; import com.watabou.noosa.ui.Component; import com.watabou.utils.Signal; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java b/src/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java index cc3869fcc..0da48ff1b 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/ui/QuickSlotButton.java @@ -20,18 +20,19 @@ */ package com.shatteredpixel.shatteredpixeldungeon.ui; -import com.shatteredpixel.shatteredpixeldungeon.levels.Level; -import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; -import com.watabou.noosa.Image; -import com.watabou.noosa.ui.Button; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.DungeonTilemap; import com.shatteredpixel.shatteredpixeldungeon.actors.Actor; import com.shatteredpixel.shatteredpixeldungeon.actors.Char; import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.levels.Level; +import com.shatteredpixel.shatteredpixeldungeon.mechanics.Ballistica; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.windows.WndBag; +import com.watabou.noosa.Image; +import com.watabou.noosa.ui.Button; public class QuickSlotButton extends Button implements WndBag.Listener { @@ -122,6 +123,7 @@ public class QuickSlotButton extends Button implements WndBag.Listener { crossB.x = x + (width - crossB.width) / 2; crossB.y = y + (height - crossB.height) / 2; + PixelScene.align(crossB); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/ui/RedButton.java b/src/com/shatteredpixel/shatteredpixeldungeon/ui/RedButton.java index 0069847b1..ef359fd00 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/ui/RedButton.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/ui/RedButton.java @@ -20,14 +20,14 @@ */ package com.shatteredpixel.shatteredpixeldungeon.ui; +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Chrome; +import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.watabou.noosa.Image; import com.watabou.noosa.NinePatch; import com.watabou.noosa.RenderedText; import com.watabou.noosa.audio.Sample; import com.watabou.noosa.ui.Button; -import com.shatteredpixel.shatteredpixeldungeon.Assets; -import com.shatteredpixel.shatteredpixeldungeon.Chrome; -import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; public class RedButton extends Button { @@ -66,10 +66,12 @@ public class RedButton extends Button { text.x = x + (width - text.width()) / 2; text.y = y + (height - text.baseLine()) / 2; + PixelScene.align(text); if (icon != null) { icon.x = x + text.x - icon.width() - 2; icon.y = y + (height - icon.height()) / 2; + PixelScene.align(icon); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/ui/RenderedTextMultiline.java b/src/com/shatteredpixel/shatteredpixeldungeon/ui/RenderedTextMultiline.java new file mode 100644 index 000000000..7bcceca04 --- /dev/null +++ b/src/com/shatteredpixel/shatteredpixeldungeon/ui/RenderedTextMultiline.java @@ -0,0 +1,197 @@ +/* + * Copyright (C) 2012-2015 Oleg Dolya + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + */ + +package com.shatteredpixel.shatteredpixeldungeon.ui; + +import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.watabou.noosa.RenderedText; +import com.watabou.noosa.ui.Component; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class RenderedTextMultiline extends Component { + + private int maxWidth = Integer.MAX_VALUE; + public int nLines; + + private String text; + private List tokens; + private ArrayList words = new ArrayList<>(); + + private int size; + private float zoom; + private int color = -1; + + private static final String SPACE = " "; + private static final String NEWLINE = "\n"; + private static final String UNDERSCORE = "_"; + + private boolean chinese = false; + + public RenderedTextMultiline(int size){ + this.size = size; + } + + public RenderedTextMultiline(String text, int size){ + this.size = size; + text(text); + } + + public void text(String text){ + this.text = text; + + if (text != null && !text.equals("")) { + //conversion for chinese text + + chinese = text.replaceAll("\\p{Han}", "").length() != text.length(); + + if (chinese){ + tokens = Arrays.asList(text.split("")); + } else { + tokens = Arrays.asList(text.split("(?<= )|(?= )|(?<=\n)|(?=\n)")); + } + build(); + } + } + + public void text(String text, int maxWidth){ + this.maxWidth = maxWidth; + text(text); + } + + public String text(){ + return text; + } + + public void maxWidth(int maxWidth){ + if (this.maxWidth != maxWidth){ + this.maxWidth = maxWidth; + layout(); + } + } + + public int maxWidth(){ + return maxWidth; + } + + private void build(){ + clear(); + words = new ArrayList<>(); + boolean highlighting = false; + for (String str : tokens){ + if (str.equals(UNDERSCORE)){ + highlighting = !highlighting; + } else if (str.equals(NEWLINE)){ + words.add(null); + } else if (!str.equals(SPACE)){ + RenderedText word; + if (str.startsWith(UNDERSCORE) && str.endsWith(UNDERSCORE)){ + word = new RenderedText(str.substring(1, str.length()-1), size); + word.hardlight(0xFFFF44); + } else { + if (str.startsWith(UNDERSCORE)){ + highlighting = !highlighting; + word = new RenderedText(str.substring(1, str.length()), size); + } else if (str.endsWith(UNDERSCORE)) { + word = new RenderedText(str.substring(0, str.length()-1), size); + } else { + word = new RenderedText(str, size); + } + if (highlighting) word.hardlight(0xFFFF44); + else if (color != -1) word.hardlight(color); + + if (str.endsWith(UNDERSCORE)) highlighting = !highlighting; + } + word.scale.set(zoom); + words.add(word); + add(word); + + if (height < word.baseLine()) height = word.baseLine(); + + } + } + layout(); + } + + public void zoom(float zoom){ + this.zoom = zoom; + for (RenderedText word : words) { + if (word != null) word.scale.set(zoom); + } + } + + public void hardlight(int color){ + this.color = color; + for (RenderedText word : words) { + if (word != null) word.hardlight( color ); + } + } + + public void invert(){ + if (words != null) { + for (RenderedText word : words) { + if (word != null) { + word.ra = 0.77f; + word.ga = 0.73f; + word.ba = 0.62f; + word.rm = -0.77f; + word.gm = -0.73f; + word.bm = -0.62f; + } + } + } + } + + @Override + protected void layout() { + super.layout(); + float x = this.x; + float y = this.y; + float height = 0; + nLines = 1; + + for (RenderedText word : words){ + if (word == null) { + //newline + y += height+0.5f; + x = this.x; + nLines++; + } else { + if (word.height() > height) height = word.baseLine(); + + if ((x - this.x) + word.width() > maxWidth){ + y += height+0.5f; + x = this.x; + nLines++; + } + + word.x = x; + word.y = y; + PixelScene.align(word); + x += word.width(); + if (!chinese) x ++; + else x--; + + if ((x - this.x) > width) width = (x - this.x); + + } + } + this.height = (y - this.y) + height+0.5f; + } +} diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/ui/ResumeIndicator.java b/src/com/shatteredpixel/shatteredpixeldungeon/ui/ResumeIndicator.java index 9a1e8868e..fcdaa2815 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/ui/ResumeIndicator.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/ui/ResumeIndicator.java @@ -49,8 +49,9 @@ public class ResumeIndicator extends Tag { protected void layout() { super.layout(); - icon.x = x+1 + (width - icon.width) / 2; - icon.y = y + (height - icon.height) / 2; + icon.x = x+1 + (width - icon.width) / 2f; + icon.y = y + (height - icon.height) / 2f; + PixelScene.align(icon); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java b/src/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java index cd6561d26..78248c07e 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/ui/StatusPane.java @@ -20,6 +20,17 @@ */ package com.shatteredpixel.shatteredpixeldungeon.ui; +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; +import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; +import com.shatteredpixel.shatteredpixeldungeon.effects.particles.BloodParticle; +import com.shatteredpixel.shatteredpixeldungeon.items.keys.IronKey; +import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite; +import com.shatteredpixel.shatteredpixeldungeon.windows.WndGame; +import com.shatteredpixel.shatteredpixeldungeon.windows.WndHero; import com.watabou.input.Touchscreen.Touch; import com.watabou.noosa.BitmapText; import com.watabou.noosa.Camera; @@ -31,16 +42,6 @@ import com.watabou.noosa.particles.BitmaskEmitter; import com.watabou.noosa.particles.Emitter; import com.watabou.noosa.ui.Button; import com.watabou.noosa.ui.Component; -import com.shatteredpixel.shatteredpixeldungeon.Assets; -import com.shatteredpixel.shatteredpixeldungeon.Dungeon; -import com.shatteredpixel.shatteredpixeldungeon.effects.Speck; -import com.shatteredpixel.shatteredpixeldungeon.effects.particles.BloodParticle; -import com.shatteredpixel.shatteredpixeldungeon.items.keys.IronKey; -import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; -import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; -import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite; -import com.shatteredpixel.shatteredpixeldungeon.windows.WndGame; -import com.shatteredpixel.shatteredpixeldungeon.windows.WndHero; public class StatusPane extends Component { @@ -138,11 +139,13 @@ public class StatusPane extends Component { shield.size( width, shield.height ); - avatar.x = shield.x + 15 - avatar.width / 2; - avatar.y = shield.y + 16 - avatar.height / 2; + avatar.x = shield.x + 15 - avatar.width / 2f; + avatar.y = shield.y + 16 - avatar.height / 2f; + PixelScene.align(avatar); - compass.x = avatar.x + avatar.width / 2 - compass.origin.x; - compass.y = avatar.y + avatar.height / 2 - compass.origin.y; + compass.x = avatar.x + avatar.width / 2f - compass.origin.x; + compass.y = avatar.y + avatar.height / 2f - compass.origin.y; + PixelScene.align(compass); hp.x = 30; hp.y = 3; @@ -193,8 +196,9 @@ public class StatusPane extends Component { lastLvl = Dungeon.hero.lvl; level.text( Integer.toString( lastLvl ) ); level.measure(); - level.x = 27.5f - level.width() / 2; - level.y = 28.0f - level.baseLine() / 2; + level.x = 27.5f - level.width() / 2f; + level.y = 28.0f - level.baseLine() / 2f; + PixelScene.align(level); } int k = IronKey.curDepthQuantity; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/ui/Toast.java b/src/com/shatteredpixel/shatteredpixeldungeon/ui/Toast.java index fe8673304..5bf5842fd 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/ui/Toast.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/ui/Toast.java @@ -20,11 +20,10 @@ */ package com.shatteredpixel.shatteredpixeldungeon.ui; -import com.watabou.noosa.NinePatch; -import com.watabou.noosa.RenderedTextMultiline; -import com.watabou.noosa.ui.Component; import com.shatteredpixel.shatteredpixeldungeon.Chrome; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.watabou.noosa.NinePatch; +import com.watabou.noosa.ui.Component; public class Toast extends Component { @@ -70,10 +69,12 @@ public class Toast extends Component { bg.size( width, height ); close.setPos( - bg.x + bg.width() - bg.marginHor() / 2 - MARGIN_HOR - close.width(), - y + (height - close.height()) / 2 ); + bg.x + bg.width() - bg.marginHor() / 2f - MARGIN_HOR - close.width(), + y + (height - close.height()) / 2f ); + PixelScene.align(close); text.setPos(close.left() - MARGIN_HOR - text.width(), y + (height - text.height()) / 2); + PixelScene.align(text); } public void text( String txt ) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/IconTitle.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/IconTitle.java index b3c951d28..9d90248f6 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/IconTitle.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/IconTitle.java @@ -20,15 +20,15 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; -import com.watabou.noosa.Image; -import com.watabou.noosa.RenderedTextMultiline; -import com.watabou.noosa.ui.Component; import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.HealthBar; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; +import com.watabou.noosa.Image; +import com.watabou.noosa.ui.Component; public class IconTitle extends Component { @@ -85,6 +85,7 @@ public class IconTitle extends Component { tfLabel.setPos(imIcon.x + imIcon.width() + GAP, imIcon.height > tfLabel.height() ? imIcon.y + (imIcon.height() - tfLabel.height()) / 2 : imIcon.y); + PixelScene.align(tfLabel); if (health.visible) { health.setRect( tfLabel.left(), Math.max( tfLabel.top() + tfLabel.height(), imIcon.y + imIcon.height() - health.height() ), tfLabel.maxWidth(), 0 ); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndBadge.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndBadge.java index f0b0ae76f..1dd5aa5d8 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndBadge.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndBadge.java @@ -20,12 +20,12 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import com.watabou.noosa.Image; import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.effects.BadgeBanner; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; -import com.watabou.noosa.RenderedTextMultiline; +import com.watabou.noosa.Image; public class WndBadge extends Window { @@ -43,12 +43,14 @@ public class WndBadge extends Window { //TODO: this used to be centered, should probably figure that out. RenderedTextMultiline info = PixelScene.renderMultiline( badge.desc(), 8 ); info.maxWidth(WIDTH - MARGIN * 2); + PixelScene.align(info); add(info); float w = Math.max( icon.width(), info.width() ) + MARGIN * 2; - icon.x = (w - icon.width()) / 2; + icon.x = (w - icon.width()) / 2f; icon.y = MARGIN; + PixelScene.align(icon); info.setPos((w - info.width()) / 2, icon.y + icon.height() + MARGIN); resize( (int)w, (int)(info.bottom() + MARGIN) ); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndBlacksmith.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndBlacksmith.java index 6e67b428c..cc38fe18c 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndBlacksmith.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndBlacksmith.java @@ -20,21 +20,21 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; -import com.watabou.noosa.NinePatch; -import com.watabou.noosa.RenderedTextMultiline; -import com.watabou.noosa.audio.Sample; -import com.watabou.noosa.ui.Component; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Chrome; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Blacksmith; import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.ui.ItemSlot; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; +import com.watabou.noosa.NinePatch; +import com.watabou.noosa.audio.Sample; +import com.watabou.noosa.ui.Component; public class WndBlacksmith extends Window { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndCatalogus.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndCatalogus.java index 3563c526b..5336dcc76 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndCatalogus.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndCatalogus.java @@ -20,21 +20,21 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import java.util.ArrayList; - import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; -import com.watabou.noosa.RenderedText; -import com.watabou.noosa.RenderedTextMultiline; -import com.watabou.noosa.ui.Component; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.potions.Potion; import com.shatteredpixel.shatteredpixeldungeon.items.scrolls.Scroll; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.ScrollPane; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; +import com.watabou.noosa.RenderedText; +import com.watabou.noosa.ui.Component; + +import java.util.ArrayList; public class WndCatalogus extends WndTabbed { @@ -111,6 +111,7 @@ public class WndCatalogus extends WndTabbed { txtTitle.text( Messages.get(this, "title", showPotions ? Messages.get(this, "potions") : Messages.get(this, "scrolls") ) ); txtTitle.x = (width - txtTitle.width()) / 2; + PixelScene.align(txtTitle); items.clear(); @@ -182,6 +183,7 @@ public class WndCatalogus extends WndTabbed { label.maxWidth((int)(width - sprite.width)); label.setPos(sprite.x + sprite.width, y + (height - label.height()) / 2); + PixelScene.align(label); } public boolean onClick( float x, float y ) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java index d785d10c9..49c67d155 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndChallenges.java @@ -20,16 +20,16 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import java.util.ArrayList; - -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.Challenges; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.ui.CheckBox; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.watabou.noosa.RenderedText; +import java.util.ArrayList; + public class WndChallenges extends Window { private static final int WIDTH = 108; @@ -50,9 +50,10 @@ public class WndChallenges extends Window { title.hardlight( TITLE_COLOR ); title.x = (WIDTH - title.width()) / 2; title.y = (TTL_HEIGHT - title.height()) / 2; + PixelScene.align(title); add( title ); - boxes = new ArrayList(); + boxes = new ArrayList<>(); float pos = TTL_HEIGHT; for (int i=0; i < Challenges.NAME_IDS.length; i++) { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndChooseWay.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndChooseWay.java index 4a55fc142..e7cab0a12 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndChooseWay.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndChooseWay.java @@ -20,14 +20,14 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; -import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass; import com.shatteredpixel.shatteredpixeldungeon.items.TomeOfMastery; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; -import com.watabou.noosa.RenderedTextMultiline; public class WndChooseWay extends Window { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndClass.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndClass.java index e7eef88b7..840d4b78e 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndClass.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndClass.java @@ -25,9 +25,9 @@ import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroClass; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.HeroSubClass; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.watabou.noosa.BitmapText; import com.watabou.noosa.Group; -import com.watabou.noosa.RenderedTextMultiline; public class WndClass extends WndTabbed { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndHero.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndHero.java index 313342fef..fac38dc54 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndHero.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndHero.java @@ -20,10 +20,17 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import java.util.Locale; - +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Dungeon; +import com.shatteredpixel.shatteredpixeldungeon.Statistics; +import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; +import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; +import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite; +import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; +import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.watabou.gltextures.SmartTexture; import com.watabou.gltextures.TextureCache; @@ -31,17 +38,10 @@ import com.watabou.noosa.Group; import com.watabou.noosa.Image; import com.watabou.noosa.RenderedText; import com.watabou.noosa.TextureFilm; -import com.shatteredpixel.shatteredpixeldungeon.Assets; -import com.shatteredpixel.shatteredpixeldungeon.Dungeon; -import com.shatteredpixel.shatteredpixeldungeon.Statistics; -import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; -import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; -import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene; -import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; -import com.shatteredpixel.shatteredpixeldungeon.ui.BuffIndicator; -import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; import com.watabou.noosa.ui.Button; +import java.util.Locale; + public class WndHero extends WndTabbed { private static final int WIDTH = 100; @@ -148,8 +148,9 @@ public class WndHero extends WndTabbed { add( txt ); txt = PixelScene.renderText( value, 8 ); - txt.x = 65; + txt.x = WIDTH * 0.65f; txt.y = pos; + PixelScene.align(txt); add( txt ); pos += GAP + txt.baseLine(); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndImp.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndImp.java index 825b8e164..d9464411d 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndImp.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndImp.java @@ -20,17 +20,17 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Imp; import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.quest.DwarfToken; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; -import com.watabou.noosa.RenderedTextMultiline; public class WndImp extends Window { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoBuff.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoBuff.java index 09310b1c7..09fae274b 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoBuff.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoBuff.java @@ -24,11 +24,11 @@ import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.actors.buffs.Buff; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.watabou.gltextures.SmartTexture; import com.watabou.gltextures.TextureCache; import com.watabou.noosa.Image; -import com.watabou.noosa.RenderedTextMultiline; import com.watabou.noosa.TextureFilm; public class WndInfoBuff extends Window { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoCell.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoCell.java index cefdd986e..a3bc023e0 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoCell.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoCell.java @@ -20,16 +20,16 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import com.shatteredpixel.shatteredpixeldungeon.ui.CustomTileVisual; -import com.watabou.noosa.Image; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.DungeonTilemap; import com.shatteredpixel.shatteredpixeldungeon.actors.blobs.Blob; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.levels.Terrain; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.ui.CustomTileVisual; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; -import com.watabou.noosa.RenderedTextMultiline; +import com.watabou.noosa.Image; public class WndInfoCell extends Window { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoItem.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoItem.java index 629ac5880..6e6fcdffa 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoItem.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndInfoItem.java @@ -31,8 +31,8 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.ItemSlot; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; -import com.watabou.noosa.RenderedTextMultiline; public class WndInfoItem extends Window { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndItem.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndItem.java index a2437b114..f7dc25cee 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndItem.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndItem.java @@ -27,8 +27,8 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.ui.ItemSlot; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; -import com.watabou.noosa.RenderedTextMultiline; import java.util.ArrayList; import java.util.Collections; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java index 58f7e5745..8c8bd5c4a 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndJournal.java @@ -20,20 +20,20 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import java.util.Collections; - -import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; -import com.watabou.noosa.BitmapText; -import com.watabou.noosa.Image; -import com.watabou.noosa.RenderedText; -import com.watabou.noosa.ui.Component; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Journal; +import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.ui.Icons; import com.shatteredpixel.shatteredpixeldungeon.ui.ScrollPane; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; +import com.watabou.noosa.BitmapText; +import com.watabou.noosa.Image; +import com.watabou.noosa.RenderedText; +import com.watabou.noosa.ui.Component; + +import java.util.Collections; public class WndJournal extends Window { @@ -54,6 +54,7 @@ public class WndJournal extends Window { txtTitle = PixelScene.renderText( Messages.get(this, "title"), 9 ); txtTitle.hardlight( Window.TITLE_COLOR ); txtTitle.x = (WIDTH - txtTitle.width()) / 2; + PixelScene.align(txtTitle); add( txtTitle ); Component content = new Component(); @@ -117,10 +118,12 @@ public class WndJournal extends Window { depth.x = icon.x - 1 - depth.width(); depth.y = y + (height - depth.height()) / 2; + PixelScene.align(depth); icon.y = depth.y - 1; feature.y = depth.y + depth.baseLine() - feature.baseLine(); + PixelScene.align(feature); } } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndLangs.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndLangs.java index a47b6ba7e..5825fffbe 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndLangs.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndLangs.java @@ -26,10 +26,10 @@ import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.TitleScene; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.watabou.noosa.ColorBlock; import com.watabou.noosa.RenderedText; -import com.watabou.noosa.RenderedTextMultiline; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndMessage.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndMessage.java index b9e4d75a4..73ef38260 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndMessage.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndMessage.java @@ -22,8 +22,8 @@ package com.shatteredpixel.shatteredpixeldungeon.windows; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; -import com.watabou.noosa.RenderedTextMultiline; public class WndMessage extends Window { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndOptions.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndOptions.java index ab3d51688..79248d7a0 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndOptions.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndOptions.java @@ -23,8 +23,8 @@ package com.shatteredpixel.shatteredpixeldungeon.windows; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; -import com.watabou.noosa.RenderedTextMultiline; public class WndOptions extends Window { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndRanking.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndRanking.java index ab9c69336..99a18bd4a 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndRanking.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndRanking.java @@ -20,23 +20,13 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import java.util.Locale; - - -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; -import com.watabou.noosa.ColorBlock; -import com.watabou.noosa.Game; -import com.watabou.noosa.Group; -import com.watabou.noosa.Image; -import com.watabou.noosa.RenderedText; -import com.watabou.noosa.audio.Sample; -import com.watabou.noosa.ui.Button; import com.shatteredpixel.shatteredpixeldungeon.Assets; import com.shatteredpixel.shatteredpixeldungeon.Badges; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.Statistics; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Belongings; import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.HeroSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.BadgesList; @@ -45,6 +35,15 @@ import com.shatteredpixel.shatteredpixeldungeon.ui.ItemSlot; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; import com.shatteredpixel.shatteredpixeldungeon.ui.ScrollPane; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; +import com.watabou.noosa.ColorBlock; +import com.watabou.noosa.Game; +import com.watabou.noosa.Group; +import com.watabou.noosa.Image; +import com.watabou.noosa.RenderedText; +import com.watabou.noosa.audio.Sample; +import com.watabou.noosa.ui.Button; + +import java.util.Locale; public class WndRanking extends WndTabbed { @@ -200,6 +199,7 @@ public class WndRanking extends WndTabbed { txt = PixelScene.renderText( value, 7 ); txt.x = WIDTH * 0.65f; txt.y = pos; + PixelScene.align(txt); parent.add( txt ); return pos + GAP + txt.baseLine(); diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndResurrect.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndResurrect.java index a2d06f36d..78a926f81 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndResurrect.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndResurrect.java @@ -20,18 +20,18 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; -import com.watabou.noosa.Game; import com.shatteredpixel.shatteredpixeldungeon.Rankings; import com.shatteredpixel.shatteredpixeldungeon.Statistics; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; import com.shatteredpixel.shatteredpixeldungeon.items.Ankh; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.InterlevelScene; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; -import com.watabou.noosa.RenderedTextMultiline; +import com.watabou.noosa.Game; public class WndResurrect extends Window { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndSadGhost.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndSadGhost.java index 9c3366e20..db1f8bf6c 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndSadGhost.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndSadGhost.java @@ -30,9 +30,9 @@ import com.shatteredpixel.shatteredpixeldungeon.sprites.FetidRatSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.GnollTricksterSprite; import com.shatteredpixel.shatteredpixeldungeon.sprites.GreatCrabSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; -import com.watabou.noosa.RenderedTextMultiline; public class WndSadGhost extends Window { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndStory.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndStory.java index 6611553a8..e6a3dc530 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndStory.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndStory.java @@ -25,10 +25,10 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.watabou.input.Touchscreen.Touch; import com.watabou.noosa.Game; -import com.watabou.noosa.RenderedTextMultiline; import com.watabou.noosa.TouchArea; import com.watabou.utils.SparseArray; diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTabbed.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTabbed.java index ad07c84a8..25e2b6ffb 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTabbed.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTabbed.java @@ -20,17 +20,17 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import java.util.ArrayList; - +import com.shatteredpixel.shatteredpixeldungeon.Assets; +import com.shatteredpixel.shatteredpixeldungeon.Chrome; +import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; +import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.watabou.noosa.Game; import com.watabou.noosa.NinePatch; import com.watabou.noosa.RenderedText; import com.watabou.noosa.audio.Sample; import com.watabou.noosa.ui.Button; -import com.shatteredpixel.shatteredpixeldungeon.Assets; -import com.shatteredpixel.shatteredpixeldungeon.Chrome; -import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; -import com.shatteredpixel.shatteredpixeldungeon.ui.Window; + +import java.util.ArrayList; public class WndTabbed extends Window { @@ -218,6 +218,7 @@ public class WndTabbed extends Window { if (!selected) { btLabel.y -= 2; } + PixelScene.align(btLabel); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTitledMessage.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTitledMessage.java index 050fb7894..4d63534a1 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTitledMessage.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTitledMessage.java @@ -22,10 +22,10 @@ package com.shatteredpixel.shatteredpixeldungeon.windows; import com.shatteredpixel.shatteredpixeldungeon.ShatteredPixelDungeon; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; -import com.watabou.noosa.Image; -import com.watabou.noosa.RenderedTextMultiline; -import com.watabou.noosa.ui.Component; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; +import com.watabou.noosa.Image; +import com.watabou.noosa.ui.Component; public class WndTitledMessage extends Window { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTradeItem.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTradeItem.java index 3c57b9ccf..d78581da3 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTradeItem.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndTradeItem.java @@ -20,23 +20,23 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; -import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.MasterThievesArmband; -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.hero.Hero; +import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Mob; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Shopkeeper; import com.shatteredpixel.shatteredpixeldungeon.items.EquipableItem; import com.shatteredpixel.shatteredpixeldungeon.items.Gold; import com.shatteredpixel.shatteredpixeldungeon.items.Heap; import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.MasterThievesArmband; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.ItemSlot; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; -import com.watabou.noosa.RenderedTextMultiline; public class WndTradeItem extends Window { diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndWandmaker.java b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndWandmaker.java index c489f567d..c7ff43efe 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndWandmaker.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/windows/WndWandmaker.java @@ -20,20 +20,20 @@ */ package com.shatteredpixel.shatteredpixeldungeon.windows; -import com.shatteredpixel.shatteredpixeldungeon.items.quest.CorpseDust; -import com.shatteredpixel.shatteredpixeldungeon.items.quest.Embers; -import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; -import com.shatteredpixel.shatteredpixeldungeon.plants.Rotberry; import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.npcs.Wandmaker; import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.items.quest.CorpseDust; +import com.shatteredpixel.shatteredpixeldungeon.items.quest.Embers; import com.shatteredpixel.shatteredpixeldungeon.items.wands.Wand; +import com.shatteredpixel.shatteredpixeldungeon.messages.Messages; +import com.shatteredpixel.shatteredpixeldungeon.plants.Rotberry; import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene; import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite; import com.shatteredpixel.shatteredpixeldungeon.ui.RedButton; +import com.shatteredpixel.shatteredpixeldungeon.ui.RenderedTextMultiline; import com.shatteredpixel.shatteredpixeldungeon.ui.Window; import com.shatteredpixel.shatteredpixeldungeon.utils.GLog; -import com.watabou.noosa.RenderedTextMultiline; public class WndWandmaker extends Window {