diff --git a/core/src/com/riiablo/entity/Warp.java b/core/src/com/riiablo/entity/Warp.java index f94bd6aa..87a98794 100644 --- a/core/src/com/riiablo/entity/Warp.java +++ b/core/src/com/riiablo/entity/Warp.java @@ -88,10 +88,10 @@ public class Warp extends Entity { System.out.println("zim zim zala bim"); Map.Zone dst = map.findZone(dstLevel); int dstIndex = zone.getWarp(index); - Vector2 dstPos = dst.find(dstIndex); - if (dstPos == null) throw new AssertionError("Invalid dstPos: " + dstIndex); - gameScreen.player.position.set(dstPos); - gameScreen.player.setPath(map, null); + Warp dstWarp = dst.findWarp(dstIndex); + if (dstWarp == null) throw new AssertionError("Invalid dstWarp: " + dstIndex); + gameScreen.player.position().set(dstWarp.position()); + gameScreen.player.setPath(map, new Vector2(dstWarp.warp.ExitWalkX, dstWarp.warp.ExitWalkY).add(dstWarp.position())); } @Override diff --git a/core/src/com/riiablo/map/Map.java b/core/src/com/riiablo/map/Map.java index 9eaa09d2..0b2f3445 100644 --- a/core/src/com/riiablo/map/Map.java +++ b/core/src/com/riiablo/map/Map.java @@ -744,12 +744,12 @@ public class Map implements Disposable { return presets[x][y].ds1.find(id); } - public Vector2 find(int id) { + public Warp findWarp(int id) { for (Entity entity : entities) { if (entity instanceof Warp) { Warp warp = (Warp) entity; if (warp.index == id) { - return warp.position(); + return warp; } } }