diff --git a/SPD-classes/src/main/java/com/watabou/noosa/RenderedText.java b/SPD-classes/src/main/java/com/watabou/noosa/RenderedText.java index 68138886f..1f142dc7c 100644 --- a/SPD-classes/src/main/java/com/watabou/noosa/RenderedText.java +++ b/SPD-classes/src/main/java/com/watabou/noosa/RenderedText.java @@ -93,7 +93,8 @@ public class RenderedText extends Image { GlyphLayout glyphs = new GlyphLayout( font, text); for (char c : text.toCharArray()) { - if (font.getData().getGlyph(c) == null){ + BitmapFont.Glyph g = font.getData().getGlyph(c); + if (g == null || (g.id != c)){ Game.reportException(new Throwable("font file " + font.toString() + " could not render " + c)); } } @@ -101,7 +102,7 @@ public class RenderedText extends Image { //We use the xadvance of the last glyph in some cases to fix issues // with fullwidth punctuation marks in some asian scripts BitmapFont.Glyph lastGlyph = font.getData().getGlyph(text.charAt(text.length()-1)); - if (lastGlyph.xadvance > lastGlyph.width*1.5f){ + if (lastGlyph != null && lastGlyph.xadvance > lastGlyph.width*1.5f){ width = glyphs.width - lastGlyph.width + lastGlyph.xadvance; } else { width = glyphs.width; diff --git a/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java b/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java index 47ced511c..ebd06b529 100644 --- a/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java +++ b/android/src/main/java/com/shatteredpixel/shatteredpixeldungeon/android/AndroidPlatformSupport.java @@ -316,7 +316,9 @@ public class AndroidPlatformSupport extends PlatformSupport { parameters.characters = ""; parameters.packer = packer; - fonts.get(generator).put(size, generator.generateFont(parameters)); + BitmapFont font = generator.generateFont(parameters); + font.getData().missingGlyph = font.getData().getGlyph('�'); + fonts.get(generator).put(size, font); } return fonts.get(generator).get(size);