Ejemplo n.º 1
0
Archivo: main.c Proyecto: Hoyifei/projs
int main()
{
    init(&f**k);
    char* ch;
    T_game gm;
    T_comp cp;
    T_Achi ac;
    int i,j,k;
    for(i=1; i<=100; ++i) {
        sprintf(cp.Name,"%d",i);
        sprintf(cp.Description,"%d",i);
        T_Comp *ci=InsertCompany(CompanyFirst(&f**k),cp);
        for(j=1; j<=100; ++j) {
            sprintf(gm.Name,"%d,%d",i,j);
            sprintf(gm.Description,"%d,%d",j,i);
            T_Game *gi=InsertGame(GameFirst_c(ci),gm);
            for(k=1; k<=100; ++k) {
                sprintf(ac.Name,"%d,%d,%d",i,j,k);
                sprintf(ac.Description,"%d,%d,%d",k,j,i);
                addAchievev(ac.Name,ac.Description,gi);
            }
        }
        printf("Insert Company %d\n",i);
    }
    T_game model;
    givestr(model.Name,"1");
    printf("%d\n",CountGame(GAME_COMPARENAME,model,&f**k));
    for(i=1; i<=50; ++i) DelCompany(CompanyLast(&f**k));
    clean_up(&f**k);
    printf("Program exited with no error\n");
    return(0);
}
Ejemplo n.º 2
0
/* Retorna numoero de cd + 1 o LASTCD si ya no quedan mas juegos */ 
int MakeCD (struct mamegame *lista, int tipo, int ncd)
{
	char aux[MAXCAD];
	char src[MAXCAD];
	char basecd[MAXCAD];		/* Directorio base del CD 			*/
	char baseroms[MAXCAD];		/* Directorio base de las roms 		*/
	char basesamples[MAXCAD];	/* Directorio base de los samples 	*/
	char baseartwork[MAXCAD];	/* Directorio base del artwork	 	*/
	char baselista[MAXCAD];		/* Directorio base de la lista 	 	*/
	char basetitles[MAXCAD];	/* Directorio de titulos 			*/
	char baseimages[MAXCAD];	/* Directorio de imagenes 		 	*/

	char srcroms[MAXCAD];		/* Directorio con las roms 			*/
	char neogeozip[MAXCAD];		/* Path completo de la bios de neogeo */
	char cvszip[MAXCAD];		/* Path completo de la bios de cvs 	*/
	char playchzip[MAXCAD];		/* Path completo de la bios de playchoice */
	char decocasszip[MAXCAD];	/* Path completo de la bios de decocass */
	char srcimages[MAXCAD];		/* Directorio con las imagenes		*/
	char srctitles[MAXCAD];		/* Directorio con los titulos		*/
	char srcsamples[MAXCAD];	/* Directorio con los samples		*/
	char srcartwork[MAXCAD];	/* Directorio con el artwork		*/

	int tamanyo, tamanyototal;
	struct mamegame *actual;
	struct stat buff;

	/* Creamos los directorios */
	sprintf(basecd,"%s/%s/%s", basedir, tmpdir, cddir);
	mkdir(basecd,S_IRWXU|S_IRWXG|S_IRWXO);									/* ./tmp/cddir-ncd 						*/

	sprintf(baseroms,"%s/%s",basecd,romsdir);
	mkdir(baseroms,S_IRWXU|S_IRWXG|S_IRWXO);								/* ./tmp/cddir-ncd/roms					*/

	if (tipo==NEOGEO) 	
	{
		sprintf(baseroms,"%s/%s/%s",basecd,romsdir,neogeodir);
		mkdir(baseroms,S_IRWXU|S_IRWXG|S_IRWXO);							/* ./tmp/cddir-ncd/roms/neogeo			*/

		sprintf(srcroms,"%s/%s", srcbasedir, neogeodir);					/* /home/carlitos/roms/neogeo			*/
		sprintf(neogeozip,"%s/neogeo.zip", srcroms);
	}
	if (tipo==MAME) 	
	{
		sprintf(baseroms,"%s/%s/%s",basecd,romsdir,mamedir);				/* ./tmp/cddir-ncd/roms/mame			*/
		mkdir(baseroms,S_IRWXU|S_IRWXG|S_IRWXO);

		sprintf(srcroms,"%s/%s", srcbasedir, mamedir);						/* /home/carlitos/roms/mame				*/
		sprintf(cvszip,"%s/cvs.zip", srcroms);
		sprintf(playchzip,"%s/playch10.zip", srcroms);
		sprintf(decocasszip,"%s/decocass.zip", srcroms);

		/* Los juegos de MAME pueden tener samples y artwork */
		sprintf(basesamples,"%s/%s/%s",basecd,romsdir,samplesdir);
		mkdir(basesamples,S_IRWXU|S_IRWXG|S_IRWXO);							/* ./tmp/cddir-ncd/roms/samples			*/

		sprintf(baseartwork,"%s/%s/%s",basecd,romsdir,artworkdir);
		mkdir(baseartwork,S_IRWXU|S_IRWXG|S_IRWXO);							/* ./tmp/cddir-ncd/roms/artwork			*/

		sprintf(srcroms,"%s/%s", srcbasedir, mamedir);						/* /home/carlitos/roms/mame				*/
		sprintf(srcsamples,"%s/%s/%s", srcbasedir, romsdir, samplesdir);	/* /home/carlitos/roms/samples			*/
		sprintf(srcartwork,"%s/%s/%s", srcbasedir, romsdir, artworkdir);	/* /home/carlitos/roms/artwork			*/
	}

	if (generatelist)
	{
		sprintf(baselista,"%s/%s",basecd,listdir);
		mkdir(baselista,S_IRWXU|S_IRWXG|S_IRWXO);								/* ./tmp/cddir.ncd/lista				*/

		sprintf(basetitles,"%s/%s",baselista,titlesdir);
		mkdir(basetitles,S_IRWXU|S_IRWXG|S_IRWXO);								/* ./tmp/cddir.ncd/lista/titulos		*/

		sprintf(baseimages,"%s/%s",baselista,imagesdir);
		mkdir(baseimages,S_IRWXU|S_IRWXG|S_IRWXO);;								/* ./tmp/cddir.ncd/lista/images			*/


		sprintf(srcimages,"%s/%s", srclistdir, imagesdir);						/* /home/lista/images					*/
		sprintf(srctitles,"%s/%s", srclistdir, titlesdir);						/* /home/lista/titulos					*/
	}

	/* Reservamos 7 Mb para los ficheros html */
	tamanyototal=7*1024*1024;

	if (tipo==NEOGEO) 	
	{
		/* Si son de neogeo necesitamos la BIOS */	
		/* Creamos el link a neogeo.zip */
		sprintf(aux,"%s/neogeo.zip",baseroms);
		link(neogeozip,aux);
		stat(neogeozip,&buff);
		tamanyototal+=buff.st_size;

		if (generatelist)
		{
			sprintf(src,"%s/neogeo.jpg",srcimages);
			sprintf(aux,"%s/neogeo.jpg",baseimages);
			link(src,aux);
			stat(aux,&buff);
			tamanyototal+=buff.st_size;
		}
	}
	if (tipo==MAME) 	
	{
		/* Creamos el link a cvs.zip */
		sprintf(aux,"%s/cvs.zip",baseroms);
		link(cvszip,aux);
		stat(cvszip,&buff);
		tamanyototal+=buff.st_size;

		/* Creamos el link a playch10.zip */
		sprintf(aux,"%s/playch10.zip",baseroms);
		link(playchzip,aux);
		stat(playchzip,&buff);
		tamanyototal+=buff.st_size;

		/* Creamos el link a decocass.zip */
		sprintf(aux,"%s/decocass.zip",baseroms);
		link(decocasszip,aux);
		stat(decocasszip,&buff);
		tamanyototal+=buff.st_size;

		if (generatelist)
		{
			sprintf(src,"%s/mame.jpg",srcimages);
			sprintf(aux,"%s/mame.jpg",baseimages);
			link(src,aux);
			stat(aux,&buff);
			tamanyototal+=buff.st_size;
		}
	}

	if (generatelist)
	{
		sprintf(src,"%s/limage.gif",srcimages);
		sprintf(aux,"%s/limage.gif",baseimages);
		link(src,aux);
		stat(aux,&buff);
		tamanyototal+=buff.st_size;

		sprintf(src,"%s/anterior.jpg",srcimages);
		sprintf(aux,"%s/anterior.jpg",baseimages);
		link(src,aux);
		stat(aux,&buff);
		tamanyototal+=buff.st_size;

		sprintf(src,"%s/centro.jpg",srcimages);
		sprintf(aux,"%s/centro.jpg",baseimages);
		link(src,aux);
		stat(aux,&buff);
		tamanyototal+=buff.st_size;

		sprintf(src,"%s/siguiente.jpg",srcimages);
		sprintf(aux,"%s/siguiente.jpg",baseimages);
		link(src,aux);
		stat(aux,&buff);
		tamanyototal+=buff.st_size;

		sprintf(src,"%s/noimage.gif",srcimages);
		sprintf(aux,"%s/noimage.gif",baseimages);
		link(src,aux);
		stat(aux,&buff);
		tamanyototal+=buff.st_size;

		sprintf(src,"%s/notitle.gif",srctitles);
		sprintf(aux,"%s/notitle.gif",basetitles);
		link(src,aux);
		stat(aux,&buff);
		tamanyototal+=buff.st_size;
	}

	actual=lista;
	while (1)
	{
		/* ¿El juego pertenece a algun CD? */
		if (actual->numerocd==0)
		{
			/* ¿Es del tipo que le hemos dicho? */
			if (actual->tipo==tipo)
			{
				/* Si es un clonico se insertara con su original */
				if (!actual->isclone)
				{
					tamanyo=InsertGame(lista, actual, tipo, ncd, tamanyototal);
					if (tamanyo==ERROR)
					{
#ifdef DEBUG_CD
						printf("Size of CD %02i %i\n", ncd, tamanyototal);
#endif
						/* El juego no ha cabido en el CD */
						return ncd+1;
					}
					else
					{
						tamanyototal+=tamanyo;
					}
				}
			}
			else	
			{
#ifdef DEBUG_CD_WARNINGS
				printf("%8s (%i) is not of type %i\n",actual->base, actual->tipo, tipo);
#endif
			}
		}
		else
		{
#ifdef DEBUG_CD_WARNINGS
			if (!actual->isclone) printf("%8s is in CD %02i\n",actual->base, actual->numerocd);
#endif
		}

		if (actual->next==NULL) 
		{
#ifdef DEBUG_CD
			printf("Size of CD %02i %i\n", ncd, tamanyototal);
#endif
			return LASTCD;
		}
		actual=actual->next;
	}

	return ncd+1;
}