#include "main.h"
+static void draw(void);
+static void wboxborder(WINDOW *);
+
int
main(void)
{
int x, y, x2, y2;
- WINDOW *win;
int c;
char c2;
struct map *map, *fow;
int gold=0;
+ char *title = "**** DUNGEON1 ****";
- win = initscr();
+ initscr();
noecho();
cbreak();
keypad(stdscr, TRUE);
+
+ w_title = newwin(1, COLS-1, 0, 0);
+ mvwprintw(w_title, 0, MAPW/2 - strlen(title)/2, "%s", title);
+
+ w_mapborder = newwin(MAPH+2*BORDER, MAPW+2*BORDER, 1, 0);
+ wboxborder(w_mapborder);
+ w_map = subwin(w_mapborder, MAPH, MAPW, 2, 1);
+
+ w_info = newwin(4, MAPW+2*BORDER, MAPH+2*BORDER+1, 0);
+ wboxborder(w_info);
+ w_gold = subwin(w_info, 1, 10, MAPH+2*BORDER+1+2, 50);
+ w_pos = subwin(w_info, 1, 20, MAPH+2*BORDER+1+2, 10);
/*
- nonl();
- intrflush(stdscr, FALSE);
*/
+
fow = getblackmap();
showmap(fow);
map = readmap("map1");
findchar(map, '>', &y, &x);
- move(y, x);
+ wmove(w_map, y, x);
see(map, y, x);
- refresh();
+ draw();
while ((c = getch()) != ERR) {
if (c == 'q') {
break;
}
- getyx(win, y, x);
+ getyx(w_map, y, x);
x2 = x;
y2 = y;
switch (c) {
case '$':
gold++;
map->map[y2][x2] = ' ';
- mvaddch(y2, x2, ' ');
+ mvwaddch(w_map, y2, x2, ' ');
+ mvwprintw(w_gold, 0, 0, "gold:%d", gold);
/* FALL */
case ' ':
- mvprintw(0, 0, "%d:%d", x2, y2);
- move(y2, x2);
+ mvwprintw(w_pos, 0, 0, "pos: %d,%d", x2, y2);
+ wmove(w_map, y2, x2);
see(map, y2, x2);
break;
case '*':
- mvprintw(H/2, 10, "AUSGANG gefunden!");
+ mvwprintw(w_map, H-5, 10, "AUSGANG gefunden!");
goto exit;
default:
continue;
}
- mvprintw(0, 40, "<%c> gold:%d", c2, gold);
- move(y2, x2);
+ mvwprintw(w_pos, 0, 10, "<%c>", c2);
+ wmove(w_map, y2, x2);
- refresh();
- napms(10);
+ draw();
}
exit:
+/*
mvprintw(H, 0, "press key to exit...");
getch();
+*/
endwin();
return 0;
}
+static void
+draw(void)
+{
+/*
+*/
+ refresh();
+ wrefresh(w_info);
+ wrefresh(w_gold);
+ wrefresh(w_pos);
+ overlay(w_gold, w_info);
+ overlay(w_pos, w_info);
+ wrefresh(w_title);
+ wrefresh(w_mapborder);
+ overlay(w_map, w_mapborder);
+ wrefresh(w_map);
+}
+
+static void
+wboxborder(WINDOW *win)
+{
+ wborder(win, '|', '|', '-', '-', '+', '+', '+', '+');
+}
+