home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fun CD 26
/
OTACD26.ISO
/
archive
/
game
/
d2split
/
d2split.lzh
/
D2SPLIT.C
next >
Wrap
C/C++ Source or Header
|
1998-03-23
|
6KB
|
238 lines
/*-----------------------------------------------
PS同級生2画像データ分割プログラム ver 0.00
By Kou Uraki
------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* グラフィックデータのあるディレクトリ */
char *gdirs[]={"\\23\\G00\\","\\23\\G01\\","\\23\\G02\\"};
/* グラフィックデータファイル名 */
char *g00_files[]={"GIRLA00.TIX",
"GIRLA01.TIX",
"GIRLA02.TIX",
"GIRLA03.TIX",
"GIRLI00.TIX",
"GIRLI01.TIX",
"GIRLI02.TIX",
"GIRLI03.TIX",
"GIRLJ00.TIX",
"GIRLJ01.TIX",
"GIRLJ02.TIX",
"GIRLJ03.TIX",
"GIRLO00.TIX",
"GIRLO01.TIX",
"GIRLO02.TIX",
"GIRLO03.TIX",
"GIRLP00.TIX",
"GIRLP01.TIX",
"GIRLP02.TIX",
"GIRLP03.TIX",
"GIRLQ00.TIX",
"GIRLQ01.TIX",
"GIRLQ02.TIX",
"GIRLQ03.TIX",
"GIRLR00.TIX",
"GIRLR01.TIX",
"GIRLR02.TIX",
"GIRLR03.TIX"};
char *g01_files[]={"GIRLB00.TIX",
"GIRLB01.TIX",
"GIRLB02.TIX",
"GIRLB03.TIX",
"GIRLD00.TIX",
"GIRLD01.TIX",
"GIRLD02.TIX",
"GIRLD03.TIX",
"GIRLE00.TIX",
"GIRLE01.TIX",
"GIRLE02.TIX",
"GIRLE03.TIX",
"GIRLF00.TIX",
"GIRLF01.TIX",
"GIRLF02.TIX",
"GIRLF03.TIX",
"GIRLH00.TIX",
"GIRLH01.TIX",
"GIRLH02.TIX",
"GIRLH03.TIX",
"GIRLK00.TIX",
"GIRLK01.TIX",
"GIRLK02.TIX",
"GIRLK03.TIX",
"GIRLS00.TIX",
"GIRLS01.TIX",
"GIRLS02.TIX",
"GIRLS03.TIX"};
char *g02_files[]={"GIRLL00.TIX",
"GIRLL01.TIX",
"GIRLL02.TIX",
"GIRLL03.TIX",
"GIRLT00.TIX",
"GIRLT01.TIX",
"GIRLT02.TIX",
"GIRLT03.TIX"};
/* ディレクトリごとのファイル数 */
#define G00FILES 28
#define G01FILES 28
#define G02FILES 8
main(int ac, char **av)
{
long d[4];
char fname[128];
int i,c,k;
FILE *fp1,*fp2;
printf("PS同級生2画像データ分割 ver 0.00\n");
if(ac<2)
{
printf(" usage:D2SPLIT [CD_ROM DRIVE]\n");
printf(" ex.) >D2SPLIT D:\n");
return 0;
}
c=1;
/* 以下の3つのfor文はコピー&ペーストを使うと入力が楽 */
/* ディレクトリ\23\G00の処理 */
for(i=0;i<G00FILES;i++)
{
sprintf(fname,"%s%s%s",av[1],gdirs[0],g00_files[i]);
printf("split-> %s",fname);
fp1=fopen(fname,"rb");
if(fp1==NULL)
{
printf("\nfile error:%s\n",fname);
return -1;
}
while(1)
{
k=fread(d,sizeof(long),4,fp1);
if(k==0)
{
fcloseall();
goto L_1;
}
if(d[0]==0x10L)
{
if(c!=1) fclose(fp2);
sprintf(fname,"%03d.TIM",c);
c++;
fp2=fopen(fname,"wb");
if(fp2==NULL)
{
printf("\nfile error:%s\n",fname);
fcloseall();
return -1;
}
}
fwrite(d,sizeof(long),4,fp2);
}
L_1:
printf(" end.\n");
}
/* ディレクトリ\23\G01の処理 */
for(i=0;i<G01FILES;i++)
{
sprintf(fname,"%s%s%s",av[1],gdirs[1],g01_files[i]);
printf("split-> %s",fname);
fp1=fopen(fname,"rb");
if(fp1==NULL)
{
printf("\nfile error:%s\n",fname);
return -1;
}
while(1)
{
k=fread(d,sizeof(long),4,fp1);
if(k==0)
{
fcloseall();
goto L_2;
}
if(d[0]==0x10L)
{
if(c!=1) fclose(fp2);
sprintf(fname,"%03d.TIM",c);
c++;
fp2=fopen(fname,"wb");
if(fp2==NULL)
{
printf("\nfile error:%s\n",fname);
fcloseall();
return -1;
}
}
fwrite(d,sizeof(long),4,fp2);
}
L_2:
printf(" end.\n");
}
/* ディレクトリ\23\G02の処理 */
for(i=0;i<G02FILES;i++)
{
sprintf(fname,"%s%s%s",av[1],gdirs[2],g02_files[i]);
printf("split-> %s",fname);
fp1=fopen(fname,"rb");
if(fp1==NULL)
{
printf("\nfile error:%s\n",fname);
return -1;
}
while(1)
{
k=fread(d,sizeof(long),4,fp1);
if(k==0)
{
fcloseall();
goto L_3;
}
if(d[0]==0x10L)
{
if(c!=1) fclose(fp2);
sprintf(fname,"%03d.TIM",c);
c++;
fp2=fopen(fname,"wb");
if(fp2==NULL)
{
printf("\nfile error:%s\n",fname);
fcloseall();
return -1;
}
}
fwrite(d,sizeof(long),4,fp2);
}
L_3:
printf(" end.\n");
}
return 1;
}