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

  1. /***********************************************************************
  2.  GADGET: "'Colour Chaos'" "6" AUTO TYP: "?"
  3.  
  4.  $DAT >>ColourChaos.clssa<< 04 Jul 1993 - (C) ProDAD Holger Burkarth
  5.  
  6.  If you need special colour effects to annoy the viewer you use Chaotic
  7.  colour changes.  This macro creates such effects which are certainly not
  8.  harmonious.  However, the intensity and speed can be controlled.
  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>3 THEN DO
  22.  
  23.     DO FOREVER
  24.       GetAnimInfo
  25.       PARSE VAR RESULT . "FORMAT" x y t "VIEWMODE" ViewMode .
  26.       NumberColours=2**t-1
  27.  
  28.       MSRequester "TITLE '*** Colour Chaos ***''Select Effect Mode'",
  29.                   "PTEXT 'Use only Chaos Colours'",
  30.                         "'Add Chaos Colours to natural colours'",
  31.                         "'Mix in Chaos Colours'"
  32.       IF RC~=0 THEN LEAVE
  33.       Mode=RESULT
  34.  
  35.       COLRequest "FROM 0 TO 1 TITLE '*** Colour Chaos ***'' ''Set colour range''for Chaos creation'"
  36.       IF RC~=0 THEN LEAVE
  37.       ChaosList=RESULT
  38.  
  39.       INTRequest "'*** Colour Chaos ***''Enter the number''of colour jumps.''From 1 To "Number"'" Number
  40.       IF RC~=0 THEN LEAVE
  41.       ColorJmp=RESULT
  42.       IF ColorJmp < 1 | ColorJmp>Number THEN DO
  43.         Message "'Wrong Input'"
  44.         LEAVE
  45.       END
  46.  
  47.       Pos=0
  48.       ColorJmp=ColorJmp/Number
  49.       DO UNTIL From>To
  50.         ViewFrame COPS From
  51.         IF RC~=0 THEN LEAVE
  52.  
  53.         IF TRUNC(Pos*ColorJmp) < TRUNC((Pos+1)*ColorJmp) | Pos=0 THEN DO
  54.           List=""
  55.           GetColor ChaosList
  56.           ListR=RESULT
  57.           DO UNTIL ListR=""
  58.             PARSE VAR ListR x r g b ListR
  59.             IF Mode=1 THEN DO
  60.               r=RANDU()*256
  61.               g=RANDU()*256
  62.               b=RANDU()*256
  63.             END
  64.             ELSE IF Mode=2 THEN DO
  65.               r=(r+RANDU()*256)/2
  66.               g=(g+RANDU()*256)/2
  67.               b=(b+RANDU()*256)/2
  68.             END
  69.             ELSE IF Mode=3 THEN DO
  70.               r=(3*r+RANDU()*256)/4
  71.               g=(3*g+RANDU()*256)/4
  72.               b=(3*b+RANDU()*256)/4
  73.             END
  74.  
  75.             List=List x TRUNC(r) TRUNC(g) TRUNC(b)
  76.           END
  77.         END
  78.         SetColor List
  79.         Record COPS
  80.         IF RC~=0 THEN LEAVE
  81.          From=From+1
  82.          Pos=Pos+1
  83.       END
  84.       LEAVE
  85.     END
  86.   END
  87.   ELSE Message "'For Chaos effects you''must select at least 4 frames.'"
  88.  
  89.   FailAt AltFail
  90. EXIT
  91.