home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 61 / af061a.adf / Macros / Stroboscope.clssa < prev    next >
Text File  |  1993-05-01  |  3KB  |  106 lines

  1. /***********************************************************************
  2.  GADGET: "'Stroboscope'" "6" AUTO TYP: "?"
  3.  
  4.  $DAT >>Stroboscope.clssa<< 01 May 1993 - (C) ProDAD Holger Burkarth
  5. ************************************************************************/
  6.  
  7. Options Results
  8. Address clariSSA
  9.  
  10.   FailAt 10
  11.   AltFail=RESULT
  12.  
  13.   GetArea
  14.   PARSE VAR RESULT . "FROM" From "TO" To .
  15.  
  16.   Number=To-From
  17.   IF Number>3 THEN DO
  18.  
  19.     DO FOREVER
  20.       GetAnimInfo
  21.       PARSE VAR RESULT . "FORMAT" x y t "VIEWMODE" ViewMode .
  22.       ColNumber=2**t - 1
  23.  
  24.       COLRequest "Register 0 TITLE '*** Strobe Colour ***'' ''Choose Strobe Colour.'"
  25.       IF RC~=0 THEN LEAVE
  26.       StrobeColour=RESULT
  27.  
  28.  
  29.       MSRequester "TITLE '*** Stroboscope ***''Select Reference Colour to Produce Flash.'",
  30.                   "PTEXT ' Reference Colour Free Choice + Blackstrobe'' Reference Colour Free Choice'",
  31.                         "' Reference Colour White + Blackstrobe'' Reference Colour White'"
  32.       IF RC~=0 THEN LEAVE
  33.       IF RESULT > 2 THEN DO
  34.         StrobeMode=RESULT-2
  35.         RefR=255
  36.         RefG=255
  37.         RefB=255
  38.       END
  39.       ELSE DO
  40.         StrobeMode=RESULT
  41.         COLRequest "Register 0 TITLE '*** Strobe Colour ***'' '' Choose Reference Colour.'"
  42.         IF RC~=0 THEN LEAVE
  43.         RefColour=RESULT
  44.  
  45.         GetColor RefColour
  46.         PARSE VAR RESULT x RefR RefG RefB
  47.       END
  48.  
  49.       INTRequest "'Please Enter The Number''of flashes.''(between 1 and "Number")'"Number-2
  50.       IF RC~=0 THEN LEAVE
  51.       StrobeNum=RESULT
  52.       IF StrobeNum < 1 | StrobeNum > Number THEN DO
  53.          Message "'The number you gave''is not acceptable!'"
  54.         LEAVE
  55.       END
  56.  
  57.       zz=1
  58.       Lim=Number/StrobeNum
  59.       DO UNTIL From>To
  60.         IF zz > Lim THEN DO
  61.           zz=0; fa=1
  62.         END
  63.         ELSE fa=0
  64.         ViewFrame COPS From
  65.         IF RC~=0 THEN LEAVE
  66.         IF StrobeMode=1 THEN DO
  67.           l=0
  68.           List=""
  69.           DO UNTIL l>ColNumber
  70.             GetColor l
  71.             PARSE VAR RESULT x r g b
  72.             IF l=StrobeColour THEN DO
  73.               r=r+(RefR-r)*fa
  74.               g=g+(RefG-g)*fa
  75.               b=b+(RefB-b)*fa
  76.             END; ELSE DO
  77.               r=r*fa
  78.               g=g*fa
  79.               b=b*fa
  80.             END
  81.             List=List l r g b
  82.             l=l+1
  83.           END
  84.           SetColor List
  85.         END
  86.         ELSE IF StrobeMode=2 THEN DO
  87.           GetColor StrobeColour
  88.           PARSE VAR RESULT x r g b
  89.           r=r+(RefR-r)*fa
  90.           g=g+(RefG-g)*fa
  91.           b=b+(RefB-b)*fa
  92.           SetColor StrobeColour r g b
  93.         END
  94.         Record COPS
  95.         IF RC~=0 THEN LEAVE
  96.         From=From+1
  97.         zz=zz+1
  98.       END
  99.       LEAVE
  100.     END
  101.   END
  102.   ELSE Message "'For the Strobe-Effekt at''least 4 frames must be selected.'"
  103.  
  104.   FailAt AltFail
  105. exit
  106.