#include "../include/gui.h" #include /************** FUNZIONI GUI ***************/ char* title[] = { "###########################################################################################################", "# o8888o o8888o o8888o o8888o o8888o o8888o o8 80 o8888o o8888o o8888o o8888o o8888o #", "# 888o 0oooo0 88 888 88 88oo oo 888o 888o88 88 888 88 888 88 88oo 88oo88 #", "# o888 88 888888 88 88 o888 88 88 88 888 88 888 88 88 88 88 #", "# 088880 88 88 88 888880 088888 088880 08 80 088880 088880 00 088888 88 88o #", "###########################################################################################################" }; char menu_desc[] = "BENVENUTO. Premi qualsiasi tasto per giocare..."; char* gameover[] = { "o8888o o8888o o8oo8o o8888o o8888o 88 8o o8888o o8888o", "888 oo 88 888 88\\/88 88oo oo 88 888 88 88 88oo 88oo88", "888 8 888888 88 88 88 88 888 88 o8 88 88 88 ", "O88880 88 88 88 88 888880 088880 888O 888880 88 88o" }; char gameover_desc[] = "HAI PERSO. Premi q per uscire..."; char* win_screen[] = { "o8 o8 o8888o o8 8o o8 8o o8888o o8 8o", "88 o8 88 888 88 88 oo 88 88 88 888o88", "888 88 888 88 88 88/\\88 88 88 888", "888 088880 088880 8888 088880 88 88" }; char win_desc[] = "HAI VINTO. Premi q per uscire..."; void init_colors() { start_color(); init_pair(ENEMY_PAIR, COLOR_RED, COLOR_BLACK); init_pair(TITLE_PAIR, COLOR_MAGENTA, COLOR_BLACK); init_pair(GMOVR_PAIR, COLOR_RED, COLOR_BLACK); init_pair(BONUS_PAIR, COLOR_GREEN, COLOR_BLACK); init_pair(WINSC_PAIR, COLOR_YELLOW, COLOR_BLACK); } void print_menu(WINDOW* win) { int height; int width; getmaxyx(win, height, width); wattron(win, COLOR_PAIR(TITLE_PAIR)); for(int i = 0; i < (TEXTLINES+BORDERLINES); i++) { mvwprintw(win, i+1, (width-(strlen(title[0])))/2, "%s", title[i]); } wattroff(win, COLOR_PAIR(TITLE_PAIR)); wattron(win, A_BLINK); mvwprintw(win, (TEXTLINES+BORDERLINES)+1, (width-(strlen(menu_desc)))/2, "%s", menu_desc); wattroff(win, A_BLINK); wrefresh(win); return; } void print_gameover(WINDOW* win) { int height; int width; int ch; wclear(win); getmaxyx(win, height, width); wattron(win, COLOR_PAIR(GMOVR_PAIR)); for(int i = 0; i < TEXTLINES; i++) { mvwprintw(win, i+1, (width-(strlen(gameover[0])))/2, "%s", gameover[i]); } wattroff(win, COLOR_PAIR(GMOVR_PAIR)); wattron(win, A_BLINK); mvwprintw(win, TEXTLINES+1, (width-(strlen(gameover_desc)))/2, "%s", gameover_desc); wattroff(win, A_BLINK); wrefresh(win); while((ch = wgetch(win)) != 'q'); return; } void print_win_screen(WINDOW* win) { int height; int width; int ch; wclear(win); getmaxyx(win, height, width); wattron(win, COLOR_PAIR(WINSC_PAIR)); for(int i = 0; i < TEXTLINES; i++) { mvwprintw(win, i+1, (width-(strlen(win_screen[0])))/2, "%s", win_screen[i]); } wattroff(win, COLOR_PAIR(WINSC_PAIR)); wattron(win, A_BLINK); mvwprintw(win, TEXTLINES+1, (width-(strlen(win_desc)))/2, "%s", win_desc); wattroff(win, A_BLINK); wrefresh(win); while((ch = wgetch(win)) != 'q'); return; } void print_status_bar(WINDOW* main_win, int y, int x, struct status game_status) { int status_x = x + 1; int status_y = y; status_x++; mvwprintw(main_win, status_y, status_x, "LIVES:\t%d", game_status.lives); mvwprintw(main_win, status_y+1, status_x, "SCORE:\t%d", game_status.score); mvwprintw(main_win, status_y+2, status_x, "TOP SCORE:\t%d", game_status.top_score); mvwprintw(main_win, status_y+3, status_x, "BULLETS:\t%d", game_status.remaining_bullets); wrefresh(main_win); return; }