home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 October / VPR9710A.ISO / Ffilly / TFYW111 / RTW_CAST.MAC < prev    next >
Text File  |  1997-06-05  |  11KB  |  450 lines

  1. //キャラクタ関連関数
  2. main:
  3.     menu
  4.         "&MoveCast...\tCastの内容を変更",
  5.         "&PutCast...\tCastをピクチャーと関連付け",
  6.         "&DelCast...\tCastとピクチャーの関連付けを破棄",
  7.         "&ChaLCast...\tCast同士の前後関係を変更",
  8.         "&HitCast...\t指定の座標値にあるキャストを調べる",
  9.         "&RepaintCast...\t指定の領域を再描画";
  10.     if(result == 0) goto macro_cancel;
  11.     else if(result == 1) goto MoveCast;
  12.     else if(result == 2) goto PutCast;
  13.     else if(result == 3) goto DelCast;
  14.     else if(result == 4) goto ChaLCast;
  15.     else if(result == 5) goto HitCast;
  16.     else if(result == 6) goto RepaintCast;
  17.  
  18.  
  19. macro_end:
  20.     endmacro;
  21.  
  22.  
  23. macro_cancel:
  24.     writeininum "tfywrite.ini", "Control", "MenuCancel", 1;
  25.     endmacro;
  26.  
  27.  
  28. MoveCast:
  29.     escape;
  30.     call MacSrvInit;
  31.  
  32.     ddepoke "newdialog", "35,MoveCast";
  33.  
  34.     ddepoke "newcontrol", "text,,Cast番号(&C)";
  35.     ddepoke "part", "19";
  36.     ddepoke "newcontrol", "edit,Cast,";
  37.  
  38.     ddepoke "newcontrol", "text,,Castのピクチャー番号(&P)";
  39.     ddepoke "part", "19";
  40.     ddepoke "newcontrol", "edit,Pic,";
  41.  
  42.     ddepoke "newcontrol", "text,,表示先";
  43.     ddepoke "part", "7";
  44.     ddepoke "newcontrol", "text,,X座標(&X)";
  45.     ddepoke "part", "8";
  46.     ddepoke "newcontrol", "edit,X,";
  47.     ddepoke "part", "6";
  48.     ddepoke "newcontrol", "text,,Y座標(&Y)";
  49.     ddepoke "part", "8";
  50.     ddepoke "newcontrol", "edit,Y,";
  51.  
  52.     ddepoke "newcontrol", "text,,サイズ";
  53.     ddepoke "part", "7";
  54.     ddepoke "newcontrol", "text,,幅(&W)";
  55.     ddepoke "part", "8";
  56.     ddepoke "newcontrol", "edit,W,";
  57.     ddepoke "part", "6";
  58.     ddepoke "newcontrol", "text,,高さ(&H)";
  59.     ddepoke "part", "8";
  60.     ddepoke "newcontrol", "edit,H,";
  61.  
  62.     ddepoke "newcontrol", "text,,CastPic内のキャストの左上の座標";
  63.     ddepoke "newcontrol", "text,,";
  64.     ddepoke "part", "7";
  65.     ddepoke "newcontrol", "text,,X座標(&R)";
  66.     ddepoke "part", "8";
  67.     ddepoke "newcontrol", "edit,CX,";
  68.     ddepoke "part", "6";
  69.     ddepoke "newcontrol", "text,,Y座標(&D)";
  70.     ddepoke "part", "8";
  71.     ddepoke "newcontrol", "edit,CY,";
  72.  
  73.     ddepoke "newcontrol", "text,,透明色(16進数)(&T)";
  74.     ddepoke "part", "17";
  75.     ddepoke "newcontrol", "edit,TransCol,";
  76.  
  77.     ddepoke "newcontrol", "check,Imm,すぐに書き換えしない(&I)";
  78.  
  79.     ddepoke "newcontrol", "text,, ";    
  80.     ddepoke "part", "15";
  81.     ddepoke "newcontrol", "okcancel,Ok";
  82.  
  83.     call MakeDialog;
  84.  
  85.     $Ok = dderequest("getstring Ok");
  86.     if($Ok == "0")goto macro_end;
  87.  
  88.     $Cast     = dderequest("getstring Cast");
  89.     $Pic      = dderequest("getstring Pic");
  90.     $X        = dderequest("getstring X");
  91.     $Y        = dderequest("getstring Y");
  92.     $W        = dderequest("getstring W");
  93.     $H        = dderequest("getstring H");
  94.     $CX       = dderequest("getstring CX");
  95.     $CY       = dderequest("getstring CY");
  96.     $TransCol = dderequest("getstring TransCol");
  97.     $Imm      = dderequest("getstate Imm");
  98.  
  99.     if($TransCol != "") $TransCol = ","+$TransCol;
  100.  
  101.     $Cmd = "MoveCast(" +$Cast+ "," +$Pic+ "," +$X+ "," +$Y+ "," +$Imm+ "," +$W+ "," +$H+ "," +$CX+ "," +$CY+$TransCol+ ");";
  102.     insert $Cmd;
  103.  
  104.     goto macro_end;
  105.     ddeexecute "exit";
  106.  
  107.  
  108. PutCast:
  109.     escape;
  110.     call MacSrvInit;
  111.  
  112.     ddepoke "newdialog", "35,PutCast";
  113.  
  114.     ddepoke "newcontrol", "text,,Cast番号(&C)";
  115.     ddepoke "part", "21";
  116.     ddepoke "newcontrol", "edit,Cast,";
  117.  
  118.     ddepoke "newcontrol", "text,,表示先のピクチャー番号(&P)";
  119.     ddepoke "part", "21";
  120.     ddepoke "newcontrol", "edit,Pic,";
  121.  
  122.     ddepoke "newcontrol", "text,,表示先";
  123.     ddepoke "part", "7";
  124.     ddepoke "newcontrol", "text,,X座標(&X)";
  125.     ddepoke "part", "8";
  126.     ddepoke "newcontrol", "edit,X,";
  127.     ddepoke "part", "6";
  128.     ddepoke "newcontrol", "text,,Y座標(&Y)";
  129.     ddepoke "part", "8";
  130.     ddepoke "newcontrol", "edit,Y,";
  131.  
  132.     ddepoke "newcontrol", "text,,透明色(16進数)(&T)";
  133.     ddepoke "part", "25";
  134.     ddepoke "newcontrol", "edit,TransCol,";
  135.  
  136.     ddepoke "newcontrol", "text,,前後関係のレベル(背面=0)(&L)";
  137.     ddepoke "part", "25";
  138.     ddepoke "newcontrol", "edit,Level,0";
  139.  
  140.     ddepoke "newcontrol", "check,Pos,同一レベルで最背面にする(&S)";
  141.     ddepoke "newcontrol", "check,Imm,すぐに書き換えしない(&I)";
  142.  
  143.     ddepoke "newcontrol", "text,,サイズ";
  144.     ddepoke "part", "7";
  145.     ddepoke "newcontrol", "text,,幅(&W)";
  146.     ddepoke "part", "8";
  147.     ddepoke "newcontrol", "edit,W,";
  148.     ddepoke "part", "6";
  149.     ddepoke "newcontrol", "text,,高さ(&H)";
  150.     ddepoke "part", "8";
  151.     ddepoke "newcontrol", "edit,H,";
  152.  
  153.     ddepoke "newcontrol", "text,,CastPic内のキャストの左上の座標";
  154.     ddepoke "newcontrol", "text,,";
  155.     ddepoke "part", "7";
  156.     ddepoke "newcontrol", "text,,X座標(&R)";
  157.     ddepoke "part", "8";
  158.     ddepoke "newcontrol", "edit,CX,";
  159.     ddepoke "part", "6";
  160.     ddepoke "newcontrol", "text,,Y座標(&D)";
  161.     ddepoke "part", "8";
  162.     ddepoke "newcontrol", "edit,CY,";
  163.  
  164.     ddepoke "newcontrol", "text,, ";    
  165.     ddepoke "part", "15";
  166.     ddepoke "newcontrol", "okcancel,Ok";
  167.  
  168.     call MakeDialog;
  169.  
  170.     $Ok = dderequest("getstring Ok");
  171.     if($Ok == "0")goto macro_end;
  172.  
  173.     $Cast     = dderequest("getstring Cast");
  174.     $Pic      = dderequest("getstring Pic");
  175.     $X        = dderequest("getstring X");
  176.     $Y        = dderequest("getstring Y");
  177.     $TransCol = dderequest("getstring TransCol");
  178.     $Level    = dderequest("getstring Level");
  179.     $Pos      = dderequest("getstate Pos");
  180.     $Imm      = dderequest("getstate Imm");
  181.     $W        = dderequest("getstring W");
  182.     $H        = dderequest("getstring H");
  183.     $CX       = dderequest("getstring CX");
  184.     $CY       = dderequest("getstring CY");
  185.  
  186.     if($TransCol == "") $TransCol = "0x80000000";
  187.  
  188.     if($W == "" && $H == "" && $CX == "" && $CY == "")
  189.         $Cmd = "PutCast(" +$Cast+ "," +$Pic+ "," +$X+ "," +$Y+ "," +$TransCol+ "," +$Pos+ "," +$Level+ "," +$Imm+ ");";
  190.     else 
  191.         $Cmd = "PutCast(" +$Cast+ "," +$Pic+ "," +$X+ "," +$Y+ "," +$TransCol+ "," +$Pos+ "," +$Level+ "," +$Imm+ "," +$W+ "," +$H+ "," +$CX+ "," +$CY+ ");";
  192.  
  193.     insert $Cmd;
  194.  
  195.     goto macro_end;
  196.     ddeexecute "exit";
  197.  
  198.  
  199. DelCast:
  200.     escape;
  201.     call MacSrvInit;
  202.  
  203.     ddepoke "newdialog", "24,DelCast";
  204.  
  205.     ddepoke "newcontrol", "text,,Cast番号(&C)";
  206.     ddepoke "part", "11";
  207.     ddepoke "newcontrol", "edit,Cast,";
  208.  
  209.     ddepoke "newcontrol", "check,Imm,すぐに書き換えしない(&I)";
  210.  
  211.     ddepoke "newcontrol", "okcancel,Ok";
  212.  
  213.     call MakeDialog;
  214.  
  215.     $Ok = dderequest("getstring Ok");
  216.     if($Ok == "0")goto macro_end;
  217.  
  218.     $Cast     = dderequest("getstring Cast");
  219.     $Imm      = dderequest("getstate Imm");
  220.  
  221.     $Cmd = "DelCast(" +$Cast+ "," +$Imm+ ");";
  222.     insert $Cmd;
  223.  
  224.     goto macro_end;
  225.     ddeexecute "exit";
  226.  
  227.  
  228. ChaLCast:
  229.     escape;
  230.     call MacSrvInit;
  231.  
  232.     ddepoke "newdialog", "32,ChaLCast";
  233.  
  234.     ddepoke "newcontrol", "text,,Cast番号(&C)";
  235.     ddepoke "part", "11";
  236.     ddepoke "newcontrol", "edit,Cast,";
  237.  
  238.     ddepoke "newcontrol", "radio,Pos,同一レベルでの指定(&S)";
  239.     ddepoke "item", "最全面";
  240.     ddepoke "item", "最背面";
  241.     ddepoke "item", "最最全面";
  242.     ddepoke "item", "最最背面";
  243.  
  244.     ddepoke "newcontrol", "check,Imm,すぐに書き換えしない(&I)";
  245.  
  246.     ddepoke "newcontrol", "text,,前後関係のレベル(背面=0)(&L)";
  247.     ddepoke "part", "25";
  248.     ddepoke "newcontrol", "edit,Level,0";
  249.  
  250.  
  251.     ddepoke "newcontrol", "text,, ";    
  252.     ddepoke "part", "12";
  253.     ddepoke "newcontrol", "okcancel,Ok";
  254.  
  255.     call MakeDialog;
  256.  
  257.     $Ok = dderequest("getstring Ok");
  258.     if($Ok == "0")goto macro_end;
  259.  
  260.     $Cast     = dderequest("getstring Cast");
  261.     $Pos      = dderequest("getstate Pos");
  262.     $Imm      = dderequest("getstate Imm");
  263.     $Level    = dderequest("getstring Level");
  264.  
  265.     #Pos = val($Pos);
  266.     #Pos = #Pos - 1;
  267.     $Pos = str(#Pos);
  268.  
  269.     $Cmd = "ChaLCast(" +$Cast+ "," +$Pos+ "," +$Imm+ "," +$Level+ ");";
  270.     insert $Cmd;
  271.  
  272.     goto macro_end;
  273.     ddeexecute "exit";
  274.  
  275.  
  276. HitCast:
  277.     escape;
  278.     call MacSrvInit;
  279.  
  280.     ddepoke "newdialog", "20,HitCast";
  281.  
  282.     ddepoke "newcontrol", "text,,ピクチャー番号(&P)";
  283.     ddepoke "part", "13";
  284.     ddepoke "newcontrol", "edit,Pic,";
  285.  
  286.     ddepoke "newcontrol", "text,,調べる位置";
  287.  
  288.     ddepoke "newcontrol", "text,,";
  289.     ddepoke "part", "5";
  290.     ddepoke "newcontrol", "text,,X座標(&X)";
  291.     ddepoke "part", "8";
  292.     ddepoke "newcontrol", "edit,X,";
  293.  
  294.     ddepoke "newcontrol", "text,,";
  295.     ddepoke "part", "5";
  296.     ddepoke "newcontrol", "text,,Y座標(&Y)";
  297.     ddepoke "part", "8";
  298.     ddepoke "newcontrol", "edit,Y,";
  299.  
  300.     ddepoke "newcontrol", "okcancel,Ok";
  301.  
  302.     call MakeDialog;
  303.  
  304.     $Ok = dderequest("getstring Ok");
  305.     if($Ok == "0")goto macro_end;
  306.  
  307.     $Pic      = dderequest("getstring Pic");
  308.     $X        = dderequest("getstring X");
  309.     $Y        = dderequest("getstring Y");
  310.  
  311.     $Cmd = "HitCast(" +$Pic+ "," +$X+ "," +$Y+ ");";
  312.     insert $Cmd;
  313.  
  314.     goto macro_end;
  315.     ddeexecute "exit";
  316.  
  317.  
  318. RepaintCast:
  319.     escape;
  320.     call MacSrvInit;
  321.  
  322.     ddepoke "newdialog", "33,RepaintCast";
  323.  
  324.     ddepoke "newcontrol", "text,,ピクチャー番号(&P)";
  325.     ddepoke "part", "13";
  326.     ddepoke "newcontrol", "edit,Pic,";
  327.  
  328.     ddepoke "newcontrol", "text,,左上";
  329.     ddepoke "part", "5";
  330.     ddepoke "newcontrol", "text,,X座標(&Y)";
  331.     ddepoke "part", "8";
  332.     ddepoke "newcontrol", "edit,X,";
  333.     ddepoke "part", "6";
  334.     ddepoke "newcontrol", "text,,Y座標(&Y)";
  335.     ddepoke "part", "8";
  336.     ddepoke "newcontrol", "edit,Y,";
  337.  
  338.     ddepoke "newcontrol", "text,,右下";
  339.     ddepoke "part", "5";
  340.     ddepoke "newcontrol", "text,,X座標(&R)";
  341.     ddepoke "part", "8";
  342.     ddepoke "newcontrol", "edit,R,";
  343.     ddepoke "part", "6";
  344.     ddepoke "newcontrol", "text,,Y座標(&D)";
  345.     ddepoke "part", "8";
  346.     ddepoke "newcontrol", "edit,D,";
  347.  
  348.     ddepoke "newcontrol", "text,,";
  349.     ddepoke "part", "13";
  350.     ddepoke "newcontrol", "okcancel,Ok";
  351.  
  352.     call MakeDialog;
  353.  
  354.     $Ok = dderequest("getstring Ok");
  355.     if($Ok == "0")goto macro_end;
  356.  
  357.     $Pic      = dderequest("getstring Pic");
  358.     $X        = dderequest("getstring X");
  359.     $Y        = dderequest("getstring Y");
  360.     $R        = dderequest("getstring R");
  361.     $D        = dderequest("getstring D");
  362.  
  363.     $Cmd = "RepaintCast(" +$Pic+ "," +$X+ "," +$Y+ "," +$R+ "," +$D+ ");";
  364.     insert $Cmd;
  365.  
  366.     goto macro_end;
  367.     ddeexecute "exit";
  368.  
  369.  
  370. //関数の挿入
  371. InsFunc:
  372.     //第1引数 str 関数名
  373.     //第2引数 str 関数の引数のタイプ
  374.     // (0=なし、1=数値型、2=文字列型、3=配列変数)
  375.  
  376.     if(##2 == 0){
  377.         escape;
  378.         insert $$1 + "();";
  379.         return;
  380.     }
  381.  
  382.     #Select = selecting;
  383.     $SText = "";
  384.  
  385.     if(#Select == 1){
  386.         #STopX = seltopx;
  387.         #STopY = seltopy;
  388.         #SEndX = selendx;
  389.         #SEndY = selendy;
  390.         $SText = gettext(#STopX,#STopY,#SEndX,#SEndY);
  391.         #SLength = strlen($SText);
  392.         moveto #STopX,#STopY;
  393.  
  394.         beginsel;
  395.         right #SLength;
  396.         delete;
  397.     }
  398.     
  399.     if(##2 == 1){
  400.         insertfix $$1 + "(" + $SText + ");";
  401.         if($SText == ""){
  402.             gowordend;
  403.             right;
  404.         }
  405.     }
  406.  
  407.     else if(##2 == 2){
  408.         insertfix $$1 + "(\"" + $SText + "\");";
  409.         if($SText == ""){
  410.             gowordend;
  411.             right 2;
  412.         }
  413.     }
  414.  
  415.     else if(##2 == 3){
  416.         if(rightstr($SText,2) != "[]") $SText = $SText + "[]";
  417.         insertfix $$1 + "(\"" + $SText + "\");";
  418.         if($SText == ""){
  419.             gowordend;
  420.             right;
  421.         }
  422.     }
  423.  
  424.     return;
  425.  
  426.  
  427. //ダイアログボックス関連サブルーチン
  428. MacSrvInit:
  429.     run "macserv.exe /h";
  430.     ddeinitiate "HideMacroServer", "DlgService";
  431.     if( !result ) {
  432.         message "ddeinitiate failed";
  433.         endmacro;
  434.     }
  435.     ddeexecute "setcurdir " + directory;
  436.     return;
  437.  
  438.  
  439. MakeDialog:
  440.     #hwnd = hidemaruhandle(0);
  441.     ddeexecute "dialog " + str(#hwnd);
  442.     $$a = "";
  443.     ddestartadvice "dlgresult", $$a;
  444.     while( strlen($$a) == 0 ) {
  445.         ddewaitadvice $$a, 100;
  446.     }
  447.     ddestopadvice "dlgresult";
  448.     ddeexecute "enddialog";
  449.     return $$a;
  450.