home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / ADPro251-3.DMS / ADPro251-3.adf / ADProScripts.lha / FlipANIM.adpro < prev    next >
Encoding:
Text File  |  1994-01-31  |  5.2 KB  |  254 lines

  1. /*
  2. ** FlipANIM.adpro
  3. **
  4. ** $VER: FlipANIM.adpro 1.3.1 (17.1.94)
  5. **
  6. ** This AREXX program will take an existing ANIM file and flip it
  7. ** horizontally, vertically, or both.
  8. **
  9. ** This script requires ADPro v2.5.0 (or higher).
  10. **
  11. ** Copyright © 1993-1994 ASDG, Incorporated
  12. ** All Rights Reserved
  13. */
  14.  
  15.  
  16. ADDRESS "ADPro"
  17. OPTIONS RESULTS
  18.  
  19. NL = '0A'X
  20. SQ = '27'X
  21. DQ = '22'X
  22. TRUE = 1
  23. FALSE = 0
  24. TempDefaults = "T:TempADProDefaults"
  25.  
  26.  
  27. /*
  28. ** Save the current environment.
  29. */
  30.  
  31. SAVE_DEFAULTS TempDefaults
  32.  
  33. PSTATUS "UNLOCKED"
  34.  
  35. CALL "FREDSCRIPTS:FREDFunctions/GetAFile" '"Enter ANIM To Flip"' '"ADPRO:"' '""""' TRUE
  36. IF (RESULT = DQ||DQ) THEN DO
  37.     ADPRO_TO_FRONT
  38.     OKAY1 "Error, no source ANIM specified."
  39.     CALL ErrorOut 10
  40. END
  41. SrcANIMFName = RESULT
  42.  
  43. CALL "FREDSCRIPTS:FREDFunctions/GetAFile" '"Enter name of ANIM file to create"' '"ADPRO:"' '""""' TRUE
  44. IF (RESULT = DQ||DQ) THEN DO
  45.     ADPRO_TO_FRONT
  46.     OKAY1 "Error, no dest ANIM specified."
  47.     CALL ErrorOut 10
  48. END
  49. DestANIMFName = RESULT
  50.  
  51. ADPRO_TO_FRONT
  52.  
  53. OKAYN '"FlipANIM"' '"Flip horizontally?"' '"Flip|Don''t Flip|Cancel"'
  54. IF (RC = 0) THEN DO
  55.     CALL ErrorOut 10
  56. END
  57. ELSE
  58.     FlipHoriz = 2 - RC
  59.  
  60. ADPRO_TO_FRONT
  61.  
  62. OKAYN '"FlipANIM"' '"Flip vertically?"' '"Flip|Don''t Flip|Cancel"'
  63. IF (RC = 0) THEN DO
  64.     CALL ErrorOut 10
  65. END
  66. ELSE
  67.     FlipVert = 2 - RC
  68.  
  69. IF (FlipHoriz = 0) & (FlipVert = 0) THEN DO
  70.     ADDRESS COMMAND "Copy " SrcANIMFName DestANIMFName
  71. END
  72. ELSE DO
  73.     IF (EXISTS( DestANIMFName )) THEN DO
  74.         ADPRO_TO_FRONT
  75.  
  76.         OKAYN '"FlipANIM"' '"Truncate destination ANIM?"' '"Start New File|Append To File|Cancel"'
  77.         IF (RC = 0) THEN DO
  78.             CALL ErrorOut 10
  79.         END
  80.         ELSE IF (RC = 1) THEN DO
  81.             IMAGE_TYPE
  82.             ImageType = ADPRO_RESULT
  83.             IF (WORD( ImageType, 1 ) = "NONE") THEN DO
  84.                 LOADER "BACKDROP" "XXX" "WIDTH" 10 "HEIGHT" 10 "COLOR"
  85.                 IF (RC ~= 0) THEN DO
  86.                     ADPRO_TO_FRONT
  87.                     OKAY1 "Unable to create temp image." || NL ||,
  88.                         "Argument Information:" || NL||,
  89.                         "Width = " || 10 || NL ||,
  90.                         "Height = " || 10 || NL ||,
  91.                         "Type = " || "COLOR"
  92.                     CALL ErrorOut 10
  93.                 END
  94.             END
  95.  
  96.             IF (WORD( ImageType, 1 ) ~= "BITPLANE") THEN DO
  97.                 EXECUTE
  98.                 IF (RC ~= 0) THEN DO
  99.                     ADPRO_TO_FRONT
  100.                     OKAY1 "Unable to create temp rendered data."
  101.                     CALL ErrorOut 10
  102.                 END
  103.             END
  104.  
  105.             SAVER "ANIM" DestANIMFName "IMAGE" "QUIT"
  106.             IF (RC ~= 0) THEN DO
  107.                 ADPRO_TO_FRONT
  108.                 OKAY1 "Could not close current ANIM file." || NL ||,
  109.                     "Argument Information:" || NL ||,
  110.                     "Filename = " || DestANIMFName || NL ||,
  111.                     "Type = " || "IMAGE" || NL ||,
  112.                     "Flags = " || "QUIT"
  113.                 CALL ErrorOut 10
  114.             END
  115.  
  116.             ADDRESS COMMAND "Delete >NIL:" DestANIMFName
  117.         END
  118.     END
  119.  
  120.     LOADER "ANIM" SrcANIMFName "COUNT"
  121.     IF (RC ~= 0) THEN DO
  122.         ADPRO_TO_FRONT
  123.         OKAY1 "Can't find ANIM file."
  124.         CALL ErrorOut 10
  125.     END
  126.  
  127.     NumFrames = ADPRO_RESULT
  128.  
  129.  
  130.     /*
  131.     ** Ask which frames to process.
  132.     */
  133.  
  134.     CALL "FREDSCRIPTS:FREDFunctions/GetANumber" '"Starting frame"' 1 1 NumFrames TRUE
  135.     StartFrame = RESULT
  136.     IF (StartFrame = (1-1)) THEN
  137.         CALL ErrorOut 10
  138.  
  139.     CALL "FREDSCRIPTS:FREDFunctions/GetANumber" '"Ending frame"' NumFrames StartFrame NumFrames TRUE
  140.     EndFrame = RESULT
  141.     IF (EndFrame = (StartFrame-1)) THEN
  142.         CALL ErrorOut 10
  143.  
  144.  
  145.     LOADER "ANIM" SrcANIMFName "FRAME" 1
  146.     IF (RC ~= 0) THEN DO
  147.         ADPRO_TO_FRONT
  148.         OKAY1 "Cannot find source ANIM."
  149.         CALL ErrorOut 10
  150.     END
  151.  
  152.     PSTATUS "LOCKED"
  153.  
  154.     SCREEN_TYPE
  155.     oldSType = ADPRO_RESULT
  156.     SCREEN_TYPE ADPRO_RESULT
  157.  
  158.     CurrFrameNum = StartFrame
  159.     continue = FALSE
  160.     DO WHILE (continue = FALSE)
  161.         LOADER "ANIM" SrcANIMFName "FRAME" CurrFrameNum
  162.         IF (RC ~= 0) THEN DO
  163.             ADPRO_TO_FRONT
  164.             OKAY1 "Error during load" || NL ||,
  165.                 "of frame " || CurrFrameNum || "."
  166.             CALL ErrorOut 10
  167.         END
  168.  
  169.         IF (FlipHoriz = TRUE) THEN DO
  170.             OPERATOR "HORIZONTAL_FLIP"
  171.             IF (RC ~= 0) THEN DO
  172.                 ADPRO_TO_FRONT
  173.                 OKAY1 "Error flipping horizontally."
  174.                 CALL ErrorOut 10
  175.             END
  176.         END
  177.  
  178.         IF (FlipVert = TRUE) THEN DO
  179.             OPERATOR "VERTICAL_FLIP"
  180.             IF (RC ~= 0) THEN DO
  181.                 ADPRO_TO_FRONT
  182.                 OKAY1 "Error flipping vertically."
  183.                 CALL ErrorOut 10
  184.             END
  185.         END
  186.  
  187.         EXECUTE
  188.         IF (RC ~= 0) THEN DO
  189.             ADPRO_TO_FRONT
  190.             OKAY1 "Error creating rendered data."
  191.             CALL ErrorOut 10
  192.         END
  193.  
  194.         SAVER "ANIM" DestANIMFName "APPEND" "IMAGE"
  195.         IF (RC ~= 0) THEN DO
  196.             ADPRO_TO_FRONT
  197.             OKAY1 "Error during save" || NL ||,
  198.                 "of frame " || CurrFrameNum || "."
  199.             CALL ErrorOut 10
  200.         END
  201.  
  202.         CurrFrameNum = CurrFrameNum + 1
  203.         IF (CurrFrameNum > EndFrame) THEN
  204.             continue = TRUE
  205.     END
  206.  
  207.     SAVER "ANIM" DestANIMFName "QUIT" "IMAGE"
  208.     IF (RC ~= 0) THEN DO
  209.         ADPRO_TO_FRONT
  210.         OKAY1 "Error closing dest ANIM."
  211.         CALL ErrorOut 10
  212.     END
  213. END
  214.  
  215. CALL ErrorOut 0
  216.  
  217.  
  218. ErrorOut:
  219.     PARSE ARG ExitCode
  220.  
  221.     IF (EXISTS( SrcANIMFName )) & (ErrorCode ~= 0) THEN DO
  222.         LOADER "ANIM" SrcANIMFName "QUIT"
  223.         IF (RC ~= 0) THEN DO
  224.             ADPRO_TO_FRONT
  225.             OKAY1 "Error closing source ANIM:" || NL ||,
  226.                 SrcANIMFName || NL || NL ||,
  227.                 "You need to close it" || NL ||,
  228.                 "manually."
  229.         END
  230.     END
  231.  
  232.     IF (EXISTS( DestANIMFName )) & (ErrorCode ~= 0) THEN DO
  233.         SAVER "ANIM" DestANIMFName "IMAGE" "QUIT"
  234.         IF (RC ~= 0) THEN DO
  235.             ADPRO_TO_FRONT
  236.             OKAY1 "Error closing dest ANIM:" || NL ||,
  237.                 DestANIMFName || NL || NL ||,
  238.                 "You need to close it" || NL ||,
  239.                 "manually."
  240.         END
  241.     END
  242.  
  243.     IF (EXISTS( TempDefaults )) THEN DO
  244.         LOAD_DEFAULTS TempDefaults
  245.         IF (RC ~= 0) THEN DO
  246.             ADPRO_TO_FRONT
  247.             OKAY1 "Error restoring settings."
  248.         END
  249.  
  250.         ADDRESS COMMAND "Delete >NIL:" TempDefaults
  251.     END
  252.  
  253.     EXIT ExitCode
  254.