diff --git a/w/w.c b/w/w.c index 710475e..819e06b 100644 --- a/w/w.c +++ b/w/w.c @@ -601,6 +601,83 @@ char gentile(int x, int y) return TILE_UNUSED; } +int ddl = 0; +void updatemap() +{ + //ddl--; + int x = state.position.x; + int y = state.position.y; + + // north + char c = gentile(x, y - 1); + if (c == TILE_FREE) + { + ddl++; + gentile(x - 1, y - 2); + gentile(x + 1, y - 2); + } + else if (c == TILE_DOOR) + { + ddl++; + } + else if (c != TILE_UNUSED) + { + ddl--; + } + + // south + c = gentile(x, y + 1); + if (c == TILE_FREE) + { + ddl++; + gentile(x - 1, y + 2); + gentile(x + 1, y + 2); + } + else if (c == TILE_DOOR) + { + ddl++; + } + else if (c != TILE_UNUSED) + { + ddl--; + } + + // east + c = gentile(x + 1, y); + if (c == TILE_FREE) + { + ddl++; + gentile(x + 2, y - 1); + gentile(x + 2, y + 1); + } + else if (c == TILE_DOOR) + { + ddl++; + } + else if (c != TILE_UNUSED) + { + ddl--; + } + + // west + c = gentile(x - 1, y); + if (c == TILE_FREE) + { + ddl++; + gentile(x - 2, y - 1); + gentile(x - 2, y + 1); + } + else if (c == TILE_DOOR) + { + ddl++; + } + else if (c != TILE_UNUSED) + { + ddl--; + } + +} + void dfs(int x, int y) { if (charatpos(x,y) != TILE_START)