CD_OUT_SRC/CD_IN/CD_ICONS.CPP
2021-09-03 17:50:32 +02:00

520 lines
16 KiB
C++

extern int Fichero_cd_in2(char Dinamicos_Estaticos);
///////////////////////////// FICHEROS A INCLUIR /////////////////////////////
#include <alloc.h>
#include <dos.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h> // Para getch();
#include <graphics.h> // Para outtextxy(...); y cleardevice(...);
#include "cd_icons.h"
// #include "List_col.h"
#include "cd_error.h"
#include "d:\program\src_dos\libs\make_bot\make_bot.h" // Fuciones de MAKE_BOTON
////////////////////////////////// VARIABLES /////////////////////////////////
void Mete(FILE *P_R, int Color);
FILE *handle;
char dac[256*3];
extern unsigned char *P_Raton1, *P_Raton2, *P_Raton3, *P_Raton4;
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 *);
///////////////////////////////// PROGRAMA ///////////////////////////////////
void Inicializa_Iconos(void)
{
int ancho;
int Posicion[18] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
int alto;
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)*/40000L, sizeof(unsigned char) ) ) == NULL ){
Fichero_cd_in2(SIN_CVN);
// Imprime_Estaticos( SIN_CVN, "cd_in.img");
Espera_Tecla_o_Raton();
closegraph();
printf("No se encontr¢ memoria suficiente");
exit(1);
}
/*
if( ((P_Raton1 = (unsigned char *)malloc( n ))==NULL) ||
((P_Raton2 = (unsigned char *)malloc( n ))==NULL) ||
((P_Raton3 = (unsigned char *)malloc( n ))==NULL) ||
((P_Raton4 = (unsigned char *)malloc( n ))==NULL) ) {
Imprime_Estaticos( SIN_CVN, "cd_in.img");
Espera_Tecla_o_Raton();
closegraph();
cprintf("\n\rImposible encontrar memoria para el cursor del Raton");
exit(2);
}
*/
///ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
///ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
/*
FILE *P_R1, *P_R2, *P_R3, *P_R4;
int PR1_C=0, PR2_C=0, PR3_C=0, PR4_C=0;
P_R1 = fopen("P_Raton1.cpp", "w");
P_R2 = fopen("P_Raton2.cpp", "w");
P_R3 = fopen("P_Raton3.cpp", "w");
P_R4 = fopen("P_Raton4.cpp", "w");
*/
///ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
///ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
if((handle=fopen("CD_in2.IMG", "rb"))==NULL)
{
Fichero_cd_in2(E_O);
// Imprime_Estaticos( E_O, "cd_in.img");
Espera_Tecla_o_Raton();
restorecrtmode();
printf("No se encontr¢ el archivo de iconos");
exit(1);
}
if(10!=getc(handle))
{
Fichero_cd_in2(E_PCX);
// Imprime_Estaticos( E_PCX, "cd_in.img");
Espera_Tecla_o_Raton();
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>=274/*279*/ && ancho <=/*318*/316 && alto >= /*8*/11 && alto <= 29 ) {
// Flecha Izquierda
// putpixel( 385 +43+ (279-ancho), 30 + 24 + (11-alto), byte);
putpixel( ancho + 120, alto + 24, byte );
} else
if( ancho>=/*272*/276 && ancho <=318/*313*/ && alto >= /*32*/35 && alto <= 52 ) {
// Flecha Derecha
// putpixel( 385 +48+ (276-ancho), 57 + 26 + (35-alto), byte);
putpixel( ancho + 120, alto + 32, byte );
}
//// } else
// if( ancho>=251 && ancho <=270 && alto >= 14 && alto <= 54 ) {
// // Flecha Arriba
// putpixel( 235 + (248-ancho), 420 + (8-alto), byte);
// putpixel( 385 + (248-ancho), 360 + (8-alto), byte);
// } else
// if( ancho>=/*224*/227 && ancho <= 245 && alto >= /*8*/12 && alto <= /*54*/49 ) {
// // Flecha Abajo
// putpixel( 235 - 1 + (224-ancho), 470 + (8-alto), byte);
// putpixel( 385 - 1 + (224-ancho), 415 -2 + (8-alto), 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++;
P_Raton1[/*(199-ancho) + 20*(31-alto)*/PR1] = byte;
////// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte);
/////*
////Mete(P_R1, byte);
////PR1_C ++ ; if ( PR1_C == 6 ) { PR1_C=0; fprintf(P_R1, "\n"); }
////*/
} else
if( ancho>=201 && ancho <= 220 && alto >= 12 && alto <= 31 ) {
//// // Punteros del Raton...
PR2++;
P_Raton2[/*(220-ancho) + 20*(31-alto)*/PR2] = byte;
///// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte);
/////*
////Mete(P_R2, byte);
////PR2_C ++ ; if ( PR2_C == 11 ) { PR2_C=0; fprintf(P_R2, "\n"); }
////*/
} else
if( ancho>=180 && ancho <= 199 && alto >= 33 && alto <= 52 ) {
//// // Punteros del Raton...
PR3++;
P_Raton3[/*(199-ancho) + 20*(52-alto)*/PR3] = byte;
////// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte);
/////*
////Mete(P_R3, byte);
////PR3_C ++ ; if ( PR3_C == 6 ) { PR3_C=0; fprintf(P_R3, "\n"); }
////*/
} else
if( ancho>=201 && ancho <= 220 && alto >= 33 && alto <= 52 ) {
//// // Punteros del Raton...
PR4++;
P_Raton4[/*(220-ancho) + 20*(52-alto)*/PR4] = byte;
////// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte);
/////*
////Mete(P_R4, byte);
////PR4_C ++ ; if ( PR4_C == 6 ) { PR4_C=0; fprintf(P_R4, "\n"); }
////*/
}
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
/////////////////
// 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>=274/*279*/ && ancho <=/*318*/316 && alto >= /*8*/11 && alto <= 29 ) {
// Flecha Izquierda
// putpixel( 385 + 43 + (279-ancho), 30 + 24 + (11-alto), byte);
putpixel( ancho + 120, alto + 24, byte );
} else
if( ancho>=/*272*/276 && ancho <=318/*313*/ && alto >= /*32*/35 && alto <= 52 ) {
// Flecha Derecha
// putpixel( 385 + 48 + (276-ancho), 57 + 26 + (35-alto), byte);
putpixel( ancho + 120, alto + 32, byte );
} else
// if( ancho>=251 && ancho <=270 && alto >= 14 && alto <= 54 ) {
// // Flecha Arriba
// putpixel( 235 + (248-ancho), 420 + (8-alto), byte);
// putpixel( 385 + (248-ancho), 360 + (8-alto), byte);
// } else
// if( ancho>=/*224*/227 && ancho <= 245 && alto >= /*8*/12 && alto <= /*54*/49 ) {
// // Flecha Abajo
// putpixel( 235 - 1 + (224-ancho), 470 + (8-alto), byte);
// putpixel( 385 - 1 + (224-ancho), 415 -2 + (8-alto), 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++;
P_Raton1[/*(199-ancho) + 20*(31-alto)*/PR1] = byte;
////// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte);
/////*
////Mete(P_R1, byte);
////PR1_C ++ ; if ( PR1_C == 6 ) { PR1_C=0; fprintf(P_R1, "\n"); }
////*/
} else
if( ancho>=201 && ancho <= 220 && alto >= 12 && alto <= 31 ) {
//// // Punteros del Raton...
PR2++;
P_Raton2[/*(220-ancho) + 20*(31-alto)*/PR2] = byte;
////// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte);
/////*
////Mete(P_R2, byte);
////PR2_C ++ ; if ( PR2_C == 6 ) { PR2_C=0; fprintf(P_R2, "\n"); }
////*/
} else
if( ancho>=180 && ancho <= 199 && alto >= 33 && alto <= 52 ) {
//// // Punteros del Raton...
PR3++;
P_Raton3[/*(199-ancho) + 20*(52-alto)*/PR3] = byte;
///// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte);
/////*
////Mete(P_R3, byte);
////PR3_C ++ ; if ( PR3_C == 6 ) { PR3_C=0; fprintf(P_R3, "\n"); }
////*/
} else
if( ancho>=201 && ancho <= 220 && alto >= 33 && alto <= 52 ) {
//// // Punteros del Raton...
PR4++;
P_Raton4[/*(220-ancho) + 20*(52-alto)*/PR4] = byte;
///// putpixel( 400 + 46 + (176-ancho), 150 + (49-alto), byte);
/////*
////Mete(P_R4, byte);
////PR4_C ++ ; if ( PR4_C == 6 ) { PR4_C=0; fprintf(P_R4, "\n"); }
////*/
}
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
/////////////////
// 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);
/*
fclose(P_R1);
fclose(P_R2);
fclose(P_R3);
fclose(P_R4);
*/
}
void Coloca_Iconos_Dos_Windows(void){
int x, y, i;
for( y = 0; y <= (46-1); y++ )
for( x = 1; x <= 46; x++ ) {
putpixel( 523 + x, 37+y, Icono[ x + (47*y) + (2209*11) ] );
putpixel( 583 + x, 37+y, Icono[ x + (47*y) + (2209*17) ] );
}
}
void Coloca_Iconos(int Start_Icon){
int x, y, i;
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++ ) {
putpixel( 453 + x, 37+y, Icono[ x + (47*y) + (2209*Icon_inx[Start_Icon]) ] );
}
}
void Mete(FILE *P_R, int Color) {
char Buffer[80];
switch( Color ) {
case 255:
sprintf( Buffer, "*P_Ratonx++ = BLANCO");
break;
case 240:
sprintf( Buffer, "*P_Ratonx++ = NEGRO");
break;
case 253:
sprintf( Buffer, "*P_Ratonx++ = GRIS_CLARO");
break;
case 249:
sprintf( Buffer, "*P_Ratonx++ = UNKNOW");
break;
case 250:
sprintf( Buffer, "*P_Ratonx++ = AZUL");
break;
default:
sprintf( Buffer, "*P_Ratonx++ = %d", Color);
}
fprintf( P_R, "%-24s; ", Buffer );
}