commit 819318450cb97b000d71e7fba0c4b18ae84f7520 Author: jdg Date: Wed Sep 8 21:28:03 2021 +0200 First commit 14/12/1995 diff --git a/MAKE_BO2.CPP b/MAKE_BO2.CPP new file mode 100644 index 0000000..5d34579 --- /dev/null +++ b/MAKE_BO2.CPP @@ -0,0 +1,1546 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include "c:\things\borlandc\jd_lib\f_lib\make_bot.h" + +#define MB_TeclaPulsada() ( *(unsigned *) MK_FP(0x40,0x1A) != *(unsigned *) MK_FP(0x40,0x1C) ) + +/**/ +/* MAKE BOTON */ +/**/ + + void ErrorOccurred(int errorcode); + + struct Make_Boton { + /* unsigned */ int Up, Left, Down, Right; + unsigned char Cdf, Cb1, Cb2; + unsigned char Ab, Pb; + unsigned char Isc, Sc; + }; + + int P_Sec(int numero); + int lee_objeto(FILE *); + void Deprime_Image(struct Make_Boton Bot_Imp); + void Imprime_Boton(int D_Bord, struct Make_Boton Bot_Imp); + + char True_Push = OFF, // Parametros para el TRUE_PUSH + Push = OFF; // PRESION REAL !!! + void far *arrow; // YA !!! + + int Secuencias, *n_Botones_Secuencia; + char memoria_asignada = 0;//, vez = 0; + + struct Make_Boton far *Botones; // Puntero a estructura + + +/**/ +/* Control del Raton */ +/**/ + + void Carga_Puntero(void); + int Carga_Puntero_Animado(void); + + void *Pantalla; + unsigned char *P_Raton1, *P_Raton2, *P_Raton3, *P_Raton4; + char raton=0, // Indica si hay un Raton = 1 + PunteroRaton=0; // Se modifica el puntero ? + + int x_raton=50, y_raton=50, // Tras Espera_Tecla_o_Raton(); devuelve + dir_raton [32+32]; // las coordenadas y botones pulsados... + + + unsigned char BLANCO = 255, GRIS_CLARO = 253, NEGRO = 240, UNKNOW = 249, AZUL = 250; + +////////////////////////////////////////////////////////////////////////////// +/////////////////////////>>>> Inicio del codigo <<<<<='0' && ch<='9') numero= (numero*10+ch-48); + ch=fgetc(fichero); + } + Secuencias = numero; + if (( n_Botones_Secuencia = (int *) malloc( sizeof(int)*Secuencias ) ) == NULL) { + printf("\nNo Hay suficiente Memoria, ni para un Boton\n\n"); + return SIN_MEMORIA; + } + } + + if (ch=='!') { //Numero de Botones en la secuencia + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero= (numero*10+ch-48); + ch=fgetc(fichero); + } + temp_num = numero; + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero= (numero*10+ch-48); + ch=fgetc(fichero); + } + n_Botones_Secuencia[temp_num - 1] = numero; + + SiZe_BoToN += ( sizeof( struct Make_Boton ) * numero); + + if ( (Botones = (struct Make_Boton far *)farrealloc(Botones, SiZe_BoToN )) == NULL) { + Secuencias = temp_num; + return SIN_MEMORIA; + } + memoria_asignada = 1; + } + if (ch=='$') { //Clculos del boton + inc_Botones++; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Left = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Up = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Right =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + if(ch == '-' || ch == '-') signo = 1; + ch=fgetc(fichero); + } + if ( signo == 1 ) + Botones [inc_Botones]. Down =numero * -1; + else + Botones [inc_Botones]. Down =numero; + signo = 0; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Cdf =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Cb1 =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Cb2 =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Ab =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Pb =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Isc =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Sc =numero; + + } + + if (ch!=EOF) ch=fgetc(fichero); + } + + return OK; +} + + +void despliega_datos(void){ + int SeCa; + + clrscr(); + for(int SeC=0; SeC 0) + { + puntos[1] = 120; + puntos[2] = 300; + } else { + puntos[1] = 60; + puntos[2] = 240; + } + setlinestyle(0, 1, NORM_WIDTH); + setcolor(Bot_Imp.Cb1); + setfillstyle(SOLID_FILL, Bot_Imp.Cb1); + for ( puntos[0] = 0; puntos[0] < Ab; puntos[0]++ ) + arc( Bot_Imp.Left, Bot_Imp.Up, puntos[1]+puntos[0], puntos[2]+puntos[0], Bot_Imp.Right - puntos[0]); + setcolor(Bot_Imp.Cb2); + setfillstyle(SOLID_FILL, Bot_Imp.Cb2); + for ( puntos[0] = 0; puntos[0] < Ab; puntos[0]++ ) + arc( Bot_Imp.Left, Bot_Imp.Up, puntos[2]+puntos[0], puntos[1]+puntos[0], Bot_Imp.Right - puntos[0]); + + if(D_Bord) { + setcolor(Bot_Imp.Cdf); + setfillstyle(SOLID_FILL, Bot_Imp.Cdf); + pieslice( Bot_Imp.Left, Bot_Imp.Up, 0, 360, Bot_Imp.Right - Ab); + } + + if( Ab >= 2 ) { + setcolor( NEGRO ); + setfillstyle(EMPTY_FILL, Bot_Imp.Cdf); + circle( Bot_Imp.Left, Bot_Imp.Up, Bot_Imp.Right); + } + + } else { + + if(Bot_Imp.Pb == 2) { + puntos[0] = Bot_Imp.Left; puntos[1] = Bot_Imp.Up; + puntos[2] = Bot_Imp.Right; puntos[3] = Bot_Imp.Up; + puntos[4] = Bot_Imp.Right; puntos[5] = Bot_Imp.Down; + puntos[6] = (Bot_Imp.Right-Ab); puntos[7] = (Bot_Imp.Down-Ab); + puntos[8] = (Bot_Imp.Right-Ab); puntos[9] = (Bot_Imp.Up+Ab); + puntos[10] = (Bot_Imp.Left+Ab); puntos[11] = (Bot_Imp.Up+Ab); + puntos[12] = Bot_Imp.Left; puntos[13] = Bot_Imp.Up; + } else { + puntos[0] = Bot_Imp.Left; puntos[1] = Bot_Imp.Up; + puntos[2] = Bot_Imp.Right; puntos[3] = Bot_Imp.Up; + puntos[4] = Bot_Imp.Right - Ab; puntos[5] = Bot_Imp.Up + Ab; + puntos[6] = Bot_Imp.Left + Ab; puntos[7] = Bot_Imp.Up + Ab; + puntos[8] = Bot_Imp.Left + Ab; puntos[9] = Bot_Imp.Down - Ab; + puntos[10] = Bot_Imp.Left; puntos[11] = Bot_Imp.Down; + puntos[12] = Bot_Imp.Left; puntos[13] = Bot_Imp.Up; + } + + setcolor(Bot_Imp.Cb1); + setfillstyle(SOLID_FILL, Bot_Imp.Cb1); + setlinestyle(0, 1, NORM_WIDTH); + fillpoly(7, puntos); + + if(Bot_Imp.Pb == 2) { + puntos[0] = Bot_Imp.Left+Ab; puntos[1] = Bot_Imp.Up+Ab; + puntos[2] = Bot_Imp.Left+Ab; puntos[3] = Bot_Imp.Down-Ab; + puntos[4] = Bot_Imp.Right-Ab; puntos[5] = Bot_Imp.Down-Ab; + puntos[6] = Bot_Imp.Right; puntos[7] = Bot_Imp.Down; + puntos[8] = Bot_Imp.Left; puntos[9] = Bot_Imp.Down; + puntos[10] = Bot_Imp.Left; puntos[11] = Bot_Imp.Up; + puntos[12] = Bot_Imp.Left+Ab; puntos[13] = Bot_Imp.Up+Ab; + } else { + puntos[0] = Bot_Imp.Right; puntos[1] = Bot_Imp.Up; + puntos[2] = Bot_Imp.Right; puntos[3] = Bot_Imp.Down; + puntos[4] = Bot_Imp.Left; puntos[5] = Bot_Imp.Down; + puntos[6] = Bot_Imp.Left+Ab; puntos[7] = Bot_Imp.Down-Ab; + puntos[8] = Bot_Imp.Right-Ab; puntos[9] = Bot_Imp.Down-Ab; + puntos[10] = Bot_Imp.Right-Ab; puntos[11] = Bot_Imp.Up+Ab; + puntos[12] = Bot_Imp.Right; puntos[13] = Bot_Imp.Up; + } + + setcolor(Bot_Imp.Cb2); + setfillstyle(SOLID_FILL, Bot_Imp.Cb2); + setlinestyle(0, 1, NORM_WIDTH); + fillpoly(7, puntos); + + if(D_Bord) { + setcolor(Bot_Imp.Cdf); + setfillstyle(SOLID_FILL, Bot_Imp.Cdf); + bar(Bot_Imp.Left+Ab+1, Bot_Imp.Up+Ab+1, Bot_Imp.Right-Ab-1, Bot_Imp.Down-Ab-1); + } + + if( Ab >= 2 ) { + setcolor( NEGRO ); + setfillstyle(EMPTY_FILL, Bot_Imp.Cdf); + rectangle(Bot_Imp.Left, Bot_Imp.Up, Bot_Imp.Right, Bot_Imp.Down); + } +} + +} + +void Imprime_Boton_i(struct Make_Boton Bot_Imp){ + + int puntos[14]; + unsigned char Ab = Bot_Imp.Ab; + unsigned long size; + +if ( Bot_Imp.Down < 0 ) + { + if(Bot_Imp.Pb > 0) + { + puntos[1] = 120; + puntos[2] = 300; + } else { + puntos[1] = 60; + puntos[2] = 240; + } + setlinestyle(0, 1, NORM_WIDTH); + setcolor(Bot_Imp.Cb1); + setfillstyle(SOLID_FILL, Bot_Imp.Cb1); + for ( puntos[0] = 0; puntos[0] < Ab; puntos[0]++ ) + arc( Bot_Imp.Left, Bot_Imp.Up, puntos[1]+puntos[0], puntos[2]+puntos[0], Bot_Imp.Right - puntos[0]); + setcolor(Bot_Imp.Cb2); + setfillstyle(SOLID_FILL, Bot_Imp.Cb2); + for ( puntos[0] = 0; puntos[0] < Ab; puntos[0]++ ) + arc( Bot_Imp.Left, Bot_Imp.Up, puntos[2]+puntos[0], puntos[1]+puntos[0], Bot_Imp.Right - puntos[0]); + + if( Ab >= 2 ) { + setcolor( NEGRO ); + setfillstyle(EMPTY_FILL, Bot_Imp.Cdf); + circle( Bot_Imp.Left, Bot_Imp.Up, Bot_Imp.Right); + } + + } else { + + if(Bot_Imp.Pb == 2) { + puntos[0] = Bot_Imp.Left; puntos[1] = Bot_Imp.Up; + puntos[2] = Bot_Imp.Right; puntos[3] = Bot_Imp.Up; + puntos[4] = Bot_Imp.Right; puntos[5] = Bot_Imp.Down; + puntos[6] = (Bot_Imp.Right-Ab); puntos[7] = (Bot_Imp.Down-Ab); + puntos[8] = (Bot_Imp.Right-Ab); puntos[9] = (Bot_Imp.Up+Ab); + puntos[10] = (Bot_Imp.Left+Ab); puntos[11] = (Bot_Imp.Up+Ab); + puntos[12] = Bot_Imp.Left; puntos[13] = Bot_Imp.Up; + } else { + puntos[0] = Bot_Imp.Left; puntos[1] = Bot_Imp.Up; + puntos[2] = Bot_Imp.Right; puntos[3] = Bot_Imp.Up; + puntos[4] = Bot_Imp.Right - Ab; puntos[5] = Bot_Imp.Up + Ab; + puntos[6] = Bot_Imp.Left + Ab; puntos[7] = Bot_Imp.Up + Ab; + puntos[8] = Bot_Imp.Left + Ab; puntos[9] = Bot_Imp.Down - Ab; + puntos[10] = Bot_Imp.Left; puntos[11] = Bot_Imp.Down; + puntos[12] = Bot_Imp.Left; puntos[13] = Bot_Imp.Up; + } + + setcolor(Bot_Imp.Cb2); + setfillstyle(SOLID_FILL, Bot_Imp.Cb2); + setlinestyle(0, 1, NORM_WIDTH); + fillpoly(7, puntos); + + /* calculate the size of the image */ + size = JD_imagesize(Bot_Imp.Left+Ab+1, Bot_Imp.Up+Ab+1, Bot_Imp.Right-Ab-1, Bot_Imp.Down-Ab-1); + + /* allocate memory to hold the image */ + if (True_Push == ON) + if ( (arrow = farmalloc(size)) == NULL ) Push = OFF; else { + /* grab the image */ + getimage(Bot_Imp.Left+Ab+1, Bot_Imp.Up+Ab+1, Bot_Imp.Right-Ab-1, Bot_Imp.Down-Ab-1, arrow); + } + + if(Push == ON && True_Push == ON ) { + if(Bot_Imp.Pb == 2) { + putimage(Bot_Imp.Left+1, Bot_Imp.Up+(Ab*2), arrow, COPY_PUT); + } else { + putimage(Bot_Imp.Left+(Ab*2), Bot_Imp.Up+(Ab*2), arrow, COPY_PUT); + } + } else { + if(Bot_Imp.Pb == 2) { + puntos[0] = Bot_Imp.Left+Ab; puntos[1] = Bot_Imp.Up+Ab; + puntos[2] = Bot_Imp.Left+Ab; puntos[3] = Bot_Imp.Down-Ab; + puntos[4] = Bot_Imp.Right-Ab; puntos[5] = Bot_Imp.Down-Ab; + puntos[6] = Bot_Imp.Right; puntos[7] = Bot_Imp.Down; + puntos[8] = Bot_Imp.Left; puntos[9] = Bot_Imp.Down; + puntos[10] = Bot_Imp.Left; puntos[11] = Bot_Imp.Up; + puntos[12] = Bot_Imp.Left+Ab; puntos[13] = Bot_Imp.Up+Ab; + } else { + puntos[0] = Bot_Imp.Right; puntos[1] = Bot_Imp.Up; + puntos[2] = Bot_Imp.Right; puntos[3] = Bot_Imp.Down; + puntos[4] = Bot_Imp.Left; puntos[5] = Bot_Imp.Down; + puntos[6] = Bot_Imp.Left+Ab; puntos[7] = Bot_Imp.Down-Ab; + puntos[8] = Bot_Imp.Right-Ab; puntos[9] = Bot_Imp.Down-Ab; + puntos[10] = Bot_Imp.Right-Ab; puntos[11] = Bot_Imp.Up+Ab; + puntos[12] = Bot_Imp.Right; puntos[13] = Bot_Imp.Up; + } + setcolor(Bot_Imp.Cb1); + setfillstyle(SOLID_FILL, Bot_Imp.Cb1); + setlinestyle(0, 1, NORM_WIDTH); + fillpoly(7, puntos); + + } + + if( Ab >= 2 ) { + setcolor( NEGRO ); + setfillstyle(EMPTY_FILL, Bot_Imp.Cdf); + rectangle(Bot_Imp.Left, Bot_Imp.Up, Bot_Imp.Right, Bot_Imp.Down); + } +} + +} + +// +// + +void Deprime_Image(struct Make_Boton Bot_Imp){ + putimage(Bot_Imp.Left+Bot_Imp.Ab+1, Bot_Imp.Up+Bot_Imp.Ab+1, arrow, COPY_PUT); + farfree(arrow); +} + +// +// + +int Imprime_Estaticos(int Sec_st, char *file){ + + char ch, Relleno = 1, buffer[160]; + unsigned char fuente, size, orientacion, color, + signo=0; + unsigned int /*numero, */ temp_num, temp_b; + int numero; + + int secuencia_activa=-1, x, y; + + struct Make_Boton Bot_Static; + + FILE* fichero; // Fichero con datos del obj. + + if ( (fichero=fopen(file,"r"))==NULL ) return ERROR_ABRIENDO; + + ch=fgetc(fichero); //Lee el primer caracter + while (ch!=EOF) { //Lee hasta fin de fichero + + if (ch=='*') //Linea con comentario + while (ch!=EOL && ch!=EOF) ch=fgetc(fichero); + + if (ch=='') { //Numero de Botones en la secuencia + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + secuencia_activa = numero; + } + + if (ch=='&' && secuencia_activa == Sec_st) { //Clculos del boton estatico + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Left = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Up = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Right =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + if(ch == '-' || ch == '-') signo = 1; + ch=fgetc(fichero); + } + if ( signo==1 ) + Bot_Static.Down =numero * -1; + else + Bot_Static.Down =numero; + signo = 0; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Cdf =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Cb1 =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Cb2 =numero; + + numero=0; Relleno = 1; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; else + if(ch == '-' || ch == '-') Relleno = 0; + ch=fgetc(fichero); + } + Bot_Static.Ab =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Pb =numero; + Imprime_Boton(Relleno, Bot_Static); + } + if (ch=='|' && secuencia_activa == Sec_st) { //Clculos del texto + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + x = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + y = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fuente = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + size = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + orientacion = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + color = numero; + + buffer[0] = '\0'; + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',' && numero<150 ) { + ch=fgetc(fichero); + if(ch!=',') { buffer[numero] = ch; numero++; } + } + + buffer[numero] = '\0'; + setcolor(color); + /* select the registered font */ + settextstyle( fuente, orientacion, size); + outtextxy(x, y, buffer); + + + } + + + if (ch!=EOF) ch=fgetc(fichero); + } + + if( fclose(fichero) != 0 ) return ERROR_CERRANDO; + return OK; +} + +void Imprime_Secuencia(int Sec_num){ + int psec = P_Sec(Sec_num-1); + for(int i=0; in_Botones_Secuencia[Sec_num-1] ) return; + + Boton--; + + if( Color < 0 ) + { + Imprime_Boton( 0, Botones[psec+Boton] ); + return; + } + +if ( Botones[psec+Boton].Down < 0 ) + { + + setlinestyle(0, 1, NORM_WIDTH); + setcolor(Color); + setfillstyle(SOLID_FILL, Color); + for ( puntos[0] = 0; puntos[0] < Botones[psec+Boton].Ab; puntos[0]++ ) + circle( Botones[psec+Boton].Left, Botones[psec+Boton].Up, Botones[psec+Boton].Right - puntos[0]); + + if( Botones[psec+Boton].Ab >= 2 ) { + setcolor( NEGRO ); + setfillstyle(EMPTY_FILL, Botones[psec+Boton].Cdf); + circle( Botones[psec+Boton].Left, Botones[psec+Boton].Up, Botones[psec+Boton].Right); + } + + } else { + + puntos[0] = Botones[psec+Boton].Left; puntos[1] = Botones[psec+Boton].Up; + puntos[2] = Botones[psec+Boton].Right; puntos[3] = Botones[psec+Boton].Up; + puntos[4] = Botones[psec+Boton].Right; puntos[5] = Botones[psec+Boton].Down; + puntos[6] = (Botones[psec+Boton].Right-Botones[psec+Boton].Ab); puntos[7] = (Botones[psec+Boton].Down-Botones[psec+Boton].Ab); + puntos[8] = (Botones[psec+Boton].Right-Botones[psec+Boton].Ab); puntos[9] = (Botones[psec+Boton].Up+Botones[psec+Boton].Ab); + puntos[10] = (Botones[psec+Boton].Left+Botones[psec+Boton].Ab); puntos[11] = (Botones[psec+Boton].Up+Botones[psec+Boton].Ab); + puntos[12] = Botones[psec+Boton].Left; puntos[13] = Botones[psec+Boton].Up; + + setcolor(Color); + setfillstyle(SOLID_FILL, Color); + setlinestyle(0, 1, NORM_WIDTH); + fillpoly(7, puntos); + + puntos[0] = Botones[psec+Boton].Left+Botones[psec+Boton].Ab; puntos[1] = Botones[psec+Boton].Up+Botones[psec+Boton].Ab; + puntos[2] = Botones[psec+Boton].Left+Botones[psec+Boton].Ab; puntos[3] = Botones[psec+Boton].Down-Botones[psec+Boton].Ab; + puntos[4] = Botones[psec+Boton].Right-Botones[psec+Boton].Ab; puntos[5] = Botones[psec+Boton].Down-Botones[psec+Boton].Ab; + puntos[6] = Botones[psec+Boton].Right; puntos[7] = Botones[psec+Boton].Down; + puntos[8] = Botones[psec+Boton].Left; puntos[9] = Botones[psec+Boton].Down; + puntos[10] = Botones[psec+Boton].Left; puntos[11] = Botones[psec+Boton].Up; + puntos[12] = Botones[psec+Boton].Left+Botones[psec+Boton].Ab; puntos[13] = Botones[psec+Boton].Up+Botones[psec+Boton].Ab; + + setcolor(Color); + setfillstyle(SOLID_FILL, Color); + setlinestyle(0, 1, NORM_WIDTH); + fillpoly(7, puntos); + + if( Botones[psec+Boton].Ab >= 2 ) { + setcolor( NEGRO ); + setfillstyle(EMPTY_FILL, Botones[psec+Boton].Cdf); + rectangle(Botones[psec+Boton].Left, Botones[psec+Boton].Up, Botones[psec+Boton].Right, Botones[psec+Boton].Down); + } +} + +} + + +int Comprueba_Secuencia(int Sec_num){ + + char key, key2=0; + int i, Pulso = 0; + int psec = P_Sec(Sec_num-1); + + + + if ( Espera_Tecla_o_Raton() == 0 ) { + + if ( (key = getch())==0) key2 = getch(); + for(i=0; i= Botones[psec+i].Left - Botones[psec+i].Right) && (x_raton <= Botones[psec+i].Left + Botones[psec+i].Right) && + (y_raton >= Botones[psec+i].Up - Botones[psec+i].Right) && (y_raton <= Botones[psec+i].Up + Botones[psec+i].Right) ) { + + Pulso = i + 1; + Push = ON; + Imprime_Boton_i(Botones[psec+Pulso-1]); + Anclar_Raton(); + if( Push == ON && True_Push == ON ) Deprime_Image(Botones[psec+Pulso-1]); + Push = OFF; + Imprime_Boton(0, Botones[psec+Pulso-1]); + return Pulso; + } + else + if( (x_raton >= Botones[psec+i].Left) && (x_raton <= Botones[psec+i].Right) && + (y_raton >= Botones[psec+i].Up) && (y_raton <= Botones[psec+i].Down) ) { + + Pulso = i + 1; + Push = ON; + Imprime_Boton_i(Botones[psec+Pulso-1]); + Anclar_Raton(); + if( Push == ON && True_Push == ON ) Deprime_Image(Botones[psec+Pulso-1]); + Push = OFF; + Imprime_Boton(0, Botones[psec+Pulso-1]); + return Pulso; + } + + return (0); +} + + +void Anclar_Raton(void){ + + union REGS io; + io.x.ax = 3; + do { + int86(0x33, &io, &io); + } while( (io.x.bx & 1)==1 || ((io.x.bx >> 1) & 1)==1); +} + + +int Espera_TeclaRaton(void){ + +// inicializa_raton_grafico(0, 0, 624, 464); +// char boton_izq, boton_der; + char Que; + activa_raton(); + + union REGS io; + io.x.ax = 3; + + do{ + int86(0x33, &io, &io); // lee posicin y estados del botn +// boton_izq = io.x.bx & 1; +// boton_der = (io.x.bx >> 1) & 1; + x_raton = io.x.cx; + y_raton = io.x.dx; + + }while( (io.x.bx & 1) == 0 && ((io.x.bx >> 1) & 1) == 0 && !MB_TeclaPulsada() ); + + + + + ///////////////////////////////////////// + // RETURN Derecho Izquierdo // + // // + // 0 0 0 // + // 1 1 0 // + // 2 0 1 // + // 3 1 1 // + // // + ///////////////////////////////////////// + + + if ( ((io.x.bx >> 1) & 1)==0 && (io.x.bx & 1)==0 ) Que = 0; + if ( ((io.x.bx >> 1) & 1)==1 && (io.x.bx & 1)==0 ) Que = 1; + if ( ((io.x.bx >> 1) & 1)==0 && (io.x.bx & 1)==1 ) Que = 2; + if ( ((io.x.bx >> 1) & 1)==1 && (io.x.bx & 1)==1 ) Que = 3; + + desactiva_raton(); + return Que; +} + + + + +void inicializa_raton_grafico(int x1, int y1, int x2, int y2) +{ + +int px = x_raton, py = y_raton; + + struct SREGS seg; + union REGS ent, sal; + long dir; + + ent.x.ax = 0; + int86(0x33, &ent, &sal); /* averigua si hay ratn conectado */ + + raton = sal.x.ax; /* indica a la variable global el estado + del raton */ + + if(raton!=0) { + + + ent.x.ax = 15; + ent.x.cx = 5; + ent.x.dx = 11; + int86(0x33, &ent, &sal); /* fija la razn mickey/pixel */ + + ent.x.ax = 7; + ent.x.cx = x1; + ent.x.dx = x2; + int86(0x33, &ent, &sal); /* fija la posicin mx. y mn. horizontal */ + + ent.x.ax = 8; + ent.x.cx = y1; + ent.x.dx = y2; + int86(0x33, &ent, &sal); /* fija la posicin mx. y mn. vertical */ + + if ( PunteroRaton == 100 ) { + if ( Carga_Puntero_Animado() ) { PunteroRaton = 1; Carga_Puntero(); } +} else Carga_Puntero(); + + if( PunteroRaton != 100 && PunteroRaton != 0) { + dir = (long)dir_raton; + ent.x.ax = 9; + ent.x.bx = 0; + ent.x.cx = 0; + ent.x.dx = (int) dir; + seg.es = (int) (dir >> 16); + int86x(0x33, &ent, &sal, &seg); /* asigna un cursor diferente */ + } + + ent.x.ax = 4; + ent.x.cx = px; + x_raton=ent.x.cx >> 1; + ent.x.dx = py; + y_raton=ent.x.dx; + int86(0x33, &ent, &sal); /* fija la posicin del ratn */ + + ent.x.ax = 1; + +if( PunteroRaton != 100 ) + int86(0x33, &ent, &sal); /* muestra el puntero del ratn */ + + desactiva_raton(); + + } +} + +void activa_raton(void) +{ + union REGS ent; + + ent.x.ax = 1; + int86(0x33, &ent, &ent); +} + +void desactiva_raton(void) +{ + union REGS ent; + + ent.x.ax = 2; + int86(0x33, &ent, &ent); +} + + + + + +void Initialize(int GraphDriver, int GraphMode) +{ + int errorcode; + +/* + if( (errorcode = registerbgifont(SMALL_FONT)) < 0 ) + ErrorOccurred(errorcode); +*/ + + /* report any registration errors */ +/* if ( (errorcode = registerbgidriver(EGAVGA_driver) ) < 0) + ErrorOccurred(errorcode); +*/ + /* initialize graphics and local variables */ + initgraph( &GraphDriver, &GraphMode, "" ); + + /* read result of initialization */ + errorcode = graphresult(); + if (errorcode != grOk) /* an error occurred */ + ErrorOccurred(errorcode); + + +} + +void ErrorOccurred(int errorcode) { + printf("Graphics error: %s\n", grapherrormsg(errorcode)); + printf("Press any key to halt:"); + getch(); + exit(1); /* terminate with an error code */ +} + +void Libera_Memoria(void){ + if ( memoria_asignada == 1 ) { // Libera antiguos datos + free(n_Botones_Secuencia); + farfree(Botones); + memoria_asignada = 0; + } +} + + +int Espera_Tecla_o_Raton(void){ + +// inicializa_raton_grafico(0, 0, 624, 464); +char Vez_Raton; int x, y; +char boton_izq=0, boton_der=0; +char Que; +// static char vez = 0; + +Vez_Raton = 0; + +union REGS io; + +if ( PunteroRaton!=100 ){ return Espera_TeclaRaton(); } + +if(raton!=0) { + desactiva_raton(); + io.x.ax = 3; +} + + do{ + if(raton!=0) { + int86(0x33, &io, &io); // lee posicin y estados del botn + boton_izq = io.x.bx & 1; + boton_der = (io.x.bx >> 1) & 1; + if ( x_raton != io.x.cx || y_raton != io.x.dx ) { + if(Vez_Raton==0) Vez_Raton = 1; else + putimage(x_raton, y_raton, Pantalla, COPY_PUT); + x_raton = io.x.cx; + y_raton = io.x.dx; + getimage(x_raton, y_raton, x_raton+21, y_raton+21, Pantalla); + + if( Vez_Raton ==14 ) { Vez_Raton = 1; } + if( Vez_Raton ==13 ) { Vez_Raton =14; // putimage(x_raton, y_raton, P_Raton2, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton2[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton2[x+y*20]); + } else + if( Vez_Raton ==12 ) { Vez_Raton =13; // putimage(x_raton, y_raton, P_Raton2, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton2[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton2[x+y*20]); + } else + if( Vez_Raton ==11 ) { Vez_Raton =12; // putimage(x_raton, y_raton, P_Raton3, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton3[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton3[x+y*20]); + } else + if( Vez_Raton ==10 ) { Vez_Raton =11; // putimage(x_raton, y_raton, P_Raton3, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton3[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton3[x+y*20]); + } else + if( Vez_Raton == 9 ) { Vez_Raton =10; // putimage(x_raton, y_raton, P_Raton4, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton4[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton4[x+y*20]); + } else + if( Vez_Raton == 8 ) { Vez_Raton = 9; // putimage(x_raton, y_raton, P_Raton4, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton4[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton4[x+y*20]); + } else + if( Vez_Raton == 7 ) { Vez_Raton = 8; // putimage(x_raton, y_raton, P_Raton4, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton4[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton4[x+y*20]); + } else + if( Vez_Raton == 6 ) { Vez_Raton = 7; // putimage(x_raton, y_raton, P_Raton3, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton3[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton3[x+y*20]); + } else + if( Vez_Raton == 5 ) { Vez_Raton = 6; // putimage(x_raton, y_raton, P_Raton3, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton3[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton3[x+y*20]); + } else + if( Vez_Raton == 4 ) { Vez_Raton = 5; // putimage(x_raton, y_raton, P_Raton2, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton2[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton2[x+y*20]); + } else + if( Vez_Raton == 3 ) { Vez_Raton = 4; // putimage(x_raton, y_raton, P_Raton2, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton2[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton2[x+y*20]); + } else + if( Vez_Raton == 2 ) { Vez_Raton = 3; // putimage(x_raton, y_raton, P_Raton1, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton1[x+y*20] != 253) putpixel(x_raton + x, y_raton + y, P_Raton1[x+y*20]); + + } + if( Vez_Raton == 1 ) { Vez_Raton = 2; // putimage(x_raton, y_raton, P_Raton1, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton1[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton1[x+y*20]); + + } + +/* + if( Vez_Raton == 1 ) { Vez_Raton = 1; + + for(y=0; y<=20; y++) + for(x=0; x<=20; x++) + if( P_Raton1[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton1[4+x+y*20]); + putimage(x_raton, y_raton, P_Raton1, 0); + + } +*/ + } + } + }while( boton_izq == 0 && boton_der == 0 && !MB_TeclaPulsada() ); + +if( raton!=0 ) + putimage(x_raton, y_raton, Pantalla, COPY_PUT); + + + + ///////////////////////////////////////// + // RETURN Derecho Izquierdo // + // // + // 0 0 0 // + // 1 1 0 // + // 2 0 1 // + // 3 1 1 // + // // + ///////////////////////////////////////// + + + if ( boton_der==0 && boton_izq==0 ) Que = 0; + if ( boton_der==1 && boton_izq==0 ) Que = 1; + if ( boton_der==0 && boton_izq==1 ) Que = 2; + if ( boton_der==1 && boton_izq==1 ) Que = 3; +/* +if(raton!=0) + activa_raton(); +*/ + return Que; +} + + +unsigned long JD_imagesize(int left, int top, int right, int bottom) { + + unsigned long X_width, Y_width; + + X_width= ( (left > right) ? (left - right + 1) : ( right - left + 1) ); + Y_width= ( ( top > bottom) ? ( top - bottom + 1) : (bottom - top + 1) ); + + return (X_width * Y_width + 4); + +}; + + +void Libera_Raton_Animado(void){ + + +if ( PunteroRaton == 100 ) { + free(P_Raton1); + free(P_Raton2); + free(P_Raton3); + free(P_Raton4); + free(Pantalla); +} + +} + +void Carga_Puntero(void){ + + switch( PunteroRaton ) { + + case 0: + break; + case 1: + dir_raton [ 0] = 0x007F; /* 1 1 1 1 1 1 1*/ + dir_raton [ 1] = 0x00FF; /* 1 1 1 1 1 1 1 1*/ + dir_raton [ 2] = 0x01FF; /* 1 1 1 1 1 1 1 1 1*/ + dir_raton [ 3] = 0x01FF; /* 1 1 1 1 1 1 1 1 1*/ + dir_raton [ 4] = 0x00FF; /* 1 1 1 1 1 1 1 1*/ + dir_raton [ 5] = 0x007F; /* 1 1 1 1 1 1 1*/ + dir_raton [ 6] = 0x18FF; /* 1 1 1 1 1 1 1 1 1 1*/ + + dir_raton [ 7] = 0x800F; /*1 1 1 1 1*/ + dir_raton [ 8] = 0x8083; /*1 1 1*/ + dir_raton [ 9] = 0x8001; /*1 1*/ + dir_raton [10] = 0xF810; /*1 1 1 1 1 1 1*/ + dir_raton [11] = 0x8810; /*1 1 1 1*/ + dir_raton [12] = 0x8811; /*1 1 1 1*/ + dir_raton [13] = 0x8003; /*1 1 1*/ + dir_raton [14] = 0x8007; /*1 1 1 1*/ + dir_raton [15] = 0x800F; /*1 1 1 1 1*/ + + dir_raton [16] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [17] = 0x7E00; /*0 0 0 0 0 0 0 0 0 0*/ + dir_raton [18] = 0x7C00; /*0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [19] = 0x7C00; /*0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [20] = 0x7E00; /*0 0 0 0 0 0 0 0 0 0*/ + dir_raton [21] = 0x6700; /*0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [22] = 0x0200; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + + dir_raton [23] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [24] = 0x3E70; /*0 0 0 0 0 0 0 0*/ + dir_raton [25] = 0x0248; /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [26] = 0x0244; /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [27] = 0x0242; /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [28] = 0x2244; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [29] = 0x2248; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [30] = 0x3E70; /*0 0 0 0 0 0 0 0*/ + dir_raton [31] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + }; + + +}; + +int Carga_Puntero_Animado(void) { + + +// char *P_Raton; +if( ((P_Raton1 = (unsigned char *)malloc( ( 22 * 22 ) ))==NULL) || + ((P_Raton2 = (unsigned char *)malloc( ( 22 * 22 ) ))==NULL) || + ((P_Raton3 = (unsigned char *)malloc( ( 22 * 22 ) ))==NULL) || + ((P_Raton4 = (unsigned char *)malloc( ( 22 * 22 ) ))==NULL) ) { + return 1; + } + +if ( (Pantalla = malloc( JD_imagesize(0, 0, 22, 22) )) == NULL ) + return 1; +/* +P_Raton = P_Raton1; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; +*P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; + +P_Raton = P_Raton2; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; +*P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; + +P_Raton = P_Raton3; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; + +P_Raton = P_Raton4; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*/ +return 0; +} + + +/// int MB_TeclaPulsada(void) +/* Esta funcin mira si se ha pulsado una tecla pero SIN llamadas a la BIOS, + de forma que no se inhabilitan las interrupciones en cada llamada, cosa + que bajara mucho la calidad de reproduccin con el altavoz interno. */ +/// { +/// return ( *(unsigned *) MK_FP(0x40,0x1A) != *(unsigned *) MK_FP(0x40,0x1C) ); +/// } + + +aton == 8 ) { Vez_Raton = 9; // putimage(x_raton, y_raton, P_Raton4, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton4[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton4[x+y*20]); + } else + if( Vez_Raton == 7 ) { Vez_Raton = 8; // putimage(x_raton, y_raton, P_Raton4, 0); + for(y=0; \ No newline at end of file diff --git a/MAKE_BOT.CPP b/MAKE_BOT.CPP new file mode 100644 index 0000000..25a2df7 --- /dev/null +++ b/MAKE_BOT.CPP @@ -0,0 +1,1643 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include "d:\program\src_dos\libs\make_bot\make_bot.h" + + + + +#define MB_TeclaPulsada() ( *(unsigned *) MK_FP(0x40,0x1A) != *(unsigned *) MK_FP(0x40,0x1C) ) + +#if defined (__HUGE__) + #undef MB_TeclaPulsada() + #define MB_TeclaPulsada() kbhit() +#endif +#if defined (__LARGE__) + #undef MB_TeclaPulsada() + #define MB_TeclaPulsada() kbhit() +#endif +#if defined (__MEDIUM__) + #undef MB_TeclaPulsada() + #define MB_TeclaPulsada() kbhit() +#endif + +/**/ +/* MAKE BOTON */ +/**/ + + void ErrorOccurred(int errorcode); + + struct Make_Boton { + /* unsigned */ int Up, Left, Down, Right; + unsigned char Cdf, Cb1, Cb2; + unsigned char Ab, Pb; + unsigned char Isc, Sc; + }; + + int P_Sec(int numero); + int lee_objeto(FILE *); + void Deprime_Image(struct Make_Boton Bot_Imp); + void Imprime_Boton(int D_Bord, struct Make_Boton Bot_Imp); + + char True_Push = OFF, // Parametros para el TRUE_PUSH + Push = OFF; // PRESION REAL !!! + void far *arrow; // YA !!! + + int Secuencias, *n_Botones_Secuencia; + char memoria_asignada = 0;//, vez = 0; + + struct Make_Boton far *Botones; // Puntero a estructura + + +/**/ +/* Control del Raton */ +/**/ + + void Carga_Puntero(void); + int Carga_Puntero_Animado(void); + + void *Pantalla; + unsigned char *P_Raton1, *P_Raton2, *P_Raton3, *P_Raton4; + char raton=0, // Indica si hay un Raton = 1 + PunteroRaton=0; // Se modifica el puntero ? + + int x_raton=50, y_raton=50, // Tras Espera_Tecla_o_Raton(); devuelve + dir_raton [32+32]; // las coordenadas y botones pulsados... + + + unsigned char BLANCO = 255, GRIS_CLARO = 253, NEGRO = 240, UNKNOW = 249, AZUL = 250; + +////////////////////////////////////////////////////////////////////////////// +/////////////////////////>>>> Inicio del codigo <<<<<='0' && ch<='9') numero= (numero*10+ch-48); + ch=fgetc(fichero); + } + Secuencias = numero; + if (( n_Botones_Secuencia = (int *) malloc( sizeof(int)*Secuencias ) ) == NULL) { + printf("\nNo Hay suficiente Memoria, ni para un Boton\n\n"); + return SIN_MEMORIA; + } + } + + if (ch=='!') { //Numero de Botones en la secuencia + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero= (numero*10+ch-48); + ch=fgetc(fichero); + } + temp_num = numero; + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero= (numero*10+ch-48); + ch=fgetc(fichero); + } + n_Botones_Secuencia[temp_num - 1] = numero; + + SiZe_BoToN += ( sizeof( struct Make_Boton ) * numero); + + if ( (Botones = (struct Make_Boton far *)farrealloc(Botones, SiZe_BoToN )) == NULL) { + Secuencias = temp_num; + return SIN_MEMORIA; + } + memoria_asignada = 1; + } + if (ch=='$') { //Clculos del boton + inc_Botones++; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Left = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Up = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Right =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + if(ch == '-' || ch == '-') signo = 1; + ch=fgetc(fichero); + } + if ( signo == 1 ) + Botones [inc_Botones]. Down =numero * -1; + else + Botones [inc_Botones]. Down =numero; + signo = 0; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Cdf =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Cb1 =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Cb2 =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Ab =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Pb =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Isc =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Botones [inc_Botones]. Sc =numero; + + } + + if (ch!=EOF) ch=fgetc(fichero); + } + + return OK; +} + + +void despliega_datos(void){ + int SeCa; + + clrscr(); + for(int SeC=0; SeC<=Secuencias; SeC++){ + SeCa = P_Sec(SeC); + for(int Sec_S=0; Sec_S 0) + { + puntos[1] = 120; + puntos[2] = 300; + } else { + puntos[1] = 60; + puntos[2] = 240; + } + setlinestyle(0, 1, NORM_WIDTH); + setcolor(Bot_Imp.Cb1); + setfillstyle(SOLID_FILL, Bot_Imp.Cb1); + for ( puntos[0] = 0; puntos[0] < Ab; puntos[0]++ ) + arc( Bot_Imp.Left, Bot_Imp.Up, puntos[1]+puntos[0], puntos[2]+puntos[0], Bot_Imp.Right - puntos[0]); + setcolor(Bot_Imp.Cb2); + setfillstyle(SOLID_FILL, Bot_Imp.Cb2); + for ( puntos[0] = 0; puntos[0] < Ab; puntos[0]++ ) + arc( Bot_Imp.Left, Bot_Imp.Up, puntos[2]+puntos[0], puntos[1]+puntos[0], Bot_Imp.Right - puntos[0]); + + if(D_Bord) { + setcolor(Bot_Imp.Cdf); + setfillstyle(SOLID_FILL, Bot_Imp.Cdf); + pieslice( Bot_Imp.Left, Bot_Imp.Up, 0, 360, Bot_Imp.Right - Ab); + } + + if( Ab >= 2 ) { + setcolor( NEGRO ); + setfillstyle(EMPTY_FILL, Bot_Imp.Cdf); + circle( Bot_Imp.Left, Bot_Imp.Up, Bot_Imp.Right); + } + + } else { + + if(Bot_Imp.Pb == 2) { + puntos[0] = Bot_Imp.Left; puntos[1] = Bot_Imp.Up; + puntos[2] = Bot_Imp.Right; puntos[3] = Bot_Imp.Up; + puntos[4] = Bot_Imp.Right; puntos[5] = Bot_Imp.Down; + puntos[6] = (Bot_Imp.Right-Ab); puntos[7] = (Bot_Imp.Down-Ab); + puntos[8] = (Bot_Imp.Right-Ab); puntos[9] = (Bot_Imp.Up+Ab); + puntos[10] = (Bot_Imp.Left+Ab); puntos[11] = (Bot_Imp.Up+Ab); + puntos[12] = Bot_Imp.Left; puntos[13] = Bot_Imp.Up; + } else { + puntos[0] = Bot_Imp.Left; puntos[1] = Bot_Imp.Up; + puntos[2] = Bot_Imp.Right; puntos[3] = Bot_Imp.Up; + puntos[4] = Bot_Imp.Right - Ab; puntos[5] = Bot_Imp.Up + Ab; + puntos[6] = Bot_Imp.Left + Ab; puntos[7] = Bot_Imp.Up + Ab; + puntos[8] = Bot_Imp.Left + Ab; puntos[9] = Bot_Imp.Down - Ab; + puntos[10] = Bot_Imp.Left; puntos[11] = Bot_Imp.Down; + puntos[12] = Bot_Imp.Left; puntos[13] = Bot_Imp.Up; + } + + setcolor(Bot_Imp.Cb1); + setfillstyle(SOLID_FILL, Bot_Imp.Cb1); + setlinestyle(0, 1, NORM_WIDTH); + fillpoly(7, puntos); + + if(Bot_Imp.Pb == 2) { + puntos[0] = Bot_Imp.Left+Ab; puntos[1] = Bot_Imp.Up+Ab; + puntos[2] = Bot_Imp.Left+Ab; puntos[3] = Bot_Imp.Down-Ab; + puntos[4] = Bot_Imp.Right-Ab; puntos[5] = Bot_Imp.Down-Ab; + puntos[6] = Bot_Imp.Right; puntos[7] = Bot_Imp.Down; + puntos[8] = Bot_Imp.Left; puntos[9] = Bot_Imp.Down; + puntos[10] = Bot_Imp.Left; puntos[11] = Bot_Imp.Up; + puntos[12] = Bot_Imp.Left+Ab; puntos[13] = Bot_Imp.Up+Ab; + } else { + puntos[0] = Bot_Imp.Right; puntos[1] = Bot_Imp.Up; + puntos[2] = Bot_Imp.Right; puntos[3] = Bot_Imp.Down; + puntos[4] = Bot_Imp.Left; puntos[5] = Bot_Imp.Down; + puntos[6] = Bot_Imp.Left+Ab; puntos[7] = Bot_Imp.Down-Ab; + puntos[8] = Bot_Imp.Right-Ab; puntos[9] = Bot_Imp.Down-Ab; + puntos[10] = Bot_Imp.Right-Ab; puntos[11] = Bot_Imp.Up+Ab; + puntos[12] = Bot_Imp.Right; puntos[13] = Bot_Imp.Up; + } + + setcolor(Bot_Imp.Cb2); + setfillstyle(SOLID_FILL, Bot_Imp.Cb2); + setlinestyle(0, 1, NORM_WIDTH); + fillpoly(7, puntos); + + if(D_Bord) { + setcolor(Bot_Imp.Cdf); + setfillstyle(SOLID_FILL, Bot_Imp.Cdf); + bar(Bot_Imp.Left+Ab+1, Bot_Imp.Up+Ab+1, Bot_Imp.Right-Ab-1, Bot_Imp.Down-Ab-1); + } + + if( Ab >= 2 ) { + setcolor( NEGRO ); + setfillstyle(EMPTY_FILL, Bot_Imp.Cdf); + rectangle(Bot_Imp.Left, Bot_Imp.Up, Bot_Imp.Right, Bot_Imp.Down); + } +} + +} + +void Imprime_Boton_i(struct Make_Boton Bot_Imp){ + + int puntos[14]; + unsigned char Ab = Bot_Imp.Ab; + unsigned long size; + +if ( Bot_Imp.Down < 0 ) + { + if(Bot_Imp.Pb > 0) + { + puntos[1] = 120; + puntos[2] = 300; + } else { + puntos[1] = 60; + puntos[2] = 240; + } + setlinestyle(0, 1, NORM_WIDTH); + setcolor(Bot_Imp.Cb1); + setfillstyle(SOLID_FILL, Bot_Imp.Cb1); + for ( puntos[0] = 0; puntos[0] < Ab; puntos[0]++ ) + arc( Bot_Imp.Left, Bot_Imp.Up, puntos[1]+puntos[0], puntos[2]+puntos[0], Bot_Imp.Right - puntos[0]); + setcolor(Bot_Imp.Cb2); + setfillstyle(SOLID_FILL, Bot_Imp.Cb2); + for ( puntos[0] = 0; puntos[0] < Ab; puntos[0]++ ) + arc( Bot_Imp.Left, Bot_Imp.Up, puntos[2]+puntos[0], puntos[1]+puntos[0], Bot_Imp.Right - puntos[0]); + + if( Ab >= 2 ) { + setcolor( NEGRO ); + setfillstyle(EMPTY_FILL, Bot_Imp.Cdf); + circle( Bot_Imp.Left, Bot_Imp.Up, Bot_Imp.Right); + } + + } else { + + if(Bot_Imp.Pb == 2) { + puntos[0] = Bot_Imp.Left; puntos[1] = Bot_Imp.Up; + puntos[2] = Bot_Imp.Right; puntos[3] = Bot_Imp.Up; + puntos[4] = Bot_Imp.Right; puntos[5] = Bot_Imp.Down; + puntos[6] = (Bot_Imp.Right-Ab); puntos[7] = (Bot_Imp.Down-Ab); + puntos[8] = (Bot_Imp.Right-Ab); puntos[9] = (Bot_Imp.Up+Ab); + puntos[10] = (Bot_Imp.Left+Ab); puntos[11] = (Bot_Imp.Up+Ab); + puntos[12] = Bot_Imp.Left; puntos[13] = Bot_Imp.Up; + } else { + puntos[0] = Bot_Imp.Left; puntos[1] = Bot_Imp.Up; + puntos[2] = Bot_Imp.Right; puntos[3] = Bot_Imp.Up; + puntos[4] = Bot_Imp.Right - Ab; puntos[5] = Bot_Imp.Up + Ab; + puntos[6] = Bot_Imp.Left + Ab; puntos[7] = Bot_Imp.Up + Ab; + puntos[8] = Bot_Imp.Left + Ab; puntos[9] = Bot_Imp.Down - Ab; + puntos[10] = Bot_Imp.Left; puntos[11] = Bot_Imp.Down; + puntos[12] = Bot_Imp.Left; puntos[13] = Bot_Imp.Up; + } + + setcolor(Bot_Imp.Cb2); + setfillstyle(SOLID_FILL, Bot_Imp.Cb2); + setlinestyle(0, 1, NORM_WIDTH); + fillpoly(7, puntos); + + /* calculate the size of the image */ + size = JD_imagesize(Bot_Imp.Left+Ab+1, Bot_Imp.Up+Ab+1, Bot_Imp.Right-Ab-1, Bot_Imp.Down-Ab-1); + + /* allocate memory to hold the image */ + if (True_Push == ON) + if ( (arrow = farmalloc(size)) == NULL ) Push = OFF; else { + /* grab the image */ + getimage(Bot_Imp.Left+Ab+1, Bot_Imp.Up+Ab+1, Bot_Imp.Right-Ab-1, Bot_Imp.Down-Ab-1, arrow); + } + + if(Push == ON && True_Push == ON ) { + if(Bot_Imp.Pb == 2) { + putimage(Bot_Imp.Left+1, Bot_Imp.Up+(Ab*2), arrow, COPY_PUT); + } else { + putimage(Bot_Imp.Left+(Ab*2), Bot_Imp.Up+(Ab*2), arrow, COPY_PUT); + } + } else { + if(Bot_Imp.Pb == 2) { + puntos[0] = Bot_Imp.Left+Ab; puntos[1] = Bot_Imp.Up+Ab; + puntos[2] = Bot_Imp.Left+Ab; puntos[3] = Bot_Imp.Down-Ab; + puntos[4] = Bot_Imp.Right-Ab; puntos[5] = Bot_Imp.Down-Ab; + puntos[6] = Bot_Imp.Right; puntos[7] = Bot_Imp.Down; + puntos[8] = Bot_Imp.Left; puntos[9] = Bot_Imp.Down; + puntos[10] = Bot_Imp.Left; puntos[11] = Bot_Imp.Up; + puntos[12] = Bot_Imp.Left+Ab; puntos[13] = Bot_Imp.Up+Ab; + } else { + puntos[0] = Bot_Imp.Right; puntos[1] = Bot_Imp.Up; + puntos[2] = Bot_Imp.Right; puntos[3] = Bot_Imp.Down; + puntos[4] = Bot_Imp.Left; puntos[5] = Bot_Imp.Down; + puntos[6] = Bot_Imp.Left+Ab; puntos[7] = Bot_Imp.Down-Ab; + puntos[8] = Bot_Imp.Right-Ab; puntos[9] = Bot_Imp.Down-Ab; + puntos[10] = Bot_Imp.Right-Ab; puntos[11] = Bot_Imp.Up+Ab; + puntos[12] = Bot_Imp.Right; puntos[13] = Bot_Imp.Up; + } + setcolor(Bot_Imp.Cb1); + setfillstyle(SOLID_FILL, Bot_Imp.Cb1); + setlinestyle(0, 1, NORM_WIDTH); + fillpoly(7, puntos); + + } + + if( Ab >= 2 ) { + setcolor( NEGRO ); + setfillstyle(EMPTY_FILL, Bot_Imp.Cdf); + rectangle(Bot_Imp.Left, Bot_Imp.Up, Bot_Imp.Right, Bot_Imp.Down); + } +} + +} + +// +// + +void Deprime_Image(struct Make_Boton Bot_Imp){ + putimage(Bot_Imp.Left+Bot_Imp.Ab+1, Bot_Imp.Up+Bot_Imp.Ab+1, arrow, COPY_PUT); + farfree(arrow); +} + +// +// + +int Imprime_Estaticos(int Sec_st, char *file){ + + char ch, Relleno = 1, buffer[160]; + unsigned char fuente, size, orientacion, color, + signo=0; + unsigned int /*numero, */ temp_num, temp_b; + int numero; + + int secuencia_activa=-1, x, y; + + struct Make_Boton Bot_Static; + + FILE* fichero; // Fichero con datos del obj. + + if ( (fichero=fopen(file,"r"))==NULL ) return ERROR_ABRIENDO; + + ch=fgetc(fichero); //Lee el primer caracter + while (ch!=EOF) { //Lee hasta fin de fichero + + if (ch=='*') //Linea con comentario + while (ch!=EOL && ch!=EOF) ch=fgetc(fichero); + + if (ch=='') { //Numero de Botones en la secuencia + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + secuencia_activa = numero; + } + + if (ch=='&' && secuencia_activa == Sec_st) { //Clculos del boton estatico + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Left = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Up = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Right =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + if(ch == '-' || ch == '-') signo = 1; + ch=fgetc(fichero); + } + if ( signo==1 ) + Bot_Static.Down =numero * -1; + else + Bot_Static.Down =numero; + signo = 0; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Cdf =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Cb1 =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Cb2 =numero; + + numero=0; Relleno = 1; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; else + if(ch == '-' || ch == '-') Relleno = 0; + ch=fgetc(fichero); + } + Bot_Static.Ab =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + Bot_Static.Pb =numero; + Imprime_Boton(Relleno, Bot_Static); + } + if (ch=='|' && secuencia_activa == Sec_st) { //Clculos del texto + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + x = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + y = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fuente = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + size = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + orientacion = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + color = numero; + + buffer[0] = '\0'; + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',' && numero<150 ) { + ch=fgetc(fichero); + if(ch!=',') { buffer[numero] = ch; numero++; } + } + + buffer[numero] = '\0'; + setcolor(color); + /* select the registered font */ + settextstyle( fuente, orientacion, size); + outtextxy(x, y, buffer); + + + } + + + if (ch!=EOF) ch=fgetc(fichero); + } + + if( fclose(fichero) != 0 ) return ERROR_CERRANDO; + return OK; +} + +void Imprime_Secuencia(int Sec_num){ + int psec = P_Sec(Sec_num-1); + for(int i=0; in_Botones_Secuencia[Sec_num-1] ) return; + + Boton--; + + if( Color < 0 ) + { + Imprime_Boton( 0, Botones[psec+Boton] ); + return; + } + +if ( Botones[psec+Boton].Down < 0 ) + { + + setlinestyle(0, 1, NORM_WIDTH); + setcolor(Color); + setfillstyle(SOLID_FILL, Color); + for ( puntos[0] = 0; puntos[0] < Botones[psec+Boton].Ab; puntos[0]++ ) + circle( Botones[psec+Boton].Left, Botones[psec+Boton].Up, Botones[psec+Boton].Right - puntos[0]); + + if( Botones[psec+Boton].Ab >= 2 ) { + setcolor( NEGRO ); + setfillstyle(EMPTY_FILL, Botones[psec+Boton].Cdf); + circle( Botones[psec+Boton].Left, Botones[psec+Boton].Up, Botones[psec+Boton].Right); + } + + } else { + + puntos[0] = Botones[psec+Boton].Left; puntos[1] = Botones[psec+Boton].Up; + puntos[2] = Botones[psec+Boton].Right; puntos[3] = Botones[psec+Boton].Up; + puntos[4] = Botones[psec+Boton].Right; puntos[5] = Botones[psec+Boton].Down; + puntos[6] = (Botones[psec+Boton].Right-Botones[psec+Boton].Ab); puntos[7] = (Botones[psec+Boton].Down-Botones[psec+Boton].Ab); + puntos[8] = (Botones[psec+Boton].Right-Botones[psec+Boton].Ab); puntos[9] = (Botones[psec+Boton].Up+Botones[psec+Boton].Ab); + puntos[10] = (Botones[psec+Boton].Left+Botones[psec+Boton].Ab); puntos[11] = (Botones[psec+Boton].Up+Botones[psec+Boton].Ab); + puntos[12] = Botones[psec+Boton].Left; puntos[13] = Botones[psec+Boton].Up; + + setcolor(Color); + setfillstyle(SOLID_FILL, Color); + setlinestyle(0, 1, NORM_WIDTH); + fillpoly(7, puntos); + + puntos[0] = Botones[psec+Boton].Left+Botones[psec+Boton].Ab; puntos[1] = Botones[psec+Boton].Up+Botones[psec+Boton].Ab; + puntos[2] = Botones[psec+Boton].Left+Botones[psec+Boton].Ab; puntos[3] = Botones[psec+Boton].Down-Botones[psec+Boton].Ab; + puntos[4] = Botones[psec+Boton].Right-Botones[psec+Boton].Ab; puntos[5] = Botones[psec+Boton].Down-Botones[psec+Boton].Ab; + puntos[6] = Botones[psec+Boton].Right; puntos[7] = Botones[psec+Boton].Down; + puntos[8] = Botones[psec+Boton].Left; puntos[9] = Botones[psec+Boton].Down; + puntos[10] = Botones[psec+Boton].Left; puntos[11] = Botones[psec+Boton].Up; + puntos[12] = Botones[psec+Boton].Left+Botones[psec+Boton].Ab; puntos[13] = Botones[psec+Boton].Up+Botones[psec+Boton].Ab; + + setcolor(Color); + setfillstyle(SOLID_FILL, Color); + setlinestyle(0, 1, NORM_WIDTH); + fillpoly(7, puntos); + + if( Botones[psec+Boton].Ab >= 2 ) { + setcolor( NEGRO ); + setfillstyle(EMPTY_FILL, Botones[psec+Boton].Cdf); + rectangle(Botones[psec+Boton].Left, Botones[psec+Boton].Up, Botones[psec+Boton].Right, Botones[psec+Boton].Down); + } +} + +} + + +int Comprueba_Secuencia(int Sec_num, int (far *UserPointer)(void) ){ + + char key, key2=0; + int i, Pulso = 0; + int psec = P_Sec(Sec_num-1); + + + + + + if ( + ( (UserPointer == NULL) ? Espera_Tecla_o_Raton() : UserPointer() ) == 0 + ) { + + if ( (key = getch())==0) key2 = getch(); + for(i=0; i= Botones[psec+i].Left) && (x_raton <= Botones[psec+i].Right) && + (y_raton >= Botones[psec+i].Up) && (y_raton <= Botones[psec+i].Down) ) { + + Pulso = i + 1; + Push = ON; + Imprime_Boton_i(Botones[psec+Pulso-1]); + Anclar_Raton(); + if( Push == ON && True_Push == ON ) Deprime_Image(Botones[psec+Pulso-1]); + Push = OFF; + Imprime_Boton(0, Botones[psec+Pulso-1]); + return Pulso; + } + + return (0); +} + + +void Anclar_Raton(void){ + + union REGS io; + io.x.ax = 3; + do { + int86(0x33, &io, &io); + } while( (io.x.bx & 1)==1 || ((io.x.bx >> 1) & 1)==1); +} + + +int Espera_TeclaRaton(void){ + +// inicializa_raton_grafico(0, 0, 624, 464); +// char boton_izq, boton_der; + char Que; + activa_raton(); + + union REGS io; + io.x.ax = 3; + + do{ + int86(0x33, &io, &io); // lee posicin y estados del botn +// boton_izq = io.x.bx & 1; +// boton_der = (io.x.bx >> 1) & 1; + x_raton = io.x.cx; + y_raton = io.x.dx; + + }while( (io.x.bx & 1) == 0 && ((io.x.bx >> 1) & 1) == 0 && !MB_TeclaPulsada() ); + + + + + ///////////////////////////////////////// + // RETURN Derecho Izquierdo // + // // + // 0 0 0 // + // 1 1 0 // + // 2 0 1 // + // 3 1 1 // + // // + ///////////////////////////////////////// + + + if ( ((io.x.bx >> 1) & 1)==0 && (io.x.bx & 1)==0 ) Que = 0; + if ( ((io.x.bx >> 1) & 1)==1 && (io.x.bx & 1)==0 ) Que = 1; + if ( ((io.x.bx >> 1) & 1)==0 && (io.x.bx & 1)==1 ) Que = 2; + if ( ((io.x.bx >> 1) & 1)==1 && (io.x.bx & 1)==1 ) Que = 3; + + desactiva_raton(); + return Que; +} + + + + +void inicializa_raton_grafico(int x1, int y1, int x2, int y2) +{ + +int px = x_raton, py = y_raton; + + struct SREGS seg; + union REGS ent, sal; + long dir; + + ent.x.ax = 0; + int86(0x33, &ent, &sal); /* averigua si hay ratn conectado */ + + raton = sal.x.ax; /* indica a la variable global el estado + del raton */ + + if(raton!=0) { + + + ent.x.ax = 15; + ent.x.cx = 5; + ent.x.dx = 11; + int86(0x33, &ent, &sal); /* fija la razn mickey/pixel */ + + ent.x.ax = 7; + ent.x.cx = x1; + ent.x.dx = x2; + int86(0x33, &ent, &sal); /* fija la posicin mx. y mn. horizontal */ + + ent.x.ax = 8; + ent.x.cx = y1; + ent.x.dx = y2; + int86(0x33, &ent, &sal); /* fija la posicin mx. y mn. vertical */ + + if ( PunteroRaton == 100 ) { + if ( Carga_Puntero_Animado() ) { PunteroRaton = 1; Carga_Puntero(); } +} else Carga_Puntero(); + + if( PunteroRaton != 100 && PunteroRaton != 0) { + dir = (long)dir_raton; + ent.x.ax = 9; + ent.x.bx = 0; + ent.x.cx = 0; + ent.x.dx = (int) dir; + seg.es = (int) (dir >> 16); + int86x(0x33, &ent, &sal, &seg); /* asigna un cursor diferente */ + } + + ent.x.ax = 4; + ent.x.cx = px; + x_raton=ent.x.cx >> 1; + ent.x.dx = py; + y_raton=ent.x.dx; + int86(0x33, &ent, &sal); /* fija la posicin del ratn */ + + ent.x.ax = 1; + +if( PunteroRaton != 100 ) + int86(0x33, &ent, &sal); /* muestra el puntero del ratn */ + + desactiva_raton(); + + } +} + +void activa_raton(void) +{ + union REGS ent; + + ent.x.ax = 1; + int86(0x33, &ent, &ent); +} + +void desactiva_raton(void) +{ + union REGS ent; + + ent.x.ax = 2; + int86(0x33, &ent, &ent); +} + + + + + +void Initialize(int GraphDriver, int GraphMode) +{ + int errorcode; + +/* + if( (errorcode = registerbgifont(SMALL_FONT)) < 0 ) + ErrorOccurred(errorcode); +*/ + + /* report any registration errors */ +/* if ( (errorcode = registerbgidriver(EGAVGA_driver) ) < 0) + ErrorOccurred(errorcode); +*/ + /* initialize graphics and local variables */ + initgraph( &GraphDriver, &GraphMode, "" ); + + /* read result of initialization */ + errorcode = graphresult(); + if (errorcode != grOk) /* an error occurred */ + ErrorOccurred(errorcode); + + +} + +void ErrorOccurred(int errorcode) { + printf("Graphics error: %s\n", grapherrormsg(errorcode)); + printf("Press any key to halt:"); + getch(); + exit(1); /* terminate with an error code */ +} + +void Libera_Memoria(void){ + if ( memoria_asignada == 1 ) { // Libera antiguos datos + free(n_Botones_Secuencia); + farfree(Botones); + memoria_asignada = 0; + } +} + + +int Espera_Tecla_o_Raton(void){ + +// inicializa_raton_grafico(0, 0, 624, 464); +char Vez_Raton; int x, y; +char boton_izq=0, boton_der=0; +char Que; +// static char vez = 0; + +Vez_Raton = 0; + +union REGS io; + +if ( PunteroRaton!=100 ){ return Espera_TeclaRaton(); } + +if(raton!=0) { + desactiva_raton(); + io.x.ax = 3; +} + + do{ + if(raton!=0) { + int86(0x33, &io, &io); // lee posicin y estados del botn + boton_izq = io.x.bx & 1; + boton_der = (io.x.bx >> 1) & 1; + if ( x_raton != io.x.cx || y_raton != io.x.dx ) { + if(Vez_Raton==0) Vez_Raton = 1; else + putimage(x_raton, y_raton, Pantalla, COPY_PUT); + x_raton = io.x.cx; + y_raton = io.x.dx; + getimage(x_raton, y_raton, x_raton+21, y_raton+21, Pantalla); + + if( Vez_Raton ==14 ) { Vez_Raton = 1; } + if( Vez_Raton ==13 ) { Vez_Raton =14; // putimage(x_raton, y_raton, P_Raton2, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton2[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton2[x+y*20]); + } else + if( Vez_Raton ==12 ) { Vez_Raton =13; // putimage(x_raton, y_raton, P_Raton2, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton2[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton2[x+y*20]); + } else + if( Vez_Raton ==11 ) { Vez_Raton =12; // putimage(x_raton, y_raton, P_Raton3, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton3[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton3[x+y*20]); + } else + if( Vez_Raton ==10 ) { Vez_Raton =11; // putimage(x_raton, y_raton, P_Raton3, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton3[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton3[x+y*20]); + } else + if( Vez_Raton == 9 ) { Vez_Raton =10; // putimage(x_raton, y_raton, P_Raton4, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton4[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton4[x+y*20]); + } else + if( Vez_Raton == 8 ) { Vez_Raton = 9; // putimage(x_raton, y_raton, P_Raton4, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton4[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton4[x+y*20]); + } else + if( Vez_Raton == 7 ) { Vez_Raton = 8; // putimage(x_raton, y_raton, P_Raton4, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton4[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton4[x+y*20]); + } else + if( Vez_Raton == 6 ) { Vez_Raton = 7; // putimage(x_raton, y_raton, P_Raton3, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton3[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton3[x+y*20]); + } else + if( Vez_Raton == 5 ) { Vez_Raton = 6; // putimage(x_raton, y_raton, P_Raton3, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton3[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton3[x+y*20]); + } else + if( Vez_Raton == 4 ) { Vez_Raton = 5; // putimage(x_raton, y_raton, P_Raton2, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton2[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton2[x+y*20]); + } else + if( Vez_Raton == 3 ) { Vez_Raton = 4; // putimage(x_raton, y_raton, P_Raton2, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton2[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton2[x+y*20]); + } else + if( Vez_Raton == 2 ) { Vez_Raton = 3; // putimage(x_raton, y_raton, P_Raton1, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton1[x+y*20] != 253) putpixel(x_raton + x, y_raton + y, P_Raton1[x+y*20]); + + } + if( Vez_Raton == 1 ) { Vez_Raton = 2; // putimage(x_raton, y_raton, P_Raton1, 0); + for(y=0; y<20; y++) + for(x=0; x<20; x++) + if( P_Raton1[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton1[x+y*20]); + + } + +/* + if( Vez_Raton == 1 ) { Vez_Raton = 1; + + for(y=0; y<=20; y++) + for(x=0; x<=20; x++) + if( P_Raton1[x+y*20] != 253 ) putpixel(x_raton + x, y_raton + y, P_Raton1[4+x+y*20]); + putimage(x_raton, y_raton, P_Raton1, 0); + + } +*/ + } + } + }while( boton_izq == 0 && boton_der == 0 && !MB_TeclaPulsada() ); + +if( raton!=0 ) + putimage(x_raton, y_raton, Pantalla, COPY_PUT); + + + + ///////////////////////////////////////// + // RETURN Derecho Izquierdo // + // // + // 0 0 0 // + // 1 1 0 // + // 2 0 1 // + // 3 1 1 // + // // + ///////////////////////////////////////// + + + if ( boton_der==0 && boton_izq==0 ) Que = 0; + if ( boton_der==1 && boton_izq==0 ) Que = 1; + if ( boton_der==0 && boton_izq==1 ) Que = 2; + if ( boton_der==1 && boton_izq==1 ) Que = 3; +/* +if(raton!=0) + activa_raton(); +*/ + return Que; +} + + +unsigned long JD_imagesize(int left, int top, int right, int bottom) { + + unsigned long X_width, Y_width; + + X_width= ( (left > right) ? (left - right + 1) : ( right - left + 1) ); + Y_width= ( ( top > bottom) ? ( top - bottom + 1) : (bottom - top + 1) ); + + return (X_width * Y_width + 4); + +}; + + +void Libera_Raton_Animado(void){ + + +if ( PunteroRaton == 100 ) { + free(P_Raton1); + free(P_Raton2); + free(P_Raton3); + free(P_Raton4); + free(Pantalla); +} + +} + +void Carga_Puntero(void){ + + struct SREGS seg; + union REGS ent, sal; + long dir; + + switch( PunteroRaton ) { + + case 0: + break; + case 1: + dir_raton [ 0] = 0x007F; /* 1 1 1 1 1 1 1*/ + dir_raton [ 1] = 0x00FF; /* 1 1 1 1 1 1 1 1*/ + dir_raton [ 2] = 0x01FF; /* 1 1 1 1 1 1 1 1 1*/ + dir_raton [ 3] = 0x01FF; /* 1 1 1 1 1 1 1 1 1*/ + dir_raton [ 4] = 0x00FF; /* 1 1 1 1 1 1 1 1*/ + dir_raton [ 5] = 0x007F; /* 1 1 1 1 1 1 1*/ + dir_raton [ 6] = 0x18FF; /* 1 1 1 1 1 1 1 1 1 1*/ + + dir_raton [ 7] = 0x800F; /*1 1 1 1 1*/ + dir_raton [ 8] = 0x8083; /*1 1 1*/ + dir_raton [ 9] = 0x8001; /*1 1*/ + dir_raton [10] = 0xF810; /*1 1 1 1 1 1 1*/ + dir_raton [11] = 0x8810; /*1 1 1 1*/ + dir_raton [12] = 0x8811; /*1 1 1 1*/ + dir_raton [13] = 0x8003; /*1 1 1*/ + dir_raton [14] = 0x8007; /*1 1 1 1*/ + dir_raton [15] = 0x800F; /*1 1 1 1 1*/ + + dir_raton [16] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [17] = 0x7E00; /*0 0 0 0 0 0 0 0 0 0*/ + dir_raton [18] = 0x7C00; /*0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [19] = 0x7C00; /*0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [20] = 0x7E00; /*0 0 0 0 0 0 0 0 0 0*/ + dir_raton [21] = 0x6700; /*0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [22] = 0x0200; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + + dir_raton [23] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [24] = 0x3E70; /*0 0 0 0 0 0 0 0*/ + dir_raton [25] = 0x0248; /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [26] = 0x0244; /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [27] = 0x0242; /*0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [28] = 0x2244; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [29] = 0x2248; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [30] = 0x3E70; /*0 0 0 0 0 0 0 0*/ + dir_raton [31] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir = (long)dir_raton; + ent.x.ax = 9; + ent.x.bx = 0; + ent.x.cx = 0; + ent.x.dx = (int) dir; + seg.es = (int) (dir >> 16); + int86x(0x33, &ent, &sal, &seg); /* asigna un cursor diferente */ + + break; + case 2: // 2 1 0 2 1 0 2 1 0 2 1 0 + dir_raton [ 0] = 0xF11F; /*1 1 1 1 1 1 1 1 1 1*/ + dir_raton [ 1] = 0xF01F; /*1 1 1 1 1 1 1 1 1*/ + dir_raton [ 2] = 0xF01F; /*1 1 1 1 1 1 1 1 1*/ + dir_raton [ 3] = 0xF01F; /*1 1 1 1 1 1 1 1 1*/ + dir_raton [ 4] = 0xF01F; /*1 1 1 1 1 1 1 1 1*/ + dir_raton [ 5] = 0x0001; /* 1*/ + dir_raton [ 6] = 0x0101; /* 1 1*/ + dir_raton [ 7] = 0x0271; /* 1 1 1 1*/ + dir_raton [ 8] = 0x7773; /*1 1 1 1 1 1 1 1*/ + dir_raton [ 9] = 0x0271; /* 1 1 1 1*/ + dir_raton [10] = 0x0101; /* 1 1*/ + dir_raton [11] = 0x0001; /* 1*/ + dir_raton [12] = 0xF01F; /*1 1 1 1 1 1 1 1 1*/ + dir_raton [13] = 0xF01F; /*1 1 1 1 1 1 1 1 1*/ + dir_raton [14] = 0xF01F; /*1 1 1 1 1 1 1 1 1*/ + dir_raton [15] = 0xF11F; /*1 1 1 1 1 1 1 1 1 1*/ + // 2 1 0 2 1 0 2 1 0 2 1 0 + dir_raton [16] = 0x0440; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [17] = 0x06C0; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [18] = 0x06C0; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [19] = 0x06C0; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [20] = 0x06C0; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [21] = 0x06C0; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [22] = 0xFC7E; /* 0 0 0 0*/ + dir_raton [23] = 0x7C7C; /*0 0 0 0 0 0 0 0*/ + dir_raton [24] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [25] = 0x7C7C; /*0 0 0 0 0 0 0 0*/ + dir_raton [26] = 0xFC7E; /* 0 0 0 0*/ + dir_raton [27] = 0x06C0; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [28] = 0x06C0; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [29] = 0x06C0; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [30] = 0x06C0; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [31] = 0x0440; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir = (long)dir_raton; + ent.x.ax = 9; + ent.x.bx = 0; + ent.x.cx = 0; + ent.x.dx = (int) dir; + seg.es = (int) (dir >> 16); + int86x(0x33, &ent, &sal, &seg); /* asigna un cursor diferente */ + + + break; + case 3: // 2 1 0 2 1 0 2 1 0 2 1 0 + dir_raton [ 0] = 0xFFFF; /*1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1*/ + dir_raton [ 1] = 0xFFFF; /*1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1*/ + dir_raton [ 2] = 0xFFFF; /*1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1*/ + dir_raton [ 3] = 0xFFFF; /*1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1*/ + dir_raton [ 4] = 0xCFF3; /*1 1 1 1 1 1 1 1 1 1 1 1*/ + dir_raton [ 5] = 0xC7E3; /*1 1 1 1 1 1 1 1 1 1*/ + dir_raton [ 6] = 0x03C0; /* 1 1 1 1 */ + dir_raton [ 7] = 0x0180; /* 1 1 */ + dir_raton [ 8] = 0x0000; /* */ + dir_raton [ 9] = 0x0180; /* 1 1 */ + dir_raton [10] = 0x03C0; /* 1 1 1 1 */ + dir_raton [11] = 0xC7E3; /*1 1 1 1 1 1 1 1 1 1*/ + dir_raton [12] = 0xCFF3; /*1 1 1 1 1 1 1 1 1 1 1 1*/ + dir_raton [13] = 0xFFFF; /*1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1*/ + dir_raton [14] = 0xFFFF; /*1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1*/ + dir_raton [15] = 0xFFFF; /*1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1*/ + // 2 1 0 2 1 0 2 1 0 2 1 0 + dir_raton [16] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [17] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [18] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [19] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [20] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [21] = 0x1008; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [22] = 0x1818; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [23] = 0x7C3E; /*0 0 0 0 0 0*/ + dir_raton [24] = 0x7E7E; /*0 0 0 0*/ + dir_raton [25] = 0x7C3E; /*0 0 0 0 0 0*/ + dir_raton [26] = 0x1818; /*0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [27] = 0x1008; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [28] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [29] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [30] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir_raton [31] = 0x0000; /*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0*/ + dir = (long)dir_raton; + ent.x.ax = 9; + ent.x.bx = 0; + ent.x.cx = 0; + ent.x.dx = (int) dir; + seg.es = (int) (dir >> 16); + int86x(0x33, &ent, &sal, &seg); /* asigna un cursor diferente */ + + + break; + }; + +}; + +int Carga_Puntero_Animado(void) { + + +// char *P_Raton; +if( ((P_Raton1 = (unsigned char *)malloc( ( 22 * 22 ) ))==NULL) || + ((P_Raton2 = (unsigned char *)malloc( ( 22 * 22 ) ))==NULL) || + ((P_Raton3 = (unsigned char *)malloc( ( 22 * 22 ) ))==NULL) || + ((P_Raton4 = (unsigned char *)malloc( ( 22 * 22 ) ))==NULL) ) { + return 1; + } + +if ( (Pantalla = malloc( JD_imagesize(0, 0, 22, 22) )) == NULL ) + return 1; +/* +P_Raton = P_Raton1; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; +*P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; + +P_Raton = P_Raton2; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; +*P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; + +P_Raton = P_Raton3; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; +*P_Raton++ = BLANCO ; *P_Raton++ = NEGRO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; +*P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; + +P_Raton = P_Raton4; +*P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = BLANCO ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = AZUL ; *P_Raton++ = AZUL ; +*P_Raton++ = AZUL ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; *P_Raton++ = GRIS_CLARO; +*P_Raton++ = GRIS_CLARO; *P_Raton++ = UNKNOW ; *P_Raton++ = UNKNOW ; *P_Raton++ = GRIS_CLARO; +*/ +return 0; +} + + +/// int MB_TeclaPulsada(void) +/* Esta funcin mira si se ha pulsado una tecla pero SIN llamadas a la BIOS, + de forma que no se inhabilitan las interrupciones en cada llamada, cosa + que bajara mucho la calidad de reproduccin con el altavoz interno. */ +/// { +/// return ( *(unsigned *) MK_FP(0x40,0x1A) != *(unsigned *) MK_FP(0x40,0x1C) ); +/// } \ No newline at end of file diff --git a/MAKE_BOT.H b/MAKE_BOT.H new file mode 100644 index 0000000..29cdf04 --- /dev/null +++ b/MAKE_BOT.H @@ -0,0 +1,163 @@ +// +// Errores devueltos por las Funciones +// + +#define OK 1 +#define SIN_MEMORIA 5 +#define ERROR_ABRIENDO 6 +#define ERROR_CERRANDO 7 + +#define ON 1 +#define OFF 0 + +#define EOL 10 // Fin de linea + +#define MB_TeclaPulsada() ( *(unsigned *) MK_FP(0x40,0x1A) != *(unsigned *) MK_FP(0x40,0x1C) ) +// +// Funciones propias de MAKE_BOTON +// + + // + // Carga los botones del fichero *f_datos, devolviendo los + // errores indicados en #define xxxxx X + // + int carga_botones(char *f_datos); + + // + // Despliega los datos que fueron cargados. + // + // + void despliega_datos(void); + + // + // Imprime los botones estaticos de la secuencia Sec_st, en el + // fichero file. + // + int Imprime_Estaticos(int Sec_st, char *file); + + // + // Imprime los botones dinmicos de la secuencia Sec_num. + // + // + void Imprime_Secuencia(int Sec_num); + + // + // + // Imprime un borde completo de color Color sobre el boton Boton, + // de la secuencia nmero Sec_num. + // + // NOTA: + // Si color es negativo se imprimiran los bordes normales. + // + // + void Imprime_Bordes(int Sec_num, int Boton, int Color); + + // + // Comprueba la pulsacin de los botones de la secuencia Sec_num + // + // Devuelve el nmero de boton pulsado, 0 si no se pulso ninguno + // y deja en el buffer las teclas pulsadas si no corresponden con + // con las teclas asignadas a los botones. + // + int Comprueba_Secuencia(int Sec_num, int (far *UserPointer)(void) ); + + // + // Libera la memoria que ha sido asignada por Make_Boton. + // + // NOTA: + // DESPUES DE LIBERAR TODA LA MEMORIA DE M_B, NO SE DEBE + // UTILIZAR NINGUNA FUNCION SIN RECARGAR PRIMERO LOS BOTONES DE + // DE UN ARCHIVO CON ESTOS... + // + // FUNCION EXTRAIDA PARA USO COMUN, ESPECIALMENTE POR CD_out + // + void Libera_Memoria(void); + + // + // + // Si True_Push se pone a ON, cuando se pulse un boton se hundira + // realmente, pero solo si hay suficiente memoria. + // + // + extern char True_Push; + +// +// Funciones para el control de la Pantalla +// + // + // + // Sirve para averiguar el tamao necesitado por GetImage para + // obtener una imagen 256c, para los BGI no compatibles KERNEL. + // + // + unsigned long JD_imagesize(int left, int top, int right, int bottom); + + // + // + // Igual a InitGraph, pero realiza un mayor numero de comproba_ + // ciones, saliendo si ocurre algun error y mostrandolo... + // + // + void Initialize(int GraphDriver, int GraphMode); // Inicializa el Modo Grfico + +// +// Funciones para el control del Raton +// + + // + // + // Muestra el cursor del Raton. - No sirve con el raton animado + // + // + void activa_raton(void); + + // + // + // Desactiva el cursor del Raton. No sirve con el raton animado + // + // + void desactiva_raton(void); + + // + // + // Regresa con una pulsacin de tecla o la posicin en la cual + // se pulso el raton. + // + // + int Espera_Tecla_o_Raton(void); // <-> + + // + // + // Sostiene el raton hasta que se suelte el boton presionado... + // + // + void Anclar_Raton(void); + + // + // + // Libera la memoria asignada al Raton Animado. + // + // + void Libera_Raton_Animado(void); + + // + // + // Inicializa el Raton en el modo Grfico... + // + // x1, y1, x2, y2. Son los topes del RATON + // + // + // + // + void inicializa_raton_grafico(int x1, int y1, // Inicializa el Raton + int x2, int y2); // devolviendo raton = 1 + + + + extern char Push; + extern char raton; // Indica si hay un Raton = 1 + extern char PunteroRaton; // Se modifica el puntero ? + extern int x_raton, y_raton; // Tras Espera_Tecla_o_Raton(); devuelve +// extern int boton_izq, boton_der; // las coordenadas y botones pulsados... + + extern unsigned char BLANCO, GRIS_CLARO, NEGRO, UNKNOW, AZUL; diff --git a/MB_2_C.CPP b/MB_2_C.CPP new file mode 100644 index 0000000..ff52265 --- /dev/null +++ b/MB_2_C.CPP @@ -0,0 +1,493 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define OK 1 +#define SIN_MEMORIA 5 +#define ERROR_ABRIENDO 6 +#define ERROR_CERRANDO 7 + +#define EOL 10 // Fin de linea + +int Secuencias; +int *n_Botones_Secuencia; +int memoria_asignada = 0, vez = 0; + +struct Make_Boton { + int Left, Up, Right, Down; + int Cdf, Cb1, Cb2; + int Ab, Pb; + int Isc, Sc; +}; + +struct Make_Boton far *Botones; // Puntero a estructura +struct Make_Boton Bot_Static; + +int Analiza_Fichero_Dinamicos(char *f_datos); +int Analiza_Fichero_Estaticos(char *f_datos); + +void ErrorOccurred(int errorcode); + +int lee_objeto(FILE *); // Lee el objeto del disco + +FILE *MB_out; + +void main(int argc, char *argv[] ) { + + char Buffer[80]; int len; + char *ptr = argv[2]; + + if ( argc != 3 ) { + + printf("\n"); + printf("FALTAN PARAMETROS\n"); + printf("\n"); + printf(" MB2SRC [Fichero_Fuente] [Destino_CPP.CPP]\n"); + printf("\n"); + + return; + } + + /* open a file for update */ + if( (MB_out = fopen(argv[2], "w")) == NULL ) { + printf("\nError Abriendo Archivo destino"); + return; + } + fprintf( MB_out, "/***************************************************************/\n"); + fprintf( MB_out, "/* */\n"); + fprintf( MB_out, "/* Conversin de fuentes de MAKE BOTON en ASCII a fuentes */\n"); + fprintf( MB_out, "/* para CPP, que pueden ser compilados junto al programa. */\n"); + fprintf( MB_out, "/* */\n"); + fprintf( MB_out, "/***************************************************************/\n"); + fprintf( MB_out, "/* */\n"); + fprintf( MB_out, "/* MAKE BOTON es un programa realizado por Jos David Guilln */\n"); + fprintf( MB_out, "/* MB a CPP es una utilidad complementaria a Make Boton por */\n"); + fprintf( MB_out, "/* Jos David Guilln... */\n"); + fprintf( MB_out, "/* */\n"); + fprintf( MB_out, "/***************************************************************/\n"); + fprintf( MB_out, "/* */\n"); + fprintf( MB_out, "/* GRACIAS POR UTILIZAR MI SOFTWARE... */\n"); + fprintf( MB_out, "/* */\n"); + fprintf( MB_out, "/* JOS DAVID GUILLN (c) 1995 */\n"); + fprintf( MB_out, "/* */\n"); + fprintf( MB_out, "/***************************************************************/\n"); + fprintf( MB_out, "\n\n\n"); + fprintf( MB_out, "// Debe indicar el directorio exacto de la Cabecera de MAKE BOTON\n"); + fprintf( MB_out, "#include \"Make_bot.h\"\n"); + fprintf( MB_out, "#include \"stdlib.h\"\n"); + fprintf( MB_out, "#include \"alloc.h\"\n"); + fprintf( MB_out, "#include \"graphics.h\"\n"); + fprintf( MB_out, "\n\n\n"); + fprintf( MB_out, "extern int vez, memoria_asignada, Secuencias, *n_Botones_Secuencia;\n"); + fprintf( MB_out, " struct Make_Boton { int Up, Left, Down, Right; int Cdf, Cb1, Cb2; int Ab, Pb; int Isc, Sc; };\n"); + fprintf( MB_out, "extern struct Make_Boton far *Botones, Bot_Static;\n"); + + + + fprintf( MB_out, "\n\n\n"); + fprintf( MB_out, "extern void Libera_Memoria(void);"); + fprintf( MB_out, "extern void Imprime_Boton(int D_Bord, struct Make_Boton Bot_Imp);"); + fprintf( MB_out, "\n\n\n"); + fprintf( MB_out, "// Esta funcin debe ser llamada para la inicializacion de los\n"); + fprintf( MB_out, "// botones en lugar de CARGA_BOTONES(...). \n"); + + fprintf( MB_out, "// Para cargar los botones con parametro 0 y para imprimir \n"); + fprintf( MB_out, "// imprimir los estaticos con parametro [ n de secuencia ] \n"); + len = 0; + while( *ptr++ != NULL && *ptr != '.' ) len++; + strncpy( Buffer, argv[2], len+1 ); + Buffer[len+1] = '\0' ; + + fprintf( MB_out, "int Fichero_%s(char Dinamicos_Estaticos);\n\n", Buffer ); + fprintf( MB_out, "int Fichero_%s(char Dinamicos_Estaticos) {\n", Buffer ); + + fprintf( MB_out, "\n"); + + fprintf( MB_out, " switch(Dinamicos_Estaticos) {\n"); + fprintf( MB_out, "\n"); + fprintf( MB_out, " case 0:\n"); + if ( Analiza_Fichero_Dinamicos(argv[1]) != OK ) { printf( "ERROR ANALIZANDO FICHERO EN SECCION DINAMICOS..." ); return; }; + + if ( Analiza_Fichero_Estaticos(argv[1]) != OK ) { printf( "ERROR ANALIZANDO FICHERO EN SECCION ESTATICOS..." ); return; }; + fprintf( MB_out, " break;\n"); + fprintf( MB_out, " default:\n"); + fprintf( MB_out, " break;\n"); + fprintf( MB_out, " }\n"); + fprintf( MB_out, "}\n"); + + fclose(MB_out); + +} + +int Analiza_Fichero_Dinamicos(char *f_datos){ + FILE *fichero; + int error_lectura = OK; + + fprintf( MB_out, " if( vez == 0 ) {\n"); + fprintf( MB_out, " vez = 1;\n"); + fprintf( MB_out, " atexit( Libera_Memoria );\n"); + fprintf( MB_out, " }\n"); + fprintf( MB_out, " if ( memoria_asignada == 1 ) { \n"); + fprintf( MB_out, " free(n_Botones_Secuencia);\n"); + fprintf( MB_out, " farfree(Botones);\n"); + fprintf( MB_out, " memoria_asignada = 0;\n"); + fprintf( MB_out, " }\n"); + + if ( (fichero=fopen(f_datos,"r"))==NULL ) return ERROR_ABRIENDO; + + char ch/*, buffer[80]*/; + int signo,numero, temp_num, temp_b; + int inc_Botones = -1; + fprintf( MB_out, " int SiZe_BoToN = 0;\n"); + fprintf( MB_out, " if ( (Botones = (struct Make_Boton far *)farcalloc(1, sizeof( struct Make_Boton ) )) == NULL)\n"); + fprintf( MB_out, " return SIN_MEMORIA;\n"); + fprintf( MB_out, " memoria_asignada = 1;\n"); + fprintf( MB_out, "\n"); + + + ch=fgetc(fichero); //Lee el primer caracter + while (ch!=EOF) { //Lee hasta fin de fichero + if (ch=='*') //Linea con comentario + while (ch!=EOL && ch!=EOF) ch=fgetc(fichero); + + if (ch=='#') { //Numero de secuencias + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF) { + if (ch>='0' && ch<='9') numero= (numero*10+ch-48); + ch=fgetc(fichero); + } + fprintf( MB_out, " Secuencias = %d;\n", numero); + fprintf( MB_out, " if (( n_Botones_Secuencia = (int *) malloc( sizeof(int)*Secuencias ) ) == NULL) {\n"); + fprintf( MB_out, " printf(\"\\nNo Hay suficiente Memoria, ni para un Boton\\n\\n\");\n"); + fprintf( MB_out, " return SIN_MEMORIA;\n"); + fprintf( MB_out, " }\n"); + } + + if (ch=='!') { //Numero de Botones en la secuencia + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero= (numero*10+ch-48); + ch=fgetc(fichero); + } + temp_num = numero; + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero= (numero*10+ch-48); + ch=fgetc(fichero); + } +// fprintf( MB_out, " }\n"); + fprintf( MB_out, " n_Botones_Secuencia[%d - 1] = %d;\n", temp_num, numero); + fprintf( MB_out, " SiZe_BoToN += ( sizeof( struct Make_Boton ) * %d);\n", numero); + fprintf( MB_out, " if ( (Botones = (struct Make_Boton far *)farrealloc(Botones, SiZe_BoToN )) == NULL) {\n"); + fprintf( MB_out, " Secuencias = %d;\n", temp_num); + fprintf( MB_out, " return SIN_MEMORIA;\n"); + fprintf( MB_out, " }\n"); + fprintf( MB_out, " memoria_asignada = 1;\n"); + + } + if (ch=='$') { //Clculos del boton + inc_Botones++; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Botones [%d].Left = %d; ", inc_Botones, numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, "Botones [%d].Up = %d;", inc_Botones, numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, "Botones [%d]. Right = %d;", inc_Botones, numero); +// Botones [inc_Botones]. Right =numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, "Botones [%d]. Down = %d;\n", inc_Botones, numero); + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Botones [%d]. Cdf = %d;", inc_Botones, numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Botones [%d]. Cb1 = %d;", inc_Botones, numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Botones [%d]. Cb2 = %d;", inc_Botones, numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Botones [%d]. Ab = %d;", inc_Botones, numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Botones [%d]. Pb = %d;", inc_Botones, numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Botones [%d]. Isc = %d;", inc_Botones, numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Botones [%d]. Sc = %d;\n", inc_Botones, numero); + + } + + if (ch!=EOF) ch=fgetc(fichero); + } + + + + if( fclose(fichero) != 0 ) return ERROR_CERRANDO; + +// despliega_datos(); + +// while (!kbhit()); // Espera a que se pulse una tecla + + return error_lectura; +} + + +// +// +int Analiza_Fichero_Estaticos(char *f_datos){ + + char ch, Relleno = 1; + int x, y, fuente, size, orientacion, color; + char buffer[160]; + int signo,numero, temp_num, temp_b; + int secuencia_activa=-1; + + FILE* fichero; // Fichero con datos del obj. + + if ( (fichero=fopen(f_datos,"r"))==NULL ) return ERROR_ABRIENDO; + + ch=fgetc(fichero); //Lee el primer caracter + while (ch!=EOF) { //Lee hasta fin de fichero + + if (ch=='*') //Linea con comentario + while (ch!=EOL && ch!=EOF) ch=fgetc(fichero); + + if (ch=='') { //Numero de Botones en la secuencia + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + secuencia_activa = numero; + fprintf( MB_out, " break;\n"); + fprintf( MB_out, " case %d:\n", secuencia_activa); + } + + if (ch=='&' /*&& secuencia_activa == Sec_st*/) { //Clculos del boton estatico + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Bot_Static.Left = %d;", numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Bot_Static.Up = %d;", numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Bot_Static.Right = %d;", numero); + + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Bot_Static.Down = %d;", numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Bot_Static.Cdf = %d;", numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Bot_Static.Cb1 = %d;", numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Bot_Static.Cb2 = %d;", numero); + + numero=0; Relleno = 1; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; else + if(ch == '-' || ch == '-') Relleno = 0; + ch=fgetc(fichero); + } + fprintf( MB_out, " Bot_Static.Ab = %d;", numero); + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fprintf( MB_out, " Bot_Static.Pb = %d;\n", numero); + fprintf( MB_out, " Imprime_Boton(%d, Bot_Static);\n", Relleno); + + } + if (ch=='|' /*&& secuencia_activa == Sec_st*/) { //Clculos del texto + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + x = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + y = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + fuente = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + size = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + orientacion = numero; + + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',') { + if (ch>='0' && ch<='9') numero=numero*10+ch-48; + ch=fgetc(fichero); + } + color = numero; + + buffer[0] = '\0'; + numero=0; + ch=fgetc(fichero); + while (ch!=EOL && ch!=EOF && ch!=',' && numero<150 ) { + ch=fgetc(fichero); + if(ch!=',') { buffer[numero] = ch; numero++; } + } + + buffer[numero] = '\0'; + fprintf( MB_out, " setcolor(%d);", color); + + /* select the registered font */ + fprintf( MB_out, " settextstyle( %d, %d, %d);", fuente, orientacion, size); + fprintf( MB_out, " outtextxy( %d, %d, \"%s\" );\n", x, y, buffer); + + + + } + + + if (ch!=EOF) ch=fgetc(fichero); + } + + if( fclose(fichero) != 0 ) return ERROR_CERRANDO; +// if( fclose(fichero) != 0 ) return ERROR_CERRANDO; + return OK; +} + +Red y asegrese de que \ No newline at end of file diff --git a/MK_BOT.HLP b/MK_BOT.HLP new file mode 100644 index 0000000..37a4515 --- /dev/null +++ b/MK_BOT.HLP @@ -0,0 +1,226 @@ +* +* Programa diseado, integramente, por: +* +* Jos David Guilln Dominguez +* J.D. FuTuRe ViSiOn +* +* c/ Pintor Garcia Ramos n5 2D +* Alcal de Guadaira ( Sevilla ) +* C.P. 41500 +* e-mails: +* Jose-David.Guillen@cs.us.es +* guill@cs.us.es +* infomundo@arrakis.es +* +* +* Compilador: Borlandc C++ 3.0 +* +* P.D. Este programa es FuenteWare, lo que quiere decir que para +* registrarse, ( y recibir cualquier actualizacin ), hay que +* enviar un Cdigo Fuente, elaborado en C, a la direccin adjunta. +* +* + +* +* +* Este es el fichero que contiene las definiciones para los botones, +* como se puede observar, el asterisco al principio de una linea, es un +* comentario. +* +* + +* +* Para ver el tamao de codigo real usado, vete a la linea, +* + +* +* #, simboliza el nmero de SECUENCIAS de BOTONES, que contiene el fichero +* +* ejemplo... Sea un programa con un Boton para SALIR y otro para AYUDA +* cuando se pulsa AYUDA, aparecen otros tres botones: ncias de botones +* detras indicamos: +* ![n de secuencia], [n de botones] +* + +* +* &, esta marca sirve para definir los botones en el siguiente orden: +* ( estticos ). +* $[Izquierda], [Arriba], [Derecha], [Abajo], [CDF], [Cb1], [Cb2], +* ,[Ab], [Pb] +* +* A diferencia de los dinmicos, los estaticos de dibujan a la vez que los +* dinmicos, pero no ocupan memoria. +* +* +* +* +* $, esta marca sirve para definir los botones en el siguiente orden: +* ( dinmicos ). +* $[Izquierda], [Arriba], [Derecha], [Abajo], [CDF], [Cb1], [Cb2], +* ,[Ab], [Pb], [IndexScanCode][ScanCode] +* +* +* CDF ---> Color de fondo. +* Cb1 ---> Color del borde 1. +* Cb2 ---> Color del borde 2. +* Ab ---> Ancho del borde . ( entre 2 y 10 "pixeles" ) +* Pb ---> Posicin del borde. Ver tabla 1.1 +* [ISC][SC] -> cdigo indice, cdigo de Scan. Ver tabla 1.3 +* +* +* Tabla 1.1 Tabla 1.2 +* +* B1 Esttico: es aquel que simplemente +* se dibuja. +* 1 2 +* Dinmico: es el que se dibuja y +* tiene asignada una tecla +* B2 que una vez pulsada, o +* pulsando sobre el boton, +* Tabla 1.3 har que el boton se +* deprima, devolviendo su +* Ejemplo: n de boton asignado. +* Ayuda (tecla 'H') 072000 ( segn orden en fichero ) +* Salir (tecla F1 ) 000059 +* +* +* El cdigo de tecla utilizado es el +* cdigo de caracteres ASCII, 32_90. +* En caso de ser una tecla especial, los 3 primeros dgitos deberan ser +* ceros. NO SE DEBEN OLVIDAR LOS CEROS PARA RELLENAR EL CODIGO. +* + + + +* +* Estos botones son estaticos, y solo sirven para adornar.... +* + +1 + +& 0, 0, 640, 480, 7, 56, 63, 2, 1 +& 10, 455, 630, 475, 7, 63, 56, 2, 1 + +2 + +& 330, 20, 630, 445, 7, 63, 56, 2, 1 +& 335, 25, 625, 440, 0, 56, 63, 2, 1 + + +* x y T.F. S. H. C. Texto. + +| 30, 20, 2, 6, 0, 63, Ayuda, +| 31, 21, 2, 6, 0, 0, Ayuda, + | 38, 21, 2, 6, 0, 0, -, + +| 130, 20, 2, 6, 0, 63, Acerca de, +| 131, 21, 2, 6, 0, 0, Acerca de, + | 138, 21, 2, 6, 0, 0, -, + +| 230, 20, 2, 6, 0, 63, Salir, +| 231, 21, 2, 6, 0, 0, Salir, + | 238, 21, 2, 6, 0, 0, -, + + +| 280, 20, 2, 20, 0, 63, Make_Boton, +| 281, 21, 2, 20, 0, 0, Make_Boton, + +| 320, 20, 2, 10, 0, 63, Jos David, +| 321, 21, 2, 10, 0, 0, Jos David, + +| 380, 20, 2, 8, 0, 63, JD FuTuRe ViSiOn, +| 381, 21, 2, 8, 0, 0, JD FuTuRe ViSiOn, + +4 + +* & 335, 25, 625, 440, 0, 56, 63, 2, 1, 2 + +|50, 350, 2, 6, 0, 63, Make_Boton es una producto, +|70, 350, 2, 6, 0, 63, FuenteWare lo que quiere , +|90, 350, 2, 6, 0, 63, decir que no es gratuito , +|110, 350, 2, 6, 0, 63, sino que para obtener el, +|130, 350, 2, 6, 0, 63, registro necesario para su, +|150, 350, 2, 6, 0, 63, utilizacin es necesario, +|170, 350, 2, 6, 0, 63, enviar un cdigo fuente, +|190, 350, 2, 6, 0, 63, realizado en C. CPP. ASM, +|210, 350, 2, 6, 0, 63, preferiblemente en CPP., + +|250, 350, 2, 5, 0, 63, Pulse una Tecla, + +3 + +* & 335, 25, 625, 440, 0, 56, 63, 2, 1, 2 + +|50, 350, 2, 6, 0, 63, Make_Boton, + +| 80, 350, 2, 6, 0, 63, Codificacin integra de JD, +| 100, 350, 2, 6, 0, 63, Jos David Guilln Dominguez, + +|130, 350, 2, 6, 0, 63, Pintor Garcia Ramos 5 2D, +|150, 350, 2, 6, 0, 63, Alcal de Guadaira (SEVILLA). +|170, 350, 2, 6, 0, 63, CP>41.500 Tlf. 561 - XX - XX, + + +|200, 350, 2, 5, 0, 63, Pulse una Tecla, + + + +* +* Acabo de definir dos Secuencias de botones. +* + +#2 + + + +* +* 1 secuencia con dos botones. +* + +!1,3 + +* +* Boton 1 +* + +$ 20, 20, 130, 60, 7, 56, 63, 1, 2, 65, 00 + +* +* Boton 2 +* + +$ 20, 120, 130, 160, 7, 56, 63, 1, 2, 67, 00 + +* +* Boton 3 +* + +$ 20, 220, 130, 260, 7, 56, 63, 1, 2, 83, 00 + +*$ 20, 20, 120, 50, 56, 7, 63, 56, 1, 2, 65, 00 + + + +* +* 2 secuencia con tres botones. +* + +!2, 3 + +* +* Boton 1 +* + +$20, 320, 420, 50, 56, 7, 63, 2, 1, 2, 072, 000 + +* +* Boton 2 +* + +$320, 120, 120, 450, 56, 7, 63, 2, 1, 2, 000, 059 + +* +* Boton 3 +* + +$20, 120, 120, 150, 56, 7, 63, 2, 1, 2, 000, 059 diff --git a/README.md b/README.md new file mode 100644 index 0000000..a655aa8 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +#MAKE_BOT + + +*14/12/1995* + +ToDo: wwtcf? + + +![screenshot](/MAKE_BOT.png "Screenshot")