int nivel_gui_inicializar(void) {

	if (nivel_gui_int_validar_inicializado()){
			nivel_gui_print_perror("nivel_gui_inicializar: Library ya inicializada!");
			return EXIT_FAILURE;
		}

	mainwin = initscr();
	keypad(stdscr, TRUE);
	noecho();
	start_color();
	init_pair(1,COLOR_GREEN, COLOR_BLACK);
	init_pair(2,COLOR_WHITE, COLOR_BLACK);
	init_pair(3,COLOR_BLACK, COLOR_YELLOW);
	box(stdscr, 0, 0);
	refresh();

	nivel_gui_get_term_size(&rows, &cols);
	secwin = newwin(rows - 2, cols, 0, 0);
	box(secwin, 0, 0);
	wrefresh(secwin);

	inicializado = 1;

	return EXIT_SUCCESS;

}
int nivel_gui_dibujar(ITEM_NIVEL* items) {

	if (!nivel_gui_int_validar_inicializado()){
		nivel_gui_print_perror("nivel_gui_dibujar: Library no inicializada!");
		return EXIT_FAILURE;
	}

	if (items == NULL){
		nivel_gui_print_perror("nivel_gui_dibujar: La lista de items no puede ser NULL");
		return EXIT_FAILURE;
	}


	ITEM_NIVEL *temp = items;
	int i = 0;

	werase(secwin);
	box(secwin, 0, 0);
	wbkgd(secwin, COLOR_PAIR(1));

	move(rows - 2, 2);
	printw("Recursos: ");

	while (temp != NULL) {
		wmove (secwin, temp->posy, temp->posx);
		if (temp->item_type) {
			waddch(secwin, temp->id | COLOR_PAIR(3));
		} else {
			waddch(secwin, temp->id | COLOR_PAIR(2));
		}
		if (temp->item_type) {
			move(rows - 2, 7 * i + 3 + 9);
			printw("%c: %d - ", temp->id, temp->quantity);
			i++;
		}
		temp = temp->next;

	}
	wrefresh(secwin);
	wrefresh(mainwin);

	return EXIT_SUCCESS;

}
int nivel_gui_get_area_nivel(int * rows, int * cols) {

	if (!nivel_gui_int_validar_inicializado()){
			nivel_gui_print_perror("nivel_gui_get_area_nivel: Library no inicializada!");
			return EXIT_FAILURE;
			}

	if (rows == NULL || cols == NULL){
		nivel_gui_print_perror("nivel_gui_get_area_nivel: Ninguno de los argumentos puede ser NULL");
		return EXIT_FAILURE;
	}


	nivel_gui_get_term_size(rows, cols);
	*rows = *rows - 4;
	*cols = *cols - 2;

	return EXIT_SUCCESS;
}
/*
 * @NAME: nivel_gui_dibujar
 * @DESC: Dibuja cada entidad en la lista de items
 * @PARAMS:
 * 		items	  - lista de objetos a dibujar
 * 		nombre_nivel - nombre del nivel
 */
int nivel_gui_dibujar(t_list* items, char* nombre_nivel) {

	if (!nivel_gui_int_validar_inicializado()){
		nivel_gui_print_perror("nivel_gui_dibujar: Library no inicializada!");
		return EXIT_FAILURE;
	}

	if (items == NULL){
		nivel_gui_print_perror("nivel_gui_dibujar: La lista de items no puede ser NULL");
		return EXIT_FAILURE;
	}

	int i = 0;
	werase(secwin);
	box(secwin, 0, 0);
	wbkgd(secwin, COLOR_PAIR(1));

	move(rows - 3, 2);
	printw("Nivel: %s", nombre_nivel);
	move(rows - 2, 2);
	printw("Recursos: ");

        
        void _draw_element(ITEM_NIVEL* item) {
            wmove(secwin, item->posy, item->posx);
            if(item->item_type == ENEMIGO_ITEM_TYPE) {
                    waddch(secwin, '*' | COLOR_PAIR(4));
            } else if (item->item_type == RECURSO_ITEM_TYPE) {
                    waddch(secwin, item->id | COLOR_PAIR(3));
            } else if(item->item_type == PERSONAJE_ITEM_TYPE) {
                    waddch(secwin, item->id | COLOR_PAIR(2));
            }
            if (item->item_type == RECURSO_ITEM_TYPE) {
                move(rows - 2, 7 * i + 3 + 9);
                printw("%c: %d - ", item->id, item->quantity);
                i++;
            }
        }
int nivel_gui_terminar(void) {

		if (!nivel_gui_int_validar_inicializado()){
			nivel_gui_print_perror("nivel_gui_terminar: Library no inicializada!");
			return EXIT_FAILURE;
		}

        delwin(mainwin);
        delwin(secwin);
        endwin();
        refresh();

        return EXIT_SUCCESS;

}