v0.6.3: small fixes to fog update & performance improvement to terrain
This commit is contained in:
parent
e828148ebc
commit
7afd8b8889
|
@ -755,17 +755,17 @@ public class Dungeon {
|
|||
int t = Math.max( 0, y - dist );
|
||||
int b = Math.min( y + dist, level.height() - 1 );
|
||||
|
||||
int length = r - l + 1;
|
||||
int width = t - b + 1;
|
||||
int width = r - l + 1;
|
||||
int height = b - t + 1;
|
||||
|
||||
int pos = l + t * level.width();
|
||||
|
||||
for (int i = t; i <= b; i++) {
|
||||
BArray.or( level.visited, level.heroFOV, pos, length, level.visited );
|
||||
BArray.or( level.visited, level.heroFOV, pos, width, level.visited );
|
||||
pos+=level.width();
|
||||
}
|
||||
|
||||
GameScene.updateFog(l, t, length, width);
|
||||
GameScene.updateFog(l, t, width, height);
|
||||
|
||||
if (hero.buff(MindVision.class) != null){
|
||||
for (Mob m : level.mobs.toArray(new Mob[0])){
|
||||
|
|
|
@ -58,8 +58,7 @@ public class DungeonTerrainTilemap extends DungeonTilemap {
|
|||
if (!flat) {
|
||||
if ((DungeonTileSheet.doorTile(tile))) {
|
||||
return DungeonTileSheet.getRaisedDoorTile(tile, map[pos - mapWidth]);
|
||||
} else if (tile == Terrain.WALL || tile == Terrain.WALL_DECO
|
||||
|| tile == Terrain.SECRET_DOOR || tile == Terrain.BOOKSHELF){
|
||||
} else if (DungeonTileSheet.wallStitcheable(tile)){
|
||||
return DungeonTileSheet.getRaisedWallTile(
|
||||
tile,
|
||||
pos,
|
||||
|
@ -100,11 +99,6 @@ public class DungeonTerrainTilemap extends DungeonTilemap {
|
|||
|
||||
@Override
|
||||
protected boolean needsRender(int pos) {
|
||||
return data[pos] != DungeonTileSheet.WATER ||
|
||||
(
|
||||
pos + mapWidth < size &&
|
||||
DungeonTileSheet.wallStitcheable(map[pos]) &&
|
||||
DungeonTileSheet.wallStitcheable(map[pos + mapWidth])
|
||||
);
|
||||
return data[pos] >= 0 && data[pos] != DungeonTileSheet.WATER;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -219,7 +219,9 @@ public class DungeonTileSheet {
|
|||
|
||||
public static int getRaisedWallTile(int tile, int pos, int right, int below, int left){
|
||||
int result;
|
||||
if (doorTile(below)) result = RAISED_WALL_DOOR;
|
||||
|
||||
if (below == -1 || wallStitcheable(below)) return -1;
|
||||
else if (doorTile(below)) result = RAISED_WALL_DOOR;
|
||||
else if (tile == Terrain.WALL || tile == Terrain.SECRET_DOOR) result = RAISED_WALL;
|
||||
else if (tile == Terrain.WALL_DECO) result = RAISED_WALL_DECO;
|
||||
else if (tile == Terrain.BOOKSHELF) result = RAISED_WALL_BOOKSHELF;
|
||||
|
|
Loading…
Reference in New Issue
Block a user