Add fog of war
[dungeon1] / main.c
diff --git a/main.c b/main.c
index af24677..2d80a81 100644 (file)
--- a/main.c
+++ b/main.c
@@ -13,7 +13,7 @@ main(void)
        WINDOW *win;
        int c;
        char c2;
-       struct map *map;
+       struct map *map, *fow;
        int gold=0;
 
        win = initscr();
@@ -25,11 +25,13 @@ main(void)
        intrflush(stdscr, FALSE);
 */
 
-       map = readmap("map1");
-       showmap(map);
+       fow = getblackmap();
+       showmap(fow);
+       map = readmap("map2");
 
-       mvprintw(0, 20, "%d:%d", W, H);
-       move(H/2, W/2);
+       findchar(map, '>', &y, &x);
+       move(y, x);
+       see(map, y, x);
        refresh();
 
        while ((c = getch()) != ERR) {
@@ -60,29 +62,35 @@ main(void)
                if (y2 < 0 || y2 > H || x2 < 0 || x2 > W) {
                        continue;
                }
-               c2 = mvinch(y2, x2) & 255;
-               mvprintw(0, 40, "<%c>  gold:%d", c2, gold);
-               move(y, x);
 
+               c2 = map->map[y2][x2];
                switch (c2) {
                case '$':
                        gold++;
+                       map->map[y2][x2] = ' ';
                        mvaddch(y2, x2, ' ');
                        /* FALL */
                case ' ':
                        mvprintw(0, 0, "%d:%d", x2, y2);
                        move(y2, x2);
+                       see(map, y2, x2);
                        break;
-               case '>':
+               case '*':
                        mvprintw(H/2, 10, "AUSGANG gefunden!");
                        goto exit;
+               default:
+                       continue;
                }
 
+               mvprintw(0, 40, "<%c>  gold:%d", c2, gold);
+               move(y2, x2);
+
                refresh();
                napms(10);
        }
 
 exit:
+       mvprintw(H, 0, "press key to exit...");
        getch();
        endwin();
        return 0;