diff --git a/SPD-classes/src/main/java/com/watabou/noosa/audio/Sample.java b/SPD-classes/src/main/java/com/watabou/noosa/audio/Sample.java index 1452655ff..e0049b43b 100644 --- a/SPD-classes/src/main/java/com/watabou/noosa/audio/Sample.java +++ b/SPD-classes/src/main/java/com/watabou/noosa/audio/Sample.java @@ -35,7 +35,7 @@ public enum Sample { private boolean enabled = true; private float globalVolume = 1f; - public void reset() { + public synchronized void reset() { for (Sound sound : ids.values()){ sound.dispose(); @@ -45,13 +45,13 @@ public enum Sample { } - public void pause() { + public synchronized void pause() { for (Sound sound : ids.values()) { sound.pause(); } } - public void resume() { + public synchronized void resume() { for (Sound sound : ids.values()) { sound.resume(); } @@ -75,7 +75,7 @@ public enum Sample { } - public void unload( Object src ) { + public synchronized void unload( Object src ) { if (ids.containsKey( src )) { ids.get( src ).dispose(); ids.remove( src ); diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 6faf877ed..2664cc4a3 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -22,7 +22,6 @@ android:label="${appName}" android:theme="@android:style/Theme.Black.NoTitleBar" android:resizeableActivity="true" - android:launchMode="singleInstance" android:allowBackup="true" android:fullBackupOnly="true" android:backupAgent=".AndroidBackupHandler"> diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java index 06834ae1c..66c172494 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/NewTengu.java @@ -241,13 +241,17 @@ public class NewTengu extends Mob { if (level.state() == NewPrisonBossLevel.State.FIGHT_START) { level.cleanTenguCell(); - + + int tries = 100; do { newPos = ((NewPrisonBossLevel)Dungeon.level).randomTenguCellPos(); - } while ( level.trueDistance(newPos, enemy.pos) <= 3.5f + tries--; + } while ( tries > 0 && (level.trueDistance(newPos, enemy.pos) <= 3.5f || level.trueDistance(newPos, Dungeon.hero.pos) <= 3.5f - || Actor.findChar(newPos) != null); - + || Actor.findChar(newPos) != null)); + + if (tries <= 0) newPos = pos; + if (level.heroFOV[pos]) CellEmitter.get( pos ).burst( Speck.factory( Speck.WOOL ), 6 ); sprite.move( pos, newPos ); diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/IconTitle.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/IconTitle.java index a79d466bf..ef518c960 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/IconTitle.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/IconTitle.java @@ -109,8 +109,10 @@ public class IconTitle extends Component { } public void icon( Image icon ) { - remove( imIcon ); - add( imIcon = icon ); + if (icon != null) { + remove(imIcon); + add(imIcon = icon); + } } public void label( String label ) {