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; }
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; }