home *** CD-ROM | disk | FTP | other *** search
/ Fun CD 26 / OTACD26.ISO / archive / game / d2split / d2split.lzh / D2SPLIT.C next >
C/C++ Source or Header  |  1998-03-23  |  6KB  |  238 lines

  1. /*-----------------------------------------------
  2.  
  3.  PS同級生2画像データ分割プログラム ver 0.00
  4.                                 By Kou Uraki
  5.  
  6. ------------------------------------------------*/
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <string.h>
  10.  
  11. /* グラフィックデータのあるディレクトリ */
  12. char *gdirs[]={"\\23\\G00\\","\\23\\G01\\","\\23\\G02\\"};
  13.  
  14. /* グラフィックデータファイル名 */
  15. char *g00_files[]={"GIRLA00.TIX",
  16.                    "GIRLA01.TIX",
  17.                    "GIRLA02.TIX",
  18.                    "GIRLA03.TIX",
  19.                    "GIRLI00.TIX",
  20.                    "GIRLI01.TIX",
  21.                    "GIRLI02.TIX",
  22.                    "GIRLI03.TIX",
  23.                    "GIRLJ00.TIX",
  24.                    "GIRLJ01.TIX",
  25.                    "GIRLJ02.TIX",
  26.                    "GIRLJ03.TIX",
  27.                    "GIRLO00.TIX",
  28.                    "GIRLO01.TIX",
  29.                    "GIRLO02.TIX",
  30.                    "GIRLO03.TIX",
  31.                    "GIRLP00.TIX",
  32.                    "GIRLP01.TIX",
  33.                    "GIRLP02.TIX",
  34.                    "GIRLP03.TIX",
  35.                    "GIRLQ00.TIX",
  36.                    "GIRLQ01.TIX",
  37.                    "GIRLQ02.TIX",
  38.                    "GIRLQ03.TIX",
  39.                    "GIRLR00.TIX",
  40.                    "GIRLR01.TIX",
  41.                    "GIRLR02.TIX",
  42.                    "GIRLR03.TIX"};
  43.  
  44. char *g01_files[]={"GIRLB00.TIX",
  45.                    "GIRLB01.TIX",
  46.                    "GIRLB02.TIX",
  47.                    "GIRLB03.TIX",
  48.                    "GIRLD00.TIX",
  49.                    "GIRLD01.TIX",
  50.                    "GIRLD02.TIX",
  51.                    "GIRLD03.TIX",
  52.                    "GIRLE00.TIX",
  53.                    "GIRLE01.TIX",
  54.                    "GIRLE02.TIX",
  55.                    "GIRLE03.TIX",
  56.                    "GIRLF00.TIX",
  57.                    "GIRLF01.TIX",
  58.                    "GIRLF02.TIX",
  59.                    "GIRLF03.TIX",
  60.                    "GIRLH00.TIX",
  61.                    "GIRLH01.TIX",
  62.                    "GIRLH02.TIX",
  63.                    "GIRLH03.TIX",
  64.                    "GIRLK00.TIX",
  65.                    "GIRLK01.TIX",
  66.                    "GIRLK02.TIX",
  67.                    "GIRLK03.TIX",
  68.                    "GIRLS00.TIX",
  69.                    "GIRLS01.TIX",
  70.                    "GIRLS02.TIX",
  71.                    "GIRLS03.TIX"};
  72.  
  73. char *g02_files[]={"GIRLL00.TIX",
  74.                    "GIRLL01.TIX",
  75.                    "GIRLL02.TIX",
  76.                    "GIRLL03.TIX",
  77.                    "GIRLT00.TIX",
  78.                    "GIRLT01.TIX",
  79.                    "GIRLT02.TIX",
  80.                    "GIRLT03.TIX"};
  81.  
  82. /* ディレクトリごとのファイル数 */
  83. #define G00FILES 28
  84. #define G01FILES 28
  85. #define G02FILES 8
  86.  
  87. main(int ac, char **av)
  88. {
  89.   long d[4];
  90.   char fname[128];
  91.   int i,c,k;
  92.   FILE *fp1,*fp2;
  93.   
  94.   printf("PS同級生2画像データ分割 ver 0.00\n");
  95.   
  96.   if(ac<2)
  97.   {
  98.     printf("    usage:D2SPLIT [CD_ROM DRIVE]\n");
  99.     printf(" ex.) >D2SPLIT D:\n");
  100.     return 0;
  101.   }
  102.   
  103.   c=1;
  104.   
  105.   /* 以下の3つのfor文はコピー&ペーストを使うと入力が楽 */
  106.   /* ディレクトリ\23\G00の処理 */
  107.   for(i=0;i<G00FILES;i++)
  108.   {
  109.     sprintf(fname,"%s%s%s",av[1],gdirs[0],g00_files[i]);
  110.     printf("split-> %s",fname);
  111.     fp1=fopen(fname,"rb");
  112.     if(fp1==NULL)
  113.     {
  114.       printf("\nfile error:%s\n",fname);
  115.       return -1;
  116.     }
  117.     
  118.     while(1)
  119.     {
  120.       k=fread(d,sizeof(long),4,fp1);
  121.       if(k==0)
  122.       {
  123.         
  124.         fcloseall();
  125.         goto L_1;
  126.         
  127.       }
  128.       if(d[0]==0x10L)
  129.       {
  130.         if(c!=1) fclose(fp2);
  131.         sprintf(fname,"%03d.TIM",c);
  132.         c++;
  133.         fp2=fopen(fname,"wb");
  134.         
  135.         if(fp2==NULL)
  136.         {
  137.           printf("\nfile error:%s\n",fname);
  138.           fcloseall();
  139.           return -1;
  140.         }
  141.       
  142.       }
  143.       fwrite(d,sizeof(long),4,fp2);
  144.     }
  145.     L_1:
  146.     printf("  end.\n");
  147.   }
  148.   
  149.   /* ディレクトリ\23\G01の処理 */
  150.   for(i=0;i<G01FILES;i++)
  151.   {
  152.     sprintf(fname,"%s%s%s",av[1],gdirs[1],g01_files[i]);
  153.     printf("split-> %s",fname);
  154.     fp1=fopen(fname,"rb");
  155.     if(fp1==NULL)
  156.     {
  157.       printf("\nfile error:%s\n",fname);
  158.       return -1;
  159.     }
  160.     
  161.     while(1)
  162.     {
  163.       k=fread(d,sizeof(long),4,fp1);
  164.       if(k==0)
  165.       {
  166.         
  167.         fcloseall();
  168.         goto L_2;
  169.         
  170.       }
  171.       if(d[0]==0x10L)
  172.       {
  173.         if(c!=1) fclose(fp2);
  174.         sprintf(fname,"%03d.TIM",c);
  175.         c++;
  176.         fp2=fopen(fname,"wb");
  177.         
  178.         if(fp2==NULL)
  179.         {
  180.           printf("\nfile error:%s\n",fname);
  181.           fcloseall();
  182.           return -1;
  183.         }
  184.       
  185.       }
  186.       fwrite(d,sizeof(long),4,fp2);
  187.     }
  188.     L_2:
  189.     printf("  end.\n");
  190.   }
  191.   
  192.   /* ディレクトリ\23\G02の処理 */
  193.   for(i=0;i<G02FILES;i++)
  194.   {
  195.     sprintf(fname,"%s%s%s",av[1],gdirs[2],g02_files[i]);
  196.     printf("split-> %s",fname);
  197.     fp1=fopen(fname,"rb");
  198.     if(fp1==NULL)
  199.     {
  200.       printf("\nfile error:%s\n",fname);
  201.       return -1;
  202.     }
  203.     
  204.     while(1)
  205.     {
  206.       k=fread(d,sizeof(long),4,fp1);
  207.       if(k==0)
  208.       {
  209.         
  210.         fcloseall();
  211.         goto L_3;
  212.         
  213.       }
  214.       if(d[0]==0x10L)
  215.       {
  216.         if(c!=1) fclose(fp2);
  217.         sprintf(fname,"%03d.TIM",c);
  218.         c++;
  219.         fp2=fopen(fname,"wb");
  220.         
  221.         if(fp2==NULL)
  222.         {
  223.           printf("\nfile error:%s\n",fname);
  224.           fcloseall();
  225.           return -1;
  226.         }
  227.       
  228.       }
  229.       fwrite(d,sizeof(long),4,fp2);
  230.     }
  231.     L_3:
  232.     printf("  end.\n");
  233.   }
  234.   
  235.   return 1;
  236. }
  237.  
  238.