home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / gfx / Dust / Scripts / AmpRed < prev    next >
Encoding:
Text File  |  1995-01-10  |  8.2 KB  |  211 lines

  1. /** Reduce amplitude of a wave with DUST(© '94 A.Maschke)
  2. **
  3. ** $VER: 1.4 AmpRedReq  (10.01.1995 Wolfgang Loske)
  4. **
  5. ** Read manual for more information
  6. ** Bitte Anleitung für mehr Informationen lesen
  7. **
  8. **/
  9.  
  10. CALL AddLib('rexxsupport.library',0,-30,0)
  11. CALL AddLib('rexxreqtools.library',0,-30,0)
  12.  
  13. /**
  14. ** Initialize some colors, change if you want
  15. ** Ein paar Farben anmelden, ändern wie gewünscht
  16. **/
  17. csi='9b'x;slant=csi'3m';bold=csi'1m';norm=csi'0m';black=csi'31m'
  18. white=csi'32m';blue=csi'33m';LF = '0a'x
  19.  
  20. /** Get commandline argument ## Argument der Kommandozeile holen
  21. **This Proggi has no options :-))))
  22. **/
  23. FRAMES_B = "0"
  24. FRAMES_W = "24"
  25. FRAMES_A = "0"
  26. DEST = "RAM:"
  27. ROOT = "obj."
  28. TITLE = "AmpRed2d Requester"
  29. FONT = "rt_font=thin609.font/8"
  30. /* Check for configuration */
  31. if ~open(PATH,"env:DUST",R) then do
  32.    call rtezrequest("Could not open ENV:DUST to get your path to the executables !"LF||,
  33.         "Please refer to the manual for installation instructions","Bummer",TITLE,FONT)
  34.    exit
  35.    end
  36. else
  37.     PATH=readln(PATH)
  38.  
  39. X= rtezrequest("We have the following defaults."LF||,
  40. "If you want to enter new values, answer the question with N."LF||,
  41. "If you only want to change one particular value, accept"LF||,
  42. "the other by pressing return. You will be asked again afterwards!","Yo!|EXIT",TITLE,FONT)
  43. if X = 0 then call EXIT
  44.  
  45. BACK1:
  46. FRAMES = FRAMES_B + FRAMES_W + FRAMES_A
  47. ANSWER= rtezrequest("QUESTION:"LF||LF||,
  48.     "You want "||FRAMES||" frames for the animation ?"LF||,
  49.     "You want "||FRAMES_B||" frames befor the wave ?"LF||,
  50.     "You want "||FRAMES_W||" frames for the wave itself ?"LF||,
  51.     "You want "||FRAMES_A||" frames after the wave ?"LF||,
  52.     "You want the files stored in "||DEST||" ?"LF||,
  53.     "You want the sequence to have "||ROOT||" as the root name ?"LF||LF||,
  54.     "Is this right ?","Yes|EXIT|No",TITLE,FONT)
  55. Select
  56.         when ANSWER = "1" then NOP
  57.         when ANSWER = "2" then call EXIT
  58.         when ANSWER = "0" then SETUP = 1
  59.         otherwise 
  60.         do
  61.           say "Only "bold"Y"norm", "bold"N"norm" or just Return are valid answers"
  62.           call BACK1
  63.         end
  64. end
  65.  
  66. if SETUP = 1 then do
  67.         FRAMES_B=rtgetlong(FRAMES_B,"How many frames do you want before the wave ?",TITLE,"Yep !",FONT "rtgl_min=0")
  68.         if FRAMES_B = "" then FRAMES_B = "0"
  69.         FRAMES_W=rtgetlong(FRAMES_W,"How many frames do you want for the wave itself ?",TITLE,"Yep !",FONT "rtgl_min=1")
  70.         if FRAMES_W = "" then FRAMES_W = "24"
  71.         FRAMES_A=rtgetlong(FRAMES_A,"How many frames do you want after the wave ?",TITLE,"Yep !",FONT "rtgl_min=0")
  72.         if FRAMES_A = "" then FRAMES_A = "0"
  73.         DEST=rtfilerequest(DEST,,TITLE,"Yep !",FONT "rtfi_flags=freqf_nofiles")
  74.         if DEST = "" then DEST = "ram:"
  75.         ROOT=rtgetstring(ROOT,"Please give rootname of the resulting animation sequence !",
  76.              ,TITLE,"Yep !",FONT)
  77.         if ROOT = "" then ROOT = "obj."
  78.         SETUP = 0
  79.         call BACK1
  80. end
  81.  
  82. SOURCE:
  83. CUR =  pragma("Directory")
  84. SOURCE=rtfilerequest(CUR,,"Select SOURCE object !","Yo!",FONT)
  85. Select
  86.     when SOURCE = "" then do
  87.             X= rtezrequest("No source given. Please enter again !","Bummer|EXIT",TITLE,FONT)
  88.             if X=0 then call exit
  89.                     else call SOURCE
  90.             end
  91.     when ~exists(SOURCE) then do
  92.             call rtezrequest("Object does not exist !!! Please enter again !","Bummer|EXIT",TITLE,FONT)
  93.             if X=0 then call exit
  94.                     else call SOURCE
  95.             call SOURCE
  96.             end
  97.     otherwise
  98. end
  99.  
  100. /** Wave parameters **/
  101. OBJID=1;DESTID=2;AMPLITUDE_S=12;AMPLITUDE_E=0
  102. AMPLITUDE_S= rtgetlong(AMPLITUDE_S, "This is the starting amplitude value !"LF||,
  103.              "This value will be divided by "||FRAMES_W||" to reduce the amplitude"LF||,
  104.              "of your wave continously to your chosen end amplitude value, which"LF||,
  105.              "defaults to 0"||LF||"Enter new value, if you want",TITLE,"Yep|EXIT",FONT)
  106. if RTRESULT = 0 then call exit
  107. AMPLITUDE_E= rtgetlong(AMPLITUDE_E, "This is the end amplitude value !"LF||,
  108.              "The value of your starting amplitude, which currently is "||AMPLITUDE_S||LF||,
  109.              "will be divided by "||FRAMES_W||" to reduce the amplitude"LF||,
  110.              "of your wave continously to the value entered here"LF||,
  111.              "Enter new value, if you want",TITLE,"Yep|EXIT",FONT)
  112. if RTRESULT = 0 then call exit
  113.  
  114. SKIP=(AMPLITUDE_S - AMPLITUDE_E)/FRAMES_W
  115. X=rtezrequest("Your amplitude will be reduced by "||SKIP||" per frame"LF||,
  116.   "If you, for any reason, think this is not a good value, you may change"LF||,
  117.   "your starting amplitude in the following requester","Gotcha !|EXIT",TITLE,FONT)
  118. if X=0 then call exit
  119.  
  120. TYPE=T;AMPLITUDE=AMPLITUDE_S;WAVELENGTH=24;SOURCEX=0; SOURCEY=0; DAMPING=1.0;PHASE=60
  121. WAVE.1 = "wave2dframe("OBJID","FRAMES",$,"DESTID","TYPE","AMPLITUDE","WAVELENGTH","SOURCEX","SOURCEY","DAMPING","PHASE")"
  122.  
  123. X= rtezrequest("We have the following predefined values for this wave !"LF||,
  124.         "You will now be shown these predefinded parameters in the following order:"LF||,
  125.         "TYPE,AMPLITUDE,WAVELENGTH,SOURCEX,SOURCEY,DAMPING and PHASE"LF||,
  126.         "If you want to change one or more , you have to type the new"LF||,
  127.         "values _EXACTLY_ in this order seperated by spaces"LF||,
  128.         "i.e.: l 13 20 10 14 1.1 -45","Gotcha !|EXIT",TITLE,FONT)
  129. if X=0 then call exit
  130.  
  131. VALUES = rtgetstring(TYPE AMPLITUDE WAVELENGTH SOURCEX SOURCEY,
  132.        DAMPING PHASE ,LF||,
  133.        "Type  Amplitude  Wavelength  SourceX   SourceY  Damping  Phase"LF||,
  134.        center(TYPE,5) center(AMPLITUDE,9) center(WAVELENGTH,12),
  135.        center(SOURCEX,8) center(SOURCEY,9) center(DAMPING,8) center(PHASE,6)LF||,
  136.        "Press Return to accept or enter new values",TITLE,"Wow !",FONT)
  137. if VALUES = "" then
  138.           WAVE.1 = WAVE.1
  139.    else do
  140.           parse var VALUES TYPE AMPLITUDE WAVELENGTH SOURCEX SOURCEY DAMPING PHASE
  141.           wave.1="wave2dframe("OBJID","FRAMES",$,"DESTID","TYPE","AMPLITUDE","WAVELENGTH","SOURCEX","SOURCEY","DAMPING","PHASE")"
  142. end
  143.  
  144. LOAD = "load("OBJID","SOURCE")"
  145. COPY = "copy("DESTID","OBJID")"
  146. SAVE = "save("DESTID","DEST||ROOT||"%)"
  147.  
  148. call open(FILE,"t:SCRIPT",W)
  149. call writeln(FILE, LOAD)
  150. if FRAMES_B >0 then
  151.    do i=1 to FRAMES_B
  152.         NULL = "000"
  153.         if i > 9 then NULL = "00"
  154.         if i > 99 then NULL = "0"
  155.         if i > 999 then NULL = ""
  156.         call writeln(FILE, "save("OBJID","DEST||ROOT||NULL||i")")
  157. end
  158. do i=FRAMES_B + 1 to FRAMES_B + FRAMES_W
  159.         if i > FRAMES_B + 1 then AMPLITUDE = AMPLITUDE_S - SKIP
  160.         wave.i="wave2dframe("OBJID","FRAMES","i","DESTID","TYPE","AMPLITUDE","WAVELENGTH","SOURCEX","SOURCEY","DAMPING","PHASE")"
  161.         call writeln(FILE,WAVE.i)
  162.         NULL = "000"
  163.         if i > 9 then NULL = "00"
  164.         if i > 99 then NULL = "0"
  165.         if i > 999 then NULL = ""
  166.         call writeln(FILE, "save("DESTID","DEST||ROOT||NULL||i")")
  167.         AMPLITUDE_S = AMPLITUDE
  168. END
  169. if FRAMES_A >0 then
  170.    do i= FRAMES_B + FRAMES_W + 1 to FRAMES_B + FRAMES_W + FRAMES_A
  171.    if AMPLITUDE_E ~= 0 then do
  172.         wave.i="wave2dframe("OBJID","FRAMES","i","DESTID","TYPE","AMPLITUDE","WAVELENGTH","SOURCEX","SOURCEY","DAMPING","PHASE")"
  173.         call writeln(FILE,WAVE.i)
  174.         NULL = "000"
  175.         if i > 9 then NULL = "00"
  176.         if i > 99 then NULL = "0"
  177.         if i > 999 then NULL = ""
  178.         call writeln(FILE, "save("DESTID","DEST||ROOT||NULL||i")")
  179.       end
  180.    else do
  181.         NULL = "000"
  182.         if i > 9 then NULL = "00"
  183.         if i > 99 then NULL = "0"
  184.         if i > 999 then NULL = ""
  185.         call writeln(FILE, "save("OBJID","DEST||ROOT||NULL||i")")
  186.    end
  187. end
  188. call close(FILE)
  189.  
  190. X= rtezrequest("Calling Dust in the background."LF||,
  191.                "Objects will be created and saved in the path you've chosen."LF||,
  192.                "Please be patient, this may take a while !"LF||LF||,
  193.                "If you interupt now, you have the basic script for DUST in T: !",
  194.               ,"Nice !|EXIT",TITLE,FONT )
  195. if X=0 then call EXIT
  196. DUST = PATH||"dust >nil: t:script"
  197. call open(FILE,"t:SCRIPT",A)
  198. call writeln(FILE,"exit")
  199. call close(FILE)
  200. call pragma("S",30000)
  201. address command DUST
  202.  
  203. CALL rtezrequest("Objects saved !"LF||LF||"Thanks for using AmpRed","Nice !",
  204.      ,TITLE,FONT "rtez_flags=ezreqf_centertext")
  205. exit
  206.  
  207. EXIT:
  208. CALL rtezrequest("Program aborted by user request !"LF||LF||"Thanks for using AmpRed",
  209.      ,"Nice !",TITLE,FONT "rtez_flags=ezreqf_centertext")
  210. exit
  211.