/*************************************************************************\ |* *| |* HERM_IGA *| |* *| |* Descripci¢n: *| |* Gestion de insginias ( solo ense¤a desde 1 hata 19 ) *| |* *| \*************************************************************************/ #include #include #include #include #include #include "..\libs\make_bot\make_bot.h" #include "..\libs\bdatos\bdatos.hh" #include "Herm.h" extern CONFIG Config; extern BDatos BConfig; extern int far Espera_TeclaRaton(void); void MuestraInsignia( int insignia, char como, int CtoVirgen, int columna ); void GestionInsignias(void) { int i, key; char buffer[80]; int X1, X0; char insignia, ok, CtoVirgen, columna; Imprime_Estaticos(50, "Herm.img"); settextstyle( SMALL_FONT, HORIZ_DIR, 4 ); for ( insignia = 1; insignia < 20; insignia++ ) { MuestraInsignia( insignia, NORMAL, 0, 0 ); MuestraInsignia( insignia, NORMAL, 1, 0 ); MuestraInsignia( insignia, NORMAL, 0, 1 ); MuestraInsignia( insignia, NORMAL, 1, 1 ); } insignia = 1; CtoVirgen = 0; columna = 0; ok = 0; do{ MuestraInsignia( insignia, INTENSO, CtoVirgen, columna ); Espera_TeclaRaton(); MuestraInsignia( insignia, NORMAL, CtoVirgen, columna ); if ( !kbhit() ) // Donde pincho el raton { for ( i = 0; i < 20; i++ ) { if ( x_raton > 15 && x_raton < 180 && y_raton > 70+20*i && y_raton < 90+20*i ) { CtoVirgen = 0; columna = 0; insignia = i+1; break; } if ( x_raton > 200 && x_raton < 310 && y_raton > 70+20*i && y_raton < 90+20*i ) { CtoVirgen = 0; columna = 1; insignia = i+1; break; } if ( x_raton > 330 && x_raton < 495 && y_raton > 70+20*i && y_raton < 90+20*i ) { CtoVirgen = 1; columna = 0; insignia = i+1; break; } if ( x_raton > 495 && x_raton < 625 && y_raton > 70+20*i && y_raton < 90+20*i ) { CtoVirgen = 1; columna = 1; insignia = i+1; break; } } Anclar_Raton(); } else switch( ( key = getch() ) ) { case 0: switch( getch() ) { // Flecha Izquierda case 75: columna--; if ( columna < 0 ) { if ( CtoVirgen == 1 ) { CtoVirgen = 0; columna = 1; }else{ columna = 0; } } break; // Flecha Derecha case 77: columna ++; if ( columna > 1 ) { if ( CtoVirgen == 0 ) { CtoVirgen=1; columna = 0; }else{ columna = 1; } } break; // Flecha Arriba case 80: insignia++; if ( insignia > 19 ) insignia = 19; break; // Flecha Abajo case 72: insignia--; if ( insignia < 1 ) insignia = 1; break; } break; case 15: case 9: CtoVirgen = !CtoVirgen; columna = 0; break; // ESC case 27: ok = 1; break; default: if ( key != 13 && key != 8 ) ungetch(key); if ( columna == 0) strcpy( buffer, Config.Insignia[insignia+20*CtoVirgen].NInsignia ); else sprintf( buffer, "%ld", Config.Insignia[insignia+20*CtoVirgen].Suplemento ); if ( !( InputCadenaG_T5( buffer, columna, (columna == 0) ? 29 : 5, BLANCO, AZUL, ( (columna==0) ? 15 + CtoVirgen*315 : 200 + CtoVirgen*315 ), 70+20*(insignia-1), ( (columna==0) ? 200 + CtoVirgen*315 : 300 + CtoVirgen*315 ), 90+20*(insignia-1) - 1 ) >> 8 ) ) if ( columna == 0) strcpy( Config.Insignia[insignia+20*CtoVirgen].NInsignia, buffer ); else Config.Insignia[insignia+20*CtoVirgen].Suplemento = atol(buffer); } }while( !ok ); // Salvamos configuracion BConfig.EscribeReg( (void *)&Config, 0 ); } void MuestraInsignia( int insignia, char como, int CtoVirgen, int columna ) { int X0, Y0, X1, Y1; char buffer[80]; setfillstyle( SOLID_FILL, (como==NORMAL) ? BLANCO : ROJO ); setcolor( NEGRO ); if ( columna == 0) sprintf( buffer, "%29s", Config.Insignia[insignia+20*CtoVirgen].NInsignia ); else sprintf( buffer, " %05ld", Config.Insignia[insignia+20*CtoVirgen].Suplemento ); insignia--; X0 = ( (columna==0) ? 15 + CtoVirgen*315 : 200 + CtoVirgen*315 ); Y0 = 70+20*insignia; X1 = ( (columna==0) ? 200 + CtoVirgen*315 : 300 + CtoVirgen*315 ); Y1 = 90+20*insignia; bar( X0, Y0, X1, Y1-1 ); outtextxy( X0, Y0, buffer ); }