diff --git a/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java b/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java index bd3c4a378..7c9e391af 100644 --- a/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java +++ b/SPD-classes/src/main/java/com/watabou/noosa/Tilemap.java @@ -88,11 +88,17 @@ public class Tilemap extends Visual { quads = Quad.createSet( size ); - updated.set( 0, 0, mapWidth, mapHeight ); + updateMap(); } + //forces a full update, including new buffer and culling recalculation public synchronized void updateMap(){ updated.set( 0, 0, mapWidth, mapHeight ); + if (buffer != null) { + buffer.delete(); + } + buffer = null; + camX = null; } public synchronized void updateMapCell(int cell){ diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonBossLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonBossLevel.java index 8f50a0c07..01bd07a8f 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonBossLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/PrisonBossLevel.java @@ -233,7 +233,6 @@ public class PrisonBossLevel extends Level { private void changeMap(int[] map){ this.map = map.clone(); - GameScene.resetMap(); buildFlagMaps(); cleanWalls(); @@ -251,6 +250,8 @@ public class PrisonBossLevel extends Level { addVisuals(); //this also resets existing visuals resetTraps(); + + GameScene.resetMap(); Dungeon.observe(); } @@ -307,9 +308,9 @@ public class PrisonBossLevel extends Level { maze.connected.put(null, new Room.Door(10, 2)); maze.connected.put(maze, new Room.Door(20, 29)); MazePainter.paint(this, maze); - GameScene.resetMap(); buildFlagMaps(); cleanWalls(); + GameScene.resetMap(); GameScene.flash(0xFFFFFF); Sample.INSTANCE.play(Assets.SND_BLAST);