Example #1
0
int main(int argc, char **argv)
{
    FILE *f = NULL;
    Reseau *R = creerReseau();
    ListeChaine *L = creerListeChaine();

    if (argc == 2) {
	fprintf(stdout, "Ouverture du fichier %s\n", argv[1]);
	f = ouvrirFichier(argv[1]);
    }

    int choix = -1;
    while (choix != 0) {
	showMenu();
	choix = readNombre();
	callChoix(&f, choix, &R, &L);
    }
    printf("Fermeture en cours\n");
    if (f) {
	fermerFichier(f);
    }

    freeReseau(R);
    freeListeChaine(L);
    return 0;
}
Example #2
0
TDefMech read_TDefMech(int numJugador, int numMech){
  TDefMech d;
  char path[32];
  
  sprintf(path, "%s%i-%i%s", "defmechJ", numJugador, numMech, ".sbt");
  
  FILE * sbt = fopen(path, "r");
  
  if(sbt == NULL){
    char aux[128];
    sprintf(aux, "%s%s%s", "Error Apertura: No se puede abrir el fichero defMech ", path, "\n");
    write_LogStatus(aux);
    exit(-1);
  }
  
  if(checkSbt(sbt, "defmechSBT")){
    readNombre (sbt, d.nombre);
    readNombre (sbt, d.modelo);
    d.toneladas = readInteger( sbt );
    d.potencia = readInteger( sbt );
    d.numRadiadoresInt = readInteger( sbt );
    d.numRadiadores = readInteger( sbt );
    d.tieneMASC = readBoolean(sbt);
    d.tieneDACMTD = readBoolean(sbt);
    d.tieneDACMTI = readBoolean(sbt);
    d.tieneDACMTC = readBoolean(sbt);
    d.maxCalorGenerado = readInteger( sbt );
    d.conBrazos = readBoolean(sbt);
    d.conHombroIzq  = readBoolean(sbt);
    d.conBrazoIzq = readBoolean(sbt);
    d.conAnteBrazoIzq = readBoolean(sbt);
    d.conManoIzq = readBoolean(sbt);
    d.conHombroDer = readBoolean(sbt);
    d.conBrazoDer = readBoolean(sbt);
    d.conAnteBrazoDer = readBoolean(sbt);
    d.conManoDer = readBoolean(sbt);
    d.blinBrazoIzq = readInteger( sbt );
    d.blinTorsoIzq = readInteger( sbt );
    d.blinPiernaIzq = readInteger( sbt );
    d.blinPiernaDer = readInteger( sbt );
    d.blinTorsoDer = readInteger( sbt );
    d.blinBrazoDer = readInteger( sbt );
    d.blinTorsoCen = readInteger( sbt );
    d.blinCabeza = readInteger( sbt );
    d.blinAtrasTorsoIzq = readInteger( sbt );
    d.blinAtrasTorsoDer = readInteger( sbt );
    d.blinAtrasTorsoCen = readInteger( sbt );
    d.ptsEstIntBrazoIzq = readInteger( sbt );
    d.ptsEstIntTorsoIzq = readInteger( sbt );
    d.ptsEstIntPiernaIzq = readInteger( sbt );
    d.ptsEstIntPiernaDer = readInteger( sbt );
    d.ptsEstIntTorsoDer = readInteger( sbt );
    d.ptsEstIntBrazoDer = readInteger( sbt );
    d.ptsEstIntTorsoCen = readInteger( sbt );
    d.ptsEstIntCabeza = readInteger( sbt );
    d.numComponentes = readInteger( sbt );

#if defined (_DEBUG)
    int linea = 2;
    printf("--------READ TDEFMECH--------\n");
    printf("%03ic:%s\n", linea++, d.nombre);
    printf("%03ic:%s\n", linea++, d.modelo);
    printf("%03in:%i\n", linea++, d.toneladas);
    printf("%03in:%i\n", linea++, d.potencia);
    printf("%03in:%i\n", linea++, d.numRadiadoresInt);
    printf("%03in:%i\n", linea++, d.numRadiadores);
    printf("%03in:%i\n", linea++, d.tieneMASC);
    printf("%03in:%i\n", linea++, d.tieneDACMTD);
    printf("%03in:%i\n", linea++, d.tieneDACMTI);
    printf("%03in:%i\n", linea++, d.tieneDACMTC);
    printf("%03in:%i\n", linea++, d.maxCalorGenerado);
    printf("%03in:%i\n", linea++, d.conBrazos);
    printf("%03in:%i\n", linea++, d.conHombroIzq);
    printf("%03in:%i\n", linea++, d.conBrazoIzq);
    printf("%03in:%i\n", linea++, d.conAnteBrazoIzq);
    printf("%03in:%i\n", linea++, d.conManoIzq);
    printf("%03in:%i\n", linea++, d.conHombroDer);
    printf("%03in:%i\n", linea++, d.conBrazoDer);
    printf("%03in:%i\n", linea++, d.conAnteBrazoDer);
    printf("%03in:%i\n", linea++, d.conManoDer);
    printf("%03in:%i\n", linea++, d.blinBrazoIzq);
    printf("%03in:%i\n", linea++, d.blinTorsoIzq);
    printf("%03in:%i\n", linea++, d.blinPiernaIzq);
    printf("%03in:%i\n", linea++, d.blinPiernaDer);
    printf("%03in:%i\n", linea++, d.blinTorsoDer);
    printf("%03in:%i\n", linea++, d.blinBrazoDer);
    printf("%03in:%i\n", linea++, d.blinTorsoCen);
    printf("%03in:%i\n", linea++, d.blinCabeza);
    printf("%03in:%i\n", linea++, d.blinAtrasTorsoIzq);
    printf("%03in:%i\n", linea++, d.blinAtrasTorsoDer);
    printf("%03in:%i\n", linea++, d.blinAtrasTorsoCen);
    printf("%03in:%i\n", linea++, d.ptsEstIntBrazoIzq);
    printf("%03in:%i\n", linea++, d.ptsEstIntTorsoIzq);
    printf("%03in:%i\n", linea++, d.ptsEstIntPiernaIzq);
    printf("%03in:%i\n", linea++, d.ptsEstIntPiernaDer);
    printf("%03in:%i\n", linea++, d.ptsEstIntTorsoDer);
    printf("%03in:%i\n", linea++, d.ptsEstIntBrazoDer);
    printf("%03in:%i\n", linea++, d.ptsEstIntTorsoCen);
    printf("%03in:%i\n", linea++, d.ptsEstIntCabeza);
    printf("%03in:%i\n", linea++, d.numComponentes);
#endif

    d.componentes = (TComponente *) malloc(d.numComponentes * sizeof(TComponente));
    
    for(int i = 0; i < d.numComponentes; i++){
      d.componentes[i].codigo = readInteger( sbt );
      readNombre (sbt, d.componentes[i].nombre);
      d.componentes[i].clase = read_TClase(sbt);
      d.componentes[i].estaEnTrasera = readBoolean(sbt);
      d.componentes[i].locPrimaria = read_TLocDF(sbt);
      d.componentes[i].locSecundaria = read_TLocDF(sbt);
      d.componentes[i].tipoArma = read_TArma(sbt);
      d.componentes[i].calor = readInteger( sbt );
      d.componentes[i].danio = readInteger( sbt );
      d.componentes[i].disparosPorTurnos = readInteger( sbt );
      d.componentes[i].distMinima = readInteger( sbt );
      d.componentes[i].distCorta = readInteger( sbt );
      d.componentes[i].distMedia = readInteger( sbt );
      d.componentes[i].distLarga = readInteger( sbt );
      d.componentes[i].estaOperativo = readBoolean(sbt);
      d.componentes[i].codigoArma = readInteger( sbt );
      d.componentes[i].cantidad = readInteger( sbt );
      d.componentes[i].esMunicionEspecial = readBoolean(sbt);
      d.componentes[i].modiDisparo = readInteger( sbt );

#if defined (_DEBUG)
      printf("%03in:%i\n", linea++, d.componentes[i].codigo);
      printf("%03ic:%s\n", linea++, d.componentes[i].nombre);
      printf("%03in:%i\n", linea++, d.componentes[i].clase);
      printf("%03in:%i\n", linea++, d.componentes[i].estaEnTrasera);
      printf("%03in:%i\n", linea++, d.componentes[i].locPrimaria);
      printf("%03in:%i\n", linea++, d.componentes[i].locSecundaria);
      printf("%03in:%i\n", linea++, d.componentes[i].tipoArma);
      printf("%03in:%i\n", linea++, d.componentes[i].calor);
      printf("%03in:%i\n", linea++, d.componentes[i].danio);
      printf("%03in:%i\n", linea++, d.componentes[i].disparosPorTurnos);
      printf("%03in:%i\n", linea++, d.componentes[i].distMinima);
      printf("%03in:%i\n", linea++, d.componentes[i].distCorta);
      printf("%03in:%i\n", linea++, d.componentes[i].distMedia);
      printf("%03in:%i\n", linea++, d.componentes[i].distLarga);
      printf("%03in:%i\n", linea++, d.componentes[i].estaOperativo);
      printf("%03in:%i\n", linea++, d.componentes[i].codigoArma);
      printf("%03in:%i\n", linea++, d.componentes[i].cantidad);
      printf("%03in:%i\n", linea++, d.componentes[i].esMunicionEspecial);
      printf("%03in:%i\n", linea++, d.componentes[i].modiDisparo);
#endif
    }
    
    d.numArmas = readInteger(sbt);
    d.numActuadores = readInteger(sbt);

#if defined (_DEBUG)
    printf("%03in:%i\n", linea++, d.numArmas);
    printf("%03in:%i\n", linea++, d.numActuadores);
#endif

    d.actuadores = (TActuador *) malloc(d.numActuadores * sizeof(TActuador));
    
    for(int i = 0; i < d.numActuadores; i++){
      d.actuadores[i].codigo = readInteger(sbt);
      readNombre(sbt, d.actuadores[i].nombre);
      d.actuadores[i].loc = read_TLocDF(sbt);
      d.actuadores[i].estaOperativo = readBoolean(sbt);
      d.actuadores[i].numImpactos = readInteger(sbt);

#if defined (_DEBUG)
      printf("%03in:%i\n", linea++, d.actuadores[i].codigo);
      printf("%03ic:%s\n", linea++, d.actuadores[i].nombre);
      printf("%03in:%i\n", linea++, d.actuadores[i].loc);
      printf("%03in:%i\n", linea++, d.actuadores[i].estaOperativo);
      printf("%03in:%i\n", linea++, d.actuadores[i].numImpactos);
#endif
    }
    
    for(int i = 0; i <= 7; i++){
      d.loc[i].numSlotOcupados = readInteger(sbt);
#if defined (_DEBUG)
      printf("%03inumSlots:%i\n", linea++, d.loc[i].numSlotOcupados);
#endif      

      d.loc[i].slots = (TSlotOcupado *) malloc(d.loc[i].numSlotOcupados * sizeof(TSlotOcupado));
      
      for(int j = 0; j < d.loc[i].numSlotOcupados; j++){
	d.loc[i].slots[j].clase = read_TClase(sbt);
	d.loc[i].slots[j].cantidad = readInteger(sbt);
	d.loc[i].slots[j].codigo = readInteger(sbt);
	readNombre(sbt, d.loc[i].slots[j].nombre);
	d.loc[i].slots[j].indiceComponente = readInteger(sbt);
	d.loc[i].slots[j].indiceActuador = readInteger(sbt);
	d.loc[i].slots[j].dmgEnCasoCritico = readInteger(sbt);

#if defined (_DEBUG)
	printf("%03iclase:%i\n", linea++, d.loc[i].slots[j].clase);
	printf("%03icant:%i\n", linea++, d.loc[i].slots[j].cantidad);
	printf("%03icod:%i\n", linea++, d.loc[i].slots[j].codigo);
	printf("%03inom:%s\n", linea++, d.loc[i].slots[j].nombre);
	printf("%03iindCom:%i\n", linea++, d.loc[i].slots[j].indiceComponente);
	printf("%03iindAct:%i\n", linea++, d.loc[i].slots[j].indiceActuador);
	printf("%03idmg:%i\n", linea++, d.loc[i].slots[j].dmgEnCasoCritico);
#endif
      }
    }
    
    d.ptsMovAndando = readInteger(sbt);
    d.ptsMovCorriendo = readInteger(sbt);
    d.ptsMovSaltando = readInteger(sbt);
    d.tipoRadiadores = read_TRadiador(sbt);

#if defined (_DEBUG)
    printf("%03in:%i\n", linea++, d.ptsMovAndando);
    printf("%03in:%i\n", linea++, d.ptsMovCorriendo);
    printf("%03in:%i\n", linea++, d.ptsMovSaltando);
    printf("%03in:%i\n", linea++, d.tipoRadiadores);
    printf("------FIN READ TDEFMECH-----------\n");
#endif
  }

  fclose(sbt);
  
  return d;
}