for (i=0;i<=getmaxcolor();i++)
{
butony[1]=oldc[i][1];butony[2]=oldc[i][2];butony[3]=oldc[i][3];
put_rgb(butony,i);
}
oz_col();
do {
zobmys(1);
getmys( &but, &xm, &ym );
if (but==2) {
ch=27;button(0,1);
}
if (but==1) {
zobmys(0);
if ((ym<=40) && (ym>=15)) {
if ((xm>=20) && (xm<=70)) { button(0,1);ch=27; }
if ((xm>=81) && (xm<=131)) { button(1,1);help();button(1,0);}
if ((xm>=203) && (xm<=253)) { button(typpa,0);change(0);button(3,1);}
if ((xm>=264) && (xm<=304)) { button(typpa,0);change(1);button(4,1);}
if ((xm>=325) && (xm<=365)) { button(typpa,0);change(2);button(5,1);}
if ((xm>=386) && (xm<=426)) { button(typpa,0);change(3);button(6,1);}
if ((xm>=447) && (xm<=487)) {
if (vykonat("Prekonvertovaœ na çed£ çk lu.")) {
button(typpa,0);button(7,1);
for (i=0;i<=getmaxcolor();i++)
{akcol=i;oz_col();
butony[1]=i*((gmaxy-206)/getmaxcolor());
butony[2]=butony[1];butony[3]=butony[1];
butony[1]=butony[2];
oldbut[3]=butony[2];oldbut[2]=butony[2];
oldbut[1]=butony[2];
movbut(1,0);}
akcol=0;duha();oz_col();change(4);button(7,1);}}
if ((xm>=508) && (xm<=548)) {
if (vykonat("Vr tiœ p“vodn‚ farby.")) {
button(typpa,0);button(8,1);change(6);
for (i=0;i<=getmaxcolor();i++) {
butony[1]=oldc[i][1];butony[2]=oldc[i][2];butony[3]=oldc[i][3];
oldbut[1]=oldc[i][1];oldbut[2]=oldc[i][2];oldbut[3]=oldc[i][3];
akcol=i;
movbut(1,0);
}
duha();typpa=3;akcol=0;oz_col();change(0);
button(8,0);
button(3,1);}}
if ((xm>=569) && (xm<=609)) {button(9,1);fapa();button(9,0);}
}
if ((ym<=gmaxy-50) && (ym>=135)) {
xm=gmaxx-xm;
if ((xm<=93) && (xm>=77)) {
do {
set_mys(gmaxx-20,gmaxy/2);
getmys( &but, &xm, &ym);
if (ym<gmaxy/2) for (i=ym;i<=gmaxy/2;i=i+2) movbut(3,-2);
if (ym>gmaxy/2) for (i=gmaxy/2;i<=ym;i=i+2) movbut(3, 2);
} while (but==1);
set_mys(gmaxx-80,140);
ym=0;xm=0; }
if ((xm<=64) && (xm>=48)) {
do {
set_mys(gmaxx-50,gmaxy/2);
getmys( &but, &xm, &ym);
if (ym<gmaxy/2) for (i=ym;i<=gmaxy/2;i=i+2) movbut(2,-2);
if (ym>gmaxy/2) for (i=gmaxy/2;i<=ym;i=i+2) movbut(2, 2);
} while (but==1);
set_mys(gmaxx-50,140);
ym=0;xm=0; }
if ((xm<=35) && (xm>=20)) {
do {
set_mys(gmaxx-25,gmaxy/2);
getmys( &but, &xm, &ym);
if (ym<gmaxy/2) for (i=ym;i<=gmaxy/2;i=i+2) movbut(1,-2);
if (ym>gmaxy/2) for (i=gmaxy/2;i<=ym;i=i+2) movbut(1, 2);
} while (but==1);
set_mys(gmaxx-25,140);
ym=0;xm=0; }
xm=gmaxx-xm;
}
if ((ym>=55) && (ym<=gmaxy-50))
if ((xm>=20) && (xm<=gmaxx-107)) {
pomer=((gmaxx-127)/16);
pomy=getmaxcolor()/16+1;
ym=ym/((gmaxy-127)/pomy);
xm=(xm-20)/pomer+ym*16;
if ((xm>=0) && (xm<=15)) {akcol=ym*16+xm;oz_col();}
}
zobmys(1);
}
if (kbhit()) ch=getch();
else if (ch!=27) ch=1;
if (ch==27) button(0,1);
if ((ch==113) || (ch==81)) movbut(3,-2); /*pre Q*/
if ((ch==119) || (ch==86)) movbut(2,-2); /*pre W*/
if ((ch==101) || (ch==69)) movbut(1,-2); /*pre E*/
if ((ch==97 ) || (ch==65)) movbut(3, 2); /*pre A*/
if ((ch==115) || (ch==83)) movbut(2, 2); /*pre S*/
if ((ch==100) || (ch==68)) movbut(1, 2); /*pre D*/
if (ch==0)
{
if (kbhit) {
zobmys(0);
ch=getch();
switch (ch) {
case 59: button(1,1);help();button(1,0);break;
case 61: button(typpa,0);change(0);button(3,1);break;
case 62: button(typpa,0);change(1);button(4,1);break;
case 63: button(typpa,0);change(2);button(5,1);break;
case 64: button(typpa,0);change(3);button(6,1);break;
case 65: if (vykonat("Prekonvertovaœ na çed£ çk lu.")) {
button(typpa,0);button(7,1);
for (i=0;i<=getmaxcolor();i++) {
butony[1]=i*((gmaxy-206)/getmaxcolor());
butony[2]=butony[1];butony[3]=butony[1];
butony[1]=butony[2];
oldbut[3]=butony[2];oldbut[2]=butony[2];
oldbut[1]=butony[2];
movbut(1,0);akcol=i;oz_col();}
duha();akcol=0;oz_col();change(4);button(7,1);
} break;
case 66: if (vykonat("Vr tiœ p“vodn‚ farby.")) {
button(typpa,0);button(8,1);change(6);
for (i=0;i<=getmaxcolor();i++) {
butony[1]=oldc[i][1];butony[2]=oldc[i][2];butony[3]=oldc[i][3];
oldbut[1]=oldc[i][1];oldbut[2]=oldc[i][2];oldbut[3]=oldc[i][3];
akcol=i;
movbut(1,0);
}
duha();typpa=3;akcol=0;oz_col();change(0);
button(8,0);
button(3,1);}break;
case 67: button(9,1);fapa();button(9,0);break;
case 75: if (akcol>0) akcol=akcol-1;oz_col();break;
case 77: if (akcol<getmaxcolor()) akcol=akcol+1;oz_col();break;
}
zobmys(1);
}
}
if (ch==27) if (vykonat("Chceç ukonŸiœ program FAPA.")==0) ch=0;
}
while (ch!=27);
closegraph();
}
// prepocet na suradnice podla x,y-rozlisenia monitora
int rcmx(int x) { return x*640.0/gmaxx; }
int rcmy(int y) { return y*480.0/gmaxy; }
void uvod_kre(int vse, int pos )
{
int i;
if (vse==1) for (i=1;i<=gmaxx/2;i++) uvod(i);
setfillstyle(1,BLUE);i=(1.0*gmaxx)/4.7;
butfree(i,i+pos,gmaxx-i,gmaxy-i+pos,10,RED);
setcolor(YELLOW);
settextstyle(1,0,9);
outtextxy(i+20,i-10+pos," FAPA");
init_pot();
settextstyle(2,1,4);
for (i=1;i<=3;i++)
outtextxy(gmaxx-7-i*28,57,col[0][i-1]);
duha();
}
// robi efekt prelinania sa farieb
void duha( void )
{
int x,y,pomer,pomy;
pomer=(gmaxx-127)/16;
pomy=getmaxcolor()/16;
if (pomy==0) pomy=1;
for (y=0;y<=pomy-1;y++)
for (x=20;x<=gmaxx-107;x++) {
setcolor(((y*(gmaxx-127)+x-20)/pomer));
line(x,y*((gmaxy-105)/pomy)+55,x,55+(y+1)*((gmaxy-105)/pomy));
}
}
// zobrazi help subor
int help( void )
{
int font,s,y,x,but,good;
char ch,re[80],re2[2];
FILE *fopen(),*f;
char kam[128];
do {
bar(20,55,gmaxx-57,gmaxy-83);
if (s==-1) {
settextstyle(font,0,4);
obrazky();
good=0;
settextstyle(font,0,6);
}
else {
if ((good=strana(1,s,re,f))==0)
{
for (y=1;y<=20;y++) {
setcolor(DARKGRAY);
for (x=0;x<=strlen(re);x++) {
re2[0]=re[x];
if (re[x]=='@') setcolor(YELLOW);
else outtextxy(40+x*8,45+y*16,re2);
}
if ((good=strana(0,s,re,f))!=0) y=21;
}
}
}
ch=0;zobmys(1);
do {
getmys(&but,&x,&y);
if (but==1)
{
y=gmaxy-y;
if ((y<80) && (y>60)) {
if ((x>40) && (x<140)) { s=s-1;if (s<-1) s=-1;}
if ((x>180) && (x<280)) { s=s+1;if (good!=0) s=s-1;}
ch=27;
if ((x>320) && (x<430)) ch=13;
}
}
if (kbhit())
{
ch=getch();
if (ch==0) ch=getch();
switch (ch)
{
case 73:{ s=s-1;ch=27;if (s<-1) s=-1; }break;
case 81:{ s=s+1;ch=27;if (good!=0) s=s-1;}break;
}
}
} while ((ch!=13) && (ch!=27));
zobmys(0);
setcolor(LIGHTGRAY);
bar(536,gmaxy-79,568,gmaxy-64);
setcolor(DARKGRAY);
sprintf(re,"%3d",s+1);
outtextxy(536,gmaxy-81,re);
} while (ch!=13);
for (i=1;i<=3;i++)
{
setcolor(LIGHTGRAY);
settextstyle(2,0,4);
sprintf(s,"%2.0f",(100.0*butony[i])/277);
outtextxy(gmaxx-i*29-3,gmaxy-32,"ÛÛÛ");
setcolor(DARKGRAY);
outtextxy(gmaxx-i*29-3,gmaxy-32,s);
}
zobmys(0);
butony[but]=butony[but]+smer;
if (butony[but]>(gmaxy-206)) butony[but]=gmaxy-206;
if (butony[but]<0) butony[but]=0;
for (buton=1;buton<=3;buton++)
{
if (oldbut[buton]!=butony[buton])
{
if (butony[buton]>oldbut[buton])
{
for (i=oldbut[buton];i<=butony[buton];i++)
putimage(gmaxx-buton*29-2,137+i,butmap,0);
}
else {
for (i=oldbut[buton];i>=butony[buton];i--)
putimage(gmaxx-buton*29-2,137+i,butmap,0);
}
}
}