///////////////////////////// FICHEROS A INCLUIR ///////////////////////////// #include #include #include #include #include #include "cd_icons.h" #include "cd_error.h" ////////////////////////////////// VARIABLES ///////////////////////////////// extern char raton; extern char PunteroRaton; extern char dac[256*3]; unsigned char far *Icono; // 18 void Coloca_Iconos_Dos_Windows(void); void Coloca_Iconos(int Start_Icon); //////////////////////// DECLARACIONES DE FUNCIONES ////////////////////////// extern "C" void ENCIENDE_PANTALLA(char *); extern unsigned char *P_Raton1, *P_Raton2, *P_Raton3, *P_Raton4; ///////////////////////////////// PROGRAMA /////////////////////////////////// void Inicializa_Iconos(void) { FILE *handle; int ancho, alto; int Posicion[18] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; int esq_x1, esq_y1, esq_x2, esq_y2; unsigned char byte, contador; int n = (20*20); int PR1, PR2, PR3, PR4; PR1 = PR2 = PR3 = PR4 = -1; if( (Icono = (unsigned char far *)farcalloc( (39762), sizeof(unsigned char) ) ) == NULL ) { closegraph(); printf("No se encontrЂ memoria suficiente"); exit(1); } if((handle=fopen("CD_OUT2.IMG", "rb"))==NULL) { restorecrtmode(); printf("No se encontrЂ el archivo de iconos"); exit(1); } if(10!=getc(handle)) { restorecrtmode(); printf("El archivo de iconos, esta daЄado"); exit(1); } getw(handle); getc(handle); esq_x1=getw(handle); esq_y1=getw(handle); esq_x2=getw(handle); esq_y2=getw(handle); ancho=esq_x2-esq_x1+1; alto =esq_y2-esq_y1+1; fseek(handle, 128, 0); for(alto=(esq_y2-esq_y1+1); alto>0; alto--) { for(ancho=(esq_x2-esq_x1+1); ancho>0; ) { byte=getc(handle); if(byte<=0xC0) { if( ancho>=272 && ancho <=318 && alto >=152 && alto <= 198 ) { Posicion[0] ++; Icono[ Posicion[0] ] = byte; } else if( ancho>=224 && ancho <=270 && alto >=152 && alto <= 198 ) { Posicion[1] ++; Icono[ Posicion[1]+2209*1 ] = byte; } else if( ancho>=176 && ancho <=222 && alto >=152 && alto <= 198 ) { Posicion[2] ++; Icono[ Posicion[2]+2209*2 ] = byte; } else if( ancho>=128 && ancho <=174 && alto >=152 && alto <= 198 ) { Posicion[3] ++; Icono[ Posicion[3]+2209*3 ] = byte; } else if( ancho>=80 && ancho <=126 && alto >=152 && alto <= 198 ) { Posicion[4] ++; Icono[ Posicion[4]+2209*4 ] = byte; } else if( ancho>=32 && ancho <=78 && alto >=152 && alto <= 198 ) { Posicion[5] ++; Icono[ Posicion[5]+2209*5 ] = byte; } else //////////////////////////////////////////////////////////////////////////////////// if( ancho>=272 && ancho <=318 && alto >=104 && alto <= 150 ) { Posicion[6] ++; Icono[ Posicion[6]+2209*6 ] = byte; } else if( ancho>=224 && ancho <=270 && alto >=104 && alto <= 150 ) { Posicion[7] ++; Icono[ Posicion[7]+2209*7 ] = byte; } else if( ancho>=176 && ancho <=222 && alto >=104 && alto <= 150 ) { Posicion[8] ++; Icono[ Posicion[8]+2209*8 ] = byte; } else if( ancho>=128 && ancho <=174 && alto >=104 && alto <= 150 ) { Posicion[9] ++; Icono[ Posicion[9]+2209*9 ] = byte; } else if( ancho>=80 && ancho <=126 && alto >=104 && alto <= 150 ) { Posicion[10] ++; Icono[ Posicion[10]+2209*10 ] = byte; } else if( ancho>=32 && ancho <=78 && alto >=104 && alto <= 150 ) { Posicion[11] ++; Icono[ Posicion[11]+2209*11] = byte; } else //////////////////////////////////////////////////////////////////////////////////// if( ancho>=272 && ancho <=318 && alto >=56 && alto <= 102 ) { Posicion[12] ++; Icono[ Posicion[12]+2209*12 ] = byte; } else if( ancho>=224 && ancho <=270 && alto >=56 && alto <= 102 ) { Posicion[13] ++; Icono[ Posicion[13]+2209*13 ] = byte; } else if( ancho>=176 && ancho <=222 && alto >=56 && alto <= 102 ) { Posicion[14] ++; Icono[ Posicion[14]+2209*14 ] = byte; } else if( ancho>=128 && ancho <=174 && alto >=56 && alto <= 102 ) { Posicion[15] ++; Icono[ Posicion[15]+2209*15 ] = byte; } else if( ancho>=80 && ancho <=126 && alto >=56 && alto <= 102 ) { Posicion[16] ++; Icono[ Posicion[16]+2209*16 ] = byte; } else if( ancho>=32 && ancho <=78 && alto >=56 && alto <= 102 ) { Posicion[17] ++; Icono[ Posicion[17]+2209*17] = byte; } else //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл if( ancho>=/*272*/279 && ancho <=/*318*/316 && alto >= /*8*/11 && alto <= 29 ) { // Flecha Izquierda putpixel( 561 - 51 + (ancho - 279), 99 + 4 + (alto - 11), byte); } else if( ancho>=/*272*/276 && ancho <=/*318*/313 && alto >= /*32*/35 && alto <= 52 ) { // Flecha Derecha putpixel( 558 - 51 + (ancho-272), 126 - 52 + (alto-32), byte); } else if( ancho>=251 && ancho <=270 && alto >= 14 && alto <= 54 ) { // Flecha Arriba putpixel( 235 - 25 + (ancho-248), 420 + 2 + (alto-8), byte); putpixel( 385 - 25 + (ancho-248), 360 + 3 + (alto-8), byte); } else if( ancho>=/*224*/227 && ancho <= 245 && alto >= /*8*/12 && alto <= /*54*/49 ) { // Flecha Abajo putpixel( 235 - 25 + (ancho-224), 470 - 100 + (alto-8), byte); putpixel( 385 - 25 + 1 + (ancho-224), 415 -2- 100 + (alto-8), byte); } else if( ancho>=180 && ancho <= 199 && alto >= 12 && alto <= 31 ) { // Punteros del Raton... PR1++; if ( raton!=0 && PunteroRaton == 100 ) P_Raton1[/*(199-ancho) + 20*(31-alto)*/PR1] = byte; // putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); } else if( ancho>=201 && ancho <= 220 && alto >= 12 && alto <= 31 ) { // Punteros del Raton... PR2++; if ( raton!=0 && PunteroRaton == 100 ) P_Raton2[/*(220-ancho) + 20*(31-alto)*/PR2] = byte; // putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); } else if( ancho>=180 && ancho <= 199 && alto >= 33 && alto <= 52 ) { // Punteros del Raton... PR3++; if ( raton!=0 && PunteroRaton == 100 ) P_Raton3[/*(199-ancho) + 20*(52-alto)*/PR3] = byte; // putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); } else if( ancho>=201 && ancho <= 220 && alto >= 33 && alto <= 52 ) { // Punteros del Raton... PR4++; if ( raton!=0 && PunteroRaton == 100 ) P_Raton4[/*(220-ancho) + 20*(52-alto)*/PR4] = byte; // putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); } ///////////////// // putpixel( (10+ancho), (10+alto), byte); ///////////////// ancho--; } else { contador=byte&0x3F; byte=getc(handle); for(; contador>0; contador--) { // *dir_vga++=byte; if( ancho>=272 && ancho <=318 && alto >=152 && alto <= 198 ) { Posicion[0] ++; Icono[ Posicion[0] ] = byte; } else if( ancho>=224 && ancho <=270 && alto >=152 && alto <= 198 ) { Posicion[1] ++; Icono[ Posicion[1]+2209*1 ] = byte; } else if( ancho>=176 && ancho <=222 && alto >=152 && alto <= 198 ) { Posicion[2] ++; Icono[ Posicion[2]+2209*2 ] = byte; } else if( ancho>=128 && ancho <=174 && alto >=152 && alto <= 198 ) { Posicion[3] ++; Icono[ Posicion[3]+2209*3 ] = byte; } else if( ancho>=80 && ancho <=126 && alto >=152 && alto <= 198 ) { Posicion[4] ++; Icono[ Posicion[4]+2209*4 ] = byte; } else if( ancho>=32 && ancho <=78 && alto >=152 && alto <= 198 ) { Posicion[5] ++; Icono[ Posicion[5]+2209*5 ] = byte; } else //////////////////////////////////////////////////////////////////////////////////// if( ancho>=272 && ancho <=318 && alto >=104 && alto <= 150 ) { Posicion[6] ++; Icono[ Posicion[6]+2209*6 ] = byte; } else if( ancho>=224 && ancho <=270 && alto >=104 && alto <= 150 ) { Posicion[7] ++; Icono[ Posicion[7]+2209*7 ] = byte; } else if( ancho>=176 && ancho <=222 && alto >=104 && alto <= 150 ) { Posicion[8] ++; Icono[ Posicion[8]+2209*8 ] = byte; } else if( ancho>=128 && ancho <=174 && alto >=104 && alto <= 150 ) { Posicion[9] ++; Icono[ Posicion[9]+2209*9 ] = byte; } else if( ancho>=80 && ancho <=126 && alto >=104 && alto <= 150 ) { Posicion[10] ++; Icono[ Posicion[10]+2209*10 ] = byte; } else if( ancho>=32 && ancho <=78 && alto >=104 && alto <= 150 ) { Posicion[11] ++; Icono[ Posicion[11]+2209*11] = byte; } else //////////////////////////////////////////////////////////////////////////////////// if( ancho>=272 && ancho <=318 && alto >=56 && alto <= 102 ) { Posicion[12] ++; Icono[ Posicion[12]+2209*12 ] = byte; } else if( ancho>=224 && ancho <=270 && alto >=56 && alto <= 102 ) { Posicion[13] ++; Icono[ Posicion[13]+2209*13 ] = byte; } else if( ancho>=176 && ancho <=222 && alto >=56 && alto <= 102 ) { Posicion[14] ++; Icono[ Posicion[14]+2209*14 ] = byte; } else if( ancho>=128 && ancho <=174 && alto >=56 && alto <= 102 ) { Posicion[15] ++; Icono[ Posicion[15]+2209*15 ] = byte; } else if( ancho>=80 && ancho <=126 && alto >=56 && alto <= 102 ) { Posicion[16] ++; Icono[ Posicion[16]+2209*16 ] = byte; } else if( ancho>=32 && ancho <=78 && alto >=56 && alto <= 102 ) { Posicion[17] ++; Icono[ Posicion[17]+2209*17] = byte; } else //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл //лллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллллл if( ancho>=/*272*/279 && ancho <=/*318*/316 && alto >= /*8*/11 && alto <= 29 ) { // Flecha Izquierda putpixel( 568 - 51 + (ancho - 279), 102 + 4 + (alto - 11), byte); } else if( ancho>=/*272*/276 && ancho <=/*318*/313 && alto >= /*32*/35 && alto <= 52 ) { // Flecha Derecha putpixel( 565 - 51 + (ancho - 276), 129 - 52 + (alto - 35), byte); } else if( ancho>=251 && ancho <=270 && alto >= 14 && alto <= 54 ) { // Flecha Arriba putpixel( 235 - 25 + (ancho-248), 420 + 2 + (alto-8), byte); putpixel( 385 - 25 + (ancho-248), 360 + 3 + (alto-8), byte); } else if( ancho>=/*224*/227 && ancho <= 245 && alto >= /*8*/12 && alto <= /*54*/49 ) { // Flecha Abajo putpixel( 235 - 25 + 1 + (ancho-224), 470 - 100 + (alto-8), byte); putpixel( 385 - 25 + 1 + (ancho-224), 415 -2 - 100 + (alto-8), byte); } else /* if( ancho>=180 && ancho <= 220 && alto >= 12 && alto <= 52 ) { // Punteros del Raton... // putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); } */ if( ancho>=180 && ancho <= 199 && alto >= 12 && alto <= 31 ) { // Punteros del Raton... PR1++; if ( raton!=0 && PunteroRaton == 100 ) P_Raton1[/*(199-ancho) + 20*(31-alto)*/PR1] = byte; // putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); } else if( ancho>=201 && ancho <= 220 && alto >= 12 && alto <= 31 ) { // Punteros del Raton... PR2++; if ( raton!=0 && PunteroRaton == 100 ) P_Raton2[/*(220-ancho) + 20*(31-alto)*/PR2] = byte; // putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); } else if( ancho>=180 && ancho <= 199 && alto >= 33 && alto <= 52 ) { // Punteros del Raton... PR3++; if ( raton!=0 && PunteroRaton == 100 ) P_Raton3[/*(199-ancho) + 20*(52-alto)*/PR3] = byte; // putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); } else if( ancho>=201 && ancho <= 220 && alto >= 33 && alto <= 52 ) { // Punteros del Raton... PR4++; if ( raton!=0 && PunteroRaton == 100 ) P_Raton4[/*(220-ancho) + 20*(52-alto)*/PR4] = byte; // putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte); } //////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// ///////////////// // putpixel( (10+ancho), (10+alto), byte); ///////////////// ancho--; } } } } getc(handle); // for(n=0; n<256*3; n++) dac[n]=getc(handle) >> 2; for(n=0; n<256*3; n++) if( n >= (256-16)*3 ) dac[n]=getc(handle) >> 2; else getc(handle); fclose(handle); } void Coloca_Iconos_Dos_Windows(void){ int x, y, i; for( y = 0; y <= (46-1); y++ ) for( x = 1; x <= 46; x++ ) { // ****** 1 putpixel( /*397*/512 + x, 12+y, Icono[ x + (47*y) + (2209*11) ] ); putpixel( 577 + x, 12+y, Icono[ x + (47*y) + (2209*17) ] ); // C_Icon++; } } void Coloca_Iconos(int Start_Icon){ int x, y, i; const char Icon_inx[] = { Juegos, Texto, Musica, Dibujo, Util, Base, Hoja, Red, TC, Scanner, News, Zip, Peli, Varios, CD, Ayuda }; Start_Icon--; for( y = 0; y <= (46-1); y++ ) for( x = 1; x <= 46; x++ ) { // ****** 1 // putpixel( 447 + x, 77+y, Icono[ x + (47*y) + (2209*Icon_inx[Start_Icon]) ] ); // putpixel( 512 + x, 77+y, Icono[ x + (47*y) + (2209*Icon_inx[Start_Icon+1]) ] ); putpixel( 577 + x, 77+y, Icono[ x + (47*y) + (2209*Icon_inx[Start_Icon/*+2*/]) ] ); // C_Icon++; } }