diff --git a/X.c b/X.c index 971cad4..ce76305 100644 --- a/X.c +++ b/X.c @@ -3,6 +3,8 @@ #include "warning.h" #include "X.h" +Display *display; +int screen; // Zahaji komunikaci s X serverem, inicializuje promenne display a screen void initX() { diff --git a/X.h b/X.h index dfb5ee1..70906a5 100644 --- a/X.h +++ b/X.h @@ -2,7 +2,7 @@ #include // Nasledujici promenne jsou vyzadujovany nekterymi X-ovymi funkcemi -Display *display; -int screen; +extern Display *display; +extern int screen; void initX(); // Zahaji komunikaci s X serverem, inicializuje promenne vyse. diff --git a/directories.c b/directories.c index e35abca..481ee5c 100644 --- a/directories.c +++ b/directories.c @@ -42,6 +42,8 @@ char *datadir = DATADIR; char *datadir = "./data"; #endif +char *homedir; + int asprintf(char **strp, const char *fmt, ...); char *savedir = NULL; diff --git a/directories.h b/directories.h index d6d5a00..133751b 100644 --- a/directories.h +++ b/directories.h @@ -1,6 +1,6 @@ -char *datadir; // cesta k datum -char *homedir; // cesta do skryteho adresare v home (vcetne cesty k home) -char *savedir; // cesta do adresare s ulozenymi pozicemi +extern char *datadir; // cesta k datum +extern char *homedir; // cesta do skryteho adresare v home (vcetne cesty k home) +extern char *savedir; // cesta do adresare s ulozenymi pozicemi char *datafile(char *filename); // vrati datadir/filename char *homefile(char *filename); // vrati homedir/filename diff --git a/draw.c b/draw.c index 53830f4..3188788 100644 --- a/draw.c +++ b/draw.c @@ -17,8 +17,19 @@ #include "gsaves.h" #include "keyboard.h" #include "menuevents.h" - +float room_x_scale; // cca 30, transformace pixel->velikost policka +float room_y_scale; +int room_x_translate; // souradnice mistnosti v okne +int room_y_translate; +int room_x_size; // velikost mistnosti v pixelech +int room_y_size; +float anim_phase; // o kolik jsou posunute posouvane objekty +float heap_x_advance, heap_y_advance; // houpani ryb a predmety na nich +char safemode; // je hra v uspornem rezimu? +char img_change; +cairo_pattern_t *bg_pattern; // barva pozadi -- tmave modra static void draw_fish_rectangle(); +enum _gridmode gridmode; #define GRID_THICKNESS 2 // tloustka mrizky v padesatinach policka #define GRID_MINTHICK 1.2 /* minimalni tlouska v pixelech diff --git a/draw.h b/draw.h index eeb0502..e982204 100644 --- a/draw.h +++ b/draw.h @@ -1,23 +1,23 @@ -float room_x_scale; // cca 30, transformace pixel->velikost policka -float room_y_scale; +extern float room_x_scale; // cca 30, transformace pixel->velikost policka +extern float room_y_scale; -int room_x_translate; // souradnice mistnosti v okne -int room_y_translate; +extern int room_x_translate; // souradnice mistnosti v okne +extern int room_y_translate; -int room_x_size; // velikost mistnosti v pixelech -int room_y_size; +extern int room_x_size; // velikost mistnosti v pixelech +extern int room_y_size; -float anim_phase; // o kolik jsou posunute posouvane objekty +extern float anim_phase; // o kolik jsou posunute posouvane objekty -float heap_x_advance, heap_y_advance; // houpani ryb a predmety na nich +extern float heap_x_advance, heap_y_advance; // houpani ryb a predmety na nich -char safemode; // je hra v uspornem rezimu? +extern char safemode; // je hra v uspornem rezimu? /* Nasledujici promenna udava, ktere komponenty se zmenily a je treba je prekreslit. */ -char img_change; +extern char img_change; // Moznosti jsou: #define CHANGE_ROOM 1 // hlavni okno hry @@ -26,13 +26,15 @@ char img_change; #define CHANGE_ALL (CHANGE_ROOM | CHANGE_GMOVES | CHANGE_GSAVES) // mrizka je -enum { +enum _gridmode { GRID_OFF, // vypnuta GRID_BG, // na pozadi GRID_FG // nebo na popredi -} gridmode; +}; -cairo_pattern_t *bg_pattern; // barva pozadi -- tmave modra +extern enum _gridmode gridmode; + +extern cairo_pattern_t *bg_pattern; // barva pozadi -- tmave modra void draw(); // vykresli okno void anim_step(); // posune animaci o jeden krok diff --git a/gmoves.c b/gmoves.c index 5c1b775..dcbc67a 100644 --- a/gmoves.c +++ b/gmoves.c @@ -11,7 +11,13 @@ struct ff_object; #include "gmoves.h" #include "gsaves.h" #include "menuevents.h" - +int FIRSTUNDOWAIT; // auto repeat delay u tlacitek '-' a '+' ve framech +int UNDOWAIT; // auto repeat rate u tlacitek '-' a '+' ve framech +int gmoves_width; // sirka svisleho undo pasecku +int gmoves_height; // vyska vodorovneho undo pasecku +char gmoves_vertical; // je undo pasecek svisly? +int rewinding; // -1 = zmacknute '-', 1 = zmacknute '+', 0 = nezmacknute nic +char slider_hold; // je drzeny posuvnik? /* Undo pasecek ma dva hlavni ovladaci prvky: 1) panel - to, kde jsou tlacitka -, + a pocitadlo tahu diff --git a/gmoves.h b/gmoves.h index 60de6ca..52d717f 100644 --- a/gmoves.h +++ b/gmoves.h @@ -1,11 +1,11 @@ -int FIRSTUNDOWAIT; // auto repeat delay u tlacitek '-' a '+' ve framech -int UNDOWAIT; // auto repeat rate u tlacitek '-' a '+' ve framech +extern int FIRSTUNDOWAIT; // auto repeat delay u tlacitek '-' a '+' ve framech +extern int UNDOWAIT; // auto repeat rate u tlacitek '-' a '+' ve framech -int gmoves_width; // sirka svisleho undo pasecku -int gmoves_height; // vyska vodorovneho undo pasecku -char gmoves_vertical; // je undo pasecek svisly? -int rewinding; // -1 = zmacknute '-', 1 = zmacknute '+', 0 = nezmacknute nic -char slider_hold; // je drzeny posuvnik? +extern int gmoves_width; // sirka svisleho undo pasecku +extern int gmoves_height; // vyska vodorovneho undo pasecku +extern char gmoves_vertical; // je undo pasecek svisly? +extern int rewinding; // -1 = zmacknute '-', 1 = zmacknute '+', 0 = nezmacknute nic +extern char slider_hold; // je drzeny posuvnik? void init_gmoves(); // inicializace promennych undo pasecku, napr gmoves_width void level_gmoves_init(); // pri startu levelu nastavi undo pasecek na necinnost diff --git a/gsaves.c b/gsaves.c index ebfcd4c..8e69865 100644 --- a/gsaves.c +++ b/gsaves.c @@ -20,7 +20,15 @@ #include "draw.h" #include "loop.h" #include "keyboard.h" - +double GSAVES_ACT_SPEED; // za kolik framu se tlacitko zvetsi / zmensi +double GSAVES_SPACE_SPEED; +char gsaves_vertical; // gsaves jsou svisle +int gsaves_width; // sirka svislych neaktivnich gsaves +int gsaves_height; // vyska vodorovnych neaktivnich gsaves +int gsaves_x_size, gsaves_y_size; // rozmery aktivnich gsaves v aktualni orientaci +int gsaves_length; // delka, tj. vyska (jsou-li gsaves svisle) nebo sirka (jsou-li vodorovne) +char gsaves_blockanim; // gsaves jsou aktivni, tak nebudeme zatezovat procesor dalsimi animacemi +unsigned char gsaves_change_mask; #define ICON_SIZE 200 // polovina obvodu zvetseneho tlacitka #define MINI_SCALE 0.5 // zmenseni neaktivniho tlacitka (nenarazime-li na okraje okna) #define BORDER 5 // mezery mezi tlacitky (konstantni pro zvetsena i nezvetsena) @@ -960,7 +968,7 @@ void gsaves_save() int i, j; char name[20]; // nazev bez poradoveho cisla char used[MAXSAVES]; // ktera poradova cisla jsou jiz pouzita - char fullname[20]; // plny nazev + char fullname[42]; // plny nazev char *type; // typ pozice cairo_surface_t *surf; // nahled pozice struct gsave *tmp; // pomocny ukazatel pro preusporadani pole save diff --git a/gsaves.h b/gsaves.h index 543bb99..e17443b 100644 --- a/gsaves.h +++ b/gsaves.h @@ -2,17 +2,17 @@ Gsaves je mac menu ulozenych pozic, veskere animace v tomto mac menu resim sam. */ -double GSAVES_ACT_SPEED; // za kolik framu se tlacitko zvetsi / zmensi -double GSAVES_SPACE_SPEED; /* za kolik framu se presune mezera mezi dvema +extern double GSAVES_ACT_SPEED; // za kolik framu se tlacitko zvetsi / zmensi +extern double GSAVES_SPACE_SPEED; /* za kolik framu se presune mezera mezi dvema tlacitky (pri presouvani tlacitka) */ -char gsaves_vertical; // gsaves jsou svisle -int gsaves_width; // sirka svislych neaktivnich gsaves -int gsaves_height; // vyska vodorovnych neaktivnich gsaves -int gsaves_x_size, gsaves_y_size; // rozmery aktivnich gsaves v aktualni orientaci -int gsaves_length; // delka, tj. vyska (jsou-li gsaves svisle) nebo sirka (jsou-li vodorovne) +extern char gsaves_vertical; // gsaves jsou svisle +extern int gsaves_width; // sirka svislych neaktivnich gsaves +extern int gsaves_height; // vyska vodorovnych neaktivnich gsaves +extern int gsaves_x_size, gsaves_y_size; // rozmery aktivnich gsaves v aktualni orientaci +extern int gsaves_length; // delka, tj. vyska (jsou-li gsaves svisle) nebo sirka (jsou-li vodorovne) -char gsaves_blockanim; // gsaves jsou aktivni, tak nebudeme zatezovat procesor dalsimi animacemi +extern char gsaves_blockanim; // gsaves jsou aktivni, tak nebudeme zatezovat procesor dalsimi animacemi /* Gsaves mohou precuhovat pres ostatni ovladaci prvky. V takovem pripade je treba prekreslit @@ -20,7 +20,7 @@ char gsaves_blockanim; // gsaves jsou aktivni, tak nebudeme zatezovat procesor d udava, prez ktere prvky gsaves precuhuje (v analogickem formatu jako promenna img_change z draw.h). */ -unsigned char gsaves_change_mask; +extern unsigned char gsaves_change_mask; void level_gsaves_init(); /* pri startu levelu spocita nemenne velikosti (napriklad velikost zvetseneho tlacitka) a nacte seznam ulozenych pozic */ diff --git a/keyboard.c b/keyboard.c index 13199a0..22cba33 100644 --- a/keyboard.c +++ b/keyboard.c @@ -18,6 +18,8 @@ #include "menuevents.h" #include "infowindow.h" +int keyboard_blockanim; + // typy klaves #define NO_KEY -1 // zadna diff --git a/keyboard.h b/keyboard.h index 09ec8e2..9533f9a 100644 --- a/keyboard.h +++ b/keyboard.h @@ -9,7 +9,7 @@ void init_keyboard(); // inicializace modulu void keyboard_erase_queue(); // promaze frontu klaves -int keyboard_blockanim; /* Pri drzeni klaves Home, End, PgUp, PgDown je zablokovana animace, +extern int keyboard_blockanim; /* Pri drzeni klaves Home, End, PgUp, PgDown je zablokovana animace, aby u levelu, ve kterych na zacatku pada predmet, bylo mozne si tento predmet prohlednot pred padem. Animace je takto blokovana pri keyboard_blockanim != 0 */ diff --git a/layers.h b/layers.h index 7c75b3e..acd1a84 100644 --- a/layers.h +++ b/layers.h @@ -50,7 +50,7 @@ typedef struct ff_layer{ Ze je nacitany obrazek lokalni se pozna podle toho, ze je promena local_image_mode nastavena na true. */ -char local_image_mode; +extern char local_image_mode; ff_image *new_image(cairo_surface_t *surf, float x, float y, float scalex, float scaley); diff --git a/levelscript.h b/levelscript.h index 5dfa7a3..1d54fd7 100644 --- a/levelscript.h +++ b/levelscript.h @@ -3,7 +3,7 @@ je nastavena lua skriptem. Bud bude rovna codename prislusneho node v menu nebo v pripade uzivatelova levelu "user_". */ -char *room_codename; +extern char *room_codename; int script_set_codename(lua_State *L); // nastavi room_codename (ocekava jeden parametr -- string) /* diff --git a/loop.c b/loop.c index a7792ab..0cf78fa 100644 --- a/loop.c +++ b/loop.c @@ -24,7 +24,8 @@ #include "menuscript.h" #include "loop.h" #include "gsaves.h" - +int mouse_x, mouse_y; // souradnice mysi v okne +char mouse_pressed; // je zmacknute leve tlacitko mysi? static int sec = 1; // pocet sekund mezi jednotlivymi framy static int usec = 0; // pocet mikrosekund mezi jednotlivymi framy diff --git a/loop.h b/loop.h index 8c1f4c5..3efb300 100644 --- a/loop.h +++ b/loop.h @@ -1,9 +1,9 @@ void loop(); // hlavni cyklus void setdelay (int vteriny, int mikro); // nastavi casovou prodlevy mezi jednotlivymi framy -int mouse_x, mouse_y; // souradnice mysi v okne +extern int mouse_x, mouse_y; // souradnice mysi v okne void setmouse(); // nastavi souradnice mysi na mouse_x, mouse_y -char mouse_pressed; // je zmacknute leve tlacitko mysi? +extern char mouse_pressed; // je zmacknute leve tlacitko mysi? void loop_noskip(); // oznami modulu, ze se cekalo dobu, kterou neni vhodno kompenzovat diff --git a/main.c b/main.c index becfb08..7847cd3 100644 --- a/main.c +++ b/main.c @@ -18,6 +18,10 @@ #include "keyboard.h" #include "directories.h" +char *userlev; +int gargc; +char **gargv; + static void usage() // kdyz jsou spatne parametry -- vypise Usage a ukonci program { printf("Usage: ff-clone [-d ] []\n"); diff --git a/main.h b/main.h index e21b751..0a3b321 100644 --- a/main.h +++ b/main.h @@ -1,9 +1,9 @@ -char *userlev; /* nazev uzivatelova levelu (zadan jako parametr prikazove radky), +extern char *userlev; /* nazev uzivatelova levelu (zadan jako parametr prikazove radky), nebyl-li zadan, hodnota je NULL */ // zpristupneni argv a argc i jinym funkcim nez main -int gargc; -char **gargv; +extern int gargc; +extern char **gargv; int main(); void escape(); // unik z mistnosti nebo hry diff --git a/menuevents.c b/menuevents.c index 652bcc0..1dab4ad 100644 --- a/menuevents.c +++ b/menuevents.c @@ -11,6 +11,7 @@ #include "levelscript.h" static menu_node *last_active = NULL; // drzene tlacitko +char menumode; // je hra v menu? void menu_click() /* pri kliknuti se nestane nic slozitejsiho, nez ze si zapamatuji kolecko, na ktere se kliklo */ diff --git a/menuevents.h b/menuevents.h index 1ddb163..34c8a6c 100644 --- a/menuevents.h +++ b/menuevents.h @@ -1,4 +1,4 @@ -char menumode; // je hra v menu? +extern char menumode; // je hra v menu? void menu_click(); // kliknuti mysi v menu void menu_unclick(); // pusteni mysi v menu void menu_pointer(); // pohyb mysi v menu diff --git a/menuscript.c b/menuscript.c index 3ff065f..057daca 100644 --- a/menuscript.c +++ b/menuscript.c @@ -10,6 +10,9 @@ #include "menudraw.h" #include "infowindow.h" +menu_node *first_menu_node; // prvni prvek seznamu +menu_node *active_menu_node; +menu_line *first_menu_line; // prvni prvek spojoveho seznamu // C_add_line(x1, y1, x2, y3) - prida usecku podle zadanych souradnic static int menuscript_add_line(lua_State *L) diff --git a/menuscript.h b/menuscript.h index 259586f..53abd56 100644 --- a/menuscript.h +++ b/menuscript.h @@ -29,9 +29,9 @@ typedef struct menu_node{ // kolecko na mape struct menu_node *next; } menu_node; -menu_node *first_menu_node; // prvni prvek seznamu +extern menu_node *first_menu_node; // prvni prvek seznamu -menu_node *active_menu_node; /* mistnost, nad kterou je mys, pripadne +extern menu_node *active_menu_node; /* mistnost, nad kterou je mys, pripadne spustena mistnost */ typedef struct menu_line{ // usecka na mape @@ -39,7 +39,7 @@ typedef struct menu_line{ // usecka na mape double x2, y2; // souradnice konce cary struct menu_line *next; } menu_line; -menu_line *first_menu_line; // prvni prvek spojoveho seznamu +extern menu_line *first_menu_line; // prvni prvek spojoveho seznamu void menu_initlua(); // inicializuje skript a promenne tohoto modulu diff --git a/moves.c b/moves.c index 4022faf..f874fce 100644 --- a/moves.c +++ b/moves.c @@ -10,6 +10,11 @@ #include "draw.h" #include "main.h" +int moves; // aktualni pocet tahu +int minmoves; // minimalni pocet tahu: -1 nebo 0 podle +int maxmoves; // maximalni pocet tahu v teto situaci, tedy kam az dosahne redo +char room_sol_esc; + /* Undo historie je ulozena ve spojovem seznamu struktury movesblock, kazda tato struktura ma ulozeno MOVESBLOCK (100) tahu a pozici vsech diff --git a/moves.h b/moves.h index 8e0dcaa..a60ae0b 100644 --- a/moves.h +++ b/moves.h @@ -1,11 +1,11 @@ #define FLIPCHANGE 0 // ryba se otocila #define LIVECHANGE 1 // ryba zemrela -int moves; // aktualni pocet tahu -int minmoves; // minimalni pocet tahu: -1 nebo 0 podle -int maxmoves; // maximalni pocet tahu v teto situaci, tedy kam az dosahne redo +extern int moves; // aktualni pocet tahu +extern int minmoves; // minimalni pocet tahu: -1 nebo 0 podle +extern int maxmoves; // maximalni pocet tahu v teto situaci, tedy kam az dosahne redo -char room_sol_esc; /* mistnost byla vyresena, a proto se nyni +extern char room_sol_esc; /* mistnost byla vyresena, a proto se nyni ma hra vratit do menu */ void init_moves(); /* inicializuje struktury pro undo historii, diff --git a/object.c b/object.c index fcdd296..632a858 100644 --- a/object.c +++ b/object.c @@ -14,7 +14,10 @@ #include "imgsave.h" #include "menudraw.h" #include "main.h" - +int objnum; // pocet objektu +ff_object **objlist[NUMOBJLISTS]; +int room_width; // celkovy pocet policek na sirku +int room_height; // celkovy pocet policek na vysku static void analyzeobject(ff_object *obj); ff_object *first_object = NULL; // prvni objekt ve spojovem seznamu diff --git a/object.h b/object.h index ca41bf2..3058b49 100644 --- a/object.h +++ b/object.h @@ -47,14 +47,14 @@ typedef struct ff_object{ // predmet ve hre (nebo i ryba / zed) struct ff_object *next; // dalsi objekt ve spojovem seznamu } ff_object; -ff_object *first_object; // prvni objekt ve spojovem seznamu -int objnum; // pocet objektu +extern ff_object *first_object; // prvni objekt ve spojovem seznamu +extern int objnum; // pocet objektu /* Vedle spojoveho seznamu jsou objekty v nekolika (NUMOBJLISTS) polich objlist[], ruzne sprehazeny. Navic kazdy objekt ma ulozeno, na jake pozici daneho pole objlist se nachazi, v polozce index. */ -ff_object **objlist[NUMOBJLISTS]; +extern ff_object **objlist[NUMOBJLISTS]; /* Pro prohozeni dvou objektu v danem poli objlist slouzi nasledujici funkce. prvni parametr udava objekt, druhy na kterou pozici se ma premistit @@ -62,8 +62,8 @@ ff_object **objlist[NUMOBJLISTS]; */ void swapobject(ff_object *obj1, int index2, int list); -int room_width; // celkovy pocet policek na sirku -int room_height; // celkovy pocet policek na vysku +extern int room_width; // celkovy pocet policek na sirku +extern int room_height; // celkovy pocet policek na vysku ff_object *new_object(const char *color, char type, int x, int y, int width, int height, const char *data); diff --git a/rules.c b/rules.c index 00d1112..cf28659 100644 --- a/rules.c +++ b/rules.c @@ -7,7 +7,11 @@ #include "rules.h" #include "main.h" #include "menuscript.h" - +struct ff_object *active_fish; // prave aktivni ryba (s rameckem) +struct ff_object *start_active_fish; // ryba aktivni pri startu +int room_movedir; +int fishnum; // pocet ryb +enum _room_state room_state; // Zde pouzivane objlisty: (a pak jeste FISHLIST v rules.h) // polozka out v ff_object muze nabyvat: diff --git a/rules.h b/rules.h index 6f6336d..f3febb8 100644 --- a/rules.h +++ b/rules.h @@ -1,19 +1,21 @@ -enum{ +enum _room_state { ROOM_IDLE, // nic se nedeje ROOM_MOVE, // ryba se posunuje ROOM_FALL, // predmety padaji ROOM_BEGIN, // predmety budou padat (pri startu) -} room_state; +}; + +extern enum _room_state room_state; #define FISHLIST 2 // seznam ryb, viz rulec.c, kapitola // zbyle objlisty definovane v rules.c -struct ff_object *active_fish; // prave aktivni ryba (s rameckem) -struct ff_object *start_active_fish; // ryba aktivni pri startu -int room_movedir; /* smer kterym se hybou hybajici se predmety, tedy +extern struct ff_object *active_fish; // prave aktivni ryba (s rameckem) +extern struct ff_object *start_active_fish; // ryba aktivni pri startu +extern int room_movedir; /* smer kterym se hybou hybajici se predmety, tedy bud smer posunu ryby, nebo DOWN, padaji-li. */ -int fishnum; // pocet ryb +extern int fishnum; // pocet ryb void init_rules(); /* inicializuje tento modul, nutno spoustet po finish_objects() */ diff --git a/script.c b/script.c index b6c7812..01c0de2 100644 --- a/script.c +++ b/script.c @@ -9,6 +9,8 @@ #include "layers.h" #include "draw.h" +lua_State *luastat; + static void setluaint(lua_State *L, char *name, int value) // nastavi ve skriptu do daneho nazvu promenne dane cislo. { diff --git a/script.h b/script.h index 0069404..ecbee74 100644 --- a/script.h +++ b/script.h @@ -23,7 +23,7 @@ stringy datadir a homedir. Opet jejich nazev v lue bude zacinat predponou "C_". */ -lua_State *luastat; +extern lua_State *luastat; void initlua(); // inicializuje luastat void *my_luaL_checkludata(lua_State *L, int narg); diff --git a/window.c b/window.c index 2cd1753..2ae6941 100644 --- a/window.c +++ b/window.c @@ -14,7 +14,14 @@ #include "gsaves.h" #include "warning.h" #include "main.h" - +Atom wmDeleteMessage; // pomoci tohoto se pozna zavreni krizkem +Window real_win; // hlavni okno +Window win; // podokno hlavniho okna, ktere ma stejne rozmery a je mozne do nej krelit +int win_width, win_height; // velikost okna +int owin_width, owin_height; // velikost okna pred fullscreenem +char win_fs; // hra je ted ve fullscreenu +cairo_t *win_cr; +cairo_surface_t *win_surf; char win_resize = 0; cairo_t *win_cr = NULL; static Pixmap win_pixmap; /* pixmapa, na kterou se ve skutecnosti diff --git a/window.h b/window.h index 009efc4..ab85e9e 100644 --- a/window.h +++ b/window.h @@ -1,11 +1,11 @@ -Atom wmDeleteMessage; // pomoci tohoto se pozna zavreni krizkem -Window real_win; // hlavni okno -Window win; // podokno hlavniho okna, ktere ma stejne rozmery a je mozne do nej krelit +extern Atom wmDeleteMessage; // pomoci tohoto se pozna zavreni krizkem +extern Window real_win; // hlavni okno +extern Window win; // podokno hlavniho okna, ktere ma stejne rozmery a je mozne do nej krelit -int win_width, win_height; // velikost okna -int owin_width, owin_height; // velikost okna pred fullscreenem +extern int win_width, win_height; // velikost okna +extern int owin_width, owin_height; // velikost okna pred fullscreenem -char win_fs; // hra je ted ve fullscreenu +extern char win_fs; // hra je ted ve fullscreenu /* Aby bylo prekreslovani co mozna nejmene rusive, je poreseno nasledovne: Kreslici funkce vykresluji pomoci caira (win_cr) na surface win_surf, coz je @@ -14,9 +14,9 @@ char win_fs; // hra je ted ve fullscreenu velikost, ale pocka se az na prvni vykresleni nove jinak velke pixmapy. Do te doby je na true nastavena promenna win_resize. */ -cairo_t *win_cr; -cairo_surface_t *win_surf; -char win_resize; +extern cairo_t *win_cr; +extern cairo_surface_t *win_surf; +extern char win_resize; void createwin(); // vyrobi hlavni okno void create_win_cr(); // vyrobi pro okno spravne velkou pixmapu a cairo kontext