X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=main.c;h=bd5c2488603b1293c627e0c8705a3823ad2837db;hb=2e8319ed96a300021169b81aacf3c1f7fcb9e1a1;hp=e9c560450f5ba27de27d7e501dd27ee12f03862f;hpb=90f60101878cc8418bbe90b323c046660d25029b;p=dungeon1 diff --git a/main.c b/main.c index e9c5604..bd5c248 100644 --- a/main.c +++ b/main.c @@ -9,14 +9,12 @@ int main(void) { - int x, y; + int x, y, x2, y2; WINDOW *win; int c; - enum { - W = 80, - H = 24, - }; char c2; + struct map *map, *fow; + int gold=0; win = initscr(); noecho(); @@ -27,8 +25,13 @@ main(void) intrflush(stdscr, FALSE); */ - mvprintw(0, 20, "%d:%d", W, H); - move(H/2, W/2); + fow = getblackmap(); + showmap(fow); + map = readmap("map1"); + + findchar(map, '>', &y, &x); + move(y, x); + see(map, y, x); refresh(); while ((c = getch()) != ERR) { @@ -36,44 +39,59 @@ main(void) break; } getyx(win, y, x); - addch('.'); + x2 = x; + y2 = y; switch (c) { case KEY_LEFT: case 'h': - if (x > 0) { - x--; - } + x2 = x - 1; break; case KEY_RIGHT: case 'l': - if (x < W) { - x++; - } + x2 = x + 1; break; case KEY_UP: case 'k': - if (y > 1) { - y--; - } + y2 = y - 1; break; case KEY_DOWN: case 'j': - if (y < H) { - y++; - } + y2 = y + 1; break; } - c2 = mvinch(y, x) & 255; + if (y2 < 0 || y2 > H || x2 < 0 || x2 > W) { + continue; + } + + 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 '*': + mvprintw(H/2, 10, "AUSGANG gefunden!"); + goto exit; + default: + continue; } - mvprintw(0, 40, "<%c>", c2); - mvprintw(0, 0, "%d:%d", x, y); - move(y, x); + + 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; }