Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "podesavanja.h"
- #include <stdio.h>
- #include <curses.h>
- #include <string.h>
- #include "utils.h"
- // Default podesavanja
- const podesavanja default_vrijednosti = {1 /* Debug */, 10 /* Maksimalni rezultat */};
- void ucitaj_podesavanja(podesavanja *conf)
- {
- FILE *fp=fopen(CONF_FILE, "rb");
- if(fp != NULL)
- {
- fread(conf, sizeof(podesavanja), 1, fp);
- if ((conf->debug > 1) || (conf->debug < 0))
- conf->debug = default_vrijednosti.debug;
- if (conf->max_rez == 0)
- conf->max_rez = default_vrijednosti.max_rez;
- fclose(fp);
- }
- else
- memcpy(conf, &default_vrijednosti, sizeof(podesavanja));
- }
- void sacuvaj_podesavanja(podesavanja conf)
- {
- FILE *fp = fopen(CONF_FILE, "wb");
- if(fp != NULL)
- {
- fwrite(&conf, sizeof(podesavanja), 1, fp);
- fclose(fp);
- }
- }
- void podesavanja_meni()
- {
- int selected = 0;
- podesavanja conf;
- ucitaj_podesavanja(&conf);
- int in_menu = TRUE;
- while(in_menu)
- {
- int width, height;
- getmaxyx(stdscr, height, width);
- int x = (width-30)/2;
- int y = (height-16)/2;
- clear();
- mvaddstr(y++, (width-strlen("HANGMAN :: Podesavanja"))/2, "HANGMAN :: Podesavanja");
- y++;
- if (selected == 0)
- attron(A_REVERSE);
- mvaddstr(y, x, "Debug:");
- attroff(A_REVERSE);
- switch(conf.debug)
- {
- case 0:
- mvaddstr(y++, x+25, "False");
- break;
- case 1:
- mvaddstr(y++, x+25, "True");
- break;
- }
- if (selected == 1)
- attron(A_REVERSE);
- mvaddstr(y, x, "Maksimalni rezultat:");
- attroff(A_REVERSE);
- switch (conf.max_rez)
- {
- case 0:
- mvprintw(y++, x+25, "Neograniceno");
- break;
- default:
- mvprintw(y++, x+25, "%d", conf.max_rez);
- }
- if (selected == 2)
- attron(A_REVERSE);
- y++;
- mvaddstr(y++, x, "Sacuvaj podesavanja");
- attroff(A_REVERSE);
- if(selected == 3)
- attron(A_REVERSE);
- mvaddstr(y++, x, "Default podesavanja");
- attroff(A_REVERSE);
- refresh();
- int c = getch();
- if (c == KEY_UP)
- selected--;
- else if (c == KEY_DOWN)
- selected++;
- else if ((c == KEY_RIGHT) || (c == ' ') || (c == '\n'))
- {
- switch(selected)
- {
- case 0:
- conf.debug++;
- if (conf.debug > 1)
- conf.debug = 0;
- break;
- case 1:
- conf.max_rez+=1;
- conf.max_rez%=110;
- if (conf.max_rez >= 101)
- conf.max_rez = 0;
- break;
- case 2:
- sacuvaj_podesavanja(conf);
- in_menu=FALSE;
- break;
- case 3:
- memcpy(&conf, &default_vrijednosti, sizeof(podesavanja));
- }
- }
- else if (c == KEY_LEFT)
- {
- switch(selected)
- {
- case 0:
- conf.debug--;
- if (conf.debug < 0)
- conf.debug = 1;
- break;
- case 1:
- if (conf.max_rez==0)
- conf.max_rez=100;
- else
- conf.max_rez-=1;
- if (conf.max_rez >= 101)
- conf.max_rez = 0;
- break;
- }
- }
- if (selected < 0)
- selected += 6;
- else
- selected %= 6;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement