| version 1.16, 2003/11/04 22:00:52 |
version 1.17, 2003/11/07 18:17:35 |
|
|
| * All rights reserved. |
* All rights reserved. |
| */ |
*/ |
| |
|
| /* $Platon: games/mines/mines.c,v 1.15 2003/10/27 09:57:36 nepto Exp $ */ |
/* $Platon: games/mines/mines.c,v 1.16 2003/11/04 22:00:52 nepto Exp $ */ |
| |
|
| /* LANGUAGE */ |
/* LANGUAGE */ |
| #define LANG_ENGLISH_NEW 0 |
#define LANG_ENGLISH_NEW 0 |
|
|
| # define STR_PLAY_AGAIN "Chces hrat znovu?" |
# define STR_PLAY_AGAIN "Chces hrat znovu?" |
| # define STR_HELP "Pomoc" |
# define STR_HELP "Pomoc" |
| # define STR_OTHER_PROGRAMS "In‚ programy" |
# define STR_OTHER_PROGRAMS "In‚ programy" |
| # define STR_SOURCE_EXAMPLE "Uk zka zdrojov‚ho textu z tohto programu" |
# define STR_SOURCE_EXAMPLE "Uk zka zdrojov‚ho textu" |
| |
# define STR_SOURCE_EXAMPLE_2 "Uk zka zdrojov‚ho textu z tohto programu" |
| # define STR_BACK "<--sp„t--" |
# define STR_BACK "<--sp„t--" |
| # define STR_DIFFICULTY "Obtiaznost" |
# define STR_DIFFICULTY "Obtiaznost" |
| # define STR_END_GAME "Koniec hry?" |
# define STR_END_GAME "Koniec hry?" |
| # define STR_HALL_OF_FAME "Tabulka najleps¡ch" |
# define STR_HALL_OF_FAME "Tabulka najleps¡ch" |
| # define STR_HSC_ENTRY "M¡n:%u / Velkost:%ux%u / Cas:%u:%02u:%02u / D tum:%u.%u.%u" |
# define STR_HSC_ENTRY "M¡n:%u / Velkost:%ux%u / Cas:%u:%02u:%02u / D tum:%u.%u.%u" |
| |
# define STR_LONG_OTHER_PROGRAMS "\ |
| |
< In‚ programyô?õ Niektor‚ sa nach dzaj£\n\ |
| |
<na mojej ôwebstránkeõ, ale viac informaci¡\n\ |
| |
< sa dozviete prostredn¡ctvom ôe-mailõu.\n" |
| |
# define STR_LONG_HELP_TEXT "\ |
| |
Cielom je odm¡novat cel‚ pole.\n\ |
| |
Je nutn‚ oznacit vsetky m¡ny a odokryt vsetky nezam¡novane pol¡cka.\n\ |
| |
Hra sa ovl da pomocou mysi a kl vesnice.\n\ |
| |
\n\ |
| |
<ôLav‚ tlacidloõ odkryva policko. V pr¡pade, ze sa tam nach dza\n\ |
| |
< m¡na hra ne£spesne konc¡. Inak sa odokryj£ vsetky\n\ |
| |
< nezam¡novan‚ pol¡cka nach dzaj£ce sa v jeho okol¡.\n\ |
| |
\n\ |
| |
<ôPrav‚ tlacidloõ oznac¡ pol¡cko ako m¡nu. Po dalsom stlacen¡ ako\n\ |
| |
< potencialnu m¡nu a po dalsom oznacenie zrus¡. Miesta\n\ |
| |
< oznacen‚ ako m¡na s£ zabezpecen‚ pred odokryvan¡m.\n\ |
| |
\n\ |
| |
<ôEscõ vykon priame ukoncenie hry a n vrat do menu.\n\ |
| |
<ôF1õ zobraz¡ okno pomoci.\n\ |
| |
<ôF4õ docasne prerus¡ hru (PAUZA).\n\ |
| |
\n\ |
| |
Po oznacen¡ vsetkych m¡n a odkryt¡ vsetkych nezam¡novanych pol¡cok\n\ |
| |
sa hra £spesne konc¡ a moze byt zap¡san do ôTabulky najleps¡chõ.\n\ |
| |
Hlavnym krit‚riom pre z pis je vacs¡ pocet m¡n, pri rovnosti\n\ |
| |
rozhoduje mens¡ cas.\n\ |
| |
\n\ |
| |
<Tato hra vznikla z podnetu nezn meho autora ako pr¡klad softv‚rov‚ho\n\ |
| |
<produktu. Je volne s¡riteln a ak‚kolvek vyuz¡vanie na komercn‚\n\ |
| |
<£cely je mozn‚ len so s£hlasom autora. V pr¡pade z ujmu o dalsie\n\ |
| |
<programy sa informujte na adrese:\n\ |
| |
\n\ |
| |
>ôOndrej Jomb¡k ml.õ\n\ |
| |
>ôHol¡cska 26õ \n\ |
| |
>ô851 01 Bratislavaõ \n" |
| |
# define STR_LONG_SOURCE_CODE "\ |
| |
< Tak toto je cast hlavn‚ho ovl dacieho modulu tohto programu,\n\ |
| |
<ktory m (zatial) nieco cez ô10 000 riadkovõ. Ako programovac¡ jazyk\n\ |
| |
<bol zvoleny ôBorland C++ v3.1õ od firmy Borland International, Inc.\n\ |
| |
<Samozrejme, ze v skutocnosti zdrojovy k¢d nevyzer takto, tu je\n\ |
| |
<len trosku zhusteny, aby sa toho viac zmestilo na obrazovku.\n\ |
| |
ôÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜõ\n\ |
| |
if (but&&isininfo(x,y)){register WORD xx,yy;\n\ |
| |
while (!releasebutton(but-1,&xx,&yy));hidemouse();\n\ |
| |
if (xx!=x||yy!=y)WriteInfo(xx-(x-infox),yy-(y-infoy));\n\ |
| |
showmouse();but=0;}\n\ |
| |
but&=3;x=(x-xoff)/barsize;y=(y-yoff)/barsize;\n\ |
| |
if (xold==0xffff){xold=x;yold=y;}\n\ |
| |
if ((x!=xold||y!=yold)){\n\ |
| |
if (xold<nx&&yold<ny&&sqpress(xold,yold)&&!sqopen(xold,yold)){\n\ |
| |
sqpress(xold,yold)=NO;hidemouse();\n\ |
| |
SetSquare(xold,yold,1);showmouse();}\n\ |
| |
xold=x;yold=y;}if (x<nx&&y<ny&&!underinfo(x,y)){\n\ |
| |
if (!but){mlstant=mrstant=0;\n\ |
| |
(void)releasebutton(0,NULL,NULL);(void)releasebutton(1,NULL,NULL);}\n\ |
| |
if ((but==2)&&!sqopen(x,y)&&mlstant!=but){mlstant=but;\n\ |
| |
switch(((sqmark(x,y)+(!sqmark(x,y)&&!cmines?2:1))%3)){\n\ |
| |
case 1:cmines--;sqmark(x,y)=1;break;\n\ |
| |
case 2:if (sqmark(x,y)==1)cmines++;sqmark(x,y)=2;break;\n\ |
| |
default:sqmark(x,y)=0;break;}hidemouse();SetSquare(x,y,1);showmouse();}\n\ |
| |
else{if (but==1&&!sqopen(x,y)&&!sqpress(x,y)&&sqmark(x,y)!=1){\n\ |
| |
sqpress(x,y)=YES; hidemouse();SetSquare(x,y,0);showmouse();}\n\ |
| |
else{if (!but&&!sqopen(x,y)&&sqpress(x,y)&&sqmark(x,y)!=1){\n\ |
| |
if (value(x,y)==MINE)break;hidemouse();OpenSquare(x,y);showmouse();\n\ |
| |
if (infosafe==NULL)ShowInfo();}else{\n\ |
| |
if (but==3&&sqopen(x,y)&&mrstant!=but){mrstant=but;\n\ |
| |
if (OpenNearSquares(x,y)==YES)break;\n\ |
| |
}}}}}}HideInfo();(void)releasebutton(0,NULL,NULL);\n\ |
| |
ôßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßõ\n" |
| #else |
#else |
| # define EXENAME "mines.exe" |
# define EXENAME "mines.exe" |
| # define ERR_ARGC "Too many arguments in command line." |
# define ERR_ARGC "Too many arguments in command line." |
|
|
| # define STR_PLAY_AGAIN "Do you want to play again?" |
# define STR_PLAY_AGAIN "Do you want to play again?" |
| # define STR_HELP "Help" |
# define STR_HELP "Help" |
| # define STR_OTHER_PROGRAMS "Other programs" |
# define STR_OTHER_PROGRAMS "Other programs" |
| # define STR_SOURCE_EXAMPLE "This program source code example" |
# define STR_SOURCE_EXAMPLE "Source code example" |
| |
# define STR_SOURCE_EXAMPLE_2 "This program source code example" |
| # define STR_BACK "<--back--" |
# define STR_BACK "<--back--" |
| # define STR_DIFFICULTY "Difficulty" |
# define STR_DIFFICULTY "Difficulty" |
| # define STR_END_GAME "End game?" |
# define STR_END_GAME "End game?" |
| # define STR_HALL_OF_FAME "Hall of fame" |
# define STR_HALL_OF_FAME "Hall of fame" |
| # define STR_HSC_ENTRY "Mines:%u / Size:%ux%u / Time:%u:%02u:%02u / Date:%u.%u.%u" |
# define STR_HSC_ENTRY "Mines:%u / Size:%ux%u / Time:%u:%02u:%02u / Date:%u.%u.%u" |
| |
# define STR_LONG_OTHER_PROGRAMS "\ |
| |
< Other programsô?õ Some of them are located\n\ |
| |
<on my ôhomepageõ, but you can get more\n\ |
| |
<information through ôe-mailõ.\n" |
| |
# define STR_LONG_HELP_TEXT "\ |
| |
The goal is to remove all mines from playground.\n\ |
| |
You have to mark all the mines and uncover all fields without mines.\n\ |
| |
The games is controlled using mouse and keyboard.\n\ |
| |
\n\ |
| |
<ôLeft buttonõ reveals the field. In case there is a mine located,\n\ |
| |
< game is lost. Elsewhere all fields around mentioned\n\ |
| |
< field not containing a mine are uncovered.\n\ |
| |
\n\ |
| |
<ôRight buttonõ marks field as a mine. After next clicking it marks\n\ |
| |
< field as a potencial mine. And finally, after further\n\ |
| |
< clicking is mine mark removed. Fields marked as a mine\n\ |
| |
< are protected before revealing.\n\ |
| |
\n\ |
| |
<ôEscõ quits the played game and returns to main menu.\n\ |
| |
<ôF1õ shows window with game help.\n\ |
| |
<ôF4õ temporarily interrupts the game (PAUSE).\n\ |
| |
\n\ |
| |
<When all mines are marked and all other fields are revealed, the game\n\ |
| |
<successfully finished and it could be written in the ôHall of fameõ table.\n\ |
| |
<The criterium in the table is the number of revealed mines, than time.\n\ |
| |
\n\ |
| |
<This game is free software, which comes with absolutely no warranty.\n\ |
| |
<It is licensed under GNU General Public License. For more information\n\ |
| |
<you can visit our website located at ôhttp://platon.sk/õ or e-mail us\n\ |
| |
<at ôplaton@platon.skõ or our postal address:\n\ |
| |
>ôPlaton SDGõ \n\ |
| |
>ôHolicska 26õ \n\ |
| |
>ô851 01 Bratislavaõ \n\ |
| |
>ôSlovakiaõ \n\ |
| |
>ôEuropeõ \n" |
| |
# define STR_LONG_SOURCE_CODE "\ |
| |
<So this is the part of the main control module of this program, which has\n\ |
| |
<currently arround the ô10 000 linesõ. When game was developed on MS-Dos\n\ |
| |
<platform, the ôBorland C++ v3.1õ was chosen as the programming language.\n\ |
| |
<Of course, sources actually does not look like it is shown below. Here it\n\ |
| |
<is just a little bit compressed, so more lines could fit into the screen.\n\ |
| |
ôÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜõ\n\ |
| |
if (but&&isininfo(x,y)){register WORD xx,yy;\n\ |
| |
while (!releasebutton(but-1,&xx,&yy));hidemouse();\n\ |
| |
if (xx!=x||yy!=y)WriteInfo(xx-(x-infox),yy-(y-infoy));\n\ |
| |
showmouse();but=0;}\n\ |
| |
but&=3;x=(x-xoff)/barsize;y=(y-yoff)/barsize;\n\ |
| |
if (xold==0xffff){xold=x;yold=y;}\n\ |
| |
if ((x!=xold||y!=yold)){\n\ |
| |
if (xold<nx&&yold<ny&&sqpress(xold,yold)&&!sqopen(xold,yold)){\n\ |
| |
sqpress(xold,yold)=NO;hidemouse();\n\ |
| |
SetSquare(xold,yold,1);showmouse();}\n\ |
| |
xold=x;yold=y;}if (x<nx&&y<ny&&!underinfo(x,y)){\n\ |
| |
if (!but){mlstant=mrstant=0;\n\ |
| |
(void)releasebutton(0,NULL,NULL);(void)releasebutton(1,NULL,NULL);}\n\ |
| |
if ((but==2)&&!sqopen(x,y)&&mlstant!=but){mlstant=but;\n\ |
| |
switch(((sqmark(x,y)+(!sqmark(x,y)&&!cmines?2:1))%3)){\n\ |
| |
case 1:cmines--;sqmark(x,y)=1;break;\n\ |
| |
case 2:if (sqmark(x,y)==1)cmines++;sqmark(x,y)=2;break;\n\ |
| |
default:sqmark(x,y)=0;break;}hidemouse();SetSquare(x,y,1);showmouse();}\n\ |
| |
else{if (but==1&&!sqopen(x,y)&&!sqpress(x,y)&&sqmark(x,y)!=1){\n\ |
| |
sqpress(x,y)=YES; hidemouse();SetSquare(x,y,0);showmouse();}\n\ |
| |
else{if (!but&&!sqopen(x,y)&&sqpress(x,y)&&sqmark(x,y)!=1){\n\ |
| |
if (value(x,y)==MINE)break;hidemouse();OpenSquare(x,y);showmouse();\n\ |
| |
if (infosafe==NULL)ShowInfo();}else{\n\ |
| |
if (but==3&&sqopen(x,y)&&mrstant!=but){mrstant=but;\n\ |
| |
if (OpenNearSquares(x,y)==YES)break;\n\ |
| |
}}}}}}HideInfo();(void)releasebutton(0,NULL,NULL);\n\ |
| |
ôßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßõ\n" |
| #endif |
#endif |
| |
|
| #define MINBARSIZE (8) |
#define MINBARSIZE (8) |
| Line 1142 BYTE DoAll(void) /* {{{ */ |
|
| Line 1281 BYTE DoAll(void) /* {{{ */ |
|
| void Help(void) /* {{{ */ |
void Help(void) /* {{{ */ |
| { |
{ |
| WORD x,y; |
WORD x,y; |
| do{ |
do { |
| char helptext[]="\ |
char helptext[] = STR_LONG_HELP_TEXT; |
| Cielom je odm¡novat cel‚ pole.\n\ |
|
| Je nutn‚ oznacit vsetky m¡ny a odokryt vsetky nezam¡novane pol¡cka.\n\ |
|
| Hra sa ovl da pomocou mysi a kl vesnice.\n\ |
|
| \n\ |
|
| <ôLav‚ tlacidloõ odkryva policko. V pr¡pade, ze sa tam nach dza\n\ |
|
| < m¡na hra ne£spesne konc¡. Inak sa odokryj£ vsetky\n\ |
|
| < nezam¡novan‚ pol¡cka nach dzaj£ce sa v jeho okol¡.\n\ |
|
| \n\ |
|
| <ôPrav‚ tlacidloõ oznac¡ pol¡cko ako m¡nu. Po dalsom stlacen¡ ako\n\ |
|
| < potencialnu m¡nu a po dalsom oznacenie zrus¡. Miesta\n\ |
|
| < oznacen‚ ako m¡na s£ zabezpecen‚ pred odokryvan¡m.\n\ |
|
| \n\ |
|
| <ôEscõ vykon priame ukoncenie hry a n vrat do menu.\n\ |
|
| <ôF1õ zobraz¡ okno pomoci.\n\ |
|
| <ôF4õ docasne prerus¡ hru (PAUZA).\n\ |
|
| \n\ |
|
| Po oznacen¡ vsetkych m¡n a odkryt¡ vsetkych nezam¡novanych pol¡cok\n\ |
|
| sa hra £spesne konc¡ a moze byt zap¡san do ôTabulky najleps¡chõ.\n\ |
|
| Hlavnym krit‚riom pre z pis je vacs¡ pocet m¡n, pri rovnosti\n\ |
|
| rozhoduje mens¡ cas.\n\ |
|
| \n\ |
|
| <Tato hra vznikla z podnetu nezn meho autora ako pr¡klad softv‚rov‚ho\n\ |
|
| <produktu. Je volne s¡riteln a ak‚kolvek vyuz¡vanie na komercn‚\n\ |
|
| <£cely je mozn‚ len so s£hlasom autora. V pr¡pade z ujmu o dalsie\n\ |
|
| <programy sa informujte na adrese:\n\ |
|
| \n\ |
|
| >ôOndrej Jomb¡k ml.õ\n\ |
|
| >ôHol¡cska 26õ \n\ |
|
| >ô851 01 Bratislavaõ \n"; |
|
| FadeOut(); |
FadeOut(); |
| hidemouse(); |
hidemouse(); |
| cleardevice(); |
cleardevice(); |
| Line 1184 rozhoduje mens¡ cas.\n\ |
|
| Line 1294 rozhoduje mens¡ cas.\n\ |
|
| DrawNormButton(40+125,getmaxy()-48,"","...",BLUE,H_DEFCOLOR,H_INSCOLOR); |
DrawNormButton(40+125,getmaxy()-48,"","...",BLUE,H_DEFCOLOR,H_INSCOLOR); |
| DrawWindow(getmaxx()/2-49,getmaxy()-48,getmaxx()-40,getmaxy()-33,MAGENTA,LIGHTCYAN); |
DrawWindow(getmaxx()/2-49,getmaxy()-48,getmaxx()-40,getmaxy()-33,MAGENTA,LIGHTCYAN); |
| setcolor(WHITE); |
setcolor(WHITE); |
| outtextxy((getmaxx()/2-49+getmaxx()-40)/2,getmaxy()-40, STR_SOURCE_EXAMPLE); |
outtextxy((getmaxx()/2-49+getmaxx()-40)/2,getmaxy()-40, STR_SOURCE_EXAMPLE_2); |
| ShowHelpText(40,70,12,H_DEFCOLOR,H_INSCOLOR,helptext); |
ShowHelpText(40,70,12,H_DEFCOLOR,H_INSCOLOR,helptext); |
| showmouse(); |
showmouse(); |
| FadeIn(); |
FadeIn(); |
| Line 1196 rozhoduje mens¡ cas.\n\ |
|
| Line 1306 rozhoduje mens¡ cas.\n\ |
|
| isinnormbutton(x,y,40+75,getmaxy()-78)|| |
isinnormbutton(x,y,40+75,getmaxy()-78)|| |
| isinnormbutton(x,y,40+100,getmaxy()-63)|| |
isinnormbutton(x,y,40+100,getmaxy()-63)|| |
| isinnormbutton(x,y,40+125,getmaxy()-48)){ |
isinnormbutton(x,y,40+125,getmaxy()-48)){ |
| #if LANGUAGE == LANG_SLOVAK |
|
| char ineprogtext[]="\ |
|
| < In‚ programyô?õ Niektor‚ sa nach dzaj£\n\ |
|
| <na mojej ôwebstránkeõ, ale viac informaci¡\n\ |
|
| < sa dozviete prostredn¡ctvom ôe-mailõu.\n"; |
|
| #else |
|
| char ineprogtext[]="\ |
|
| < Other programsô?õ Some of them are located\n\ |
|
| <on my ôhomepageõ, but you can get more\n\ |
|
| <information through ôe-mailõ.\n"; |
|
| #endif |
|
| void*safe; |
void*safe; |
| static WORD fontcolor=2; |
static WORD fontcolor=2; |
| |
char other_programs_txt[] = STR_LONG_OTHER_PROGRAMS; |
| hidemouse(); |
hidemouse(); |
| if ((safe=malloc(imagesize(229,374,getmaxx()-9,getmaxy()-9)))==NULL)exit(1); |
if ((safe=malloc(imagesize(229,374,getmaxx()-9,getmaxy()-9)))==NULL)exit(1); |
| getimage(229,374,getmaxx()-9,getmaxy()-9,safe); |
getimage(229,374,getmaxx()-9,getmaxy()-9,safe); |
| DrawWindow(229,374,getmaxx()-9,getmaxy()-9,BLUE,WHITE); |
DrawWindow(229,374,getmaxx()-9,getmaxy()-9,BLUE,WHITE); |
| DrawNormButton((getmaxx()+229)/2,getmaxy()-38,"",STR_BACK,GREEN,WHITE,WHITE); |
DrawNormButton((getmaxx()+229)/2,getmaxy()-38,"",STR_BACK,GREEN,WHITE,WHITE); |
| ShowHelpText(280,392,15,11+(fontcolor++)%3,WHITE,ineprogtext); |
ShowHelpText(280, 392, 15, 11 + (fontcolor++) % 3, |
| |
WHITE, other_programs_txt); |
| showmouse(); |
showmouse(); |
| while (!(releasebutton(0,&x,&y)) |
while (!(releasebutton(0,&x,&y)) |
| ||!isinnormbutton(x,y,(getmaxx()+229)/2,getmaxy()-38)) |
||!isinnormbutton(x,y,(getmaxx()+229)/2,getmaxy()-38)) |
| Line 1234 char ineprogtext[]="\ |
|
| Line 1335 char ineprogtext[]="\ |
|
| break; |
break; |
| } |
} |
| if (isinbar(x,y,getmaxx()/2-49,getmaxy()-48,getmaxx()-40,getmaxy()-33)) { |
if (isinbar(x,y,getmaxx()/2-49,getmaxy()-48,getmaxx()-40,getmaxy()-33)) { |
| char zdrojtext[]="\ |
char zdrojtext[] = STR_LONG_SOURCE_CODE; |
| < Tak toto je cast hlavn‚ho ovl dacieho modulu tohto programu,\n\ |
|
| <ktory m (zatial) nieco cez ô10 000 riadkovõ. Ako programovac¡ jazyk\n\ |
|
| <bol zvoleny ôBorland C++ v3.1õ od firmy Borland International, Inc.\n\ |
|
| <Samozrejme, ze v skutocnosti zdrojovy k¢d nevyzer takto, tu je\n\ |
|
| <len trosku zhustenz, aby sa toho viac zmestilo na obrazovku.\n\ |
|
| ôÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜõ\n\ |
|
| if (but&&isininfo(x,y)){register WORD xx,yy;\n\ |
|
| while (!releasebutton(but-1,&xx,&yy));hidemouse();\n\ |
|
| if (xx!=x||yy!=y)WriteInfo(xx-(x-infox),yy-(y-infoy));\n\ |
|
| showmouse();but=0;}\n\ |
|
| but&=3;x=(x-xoff)/barsize;y=(y-yoff)/barsize;\n\ |
|
| if (xold==0xffff){xold=x;yold=y;}\n\ |
|
| if ((x!=xold||y!=yold)){\n\ |
|
| if (xold<nx&&yold<ny&&sqpress(xold,yold)&&!sqopen(xold,yold)){\n\ |
|
| sqpress(xold,yold)=NO;hidemouse();\n\ |
|
| SetSquare(xold,yold,1);showmouse();}\n\ |
|
| xold=x;yold=y;}if (x<nx&&y<ny&&!underinfo(x,y)){\n\ |
|
| if (!but){mlstant=mrstant=0;\n\ |
|
| (void)releasebutton(0,NULL,NULL);(void)releasebutton(1,NULL,NULL);}\n\ |
|
| if ((but==2)&&!sqopen(x,y)&&mlstant!=but){mlstant=but;\n\ |
|
| switch(((sqmark(x,y)+(!sqmark(x,y)&&!cmines?2:1))%3)){\n\ |
|
| case 1:cmines--;sqmark(x,y)=1;break;\n\ |
|
| case 2:if (sqmark(x,y)==1)cmines++;sqmark(x,y)=2;break;\n\ |
|
| default:sqmark(x,y)=0;break;}hidemouse();SetSquare(x,y,1);showmouse();}\n\ |
|
| else{if (but==1&&!sqopen(x,y)&&!sqpress(x,y)&&sqmark(x,y)!=1){\n\ |
|
| sqpress(x,y)=YES; hidemouse();SetSquare(x,y,0);showmouse();}\n\ |
|
| else{if (!but&&!sqopen(x,y)&&sqpress(x,y)&&sqmark(x,y)!=1){\n\ |
|
| if (value(x,y)==MINE)break;hidemouse();OpenSquare(x,y);showmouse();\n\ |
|
| if (infosafe==NULL)ShowInfo();}else{\n\ |
|
| if (but==3&&sqopen(x,y)&&mrstant!=but){mrstant=but;\n\ |
|
| if (OpenNearSquares(x,y)==YES)break;\n\ |
|
| }}}}}}HideInfo();(void)releasebutton(0,NULL,NULL);\n\ |
|
| ôßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßõ\n"; |
|
| FadeOut(); |
FadeOut(); |
| hidemouse(); |
hidemouse(); |
| DrawDefWindow(getmaxx(),0,getmaxy(),"Uk zka zdrojov‚ho textu"); |
DrawDefWindow(getmaxx(),0,getmaxy(),STR_SOURCE_EXAMPLE); |
| DrawNormButton(getmaxx()/2,getmaxy()-31,"","OK",RED,WHITE,WHITE); |
DrawNormButton(getmaxx()/2,getmaxy()-31,"",STR_OK,RED,WHITE,WHITE); |
| ShowHelpText(30,52,12,LIGHTGREEN,LIGHTCYAN,zdrojtext); |
ShowHelpText(30,52,12,LIGHTGREEN,LIGHTCYAN,zdrojtext); |
| showmouse(); |
showmouse(); |
| FadeIn(); |
FadeIn(); |