Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.76 KB | None | 0 0
  1. #include <tetris.h>
  2.  
  3. extern g_args process;
  4.  
  5. int setup_loop(t_window *window)
  6. {
  7.   while (1)
  8.   {
  9.     wbkgd(window->game_box, COLOR_PAIR(1));
  10.     box(window->game_box, 0, 0);
  11.     wrefresh(window->game_box);
  12.   }
  13. }
  14.  
  15. t_ascii init_ascii()
  16. {
  17.   t_ascii   ascii;
  18.   int   fd;
  19.  
  20.   if ((ascii.ascii_hold = malloc(sizeof(char) * 500)) == NULL)
  21.     exit(0);
  22.   fd = open("./hold", O_RDWR);
  23.   read(fd, ascii.ascii_hold, 400);
  24.   return (ascii);
  25. }
  26.  
  27. int print_each_char(WINDOW *box, char *str, int color)
  28. {
  29.   int   line;
  30.   int   cols;
  31.   int   i;
  32.  
  33.   i = 0;
  34.   line = 1;
  35.   cols = 3;
  36.   wattron(box, COLOR_PAIR(color));
  37.   while (str[i] != '\0')
  38.   {
  39.     if (str[i] == '\n')
  40.     {
  41.       line++;
  42.       cols = 3;
  43.     }
  44.     mvwaddch(box, line, cols, str[i]);
  45.     cols++;
  46.     i++;
  47.   }
  48.   wattroff(box, COLOR_PAIR(color));
  49.   wrefresh(box);
  50. }
  51.  
  52. int print_decor(t_ascii ascii, t_window *window)
  53. {
  54.   int i;
  55.  
  56.   wbkgd(window->next, COLOR_PAIR(1));
  57.   wbkgd(window->hold, COLOR_PAIR(1));
  58.   wbkgd(window->level, COLOR_PAIR(1));
  59.   wbkgd(window->title, COLOR_PAIR(2));
  60.   box(window->hold, 0, 0);
  61.   box(window->next, 0, 0);
  62.   box(window->level, 0, 0);
  63.   wattron(window->next, A_BOLD);
  64.   wattron(window->hold, A_BOLD);
  65.   wattron(window->level, A_BOLD);
  66.   mvwprintw(window->next, 2 , 15 / 2 - 2 , "NEXT");
  67.   mvwprintw(window->hold, 2, 15 / 2 - 2, "HOLD");
  68.   mvwprintw(window->level, 3, 14 / 2 - 2 , "LEVEL");
  69.   mvwprintw(window->level, 5 , 14 / 2 , "1");
  70.   wrefresh(window->hold);
  71.   wrefresh(window->next);
  72.   wrefresh(window->level);
  73.   wrefresh(window->title);
  74.   wattroff(window->next, A_BOLD);
  75.   wattroff(window->level, A_BOLD);
  76.   wattroff(window->hold, A_BOLD);
  77. }
  78.  
  79. void    init_screen(t_window *window, t_ascii ascii)
  80. {
  81.   curs_set(0);
  82.   start_color();
  83.   init_color(0, 0, 0, 0);
  84.   noecho();
  85.   init_color(COLOR_BLUE, 60, 100, 255);
  86.   init_pair(3, COLOR_CYAN, COLOR_BLACK);
  87.   init_pair(1, COLOR_CYAN, 0);
  88.   init_pair(2, 0, COLOR_BLUE);
  89.   init_pair(4, COLOR_CYAN, COLOR_BLUE);
  90.   wbkgd(stdscr, COLOR_PAIR(2));
  91.   refresh();
  92.   window->game_box = newwin(35, 30, LINES / 2 - 12 , COLS / 2 - 16);
  93.   window->hold = newwin(5, 14, 2, 4);
  94.   window->next = newwin(5, 14, 2, COLS - 20);
  95.   window->preview_next = newwin(5, 14, 8, COLS - 20);
  96.   window->level = newwin(10, 14, LINES - 12 - 2, 4);
  97.   window->title = newwin(16, 54, 2, 18);
  98.   window->preview_hold = newwin(5, 14, 8, 4);
  99.   wrefresh(window->preview_next);
  100.   wrefresh(window->preview_hold);
  101. }
  102.  
  103. int     start_game()
  104. {
  105.   t_window  *window;
  106.   t_ascii    ascii;
  107.  
  108.   ascii = init_ascii();
  109.   if ((window = malloc(sizeof(t_window))) == NULL)
  110.     return (84);
  111.   initscr();
  112.   init_screen(window, ascii);
  113.   print_each_char(window->title, ascii.ascii_hold, 4);
  114.   wrefresh(window->title);
  115.   print_decor(ascii, window);
  116.   setup_loop(window);
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement