home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 March / VPR9603A.ISO / ffilly / fmc03 / fmc03.tfy < prev    next >
Text File  |  1995-12-20  |  8KB  |  325 lines

  1. //fmc03.tfy
  2.  
  3. //作品情報
  4. #info INAM "第3回 Filly Monthly Contest 入賞作品紹介Filly"
  5. #info IART "ナナミちゃん,NBF04330@niftyserve.or.jp; WATERLOO,   niftyserve.or.jp; @POCOPEN,GGB02243@niftyserve.or.jp"
  6. #info ICOP "ナナミちゃん,NBF04330@niftyserve.or.jp; WATERLOO,   niftyserve.or.jp; @POCOPEN,GGB02243@niftyserve.or.jp"
  7.  
  8. int WinW,WinH,PicW,PicH,MenuWin;
  9. int flag,picm0,picm1,x0,y0;
  10.  
  11. //シナリオ本体
  12. main(){
  13.     WinW=WinInfo(0);
  14.     WinH=WinInfo(1);
  15.     picm0=LoadPic("fmc03.bmp");
  16.     PicW=PicWidth(picm0);
  17.     PicH=PicHeight(picm0);
  18.     x0=(WinW-PicW)/2;
  19.     y0=(WinH-PicH)/2;
  20.     MenuWin=OpenWin(picm0,0,0,WinW,WinH,-x0,-y0,0x000000);
  21.     flag=0;
  22.     menu();
  23.     }
  24.  
  25. //メニュー
  26. menu(){
  27.     if(flag==1){
  28.         OpenWin(picm0,0,0,WinW,WinH,-x0,-y0,0x000000);
  29.         flag==0;
  30.         }
  31.     del_all;
  32.     mes(LBDOWN){
  33.         PlayWAVE("kachi.wav");
  34.         if(MesP2>390+x0&&MesP2<607+x0&&MesP3>109+y0&&MesP3<260+y0){
  35.             mes(TIME){ShowTitle(1);del_us;del_me;}
  36.             }
  37.         if(MesP2>390+x0&&MesP2<607+x0&&MesP3>270+y0&&MesP3<422+y0){
  38.             mes(TIME){ShowTitle(2);del_us;del_me;}
  39.             }
  40.         if(MesP2>525+x0&&MesP2<619+x0&&MesP3>436+y0&&MesP3<471+y0){
  41.             mes(TIME){
  42.                 step(1){
  43.                     CloseWinAll();,,
  44.                     del_all;,,
  45.                     del_me;
  46.                     }
  47.                 }
  48.             }
  49.         }
  50.     }
  51.  
  52. //タイトル実行
  53. ShowTitle(int index){
  54.     int pict1,x1,y1;
  55.     if(index==1){
  56.         pict1=LoadPic("wfn_001.256");
  57.         x1=(WinW-PicWidth(pict1))/2;
  58.         y1=(WinH-PicHeight(pict1))/2;
  59.         OpenWin(pict1,0,0,WinW,WinH,-x1,-y1,0x000000);
  60.         mes(LBDOWN){
  61.             PlayWAVE("kachi.wav");
  62.             DelPic(pict1);
  63.             mes(TIME){flag=1;menu();del_me;}
  64.             }
  65.         }
  66.     if(index==2){
  67.         mes(TIME){hitoha();del_me;}
  68.         }
  69.     }
  70.  
  71. //TOFFYシナリオのひな型
  72.  
  73. //作品情報(""内を書き換えて下さい)
  74. /*#info INAM "まるちめでぃあ★てきすと"
  75. #info ISBJ "文芸を手軽にタイトルに、、、"
  76. #info VIDO "640x480,256色"
  77. #info WRIT "ともゆん"
  78. #info ICOP "ともゆん"
  79. */
  80. int Win_No, Back_Pic,FontSize,BaseX,BaseY, BlackPic,IsInPage,CPic, MaxPage, Page[], Sect[], MaxSect,base_pic_x, base_pic_y,PicLeft,PicTop;
  81. str BaseFont, IniName, Title[];
  82.  
  83. //シナリオ本体
  84. hitoha(){
  85. //ここからシナリオを書き始めて下さい
  86.     int i, j;
  87.     int BackPic;
  88.     str TmpStr;
  89.  
  90.     IniName="hitoha_m.ini";   //////////////////////////////////////読み込みファイル名指定
  91.  
  92.     BlackPic=LoadPic("black.bmp");//フェードイン用背景を読み込みまーす
  93.     CPic=CreatePic(BlackPic);
  94.     MovePic(BlackPic,0,0,640,480,CPic,0,0);
  95.  
  96.     base_pic_x=PicWidth(BlackPic);
  97.     base_pic_y=PicHeight(BlackPic);
  98.     PicLeft=(WinInfo(0)-base_pic_x)/2-1;
  99. //    PicRight=(WinInfo(0)+base_pic_x)/2-1;
  100.     PicTop=(WinInfo(1)-base_pic_y)/2-1;
  101. //    PicBottom=(WinInfo(1)+base_pic_y)/2-1;
  102.  
  103.     CapTitle("");    //ウィンドウの上のキャプションバーを消します。
  104.  
  105.     OpenWin(CPic,
  106.          -1,    //スクリーンの左上隅からちょっとだけ左
  107.         -1,    //スクリーンの左上隅からちょっとだけ上 (ウィンドウの枠を消したいので)
  108.         WinInfo(0),    //スクリーンの横幅と同じ大きさのサイズ
  109.         WinInfo(1),    //縦の高さのサイズ
  110.         -PicLeft+1,    //ピクチャーの表示を画面の中央に、、、
  111.         -PicTop+1,    //同じく
  112.         0);        //バックグラウンドを黒に
  113.  
  114.  
  115.     BaseFont    =GetIniStr("system","basefont","MS 明朝",IniName);
  116.     FontSize=GetIniInt("system","fontsize",16,IniName);
  117.     BaseX=GetIniInt("system","startx", 38,IniName);
  118.     BaseY=GetIniInt("system","starty", 84,IniName);
  119.     j=0; Title[0]=" "; Sect[0]=1;
  120.     for(i=1;GetIniStr(StrPrint("Page%ld",i),"Text1","/E",IniName)!="/E";i=i+1){
  121.         if((TmpStr=GetIniStr(StrPrint("Page%ld",i),"Title","/E",IniName))!="/E"){
  122.             j=j+1;
  123.             Sect[j]=i;
  124.             Title[j]=TmpStr;
  125.         }
  126.         Page[i]=j;
  127.     }
  128.     MaxPage=i-1;
  129.     MaxSect=j;
  130.     IsInPage=0;//背景がページモードなら1
  131.  
  132.     Opening();
  133. //ここまでに書いてください
  134. }
  135.  
  136. Opening()
  137. {
  138.     int Pic_No;
  139.     Pic_No=LoadPic(GetIniStr("system","startpic","open.bmp",IniName));
  140. //    MovePic(BlackPic,0,0,640,480,CPic,0,0);
  141. //    MoveWin(Win_No,CPic);
  142.     MovePic(Pic_No,0,0,640,480,CPic,0,0,2,20);
  143.     
  144.  
  145. mes(LBDOWN){
  146.     if(MesP3>(392+PicTop)&&MesP3<(427+PicTop)){
  147.         if(MesP2>497+PicLeft&&MesP2<532+PicLeft){
  148.                 PlayWAVE("kachi.wav");
  149.             WritePage(1);
  150.             DelPic(Pic_No);
  151.             del_me;
  152. /*        }else{
  153.             if(MesP2>451+PicLeft&&MesP2<485+PicLeft){
  154.                 PlayWAVE("kachi.wav");
  155.                 Prof();
  156.                 DelPic(Pic_No);
  157.                 del_me;*/
  158.             }else{
  159.                 if(MesP2>544+PicLeft&&MesP2<579+PicLeft){
  160.                      BackMode(1);
  161.                     TextColor(255,255,255);
  162.                     SetFont( 80, "Times New Roman", 0, 0, 0, 0, 800,1 ,0,0,0,0,0,2,1);
  163.                     TextWrite("Fin.",BlackPic,260,180);
  164.                     MovePic(BlackPic,0,0,640,480,CPic,0,0,3,20);
  165.                     mes(TIME){step(30){,
  166.                         DelPic(Pic_No);
  167. //                        CloseWinAll();
  168.                         del_all;
  169.                         flag=1;
  170.                         menu();
  171.                         del_me;
  172.                     }}
  173.                     del_me;
  174.                 }
  175. //            }
  176.         }
  177.     }
  178.  
  179.   PlayWAVE("shuu.wav");
  180.  
  181.  
  182. }
  183. /*
  184. Prof()
  185. {
  186.     int Pic_No;
  187.     Pic_No=LoadPic(GetIniStr("system","profpic","prof.bmp",IniName));
  188.     MovePic(Pic_No,0,0,640,480,CPic,0,0,2,20);
  189.     
  190.  
  191. mes(LBDOWN){
  192.     if(MesP3>414+PicTop&&MesP3<446+PicTop&&MesP2>590+PicLeft&&MesP2<622+PicLeft){
  193.                 PlayWAVE("kachi.wav");
  194.         Opening();
  195.         DelPic(Pic_No);
  196.         del_me;
  197.     }
  198.  
  199.   PlayWAVE("shuu.wav");
  200.  
  201. }
  202. }
  203. */
  204. WritePage(int PageNo)
  205. {
  206.     str sect,text;
  207.     int x,y,i,Tmp,p;
  208.  
  209.     if(IsInPage!=1){
  210.         Back_Pic=LoadPic(GetIniStr("system","backpic","back.bmp",IniName));
  211.     }    
  212.     Tmp=CreatePic(Back_Pic);
  213.     MovePic(Back_Pic,0,0,640,480,Tmp,0,0);
  214.  
  215.     sect=StrPrint("Page%ld",PageNo);
  216.     x=GetIniInt(sect, "startx", BaseX,IniName);
  217.     y=GetIniInt(sect, "starty", BaseY,IniName);
  218.      BackMode(1);
  219.     SetFont( 24, "MS ゴシック", 128, 0, 0, 0, 800 );
  220.     TextColor(0,0,0);
  221.     TextWrite(Title[Page[PageNo]],Tmp,61,21);
  222.     TextColor(0,0,255);
  223.     TextWrite(Title[Page[PageNo]],Tmp,60,20);
  224.     SetFont( 20, "MS 明朝", 128, 0, 0, 0, 400 );
  225.     TextColor(0,0,0);
  226.     TextWrite(StrPrint("P.%ld",PageNo),Tmp,511,24);
  227.     TextColor(255,0,0);
  228.     TextWrite(StrPrint("P.%ld",PageNo),Tmp,510,23);
  229.     TextColor(0,0,95);
  230.     SetFont(GetIniInt(sect,"fontsize",FontSize,IniName),GetIniInt(sect,"fontname",BaseFont,IniName),128, 0, 0, 0, 400);
  231.     if((text=GetIniStr(sect,"wave","/E",IniName))!="/E"){PlayWAVE(text);}
  232.     if((text=GetIniStr(sect,"midi","/E",IniName))!="/E"){PlayMIDI(text);}
  233.  
  234.     for(i=1;(text=GetIniStr(sect,StrPrint("Pic%ld",i),"/E",IniName))!="/E";i=i+1){
  235.         p=LoadPic(text);
  236.         MovePic(p,0,0,PicWidth(p),PicHeight(p),Tmp,GetIniInt(sect,StrPrint("Pic%ldx",i),27,IniName),GetIniInt(sect,StrPrint("Pic%ldy",i),73,IniName));
  237.         DelPic(p);
  238.     }
  239.     for(i=1;(text=GetIniStr(sect,StrPrint("Text%ld",i),"/E",IniName))!="/E";i=i+1){
  240.         if(StrFind(text,"/EM")==0){
  241.             TextColor(0,0,0);
  242.             SetFont( GetIniInt(sect,"fontsize",FontSize,IniName)+4, "MS ゴシック", 128, 0, 0, 0, 800 );
  243.             TextWrite(SubStr(text,3,StrLen(text)-3),Tmp,x+1,y-1);
  244.             TextColor(0,50,200);
  245.             //SetFont( GetIniInt(sect,"fontsize",FontSize,IniName)+4, "MS ゴシック", 128, 0, 0, 0, 800 );
  246.             TextWrite(SubStr(text,3,StrLen(text)-3),Tmp,x,y-2);
  247.             y=y+4;
  248.             TextColor(0,0,95);
  249.             SetFont(GetIniInt(sect,"fontsize",FontSize,IniName),GetIniInt(sect,"fontname",BaseFont,IniName),128, 0, 0, 0, 400);
  250.         }else{
  251.             TextWrite(text,Tmp,x,y);
  252.         }
  253.         y=y+FontSize+3;
  254.     }
  255.  
  256.  
  257.     if(IsInPage!=1){
  258.         MovePic(Tmp,0,0,640,480,CPic,0,0,2,20);
  259.         mes(TIME){step(200){,,,,,,DelPic(Tmp);del_me;}}
  260.         IsInPage=1;
  261.     }else{
  262.         MovePic(Tmp,0,0,640,480,CPic,0,0);
  263.         DelPic(Tmp);
  264.     }
  265.  
  266.  
  267.   mes(LBDOWN){
  268.     if(MesP2>590+PicLeft&&MesP2<622+PicLeft){
  269.         if(MesP3>84+PicTop&&MesP3<141+PicTop){
  270.             if(Page[PageNo]<=0){
  271.                 goto Endmes;
  272.             }
  273.             PlayWAVE("pachi.wav");
  274.             PageNo=Sect[Page[PageNo]-1];
  275.             WritePage(PageNo);
  276.             del_me;
  277.         }else{
  278.             if(MesP3>162+PicTop&&MesP3<218+PicTop){
  279.                 if(PageNo<=1){
  280.                     goto Endmes;
  281.                 }
  282.                 PlayWAVE("pachi.wav");
  283.                 PageNo=PageNo-1;
  284.                 WritePage(PageNo);
  285.                 del_me;
  286.             }else{
  287.                 if(MesP3>257+PicTop&&MesP3<312+PicTop){
  288.                     if(PageNo>=MaxPage){
  289.                         goto Endmes;
  290.                     }
  291.                     PlayWAVE("pachi.wav");
  292.                     PageNo=PageNo+1;
  293.                     WritePage(PageNo);
  294.                     del_me;
  295.                 }else{
  296.                     if(MesP3>335+PicTop&&MesP3<390+PicTop){
  297.                         if(Page[PageNo]>=MaxSect){
  298.                             goto Endmes;
  299.                         }
  300.                         PlayWAVE("pachi.wav");
  301.                         PageNo=Sect[Page[PageNo]+1];
  302.                         WritePage(PageNo);
  303.                         del_me;
  304.                     }else{
  305.                         if(MesP3>414+PicTop&&MesP3<446+PicTop){
  306.                             PlayWAVE("kachi.wav");
  307.                             Opening();
  308.                             DelPic(Back_Pic);
  309.                             IsInPage=0;
  310.                             del_me;
  311.                         }
  312.                     }
  313.                 }
  314.             }
  315.         }
  316.     }
  317.   Endmes:;
  318.   PlayWAVE("shuu.wav");
  319.   } 
  320.  
  321. }
  322.  
  323.  
  324.