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

  1. /***********************************************************************
  2.  GADGET: "'Single Colour Fade'" "6" AUTO TYP: "?"
  3.  
  4.  $DAT >>SingleColFade.clssa<< 01 May 1993 - (C) ProDAD Holger Burkarth
  5.  
  6.  The Fade macro allows you to make a fade all colours to any
  7.  definable  colour.  However, you may only want to fade one
  8.  colour (to black or  another selected colour) so this macro is
  9.  provided to do this.
  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.       ColourNum=2**t - 1
  27.  
  28.       MSRequester "TITLE '*** Single Colour Fade ***''Select a Fade Direction.''IN means that colours''appear as the anim runs.' PTEXT 'Fade IN''Fade OUT'"
  29.       IF RC~=0 THEN LEAVE
  30.       FadeIN=RESULT
  31.  
  32.       COLRequest "Register 0 TITLE '*** Single Colour Fade ***'' ''Choose Fade Colour.'"
  33.       IF RC~=0 THEN LEAVE
  34.       FadeColour=RESULT
  35.  
  36.  
  37.       MSRequester "TITLE '*** Single Colour Fade ***''Select Reference Colour For Processing?' PTEXT 'Select Reference Colour''Reference Black'"
  38.       IF RC~=0 THEN LEAVE
  39.       IF RESULT=2 THEN DO
  40.         DO UNTIL From>To
  41.           IF FadeIN=2 THEN fa=(To-From)/Number
  42.           ELSE             fa=(1-(To-From)/Number)
  43.  
  44.           ViewFrame COPS From
  45.           IF RC~=0 THEN LEAVE
  46.           GetColor FadeColour
  47.           PARSE VAR RESULT x r g b
  48.           SetColor x r*fa g*fa b*fa
  49.  
  50.           Record COPS
  51.           IF RC~=0 THEN LEAVE
  52.           From=From+1
  53.         END
  54.       END
  55.  
  56.       ELSE DO
  57.         COLRequest "Register 0 TITLE '*** Single Colour Fade ***'' ''Fix Reference Colour.'"
  58.         IF RC~=0 THEN LEAVE
  59.  
  60.         GetColor RefColour
  61.         PARSE VAR RESULT x RefR RefG RefB
  62.  
  63.         DO UNTIL From>To
  64.           IF FadeIN=2 THEN fa=(1-(To-From)/Number)
  65.           ELSE             fa=(To-From)/Number
  66.  
  67.           ViewFrame COPS From
  68.           IF RC~=0 THEN LEAVE
  69.           GetColor FadeColour
  70.           PARSE VAR RESULT x r g b
  71.           r=r+(RefR-r)*fa
  72.           g=g+(RefG-g)*fa
  73.           b=b+(RefB-b)*fa
  74.           SetColor x r g b
  75.  
  76.           Record COPS
  77.           IF RC~=0 THEN LEAVE
  78.            From=From+1
  79.         END
  80.       END
  81.  
  82.       LEAVE
  83.     END
  84.   END
  85.   ELSE Message "'For this effect at least''2 frames are required.'"
  86.  
  87.   FailAt AltFail
  88. exit
  89.