diff --git a/app/src/main/assets/levelpacks/Icy Mountains.xml b/app/src/main/assets/levelpacks/Icy Mountains.xml index 04cdd4a..9c030a1 100644 --- a/app/src/main/assets/levelpacks/Icy Mountains.xml +++ b/app/src/main/assets/levelpacks/Icy Mountains.xml @@ -600,17 +600,17 @@ - + - - - - - + + + + + - + @@ -622,78 +622,81 @@ - + - + - + - + - - + + - - + + - + - + - + - + - + - + - + - - + + - + + + + - - - + + + - + - - + + - + - + - + - + - + diff --git a/app/src/main/java/de/frajul/endlessroll/entities/tools/Bomb.java b/app/src/main/java/de/frajul/endlessroll/entities/tools/Bomb.java index 156ede4..e2ec18a 100644 --- a/app/src/main/java/de/frajul/endlessroll/entities/tools/Bomb.java +++ b/app/src/main/java/de/frajul/endlessroll/entities/tools/Bomb.java @@ -19,7 +19,7 @@ public class Bomb extends Tool { private Vector offsetToObstaclePosition = new Vector(); public Bomb(Vector position) { - super(ToolType.BOMB, position, .2f, .2f, false, false); + super(ToolType.BOMB, position, .25f, .25f, false, false); animation.setIndexSequence(new int[]{0, 1, 2}); animation.setLooping(false); animation.setRequiredDelta( diff --git a/app/src/main/java/de/frajul/endlessroll/sounds/SoundManager.java b/app/src/main/java/de/frajul/endlessroll/sounds/SoundManager.java index bc45e35..db2f31c 100644 --- a/app/src/main/java/de/frajul/endlessroll/sounds/SoundManager.java +++ b/app/src/main/java/de/frajul/endlessroll/sounds/SoundManager.java @@ -6,6 +6,7 @@ import android.media.SoundPool; import android.support.annotation.RawRes; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Random; @@ -41,7 +42,7 @@ public class SoundManager { public final Sound placeToolSound; public final Sound magnetSound; - private List allStartedStreams = new ArrayList<>(); + private final List allStartedStreams = Collections.synchronizedList(new ArrayList()); public SoundManager(GameActivity gameActivity) { this.context = gameActivity; @@ -86,10 +87,12 @@ public class SoundManager { public void setSoundsMuted(boolean soundsMuted) { this.soundsMuted = soundsMuted; - for (SoundStream stream : allStartedStreams) { - float systemVolume = getSystemVolume(); - soundPool.setVolume(stream.getId(), systemVolume * stream.getModifiedVolume(), - systemVolume * stream.getModifiedVolume()); + synchronized (allStartedStreams) { + for (SoundStream stream : allStartedStreams) { + float systemVolume = getSystemVolume(); + soundPool.setVolume(stream.getId(), systemVolume * stream.getModifiedVolume(), + systemVolume * stream.getModifiedVolume()); + } } } @@ -123,13 +126,17 @@ public class SoundManager { } public void pauseAllSounds() { - for (SoundStream stream : allStartedStreams) - soundPool.pause(stream.getId()); + synchronized (allStartedStreams) { + for (SoundStream stream : allStartedStreams) + soundPool.pause(stream.getId()); + } } public void resumeAllSounds() { - for (SoundStream stream : allStartedStreams) - soundPool.resume(stream.getId()); + synchronized (allStartedStreams) { + for (SoundStream stream : allStartedStreams) + soundPool.resume(stream.getId()); + } } public void destroy() { @@ -169,8 +176,10 @@ public class SoundManager { } public void stopAllSounds() { - for (SoundStream stream : allStartedStreams) - soundPool.stop(stream.getId()); + synchronized (allStartedStreams) { + for (SoundStream stream : allStartedStreams) + soundPool.stop(stream.getId()); + } allStartedStreams.clear(); }