First commit 11/11/1991
This commit is contained in:
173
HERM_IGA.CPP
Normal file
173
HERM_IGA.CPP
Normal file
@ -0,0 +1,173 @@
|
||||
/*************************************************************************\
|
||||
|* *|
|
||||
|* HERM_IGA *|
|
||||
|* *|
|
||||
|* Descripci<63>n: *|
|
||||
|* Gestion de insginias ( solo ense<73>a desde 1 hata 19 ) *|
|
||||
|* *|
|
||||
\*************************************************************************/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <conio.h>
|
||||
#include <alloc.h>
|
||||
#include <string.h>
|
||||
#include <graphics.h>
|
||||
|
||||
#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 );
|
||||
}
|
Reference in New Issue
Block a user