home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 61 / af061a.adf / Macros / Fade.clssa < prev    next >
Text File  |  1993-07-15  |  2KB  |  93 lines

  1. /***********************************************************************
  2.  GADGET: "'Multi Colour Fade'" "6" AUTO TYP: "?"
  3.  
  4.  $DAT >>Fade.clssa<<   03 May 1993 - (C) ProDAD Holger Burkarth
  5.  
  6.  The Fade macro is used to blend a whole image into one single, defined,
  7.  colour - often black (for which the macro offers a short cut). Other
  8.  colours must be chosen from the colour requester.
  9. ************************************************************************/
  10.  
  11. Options Results
  12. Address clariSSA
  13.  
  14.   FailAt 10
  15.   AltFail=RESULT
  16.  
  17.   GetArea
  18.   PARSE VAR RESULT . "FROM" From "TO" To .
  19.  
  20.   Number=To-From
  21.   IF Number>1 THEN DO
  22.  
  23.     DO FOREVER
  24.       GetAnimInfo
  25.       PARSE VAR RESULT . "FORMAT" x y t "VIEWMODE" ViewMode .
  26.       ColNumber=2**t - 1
  27.  
  28.       MSRequester "TITLE '*** Fade Effect ***''Please Select Fade Direction.''IN means that the colours''develop as the anim runs.' PTEXT 'Fade IN''Fade OUT'"
  29.       IF RC~=0 THEN LEAVE
  30.       FadeIN=RESULT
  31.  
  32.       MSRequester "TITLE '*** Fade Effect ***''Select reference Colour For Fade Processing'",
  33.                   "PTEXT 'Select Reference colour''Reference colour BLACK''Reference colour WHITE'"
  34.       IF RC~=0 THEN LEAVE
  35.  
  36.       IF RESULT=1 THEN DO
  37.         COLRequest "Register 0 TITLE '*** Fade Effect ***'' ''Fix Reference colour''or the Fade Effect.'"
  38.         IF RC~=0 THEN LEAVE
  39.         Reference=RESULT
  40.         GetColor Reference
  41.         PARSE VAR RESULT x RefR RefG RefB
  42.       END
  43.       ELSE IF RESULT=2 THEN DO
  44.         RefR=0
  45.         RefG=0
  46.         RefB=0
  47.       END
  48.       ELSE IF RESULT=3 THEN DO
  49.         RefR=255
  50.         RefG=255
  51.         RefB=255
  52.       END
  53.  
  54.  
  55.       l=0
  56.       ListG=""
  57.       DO UNTIL l>ColNumber
  58.         ListG=ListG l
  59.         l=l+1
  60.       END
  61.  
  62.       DO UNTIL From>To
  63.         IF FadeIN=2 THEN fa=(1-(To-From)/Number)
  64.         ELSE             fa=(To-From)/Number
  65.  
  66.         ViewFrame COPS From
  67.         IF RC~=0 THEN LEAVE
  68.         l=0
  69.         List=""
  70.         GetColor ListG
  71.         ListR=RESULT
  72.         DO UNTIL ListR=""
  73.           PARSE VAR ListR x r g b ListR
  74.           r=r+(RefR-r)*fa
  75.           g=g+(RefG-g)*fa
  76.           b=b+(RefB-b)*fa
  77.           List=List x TRUNC(r) TRUNC(g) TRUNC(b)
  78.           l=l+1
  79.         END
  80.         SetColor List
  81.         Record COPS
  82.         IF RC~=0 THEN LEAVE
  83.          From=From+1
  84.       END
  85.  
  86.       LEAVE
  87.     END
  88.   END
  89.   ELSE Message "'For a Fade Effect you must have''at least 2 Frames selected.'"
  90.  
  91.   FailAt AltFail
  92. exit
  93.